@zelari/core 1.15.0 → 1.17.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 (44) hide show
  1. package/dist/agents/councilApi.d.ts +20 -0
  2. package/dist/agents/councilApi.d.ts.map +1 -1
  3. package/dist/agents/councilApi.js +140 -19
  4. package/dist/agents/councilApi.js.map +1 -1
  5. package/dist/agents/councilDirectives.d.ts.map +1 -1
  6. package/dist/agents/councilDirectives.js +10 -5
  7. package/dist/agents/councilDirectives.js.map +1 -1
  8. package/dist/agents/promptModules.d.ts.map +1 -1
  9. package/dist/agents/promptModules.js +19 -3
  10. package/dist/agents/promptModules.js.map +1 -1
  11. package/dist/agents/skills/builtin/computerUseCua.d.ts +2 -0
  12. package/dist/agents/skills/builtin/computerUseCua.d.ts.map +1 -0
  13. package/dist/agents/skills/builtin/computerUseCua.js +61 -0
  14. package/dist/agents/skills/builtin/computerUseCua.js.map +1 -0
  15. package/dist/agents/systemPromptBuilder.d.ts +50 -11
  16. package/dist/agents/systemPromptBuilder.d.ts.map +1 -1
  17. package/dist/agents/systemPromptBuilder.js +70 -20
  18. package/dist/agents/systemPromptBuilder.js.map +1 -1
  19. package/dist/core/AgentHarness.d.ts.map +1 -1
  20. package/dist/core/AgentHarness.js +28 -12
  21. package/dist/core/AgentHarness.js.map +1 -1
  22. package/dist/core/tools/toolTypes.d.ts +1 -1
  23. package/dist/core/tools/toolTypes.d.ts.map +1 -1
  24. package/dist/council/modeBanners.d.ts +3 -3
  25. package/dist/council/modeBanners.d.ts.map +1 -1
  26. package/dist/council/modeBanners.js +3 -3
  27. package/dist/council/modeBanners.js.map +1 -1
  28. package/dist/index.d.ts +1 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +2 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/skills/index.d.ts +2 -1
  33. package/dist/skills/index.d.ts.map +1 -1
  34. package/dist/skills/index.js +1 -1
  35. package/dist/skills/index.js.map +1 -1
  36. package/dist/state/index.d.ts +6 -0
  37. package/dist/state/index.d.ts.map +1 -0
  38. package/dist/state/index.js +2 -0
  39. package/dist/state/index.js.map +1 -0
  40. package/dist/state/types.d.ts +110 -0
  41. package/dist/state/types.d.ts.map +1 -0
  42. package/dist/state/types.js +12 -0
  43. package/dist/state/types.js.map +1 -0
  44. package/package.json +9 -1
