@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.
- package/dist/app-sidecar.js +11 -0
- package/dist/app-sidecar.js.map +1 -1
- package/dist/cli.js +2 -5
- package/dist/cli.js.map +1 -1
- package/dist/core/acceptance-checks.d.ts +48 -0
- package/dist/core/acceptance-checks.js +144 -0
- package/dist/core/acceptance-checks.js.map +1 -0
- package/dist/core/agent-session.d.ts +9 -0
- package/dist/core/agent-session.js +44 -5
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agents.d.ts +6 -5
- package/dist/core/agents.js.map +1 -1
- package/dist/core/bundled-agents.js +1 -3
- package/dist/core/bundled-agents.js.map +1 -1
- package/dist/core/compaction/compactor.js +78 -48
- package/dist/core/compaction/compactor.js.map +1 -1
- package/dist/core/model-unavailable.d.ts +14 -0
- package/dist/core/model-unavailable.js +23 -0
- package/dist/core/model-unavailable.js.map +1 -0
- package/dist/core/node-debugger.d.ts +148 -0
- package/dist/core/node-debugger.js +642 -0
- package/dist/core/node-debugger.js.map +1 -0
- package/dist/core/process-manager.d.ts +14 -0
- package/dist/core/process-manager.js +61 -0
- package/dist/core/process-manager.js.map +1 -1
- package/dist/core/subagent-manager.d.ts +11 -5
- package/dist/core/subagent-manager.js +15 -7
- package/dist/core/subagent-manager.js.map +1 -1
- package/dist/core/test-impact.d.ts +73 -0
- package/dist/core/test-impact.js +467 -0
- package/dist/core/test-impact.js.map +1 -0
- package/dist/core/thinking-level.d.ts +1 -1
- package/dist/core/thinking-level.js +1 -1
- package/dist/core/thinking-level.js.map +1 -1
- package/dist/core/verification-gate.d.ts +2 -0
- package/dist/core/verification-gate.js +4 -0
- package/dist/core/verification-gate.js.map +1 -1
- package/dist/interactive.js +2 -1
- package/dist/interactive.js.map +1 -1
- package/dist/modes/subagent-worker-mode.js +17 -5
- package/dist/modes/subagent-worker-mode.js.map +1 -1
- package/dist/test-support/keep-alive.d.ts +14 -0
- package/dist/test-support/keep-alive.js +17 -0
- package/dist/test-support/keep-alive.js.map +1 -0
- package/dist/tools/bash.d.ts +10 -1
- package/dist/tools/bash.js +66 -3
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/debug.d.ts +54 -0
- package/dist/tools/debug.js +233 -0
- package/dist/tools/debug.js.map +1 -0
- package/dist/tools/index.d.ts +13 -2
- package/dist/tools/index.js +41 -6
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/prompt-hints.js +2 -0
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/steroids.d.ts +1 -1
- package/dist/tools/subagent-control.js +11 -3
- package/dist/tools/subagent-control.js.map +1 -1
- package/dist/tools/subagent-shared.d.ts +16 -8
- package/dist/tools/subagent-shared.js +21 -15
- package/dist/tools/subagent-shared.js.map +1 -1
- package/dist/tools/subagent.d.ts +8 -2
- package/dist/tools/subagent.js +16 -9
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/tool-tiers.d.ts +2 -2
- package/dist/tools/tool-tiers.js +3 -2
- package/dist/tools/tool-tiers.js.map +1 -1
- 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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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { AgentTool } from "@kenkaiiii/gg-agent";
|
|
2
|
-
import type { Provider
|
|
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>;
|
package/dist/tools/index.js
CHANGED
|
@@ -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
|
|
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,
|
|
62
|
-
createEditTool(cwd, readFiles, ops, planModeRef, opts?.onFileMutated,
|
|
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,
|
|
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 {
|
|
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";
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
package/dist/tools/steroids.d.ts
CHANGED
|
@@ -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) =>
|
|
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({
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAEzF,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC;AAE/F,SAAS,IAAI,CAAC,KAAc;IAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAwB,EACxB,WAAkC;IAElC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAC/B,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExE,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,+BAA+B;IAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,CACjB,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CACjF;SACE,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC,CAAC;IAC5F,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;QAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAClF,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,sFAAsF;YACpF,oDAAoD,CACvD;QACH,KAAK,EAAE,UAAU;
|
|
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
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
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,
|
|
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;
|