mindweave 3.3.0 → 3.4.1

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 (131) hide show
  1. package/dist/alternator/chassis/lsp.js +1 -1
  2. package/dist/alternator/chassis/lsp.js.map +1 -1
  3. package/dist/alternator/chassis/provision.js +2 -2
  4. package/dist/alternator/chassis/provision.js.map +1 -1
  5. package/dist/cli/App.js +221 -57
  6. package/dist/cli/App.js.map +1 -1
  7. package/dist/cli/attachments.js +2 -1
  8. package/dist/cli/attachments.js.map +1 -1
  9. package/dist/cli/blockHeights.js +14 -0
  10. package/dist/cli/blockHeights.js.map +1 -1
  11. package/dist/cli/components/BlockView.js +9 -1
  12. package/dist/cli/components/BlockView.js.map +1 -1
  13. package/dist/cli/components/EditGroup.js +50 -0
  14. package/dist/cli/components/EditGroup.js.map +1 -0
  15. package/dist/cli/components/FadeText.js +47 -0
  16. package/dist/cli/components/FadeText.js.map +1 -0
  17. package/dist/cli/components/PromptInput.js +26 -4
  18. package/dist/cli/components/PromptInput.js.map +1 -1
  19. package/dist/cli/components/ToolLine.js +5 -3
  20. package/dist/cli/components/ToolLine.js.map +1 -1
  21. package/dist/cli/components/WorkGroup.js +34 -23
  22. package/dist/cli/components/WorkGroup.js.map +1 -1
  23. package/dist/cli/diffRows.js +16 -0
  24. package/dist/cli/diffRows.js.map +1 -1
  25. package/dist/cli/editGroup.js +122 -0
  26. package/dist/cli/editGroup.js.map +1 -0
  27. package/dist/cli/entrance.js +95 -0
  28. package/dist/cli/entrance.js.map +1 -0
  29. package/dist/cli/framebuffer/parse.js +99 -16
  30. package/dist/cli/framebuffer/parse.js.map +1 -1
  31. package/dist/cli/framebuffer/writer.js +46 -28
  32. package/dist/cli/framebuffer/writer.js.map +1 -1
  33. package/dist/cli/help.js +6 -0
  34. package/dist/cli/help.js.map +1 -1
  35. package/dist/cli/inkSpeedLoader.js +9 -5
  36. package/dist/cli/inkSpeedLoader.js.map +1 -1
  37. package/dist/cli/inkThrottlePatch.js +43 -0
  38. package/dist/cli/inkThrottlePatch.js.map +1 -0
  39. package/dist/cli/screenMode.js +8 -1
  40. package/dist/cli/screenMode.js.map +1 -1
  41. package/dist/cli/sessionCarry.js.map +1 -1
  42. package/dist/cli/toolDisplay.js +2 -2
  43. package/dist/cli/toolDisplay.js.map +1 -1
  44. package/dist/cli/transcript.js +67 -14
  45. package/dist/cli/transcript.js.map +1 -1
  46. package/dist/cli/workLines.js +27 -4
  47. package/dist/cli/workLines.js.map +1 -1
  48. package/dist/core/turnRunner.js +98 -7
  49. package/dist/core/turnRunner.js.map +1 -1
  50. package/dist/drivers/anthropic/client.js +16 -3
  51. package/dist/drivers/anthropic/client.js.map +1 -1
  52. package/dist/drivers/anthropic/manifest.js +10 -0
  53. package/dist/drivers/anthropic/manifest.js.map +1 -1
  54. package/dist/drivers/glm/manifest.js +9 -0
  55. package/dist/drivers/glm/manifest.js.map +1 -1
  56. package/dist/drivers/groq/manifest.js +5 -0
  57. package/dist/drivers/groq/manifest.js.map +1 -1
  58. package/dist/drivers/mistral/client.js +3 -0
  59. package/dist/drivers/mistral/client.js.map +1 -1
  60. package/dist/drivers/openai/client.js +3 -0
  61. package/dist/drivers/openai/client.js.map +1 -1
  62. package/dist/drivers/openai/manifest.js +5 -0
  63. package/dist/drivers/openai/manifest.js.map +1 -1
  64. package/dist/drivers/openaiCompat/wire.js +7 -2
  65. package/dist/drivers/openaiCompat/wire.js.map +1 -1
  66. package/dist/drivers/openrouter/client.js +6 -0
  67. package/dist/drivers/openrouter/client.js.map +1 -1
  68. package/dist/drivers/xai/client.js +9 -0
  69. package/dist/drivers/xai/client.js.map +1 -1
  70. package/dist/dynamo/cacheBreak.js +8 -5
  71. package/dist/dynamo/cacheBreak.js.map +1 -1
  72. package/dist/dynamo/contextWindow.js +64 -12
  73. package/dist/dynamo/contextWindow.js.map +1 -1
  74. package/dist/dynamo/engine.js +132 -66
  75. package/dist/dynamo/engine.js.map +1 -1
  76. package/dist/dynamo/prompt.js +8 -2
  77. package/dist/dynamo/prompt.js.map +1 -1
  78. package/dist/dynamo/toolAliases.js +73 -0
  79. package/dist/dynamo/toolAliases.js.map +1 -0
  80. package/dist/dynamo/toolArgs.js +82 -0
  81. package/dist/dynamo/toolArgs.js.map +1 -0
  82. package/dist/dynamo/verify.js +16 -2
  83. package/dist/dynamo/verify.js.map +1 -1
  84. package/dist/memory/clearedArchive.js +2 -20
  85. package/dist/memory/clearedArchive.js.map +1 -1
  86. package/dist/memory/compaction.js +3 -1
  87. package/dist/memory/compaction.js.map +1 -1
  88. package/dist/memory/localCommand.js +30 -3
  89. package/dist/memory/localCommand.js.map +1 -1
  90. package/dist/memory/presence.js +44 -0
  91. package/dist/memory/presence.js.map +1 -1
  92. package/dist/memory/session.js +4 -0
  93. package/dist/memory/session.js.map +1 -1
  94. package/dist/memory/store.js +27 -4
  95. package/dist/memory/store.js.map +1 -1
  96. package/dist/memory/types.js.map +1 -1
  97. package/dist/memory/userNotes.js +17 -0
  98. package/dist/memory/userNotes.js.map +1 -0
  99. package/dist/tools/backgroundShells.js +38 -7
  100. package/dist/tools/backgroundShells.js.map +1 -1
  101. package/dist/tools/deferredNative.js +24 -0
  102. package/dist/tools/deferredNative.js.map +1 -1
  103. package/dist/tools/edit.js +18 -3
  104. package/dist/tools/edit.js.map +1 -1
  105. package/dist/tools/editCore.js +107 -1
  106. package/dist/tools/editCore.js.map +1 -1
  107. package/dist/tools/mcpSearch.js +8 -2
  108. package/dist/tools/mcpSearch.js.map +1 -1
  109. package/dist/tools/readFile.js +16 -1
  110. package/dist/tools/readFile.js.map +1 -1
  111. package/dist/tools/rebuildDetail.js +94 -3
  112. package/dist/tools/rebuildDetail.js.map +1 -1
  113. package/dist/tools/registry.js +12 -12
  114. package/dist/tools/registry.js.map +1 -1
  115. package/dist/tools/runCommand.js +10 -3
  116. package/dist/tools/runCommand.js.map +1 -1
  117. package/dist/tools/screenshot.js +42 -3
  118. package/dist/tools/screenshot.js.map +1 -1
  119. package/dist/tools/screenshotWin.js +221 -216
  120. package/dist/tools/screenshotWin.js.map +1 -1
  121. package/dist/tools/search.js +4 -1
  122. package/dist/tools/search.js.map +1 -1
  123. package/dist/tools/shellTools.js +17 -25
  124. package/dist/tools/shellTools.js.map +1 -1
  125. package/dist/tools/ui.js +26 -9
  126. package/dist/tools/ui.js.map +1 -1
  127. package/dist/tools/uiWin.js +4 -1
  128. package/dist/tools/uiWin.js.map +1 -1
  129. package/dist/tools/untrusted.js +24 -0
  130. package/dist/tools/untrusted.js.map +1 -1
  131. package/package.json +78 -78