@@ -126,18 +126,34 @@ export const CLARIFICATION_PROTOCOL_MODULE = {
126
126
  priority: 55,
127
127
  content: `# Clarification Protocol
128
128
 
129
- When blocked by a single missing fact that would materially change your output, ask exactly ONE question:
129
+ When blocked by a single missing fact that would materially change your output, ask **exactly ONE** question, then continue the task with the answer.
130
130
 
131
+ ## Preferred: native tool (same tool-loop — answer comes back as tool result)
132
+ If \`ask_user\` is in AVAILABLE TOOLS, call it:
133
+
134
+ \`\`\`
135
+ ask_user({
136
+ "question": "One focused question?",
137
+ "choices": ["Option A", "Option B", "Option C"],
138
+ "context": "Why this matters in one line"
139
+ })
140
+ \`\`\`
141
+
142
+ After the tool returns \`[ask_user] User answered: …\`, **continue the same run** (implement / plan) — do not stop and re-ask.
143
+
144
+ ## Fallback only (no ask_user tool): text block
131
145
  \`\`\`
132
146
  ---QUESTION---
133
147
  { "question": "One focused question", "choices": ["Option A", "Option B"], "context": "Why this matters in one line" }
134
148
  ---END---
135
149
  \`\`\`
136
150
 
151
+ Rules:
137
152
  - Ask only when genuinely blocked; otherwise assume and state the assumption.
138
- - 2–4 concrete choices when natural; user may type a free answer.
153
+ - 2–4 concrete choices when natural.
139
154
  - Never re-ask for information already in context or retrievable via tools.
140
- - At most one question per turn.`,
155
+ - At most one question per turn.
156
+ - Do **not** emit tool dumps or ---TOOLS--- after a question.`,
141
157
  };
142
158
  /**
143
159
  * Base system prompt modules for Zelari Code.
@@ -1 +1 @@
1
- {"version":3,"file":"promptModules.js","sourceRoot":"","sources":["../../src/agents/promptModules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promptModules.js","sourceRoot":"","sources":["../../src/agents/promptModules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=computerUseCua.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computerUseCua.d.ts","sourceRoot":"","sources":["../../../../src/agents/skills/builtin/computerUseCua.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ import { registerCodingSkill } from '../../skills.js';
2
+ const computerUseCua = {
3
+ id: 'computer-use-cua',
4
+ version: '1.0.0',
5
+ name: 'Desktop computer-use (Cua Driver)',
6
+ description: 'Drive native desktop apps in the background via Cua Driver MCP — click, type, snapshot windows without stealing focus. Prefer shell/file tools for coding; use Cua only for real GUI apps.',
7
+ category: 'debug',
8
+ requiredRoles: [],
9
+ requiredTools: [],
10
+ estimatedCost: 'medium',
11
+ enabledByDefault: true,
12
+ builtin: true,
13
+ triggers: [
14
+ 'Click through a native desktop installer or Electron settings UI',
15
+ 'Verify a GUI app that is not a web page in Chromium',
16
+ 'Accessibility / window-level automation on the host OS',
17
+ 'Background computer-use without moving the user cursor',
18
+ ],
19
+ antiPatterns: [
20
+ 'Pure coding / file edits / tests — use write_file, edit_file, bash',
21
+ 'Web page checks — use browser_check (Playwright) first',
22
+ 'Running Cua for every council specialist (saturates context)',
23
+ 'Assuming Cua is installed — check tools or ask user to run doctor',
24
+ ],
25
+ requires: [],
26
+ relatedSkills: ['debug-with-rag'],
27
+ tags: ['cua', 'computer-use', 'desktop', 'mcp', 'gui'],
28
+ examples: [
29
+ {
30
+ input: 'Open the app settings window and enable dark mode',
31
+ output: {
32
+ approach: 'If mcp_cua-driver_* tools are available: list windows → snapshot target → click/type. If not: tell user to install cua-driver and run zelari-code --set-mcp-preset cua. Prefer product file config if dark mode is a setting in JSON/code.',
33
+ },
34
+ },
35
+ ],
36
+ outputSchema: '{ usedCua: boolean; windows?: string[]; actions: string[]; verifiedOnDisk?: boolean }',
37
+ systemPromptFragment: `# Desktop computer-use (Cua Driver)
38
+
39
+ ## When to use
40
+ - Native / Electron **desktop** UI that cannot be verified with \`browser_check\` or file edits.
41
+ - Background control (no focus steal) via MCP tools named like \`mcp_cua-driver_*\`.
42
+
43
+ ## When NOT to use
44
+ - Source edits, tests, git, package install → normal coding tools.
45
+ - Web UIs → \`browser_check\` / Playwright.
46
+ - Full 6-member council by default: Cua tools are **not** registered for council specialists unless \`ZELARI_CUA_COUNCIL=1\`. Prefer agent mode or Lucifero implementer.
47
+
48
+ ## Setup (user)
49
+ 1. Install: https://cua.ai/docs/how-to-guides/driver/install
50
+ 2. \`zelari-code --set-mcp-preset cua\`
51
+ 3. \`cua-driver doctor\` (+ macOS Accessibility / Screen Recording)
52
+ 4. Kill switch: \`ZELARI_CUA=0\`
53
+
54
+ ## Grounding
55
+ - Prefer reading product config files over clicking UI when both work.
56
+ - After GUI actions, verify durable state on disk when possible.
57
+ - Do not invent window titles or controls — list/snapshot first.
58
+ `,
59
+ };
60
+ registerCodingSkill(computerUseCua);
61
+ //# sourceMappingURL=computerUseCua.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computerUseCua.js","sourceRoot":"","sources":["../../../../src/agents/skills/builtin/computerUseCua.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,cAAc,GAA0B;IAC5C,EAAE,EAAE,kBAAkB;IACtB,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,mCAAmC;IACzC,WAAW,EACT,4LAA4L;IAC9L,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,QAAQ;IACvB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE;QACR,kEAAkE;QAClE,qDAAqD;QACrD,wDAAwD;QACxD,wDAAwD;KACzD;IACD,YAAY,EAAE;QACZ,oEAAoE;QACpE,wDAAwD;QACxD,8DAA8D;QAC9D,mEAAmE;KACpE;IACD,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,CAAC,gBAAgB,CAAC;IACjC,IAAI,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IACtD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,mDAAmD;YAC1D,MAAM,EAAE;gBACN,QAAQ,EACN,4OAA4O;aAC/O;SACF;KACF;IACD,YAAY,EACV,uFAAuF;IACzF,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBvB;CACA,CAAC;AAEF,mBAAmB,CAAC,cAAc,CAAC,CAAC"}
@@ -31,9 +31,44 @@ export declare function computeAgentTools(agent: CoreAgentRole & {
31
31
  }, aiConfig?: SystemPromptConfig): string[];
