@effect/ai-anthropic: text_editor_20250728 insert decodes `new_str`, but the API sends `insert_text`
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 75/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- ai
Direzione di ricerca
Leggi packages/ai/anthropic/src/AnthropicTool.ts nella sezione intorno a TextEditorInsertCommand e confrontalo con il vecchio schema di inserimento nello stesso file. Conferma la discrepanza usando la riproduzione fornita con Schema.decodeUnknownExit; il lavoro è completato quando una chiamata di inserimento nella forma prevista dall’API viene decodificata correttamente e il gestore dello strumento può riceverla.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happens
TextEditorInsertCommand in packages/ai/anthropic/src/AnthropicTool.ts (line 1881 on main), which TextEditor_20250728's parameters use, declares the inserted text as new_str:
export const TextEditorInsertCommand = Schema.Struct({
command: Schema.Literal("insert"),
path: Schema.String,
insert_line: Schema.Int,
/**
* The text to insert.
*/
new_str: Schema.String
})
The Messages API sends an insert call as path, insert_line and insert_text. So every insert the model makes fails to decode as the tool's parameters, and the handler never runs. The model gets a parameter error back instead. The older insert schema in the same file (line 1553) already uses insert_text.
Repro
With @effect/[email protected] and [email protected]:
import { Schema } from "effect"
import { TextEditorInsertCommand } from "@effect/ai-anthropic/AnthropicTool"
// The arguments the Messages API sends for an insert with text_editor_20250728
const call = { command: "insert", path: "a.md", insert_line: 0, insert_text: "x" }
console.log(String(Schema.decodeUnknownExit(TextEditorInsertCommand)(call)))
// Failure(Cause([Fail(SchemaError(Missing key
// at ["new_str"]))]))
We hit it in a real run with Claude Opus: each insert came back to the model as a validation error until we patched the field.
Fix
Rename the field to insert_text in src/AnthropicTool.ts. We've run that patch (the src, dist .js and .d.ts) against the live API, and inserts apply.
Versions: 4.0.0 through 4.1.0, and main.
- Lingua principale
- TypeScript
- Stelle
- 16.7k
- Fork
- 808
- Merge medio
- 11h 11m
- PR unite (30g)
- 840
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Effect-TS/effect
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
[email protected]: crypto/KeyFormat declarations require the global JsonWebKey, breaking Node-only type-checksForse già presa @effect-bot l’ha presa oggi. Aperta
Effect-TS/effect#10115 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 4/5 1-2 giorni Idoneità per principianti 55/100
I maintainer di solito rispondono entro 1 giorno
-
sql-pg: send several statements in one extended-query Sync (transaction-local context without extra round trips)Forse già presa @effect-bot l’ha presa oggi. Aperta
Effect-TS/effect#10113 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
CircuitBreaker: record an outcome without guarding the callForse già presa @effect-bot l’ha presa oggi. Aperta
Effect-TS/effect#10110 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Effect-TS/effect
Issue simili
-
Shell: serve the home app's Cookie Policy on a hard reloadForse già presa @2001anshkaushik l’ha presa oggi. Apertafeature module:ai
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
rocketride-org/rocketride-server#2899 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
wazuh/wazuh-dashboard-plugins#9551 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
gofish-graphics/gofish-graphics#1252 ·
I maintainer di solito rispondono entro 1 giorno
-
optimization P3 size:XS
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
josephfung/curia#2366 ·
I maintainer di solito rispondono entro 1 giorno
-
stranded-follow-up sweep trusts any issue whose body carries the marker as the tracking issueApertatype:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
nightgauge/nightgauge#2688 ·
I maintainer di solito rispondono entro 1 giorno