@@ -211,6 +211,110 @@ export function describeMatches(haystack, matches, max = 4) {
211
211
  "or set replace_all: true if all of them should change.";
212
212
  return blocks.join("\n\n") + more + hint;
213
213
  }
214
+ /** Most needle lines and file lines the nearest-text search looks at, so a huge paste against a huge file stays quick. */
215
+ const NEAR_MAX_NEEDLE_LINES = 60;
216
+ const NEAR_MAX_FILE_LINES = 20_000;
217
+ /** A window must be at least this alike, on average, to be called "the closest text". */
218
+ const NEAR_FLOOR = 0.55;
219
+ /** How alike two lines are, 0 to 1: 1 when equal once trimmed, otherwise the share of two-letter pairs they have in common. */
220
+ function lineSimilarity(a, b) {
221
+ const x = a.trim();
222
+ const y = b.trim();
223
+ if (x === y)
224
+ return 1;
225
+ if (x.length < 2 || y.length < 2)
226
+ return 0;
227
+ const pairs = new Map();
228
+ for (let i = 0; i < x.length - 1; i++)
229
+ pairs.set(x.slice(i, i + 2), (pairs.get(x.slice(i, i + 2)) ?? 0) + 1);
230
+ let shared = 0;
231
+ for (let i = 0; i < y.length - 1; i++) {
232
+ const key = y.slice(i, i + 2);
233
+ const left = pairs.get(key);
234
+ if (left) {
235
+ shared++;
236
+ pairs.set(key, left - 1);
237
+ }
238
+ }
239
+ return (2 * shared) / (x.length + y.length - 2);
240
+ }
241
+ const clip = (s, n = 150) => (s.trim().length > n ? `${s.trim().slice(0, n)}…` : s.trim());
242
+ /**
243
+ * What to tell the model when `old_string` is not in the file (pure).
244
+ *
245
+ * "Not found, copy the text from the file" sends it back to re-read the whole file and guess again, which is how a
246
+ * 4% failure rate cost one to eleven more calls each. The two things it needs are almost always in the file already:
247
+ * whether the change is ALREADY there (the edit was applied, or a retry repeats one that worked), and the nearest
248
+ * text with the lines that differ, which is usually one line with a changed argument or a different quote.
249
+ * Nothing here changes what matches; it only describes the miss.
250
+ */
251
+ export function describeMiss(haystack, needle, replacement) {
252
+ const fileLines = haystack.split("\n");
253
+ // The change is already in the file: say where, because re-applying it is the wrong fix.
254
+ if (replacement.trim().length >= 12 && replacement !== needle) {
255
+ const done = findMatches(haystack, replacement).matches;
256
+ if (done.length > 0) {
257
+ return (`The text you want to write is already in the file (line ${done[0].line}), so this edit may have been applied already. ` +
258
+ `Read that part of the file before changing it again.`);
259
+ }
260
+ }
261
+ const wanted = needle.split("\n");
262
+ if (wanted.length > 1 && wanted[wanted.length - 1] === "")
263
+ wanted.pop();
264
+ const asked = wanted.slice(0, NEAR_MAX_NEEDLE_LINES);
265
+ if (asked.length === 0 || asked.every((l) => !l.trim()) || fileLines.length > NEAR_MAX_FILE_LINES)
266
+ return "";
267
+ // Comparing every window with every line is too slow on a big file (8 s for 20,000 lines), so the search is
268
+ // anchored: the few longest lines of the request are matched against every file line, and only the windows
269
+ // those lines point at are scored whole. A longest line is the one least likely to be the line that changed.
270
+ const anchors = asked
271
+ .map((l, j) => ({ j, len: l.trim().length }))
272
+ .filter((a) => a.len > 0)
273
+ .sort((a, b) => b.len - a.len)
274
+ .slice(0, 3);
275
+ const starts = new Set();
276
+ for (const { j } of anchors) {
277
+ const near = fileLines
278
+ .map((l, k) => ({ k, s: lineSimilarity(l, asked[j]) }))
279
+ .filter((x) => x.s >= NEAR_FLOOR)
280
+ .sort((a, b) => b.s - a.s)
281
+ .slice(0, 6);
282
+ for (const { k } of near)
283
+ if (k - j >= 0 && k - j + asked.length <= fileLines.length)
284
+ starts.add(k - j);
285
+ }
286
+ let best = { at: -1, score: 0 };
287
+ for (const i of starts) {
288
+ let sum = 0;
289
+ for (let j = 0; j < asked.length; j++)
290
+ sum += lineSimilarity(fileLines[i + j], asked[j]);
291
+ const score = sum / asked.length;
292
+ if (score > best.score)
293
+ best = { at: i, score };
294
+ }
295
+ if (best.at < 0 || best.score < NEAR_FLOOR) {
296
+ return "Nothing in the file is close to it, so the text may be in another file or may have been removed. Search for a distinctive line of it.";
297
+ }
298
+ const differing = [];
299
+ let same = 0;
300
+ for (let j = 0; j < asked.length; j++) {
301
+ const there = fileLines[best.at + j];
302
+ if (there.trim() === asked[j].trim())
303
+ same++;
304
+ else if (differing.length < 3)
305
+ differing.push(` line ${j + 1} of yours: ${clip(asked[j])}\n the file has: ${clip(there)}`);
306
+ }
307
+ const from = best.at + 1;
308
+ const to = best.at + asked.length;
309
+ const shown = fileLines
310
+ .slice(best.at, best.at + Math.min(asked.length, 8))
311
+ .map((l, k) => ` ${String(from + k).padStart(5)} | ${l}`)
312
+ .join("\n");
313
+ return (`The closest text is at line${to > from ? `s ${from}-${to}` : ` ${from}`} (${same} of ${asked.length} line${asked.length === 1 ? "" : "s"} match):\n${shown}` +
314
+ (asked.length > 8 ? "\n …" : "") +
315
+ (differing.length > 0 ? `\nWhere it differs:\n${differing.join("\n")}` : "") +
316
+ `\nCopy the file's own text from here.`);
317
+ }
214
318
  /**
215
319
  * Apply one exact edit to already-LF-normalized `text`. The `oldString`/`newString`
216
320
  * are normalized here too. Returns the updated text and where the change landed, or
@@ -230,10 +334,12 @@ export function applyOneEdit(text, op) {
230
334
  return { ok: false, reason: "old_string and new_string are identical — nothing to change" };
231
335
  const { matches } = findMatches(haystack, needle);
232
336
  if (matches.length === 0) {
337
+ const miss = describeMiss(haystack, needle, replacement);
233
338
  return {
234
339
  ok: false,
235
340
  reason: "old_string not found. It must match the file's text, allowing only for differences in each line's " +
236
- "leading/trailing whitespace. Re-read the file and copy the target text from what you are shown",
341
+ "leading/trailing whitespace." +
342
+ (miss ? `\n${miss}` : " Re-read the file and copy the target text from what you are shown"),
237
343
  };
238
344
  }
239
345
  if (matches.length > 1 && !op.replaceAll) {
@@ -1 +1 @@
1
- {"version":3,"file":"editCore.js","sourceRoot":"","sources":["../../src/tools/editCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editCore.js","sourceRoot":"","sources":["../../src/tools/editCore.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { MAX_SEARCH_RESULTS, renderResults } from "../mcp/deferred.js";
2
- import { DEFERRED_TOOLS, matchDeferred, renderToolSchema } from "./deferredNative.js";
2
+ import { DEFERRED_TOOLS, matchDeferred, renderToolSchema, withRelated } from "./deferredNative.js";
3
3
  export const findTools = {
4
4
  name: "find_tools",
5
5
  readOnly: true,
@@ -50,13 +50,16 @@ export const findTools = {
50
50
  // the whole prefix — tools, system AND messages — at full price, which cost several
51
51
  // times what the deferral saved. Dispatch resolves against the registry, so a name
52
52
  // and a schema is everything the model needs. See deferredNative.renderToolSchema.
53
- const native = matchDeferred(query);
53
+ const native = withRelated(matchDeferred(query));
54
54
  // Activate what was found: from now on these are added to the advertised tool list
55
55
  // (registry.toolSchemas), so a strict function-calling model can actually emit the
56
56
  // call. Without this the schema below is callable in name only — the model sees it and
57
57
  // cannot invoke it, because it is not in the request's `tools` array.
58
58
  for (const t of native)
59
59
  ctx.activatedTools?.add(t.name);
60
+ // Named for a provider that loads tools by reference. Left off a result that also carries MCP
61
+ // matches, because that provider is sent these names instead of the text and would lose them.
62
+ const loadedNames = native.map((t) => t.name);
60
63
  const nativeBlock = native.length > 0
61
64
  ? `${native.length} of your own tool${native.length === 1 ? "" : "s"}, callable from now on:\n\n<functions>\n` +
62
65
  native.map(renderToolSchema).join("\n") +
@@ -74,6 +77,7 @@ export const findTools = {
74
77
  return {
75
78
  output: `${nativeBlock}\n\nNo MCP servers are connected in this project, so there is nothing else to search.`,
76
79
  summary: `loaded ${native.map((t) => t.name).join(", ")}`,
80
+ loaded: loadedNames,
77
81
  };
78
82
  }
79
83
  return {
@@ -92,6 +96,7 @@ export const findTools = {
92
96
  return {
93
97
  output: nativeBlock ? `${nativeBlock}\n\n${note}` : note,
94
98
  summary: nativeBlock ? `loaded ${native.map((t) => t.name).join(", ")}` : "nothing deferred",
99
+ ...(loadedNames.length > 0 ? { loaded: loadedNames } : {}),
95
100
  };
96
101
  }
97
102
  const found = mcp.searchCatalogTools(query);
@@ -102,6 +107,7 @@ export const findTools = {
102
107
  return {
103
108
  output: nativeBlock ? `${nativeBlock}\n\n${note}` : note,
104
109
  summary: nativeBlock ? `loaded ${native.map((t) => t.name).join(", ")}` : `no match for "${query}"`,
110
+ ...(loadedNames.length > 0 ? { loaded: loadedNames } : {}),
105
111
  };
106
112
  }
107
113
  // A capped search looks exactly like an exhaustive one. That matters more here than
@@ -1 +1 @@
1
- {"version":3,"file":"mcpSearch.js","sourceRoot":"","sources":["../../src/tools/mcpSearch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpSearch.js","sourceRoot":"","sources":["../../src/tools/mcpSearch.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGnG,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,IAAI;IACd,qFAAqF;IACrF,sFAAsF;IACtF,4EAA4E;IAC5E,WAAW,EACT,sFAAsF;QACtF,uFAAuF;QACvF,oFAAoF;QACpF,wFAAwF;QACxF,sFAAsF;QACtF,kFAAkF;QAClF,gFAAgF;QAChF,gFAAgF;QAChF,gBAAgB;QAChB,kFAAkF;QAClF,gFAAgF;QAChF,oFAAoF;QACpF,oFAAoF;QACpF,yDAAyD,kBAAkB,SAAS;QACpF,qFAAqF;QACrF,kFAAkF;QAClF,uFAAuF;IACzF,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,CAAC,OAAO,CAAC;QACnB,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iEAAiE;aAC/E;SACF;KACF;IACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAgB;QAClC,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,6BAA6B,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAEjG,kFAAkF;QAClF,+EAA+E;QAC/E,6FAA6F;QAC7F,mFAAmF;QACnF,oFAAoF;QACpF,4CAA4C;QAC5C,iFAAiF;QACjF,sFAAsF;QACtF,qFAAqF;QACrF,oFAAoF;QACpF,mFAAmF;QACnF,mFAAmF;QACnF,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,mFAAmF;QACnF,mFAAmF;QACnF,uFAAuF;QACvF,sEAAsE;QACtE,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxD,8FAA8F;QAC9F,8FAA8F;QAC9F,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,GAAG,CAAC;YACf,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,oBAAoB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,0CAA0C;gBAC5G,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvC,gBAAgB;YAClB,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,MAAM,QAAQ,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC;QAEjC,2EAA2E;QAC3E,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,WAAW,EAAE,CAAC;gBAChB,gFAAgF;gBAChF,0EAA0E;gBAC1E,8EAA8E;gBAC9E,iFAAiF;gBACjF,OAAO;oBACL,MAAM,EAAE,GAAG,WAAW,uFAAuF;oBAC7G,OAAO,EAAE,UAAU,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACzD,MAAM,EAAE,WAAW;iBACpB,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EACJ,oBAAoB,KAAK,wEAAwE;oBACjG,mBAAmB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC;oBACnG,0DAA0D;gBAC5D,OAAO,EAAE,iBAAiB,KAAK,GAAG;aACnC,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,mFAAmF;QACnF,0DAA0D;QAC1D,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,GACR,OAAO,QAAQ,CAAC,SAAS,YAAY,QAAQ,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,iCAAiC;gBAChH,iHAAiH,CAAC;YACpH,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;gBACxD,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB;gBAC5F,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,GACR,wBAAwB,KAAK,YAAY,QAAQ,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,SAAS,GAAG;gBACzG,sGAAsG;gBACtG,mGAAmG,CAAC;YACtG,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;gBACxD,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,GAAG;gBACnG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D,CAAC;QACJ,CAAC;QAED,oFAAoF;QACpF,qFAAqF;QACrF,iFAAiF;QACjF,kFAAkF;QAClF,wCAAwC;QACxC,MAAM,MAAM,GACV,KAAK,CAAC,MAAM,KAAK,kBAAkB;YACjC,CAAC,CAAC,uBAAuB,kBAAkB,yDAAyD;gBAClG,uFAAuF;YACzF,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,QAAQ,GACZ,UAAU,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,kBAAkB;YACjF,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,YAAY,aAAa,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC;QACnF,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ;YAChE,OAAO,EAAE,UAAU,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;SACvG,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpD,SAAS,CAAC,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC"}
@@ -14,7 +14,7 @@ import { promises as fs } from "node:fs";
14
14
  import { foreignAgentReason, guardedPathReason } from "./guard.js";
15
15
  import { requestAgentDataAccess } from "./approval.js";
16
16
  import { relativize, resolvePath, nextTouch, touch, markScope } from "./paths.js";
17
- import { addFocus } from "./focus.js";
17
+ import { addFocus, coversSpan } from "./focus.js";
18
18
  import { chassisForPath } from "./chassisMux.js";
19
19
  import { renderOutlineEntries } from "./codeIntel.js";
20
20
  import { estimateTokens } from "../memory/compaction.js";
@@ -233,6 +233,21 @@ async function readOne(rawPath, ctx, offset, limit) {
233
233
  const shown = relativize(ctx, filePath);
234
234
  return { label: shown, body: FILE_UNCHANGED, summary: `read ${shown} (unchanged)` };
235
235
  }
236
+ // The same for a range: lines the model was already sent, still in the conversation, from a file
237
+ // that has not changed. Answered in a line instead of sending the same lines again.
238
+ if (!full && unchanged) {
239
+ const wantFrom = offset ?? 1;
240
+ const wantTo = wantFrom - 1 + (limit ?? MAX_LINES);
241
+ if (coversSpan(ctx.transcriptRanges?.get(filePath), wantFrom, wantTo)) {
242
+ touch(ctx, filePath);
243
+ const shown = relativize(ctx, filePath);
244
+ return {
245
+ label: shown,
246
+ body: `You already have lines ${wantFrom}-${wantTo} of this file, unchanged, earlier in this conversation — use that instead of re-reading.`,
247
+ summary: `read ${shown} lines ${wantFrom}-${wantTo} (unchanged)`,
248
+ };
249
+ }
250
+ }
236
251
  if (limit === undefined && stat.size > MAX_BYTES) {
237
252
  return bad(`File is large (${formatBytes(stat.size)}). Read a range with \`offset\` and \`limit\` instead of the whole file.`);
238
253
  }
@@ -1 +1 @@
1
- {"version":3,"file":"readFile.js","sourceRoot":"","sources":["../../src/tools/readFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readFile.js","sourceRoot":"","sources":["../../src/tools/readFile.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,9 @@
15
15
  * what the model was shown, which can already have had its middle cut, and that cut is
16
16
  * kept as it was rather than papered over.
17
17
  */