32
32
  /** Generate the AVAILABLE TOOLS documentation block for the given tools. */
33
33
  export declare function getToolDescriptions(toolNames: string[], registry: Map<string, EnhancedToolDefinition>): string;
34
+ /** Options shared by buildSystemPrompt / buildSystemPromptSplit. */
35
+ export type BuildSystemPromptOptions = {
36
+ tools: EnhancedToolDefinition[];
37
+ toolNames: string[];
38
+ aiConfig?: SystemPromptConfig;
39
+ workspaceContext?: string;
40
+ ragContext?: string;
41
+ mode?: PromptPackMode;
42
+ projectInstructions?: string;
43
+ /** Default true. Set false to avoid double-inject with separate system msgs. */
44
+ includeWorkspaceInPrompt?: boolean;
45
+ /**
46
+ * Optional durable-state materialization (Palmer accumulation).
47
+ * Always placed in the *volatile* section so it never busts the cache prefix.
48
+ */
49
+ durableStateContext?: string;
50
+ };
51
+ /**
52
+ * Split system prompt for prompt-cache efficiency (AGNT Labs Cache Wars):
53
+ * - **stable**: identity, secrecy, role, project instructions, skills, tools
54
+ * — byte-stable across turns when mode/tools/skills do not change
55
+ * - **volatile**: workspace, RAG, durable state — may change every turn
56
+ *
57
+ * Callers should send stable first, then volatile (separate system messages
58
+ * or concatenated stable+volatile). Never put volatile before stable.
59
+ */
60
+ export declare function buildSystemPromptSplit(agent: CoreAgentRole & {
61
+ skills?: string[];
62
+ }, options: BuildSystemPromptOptions): {
63
+ stable: string;
64
+ volatile: string;
65
+ };
34
66
  /**
35
67
  * Build the full system prompt for an agent.
36
68
  *
69
+ * Prefers {@link buildSystemPromptSplit} and concatenates stable + volatile
70
+ * for backward compatibility with callers that expect a single string.
71
+ *
37
72
  * @param options.mode - \`agent\` (default for CLI single-agent) uses the lean
38
73
  * coding pack; \`council\` keeps collaboration + clarification modules.
39
74
  * @param options.projectInstructions - optional AGENTS.md / CLAUDE.md body.
@@ -42,15 +77,19 @@ export declare function getToolDescriptions(toolNames: string[], registry: Map<s
42
77
  */
43
78
  export declare function buildSystemPrompt(agent: CoreAgentRole & {
44
79
  skills?: string[];
45
- }, options: {
46
- tools: EnhancedToolDefinition[];
47
- toolNames: string[];
48
- aiConfig?: SystemPromptConfig;
49
- workspaceContext?: string;
50
- ragContext?: string;
51
- mode?: PromptPackMode;
52
- projectInstructions?: string;
53
- /** Default true. Set false to avoid double-inject with separate system msgs. */
54
- includeWorkspaceInPrompt?: boolean;
55
- }): string;
80
+ }, options: BuildSystemPromptOptions): string;
81
+ /**
82
+ * Assemble AgentMessage system slots from a split prompt.
83
+ * Multi-system when both parts present (stable first — required for prefix cache).
84
+ * Set `singleSystem: true` to concatenate for providers that reject multi-system.
85
+ */
86
+ export declare function systemMessagesFromSplit(split: {
87
+ stable: string;
88
+ volatile: string;
89
+ }, opts?: {
90
+ singleSystem?: boolean;
91
+ }): Array<{
92
+ role: 'system';
93
+ content: string;
94
+ }>;
56
95
  //# sourceMappingURL=systemPromptBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"systemPromptBuilder.d.ts","sourceRoot":"","sources":["../../src/agents/systemPromptBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EAEf,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAO5B;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC5C,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,YAAY,CAAC,EAAE,OAAO,mBAAmB,EAAE,WAAW,EAAE,GACvD,eAAe,EAAE,CAmDnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC5C,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,MAAM,EAAE,CAWV;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAC5C,MAAM,CAqBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC5C,OAAO,EAAE;IACP,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gFAAgF;IAChF,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,GACA,MAAM,CAiFR"}
