@kenkaiiii/ggcoder 5.28.0 → 5.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-sidecar-auth-broadcast.test.d.ts +2 -0
- package/dist/app-sidecar-auth-broadcast.test.d.ts.map +1 -0
- package/dist/app-sidecar-auth-broadcast.test.js +271 -0
- package/dist/app-sidecar-auth-broadcast.test.js.map +1 -0
- package/dist/app-sidecar-sessions.test.js +8 -1
- package/dist/app-sidecar-sessions.test.js.map +1 -1
- package/dist/app-sidecar.js +151 -10
- package/dist/app-sidecar.js.map +1 -1
- package/dist/core/agent-session-checkpoint-flush.test.d.ts +2 -0
- package/dist/core/agent-session-checkpoint-flush.test.d.ts.map +1 -0
- package/dist/core/agent-session-checkpoint-flush.test.js +201 -0
- package/dist/core/agent-session-checkpoint-flush.test.js.map +1 -0
- package/dist/core/agent-session-crash-durability.test.d.ts +2 -0
- package/dist/core/agent-session-crash-durability.test.d.ts.map +1 -0
- package/dist/core/agent-session-crash-durability.test.js +95 -0
- package/dist/core/agent-session-crash-durability.test.js.map +1 -0
- package/dist/core/agent-session-review-coverage.test.js +75 -22
- package/dist/core/agent-session-review-coverage.test.js.map +1 -1
- package/dist/core/agent-session.d.ts +53 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +132 -8
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/event-bus.d.ts +4 -0
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js +3 -0
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/ideal-review.d.ts +20 -1
- package/dist/core/ideal-review.d.ts.map +1 -1
- package/dist/core/ideal-review.js +33 -2
- package/dist/core/ideal-review.js.map +1 -1
- package/dist/core/ideal-review.test.js +99 -3
- package/dist/core/ideal-review.test.js.map +1 -1
- package/dist/core/lsp/client.d.ts +15 -0
- package/dist/core/lsp/client.d.ts.map +1 -1
- package/dist/core/lsp/client.js +39 -1
- package/dist/core/lsp/client.js.map +1 -1
- package/dist/core/lsp/manager.d.ts +3 -0
- package/dist/core/lsp/manager.d.ts.map +1 -1
- package/dist/core/lsp/manager.js +33 -1
- package/dist/core/lsp/manager.js.map +1 -1
- package/dist/core/lsp/manager.test.js +18 -0
- package/dist/core/lsp/manager.test.js.map +1 -1
- package/dist/core/mcp/client-session-recovery.test.d.ts +2 -0
- package/dist/core/mcp/client-session-recovery.test.d.ts.map +1 -0
- package/dist/core/mcp/client-session-recovery.test.js +231 -0
- package/dist/core/mcp/client-session-recovery.test.js.map +1 -0
- package/dist/core/mcp/client.d.ts +57 -0
- package/dist/core/mcp/client.d.ts.map +1 -1
- package/dist/core/mcp/client.js +146 -8
- package/dist/core/mcp/client.js.map +1 -1
- package/dist/core/mcp/elicitation-bridge.d.ts +41 -0
- package/dist/core/mcp/elicitation-bridge.d.ts.map +1 -0
- package/dist/core/mcp/elicitation-bridge.js +52 -0
- package/dist/core/mcp/elicitation-bridge.js.map +1 -0
- package/dist/core/mcp/elicitation.test.d.ts +2 -0
- package/dist/core/mcp/elicitation.test.d.ts.map +1 -0
- package/dist/core/mcp/elicitation.test.js +158 -0
- package/dist/core/mcp/elicitation.test.js.map +1 -0
- package/dist/core/mcp/index.d.ts +3 -1
- package/dist/core/mcp/index.d.ts.map +1 -1
- package/dist/core/mcp/index.js +1 -0
- package/dist/core/mcp/index.js.map +1 -1
- package/dist/core/process-manager-notifications.test.js +102 -0
- package/dist/core/process-manager-notifications.test.js.map +1 -1
- package/dist/core/process-manager.d.ts +14 -4
- package/dist/core/process-manager.d.ts.map +1 -1
- package/dist/core/process-manager.js +83 -21
- package/dist/core/process-manager.js.map +1 -1
- package/dist/core/run-journal.test.d.ts +2 -0
- package/dist/core/run-journal.test.d.ts.map +1 -0
- package/dist/core/run-journal.test.js +195 -0
- package/dist/core/run-journal.test.js.map +1 -0
- package/dist/core/run-lifecycle.d.ts +22 -3
- package/dist/core/run-lifecycle.d.ts.map +1 -1
- package/dist/core/run-lifecycle.js +12 -3
- package/dist/core/run-lifecycle.js.map +1 -1
- package/dist/core/session-export.d.ts.map +1 -1
- package/dist/core/session-export.js +5 -0
- package/dist/core/session-export.js.map +1 -1
- package/dist/core/session-history.d.ts +10 -0
- package/dist/core/session-history.d.ts.map +1 -1
- package/dist/core/session-history.js +17 -2
- package/dist/core/session-history.js.map +1 -1
- package/dist/core/session-history.test.js +26 -1
- package/dist/core/session-history.test.js.map +1 -1
- package/dist/core/session-manager.d.ts +63 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +94 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-notification-visibility.test.d.ts +2 -0
- package/dist/core/session-notification-visibility.test.d.ts.map +1 -0
- package/dist/core/session-notification-visibility.test.js +79 -0
- package/dist/core/session-notification-visibility.test.js.map +1 -0
- package/dist/core/session-preview.d.ts +4 -2
- package/dist/core/session-preview.d.ts.map +1 -1
- package/dist/core/session-preview.js +8 -3
- package/dist/core/session-preview.js.map +1 -1
- package/dist/core/session-storage.test.js +6 -1
- package/dist/core/session-storage.test.js.map +1 -1
- package/dist/core/settings-manager.d.ts +2 -2
- package/dist/modes/json-mode.d.ts +28 -0
- package/dist/modes/json-mode.d.ts.map +1 -1
- package/dist/modes/json-mode.js +32 -0
- package/dist/modes/json-mode.js.map +1 -1
- package/dist/modes/json-mode.test.d.ts +2 -0
- package/dist/modes/json-mode.test.d.ts.map +1 -0
- package/dist/modes/json-mode.test.js +84 -0
- package/dist/modes/json-mode.test.js.map +1 -0
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/subagent.js +43 -8
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/subagent.test.js +65 -3
- package/dist/tools/subagent.test.js.map +1 -1
- package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
- package/dist/ui/hooks/useAgentLoop.js +18 -4
- package/dist/ui/hooks/useAgentLoop.js.map +1 -1
- package/dist/utils/image.d.ts +26 -3
- package/dist/utils/image.d.ts.map +1 -1
- package/dist/utils/image.js +83 -14
- package/dist/utils/image.js.map +1 -1
- package/dist/utils/image.test.d.ts +2 -0
- package/dist/utils/image.test.d.ts.map +1 -0
- package/dist/utils/image.test.js +139 -0
- package/dist/utils/image.test.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-mode.test.d.ts","sourceRoot":"","sources":["../../src/modes/json-mode.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { exitAfterFlush, JSON_MODE_FLUSH_TIMEOUT_MS } from "./json-mode.js";
|
|
6
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
function fakeHost(writableLength) {
|
|
8
|
+
const exits = [];
|
|
9
|
+
let onDrain;
|
|
10
|
+
let onTimeout;
|
|
11
|
+
return {
|
|
12
|
+
exits,
|
|
13
|
+
stdout: {
|
|
14
|
+
writableLength,
|
|
15
|
+
once: (_event, listener) => {
|
|
16
|
+
onDrain = listener;
|
|
17
|
+
return undefined;
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
exit: (code) => {
|
|
21
|
+
exits.push(code);
|
|
22
|
+
},
|
|
23
|
+
setTimeout: (handler, ms) => {
|
|
24
|
+
expect(ms).toBe(JSON_MODE_FLUSH_TIMEOUT_MS);
|
|
25
|
+
onTimeout = handler;
|
|
26
|
+
return { unref: () => undefined };
|
|
27
|
+
},
|
|
28
|
+
drain: () => onDrain?.(),
|
|
29
|
+
fireTimeout: () => onTimeout?.(),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Regression: a JSON-mode child that had finished its work never exited, because
|
|
34
|
+
* the desktop sub-agent worker entry is the app-sidecar bundle whose import-time
|
|
35
|
+
* handles keep the event loop alive. The parent then killed it after its timeout
|
|
36
|
+
* and reported a completed run as "Sub-agent failed (exit null): unknown error".
|
|
37
|
+
*/
|
|
38
|
+
describe("exitAfterFlush", () => {
|
|
39
|
+
it("exits immediately when stdout has no buffered bytes", () => {
|
|
40
|
+
const host = fakeHost(0);
|
|
41
|
+
exitAfterFlush(0, host);
|
|
42
|
+
expect(host.exits).toEqual([0]);
|
|
43
|
+
});
|
|
44
|
+
it("waits for drain before exiting so the NDJSON tail is not truncated", () => {
|
|
45
|
+
const host = fakeHost(128);
|
|
46
|
+
exitAfterFlush(0, host);
|
|
47
|
+
expect(host.exits).toEqual([]);
|
|
48
|
+
host.drain();
|
|
49
|
+
expect(host.exits).toEqual([0]);
|
|
50
|
+
});
|
|
51
|
+
it("still exits when the pipe never drains", () => {
|
|
52
|
+
const host = fakeHost(128);
|
|
53
|
+
exitAfterFlush(0, host);
|
|
54
|
+
expect(host.exits).toEqual([]);
|
|
55
|
+
// A stalled reader must not resurrect the original hang.
|
|
56
|
+
host.fireTimeout();
|
|
57
|
+
expect(host.exits).toEqual([0]);
|
|
58
|
+
});
|
|
59
|
+
it("propagates a non-zero code", () => {
|
|
60
|
+
const host = fakeHost(0);
|
|
61
|
+
exitAfterFlush(1, host);
|
|
62
|
+
expect(host.exits).toEqual([1]);
|
|
63
|
+
});
|
|
64
|
+
it("does not leave a live timer holding the event loop open", () => {
|
|
65
|
+
const unref = vi.fn();
|
|
66
|
+
const host = fakeHost(128);
|
|
67
|
+
host.setTimeout = () => ({ unref });
|
|
68
|
+
exitAfterFlush(0, host);
|
|
69
|
+
expect(unref).toHaveBeenCalled();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe("runJsonMode termination contract", () => {
|
|
73
|
+
it("ends its success path by exiting rather than just returning", () => {
|
|
74
|
+
// Guards the actual defect: returning from runJsonMode left the process
|
|
75
|
+
// alive under any host that holds import-time handles.
|
|
76
|
+
const source = fs.readFileSync(path.join(__dirname, "json-mode.ts"), "utf-8");
|
|
77
|
+
const body = source.slice(source.indexOf("export async function runJsonMode"));
|
|
78
|
+
expect(body).toContain("exitAfterFlush(0)");
|
|
79
|
+
// The exit must come after dispose()/closeLogger() in the finally block,
|
|
80
|
+
// otherwise the session's own resources leak on every sub-agent call.
|
|
81
|
+
expect(body.indexOf("closeLogger()")).toBeLessThan(body.indexOf("exitAfterFlush(0)"));
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=json-mode.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-mode.test.js","sourceRoot":"","sources":["../../src/modes/json-mode.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAQL,KAAK,kBAAkB,EAKxB,MAAM,sBAAsB,CAAC;AAE9B,kFAAkF;AAClF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAI/D;AAED,QAAA,MAAM,cAAc;;;iBAMlB,CAAC;AAEH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,EAAE,EACzB,iBAAiB,EAAE,MAAM,MAAM,EAC/B,cAAc,EAAE,MAAM,MAAM,EAC5B,iBAAiB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,EAC5C,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACjC,SAAS,CAAC,OAAO,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAQL,KAAK,kBAAkB,EAKxB,MAAM,sBAAsB,CAAC;AAE9B,kFAAkF;AAClF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAI/D;AAED,QAAA,MAAM,cAAc;;;iBAMlB,CAAC;AAEH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,EAAE,EACzB,iBAAiB,EAAE,MAAM,MAAM,EAC/B,cAAc,EAAE,MAAM,MAAM,EAC5B,iBAAiB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,EAC5C,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACjC,SAAS,CAAC,OAAO,cAAc,CAAC,CA6TlC"}
|
package/dist/tools/subagent.js
CHANGED
|
@@ -32,6 +32,11 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
|
|
|
32
32
|
// turn. NOTE: the loop serializes the WHOLE batch if any call is
|
|
33
33
|
// sequential, so this only fans out when every call in the turn is parallel.
|
|
34
34
|
executionMode: "parallel",
|
|
35
|
+
// This tool enforces its own SUB_AGENT_TIMEOUT_MS budget and reports a
|
|
36
|
+
// specific message when it fires. Give the loop a slightly larger ceiling
|
|
37
|
+
// so the child is stopped and explained here, instead of being cancelled
|
|
38
|
+
// generically by the loop's shorter default before that can happen.
|
|
39
|
+
timeoutMs: SUB_AGENT_TIMEOUT_MS + 30_000,
|
|
35
40
|
async execute(args, context) {
|
|
36
41
|
if (isPlanModeActive(planModeRef)) {
|
|
37
42
|
return planModeRestriction("subagent");
|
|
@@ -101,17 +106,20 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
|
|
|
101
106
|
let maxTurnsLimit = 0;
|
|
102
107
|
let activeChild;
|
|
103
108
|
let activeChildExited = true;
|
|
104
|
-
|
|
109
|
+
/** Set when WE killed the child, so `exit null` can name its real cause. */
|
|
110
|
+
let killReason;
|
|
111
|
+
const killActiveChild = (reason) => {
|
|
105
112
|
const child = activeChild;
|
|
106
113
|
if (!child || activeChildExited)
|
|
107
114
|
return;
|
|
115
|
+
killReason ??= reason;
|
|
108
116
|
child.kill("SIGTERM");
|
|
109
117
|
setTimeout(() => {
|
|
110
118
|
if (activeChild === child && !activeChildExited)
|
|
111
119
|
child.kill("SIGKILL");
|
|
112
120
|
}, 3000);
|
|
113
121
|
};
|
|
114
|
-
const abortHandler = () => killActiveChild();
|
|
122
|
+
const abortHandler = () => killActiveChild("aborted");
|
|
115
123
|
context.signal.addEventListener("abort", abortHandler, { once: true });
|
|
116
124
|
return new Promise((resolve) => {
|
|
117
125
|
const finish = (result) => {
|
|
@@ -138,7 +146,7 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
|
|
|
138
146
|
// Both attempts share the original hard timeout; a retry never doubles
|
|
139
147
|
// the maximum runtime of one sub-agent call.
|
|
140
148
|
const remainingMs = Math.max(1, SUB_AGENT_TIMEOUT_MS - (Date.now() - startTime));
|
|
141
|
-
const timeout = setTimeout(killActiveChild, remainingMs);
|
|
149
|
+
const timeout = setTimeout(() => killActiveChild("timeout"), remainingMs);
|
|
142
150
|
const rl = createInterface({ input: child.stdout });
|
|
143
151
|
rl.on("line", (line) => {
|
|
144
152
|
try {
|
|
@@ -203,7 +211,7 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
|
|
|
203
211
|
return;
|
|
204
212
|
stderr = (stderr + chunk.toString()).slice(0, SUB_AGENT_MAX_STDERR_CHARS);
|
|
205
213
|
});
|
|
206
|
-
child.on("close", (code) => {
|
|
214
|
+
child.on("close", (code, signal) => {
|
|
207
215
|
if (activeChild === child)
|
|
208
216
|
activeChildExited = true;
|
|
209
217
|
clearTimeout(timeout);
|
|
@@ -239,16 +247,43 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
|
|
|
239
247
|
cacheRead: String(tokenUsage.cacheRead ?? 0),
|
|
240
248
|
cacheWrite: String(tokenUsage.cacheWrite ?? 0),
|
|
241
249
|
exitCode: String(code),
|
|
250
|
+
...(signal && { signal }),
|
|
251
|
+
...(killReason && { killReason }),
|
|
242
252
|
model,
|
|
243
253
|
});
|
|
244
|
-
|
|
254
|
+
const body = boundSubAgentOutput(textOutput);
|
|
255
|
+
if (code !== 0) {
|
|
256
|
+
// A provider/process failure can happen AFTER the model has emitted
|
|
257
|
+
// a progress sentence (for example: "I'll read both files now.").
|
|
258
|
+
// Treating any partial text as a successful final answer hid the
|
|
259
|
+
// non-zero exit and handed that sentence to the parent as if the
|
|
260
|
+
// review/task had completed. Preserve the partial output for
|
|
261
|
+
// diagnosis, but make the failure impossible to mistake for a
|
|
262
|
+
// result.
|
|
263
|
+
// `code` is null when the child died from a signal, which is
|
|
264
|
+
// almost always us killing it. Reporting that as "exit null:
|
|
265
|
+
// unknown error" hid the actual cause (a timeout) behind a
|
|
266
|
+
// mystery, so name it explicitly.
|
|
267
|
+
const error = stderr.trim() ||
|
|
268
|
+
(killReason === "timeout"
|
|
269
|
+
? `sub-agent exceeded its ${Math.round(SUB_AGENT_TIMEOUT_MS / 60000)}-minute time limit and was stopped`
|
|
270
|
+
: killReason === "aborted"
|
|
271
|
+
? "sub-agent was cancelled by the parent (turn aborted or per-tool timeout)"
|
|
272
|
+
: signal
|
|
273
|
+
? `sub-agent terminated by ${signal}`
|
|
274
|
+
: "unknown error");
|
|
245
275
|
finish({
|
|
246
|
-
|
|
276
|
+
// `boundSubAgentOutput("")` intentionally returns
|
|
277
|
+
// "(no output)" for successful empty children. Test the raw
|
|
278
|
+
// stream here so that placeholder is not mislabeled as partial
|
|
279
|
+
// model output on failures.
|
|
280
|
+
content: textOutput
|
|
281
|
+
? `Sub-agent failed (exit ${code}): ${error}\n\nPartial output before failure:\n${body}`
|
|
282
|
+
: `Sub-agent failed (exit ${code}): ${error}`,
|
|
247
283
|
details,
|
|
248
284
|
});
|
|
249
285
|
return;
|
|
250
286
|
}
|
|
251
|
-
const body = boundSubAgentOutput(textOutput);
|
|
252
287
|
const content = hitMaxTurns
|
|
253
288
|
? `[Sub-agent reached its ${maxTurnsLimit}-turn limit — it stopped mid-task and this output may be incomplete.]\n\n${body}`
|
|
254
289
|
: body;
|
|
@@ -262,7 +297,7 @@ export function createSubAgentTool(cwd, agents, getParentProvider, getParentMode
|
|
|
262
297
|
finish({ content: `Failed to spawn sub-agent: ${err.message}` });
|
|
263
298
|
});
|
|
264
299
|
if (context.signal.aborted)
|
|
265
|
-
killActiveChild();
|
|
300
|
+
killActiveChild("aborted");
|
|
266
301
|
};
|
|
267
302
|
startAttempt(useModel);
|
|
268
303
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
4
4
|
const { spawnMock } = vi.hoisted(() => ({ spawnMock: vi.fn() }));
|
|
5
5
|
vi.mock("node:child_process", () => ({ spawn: spawnMock }));
|
|
6
6
|
import { createSubAgentTool, isModelUnavailableError } from "./subagent.js";
|
|
7
|
-
import { MAX_BLOCKING_SUBAGENT_DEPTH, SUB_AGENT_DEPTH_ENV } from "./subagent-shared.js";
|
|
7
|
+
import { MAX_BLOCKING_SUBAGENT_DEPTH, SUB_AGENT_DEPTH_ENV, SUB_AGENT_TIMEOUT_MS, } from "./subagent-shared.js";
|
|
8
8
|
class MockChildProcess extends EventEmitter {
|
|
9
9
|
stdout = new PassThrough();
|
|
10
10
|
stderr = new PassThrough();
|
|
@@ -44,9 +44,25 @@ function mockExit(stderr, code, stdout = "", usage) {
|
|
|
44
44
|
});
|
|
45
45
|
return child;
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* A child killed by a signal reports `code === null` and writes no stderr —
|
|
49
|
+
* exactly the shape the desktop hang produced once the parent gave up on it.
|
|
50
|
+
*/
|
|
51
|
+
function mockSignalDeath(stdout = "") {
|
|
52
|
+
const child = new MockChildProcess();
|
|
53
|
+
setImmediate(() => {
|
|
54
|
+
if (stdout)
|
|
55
|
+
child.stdout.write(`${JSON.stringify({ type: "text_delta", text: stdout })}\n`);
|
|
56
|
+
child.stdout.end();
|
|
57
|
+
child.stderr.end();
|
|
58
|
+
});
|
|
59
|
+
return child;
|
|
60
|
+
}
|
|
61
|
+
function owlTool() {
|
|
62
|
+
return createSubAgentTool(process.cwd(), [owl], () => "openai", () => "gpt-5.6-sol", () => "parent-cache");
|
|
63
|
+
}
|
|
47
64
|
async function runOwl() {
|
|
48
|
-
|
|
49
|
-
return tool.execute({ agent: "owl", task: "Inspect the registry." }, { signal: new AbortController().signal, toolCallId: "test-call" });
|
|
65
|
+
return owlTool().execute({ agent: "owl", task: "Inspect the registry." }, { signal: new AbortController().signal, toolCallId: "test-call" });
|
|
50
66
|
}
|
|
51
67
|
beforeEach(() => {
|
|
52
68
|
spawnMock.mockReset();
|
|
@@ -84,6 +100,52 @@ describe("createSubAgentTool fast-model fallback", () => {
|
|
|
84
100
|
});
|
|
85
101
|
expect(spawnedModels()).toEqual(["gpt-5.6-luna"]);
|
|
86
102
|
});
|
|
103
|
+
it("does not mistake partial progress text for a successful final answer", async () => {
|
|
104
|
+
// Real failure shape: the model narrates before its first tool call, then
|
|
105
|
+
// the provider rate-limits the next turn and the child exits non-zero. The
|
|
106
|
+
// old collector returned only "I'll start..." as a successful tool result,
|
|
107
|
+
// hiding both the failure and the fact that no review/work was completed.
|
|
108
|
+
spawnMock.mockImplementationOnce(() => mockExit("Rate limited by Anthropic. Wait a moment and try again.", 1, "I'll read both files now."));
|
|
109
|
+
await expect(runOwl()).resolves.toMatchObject({
|
|
110
|
+
content: "Sub-agent failed (exit 1): Rate limited by Anthropic. Wait a moment and try again.\n\n" +
|
|
111
|
+
"Partial output before failure:\nI'll read both files now.",
|
|
112
|
+
});
|
|
113
|
+
expect(spawnedModels()).toEqual(["gpt-5.6-luna"]);
|
|
114
|
+
});
|
|
115
|
+
it("names the timeout instead of reporting a signal death as 'unknown error'", async () => {
|
|
116
|
+
// Regression: every desktop sub-agent hung until the parent killed it, and
|
|
117
|
+
// `close(null)` with empty stderr surfaced as "exit null: unknown error",
|
|
118
|
+
// hiding both the cause and the fact that the child had already answered.
|
|
119
|
+
const child = mockSignalDeath("CLEAR");
|
|
120
|
+
spawnMock.mockImplementationOnce(() => child);
|
|
121
|
+
const pending = runOwl();
|
|
122
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
123
|
+
child.emit("close", null, "SIGTERM");
|
|
124
|
+
const result = (await pending);
|
|
125
|
+
expect(result.content).not.toContain("unknown error");
|
|
126
|
+
expect(result.content).toContain("SIGTERM");
|
|
127
|
+
// Whatever the child did finish is still handed back for diagnosis.
|
|
128
|
+
expect(result.content).toContain("CLEAR");
|
|
129
|
+
});
|
|
130
|
+
it("names parent cancellation when the caller's signal aborts the child", async () => {
|
|
131
|
+
const child = mockSignalDeath();
|
|
132
|
+
spawnMock.mockImplementationOnce(() => child);
|
|
133
|
+
const controller = new AbortController();
|
|
134
|
+
const pending = owlTool().execute({ agent: "owl", task: "Inspect the registry." }, { signal: controller.signal, toolCallId: "test-call" });
|
|
135
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
136
|
+
controller.abort();
|
|
137
|
+
expect(child.kill).toHaveBeenCalledWith("SIGTERM");
|
|
138
|
+
child.emit("close", null, "SIGTERM");
|
|
139
|
+
const result = (await pending);
|
|
140
|
+
expect(result.content).toContain("cancelled by the parent");
|
|
141
|
+
expect(result.content).not.toContain("unknown error");
|
|
142
|
+
});
|
|
143
|
+
it("claims a loop timeout ceiling above its own sub-agent budget", () => {
|
|
144
|
+
// The loop's default per-tool timeout is SHORTER than SUB_AGENT_TIMEOUT_MS,
|
|
145
|
+
// so without this override the loop cancelled first and the tool's specific
|
|
146
|
+
// "exceeded its time limit" message could never be produced.
|
|
147
|
+
expect(owlTool().timeoutMs).toBeGreaterThan(SUB_AGENT_TIMEOUT_MS);
|
|
148
|
+
});
|
|
87
149
|
it("keeps the blocking contract while rejecting recursive process storms", async () => {
|
|
88
150
|
const previousDepth = process.env[SUB_AGENT_DEPTH_ENV];
|
|
89
151
|
process.env[SUB_AGENT_DEPTH_ENV] = String(MAX_BLOCKING_SUBAGENT_DEPTH);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.test.js","sourceRoot":"","sources":["../../src/tools/subagent.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9D,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAEjE,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAG5D,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"subagent.test.js","sourceRoot":"","sources":["../../src/tools/subagent.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentLoop.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useAgentLoop.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"useAgentLoop.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useAgentLoop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useState, useRef, useCallback, useEffect } from "react";
|
|
2
2
|
import { agentLoop, } from "@kenkaiiii/gg-agent";
|
|
3
3
|
import { ProviderError } from "@kenkaiiii/gg-ai";
|
|
4
|
-
import { buildReviewCoverageMessage, withReviewCoverageRequirements, } from "../../core/ideal-review.js";
|
|
4
|
+
import { buildReviewCoverageEscalationMessage, buildReviewCoverageMessage, MAX_REVIEW_COVERAGE_INJECTIONS, withReviewCoverageRequirements, } from "../../core/ideal-review.js";
|
|
5
5
|
import { CycleDetector, detectTextRepetition, ToolCallProgressTracker, } from "../../core/loop-breaker.js";
|
|
6
6
|
import { getClaudeCliUserAgent } from "../../core/claude-code-version.js";
|
|
7
7
|
import { resolveSessionTurnToolResultCharLimit } from "../../core/agent-session.js";
|
|
@@ -151,6 +151,8 @@ export function useAgentLoop(messages, options, callbacks) {
|
|
|
151
151
|
bashCalls: 0,
|
|
152
152
|
});
|
|
153
153
|
const idealReviewPhaseRef = useRef("idle");
|
|
154
|
+
/** Coverage follow-ups spent this run, capped by MAX_REVIEW_COVERAGE_INJECTIONS. */
|
|
155
|
+
const reviewCoverageInjectedRef = useRef(0);
|
|
154
156
|
// ── Loop-breaker tracking ──
|
|
155
157
|
const loopProgressTrackerRef = useRef(new ToolCallProgressTracker());
|
|
156
158
|
const cycleDetectorRef = useRef(new CycleDetector());
|
|
@@ -334,6 +336,7 @@ export function useAgentLoop(messages, options, callbacks) {
|
|
|
334
336
|
bashCalls: 0,
|
|
335
337
|
};
|
|
336
338
|
idealReviewPhaseRef.current = "idle";
|
|
339
|
+
reviewCoverageInjectedRef.current = 0;
|
|
337
340
|
options.reviewCoverageTracker?.reset();
|
|
338
341
|
loopProgressTrackerRef.current.reset();
|
|
339
342
|
cycleDetectorRef.current.reset();
|
|
@@ -534,9 +537,20 @@ export function useAgentLoop(messages, options, callbacks) {
|
|
|
534
537
|
missing: coverage.missing,
|
|
535
538
|
});
|
|
536
539
|
if (coverage.missing.length > 0) {
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
+
if (reviewCoverageInjectedRef.current < MAX_REVIEW_COVERAGE_INJECTIONS) {
|
|
541
|
+
reviewCoverageInjectedRef.current += 1;
|
|
542
|
+
return [
|
|
543
|
+
withLspReviewEvidence(buildReviewCoverageMessage(coverage.missing), coverage.expected, options.lspManager),
|
|
544
|
+
];
|
|
545
|
+
}
|
|
546
|
+
// Budget spent: close the gate rather than re-injecting the
|
|
547
|
+
// same unreadable-file checklist for the rest of the run.
|
|
548
|
+
idealReviewPhaseRef.current = "complete";
|
|
549
|
+
log("INFO", "ideal", "Ideal review coverage escalated after retry budget", {
|
|
550
|
+
injected: String(reviewCoverageInjectedRef.current),
|
|
551
|
+
missing: coverage.missing,
|
|
552
|
+
});
|
|
553
|
+
return [buildReviewCoverageEscalationMessage(coverage.missing)];
|
|
540
554
|
}
|
|
541
555
|
idealReviewPhaseRef.current = "complete";
|
|
542
556
|
return null;
|