18
- import { FULL_DETAIL_MAX, SEARCH_PREVIEW_SOURCES, multiEditDetail, oneLineSteps, sessionDetailFull, shellOutput, uiOpenedText, withScope, writeDetail } from "./detail.js";
18
+ import { FULL_DETAIL_MAX, SEARCH_PREVIEW_SOURCES, capLines, multiEditDetail, oneLineSteps, sessionDetailFull, shellOutput, uiOpenedText, withScope, writeDetail } from "./detail.js";
19
19
  import { pageLine } from "./ui.js";
20
+ import { readFileSync } from "node:fs";
20
21
  /** The rows of `detail` that come before the body: the scope line of a diff. */
21
22
  function leadingScope(detail) {
22
23
  if (!detail)
@@ -34,6 +35,16 @@ function shellFrame(detail) {
34
35
  const tail = last && /^[✓✗✖]/.test(last) ? last : undefined;
35
36
  return { head, tail };
36
37
  }
38
+ /**
39
+ * What a saved search printed, for the row's click (pure). A chat saved before searches had a
40
+ * row kept only what the model was given, and that is exactly what the search printed. Undefined
41
+ * once context clearing has replaced it with a note, which is not what the search printed.
42
+ */
43
+ export function searchDetailFromContent(content) {
44
+ if (!content.trim() || content.includes("[old tool result cleared") || content.startsWith("Error:"))
45
+ return undefined;
46
+ return capLines(content.split("\n"), FULL_DETAIL_MAX);
47
+ }
37
48
  /**
38
49
  * The block as the live row would have held it, bounded the way a saved session bounds it,
39
50
  * or undefined when this call has nothing more to open.
@@ -54,16 +65,27 @@ export function rebuildFull(tool, args, entry) {
54
65
  if (ops.length === 0)
55
66
  return undefined;
56
67
  const scope = leadingScope(entry.detail);
68
+ // The call holds the old and new text, not the file, so all it can show is every old line removed and every new line
69
+ // added. That is the real change only when nothing in the replaced text stayed the same. An edit that re-sent a whole
70
+ // block with two lines added was shown as -5 +9 above a row that said -0 +2, and a stored row that already showed the
71
+ // whole real diff was made to "open" onto this one. The row's own count says which it is.
72
+ const said = scope ? /[−-](\d+) \+(\d+)\s*$/.exec(scope) : null;
73
+ const rows = (s) => s.replace(/\n$/, "").split("\n").length;
74
+ if (!said || Number(said[1]) !== ops.reduce((n, o) => n + rows(o.oldString), 0) || Number(said[2]) !== ops.reduce((n, o) => n + rows(o.newString), 0))
75
+ return undefined;
57
76
  const body = multiEditDetail(ops, FULL_DETAIL_MAX);
58
77
  full = scope ? withScope(scope, body) : body;
59
78
  }
60
79
  else if (tool === "run_command") {
61
80
  // Output that context clearing has already replaced is not the output: rebuilding from it
62
81
  // would show the model's note as if the command had printed it.
63
- if (entry.content.includes("[old tool result cleared"))
82
+ // The copy clearing saved before it emptied the result IS the output, and is used in its place.
83
+ const cleared = entry.content.includes("[old tool result cleared");
84
+ const source = cleared ? savedCopyText(entry.content) : entry.content;
85
+ if (source === undefined)
64
86
  return undefined;
65
87
  const { head, tail } = shellFrame(entry.detail);
66
- const out = shellOutput(entry.content, FULL_DETAIL_MAX);
88
+ const out = shellOutput(source, FULL_DETAIL_MAX);
67
89
  full = [head, out || undefined, tail].filter((l) => !!l).join("\n");
68
90
  }
69
91
  return sessionDetailFull(entry.detail, full);
@@ -199,4 +221,73 @@ export function compactSearchDetail(detail) {
199
221
  ];
200
222
  return { detail: shown.join("\n"), ...(whole.length > shown.length ? { detailFull: whole.join("\n") } : {}) };
201
223
  }
224
+ /** Where a cleared result was saved, from the stub it left (pure): `[saved at <file> · 57 lines …]`. */
225
+ export function savedCopyPath(content) {
226
+ return /\[saved at (.+?) · \d+ lines/.exec(content)?.[1];
227
+ }
228
+ /** What a cleared result saved, whole, or undefined when there is no copy (or it is gone). */
229
+ export function savedCopyText(content) {
230
+ const saved = savedCopyPath(content);
231
+ if (!saved)
232
+ return undefined;
233
+ try {
234
+ const text = readFileSync(saved, "utf8");
235
+ return text.trim() ? text : undefined;
236
+ }
237
+ catch {
238
+ return undefined;
239
+ }
240
+ }
241
+ /** The same, bounded the way a row's block is. */
242
+ export function recoverSavedText(content) {
243
+ const text = savedCopyText(content);
244
+ return text === undefined ? undefined : capLines(text.replace(/\n$/, "").split("\n"), FULL_DETAIL_MAX);
245
+ }
246
+ /**
247
+ * The text of a read, put back for the screen when clearing old context took it out of the conversation.
248
+ *
249
+ * Clearing is for what the MODEL carries; what the person sees is never lost to it. Tried in order: the copy clearing
250
+ * saved before it emptied the result (exactly what was read), then the file as it is now, for a chat cleared before
251
+ * copies were saved. That last one says it is the file as it is now, because it may have changed since.
252
+ * Undefined only when the file is gone as well.
253
+ */
254
+ export function recoverReadText(content, call, cwd, read, resolvePath) {
255
+ const saved = savedCopyPath(content);
256
+ if (saved) {
257
+ const text = read(saved);
258
+ if (text !== undefined && text.trim())
259
+ return capLines(text.replace(/\n$/, "").split("\n"), FULL_DETAIL_MAX);
260
+ }
261
+ const args = call?.args ?? {};
262
+ const paths = [];
263
+ const one = (p) => {
264
+ if (typeof p === "string")
265
+ paths.push(p);
266
+ else if (p && typeof p === "object" && typeof p.path === "string")
267
+ paths.push(p.path);
268
+ };
269
+ one(args.path);
270
+ if (Array.isArray(args.paths))
271
+ for (const p of args.paths)
272
+ one(p);
273
+ if (paths.length === 0)
274
+ return undefined;
275
+ const offset = typeof args.offset === "number" && args.offset > 0 ? args.offset : 1;
276
+ const limit = typeof args.limit === "number" && args.limit > 0 ? args.limit : undefined;
277
+ const parts = [];
278
+ for (const p of paths) {
279
+ const raw = read(resolvePath(cwd, p));
280
+ if (raw === undefined)
281
+ continue;
282
+ const lines = raw.replace(/\r\n/g, "\n").replace(/\n$/, "").split("\n");
283
+ const end = Math.min(lines.length, limit === undefined ? lines.length : offset - 1 + limit);
284
+ const width = String(end).length;
285
+ const body = lines.slice(offset - 1, end).map((l, i) => `${String(offset + i).padStart(width)}\t${l}`).join("\n");
286
+ parts.push(paths.length > 1 ? `${p}\n${body}` : body);
287
+ }
288
+ if (parts.length === 0)
289
+ return undefined;
290
+ const note = /CHANGED since/.test(content) ? "(the file has changed since it was read; this is the file as it is now)" : "(this is the file as it is now; it may have changed since it was read)";
291
+ return capLines([note, ...parts.join("\n\n").split("\n")], FULL_DETAIL_MAX);
292
+ }
202
293
  //# sourceMappingURL=rebuildDetail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rebuildDetail.js","sourceRoot":"","sources":["../../src/tools/rebuildDetail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rebuildDetail.js","sourceRoot":"","sources":["../../src/tools/rebuildDetail.ts"],"names":[],"mappings":"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"}
@@ -74,18 +74,18 @@ export const TOOLS = [
74
74
  export function findTool(name) {
75
75
  return TOOLS.find((tool) => tool.name === name);
76
76
  }
77
+ export function toolSchemas(opts = {}) {
78
+ return schemasOf(opts, false);
79
+ }
77
80
  /**
78
- * The OpenAI-style `tools[]` array we send to the provider so the model knows
79
- * what it can call. Built straight from the registry — one source of truth.
80
- *
81
- * In `planMode` (the CLI's Architect mode) only read-only tools are advertised,
82
- * so the model plans and researches without ever being offered edit/write/run.
83
- * `readOnlyOnly` does the same filtering without the plan framing — used to make a
84
- * research sub-agent read-only. Execution is guarded independently in the engine,
85
- * so a stray mutating call is still refused — this just keeps the model from
86
- * reaching for one.
81
+ * Every deferred tool this session could be offered, in registry order, whether or not it has been
82
+ * found. For a provider that loads a found tool by reference: it is sent this whole list on every
83
+ * request, marked as held back, so finding a tool adds nothing to what it was sent before.
87
84
  */
88
- export function toolSchemas(opts = {}) {
85
+ export function deferredSchemas(opts = {}) {
86
+ return schemasOf(opts, true);
87
+ }
88
+ function schemasOf(opts, onlyDeferred) {
89
89
  const readOnly = opts.planMode || opts.readOnlyOnly;
90
90
  // `planOnly` runs the filter the other way: those tools exist BECAUSE planning is
91
91
  // happening, so they appear only in plan mode and are hidden the rest of the time.
@@ -105,10 +105,10 @@ export function toolSchemas(opts = {}) {
105
105
  // is worse than a cache miss. Activation is monotonic (the set only grows), so the
106
106
  // rebuild happens once per capability, not once per call. Nothing activated → identical
107
107
  // bytes to before, so the common session pays nothing.
108
- const activated = opts.ctx?.activatedTools;
108
+ const activated = opts.fixedList ? undefined : opts.ctx?.activatedTools;
109
109
  const tools = (readOnly ? TOOLS.filter((tool) => tool.readOnly || (!opts.planMode && opts.alsoAllow?.has(tool.name))) : TOOLS)
110
110
  .filter((tool) => (tool.planOnly ? opts.planMode === true : true))
111
- .filter((tool) => !tool.deferred || (activated?.has(tool.name) ?? false))
111
+ .filter((tool) => (onlyDeferred ? tool.deferred === true : !tool.deferred || (activated?.has(tool.name) ?? false)))
112
112
  // `relevantWhen` needs the live session; with no ctx (a schema-shape test, a
113
113
  // count) the tool is shown, because hiding it would be a false negative about
114
114
  // what the registry contains.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B,wBAAwB;IACxB,MAAM;IACN,QAAQ;IACR,GAAG;IACH,gDAAgD;IAChD,WAAW;IACX,cAAc;IACd,cAAc;IACd,cAAc;IACd,+DAA+D;IAC/D,UAAU;IACV,uFAAuF;IACvF,0CAA0C;IAC1C,SAAS;IACT,eAAe;IACf,sEAAsE;IACtE,YAAY;IACZ,+DAA+D;IAC/D,QAAQ;IACR,+EAA+E;IAC/E,WAAW;IACX,yDAAyD;IACzD,SAAS;IACT,UAAU;IACV,+DAA+D;IAC/D,EAAE;IACF,yEAAyE;IACzE,QAAQ;IACR,oBAAoB;IACpB,SAAS;IACT,IAAI;IACJ,iBAAiB;IACjB,aAAa;IACb,UAAU;IACV,SAAS;IACT,aAAa;IACb,SAAS;IACT,gFAAgF;IAChF,cAAc;IACd,+EAA+E;IAC/E,QAAQ;IACR,SAAS;IACT,eAAe;IACf,SAAS;CACV,CAAC;AAEF,mDAAmD;AACnD,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,OAAyL,EAAE;IAE3L,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC;IACpD,kFAAkF;IAClF,mFAAmF;IACnF,yEAAyE;IACzE,EAAE;IACF,mFAAmF;IACnF,yFAAyF;IACzF,wCAAwC;IACxC,EAAE;IACF,yFAAyF;IACzF,oFAAoF;IACpF,qFAAqF;IACrF,sFAAsF;IACtF,sFAAsF;IACtF,sFAAsF;IACtF,yFAAyF;IACzF,mFAAmF;IACnF,wFAAwF;IACxF,uDAAuD;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAC3H,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACjE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;QACzE,6EAA6E;QAC7E,8EAA8E;QAC9E,8BAA8B;SAC7B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B;KACF,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ import { defaultOpenRewrite } from "./openDefault.js";
21
21
  import { verifierCommandReason } from "./verifierCommands.js";
22
22
  import { composeFileOutput, createOutputFile, removeOutputFile, tailOf } from "./commandOutput.js";
23
23
  import { stripNativeStderrNoise } from "./nativeStderr.js";
24
+ import { COMMAND_OUTPUT_NOTE, commandReachesOutside, defangHarnessMarkers } from "./untrusted.js";
24
25
  import { hiddenDesktopName, launcherPath, VIRTUAL_DISPLAY_ARGS, wantsHiddenDesktop } from "./hiddenDesktop.js";
25
26
  const IS_WINDOWS = process.platform === "win32";
26
27
  /**
@@ -117,7 +118,7 @@ export function commandTurnedAway(args, ctx) {
117
118
  // kill-then-relaunch is untouched and a server that failed to start can still be
118
119
  // retried. The cooldown lets a restart the user asks for later through.
119
120
  // Not for the person's own command: closing an app and starting it again is a restart, theirs to make.
120
- const closed = ctx.userInitiated ? undefined : findRecentUserClose(ctx.backgroundShells.list(), command, Date.now());
121
+ const closed = ctx.userInitiated ? undefined : findRecentUserClose(ctx.backgroundShells.list(), command, Date.now(), undefined, ctx.userTurnAt ?? 0);
121
122
  if (closed) {
122
123
  const secs = closed.finishedAt ? Math.round((Date.now() - closed.finishedAt) / 1000) : 0;
123
124
  return {
@@ -713,7 +714,7 @@ function settledResult(s, command, id, windowMs) {
713
714
  if (s.outcome === "aborted") {
714
715
  return { output: "Interrupted while starting.", isError: true, summary: `interrupted \`${clip(command)}\`` };
715
716
  }
716
- const tail = s.output.trim() ? `Output so far:\n${s.output.trim()}` : "It has printed nothing so far.";
717
+ const tail = s.output.trim() ? `Output so far:\n${defangHarnessMarkers(s.output.trim())}` : "It has printed nothing so far.";
717
718
  if (s.outcome === "ended") {
718
719
  const how = s.info.signal ? `was stopped (${s.info.signal})` : `exited with code ${s.info.exitCode ?? "unknown"}`;
719
720
  return {
@@ -950,7 +951,9 @@ keptPath) {
950
951
  parts.push(`Command exited with code ${exitCode}.`);
951
952
  }
952
953
  if (body) {
953
- parts.push(body);
954
+ // The model's copy only (`body` itself is what the screen shows): the harness's own tags cannot pass for
955
+ // the harness's words, and a command that brought in outside text says so after it (see below).
956
+ parts.push(defangHarnessMarkers(body));
954
957
  // The gap is already marked inline, at the point it happened; this only names
955
958
  // the shape of what arrived so the model doesn't read the two halves as one run.
956
959
  //
@@ -992,6 +995,10 @@ keptPath) {
992
995
  const moved = cwdChangeNote(cwdBefore, ctx.cwd, shown);
993
996
  if (moved)
994
997
  parts.push(moved);
998
+ // Last, where it is read last. Only for a command that brought in text from outside (a page, a package's
999
+ // message, a commit message): a note on every result would cost tokens on every call for nothing.
1000
+ if (body && commandReachesOutside(command))
1001
+ parts.push(COMMAND_OUTPUT_NOTE);
995
1002
  const status = timedOut ? "timed out" : signal ? `killed (${signal})` : exitCode === 0 ? "ok" : `exit ${exitCode}`;
996
1003
  const failed = timedOut || signal !== null || (exitCode !== 0 && exitCode !== null);
997
1004
  // Only for a command that RAN to a conclusion. A run killed on a timeout has whatever