1
+ {"version":3,"file":"systemPromptBuilder.d.ts","sourceRoot":"","sources":["../../src/agents/systemPromptBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EAEf,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAO5B;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC5C,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,YAAY,CAAC,EAAE,OAAO,mBAAmB,EAAE,WAAW,EAAE,GACvD,eAAe,EAAE,CAmDnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC5C,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,MAAM,EAAE,CAWV;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAC5C,MAAM,CAqBR;AAED,oEAAoE;AACpE,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gFAAgF;IAChF,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC5C,OAAO,EAAE,wBAAwB,GAChC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CA2FtC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC5C,OAAO,EAAE,wBAAwB,GAChC,MAAM,CAKR;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,KAAK,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAY5C"}
@@ -108,16 +108,16 @@ export function getToolDescriptions(toolNames, registry) {
108
108
  return lines.join('\n');
109
109
  }
110
110
  /**
111
- * Build the full system prompt for an agent.
111
+ * Split system prompt for prompt-cache efficiency (AGNT Labs Cache Wars):
112
+ * - **stable**: identity, secrecy, role, project instructions, skills, tools
113
+ * — byte-stable across turns when mode/tools/skills do not change
114
+ * - **volatile**: workspace, RAG, durable state — may change every turn
112
115
  *
113
- * @param options.mode - \`agent\` (default for CLI single-agent) uses the lean
114
- * coding pack; \`council\` keeps collaboration + clarification modules.
115
- * @param options.projectInstructions - optional AGENTS.md / CLAUDE.md body.
116
- * @param options.includeWorkspaceInPrompt - when false, skip embedding
117
- * workspace/RAG here (caller injects separately). Default true.
116
+ * Callers should send stable first, then volatile (separate system messages
117
+ * or concatenated stable+volatile). Never put volatile before stable.
118
118
  */
119
- export function buildSystemPrompt(agent, options) {
120
- const { tools, toolNames, aiConfig, workspaceContext, ragContext, mode = 'council', projectInstructions, includeWorkspaceInPrompt = true, } = options;
119
+ export function buildSystemPromptSplit(agent, options) {
120
+ const { tools, toolNames, aiConfig, workspaceContext, ragContext, mode = 'council', projectInstructions, includeWorkspaceInPrompt = true, durableStateContext, } = options;
121
121
  const registry = new Map(tools.map((t) => [t.name, t]));
122
122
  // 1. Base modules (filtered by conditional predicates against the agent's skills)
123
123
  const skills = computeAgentSkills(agent, aiConfig);
@@ -136,42 +136,92 @@ export function buildSystemPrompt(agent, options) {
136
136
  priority: 1000 + m.priority,
137
137
  }));
138
138
  const allModules = [...baseNotOverridden, ...customModules].sort((a, b) => a.priority - b.priority);
139
- const parts = [];
139
+ const stableParts = [];
140
140
  for (const mod of allModules) {
141
- parts.push(mod.content);
141
+ stableParts.push(mod.content);
142
142
  }
143
143
  // Non-optional IP guard: always present even if custom modules replace types.
144
- const assembledSoFar = parts.join('\n');
144
+ const assembledSoFar = stableParts.join('\n');
145
145
  if (!assembledSoFar.includes(PROPRIETARY_SECRECY_MARKER)) {
146
- parts.splice(1, 0, PROPRIETARY_SECRECY_MODULE.content);
146
+ stableParts.splice(1, 0, PROPRIETARY_SECRECY_MODULE.content);
147
147
  }
148
148
  // 3. Agent's inline role prompt (role-specific persona)
149
149
  if (agent.systemPrompt && agent.systemPrompt.trim()) {
150
- parts.push(`# Your Role\n\n${agent.systemPrompt}`);
150
+ stableParts.push(`# Your Role\n\n${agent.systemPrompt}`);
151
151
  }
152
152
  // 3b. Project instructions (AGENTS.md / CLAUDE.md) — coding CLI baseline
153
+ // Treated as stable for a session (file rarely mid-turn); if AGENTS.md changes
154
+ // mid-session the stable hash will bust intentionally.
153
155
  if (projectInstructions && projectInstructions.trim()) {
154
- parts.push(`# Project Instructions\n\n${projectInstructions.trim()}`);
156
+ stableParts.push(`# Project Instructions\n\n${projectInstructions.trim()}`);
155
157
  }
156
158
  // 4. Skill prompt fragments
157
159
  if (skills.length > 0) {
158
- parts.push(`# Active Skills\n\n` +
160
+ stableParts.push(`# Active Skills\n\n` +
159
161
  skills.map((s) => `## ${s.name}\n${s.systemPromptFragment}`).join('\n\n'));
160
162
  }
161
163
  // 5. Tool documentation
162
164
  const toolBlock = getToolDescriptions(toolNames, registry);
163
165
  if (toolNames.length > 0) {
164
- parts.push(`# Tools\n\n${toolBlock}`);
166
+ stableParts.push(`# Tools\n\n${toolBlock}`);
165
167
  }
166
- // 6. Context (optional council may inject once as separate system msgs)
168
+ // 6. Volatile context (workspace / RAG / durable state)
169
+ const volatileParts = [];
167
170
  if (includeWorkspaceInPrompt) {
168
171
  if (workspaceContext && workspaceContext.trim()) {
169
- parts.push(`# Current Workspace State\n\n${workspaceContext}`);
172
+ volatileParts.push(`# Current Workspace State\n\n${workspaceContext}`);
170
173
  }
171
174
  if (ragContext && ragContext.trim()) {
172
- parts.push(`# Retrieved Knowledge (RAG)\n\n${ragContext}`);
175
+ volatileParts.push(`# Retrieved Knowledge (RAG)\n\n${ragContext}`);
173
176
  }
174
177
  }
175
- return parts.join('\n\n---\n\n');
178
+ if (durableStateContext && durableStateContext.trim()) {
179
+ volatileParts.push(`# Durable State (verified)\n\n${durableStateContext.trim()}`);
180
+ }
181
+ return {
182
+ stable: stableParts.join('\n\n---\n\n'),
183
+ volatile: volatileParts.join('\n\n---\n\n'),
184
+ };
185
+ }
186
+ /**
187
+ * Build the full system prompt for an agent.
188
+ *
189
+ * Prefers {@link buildSystemPromptSplit} and concatenates stable + volatile
190
+ * for backward compatibility with callers that expect a single string.
191
+ *
192
+ * @param options.mode - \`agent\` (default for CLI single-agent) uses the lean
193
+ * coding pack; \`council\` keeps collaboration + clarification modules.
194
+ * @param options.projectInstructions - optional AGENTS.md / CLAUDE.md body.
195
+ * @param options.includeWorkspaceInPrompt - when false, skip embedding
196
+ * workspace/RAG here (caller injects separately). Default true.
197
+ */
198
+ export function buildSystemPrompt(agent, options) {
199
+ const { stable, volatile } = buildSystemPromptSplit(agent, options);
200
+ if (!volatile)
201
+ return stable;
202
+ if (!stable)
203
+ return volatile;
204
+ return `${stable}\n\n---\n\n${volatile}`;
205
+ }
206
+ /**
207
+ * Assemble AgentMessage system slots from a split prompt.
208
+ * Multi-system when both parts present (stable first — required for prefix cache).
209
+ * Set `singleSystem: true` to concatenate for providers that reject multi-system.
210
+ */
211
+ export function systemMessagesFromSplit(split, opts) {
212
+ const stable = split.stable.trim();
213
+ const volatile = split.volatile.trim();
214
+ if (!stable && !volatile)
215
+ return [];
216
+ if (opts?.singleSystem) {
217
+ const content = [stable, volatile].filter(Boolean).join('\n\n---\n\n');
218
+ return content ? [{ role: 'system', content }] : [];
219
+ }
220
+ const msgs = [];
221
+ if (stable)
222
+ msgs.push({ role: 'system', content: stable });
223
+ if (volatile)
224
+ msgs.push({ role: 'system', content: volatile });
225
+ return msgs;
176
226
  }
177
227
  //# sourceMappingURL=systemPromptBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"systemPromptBuilder.js","sourceRoot":"","sources":["../../src/agents/systemPromptBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"systemPromptBuilder.js","sourceRoot":"","sources":["../../src/agents/systemPromptBuilder.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,oBAAoB,GAErB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA4C,EAC5C,QAA6B,EAC7B,YAAwD;IAExD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE/E,8EAA8E;IAC9E,MAAM,aAAa,GAAG,QAAQ,EAAE,aAAa,CAAC;IAE9C,qBAAqB;IACrB,MAAM,QAAQ,GAAG,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IAEjF,IAAI,YAAsB,CAAC;IAC3B,IAAI,QAAQ,EAAE,CAAC;QACb,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC;IAC1C,CAAC;SAAM,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,gDAAgD;IAChD,MAAM,OAAO,GAAG,YAAY,IAAI,EAAE,CAAC;IACnC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACvF,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAsB,YAAY;SAC5C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SAC7B,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAExD,4EAA4E;IAC5E,4DAA4D;IAC5D,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC,OAAO;YAAE,SAAS;QAC1B,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACzE,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,gBAAgB,EAAE,EAAE,CAAC,OAAO;gBAC5B,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,EAAE,CAAC,aAAa;gBAC/B,oBAAoB,EAAE,EAAE,CAAC,oBAAoB;aAC9C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAA4C,EAC5C,QAA6B;IAE7B,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEjE,MAAM,aAAa,GAAG,QAAQ,EAAE,YAAY,CAAC;IAC7C,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,mBAAmB,CACjC,SAAmB,EACnB,QAA6C;IAE7C,MAAM,KAAK,GAAa,CAAC,+CAA+C,CAAC,CAAC;IAC1E,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,qEAAqE;QACrE,kEAAkE;QAClE,IAAI,SAAiB,CAAC;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,SAAS,GAAI,IAAI,CAAC,UAAqE;iBACpF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;iBACjC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,CAAC,UAAgE,CAAC;YAClF,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;iBAC7C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;iBAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,WAAW,aAAa,SAAS,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAoBD;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAA4C,EAC5C,OAAiC;IAEjC,MAAM,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,IAAI,GAAG,SAAS,EAChB,mBAAmB,EACnB,wBAAwB,GAAG,IAAI,EAC/B,mBAAmB,GACpB,GAAG,OAAO,CAAC;IACZ,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD,kFAAkF;IAClF,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,CACnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAC/C,CAAC;IAEF,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,QAAQ,EAAE,mBAAmB,IAAI,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAyB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,GAAG,CAAC;QACJ,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ;KAC5B,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEpG,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,8EAA8E;IAC9E,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACzD,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,wDAAwD;IACxD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACpD,WAAW,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,yEAAyE;IACzE,+EAA+E;IAC/E,uDAAuD;IACvD,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;QACtD,WAAW,CAAC,IAAI,CAAC,6BAA6B,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,WAAW,CAAC,IAAI,CACd,qBAAqB;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAC5E,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,WAAW,CAAC,IAAI,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,wDAAwD;IACxD,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,wBAAwB,EAAE,CAAC;QAC7B,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;YAChD,aAAa,CAAC,IAAI,CAAC,gCAAgC,gBAAgB,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,aAAa,CAAC,IAAI,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;QACtD,aAAa,CAAC,IAAI,CAAC,iCAAiC,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;QACvC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAA4C,EAC5C,OAAiC;IAEjC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC7B,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAC7B,OAAO,GAAG,MAAM,cAAc,QAAQ,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAA2C,EAC3C,IAAiC;IAEjC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACpC,IAAI,IAAI,EAAE,YAAY,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,GAA+C,EAAE,CAAC;IAC5D,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3D,IAAI,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AgentHarness.d.ts","sourceRoot":"","sources":["../../src/core/AgentHarness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentHarness.d.ts","sourceRoot":"","sources":["../../src/core/AgentHarness.ts"],"names":[],"mappings":"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"}
@@ -334,10 +334,11 @@ export class AgentHarness {
334
334
  initialTurnLength += ev.delta.length;
335
335
  }
336
336
  else if (ev.type === 'error') {
337
- // Cancellations are emitted as error events with severity='cancelled'
338
- // (Task C.3.1) they must NOT set hadError, otherwise the final
339
- // agent_end would emit reason='error' instead of 'cancelled'.
340
- if (ev.severity !== 'cancelled') {
337
+ // Only fatal errors abort the tool-loop / mark agent_end as error.
338
+ // Recoverable codes (text_tools_parse_failed, tool_call_truncated,
339
+ // provider soft errors) are advisory the model must still be
340
+ // allowed to continue if finish=tool_calls. Cancelled is never error.
341
+ if (ev.severity === 'fatal') {
341
342
  hadError = true;
342
343
  }
343
344
  }
@@ -380,7 +381,8 @@ export class AgentHarness {
380
381
  turnLength += ev.delta.length;
381
382
  }
382
383
  else if (ev.type === 'error') {
383
- if (ev.severity !== 'cancelled')
384
+ // Fatal only — recoverable parse/stream issues must not kill the loop.
385
+ if (ev.severity === 'fatal')
384
386
  hadError = true;
385
387
  }
386
388
  yield ev;
@@ -466,7 +468,8 @@ export class AgentHarness {
466
468
  turnLength += ev.delta.length;
467
469
  }
468
470
  else if (ev.type === 'error') {
469
- hadError = true;
471
+ if (ev.severity === 'fatal')
472
+ hadError = true;
470
473
  }
471
474
  yield ev;
472
475
  }
@@ -634,10 +637,20 @@ export class AgentHarness {
634
637
  }
635
638
  pendingNativeTools.length = 0;
636
639
  }
