@kenkaiiii/ggcoder 5.69.0 → 5.70.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 (68) hide show
  1. package/dist/app-sidecar.js +11 -0
  2. package/dist/app-sidecar.js.map +1 -1
  3. package/dist/cli.js +2 -5
  4. package/dist/cli.js.map +1 -1
  5. package/dist/core/acceptance-checks.d.ts +48 -0
  6. package/dist/core/acceptance-checks.js +144 -0
  7. package/dist/core/acceptance-checks.js.map +1 -0
  8. package/dist/core/agent-session.d.ts +9 -0
  9. package/dist/core/agent-session.js +44 -5
  10. package/dist/core/agent-session.js.map +1 -1
  11. package/dist/core/agents.d.ts +6 -5
  12. package/dist/core/agents.js.map +1 -1
  13. package/dist/core/bundled-agents.js +1 -3
  14. package/dist/core/bundled-agents.js.map +1 -1
  15. package/dist/core/compaction/compactor.js +78 -48
  16. package/dist/core/compaction/compactor.js.map +1 -1
  17. package/dist/core/model-unavailable.d.ts +14 -0
  18. package/dist/core/model-unavailable.js +23 -0
  19. package/dist/core/model-unavailable.js.map +1 -0
  20. package/dist/core/node-debugger.d.ts +148 -0
  21. package/dist/core/node-debugger.js +642 -0
  22. package/dist/core/node-debugger.js.map +1 -0
  23. package/dist/core/process-manager.d.ts +14 -0
  24. package/dist/core/process-manager.js +61 -0
  25. package/dist/core/process-manager.js.map +1 -1
  26. package/dist/core/subagent-manager.d.ts +11 -5
  27. package/dist/core/subagent-manager.js +15 -7
  28. package/dist/core/subagent-manager.js.map +1 -1
  29. package/dist/core/test-impact.d.ts +73 -0
  30. package/dist/core/test-impact.js +467 -0
  31. package/dist/core/test-impact.js.map +1 -0
  32. package/dist/core/thinking-level.d.ts +1 -1
  33. package/dist/core/thinking-level.js +1 -1
  34. package/dist/core/thinking-level.js.map +1 -1
  35. package/dist/core/verification-gate.d.ts +2 -0
  36. package/dist/core/verification-gate.js +4 -0
  37. package/dist/core/verification-gate.js.map +1 -1
  38. package/dist/interactive.js +2 -1
  39. package/dist/interactive.js.map +1 -1
  40. package/dist/modes/subagent-worker-mode.js +17 -5
  41. package/dist/modes/subagent-worker-mode.js.map +1 -1
  42. package/dist/test-support/keep-alive.d.ts +14 -0
  43. package/dist/test-support/keep-alive.js +17 -0
  44. package/dist/test-support/keep-alive.js.map +1 -0
  45. package/dist/tools/bash.d.ts +10 -1
  46. package/dist/tools/bash.js +66 -3
  47. package/dist/tools/bash.js.map +1 -1
  48. package/dist/tools/debug.d.ts +54 -0
  49. package/dist/tools/debug.js +233 -0
  50. package/dist/tools/debug.js.map +1 -0
  51. package/dist/tools/index.d.ts +13 -2
  52. package/dist/tools/index.js +41 -6
  53. package/dist/tools/index.js.map +1 -1
  54. package/dist/tools/prompt-hints.js +2 -0
  55. package/dist/tools/prompt-hints.js.map +1 -1
  56. package/dist/tools/steroids.d.ts +1 -1
  57. package/dist/tools/subagent-control.js +11 -3
  58. package/dist/tools/subagent-control.js.map +1 -1
  59. package/dist/tools/subagent-shared.d.ts +16 -8
  60. package/dist/tools/subagent-shared.js +21 -15
  61. package/dist/tools/subagent-shared.js.map +1 -1
  62. package/dist/tools/subagent.d.ts +8 -2
  63. package/dist/tools/subagent.js +16 -9
  64. package/dist/tools/subagent.js.map +1 -1
  65. package/dist/tools/tool-tiers.d.ts +2 -2
  66. package/dist/tools/tool-tiers.js +3 -2
  67. package/dist/tools/tool-tiers.js.map +1 -1
  68. package/package.json +4 -4
