@burtson-labs/agent-core 1.6.17 → 1.6.19

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 (37) hide show
  1. package/dist/tools/core-tools.js +6 -6
  2. package/dist/tools/core-tools.js.map +1 -1
  3. package/dist/tools/language-adapters.d.ts +1 -1
  4. package/dist/tools/language-adapters.d.ts.map +1 -1
  5. package/dist/tools/language-adapters.js +12 -6
  6. package/dist/tools/language-adapters.js.map +1 -1
  7. package/dist/tools/loop/goalAnchor.d.ts.map +1 -1
  8. package/dist/tools/loop/goalAnchor.js +2 -1
  9. package/dist/tools/loop/goalAnchor.js.map +1 -1
  10. package/dist/tools/loop/llmStream.js +5 -5
  11. package/dist/tools/loop/llmStream.js.map +1 -1
  12. package/dist/tools/loop/loopShared.d.ts +20 -0
  13. package/dist/tools/loop/loopShared.d.ts.map +1 -0
  14. package/dist/tools/loop/loopShared.js +105 -0
  15. package/dist/tools/loop/loopShared.js.map +1 -0
  16. package/dist/tools/loop/parallelExecute.d.ts +1 -1
  17. package/dist/tools/loop/turnSetup.js +3 -3
  18. package/dist/tools/loop/turnSetup.js.map +1 -1
  19. package/dist/tools/skills/mail-search-skill.js +2 -2
  20. package/dist/tools/skills/mail-search-skill.js.map +1 -1
  21. package/dist/tools/tool-registry.d.ts +17 -0
  22. package/dist/tools/tool-registry.d.ts.map +1 -1
  23. package/dist/tools/tool-registry.js +100 -25
  24. package/dist/tools/tool-registry.js.map +1 -1
  25. package/dist/tools/tool-use-loop.d.ts +15 -7
  26. package/dist/tools/tool-use-loop.d.ts.map +1 -1
  27. package/dist/tools/tool-use-loop.js +130 -158
  28. package/dist/tools/tool-use-loop.js.map +1 -1
  29. package/dist/tools/tool-use-parser.d.ts +33 -0
  30. package/dist/tools/tool-use-parser.d.ts.map +1 -1
  31. package/dist/tools/tool-use-parser.js +49 -0
  32. package/dist/tools/tool-use-parser.js.map +1 -1
  33. package/dist/tools/toolAvailabilityDetector.d.ts +0 -24
  34. package/dist/tools/toolAvailabilityDetector.d.ts.map +1 -1
  35. package/dist/tools/toolAvailabilityDetector.js +24 -11
  36. package/dist/tools/toolAvailabilityDetector.js.map +1 -1
  37. package/package.json +20 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loopShared.d.ts","sourceRoot":"","sources":["../../../src/tools/loop/loopShared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAYD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAa3D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAKzD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGxD;AA2BD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAe1D"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ /**