640
+ // Clarification pause: if the model posed a ---QUESTION--- with choices,
641
+ // do NOT execute trailing text-format tools (MiniMax often dumps invoke
642
+ // garbage after the question). Force stop so the UI can open a picker.
643
+ const clarificationPause = /---QUESTION---/.test(turnText) &&
644
+ /"choices"\s*:\s*\[/.test(turnText);
645
+ if (clarificationPause) {
646
+ finishRef.value = 'stop';
647
+ }
637
648
  // Fallback text-format tools: ---TOOLS--- JSON, MiniMax invoke XML,
638
649
  // and garbled invoke dumps. Run any text tools not already executed
639
650
  // natively this turn (so updateTask still runs after a native read).
640
- const textTools = parseTextToolCalls(turnText);
651
+ const textTools = clarificationPause
652
+ ? []
653
+ : parseTextToolCalls(turnText);
641
654
  const toolsToRun = textTools.filter((tt) => {
642
655
  const key = hashToolCall(tt.name, tt.args);
643
656
  return !turnToolCalls.some((n) => hashToolCall(n.name, n.args) === key);
@@ -645,10 +658,12 @@ export class AgentHarness {
645
658
  // Detect actual tool-dump markers only — NOT the bare word "MiniMax"
646
659
  // (models often list providers by name; that was a false-positive
647
660
  // text_tools_parse_failed after a plain summary with no tool block).
648
- if ((/---TOOLS---/.test(turnText) ||
649
- /<\/?minimax:tool_call\b/i.test(turnText) ||
650
- /invoke\s+name\s*=/i.test(turnText) ||
651
- /\]\s*<\s*\]\s*minimax\s*\[/i.test(turnText)) &&
661
+ // Skip when we are in a clarification pause (junk after QUESTION is expected).
662
+ if (!clarificationPause &&
663
+ (/---TOOLS---/.test(turnText) ||
664
+ /<\/?minimax:tool_call\b/i.test(turnText) ||
665
+ /invoke\s+name\s*=/i.test(turnText) ||
666
+ /\]\s*<\s*\]\s*minimax\s*\[/i.test(turnText)) &&
652
667
  textTools.length === 0) {
653
668
  const parseErr = createBrainEvent('error', this.sessionId, {
654
669
  severity: 'recoverable',
@@ -659,7 +674,8 @@ export class AgentHarness {
659
674
  this.emit(parseErr);
660
675
  yield parseErr;
661
676
  }
662
- if (toolsToRun.length > 0 &&
677
+ if (!clarificationPause &&
678
+ toolsToRun.length > 0 &&
663
679
  this.config.toolRegistry &&
664
680
  !this.cancelled &&
665
681
  this.textToolReentries < 4) {