@coder.
Os atômicos coexistem com o
@coder — @coder read/search/tree continuam funcionando. A diferença é que o LLM agora pode escolher o tool narrow (mais preciso) quando quiser executar uma única operação read-only.Os quatro tools
@read — leitura de arquivo
Equivalente ao Read do Claude Code. Schema flat:
path, filepath. Faixa de linhas, head/tail e encoding base64 suportados. Cap de output: 80 000 chars (versus 30k global) — arquivos grandes (~1500 linhas) cabem inteiros.
@search — busca por regex
Equivalente ao Grep do Claude Code. Schema flat:
pattern, query, regex. Glob de inclusão, limite configurável de resultados. Cap: 60 000 chars.
@tree — árvore de diretórios
Schema flat (todos opcionais — {} lista o cwd):
@todo — gestão de plano de tarefas
Paridade com TodoWrite do Claude Code. Três subcomandos:
pending | in_progress | completed | failed. O @todo adapter encaminha pra cli/agent/task_tracker.go ativo do AgentMode atual.
Por que narrow tools importam
@coder (fat) | @read / @search / @tree (narrow) | |
|---|---|---|
| Acurácia do LLM | Schema único, modelo erra subcomando | Schema dedicado, ~10pp mais preciso |
| Paralelização | Não (mistura read e write) | Sim (IsConcurrencySafe=true) |
| Permission gate | Cai no policy regex | Auto-allow via capability |
| Streaming UX | Generic “@coder read" | "Reading: main.go” |
| Truncation | Global 30k | Per-tool 50k/60k/80k |
Multipatch transacional
Novidade no@coder:
Validação por JSON Schema
Cada plugin atômico ship um JSON Schema draft-2020-12. O agent loop valida os args do LLM antes de chamarExecute. Falhas geram ToolResult{IsError:true, ErrorCode:"InvalidArgs"} com path do campo inválido — o modelo recebe feedback claro em vez de um panic/empty.
Plugins legados sem JSONSchemaAware bypassam validação (mudança puramente aditiva).
Capability-aware permission gate
Opolicy_manager agora consulta o capability resolver antes de cair no default ActionAsk:
- Deny rules (estrito)
- Safety-immune (sempre asks)
- Allow/Ask explícito (longest pattern wins)
- Read-only exec heuristic
- NOVO: capability gate — auto-allow para plugin com
IsReadOnly=true - Default: Ask
@read, @search, @tree, @websearch, @webfetch (GET), @scheduler query/list rodam sem prompt enquanto write/exec continuam gated.