3
+ * Shared, dependency-free primitives used by the tool-use loop and its
4
+ * sub-steps (llmStream, turnSetup, …).
5
+ *
6
+ * These live in a leaf module on purpose. They used to sit in tool-use-loop.ts,
7
+ * but the sub-steps import them while tool-use-loop.ts imports the sub-steps —
8
+ * that back-edge formed an import cycle. esbuild resolves a cycle by wrapping
9
+ * the module in a lazy initializer and exposing its exports through a namespace
10
+ * object, and `bun build --compile` (notably when cross-compiling) could then
11
+ * tree-shake the lazily-initialized `createToolUseLoop` body away, leaving a
12
+ * dangling `(0, ns.createToolUseLoop)` reference that crashed at runtime.
13
+ * Keeping these helpers in a leaf module breaks the cycle. See the regression
14
+ * test in loopShared.test.ts.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.sleep = sleep;
18
+ exports.isRetryableLlmError = isRetryableLlmError;
19
+ exports.tagRetryableLlmError = tagRetryableLlmError;
20
+ exports.summarizeLlmError = summarizeLlmError;
21
+ exports.isContinuationPrompt = isContinuationPrompt;
22
+ function sleep(ms) {
23
+ return new Promise((resolve) => setTimeout(resolve, ms));
24
+ }
25
+ function getErrorCode(error) {
26
+ return typeof error === 'object' && error !== null && 'code' in error
27
+ ? String(error.code ?? '')
28
+ : undefined;
29
+ }
30
+ function getErrorMessage(error) {
31
+ return error instanceof Error ? error.message : String(error);
32
+ }
33
+ function isRetryableLlmError(error) {
34
+ const code = getErrorCode(error);
35
+ if (code === 'USER_ABORT') {
36
+ return false;
37
+ }
38
+ const message = getErrorMessage(error);
39
+ if (/\b429\b|rate limit/i.test(message)) {
40
+ return false;
41
+ }
42
+ return (code === 'WATCHDOG' ||
43
+ /\b5\d\d\b/.test(message) ||
44
+ /Upstream model request failed/i.test(message) ||
45
+ /ECONNREFUSED|ECONNRESET|ETIMEDOUT|EAI_AGAIN|socket hang up|fetch failed|network error|terminated|UND_ERR/i.test(message));
46
+ }
47
+ function tagRetryableLlmError(error) {
48
+ if (error instanceof Error) {
49
+ const tagged = error;
50
+ if (!tagged.code) {
51
+ tagged.code = 'UPSTREAM_MODEL';
52
+ }
53
+ }
54
+ }
55
+ function summarizeLlmError(error) {
56
+ const message = getErrorMessage(error).replace(/\s+/g, ' ').trim();
57
+ return message.length > 180 ? `${message.slice(0, 177)}...` : message;
58
+ }
59
+ /**
60
+ * Detects "keep going" / "continue" / "yes" style prompts that
61
+ * carry no real goal content. The goal-anchor block uses the most recent
62
+ * user message as the recall text; when that text is "good lets keep
63
+ * going" the anchor degenerates into "remind yourself to keep going",
64
+ * which gives the model nothing to anchor on after 20 iterations of
65
+ * drift. Real on a 60-iteration linter-fix
66
+ * turn: every anchor injection cited "good lets keep going" as the
67
+ * goal. Detector lets callers walk back to a prior substantive prompt
68
+ * instead.
69
+ *
70
+ * Length cap (60 chars) + normalized-phrase match keeps false positives
71
+ * down — a sentence like "keep going on the auth refactor for the
72
+ * user-service" is longer than 60 chars and reads as a real goal, so it
73
+ * stays a goal.
74
+ */
75
+ const CONTINUATION_PROMPT_PHRASES = new Set([
76
+ 'continue', 'keep going', 'go on', 'proceed', 'next', 'more',
77
+ 'please continue', 'carry on', 'finish', 'finish it', 'finish up', 'wrap up', 'wrap it up',
78
+ 'good', 'great', 'nice', 'cool', 'sweet', 'perfect', 'ok', 'okay', 'k', 'yes', 'y', 'yep', 'yeah', 'ack', 'done',
79
+ "let's continue", 'lets continue', "let's keep going", 'lets keep going',
80
+ 'good keep going', 'good lets keep going', "good let's keep going",
81
+ 'good continue', 'ok continue', 'okay continue'
82
+ ]);
83
+ function isContinuationPrompt(text) {
84
+ const trimmed = text.trim();
85
+ if (trimmed.length === 0 || trimmed.length > 60) {
86
+ return false;
87
+ }
88
+ // Normalize: lowercase, drop non-word/space punctuation, collapse whitespace.
89
+ const norm = trimmed
90
+ .toLowerCase()
91
+ .replace(/[^\w\s']/g, ' ')
92
+ .replace(/\s+/g, ' ')
93
+ .trim();
94
+ if (CONTINUATION_PROMPT_PHRASES.has(norm)) {
95
+ return true;
96
+ }
97
+ // Permit "please <phrase>" and "<phrase> please" wrappings.
98
+ for (const phrase of CONTINUATION_PROMPT_PHRASES) {
99
+ if (norm === `please ${phrase}` || norm === `${phrase} please`) {
100
+ return true;
101
+ }
102
+ }
103
+ return false;
104
+ }
105
+ //# sourceMappingURL=loopShared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loopShared.js","sourceRoot":"","sources":["../../../src/tools/loop/loopShared.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  * Why the serial mode exists: smaller models (4B–12B) generate
15
15
  * malformed JSON in the tail of a multi-file emission once their
16
16
  * effective output budget is exhausted. on a
17
- * portfolio build — even a strong model produced a malformed
17
+ * React/TS build — even a strong model produced a malformed
18
18
  * `todo_write` after writing four files of ~7 KB each in one
19
19
  * assistant turn. Serialising lets the model react to each result
20
20
  * before committing further output, and gives the user one approval
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveTurnGoal = resolveTurnGoal;
4
- const tool_use_loop_1 = require("../tool-use-loop");
4
+ const loopShared_1 = require("./loopShared");
5
5
  /**
6
6
  * Resolve the per-turn goal anchor from the seed message history.
7
7
  *
@@ -30,7 +30,7 @@ function resolveTurnGoal(args) {
30
30
  originalGoal = msg.content;
31
31
  }
32
32
  }
33
- if (originalGoal && (0, tool_use_loop_1.isContinuationPrompt)(originalGoal)) {
33
+ if (originalGoal && (0, loopShared_1.isContinuationPrompt)(originalGoal)) {
34
34
  for (let i = seedMessages.length - 1; i >= 0; i--) {
35
35
  const m = seedMessages[i];
36
36
  if (m.role !== 'user' || typeof m.content !== 'string') {
@@ -40,7 +40,7 @@ function resolveTurnGoal(args) {
40
40
  if (!c) {
41
41
  continue;
42
42
  }
43
- if (!(0, tool_use_loop_1.isContinuationPrompt)(c)) {
43
+ if (!(0, loopShared_1.isContinuationPrompt)(c)) {
44
44
  originalGoal = m.content;
45
45
  break;
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"turnSetup.js","sourceRoot":"","sources":["../../../src/tools/loop/turnSetup.ts"],"names":[],"mappings":";;AA6CA,0CAuBC;AA1DD,oDAAwD;AAmBxD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,eAAe,CAAC,IAAyB;IACvD,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC9B,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACjF,IAAI,YAAY,EAAE,CAAC;gBAAA,oBAAoB,EAAE,CAAC;YAAA,CAAC;YAC3C,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,IAAI,YAAY,IAAI,IAAA,oCAAoB,EAAC,YAAY,CAAC,EAAE,CAAC;QACvD,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAAA,SAAS;YAAA,CAAC;YACnE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAA,SAAS;YAAA,CAAC;YACnB,IAAI,CAAC,IAAA,oCAAoB,EAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC;gBACzB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"turnSetup.js","sourceRoot":"","sources":["../../../src/tools/loop/turnSetup.ts"],"names":[],"mappings":";;AA6CA,0CAuBC;AA1DD,6CAAoD;AAmBpD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,eAAe,CAAC,IAAyB;IACvD,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC9B,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACjF,IAAI,YAAY,EAAE,CAAC;gBAAA,oBAAoB,EAAE,CAAC;YAAA,CAAC;YAC3C,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,IAAI,YAAY,IAAI,IAAA,iCAAoB,EAAC,YAAY,CAAC,EAAE,CAAC;QACvD,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAAA,SAAS;YAAA,CAAC;YACnE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAA,SAAS;YAAA,CAAC;YACnB,IAAI,CAAC,IAAA,iCAAoB,EAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC;gBACzB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAChD,CAAC"}
@@ -165,7 +165,7 @@ function buildQuery(opts) {
165
165
  * Pull the metadata fields we surface in the search result list. mdls
166
166
  * output looks like:
167
167
  * kMDItemSubject = "FW: DFS Open API"
168
- * kMDItemAuthors = ("Chris VanMeerhaeghe <chris@rwtcompany.com>")
168
+ * kMDItemAuthors = ("Jane Doe <jane@example.com>")
169
169
  * kMDItemContentCreationDate = 2026-04-29 16:01:30 +0000
170
170
  * Parse the right-hand side per key, falling back to '' on missing.
171
171
  */
@@ -205,7 +205,7 @@ const mailSearchTool = {
205
205
  'scan and times out at 30s on inboxes with thousands of messages. macOS only.',
206
206
  parameters: [
207
207
  { name: 'query', description: 'Free-text search (matches in author, subject, or body).' },
208
- { name: 'from', description: 'Filter by sender substring (e.g. "alex" or "rwtcompany.com").' },
208
+ { name: 'from', description: 'Filter by sender substring (e.g. "alex" or "example.com").' },
209
209
  { name: 'subject', description: 'Filter by subject substring (e.g. "DFS").' },
210
210
  { name: 'since', description: 'ISO date (YYYY-MM-DD); only messages after this date.' },
211
211
  { name: 'limit', description: 'Max messages to return. Default 20, capped at 50.' }
@@ -1 +1 @@
1
- {"version":3,"file":"mail-search-skill.js","sourceRoot":"","sources":["../../../src/tools/skills/mail-search-skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mail-search-skill.js","sourceRoot":"","sources":["../../../src/tools/skills/mail-search-skill.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,23 @@ export declare class ToolRegistry {
31
31
  * When you have finished using tools and have a final answer, respond normally.
32
32
  */
33
33
  buildSystemPromptBlock(): string;
34
+ /**
35
+ * Compact variant of `buildSystemPromptBlock` for small-tier models.
36
+ * The full XML block measures ~27 KB with the default CLI tool set —
37
+ * the single largest component of a small model's prompt, and the
38
+ * reason the default config used to overflow its own num_ctx on turn
39
+ * one (Ollama then truncates the context HEAD, which is where the
40
+ * identity + tool protocol live — producing narrated-instead-of-acted
41
+ * tool calls and fabricated results).
42
+ *
43
+ * Edit-critical tools (where param discipline matters most) keep their
44
+ * full XML definitions; everything else renders as a one-line
45
+ * signature. The `## How to Use Tools` protocol envelope is IDENTICAL
46
+ * to the full block — the loop's parsers and detectors key off it.
47
+ */
48
+ buildCompactSystemPromptBlock(fullDefinitionTools?: ReadonlySet<string>): string;
49
+ /** Shared XML rendering for one tool — used by both prompt-block builders. */
50
+ private renderToolXml;
34
51
  /**
35
52
  * Builds tool definitions in JSON schema format for models with native tool calling.
36
53
  * Compatible with Ollama's `tools: [...]` field.
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/tools/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAgD,MAAM,cAAc,CAAC;AAE5F;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IAEtD,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAK/B,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAOrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIxC,MAAM,IAAI,SAAS,EAAE;IAIrB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;;;;;;;;;OAeG;IACH,sBAAsB,IAAI,MAAM;IAyChC;;;;;;;;;;;;OAYG;IACH,sBAAsB,IAAI,KAAK,CAAC;QAC9B,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ,CAAC;gBACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBACpD,QAAQ,EAAE,MAAM,EAAE,CAAC;aACpB,CAAC;SACH,CAAC;KACH,CAAC;CAgBH"}
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/tools/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAgD,MAAM,cAAc,CAAC;AAE5F;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IAEtD,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAK/B,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAOrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIxC,MAAM,IAAI,SAAS,EAAE;IAIrB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;;;;;;;;;OAeG;IACH,sBAAsB,IAAI,MAAM;IAgBhC;;;;;;;;;;;;;OAaG;IACH,6BAA6B,CAAC,mBAAmB,GAAE,WAAW,CAAC,MAAM,CAAiC,GAAG,MAAM;IAiC/G,8EAA8E;IAC9E,OAAO,CAAC,aAAa;IAoBrB;;;;;;;;;;;;OAYG;IACH,sBAAsB,IAAI,KAAK,CAAC;QAC9B,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ,CAAC;gBACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBACpD,QAAQ,EAAE,MAAM,EAAE,CAAC;aACpB,CAAC;SACH,CAAC;KACH,CAAC;CAgBH"}
@@ -54,25 +54,7 @@ class ToolRegistry {
54
54
  if (this.tools.size === 0) {
55
55
  return '';
56
56
  }
57
- const toolDefs = this.getAll().map(tool => {
58
- const params = tool.parameters.map(p => {
59
- // Surface the JSON-Schema-derived type hint inline in the
60
- // description so the model knows when to emit a nested object
61
- // or an array instead of a bare string. Without this hint the
62
- // XML-prompt format describes every param as opaque text,
63
- // which is what produced the "Expected object, received
64
- // string" failures on createFilter / modifyMessageLabels.
65
- const typeHint = formatParamTypeHint(p.schema);
66
- const desc = typeHint ? `${typeHint} ${p.description}` : p.description;
67
- return ` <param name="${p.name}"${p.required ? ' required="true"' : ''}>${desc}</param>`;
68
- }).join('\n');
69
- return [
70
- `<tool name="${tool.name}">`,
71
- ` <description>${tool.description}</description>`,
72
- params,
73
- `</tool>`
74
- ].join('\n');
75
- }).join('\n\n');
57
+ const toolDefs = this.getAll().map(tool => this.renderToolXml(tool)).join('\n\n');
76
58
  return [
77
59
  '## Available Tools',
78
60
  '',
@@ -80,14 +62,73 @@ class ToolRegistry {
80
62
  '',
81
63
  toolDefs,
82
64
  '',
83
- '## How to Use Tools',
65
+ ...TOOL_PROTOCOL_LINES
66
+ ].join('\n');
67
+ }
68
+ /**
69
+ * Compact variant of `buildSystemPromptBlock` for small-tier models.
70
+ * The full XML block measures ~27 KB with the default CLI tool set —
71
+ * the single largest component of a small model's prompt, and the
72
+ * reason the default config used to overflow its own num_ctx on turn
73
+ * one (Ollama then truncates the context HEAD, which is where the
74
+ * identity + tool protocol live — producing narrated-instead-of-acted
75
+ * tool calls and fabricated results).
76
+ *
77
+ * Edit-critical tools (where param discipline matters most) keep their
78
+ * full XML definitions; everything else renders as a one-line
79
+ * signature. The `## How to Use Tools` protocol envelope is IDENTICAL
80
+ * to the full block — the loop's parsers and detectors key off it.
81
+ */
82
+ buildCompactSystemPromptBlock(fullDefinitionTools = DEFAULT_FULL_DEFINITION_TOOLS) {
83
+ if (this.tools.size === 0) {
84
+ return '';
85
+ }
86
+ const all = this.getAll();
87
+ const fullDefs = all
88
+ .filter(tool => fullDefinitionTools.has(tool.name))
89
+ .map(tool => this.renderToolXml(tool));
90
+ const compact = all
91
+ .filter(tool => !fullDefinitionTools.has(tool.name))
92
+ .map(tool => {
93
+ const params = tool.parameters.map(p => {
94
+ const type = p.schema?.type && p.schema.type !== 'string' ? `:${p.schema.type}` : '';
95
+ return `${p.name}${p.required ? '' : '?'}${type}`;
96
+ }).join(', ');
97
+ return `- ${tool.name}(${params}) — ${firstSentence(tool.description)}`;
98
+ });
99
+ return [
100
+ '## Available Tools',
101
+ '',
102
+ 'You have access to the following tools to help you complete tasks:',
103
+ '',
104
+ ...fullDefs,
84
105
  '',
85
- 'To call a tool, respond with ONLY a tool call on its own line:',
86
- '<tool_call>{"name": "tool_name", "params": {"param1": "value1"}}</tool_call>',
106
+ 'Additional tools same call protocol. Params marked `?` are optional;',
107
+ '`:object` / `:array` params take JSON values, not strings:',
87
108
  '',
88
- 'Wait for the tool result before continuing.',
89
- 'When you have all the information needed and are ready to give your final response,',
90
- 'respond normally without any <tool_call> tags.',
109
+ ...compact,
110
+ '',
111
+ ...TOOL_PROTOCOL_LINES
112
+ ].join('\n');
113
+ }
114
+ /** Shared XML rendering for one tool — used by both prompt-block builders. */
115
+ renderToolXml(tool) {
116
+ const params = tool.parameters.map(p => {
117
+ // Surface the JSON-Schema-derived type hint inline in the
118
+ // description so the model knows when to emit a nested object
119
+ // or an array instead of a bare string. Without this hint the
120
+ // XML-prompt format describes every param as opaque text,
121
+ // which is what produced the "Expected object, received
122
+ // string" failures on createFilter / modifyMessageLabels.
123
+ const typeHint = formatParamTypeHint(p.schema);
124
+ const desc = typeHint ? `${typeHint} ${p.description}` : p.description;
125
+ return ` <param name="${p.name}"${p.required ? ' required="true"' : ''}>${desc}</param>`;
126
+ }).join('\n');
127
+ return [
128
+ `<tool name="${tool.name}">`,
129
+ ` <description>${tool.description}</description>`,
130
+ params,
131
+ `</tool>`
91
132
  ].join('\n');
92
133
  }
93
134
  /**
@@ -154,6 +195,40 @@ function renderParamForNativeSchema(p) {
154
195
  * difference between createFilter working and Google rejecting the
155
196
  * request with "Expected object, received string."
156
197
  */
198
+ /**
199
+ * The tool-call protocol envelope. MUST stay byte-identical between the
200
+ * full and compact prompt blocks — the loop's stream parser, the
201
+ * fabrication detectors, and several eval fixtures key off this text.
202
+ */
203
+ const TOOL_PROTOCOL_LINES = [
204
+ '## How to Use Tools',
205
+ '',
206
+ 'To call a tool, respond with ONLY a tool call on its own line:',
207
+ '<tool_call>{"name": "tool_name", "params": {"param1": "value1"}}</tool_call>',
208
+ '',
209
+ 'Wait for the tool result before continuing.',
210
+ 'When you have all the information needed and are ready to give your final response,',
211
+ 'respond normally without any <tool_call> tags.',
212
+ ];
213
+ /**
214
+ * Tools that keep full XML definitions in the compact block — the ones
215
+ * where param discipline (exact-match find strings, line ranges, hashes)
216
+ * is the difference between a clean edit and a corrupted file.
217
+ */
218
+ const DEFAULT_FULL_DEFINITION_TOOLS = new Set([
219
+ 'read_file',
220
+ 'apply_edit',
221
+ 'replace_range',
222
+ 'write_file',
223
+ 'run_command',
224
+ 'search_code'
225
+ ]);
226
+ /** First sentence of a tool description, capped so one tool = one line. */
227
+ function firstSentence(description) {
228
+ const period = description.indexOf('. ');
229
+ const sentence = period === -1 ? description : description.slice(0, period + 1);
230
+ return sentence.length > 160 ? `${sentence.slice(0, 157)}…` : sentence;
231
+ }
157
232
  function formatParamTypeHint(schema) {
158
233
  if (!schema || !schema.type || schema.type === 'string') {
159
234
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/tools/tool-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/tools/tool-registry.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,MAAa,YAAY;IAAzB;QACmB,UAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;IA0KxD,CAAC;IAxKC,QAAQ,CAAC,IAAe;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,KAAkB;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,sBAAsB;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAAA,OAAO,EAAE,CAAC;QAAA,CAAC;QAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElF,OAAO;YACL,oBAAoB;YACpB,EAAE;YACF,oEAAoE;YACpE,EAAE;YACF,QAAQ;YACR,EAAE;YACF,GAAG,mBAAmB;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,6BAA6B,CAAC,sBAA2C,6BAA6B;QACpG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAAA,OAAO,EAAE,CAAC;QAAA,CAAC;QAEvC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,GAAG;aACjB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,GAAG;aAChB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnD,GAAG,CAAC,IAAI,CAAC,EAAE;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACrC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;YACpD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,KAAK,IAAI,CAAC,IAAI,IAAI,MAAM,OAAO,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEL,OAAO;YACL,oBAAoB;YACpB,EAAE;YACF,oEAAoE;YACpE,EAAE;YACF,GAAG,QAAQ;YACX,EAAE;YACF,wEAAwE;YACxE,4DAA4D;YAC5D,EAAE;YACF,GAAG,OAAO;YACV,EAAE;YACF,GAAG,mBAAmB;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,8EAA8E;IACtE,aAAa,CAAC,IAAe;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACrC,0DAA0D;YAC1D,8DAA8D;YAC9D,8DAA8D;YAC9D,0DAA0D;YAC1D,wDAAwD;YACxD,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACvE,OAAO,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,UAAU,CAAC;QAC5F,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO;YACL,eAAe,IAAI,CAAC,IAAI,IAAI;YAC5B,kBAAkB,IAAI,CAAC,WAAW,gBAAgB;YAClD,MAAM;YACN,SAAS;SACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,sBAAsB;QAYpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,UAAmB;YACzB,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,MAAM,CAAC,WAAW,CAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAClE;oBACD,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACnE;aACF;SACF,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AA3KD,oCA2KC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,0BAA0B,CAAC,CAAqB;IACvD,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC;IACtC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,gEAAgE;IAChE,iEAAiE;IACjE,gEAAgE;IAChE,+BAA+B;IAC/B,QAAQ,CAAC,WAAW,GAAG,eAAe,CAAC;IACvC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH;;;;GAIG;AACH,MAAM,mBAAmB,GAAsB;IAC7C,qBAAqB;IACrB,EAAE;IACF,gEAAgE;IAChE,8EAA8E;IAC9E,EAAE;IACF,6CAA6C;IAC7C,qFAAqF;IACrF,gDAAgD;CACjD,CAAC;AAEF;;;;GAIG;AACH,MAAM,6BAA6B,GAAwB,IAAI,GAAG,CAAC;IACjE,WAAW;IACX,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,aAAa;IACb,aAAa;CACd,CAAC,CAAC;AAEH,2EAA2E;AAC3E,SAAS,aAAa,CAAC,WAAmB;IACxC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IAChF,OAAO,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzE,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA4C;IACvE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAAA,OAAO,EAAE,CAAC;IAAA,CAAC;IACrE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC,8BAA8B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,GAAG;YACnE,CAAC,CAAC,+BAA+B,CAAC;IACtC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,OAAO,CAAC;QAC/C,OAAO,aAAa,QAAQ,4BAA4B,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC;AAC5B,CAAC;AAED,SAAS,oBAAoB,CAAC,CAA2B;IACvD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAAA,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAAA,CAAC;IAChC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAAA,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IAAA,CAAC;IACrD,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAAA,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAAA,CAAC;IAChC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QACxC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3E,CAAC;QACF,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC5B,CAAC;QACD,gEAAgE;QAChE,iEAAiE;QACjE,oDAAoD;IACtD,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,GAAG,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -18,6 +18,7 @@
18
18
  */
19
19
  import type { ToolExecutionContext, ChatFn, ToolLoopMessage } from './tool-types';
20
20
  import type { ToolRegistry } from './tool-registry';
21
+ import { sleep, isRetryableLlmError, tagRetryableLlmError, summarizeLlmError, isContinuationPrompt } from './loop/loopShared';
21
22
  export interface ToolUseLoopOptions {
22
23
  /** Maximum number of tool call rounds before forcing a final answer. Default: 10. */
23
24
  maxIterations?: number;
@@ -38,6 +39,17 @@ export interface ToolUseLoopOptions {
38
39
  * incomplete tool envelope. Defaults to true.
39
40
  */
40
41
  nativeToolFailureFallback?: boolean;
42
+ /**
43
+ * Render the text-protocol tool block in compact signature form —
44
+ * full XML kept only for the edit-critical tools where param
45
+ * discipline matters. Hosts set this for small-tier models: the full
46
+ * ~27 KB block is the largest single cause of context-head truncation
47
+ * on 4B-class models (which silently deletes the identity and tool
48
+ * protocol sections and produces narrated-instead-of-executed tool
49
+ * calls). No effect when nativeTools is true — no text block is
50
+ * injected at all on that path.
51
+ */
52
+ compactToolBlock?: boolean;
41
53
  /** Called on each event for external observability (streaming UI updates, telemetry). */
42
54
  emitEvent?: (type: string, payload?: unknown) => void;
43
55
  /**
@@ -126,7 +138,7 @@ export interface ToolUseLoopOptions {
126
138
  *
127
139
  * Why: smaller models (4B–12B) generate malformed JSON in the tail
128
140
  * of a multi-file emission once their effective output budget is
129
- * exhausted. on a portfolio build — even a
141
+ * exhausted. on a React/TS build — even a
130
142
  * strong model produced a malformed `todo_write` after writing four
131
143
  * files of ~7 KB each in one assistant turn. Serialising lets the
132
144
  * model react to each result before committing further output, and
@@ -161,11 +173,7 @@ export interface ToolUseLoopOptions {
161
173
  */
162
174
  isSubagent?: boolean;
163
175
  }
164
- export declare function sleep(ms: number): Promise<void>;
165
- export declare function isRetryableLlmError(error: unknown): boolean;
166
- export declare function tagRetryableLlmError(error: unknown): void;
167
- export declare function summarizeLlmError(error: unknown): string;
168
- export declare function isContinuationPrompt(text: string): boolean;
176
+ export { sleep, isRetryableLlmError, tagRetryableLlmError, summarizeLlmError, isContinuationPrompt, };
169
177
  /**
170
178
  * "Noticing prompt" detector. Catches user messages that are asking
171
179
  * about state ("are we using these?", "did you update X?", "where's
@@ -173,7 +181,7 @@ export declare function isContinuationPrompt(text: string): boolean;
173
181
  * work. These signal that the user spotted a gap in the prior turn
174
182
  * and wants the agent to address it — NOT continue the prior plan.
175
183
  *
176
- * Real failure mode captured 2026-05-25 on a Portfolio React refactor:
184
+ * Real failure mode captured 2026-05-25 on a local React refactor:
177
185
  * user asked "I dont think we actually are using these new files are
178
186
  * we?" after the agent wrote data files but never wired them into
179
187
  * App.jsx. Bandit read the question as a generic "keep going" prompt,
@@ -1 +1 @@
1
- {"version":3,"file":"tool-use-loop.d.ts","sourceRoot":"","sources":["../../src/tools/tool-use-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-use-loop.d.ts","sourceRoot":"","sources":["../../src/tools/tool-use-loop.ts"],"names":[],"mappings":"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"}