zcode-acp-server 0.65.1 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +27 -2
  2. package/dist/backend/resolve.js +3 -3
  3. package/dist/backend/resolve.js.map +1 -1
  4. package/dist/bin/quota.js +2 -2
  5. package/dist/code-fingerprint.json +2 -2
  6. package/dist/config/settings.d.ts +2 -0
  7. package/dist/config/settings.d.ts.map +1 -1
  8. package/dist/config/settings.js +7 -0
  9. package/dist/config/settings.js.map +1 -1
  10. package/dist/config/user-config.d.ts +3 -1
  11. package/dist/config/user-config.d.ts.map +1 -1
  12. package/dist/config/user-config.js +7 -0
  13. package/dist/config/user-config.js.map +1 -1
  14. package/dist/goal-loop/driver.d.ts.map +1 -1
  15. package/dist/goal-loop/driver.js +3 -13
  16. package/dist/goal-loop/driver.js.map +1 -1
  17. package/dist/handlers/account.d.ts +20 -0
  18. package/dist/handlers/account.d.ts.map +1 -1
  19. package/dist/handlers/account.js +18 -3
  20. package/dist/handlers/account.js.map +1 -1
  21. package/dist/handlers/dispatch.d.ts.map +1 -1
  22. package/dist/handlers/dispatch.js +5 -0
  23. package/dist/handlers/dispatch.js.map +1 -1
  24. package/dist/handlers/io.d.ts +14 -1
  25. package/dist/handlers/io.d.ts.map +1 -1
  26. package/dist/handlers/io.js +15 -2
  27. package/dist/handlers/io.js.map +1 -1
  28. package/dist/handlers/prompt-content.d.ts +22 -0
  29. package/dist/handlers/prompt-content.d.ts.map +1 -0
  30. package/dist/handlers/prompt-content.js +193 -0
  31. package/dist/handlers/prompt-content.js.map +1 -0
  32. package/dist/handlers/session.d.ts +3 -2
  33. package/dist/handlers/session.d.ts.map +1 -1
  34. package/dist/handlers/session.js +50 -17
  35. package/dist/handlers/session.js.map +1 -1
  36. package/dist/quota/ollama-cloud/client.d.ts +13 -4
  37. package/dist/quota/ollama-cloud/client.d.ts.map +1 -1
  38. package/dist/quota/ollama-cloud/client.js +14 -5
  39. package/dist/quota/ollama-cloud/client.js.map +1 -1
  40. package/dist/quota/ollama-cloud/format.d.ts +3 -2
  41. package/dist/quota/ollama-cloud/format.d.ts.map +1 -1
  42. package/dist/quota/ollama-cloud/format.js +22 -2
  43. package/dist/quota/ollama-cloud/format.js.map +1 -1
  44. package/dist/quota/ollama-cloud/index.d.ts +17 -1
  45. package/dist/quota/ollama-cloud/index.d.ts.map +1 -1
  46. package/dist/quota/ollama-cloud/index.js +92 -43
  47. package/dist/quota/ollama-cloud/index.js.map +1 -1
  48. package/dist/quota/ollama-cloud/types.d.ts +32 -8
  49. package/dist/quota/ollama-cloud/types.d.ts.map +1 -1
  50. package/dist/quota/ollama-cloud/types.js +13 -5
  51. package/dist/quota/ollama-cloud/types.js.map +1 -1
  52. package/dist/server.d.ts.map +1 -1
  53. package/dist/server.js +5 -3
  54. package/dist/server.js.map +1 -1
  55. package/docs/ARCHITECTURE.md +1 -1
  56. package/docs/CLI.md +15 -12
  57. package/docs/PROTOCOL.md +9 -0
  58. package/docs/REMOTE-CLIENTS.md +17 -9
  59. package/docs/REPLAY-GUIDE.md +16 -5
  60. package/package.json +1 -1
@@ -10,6 +10,7 @@
10
10
  import { randomUUID } from "node:crypto";
11
11
  import { currentModelCached } from "../config/model-cache.js";
12
12
  import { buildConfigOptions, formatModelValue, modelContextWindow, parseModelValue, } from "../config/options.js";
