mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-06 02:48:25 +00:00
Three Kimi Code tools differ from fabro's built-ins in what their parameters mean, not just what they are called. Renaming fabro's parameters would have advertised behavior fabro does not have, so these are separate tools: - Bash takes `timeout` in SECONDS where fabro takes milliseconds, and accepts a `cwd`. A rename alone would have made every timeout 1000x wrong -- silently, since nothing validates the magnitude. - Read accepts a NEGATIVE `line_offset`, meaning "read the last N lines". Fabro's `offset` has no such meaning, so the tool counts the file's lines and converts to an absolute start. - Write takes a `mode`, so it can append. The Sandbox trait has no append, so append is read-modify-write, which keeps every provider working and stays inside path policy. Everything reaches the environment through the same Sandbox methods the built-ins use, so sandbox behavior, path policy, and the read-before-write guard are unchanged. Tools register under their canonical names and the registry's vocabulary renames them, so the Kimi profile does not special-case naming twice. Edit needed no new tool: `old_string`, `new_string`, and `replace_all` already match Kimi Code exactly, and `file_path` versus `path` is a pure rename. Grep and Glob are not converted. Their shared parameters already behave identically; the gap is optional capability fabro lacks -- Grep's `type`, `multiline`, and `include_ignored`, and Glob's `include_dirs` and `include_ignored` -- which needs new Sandbox trait methods implemented across the local, Docker, and Daytona providers. Omitting an optional parameter is honest; renaming one whose semantics differ is not. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| apps | ||
| components | ||
| foundation | ||
| packages/fabro-api-client | ||