@@ -0,0 +1,233 @@
1
+ import { z } from "zod";
2
+ import { NodeDebugSession } from "../core/node-debugger.js";
3
+ import { isPlanModeActive, planModeRestriction } from "../core/runtime-mode.js";
4
+ import { localOperations } from "./operations.js";
5
+ import { truncateTail } from "./truncate.js";
6
+ const DEFAULT_WAIT_MS = 15_000;
7
+ const MAX_WAIT_MS = 120_000;
8
+ const BreakpointSpec = z.object({
9
+ file: z.string().min(1),
10
+ line: z.number().int().positive(),
11
+ condition: z.string().optional().describe("JS expression; pause only when it is truthy"),
12
+ });
13
+ const DebugParams = z.object({
14
+ action: z
15
+ .enum([
16
+ "launch",
17
+ "set_breakpoint",
18
+ "remove_breakpoint",
19
+ "continue",
20
+ "step_over",
21
+ "step_into",
22
+ "step_out",
23
+ "pause",
24
+ "stack",
25
+ "variables",
26
+ "evaluate",
27
+ "output",
28
+ "stop",
29
+ ])
30
+ .describe("What to do. Every action that runs code returns where the program stopped."),
31
+ program: z.string().optional().describe("launch: script to run (.js/.mjs/.cjs/.ts)"),
32
+ args: z.array(z.string()).optional().describe("launch: arguments passed to the script"),
33
+ node_args: z
34
+ .array(z.string())
35
+ .optional()
36
+ .describe('launch: extra node flags, e.g. ["--test", "--test-isolation=none"]'),
37
+ breakpoints: z
38
+ .array(BreakpointSpec)
39
+ .max(50)
40
+ .optional()
41
+ .describe("launch: breakpoints armed before the first line runs"),
42
+ stop_on_entry: z.boolean().optional().describe("launch: stay paused on the first line"),
43
+ pause_on_exceptions: z
44
+ .enum(["none", "uncaught", "all"])
45
+ .optional()
46
+ .describe("launch: when to pause on a throw (default uncaught)"),
47
+ file: z.string().optional().describe("set_breakpoint: file path"),
48
+ line: z.number().int().positive().optional().describe("set_breakpoint: 1-based line"),
49
+ condition: z.string().optional().describe("set_breakpoint: JS condition"),
50
+ breakpoint_id: z.string().optional().describe("remove_breakpoint: id such as bp1"),
51
+ frame: z
52
+ .number()
53
+ .int()
54
+ .min(0)
55
+ .optional()
56
+ .describe("variables/evaluate: stack frame index (0 = innermost)"),
57
+ expression: z.string().optional().describe("evaluate: JS expression"),
58
+ timeout_ms: z
59
+ .number()
60
+ .int()
61
+ .min(100)
62
+ .max(MAX_WAIT_MS)
63
+ .optional()
64
+ .describe(`launch/continue/step/pause: how long to wait for a stop (default ${DEFAULT_WAIT_MS})`),
65
+ });
66
+ /** Holds the one live debug session of an agent session; `shutdown` on dispose. */
67
+ export class DebugManager {
68
+ session;
69
+ get current() {
70
+ return this.session;
71
+ }
72
+ replace(next) {
73
+ const replaced = this.session !== undefined && !this.session.hasExited;
74
+ this.session?.stop();
75
+ this.session = next;
76
+ return replaced;
77
+ }
78
+ shutdown() {
79
+ this.replace(undefined);
80
+ }
81
+ }
82
+ function describeStop(session, state, waitedMs) {
83
+ const parts = [];
84
+ if (state.kind === "paused") {
85
+ parts.push(session.pauseSummary());
86
+ const snippet = session.sourceSnippet();
87
+ if (snippet)
88
+ parts.push(snippet);
89
+ }
90
+ else if (state.kind === "exited") {
91
+ parts.push(`The program exited (code ${state.code ?? "unknown"}). The debug session is over.`);
92
+ }
93
+ else {
94
+ parts.push(`Still running after ${waitedMs / 1000}s with no breakpoint hit. ` +
95
+ "Use pause to stop it where it is, continue to keep waiting, or stop to end it.");
96
+ }
97
+ const output = session.readNewOutput();
98
+ if (output)
99
+ parts.push(`Program output:\n${truncateTail(output).content}`);
100
+ return parts.join("\n\n");
101
+ }
102
+ async function withLocals(session, text) {
103
+ if (!session.isPaused)
104
+ return text;
105
+ try {
106
+ return `${text}\n\nVariables:\n${await session.variables(0)}`;
107
+ }
108
+ catch {
109
+ return text;
110
+ }
111
+ }
112
+ function need(value, name, action) {
113
+ if (value === undefined)
114
+ throw new Error(`${action} needs \`${name}\``);
115
+ return value;
116
+ }
117
+ export function createDebugTool(cwd, manager, ops = localOperations, planModeRef, getSandboxPolicy) {
118
+ return {
119
+ name: "debug",
120
+ description: "Debug a Node.js program (JS, or TS run by Node's type stripping) with real breakpoints. " +
121
+ "Use it when a bug depends on runtime state: launch with breakpoints, read variables at the " +
122
+ "stop, step, and evaluate expressions in the paused frame — instead of adding prints and re-running. " +
123
+ "launch, continue, step_* and pause return where it stopped, the source around it and the " +
124
+ "local variables. It pauses on uncaught exceptions by default. One session at a time; " +
125
+ "launching again stops the previous program. To debug a node:test file, launch it with " +
126
+ 'node_args ["--test", "--test-isolation=none"]. Test runners that run tests in worker ' +
127
+ "processes (vitest, jest) do not reach breakpoints this way.",
128
+ parameters: DebugParams,
129
+ async execute(args, context) {
130
+ const waitMs = args.timeout_ms ?? DEFAULT_WAIT_MS;
131
+ const session = manager.current;
132
+ if (args.action === "launch") {
133
+ if (isPlanModeActive(planModeRef))
134
+ return planModeRestriction("debug launch");
135
+ const program = need(args.program, "program", "launch");
136
+ let next;
137
+ try {
138
+ next = await NodeDebugSession.launch({
139
+ cwd,
140
+ program,
141
+ ...(args.args && { args: args.args }),
142
+ ...(args.node_args && { nodeArgs: args.node_args }),
143
+ ...(args.breakpoints && { breakpoints: args.breakpoints }),
144
+ ...(args.pause_on_exceptions && { pauseOnExceptions: args.pause_on_exceptions }),
145
+ ...(getSandboxPolicy && { sandboxPolicy: getSandboxPolicy() }),
146
+ ops,
147
+ });
148
+ }
149
+ catch (error) {
150
+ return `Error: could not start the debugger: ${error.message}`;
151
+ }
152
+ const replaced = manager.replace(next);
153
+ // The first stop is always "Break on start", after breakpoints are armed.
154
+ let state = await next.waitForStop(waitMs, context.signal);
155
+ if (state.kind === "paused" && !args.stop_on_entry) {
156
+ state = await next.resume("continue", waitMs, context.signal);
157
+ }
158
+ const armed = next
159
+ .listBreakpoints()
160
+ .map((bp) => `${bp.id} ${bp.file}:${bp.line}`)
161
+ .join(", ");
162
+ const header = (replaced ? "Stopped the previous debug session.\n" : "") +
163
+ `Launched ${program} under the debugger.` +
164
+ (armed ? ` Breakpoints: ${armed}.` : "");
165
+ return withLocals(next, `${header}\n\n${describeStop(next, state, waitMs)}`);
166
+ }
167
+ if (!session)
168
+ return 'Error: no debug session. Start one with action "launch".';
169
+ if (args.action === "output") {
170
+ return session.readNewOutput() || "(no new output)";
171
+ }
172
+ if (args.action === "stop") {
173
+ manager.replace(undefined);
174
+ const output = session.readNewOutput();
175
+ return `Debug session stopped.${output ? `\n\nProgram output:\n${truncateTail(output).content}` : ""}`;
176
+ }
177
+ if (session.hasExited) {
178
+ return `Error: the program already exited (${describeStop(session, session.state(), 0)}). Launch it again.`;
179
+ }
180
+ try {
181
+ switch (args.action) {
182
+ case "set_breakpoint": {
183
+ const file = need(args.file, "file", "set_breakpoint");
184
+ const line = need(args.line, "line", "set_breakpoint");
185
+ const bp = await session.setBreakpoint(file, line, args.condition);
186
+ const where = bp.boundLines.length > 0
187
+ ? `bound at line ${bp.boundLines.join(", ")}`
188
+ : "pending until the file loads (check the path if it never hits)";
189
+ return `Breakpoint ${bp.id} set at ${file}:${line}, ${where}.`;
190
+ }
191
+ case "remove_breakpoint": {
192
+ const id = need(args.breakpoint_id, "breakpoint_id", "remove_breakpoint");
193
+ return (await session.removeBreakpoint(id))
194
+ ? `Removed ${id}.`
195
+ : `Error: no breakpoint ${id}. Set: ${session
196
+ .listBreakpoints()
197
+ .map((b) => b.id)
198
+ .join(", ") || "none"}.`;
199
+ }
200
+ case "continue":
201
+ case "step_over":
202
+ case "step_into":
203
+ case "step_out": {
204
+ if (!session.isPaused) {
205
+ return "Error: the program is running, not paused. Use pause first, or wait for a breakpoint.";
206
+ }
207
+ const state = await session.resume(args.action, waitMs, context.signal);
208
+ return withLocals(session, describeStop(session, state, waitMs));
209
+ }
210
+ case "pause": {
211
+ const state = await session.pause(waitMs, context.signal);
212
+ return withLocals(session, describeStop(session, state, waitMs));
213
+ }
214
+ case "stack":
215
+ if (!session.isPaused)
216
+ return "Error: the program is running; there is no stack to show.";
217
+ return session.stack();
218
+ case "variables":
219
+ if (!session.isPaused)
220
+ return "Error: the program is running; pause it first.";
221
+ return session.variables(args.frame ?? 0);
222
+ case "evaluate":
223
+ return session.evaluate(need(args.expression, "expression", "evaluate"), args.frame ?? 0);
224
+ }
225
+ }
226
+ catch (error) {
227
+ return `Error: ${error.message}`;
228
+ }
229
+ return "Error: unknown action";
230
+ },
231
+ };
232
+ }
233
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/tools/debug.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import type { AgentTool } from "@kenkaiiii/gg-agent";
2
- import type { Provider, ThinkingLevel } from "@kenkaiiii/gg-ai";
2
+ import type { Provider } from "@kenkaiiii/gg-ai";
3
3
  import type { ContextLimits } from "../core/context-limits.js";