13
+ import { showCompletionStatus } from "../config/settings.js";
13
14
  import { extractExitCode, parseSubagentMetadata, TOOL_KIND_MAP, } from "../translators/tool-helpers.js";
14
15
  import { messages } from "../i18n.js";
15
16
  import { clientConnectionRoot, warn } from "../utils.js";
@@ -339,6 +340,10 @@ async function dispatchTerminalUpdate(server, cx, acpSid, ev, toolName, opts = {
339
340
  * prefix) so editors keep it a separate message from the reply text.
340
341
  */
341
342
  async function dispatchTurnInfo(cx, acpSid, ev, chunkMsgId) {
343
+ // Some clients display only the last assistant message of a turn. Let users
344
+ // keep the actual reply in that position without hiding unsuccessful stops.
345
+ if (ev.resultType === "success" && !showCompletionStatus())
346
+ return;
342
347
  const m = messages();
343
348
  let line;
344
349
  if (ev.resultType === "success") {
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"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"}
@@ -109,7 +109,20 @@ export declare function sendAvailableCommandsDeferred(registry: ClientRegistry,
109
109
  /** Throw a JSON-RPC error from a handler (the SDK converts it to an error response). */
110
110
  export declare function throwError(code: number, message: string): never;
111
111
  /**
112
- * Broadcast `$/zcode/turnState {running}` for every ACP alias of the session.
112
+ * Turn-state notification method names, old and new.
113
+ *
114
+ * The original `$/zcode/turnState` spelling follows the LSP convention, but
115
+ * ACP reserves `_`-prefixed names for extension notifications (#311) —
116
+ * `_zcode/turnState` is the spec-compliant spelling (strict routers like the
117
+ * Python `agent-client-protocol` library error on `$/`). Both are emitted per
118
+ * transition during the migration window; `$/` is deprecated and will be
119
+ * dropped once consumers (martty, zcode-acp-remote) move over. Clients must
120
+ * subscribe to exactly ONE name or they see every transition twice.
121
+ */
122
+ export declare const TURN_STATE_METHODS: readonly ["$/zcode/turnState", "_zcode/turnState"];
123
+ /**
124
+ * Broadcast the turn-state notification pair for every ACP alias of the
125
+ * session ({@link TURN_STATE_METHODS} — see its doc for the naming story).
113
126
  *
114
127
  * The single emit path for ALL turn-state reporting — the turn loop, the
115
128
  * cancel/early-return paths and the auto-compact busy window (which reports
@@ -1 +1 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"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"}
@@ -265,7 +265,20 @@ export function throwError(code, message) {
265
265
  throw new RequestError(code, message);
266
266
  }
267
267
  /**
268
- * Broadcast `$/zcode/turnState {running}` for every ACP alias of the session.
268
+ * Turn-state notification method names, old and new.
269
+ *
270
+ * The original `$/zcode/turnState` spelling follows the LSP convention, but
271
+ * ACP reserves `_`-prefixed names for extension notifications (#311) —
272
+ * `_zcode/turnState` is the spec-compliant spelling (strict routers like the
273
+ * Python `agent-client-protocol` library error on `$/`). Both are emitted per
274
+ * transition during the migration window; `$/` is deprecated and will be
275
+ * dropped once consumers (martty, zcode-acp-remote) move over. Clients must
276
+ * subscribe to exactly ONE name or they see every transition twice.
277
+ */
278
+ export const TURN_STATE_METHODS = ["$/zcode/turnState", "_zcode/turnState"];
279
+ /**
280
+ * Broadcast the turn-state notification pair for every ACP alias of the
281
+ * session ({@link TURN_STATE_METHODS} — see its doc for the naming story).
269
282
  *
270
283
  * The single emit path for ALL turn-state reporting — the turn loop, the
271
284
  * cancel/early-return paths and the auto-compact busy window (which reports
@@ -278,7 +291,7 @@ export async function emitSessionTurnState(server, acpSid, running, cx) {
278
291
  const targetCx = cx ?? server.clients.broadcast();
279
292
  const results = await Promise.allSettled(server
280
293
  .sessionAliases(acpSid)
281
- .map((sid) => targetCx.notify("$/zcode/turnState", { sessionId: sid, running })));
294
+ .flatMap((sid) => TURN_STATE_METHODS.map((method) => targetCx.notify(method, { sessionId: sid, running }))));
282
295
  for (const r of results) {
283
296
  if (r.status === "rejected") {
284
297
  log(`turnState notify failed: ${r.reason instanceof Error ? r.reason.message : String(r.reason)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAoB,EACpB,SAAiB,EACjB,MAAyB;IAEzB,OAAO,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACjG,CAAC;AAMD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEpD,gFAAgF;AAChF,SAAS,OAAO,CAAC,KAAkB,EAAE,GAAwB;IAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CACnB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,IAAyB;IAC7E,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,EAAE,CAAC;IAC1B,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,SAAiB,EAAE,EAAoB;IAC9E,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACpC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,2EAA2E;IAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,IAAI,OAAoB,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,MAAM,IAAI,CAAC;IACX,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,CAAC;QACV,4DAA4D;QAC5D,2EAA2E;QAC3E,yEAAyE;QACzE,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACjE,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,aAAa,CAC3B,EAAoB,EACpB,SAAiB,EACjB,IAAY,EACZ,SAAiB;IAEjB,OAAO,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;QACtC,aAAa,EAAE,qBAAqB;QACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC/B,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAsB,EACtB,QAA0B,EAC1B,MAAkE;IAElE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACzC,CAAC,CAAC,MAAM,CAAC,MAAM;QACf,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC9E,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC3B,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;IACV,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,SAAS,GAAG,WAAW,UAAU,EAAE,EAAE,CAAC;IAC5C,KAAK,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACnD,sEAAsE;QACtE,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAClD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE;YACtD,SAAS,EAAE,GAAG;YACd,MAAM,EAAE;gBACN,aAAa,EAAE,oBAAoB;gBACnC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC/B,SAAS;aACV;SACF,CAAC,CACH,CACF,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC5B,IAAI,CACF,gCAAgC,MAAM,CAAC,SAAS,KAAK;oBACnD,GAAG,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CACvE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAoB;IACpD,OAAQ,EAAsC,CAAC,iBAAiB,KAAK,SAAS,CAAC;AACjF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAsB,EACtB,MAAwB,EACxB,SAAiB,EACjB,MAAyB;IAEzB,KAAK,kBAAkB,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,MAAM;aACH,cAAc,CAAC,SAAS,CAAC;aACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAClF,CACJ,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC5B,IAAI,CACF,gCAAgC,SAAS,KAAK;oBAC5C,GAAG,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CACvE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AASD,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,EAAoB,EACpB,SAAiB,EACjB,QAA0C;IAE1C,OAAO,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;QACtC,aAAa,EAAE,2BAA2B;QAC1C,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACpC,MAAM,GAAG,GAAoE;gBAC3E,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC;YACF,IAAI,CAAC,CAAC,KAAK;gBAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAmB;IACtD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACtE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,QAAwB,EACxB,SAAiB,EACjB,QAA0C;IAE1C,OAAO,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO;YACL,SAAS;YACT,MAAM,EAAE;gBACN,aAAa,EAAE,2BAA2B;gBAC1C,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACpC,MAAM,GAAG,GAAoE;wBAC3E,IAAI,EAAE,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;wBACxE,WAAW,EAAE,CAAC,CAAC,WAAW;qBAC3B,CAAC;oBACF,IAAI,CAAC,CAAC,KAAK;wBAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;oBACjC,OAAO,GAAG,CAAC;gBACb,CAAC,CAAC;aACH;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAA8C,CAAC;AAErF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAAwB,EACxB,SAAiB,EACjB,QAA0C;IAE1C,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;IACxD,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAE9C,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,8BAA8B,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;iBAC1D,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CACF,yCAAyC,SAAS,WAAW,KAAK,KAAK;oBACrE,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAClD,CAAC;YACJ,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACjB,mEAAmE;gBACnE,qEAAqE;gBACrE,oCAAoC;gBACpC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;oBAC1E,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,kEAAkE;QAClE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAe;IACtD,MAAM,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,MAAc,EACd,OAAgB,EAChB,EAAqB;IAErB,MAAM,QAAQ,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,MAAM;SACH,cAAc,CAAC,MAAM,CAAC;SACtB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CACnF,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC5B,GAAG,CACD,4BAA4B,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAC9F,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { ContentBlock } from "@agentclientprotocol/sdk";
2
+ export declare const PROMPT_LIMITS: {
3
+ blocks: number;
4
+ image: number;
5
+ total: number;
6
+ };
7
+ export interface NativePromptAttachment {
8
+ kind: "image" | "pdf" | "file";
9
+ filename: string;
10
+ mimeType: string;
11
+ sizeBytes: number;
12
+ dataBase64?: string;
13
+ localPath?: string;
14
+ }
15
+ /** Supplied embedded bytes are authoritative; URIs are names, not download instructions.
16
+ * Successful staged files persist because native tools and resumed sessions may read them later.
17
+ */
18
+ export declare function convertPromptContent(blocks: ContentBlock[], stagingDir: string): Promise<{
19
+ text: string;
20
+ attachments: NativePromptAttachment[];
21
+ }>;
22
+ //# sourceMappingURL=prompt-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-content.d.ts","sourceRoot":"","sources":["../../src/handlers/prompt-content.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,eAAO,MAAM,aAAa;;;;CAAoE,CAAC;AAS/F,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EAAE,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,sBAAsB,EAAE,CAAA;CAAE,CAAC,CAsHlE"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Adapted from t3-zcode-bridge/content.mjs (v0.3.0).
3
+ * Copyright (c) 2026 Sarthak
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ * of this software and associated documentation files (the "Software"), to deal
7
+ * in the Software without restriction, including without limitation the rights
8
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ * copies of the Software, and to permit persons to whom the Software is
10
+ * furnished to do so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in all
13
+ * copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ import { randomUUID } from "node:crypto";
24
+ import { chmod, lstat, mkdir, unlink, writeFile } from "node:fs/promises";
25
+ import { basename, join } from "node:path";
26
+ import { fileURLToPath } from "node:url";
27
+ import { RequestError } from "@agentclientprotocol/sdk";
28
+ export const PROMPT_LIMITS = { blocks: 100, image: 10 * 1024 * 1024, total: 50 * 1024 * 1024 };
29
+ const imageTypes = new Set([
30
+ "image/png",
31
+ "image/jpeg",
32
+ "image/webp",
33
+ "image/gif",
34
+ "image/bmp",
35
+ "image/svg+xml",
36
+ ]);
37
+ function invalid(message) {
38
+ throw new RequestError(-32602, message);
39
+ }
40
+ function mime(value = "application/octet-stream") {
41
+ const type = value.split(";", 1)[0].trim().toLowerCase();
42
+ if (!/^[a-z0-9.+-]+\/[a-z0-9.+-]+$/.test(type))
43
+ invalid("Invalid attachment MIME type");
44
+ return type;
45
+ }
46
+ function decode(data, limit) {
47
+ if (typeof data !== "string" ||
48
+ data.length > Math.ceil(limit / 3) * 4 ||
49
+ data.length % 4 !== 0 ||
50
+ /[^A-Za-z0-9+/=]/.test(data))
51
+ invalid("Invalid or oversized base64 attachment");
52
+ const bytes = Buffer.from(data, "base64");
53
+ if (bytes.toString("base64") !== data)
54
+ invalid("Invalid base64 attachment");
55
+ if (!bytes.length || bytes.length > limit)
56
+ invalid("Empty or oversized binary attachment");
57
+ return bytes;
58
+ }
59
+ function filename(uri, fallback) {
60
+ try {
61
+ return basename(decodeURIComponent(new URL(uri || "").pathname)) || fallback;
62
+ }
63
+ catch {
64
+ return fallback;
65
+ }
66
+ }
67
+ /** Supplied embedded bytes are authoritative; URIs are names, not download instructions.
68
+ * Successful staged files persist because native tools and resumed sessions may read them later.
69
+ */
70
+ export async function convertPromptContent(blocks, stagingDir) {
71
+ if (!Array.isArray(blocks) || blocks.length > PROMPT_LIMITS.blocks)
72
+ invalid("Too many prompt blocks");
73
+ const text = [], attachments = [], created = [];
74
+ let total = 0;
75
+ const charge = (bytes, type = "text/plain") => {
76
+ if (type.startsWith("image/") && bytes > PROMPT_LIMITS.image)
77
+ invalid("Images must be at most 10 MiB each");
78
+ total += bytes;
79
+ if (total > PROMPT_LIMITS.total)
80
+ invalid("Prompt content exceeds 50 MiB");
81
+ };
82
+ const binary = async (data, type, name) => {
83
+ const bytes = decode(data, type.startsWith("image/") ? PROMPT_LIMITS.image : PROMPT_LIMITS.total);
84
+ charge(bytes.length, type);
85
+ if (imageTypes.has(type) || type === "application/pdf") {
86
+ attachments.push({
87
+ kind: type === "application/pdf" ? "pdf" : "image",
88
+ filename: name,
89
+ mimeType: type,
90
+ dataBase64: data,
91
+ sizeBytes: bytes.length,
92
+ });
93
+ }
94
+ else {
95
+ // Staging setup failures must surface as -32602 request errors, not
96
+ // bare OS errors (EEXIST/ENOTDIR …) leaking to the client.
97
+ try {
98
+ await mkdir(stagingDir, { recursive: true, mode: 0o700 });
99
+ const directory = await lstat(stagingDir);
100
+ if (!directory.isDirectory() || directory.isSymbolicLink())
101
+ invalid("Invalid attachment staging directory");
102
+ await chmod(stagingDir, 0o700);
103
+ }
104
+ catch (error) {
105
+ if (error instanceof RequestError)
106
+ throw error;
107
+ invalid("Attachment staging directory is unavailable");
108
+ }
109
+ const localPath = join(stagingDir, `${randomUUID()}-${basename(name)
110
+ .replace(/[^a-zA-Z0-9._-]/g, "_")
111
+ .slice(0, 120) || "attachment"}`);
112
+ await writeFile(localPath, bytes, { flag: "wx", mode: 0o600 });
113
+ created.push(localPath);
114
+ attachments.push({
115
+ kind: "file",
116
+ filename: name,
117
+ mimeType: type,
118
+ localPath,
119
+ sizeBytes: bytes.length,
120
+ });
121
+ }
122
+ };
123
+ try {
124
+ for (const block of blocks) {
125
+ if (block.type === "text") {
126
+ charge(Buffer.byteLength(block.text));
127
+ text.push(block.text);
128
+ }
129
+ else if (block.type === "image") {
130
+ const type = mime(block.mimeType);
131
+ if (!type.startsWith("image/"))
132
+ invalid("Image block requires an image MIME type");
133
+ if (!imageTypes.has(type))
134
+ invalid("Unsupported inline image format");
135
+ await binary(block.data, type, filename(block.uri, `image-${attachments.length + 1}.${type.split("/")[1]}`));
136
+ }
137
+ else if (block.type === "resource") {
138
+ const r = block.resource;
139
+ try {
140
+ new URL(r.uri);
141
+ }
142
+ catch {
143
+ invalid("Embedded resource URI must be absolute");
144
+ }
145
+ const type = mime(r.mimeType || ("text" in r ? "text/plain" : undefined));
146
+ if ("text" in r) {
147
+ if ("blob" in r)
148
+ invalid("Resource must contain text or blob, not both");
149
+ // Charge the ASSEMBLED line: the URI is unbounded client input and
150
+ // must not ride into the prompt outside the total limit (review of
151
+ // #315 — a 50 MiB-data URI plus 1 byte of text used to pass).
152
+ // Charging without the resource's MIME type also keeps an image/*-
153
+ // labelled text resource off the 10 MiB image cap.
154
+ const line = `[embedded resource: ${r.uri}]\n${r.text}`;
155
+ charge(Buffer.byteLength(line));
156
+ text.push(line);
157
+ }
158
+ else
159
+ await binary(r.blob, type, filename(r.uri, "resource"));
160
+ }
161
+ else if (block.type === "resource_link") {
162
+ let location = block.uri;
163
+ if (location.startsWith("file:")) {
164
+ try {
165
+ location = fileURLToPath(location);
166
+ }
167
+ catch {
168
+ invalid("Invalid local file URI");
169
+ }
170
+ }
171
+ const reference = `[related resource: ${block.name || location}](${location})`;
172
+ charge(Buffer.byteLength(reference));
173
+ text.push(reference);
174
+ }
175
+ else
176
+ invalid("Unsupported prompt content type; audio transcription is not implemented");
177
+ }
178
+ let content = text.join("\n").trim();
179
+ // Attached context must not become a native slash command merely because
180
+ // its text starts with a command name. All-text command prompts are unchanged.
181
+ if (blocks.some((block) => block.type !== "text") && content.startsWith("/")) {
182
+ content = `[attached context]\n${content}`;
183
+ }
184
+ if (!content && !attachments.length)
185
+ invalid("Prompt requires text or attachments");
186
+ return { text: content, attachments };
187
+ }
188
+ catch (error) {
189
+ await Promise.allSettled(created.map((p) => unlink(p)));
190
+ throw error;
191
+ }
192
+ }
193
+ //# sourceMappingURL=prompt-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-content.js","sourceRoot":"","sources":["../../src/handlers/prompt-content.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  * notifications.
12
12
  */
13
13
  import type * as acp from "@agentclientprotocol/sdk";
14
+ import { type NativePromptAttachment } from "./prompt-content.js";
14
15
  import type { ZcodeBackend } from "../backend/client.js";
15
16
  import { EventStreamListener, TurnMonitor } from "../backend/listener.js";
16
17
  import type { ZcodeMessage } from "../backend/types.js";
@@ -140,7 +141,7 @@ export interface RunOneTurnOptions {
140
141
  preempted: boolean;
141
142
  /** Wire text for the backend send (slash-neutralized on the prompt path). */
142
143
  sendText: string;
143
- attachments?: unknown[];
144
+ attachments?: NativePromptAttachment[];
144
145
  /** Sandbox allow-restart continuation round (emits the resumed status line). */
145
146
  continuationRound?: boolean;
146
147
  /** Run the env-gated maybeAutoCompact after an end_turn. Default true. */
@@ -268,7 +269,7 @@ export declare function withPreemptLock(server: ZcodeAcpServer, zcodeSid: string
268
269
  */
269
270
  export declare function preemptInFlightTurn(server: ZcodeAcpServer, zcodeSid: string, selfRequestId: number | string): boolean;
270
271
  /** Concatenate text from ACP ContentBlock[] into a prompt string.
271
- * Exported for unit testing (the resource_link path is easy to break). */
272
+ * Legacy compatibility helper; runtime prompts use convertPromptContent instead. */
272
273
  export declare function extractPromptText(blocks: acp.ContentBlock[] | undefined): string;
273
274
  /**
274
275
  * ACP `ContentBlock::Image` → zcode `session/send` attachment.
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/handlers/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/handlers/session.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,9 @@ import process from "node:process";
14
14
  import path from "node:path";
15
15
  import { randomUUID } from "node:crypto";
16
16
  import { realpathSync } from "node:fs";
17
+ import { unlink } from "node:fs/promises";
17
18
  import { RequestError } from "@agentclientprotocol/sdk";
19
+ import { convertPromptContent } from "./prompt-content.js";
18
20
  import { backendCapabilities } from "../backend/adapter.js";
19
21
  import { EventStreamListener, TurnMonitor } from "../backend/listener.js";
20
22
  import { resolveReal } from "../backend/sandbox.js";
@@ -31,7 +33,7 @@ import { messages } from "../i18n.js";
31
33
  import { lookupLazySession, lookupModelChoiceByZcodeSid, recordMaterializedSession, rememberLazySession, } from "../lazy-sessions.js";
32
34
  import { refreshTerminalTabTitle } from "../terminal-title.js";
33
35
  import { buildDiffContent, EventTranslator, extractLocations, formatTurnError, isBackendLostError, isTransientTurnError, ProjectionDiffer, } from "../translators/index.js";
34
- import { clientConnectionRoot, log, warn } from "../utils.js";
36
+ import { clientConnectionRoot, log, warn, zcodeHomeDir } from "../utils.js";
35
37
  import { dispatchEvent } from "./dispatch.js";
36
38
  import { emitSessionTurnState, sendAvailableCommandsDeferred, sendSessionUpdate, sendTextChunk, withReplayBatch, } from "./io.js";
37
39
  import { EDIT_DIFF_READ_LIMIT, fetchMessages, fetchMessagesSinceAnchor, fullSlice, readTailLimit, REPLY_READ_LIMIT, replayMessages, sliceTail, TURN_READ, } from "./replay.js";
@@ -1830,13 +1832,23 @@ async function runPrompt(server, params, cx, requestId, continuationRound = fals
1830
1832
  // session. No-op unless the config appeared mid-run.
1831
1833
  await server.applySandboxFlip();
1832
1834
  const backend = await server.ensureBackend();
1833
- // Extract prompt text + image attachments from ACP ContentBlock[].
1834
- const text = extractPromptText(params.prompt);
1835
- const attachments = extractAttachments(params.prompt);
1836
- // A prompt is valid if it has text OR at least one image attachment (a user
1837
- // may drag in an image with no accompanying text).
1838
- if (!text && attachments.length === 0)
1839
- throw new Error("empty prompt");
1835
+ const { text, attachments } = await convertPromptContent(params.prompt, path.join(zcodeHomeDir(), "v2", "acp-attachments"));
1836
+ // Staged attachments (file-kind) are referenced by nothing until the turn
1837
+ // commits. Every path below that abandons the prompt BEFORE the send —
1838
+ // boot-resume ack, slash interception, a thrown gate (evicted session,
1839
+ // listener re-arm), goal-loop rejection, compact-busy — must unlink them or
1840
+ // they orphan in ~/.zcode/v2/acp-attachments, which has no GC (found in
1841
+ // review of #315).
1842
+ let stagedDiscarded = false;
1843
+ const discardStagedFiles = () => {
1844
+ if (stagedDiscarded)
1845
+ return;
1846
+ stagedDiscarded = true;
1847
+ for (const a of attachments) {
1848
+ if (a.localPath)
1849
+ void unlink(a.localPath).catch(() => undefined);
1850
+ }
1851
+ };
1840
1852
  // Boot-resume banner handshake (see BOOT_RESUME_TRIGGER): martty queues the
1841
1853
  // auto-submitted trigger until its boot bind, so it arrives as the FIRST
1842
1854
  // prompt OF THAT CONNECTION — ack with one chunk and end the turn without
@@ -1849,6 +1861,7 @@ async function runPrompt(server, params, cx, requestId, continuationRound = fals
1849
1861
  // prompt.
1850
1862
  const promptRoot = clientConnectionRoot(client);
1851
1863
  const ackBootResumeTrigger = async () => {
1864
+ discardStagedFiles();
1852
1865
  await sendTextChunk(cx, params.sessionId, messages().bootResumeAck, randomUUID());
1853
1866
  log("session/prompt: boot-resume banner handshake acknowledged");
1854
1867
  await emitSessionTurnState(server, params.sessionId, false, cx);
@@ -1883,12 +1896,21 @@ async function runPrompt(server, params, cx, requestId, continuationRound = fals
1883
1896
  server.connectionPromptSeen.add(promptRoot);
1884
1897
  // Materialize a lazy session/new placeholder on first use. Placed after the
1885
1898
  // empty-prompt check so an invalid request doesn't create a backend session.
1886
- const zcodeSid = await ensureRealSession(server, params.sessionId);
1887
- // Re-arm the session's out-of-band listeners (background tasks, backend
1888
- // titles): a mid-session backend respawn (sandbox flip, dynamic allow
1889
- // batches, dead-reader recovery) replaces the instance the listeners were
1890
- // registered on — ensureBackgroundListener re-registers on the current one.
1891
- await server.ensureBackgroundListener(zcodeSid);
1899
+ // A failure here (evicted session, dead backend) abandons the prompt before
1900
+ // the send — staged files must go with it.
1901
+ let zcodeSid;
1902
+ try {
1903
+ zcodeSid = await ensureRealSession(server, params.sessionId);
1904
+ // Re-arm the session's out-of-band listeners (background tasks, backend
1905
+ // titles): a mid-session backend respawn (sandbox flip, dynamic allow
1906
+ // batches, dead-reader recovery) replaces the instance the listeners were
1907
+ // registered on — ensureBackgroundListener re-registers on the current one.
1908
+ await server.ensureBackgroundListener(zcodeSid);
1909
+ }
1910
+ catch (error) {
1911
+ discardStagedFiles();
1912
+ throw error;
1913
+ }
1892
1914
  // Slash-command interception: dispatches directly to ZCode methods and
1893
1915
  // returns end_turn without entering the turn loop. Known passthrough
1894
1916
  // commands and unknown /x both return null for the normal turn loop.
@@ -1896,8 +1918,14 @@ async function runPrompt(server, params, cx, requestId, continuationRound = fals
1896
1918
  // `client` (the requesting connection) rides along so replay-shaped slash
1897
1919
  // dispatch — /resume's history replay above all — targets that connection
1898
1920
  // instead of the broadcast cx (see resumeIntoSession).
1899
- const intercepted = await handleSlashCommand(server, cx, params.sessionId, zcodeSid, text, client);
1921
+ const intercepted = !params.prompt.every((block) => block.type === "text")
1922
+ ? null
1923
+ : await handleSlashCommand(server, cx, params.sessionId, zcodeSid, text, client).catch((error) => {
1924
+ discardStagedFiles();
1925
+ throw error;
1926
+ });
1900
1927
  if (intercepted) {
1928
+ discardStagedFiles();
1901
1929
  await emitSessionTurnState(server, params.sessionId, false, cx);
1902
1930
  return intercepted;
1903
1931
  }
@@ -1977,6 +2005,10 @@ async function runPrompt(server, params, cx, requestId, continuationRound = fals
1977
2005
  await withPreemptLock(server, zcodeSid, async () => {
1978
2006
  const goalLoop = server.goalLoops?.get(zcodeSid);
1979
2007
  if (goalLoop) {
2008
+ if (attachments.length) {
2009
+ discardStagedFiles();
2010
+ throw new RequestError(-32602, "Pause the goal loop before sending attachments");
2011
+ }
1980
2012
  parked = goalLoop.parkPrompt(sendText);
1981
2013
  return;
1982
2014
  }
@@ -1989,6 +2021,7 @@ async function runPrompt(server, params, cx, requestId, continuationRound = fals
1989
2021
  // Only reachable when the compaction outlived AUTO_COMPACT_SETTLE_MS: the
1990
2022
  // hold above refused to wait indefinitely. The message was never queued, so
1991
2023
  // the user resends against a session the compaction has (by now) settled.
2024
+ discardStagedFiles();
1992
2025
  await sendTextChunk(cx, params.sessionId, messages().autoCompactBusy, randomUUID());
1993
2026
  log("session/prompt: rejected — a detached auto-compact outlived its settle cap");
1994
2027
  await emitSessionTurnState(server, params.sessionId, false, cx);
@@ -2481,7 +2514,7 @@ export function preemptInFlightTurn(server, zcodeSid, selfRequestId) {
2481
2514
  }
2482
2515
  // ---------- internals ----------
2483
2516
  /** Concatenate text from ACP ContentBlock[] into a prompt string.
2484
- * Exported for unit testing (the resource_link path is easy to break). */
2517
+ * Legacy compatibility helper; runtime prompts use convertPromptContent instead. */
2485
2518
  export function extractPromptText(blocks) {
2486
2519
  const parts = [];
2487
2520
  for (const block of blocks ?? []) {
@@ -2504,7 +2537,7 @@ export function extractPromptText(blocks) {
2504
2537
  parts.push(`[related resource: ${label}](${path})`);
2505
2538
  }
2506
2539
  else if (b.type === "resource" && b.resource) {
2507
- // Embedded resource. We don't advertise embeddedContext, but accept text
2540
+ // Legacy extraction only (not the runtime converter): accept text
2508
2541
  // payloads defensively in case a client sends them anyway. Binary
2509
2542
  // payloads (BlobResourceContents) are never decoded — the base64 blob is
2510
2543
  // useless to the model — so rewrite the resource uri into a readable