4
4
  import { SubAgentManager, type SubAgentSnapshot } from "../core/subagent-manager.js";
5
5
  import { ProcessManager } from "../core/process-manager.js";
6
6
  import { LspManager } from "../core/lsp/manager.js";
7
+ import { TestImpactIndex } from "../core/test-impact.js";
8
+ import { DebugManager } from "./debug.js";
7
9
  import { type GenerateImageAuth } from "./generate-image.js";
8
10
  import { type ToolOperations } from "./operations.js";
9
11
  import type { WriteGuardSettings } from "../core/workspace-guard.js";
@@ -52,7 +54,6 @@ export interface CreateToolsOptions {
52
54
  /** Current parent provider/model, evaluated lazily when spawning a sub-agent. */
53
55
  getProvider?: () => Provider;
54
56
  getModel?: () => string;
55
- getThinkingLevel?: () => ThinkingLevel | undefined;
56
57
  getBaseUrl?: () => string | undefined;
57
58
  /** Optional per-model subagent concurrency cap (subagentMaxPerModel). */
58
59
  getMaxPerModel?: () => number | undefined;
@@ -67,6 +68,12 @@ export interface CreateToolsOptions {
67
68
  lspDiagnostics?: boolean;
68
69
  /** Only hosts that drain diagnostics during steering and flush before completion may opt in. */
69
70
  deferLspDiagnostics?: boolean;
71
+ /**
72
+ * After each edit/write of a JS/TS file, name the tests that import it (with
73
+ * the command running exactly those) and importers left using a removed
74
+ * export. Local filesystem only. Default: true.
75
+ */
76
+ editImpact?: boolean;
70
77
  /**
71
78
  * Auth storage for conditional tool registration. When provided AND the user
72
79
  * has OpenAI connected, the `generate_image` tool is registered — letting the
@@ -132,6 +139,10 @@ export interface CreateToolsResult {
132
139
  * `shutdownAll()` into their exit/cleanup paths alongside processManager.
133
140
  */
134
141
  lspManager?: LspManager;
142
+ /** Import-graph index behind the edit-impact notes; absent when disabled or remote. */
143
+ testImpact?: TestImpactIndex;
144
+ /** Owner of the live `debug` session; callers `shutdown()` it on exit. Local only. */
145
+ debugManager?: DebugManager;
135
146
  subAgentManager?: SubAgentManager;
136
147
  }
137
148
  export declare function createTools(cwd: string, opts?: CreateToolsOptions): Promise<CreateToolsResult>;
@@ -1,6 +1,8 @@
1
1
  import { SubAgentManager } from "../core/subagent-manager.js";
2
2
  import { ProcessManager } from "../core/process-manager.js";
3
3
  import { LspManager } from "../core/lsp/manager.js";
4
+ import { TestImpactIndex } from "../core/test-impact.js";
5
+ import { createDebugTool, DebugManager } from "./debug.js";
4
6
  import { createReadTool } from "./read.js";
5
7
  import { getVideoByteLimit } from "../core/model-registry.js";
6
8
  import { createWriteTool } from "./write.js";
@@ -46,11 +48,31 @@ export async function createTools(cwd, opts) {
46
48
  // don't exist here. Lazy: no server spawns until the first matching edit.
47
49
  const lspEnabled = (opts?.lspDiagnostics ?? true) && ops === localOperations;
48
50
  const lspManager = lspEnabled ? new LspManager(cwd) : undefined;
49
- const getDiagnostics = lspManager
51
+ const lspDiagnostics = lspManager
50
52
  ? async (filePath, content, source) => opts?.deferLspDiagnostics
51
53
  ? lspManager.queueDiagnosticsAfterWrite(filePath, content, source)
52
54
  : lspManager.diagnosticsAfterWrite(filePath, content, source)
53
55
  : undefined;
56
+ // Same local-only reasoning as LSP: the index reads the workspace from disk.
57
+ const testImpact = (opts?.editImpact ?? true) && ops === localOperations ? new TestImpactIndex(cwd) : undefined;
58
+ const debugManager = ops === localOperations ? new DebugManager() : undefined;
59
+ const getDiagnostics = lspDiagnostics || testImpact
60
+ ? async (filePath, content, source) => {
61
+ const [lspNote, impactNote] = await Promise.all([
62
+ lspDiagnostics?.(filePath, content, source) ?? "",
63
+ testImpact?.noteAfterWrite(filePath, content) ?? "",
64
+ ]);
65
+ return lspNote + impactNote;
66
+ }
67
+ : undefined;
68
+ // Snapshot exports before a tool overwrites a file, so a removed export can
69
+ // be traced to the importers it breaks.
70
+ const onPreFileMutation = testImpact
71
+ ? async (filePath) => {
72
+ await testImpact.beforeWrite(filePath);
73
+ await opts?.onPreFileMutation?.(filePath);
74
+ }
75
+ : opts?.onPreFileMutation;
54
76
  // Enable native video returns from the read tool for any video-capable model
55
77
  // (Kimi/Moonshot, Gemini, MiniMax), each with its own per-model byte cap that
56
78
  // drives auto-compression. Non-video models get `undefined` — video falls back
@@ -58,8 +80,8 @@ export async function createTools(cwd, opts) {
58
80
  const videoByteLimit = opts?.model ? getVideoByteLimit(opts.model) : undefined;
59
81
  const tools = [
60
82
  createReadTool(cwd, readFiles, ops, opts?.onFileRead, videoByteLimit),
61
- createWriteTool(cwd, readFiles, ops, planModeRef, opts?.onFileMutated, opts?.onPreFileMutation, getDiagnostics, opts?.getWriteGuardSettings),
62
- createEditTool(cwd, readFiles, ops, planModeRef, opts?.onFileMutated, opts?.onPreFileMutation, getDiagnostics, opts?.getWriteGuardSettings),
83
+ createWriteTool(cwd, readFiles, ops, planModeRef, opts?.onFileMutated, onPreFileMutation, getDiagnostics, opts?.getWriteGuardSettings),
84
+ createEditTool(cwd, readFiles, ops, planModeRef, opts?.onFileMutated, onPreFileMutation, getDiagnostics, opts?.getWriteGuardSettings),
63
85
  createBashTool(cwd, processManager, ops, planModeRef, undefined, opts?.getNetworkPolicy, ops === localOperations ? opts?.getSandboxPolicy : undefined),
64
86
  createFindTool(cwd),
65
87
  createGrepTool(cwd, ops, { useExternalScanner: opts?.getUseExternalGrep }),
@@ -73,6 +95,11 @@ export async function createTools(cwd, opts) {
73
95
  createTaskStopTool(processManager),
74
96
  createTasksTool(cwd),
75
97
  createScreenshotTool(cwd),
98
+ // The debugger connects to a loopback inspector port, so the program must
99
+ // run on this machine: local operations only, like LSP.
100
+ ...(debugManager
101
+ ? [createDebugTool(cwd, debugManager, ops, planModeRef, opts?.getSandboxPolicy)]
102
+ : []),
76
103
  ];
77
104
  // Local corpus of real repos; only when the CLI is actually on this machine.
78
105
  const steroidsBin = opts?.steroidsBin === undefined ? findSteroidsBinary() : opts.steroidsBin;
@@ -94,7 +121,6 @@ export async function createTools(cwd, opts) {
94
121
  agents: opts.agents,
95
122
  getProvider: () => opts.getProvider?.() ?? opts.provider,
96
123
  getModel: () => opts.getModel?.() ?? opts.model,
97
- getThinkingLevel: () => opts.getThinkingLevel?.(),
98
124
  getCacheKey: opts.getCacheKey,
99
125
  getBaseUrl: opts.getBaseUrl,
100
126
  getMaxPerModel: () => opts.getMaxPerModel?.(),
@@ -130,11 +156,20 @@ export async function createTools(cwd, opts) {
130
156
  // Adoption currently supports the local filesystem only. Never silently write
131
157
  // locally when a host supplied remote operations.
132
158
  if (ops === localOperations) {
133
- tools.push(createUiAdoptTool(cwd, uiRegistry, createWriteTool(cwd, readFiles, adoptionOperations(cwd), planModeRef, opts?.onFileMutated, opts?.onPreFileMutation, getDiagnostics, opts?.getWriteGuardSettings), planModeRef));
159
+ tools.push(createUiAdoptTool(cwd, uiRegistry, createWriteTool(cwd, readFiles, adoptionOperations(cwd), planModeRef, opts?.onFileMutated, onPreFileMutation, getDiagnostics, opts?.getWriteGuardSettings), planModeRef));
134
160
  }
135
161
  const rebuildReadTool = (model) => createReadTool(cwd, readFiles, ops, opts?.onFileRead, getVideoByteLimit(model));
136
162
  const clearReadTracker = () => readFiles.clear();
137
- return { tools, processManager, rebuildReadTool, clearReadTracker, lspManager, subAgentManager };
163
+ return {
164
+ tools,
165
+ processManager,
166
+ rebuildReadTool,
167
+ clearReadTracker,
168
+ lspManager,
169
+ ...(testImpact && { testImpact }),
170
+ ...(debugManager && { debugManager }),
171
+ subAgentManager,
172
+ };
138
173
  }
139
174
  export { createReadTool } from "./read.js";
140
175
  export { createWriteTool } from "./write.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAyB,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAA0B,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AASvE,6EAA6E;AAC7E,wEAAwE;AACxE,4CAA4C;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAkIvD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,IAAyB;IAEzB,MAAM,SAAS,GAAgB,IAAI,GAAG,EAAE,CAAC;IACzC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IAClF,MAAM,GAAG,GAAG,IAAI,EAAE,UAAU,IAAI,eAAe,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;IAEtC,wEAAwE;IACxE,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,cAAc,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,eAAe,CAAC;IAC7E,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,MAAM,cAAc,GAAG,UAAU;QAC/B,CAAC,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAe,EAAE,MAAmB,EAAmB,EAAE,CAChF,IAAI,EAAE,mBAAmB;YACvB,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;YAClE,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;QACnE,CAAC,CAAC,SAAS,CAAC;IACd,6EAA6E;IAC7E,MAAM,UAAU,GACd,CAAC,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,YAAY,GAAG,GAAG,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,cAAc,GAClB,cAAc,IAAI,UAAU;QAC1B,CAAC,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAe,EAAE,MAAmB,EAAmB,EAAE;YAChF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACjD,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE;aACpD,CAAC,CAAC;YACH,OAAO,OAAO,GAAG,UAAU,CAAC;QAC9B,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,4EAA4E;IAC5E,wCAAwC;IACxC,MAAM,iBAAiB,GAAG,UAAU;QAClC,CAAC,CAAC,KAAK,EAAE,QAAgB,EAAiB,EAAE;YACxC,MAAM,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,IAAI,EAAE,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACH,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAE5B,6EAA6E;IAC7E,8EAA8E;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,MAAM,cAAc,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,KAAK,GAAgB;QACzB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC;QACrE,eAAe,CACb,GAAG,EACH,SAAS,EACT,GAAG,EACH,WAAW,EACX,IAAI,EAAE,aAAa,EACnB,iBAAiB,EACjB,cAAc,EACd,IAAI,EAAE,qBAAqB,CAC5B;QACD,cAAc,CACZ,GAAG,EACH,SAAS,EACT,GAAG,EACH,WAAW,EACX,IAAI,EAAE,aAAa,EACnB,iBAAiB,EACjB,cAAc,EACd,IAAI,EAAE,qBAAqB,CAC5B;QACD,cAAc,CACZ,GAAG,EACH,cAAc,EACd,GAAG,EACH,WAAW,EACX,SAAS,EACT,IAAI,EAAE,gBAAgB,EACtB,GAAG,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAC7D;QACD,cAAc,CAAC,GAAG,CAAC;QACnB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QAC1E,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC;QAC9B,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC;QACvC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;QACtB,oBAAoB,CAAC,GAAG,CAAC;QACzB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAC1C,oBAAoB,CAAC,cAAc,CAAC;QACpC,kBAAkB,CAAC,cAAc,EAAE,GAAG,CAAC;QACvC,kBAAkB,CAAC,cAAc,CAAC;QAClC,eAAe,CAAC,GAAG,CAAC;QACpB,oBAAoB,CAAC,GAAG,CAAC;QACzB,0EAA0E;QAC1E,wDAAwD;QACxD,GAAG,CAAC,YAAY;YACd,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAChF,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,6EAA6E;IAC7E,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC9F,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE7D,uEAAuE;IACvE,IAAI,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,eAA4C,CAAC;IACjD,IACE,CAAC,IAAI,EAAE,gBAAgB;QACvB,IAAI,EAAE,MAAM;QACZ,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QACtB,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,KAAK,EACV,CAAC;QACD,KAAK,CAAC,IAAI,CACR,kBAAkB,CAChB,GAAG,EACH,IAAI,CAAC,MAAM,EACX,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,CAAC,QAAS,EAC5C,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,KAAM,EACtC,IAAI,CAAC,WAAW,EAChB,WAAW,CACZ,CACF,CAAC;QACF,eAAe,GAAG,IAAI,eAAe,CAAC;YACpC,GAAG;YACH,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,CAAC,QAAS;YACzD,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,KAAM;YAChD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YAC7C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,IAAI,EAAE,UAAU,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,wEAAwE;IACxE,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrD,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;QAClE,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,8EAA8E;IAC9E,kDAAkD;IAClD,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CACR,iBAAiB,CACf,GAAG,EACH,UAAU,EACV,eAAe,CACb,GAAG,EACH,SAAS,EACT,kBAAkB,CAAC,GAAG,CAAC,EACvB,WAAW,EACX,IAAI,EAAE,aAAa,EACnB,iBAAiB,EACjB,cAAc,EACd,IAAI,EAAE,qBAAqB,CAC5B,EACD,WAAW,CACZ,CACF,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,KAAa,EAAa,EAAE,CACnD,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAElF,MAAM,gBAAgB,GAAG,GAAS,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAEvD,OAAO;QACL,KAAK;QACL,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,UAAU;QACV,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;QACjC,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;QACrC,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAA0B,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC"}
@@ -24,6 +24,7 @@ export const TOOL_PROMPT_HINTS = {
24
24
  task_output: "Read new output from a background process by id; wait_ms blocks until it exits.",
25
25
  task_stop: "Stop a background process by id.",
26
26
  screenshot: "Verify rendered UI with browser screenshots, click/type actions and viewport controls.",
27
+ debug: "Node.js breakpoints, stepping and live variables.",
27
28
  send_message: "Queue steering into a running child agent without starting another turn.",
28
29
  followup_task: "Start another turn in an idle child agent, preserving its context.",
29
30
  wait_agent: "Block until named child agents finish and return their snapshots; child agents " +
@@ -94,6 +95,7 @@ export const BUILTIN_TOOL_NAMES = [
94
95
  "bash",
95
96
  "code_nav",
96
97
  "code_search",
98
+ "debug",
97
99
  "edit",
98
100
  "enter_plan",
99
101
  "exit_plan",
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-hints.js","sourceRoot":"","sources":["../../src/tools/prompt-hints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-hints.js","sourceRoot":"","sources":["../../src/tools/prompt-hints.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ declare const SteroidsParams: z.ZodObject<{
4
4
  action: z.ZodEnum<{
5
5
  search: "search";
6
6
  files: "files";
7
- show: "show";
8
7
  add: "add";
8
+ show: "show";
9
9
  repos: "repos";
10
10
  define: "define";
11
11
  discover: "discover";
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { isPlanModeActive, planModeRestriction } from "../core/runtime-mode.js";
3
3
  import { renderAgentRoster } from "./subagent-shared.js";
4
+ import { AcceptanceChecksParam } from "../core/acceptance-checks.js";
4
5
  import { ACTIVE_LIMIT, DEFAULT_WAIT_MS, MAX_WAIT_MS } from "../core/subagent-manager.js";
5
6
  const AgentId = z.string().min(1).describe("Eight-character agent ID returned by spawn_agent");
6
7
  function json(value) {
@@ -24,6 +25,7 @@ export function createSubAgentControlTools(manager, planModeRef) {
24
25
  .describe("Standalone task instruction. The child sees none of this conversation, so state the " +
25
26
  "objective, the paths involved, and what to return."),
26
27
  agent: agentParam,
28
+ checks: AcceptanceChecksParam,
27
29
  });
28
30
  // A list, so one call starts every child: on models that send one tool call
29
31
  // per turn (GPT-6.x), a one-child-per-call shape cost a model turn per child
@@ -54,7 +56,9 @@ export function createSubAgentControlTools(manager, planModeRef) {
54
56
  // Each spawn runs its limit and duplicate-name checks and registers its
55
57
  // worker before its first await, so starting them together cannot
56
58
  // exceed ACTIVE_LIMIT or the per-model cap.
57
- const settled = await Promise.allSettled(args.tasks.map((t) => manager.spawn(t.task_name, t.task, t.agent)));
59
+ const settled = await Promise.allSettled(args.tasks.map((t) => t.checks
60
+ ? manager.spawn(t.task_name, t.task, t.agent, { checks: t.checks })
61
+ : manager.spawn(t.task_name, t.task, t.agent)));
58
62
  const results = settled.map((result, index) => result.status === "fulfilled"
59
63
  ? result.value
60
64
  : {
@@ -83,7 +87,11 @@ export function createSubAgentControlTools(manager, planModeRef) {
83
87
  });
84
88
  },
85
89
  };
86
- const followupParams = z.object({ agent_id: AgentId, task: z.string().min(1) });
90
+ const followupParams = z.object({
91
+ agent_id: AgentId,
92
+ task: z.string().min(1),
93
+ checks: AcceptanceChecksParam,
94
+ });
87
95
  const followupTool = {
88
96
  name: "followup_task",
89
97
  description: "Start another turn in an idle child while preserving that child's context.",
@@ -92,7 +100,7 @@ export function createSubAgentControlTools(manager, planModeRef) {
92
100
  const restriction = blocked("followup_task");
93
101
  if (restriction)
94
102
  return restriction;
95
- return json(await manager.followup(args.agent_id, args.task));
103
+ return json(await manager.followup(args.agent_id, args.task, args.checks));
96
104
  },
97
105
  };
98
106
  const waitParams = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-control.js","sourceRoot":"","sources":["../../src/tools/subagent-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-control.js","sourceRoot":"","sources":["../../src/tools/subagent-control.ts"],"names":[],"mappings":"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"}
@@ -32,20 +32,29 @@ export interface SubAgentSelection {
32
32
  provider: Provider;
33
33
  parentModel: string;
34
34
  model: string;
35
+ /** Thinking level the child runs at — see {@link subAgentThinkingLevel}. */
36
+ thinkingLevel: ThinkingLevel | undefined;
35
37
  }
36
38
  export declare function resolveAgentDefinition(agents: AgentDefinition[], requestedName?: string): AgentDefinition | undefined;
37
39
  export declare function selectSubAgent(agents: AgentDefinition[], requestedName: string | undefined, provider: Provider, parentModel: string): SubAgentSelection;
38
40
  /**
39
41
  * Resolve which model a named agent runs on.
40
42
  *
41
- * The choice is declared in the agent's `model:` frontmatter, never inferred.
42
- * This used to guess: any agent without bash/write/edit was treated as
43
- * "read-only" and silently routed to the provider's cheapest tier — so every
44
- * research, recon and audit agent always ran on a Haiku-class model, invisibly
45
- * and with no way to override it. Defaulting to the parent's model instead
46
- * makes a downgrade opt-in and one line of frontmatter away.
43
+ * Sub-agents never get a weaker model of their own: no `model:` frontmatter,
44
+ * `inherit`, and the legacy `fast` all run on the parent's model. An explicit
45
+ * model id is honoured as written, since that is a choice the user made in
46
+ * their own agent definition.
47
47
  */
48
- export declare function resolveAgentModel(agentDef: AgentDefinition | undefined, provider: Provider, parentModel: string): string;
48
+ export declare function resolveAgentModel(agentDef: AgentDefinition | undefined, parentModel: string): string;
49
+ /**
50
+ * The thinking level EVERY sub-agent runs at: the lowest rung of the model it
51
+ * actually runs on — never off, and never the parent's level. Delegated work
52
+ * is scoped and briefed, so it reasons briefly on the full-strength model.
53
+ * Resolved per model (not copied from the parent) because ladders differ: a
54
+ * model-unavailable retry on the parent model must use the PARENT's lowest
55
+ * rung, not one the pinned model happened to accept.
56
+ */
57
+ export declare function subAgentThinkingLevel(provider: Provider, model: string): ThinkingLevel | undefined;
49
58
  /**
50
59
  * Render the agent roster for a tool description.
51
60
  *
@@ -67,7 +76,6 @@ export interface SpawnedTaskArgs {
67
76
  * string fields are kept.
68
77
  */
69
78
  export declare function spawnedTasks(args: unknown): SpawnedTaskArgs[];
70
- export declare function childThinkingLevel(level: ThinkingLevel | undefined): ThinkingLevel | undefined;
71
79
  export declare function subAgentCacheKey(parentCacheKey: string | undefined, model: string, agentName?: string): string | undefined;
72
80
  export declare function currentSubAgentDepth(env?: NodeJS.ProcessEnv): number;
73
81
  export declare function childSubAgentEnv(env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;