codekin 0.6.5 → 0.7.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/README.md +6 -3
- package/dist/assets/index-CLuQVRRb.css +1 -0
- package/dist/assets/index-JVnFWiSw.js +185 -0
- package/dist/index.html +2 -2
- package/package.json +4 -2
- package/server/dist/anthropic-models.d.ts +40 -0
- package/server/dist/anthropic-models.js +212 -0
- package/server/dist/anthropic-models.js.map +1 -0
- package/server/dist/claude-process.d.ts +31 -3
- package/server/dist/claude-process.js +126 -9
- package/server/dist/claude-process.js.map +1 -1
- package/server/dist/codex-process.d.ts +147 -0
- package/server/dist/codex-process.js +741 -0
- package/server/dist/codex-process.js.map +1 -0
- package/server/dist/coding-process.d.ts +16 -4
- package/server/dist/coding-process.js +10 -0
- package/server/dist/coding-process.js.map +1 -1
- package/server/dist/config.d.ts +13 -0
- package/server/dist/config.js +18 -0
- package/server/dist/config.js.map +1 -1
- package/server/dist/opencode-process.d.ts +142 -5
- package/server/dist/opencode-process.js +664 -84
- package/server/dist/opencode-process.js.map +1 -1
- package/server/dist/orchestrator-children.d.ts +53 -6
- package/server/dist/orchestrator-children.js +292 -68
- package/server/dist/orchestrator-children.js.map +1 -1
- package/server/dist/orchestrator-manager.d.ts +10 -0
- package/server/dist/orchestrator-manager.js +70 -18
- package/server/dist/orchestrator-manager.js.map +1 -1
- package/server/dist/orchestrator-monitor.d.ts +7 -1
- package/server/dist/orchestrator-monitor.js +49 -19
- package/server/dist/orchestrator-monitor.js.map +1 -1
- package/server/dist/orchestrator-notify.d.ts +16 -3
- package/server/dist/orchestrator-notify.js +22 -7
- package/server/dist/orchestrator-notify.js.map +1 -1
- package/server/dist/orchestrator-outbox.d.ts +48 -0
- package/server/dist/orchestrator-outbox.js +154 -0
- package/server/dist/orchestrator-outbox.js.map +1 -0
- package/server/dist/orchestrator-session-router.js +40 -1
- package/server/dist/orchestrator-session-router.js.map +1 -1
- package/server/dist/prompt-router.d.ts +22 -1
- package/server/dist/prompt-router.js +94 -11
- package/server/dist/prompt-router.js.map +1 -1
- package/server/dist/session-archive.js +11 -1
- package/server/dist/session-archive.js.map +1 -1
- package/server/dist/session-lifecycle.js +36 -0
- package/server/dist/session-lifecycle.js.map +1 -1
- package/server/dist/session-manager.d.ts +19 -2
- package/server/dist/session-manager.js +116 -27
- package/server/dist/session-manager.js.map +1 -1
- package/server/dist/session-naming.d.ts +4 -0
- package/server/dist/session-naming.js +26 -5
- package/server/dist/session-naming.js.map +1 -1
- package/server/dist/session-routes.js +38 -1
- package/server/dist/session-routes.js.map +1 -1
- package/server/dist/stepflow-handler.js +2 -2
- package/server/dist/stepflow-handler.js.map +1 -1
- package/server/dist/tsconfig.tsbuildinfo +1 -1
- package/server/dist/types.d.ts +24 -3
- package/server/dist/types.js +1 -9
- package/server/dist/types.js.map +1 -1
- package/server/dist/upload-routes.d.ts +7 -0
- package/server/dist/upload-routes.js +53 -24
- package/server/dist/upload-routes.js.map +1 -1
- package/server/dist/webhook-handler.js +3 -3
- package/server/dist/webhook-handler.js.map +1 -1
- package/server/dist/workflow-config.d.ts +2 -2
- package/server/dist/workflow-engine.d.ts +19 -0
- package/server/dist/workflow-engine.js +27 -3
- package/server/dist/workflow-engine.js.map +1 -1
- package/server/dist/workflow-loader.d.ts +5 -5
- package/server/dist/workflow-loader.js +90 -59
- package/server/dist/workflow-loader.js.map +1 -1
- package/server/dist/ws-message-handler.js +19 -8
- package/server/dist/ws-message-handler.js.map +1 -1
- package/server/dist/ws-server.js +25 -1
- package/server/dist/ws-server.js.map +1 -1
- package/dist/assets/index-B0xIzdCK.js +0 -187
- package/dist/assets/index-Q2WSVlHo.css +0 -1
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* and result polling.
|
|
7
7
|
*/
|
|
8
8
|
import { randomUUID } from 'crypto';
|
|
9
|
+
import { execFile } from 'child_process';
|
|
9
10
|
import { getAgentDisplayName } from './config.js';
|
|
10
11
|
import { sendOrchestratorNotification, } from './orchestrator-notify.js';
|
|
11
12
|
/** Statuses considered terminal — once entered, the child is done. */
|
|
@@ -14,13 +15,28 @@ const TERMINAL_STATUSES = new Set([
|
|
|
14
15
|
'failed',
|
|
15
16
|
'timed_out',
|
|
16
17
|
]);
|
|
18
|
+
const defaultExec = (cmd, args, cwd) => new Promise((resolvePromise, rejectPromise) => {
|
|
19
|
+
execFile(cmd, args, { cwd, timeout: 15_000, maxBuffer: 1024 * 1024 }, (err, stdout) => {
|
|
20
|
+
if (err)
|
|
21
|
+
rejectPromise(err instanceof Error ? err : new Error(`${cmd} failed`));
|
|
22
|
+
else
|
|
23
|
+
resolvePromise(stdout);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
17
26
|
// ---------------------------------------------------------------------------
|
|
18
27
|
// Constants
|
|
19
28
|
// ---------------------------------------------------------------------------
|
|
20
29
|
const MAX_CONCURRENT = 5;
|
|
21
|
-
const DEFAULT_TIMEOUT_MS =
|
|
30
|
+
const DEFAULT_TIMEOUT_MS = 1_800_000; // 30 minutes of working time
|
|
31
|
+
/**
|
|
32
|
+
* Separate budget for time spent blocked on a pending approval or question.
|
|
33
|
+
* The working-time clock is paused while blocked; this cap ensures a child
|
|
34
|
+
* waiting on an answer that never comes still terminates eventually.
|
|
35
|
+
*/
|
|
36
|
+
const MAX_BLOCKED_MS = 1_800_000; // 30 minutes
|
|
22
37
|
const CHILD_RETENTION_MS = 3_600_000; // keep completed/failed children for 1 hour
|
|
23
38
|
const MAX_RETAINED_CHILDREN = 100; // hard cap on total entries
|
|
39
|
+
const MAX_NOTIFIED_PROMPT_IDS = 500; // cap on the blocked-prompt dedup set
|
|
24
40
|
/**
|
|
25
41
|
* Default allowed tools for agent child sessions. Covers standard dev
|
|
26
42
|
* operations without granting arbitrary shell access. Destructive commands
|
|
@@ -41,6 +57,12 @@ export const AGENT_CHILD_ALLOWED_TOOLS = [
|
|
|
41
57
|
// Build / lint / test tools
|
|
42
58
|
'Bash(node:*)', 'Bash(tsc:*)', 'Bash(eslint:*)', 'Bash(prettier:*)',
|
|
43
59
|
'Bash(cargo:*)', 'Bash(go:*)', 'Bash(make:*)', 'Bash(pip:*)',
|
|
60
|
+
// Python toolchain (linting/tests in Python repos)
|
|
61
|
+
'Bash(python3:*)', 'Bash(pytest:*)',
|
|
62
|
+
// Text/data processing (read-only or scoped to working dir)
|
|
63
|
+
'Bash(sed:*)', 'Bash(rg:*)', 'Bash(jq:*)',
|
|
64
|
+
// Non-destructive file management (no rm — deletion still needs approval)
|
|
65
|
+
'Bash(mkdir:*)', 'Bash(cp:*)', 'Bash(mv:*)', 'Bash(touch:*)',
|
|
44
66
|
// Safe filesystem inspection (read-only)
|
|
45
67
|
'Bash(ls:*)', 'Bash(cat:*)', 'Bash(wc:*)',
|
|
46
68
|
'Bash(head:*)', 'Bash(tail:*)', 'Bash(sort:*)', 'Bash(diff:*)',
|
|
@@ -55,9 +77,106 @@ export class OrchestratorChildManager {
|
|
|
55
77
|
children = new Map();
|
|
56
78
|
sessions;
|
|
57
79
|
notify;
|
|
80
|
+
/** Prompt requestIds already reported to the parent (single-fire per prompt). */
|
|
81
|
+
notifiedPromptIds = new Set();
|
|
82
|
+
/**
|
|
83
|
+
* Per-child timeout controllers — lets the prompt handler pause the
|
|
84
|
+
* working-time clock the moment a child blocks on an approval/question,
|
|
85
|
+
* instead of waiting for the next monitor event.
|
|
86
|
+
*/
|
|
87
|
+
timeoutControllers = new Map();
|
|
88
|
+
exec;
|
|
58
89
|
constructor(sessions, opts) {
|
|
59
90
|
this.sessions = sessions;
|
|
60
91
|
this.notify = opts?.notify ?? ((args) => sendOrchestratorNotification(sessions, args));
|
|
92
|
+
this.exec = opts?.exec ?? defaultExec;
|
|
93
|
+
// Push a realtime notification to the parent orchestrator whenever one of
|
|
94
|
+
// our children blocks on a tool approval or question. Without this, a
|
|
95
|
+
// blocked child would silently sit until its timeout killed it.
|
|
96
|
+
this.sessions.onSessionPrompt((sessionId, promptType, toolName, requestId) => {
|
|
97
|
+
this.handleChildPrompt(sessionId, promptType, toolName, requestId);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Handle a prompt event from any session: if it belongs to one of our
|
|
102
|
+
* active children, mark the child as blocked and notify the parent
|
|
103
|
+
* orchestrator with everything it needs to unblock the child.
|
|
104
|
+
*/
|
|
105
|
+
handleChildPrompt(sessionId, promptType, toolName, requestId) {
|
|
106
|
+
const child = this.children.get(sessionId);
|
|
107
|
+
if (!child || TERMINAL_STATUSES.has(child.status))
|
|
108
|
+
return;
|
|
109
|
+
child.status = 'blocked';
|
|
110
|
+
// Pause the working-time clock while the child waits for an answer.
|
|
111
|
+
this.timeoutControllers.get(sessionId)?.pause();
|
|
112
|
+
// Single-fire per requestId (re-broadcasts on client join would otherwise
|
|
113
|
+
// spam the parent). Prompts without a requestId can't be deduped or
|
|
114
|
+
// responded to by ID — still notify, but only describe them generically.
|
|
115
|
+
const dedupKey = requestId ?? `${sessionId}:${toolName ?? 'unknown'}`;
|
|
116
|
+
if (this.notifiedPromptIds.has(dedupKey))
|
|
117
|
+
return;
|
|
118
|
+
this.notifiedPromptIds.add(dedupKey);
|
|
119
|
+
if (this.notifiedPromptIds.size > MAX_NOTIFIED_PROMPT_IDS) {
|
|
120
|
+
// Drop oldest entries (Set preserves insertion order)
|
|
121
|
+
for (const id of this.notifiedPromptIds) {
|
|
122
|
+
this.notifiedPromptIds.delete(id);
|
|
123
|
+
if (this.notifiedPromptIds.size <= MAX_NOTIFIED_PROMPT_IDS)
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const parentSessionId = child.request.parentSessionId;
|
|
128
|
+
if (!parentSessionId)
|
|
129
|
+
return;
|
|
130
|
+
try {
|
|
131
|
+
this.notify({
|
|
132
|
+
parentSessionId,
|
|
133
|
+
label: 'Child Session Blocked',
|
|
134
|
+
title: `Session: ${getAgentDisplayName().toLowerCase()}:${child.request.branchName} (${child.id})`,
|
|
135
|
+
body: this.buildBlockedNotificationBody(child, promptType, toolName, requestId),
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
console.warn(`[orchestrator-child] Failed to notify parent about blocked child ${child.id}:`, err);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/** Build the body for a blocked-child notification, including the exact
|
|
143
|
+
* API call the orchestrator can use to respond. */
|
|
144
|
+
buildBlockedNotificationBody(child, promptType, toolName, requestId) {
|
|
145
|
+
const lines = [
|
|
146
|
+
'Status: blocked — waiting for a response',
|
|
147
|
+
`Branch: ${child.request.branchName}`,
|
|
148
|
+
`Repo: ${child.request.repo}`,
|
|
149
|
+
`Prompt: ${promptType}${toolName ? ` (${toolName})` : ''}`,
|
|
150
|
+
];
|
|
151
|
+
// Include a one-line summary of what the tool wants to do, if available.
|
|
152
|
+
const detail = this.describePendingPrompt(child.id, requestId);
|
|
153
|
+
if (detail)
|
|
154
|
+
lines.push(`Detail: ${detail}`);
|
|
155
|
+
if (requestId) {
|
|
156
|
+
lines.push(`RequestId: ${requestId}`, 'Respond with:', `curl -s -X POST "http://localhost:$CODEKIN_PORT/api/orchestrator/sessions/${child.id}/respond" \\`, ' -H "Authorization: Bearer $CODEKIN_AUTH_TOKEN" -H "Content-Type: application/json" \\', promptType === 'question'
|
|
157
|
+
? ` -d '{"requestId": "${requestId}", "value": "YOUR_ANSWER"}'`
|
|
158
|
+
: ` -d '{"requestId": "${requestId}", "value": "allow"}' # or "deny"`);
|
|
159
|
+
}
|
|
160
|
+
lines.push('Unanswered permission prompts are auto-denied after 5 minutes. If unsure, ask the user.');
|
|
161
|
+
return lines.join('\n');
|
|
162
|
+
}
|
|
163
|
+
/** One-line summary of the pending prompt's tool input (e.g. the Bash command). */
|
|
164
|
+
describePendingPrompt(sessionId, requestId) {
|
|
165
|
+
if (!requestId)
|
|
166
|
+
return null;
|
|
167
|
+
const session = this.sessions.get(sessionId);
|
|
168
|
+
if (!session)
|
|
169
|
+
return null;
|
|
170
|
+
const pending = session.pendingToolApprovals.get(requestId) ?? session.pendingControlRequests.get(requestId);
|
|
171
|
+
if (!pending)
|
|
172
|
+
return null;
|
|
173
|
+
const input = pending.toolInput;
|
|
174
|
+
if (typeof input.command === 'string')
|
|
175
|
+
return `$ ${input.command.split('\n')[0].slice(0, 200)}`;
|
|
176
|
+
if (typeof input.file_path === 'string')
|
|
177
|
+
return input.file_path;
|
|
178
|
+
const json = JSON.stringify(input);
|
|
179
|
+
return json.length > 2 ? json.slice(0, 200) : null;
|
|
61
180
|
}
|
|
62
181
|
/** Get all active/recent child sessions. */
|
|
63
182
|
list() {
|
|
@@ -73,7 +192,7 @@ export class OrchestratorChildManager {
|
|
|
73
192
|
purgeStaleChildren() {
|
|
74
193
|
const now = Date.now();
|
|
75
194
|
for (const [id, child] of this.children) {
|
|
76
|
-
if (
|
|
195
|
+
if (!TERMINAL_STATUSES.has(child.status))
|
|
77
196
|
continue;
|
|
78
197
|
if (child.completedAt && now - new Date(child.completedAt).getTime() > CHILD_RETENTION_MS) {
|
|
79
198
|
this.children.delete(id);
|
|
@@ -82,7 +201,7 @@ export class OrchestratorChildManager {
|
|
|
82
201
|
// Hard cap: if still over limit, remove oldest completed entries
|
|
83
202
|
if (this.children.size > MAX_RETAINED_CHILDREN) {
|
|
84
203
|
const completed = Array.from(this.children.entries())
|
|
85
|
-
.filter(([, c]) =>
|
|
204
|
+
.filter(([, c]) => TERMINAL_STATUSES.has(c.status))
|
|
86
205
|
.sort((a, b) => (a[1].completedAt ?? '').localeCompare(b[1].completedAt ?? ''));
|
|
87
206
|
while (this.children.size > MAX_RETAINED_CHILDREN && completed.length > 0) {
|
|
88
207
|
const [id] = completed.shift();
|
|
@@ -93,7 +212,7 @@ export class OrchestratorChildManager {
|
|
|
93
212
|
/** Count currently active (non-terminal) child sessions. */
|
|
94
213
|
activeCount() {
|
|
95
214
|
return Array.from(this.children.values())
|
|
96
|
-
.filter(c =>
|
|
215
|
+
.filter(c => !TERMINAL_STATUSES.has(c.status))
|
|
97
216
|
.length;
|
|
98
217
|
}
|
|
99
218
|
/**
|
|
@@ -117,6 +236,8 @@ export class OrchestratorChildManager {
|
|
|
117
236
|
result: null,
|
|
118
237
|
error: null,
|
|
119
238
|
terminalNotifiedAt: null,
|
|
239
|
+
worktree: request.useWorktree ? 'failed' : 'none', // upgraded to 'active' on success
|
|
240
|
+
worktreePath: null,
|
|
120
241
|
};
|
|
121
242
|
this.children.set(sessionId, child);
|
|
122
243
|
try {
|
|
@@ -136,7 +257,11 @@ export class OrchestratorChildManager {
|
|
|
136
257
|
let worktreeFailed = false;
|
|
137
258
|
if (request.useWorktree) {
|
|
138
259
|
const wtPath = await this.sessions.createWorktree(sessionId, request.repo, request.branchName);
|
|
139
|
-
if (
|
|
260
|
+
if (wtPath) {
|
|
261
|
+
child.worktree = 'active';
|
|
262
|
+
child.worktreePath = wtPath;
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
140
265
|
worktreeFailed = true;
|
|
141
266
|
console.warn(`[orchestrator-child] Failed to create worktree for ${sessionId}, falling back to main directory`);
|
|
142
267
|
}
|
|
@@ -178,10 +303,12 @@ export class OrchestratorChildManager {
|
|
|
178
303
|
title: `Session: ${getAgentDisplayName().toLowerCase()}:${child.request.branchName} (${child.id})`,
|
|
179
304
|
body: this.buildTerminalNotificationBody(child),
|
|
180
305
|
};
|
|
181
|
-
//
|
|
182
|
-
//
|
|
183
|
-
//
|
|
184
|
-
//
|
|
306
|
+
// `notify` returns true on immediate delivery AND when the notification
|
|
307
|
+
// was queued in the persistent outbox (the outbox owns replay from that
|
|
308
|
+
// point on) — both count as handled, so we stamp `terminalNotifiedAt`.
|
|
309
|
+
// It returns false only when queueing itself failed; we leave the stamp
|
|
310
|
+
// unset so a later terminal-path call can retry. Idempotency is still
|
|
311
|
+
// enforced by the early-return on terminalNotifiedAt at the top.
|
|
185
312
|
let delivered = false;
|
|
186
313
|
try {
|
|
187
314
|
delivered = this.notify(args);
|
|
@@ -280,7 +407,6 @@ export class OrchestratorChildManager {
|
|
|
280
407
|
let unsubResult;
|
|
281
408
|
let unsubExit;
|
|
282
409
|
const nudgedIds = new Set();
|
|
283
|
-
const supersededMsgs = new Set();
|
|
284
410
|
try {
|
|
285
411
|
await new Promise((resolve) => {
|
|
286
412
|
let settled = false;
|
|
@@ -288,48 +414,130 @@ export class OrchestratorChildManager {
|
|
|
288
414
|
settled = true;
|
|
289
415
|
resolve();
|
|
290
416
|
} };
|
|
291
|
-
//
|
|
292
|
-
|
|
417
|
+
// Re-read after awaits — a timeout may settle while a ground-truth
|
|
418
|
+
// check is in flight (also defeats overly-eager type narrowing).
|
|
419
|
+
const isSettled = () => settled;
|
|
420
|
+
// ---- Pausable working-time clock -----------------------------------
|
|
421
|
+
// The working budget (timeoutMs) only burns while the child is doing
|
|
422
|
+
// work. When the child blocks on an approval/question, the clock is
|
|
423
|
+
// paused and a separate blocked-time cap (MAX_BLOCKED_MS) takes over
|
|
424
|
+
// so an unanswered prompt still terminates the child eventually.
|
|
425
|
+
let remainingMs = timeoutMs;
|
|
426
|
+
let workStartedAt = Date.now();
|
|
427
|
+
let workTimer = null;
|
|
428
|
+
let blockedTimer = null;
|
|
429
|
+
const clearTimers = () => {
|
|
430
|
+
if (workTimer) {
|
|
431
|
+
clearTimeout(workTimer);
|
|
432
|
+
workTimer = null;
|
|
433
|
+
}
|
|
434
|
+
if (blockedTimer) {
|
|
435
|
+
clearTimeout(blockedTimer);
|
|
436
|
+
blockedTimer = null;
|
|
437
|
+
}
|
|
438
|
+
};
|
|
439
|
+
const fireTimeout = (error) => {
|
|
293
440
|
if (settled)
|
|
294
441
|
return;
|
|
295
442
|
child.status = 'timed_out';
|
|
296
|
-
child.error =
|
|
443
|
+
child.error = error;
|
|
297
444
|
child.completedAt = new Date().toISOString();
|
|
445
|
+
clearTimers();
|
|
298
446
|
const session = this.sessions.get(child.id);
|
|
299
447
|
if (session?.claudeProcess?.isAlive()) {
|
|
300
448
|
session.claudeProcess.stop();
|
|
301
449
|
}
|
|
302
450
|
settle();
|
|
303
|
-
}
|
|
451
|
+
};
|
|
452
|
+
const pause = () => {
|
|
453
|
+
if (settled || !workTimer)
|
|
454
|
+
return;
|
|
455
|
+
clearTimeout(workTimer);
|
|
456
|
+
workTimer = null;
|
|
457
|
+
remainingMs = Math.max(0, remainingMs - (Date.now() - workStartedAt));
|
|
458
|
+
blockedTimer ??= setTimeout(() => {
|
|
459
|
+
fireTimeout(`Timed out after waiting ${MAX_BLOCKED_MS}ms for a pending approval/answer`);
|
|
460
|
+
}, MAX_BLOCKED_MS);
|
|
461
|
+
};
|
|
462
|
+
const resume = () => {
|
|
463
|
+
if (settled || workTimer)
|
|
464
|
+
return;
|
|
465
|
+
if (blockedTimer) {
|
|
466
|
+
clearTimeout(blockedTimer);
|
|
467
|
+
blockedTimer = null;
|
|
468
|
+
}
|
|
469
|
+
workStartedAt = Date.now();
|
|
470
|
+
workTimer = setTimeout(() => {
|
|
471
|
+
fireTimeout(`Timed out after ${timeoutMs}ms of working time`);
|
|
472
|
+
}, remainingMs);
|
|
473
|
+
};
|
|
474
|
+
// Expose pause/resume to the prompt handler (handleChildPrompt).
|
|
475
|
+
this.timeoutControllers.set(child.id, { pause, resume });
|
|
476
|
+
// Start the working clock.
|
|
477
|
+
workStartedAt = Date.now();
|
|
478
|
+
workTimer = setTimeout(() => {
|
|
479
|
+
fireTimeout(`Timed out after ${timeoutMs}ms of working time`);
|
|
480
|
+
}, remainingMs);
|
|
481
|
+
// Guard against overlapping async ground-truth checks when result
|
|
482
|
+
// events arrive in quick succession.
|
|
483
|
+
let verifying = false;
|
|
304
484
|
// Result hook: Claude completed a turn
|
|
305
485
|
const onResult = (sessionId, isError) => {
|
|
306
|
-
if (sessionId !== child.id || settled)
|
|
486
|
+
if (sessionId !== child.id || settled || verifying)
|
|
307
487
|
return;
|
|
308
488
|
const session = this.sessions.get(child.id);
|
|
309
489
|
if (!session) {
|
|
310
490
|
child.status = 'failed';
|
|
311
491
|
child.error = 'Session was deleted';
|
|
312
492
|
child.completedAt = new Date().toISOString();
|
|
313
|
-
|
|
493
|
+
clearTimers();
|
|
314
494
|
settle();
|
|
315
495
|
return;
|
|
316
496
|
}
|
|
317
|
-
|
|
318
|
-
//
|
|
319
|
-
|
|
497
|
+
// Don't mark as completed (or nudge) while the session still has
|
|
498
|
+
// pending tool approvals or control requests — the Claude process
|
|
499
|
+
// may still be alive and blocked on an approval (e.g. git push).
|
|
500
|
+
// Nudging here would waste the single nudge on a child that cannot
|
|
501
|
+
// act. Keep monitoring; the next result/exit event re-evaluates.
|
|
502
|
+
if (session.pendingToolApprovals.size > 0 || session.pendingControlRequests.size > 0) {
|
|
503
|
+
child.status = 'blocked';
|
|
504
|
+
pause();
|
|
320
505
|
return;
|
|
321
|
-
|
|
322
|
-
//
|
|
323
|
-
//
|
|
324
|
-
|
|
325
|
-
if (
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
506
|
+
}
|
|
507
|
+
// The prompt (if any) was answered — restart the working clock so
|
|
508
|
+
// post-approval work draws from the remaining working budget.
|
|
509
|
+
resume();
|
|
510
|
+
if (child.status === 'blocked')
|
|
511
|
+
child.status = 'running';
|
|
512
|
+
verifying = true;
|
|
513
|
+
void (async () => {
|
|
514
|
+
try {
|
|
515
|
+
const text = this.extractText(session.outputHistory);
|
|
516
|
+
// Ground-truth check: did the final step (PR / push) really land?
|
|
517
|
+
const missing = await this.isFinalStepMissing(child, text);
|
|
518
|
+
if (isSettled())
|
|
519
|
+
return;
|
|
520
|
+
// Final step missing — nudge once, then keep monitoring.
|
|
521
|
+
if (missing && !isError && !nudgedIds.has(child.id) && session.claudeProcess?.isAlive()) {
|
|
522
|
+
nudgedIds.add(child.id);
|
|
523
|
+
this.sessions.sendInput(child.id, this.buildNudgeInstruction(child.request.completionPolicy));
|
|
524
|
+
return;
|
|
525
|
+
}
|
|
526
|
+
child.status = isError ? 'failed' : 'completed';
|
|
527
|
+
child.result = text || null;
|
|
528
|
+
child.error = isError
|
|
529
|
+
? 'Claude returned an error'
|
|
530
|
+
: missing
|
|
531
|
+
? `Completion not verified: expected ${child.request.completionPolicy === 'pr' ? 'a pull request' : 'a pushed branch'} but found none`
|
|
532
|
+
: null;
|
|
533
|
+
child.completedAt = new Date().toISOString();
|
|
534
|
+
clearTimers();
|
|
535
|
+
settle();
|
|
536
|
+
}
|
|
537
|
+
finally {
|
|
538
|
+
verifying = false;
|
|
539
|
+
}
|
|
540
|
+
})();
|
|
333
541
|
};
|
|
334
542
|
// Exit hook: Claude process exited
|
|
335
543
|
const onExit = (sessionId, _code, _signal, willRestart) => {
|
|
@@ -339,12 +547,23 @@ export class OrchestratorChildManager {
|
|
|
339
547
|
return; // Will auto-restart, keep monitoring
|
|
340
548
|
const session = this.sessions.get(child.id);
|
|
341
549
|
const text = session ? this.extractText(session.outputHistory) : '';
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
550
|
+
void (async () => {
|
|
551
|
+
// Process is gone — decide the terminal status from ground truth
|
|
552
|
+
// (did the PR / push land?) rather than transcript length.
|
|
553
|
+
let missing = session ? await this.isFinalStepMissing(child, text) : true;
|
|
554
|
+
// commit-only has no remote artifact to verify; an exit without
|
|
555
|
+
// any output cannot be considered a success.
|
|
556
|
+
if (child.request.completionPolicy === 'commit-only' && !text)
|
|
557
|
+
missing = true;
|
|
558
|
+
if (isSettled())
|
|
559
|
+
return;
|
|
560
|
+
child.status = missing ? 'failed' : 'completed';
|
|
561
|
+
child.result = text || null;
|
|
562
|
+
child.error = missing ? 'Claude exited before the final step could be verified' : null;
|
|
563
|
+
child.completedAt = new Date().toISOString();
|
|
564
|
+
clearTimers();
|
|
565
|
+
settle();
|
|
566
|
+
})();
|
|
348
567
|
};
|
|
349
568
|
unsubResult = this.sessions.onSessionResult(onResult);
|
|
350
569
|
unsubExit = this.sessions.onSessionExit(onExit);
|
|
@@ -354,6 +573,7 @@ export class OrchestratorChildManager {
|
|
|
354
573
|
// Unsubscribe listeners to prevent accumulation across spawn() calls
|
|
355
574
|
unsubResult?.();
|
|
356
575
|
unsubExit?.();
|
|
576
|
+
this.timeoutControllers.delete(child.id);
|
|
357
577
|
// Safety net: ensure isProcessing is cleared when monitoring ends.
|
|
358
578
|
// handleClaudeResult should have already done this, but edge cases
|
|
359
579
|
// (nudge race, missed result event) can leave the flag stuck.
|
|
@@ -364,44 +584,48 @@ export class OrchestratorChildManager {
|
|
|
364
584
|
}
|
|
365
585
|
}
|
|
366
586
|
/**
|
|
367
|
-
*
|
|
368
|
-
*
|
|
369
|
-
*
|
|
587
|
+
* Ground-truth check for the child's expected final step. Instead of
|
|
588
|
+
* sniffing the transcript for keywords (which both false-positives on
|
|
589
|
+
* mentions and false-negatives on terse output), ask the real systems:
|
|
590
|
+
* - 'pr': does an open/merged PR exist for the branch? (gh pr list)
|
|
591
|
+
* - 'merge': does the branch exist on the remote? (git ls-remote)
|
|
592
|
+
* - 'commit-only': nothing remote to verify — never missing.
|
|
593
|
+
* Falls back to transcript keyword sniffing when the command fails
|
|
594
|
+
* (e.g. gh not installed, no remote configured).
|
|
370
595
|
*/
|
|
371
|
-
|
|
372
|
-
// Only nudge once per child
|
|
373
|
-
if (nudgedIds.has(child.id))
|
|
374
|
-
return false;
|
|
596
|
+
async isFinalStepMissing(child, text) {
|
|
375
597
|
const policy = child.request.completionPolicy;
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
598
|
+
if (policy === 'commit-only')
|
|
599
|
+
return false;
|
|
600
|
+
const cwd = child.worktreePath ?? child.request.repo;
|
|
601
|
+
const branch = child.request.branchName;
|
|
379
602
|
if (policy === 'pr') {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
instruction = 'You completed the code changes but did not create a Pull Request. Please push your branch and create a PR now with a clear description of what was changed and why.';
|
|
603
|
+
try {
|
|
604
|
+
const out = await this.exec('gh', ['pr', 'list', '--head', branch, '--state', 'all', '--json', 'number', '--limit', '1'], cwd);
|
|
605
|
+
const parsed = JSON.parse(out);
|
|
606
|
+
return !(Array.isArray(parsed) && parsed.length > 0);
|
|
385
607
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
const pushed = lowerText.includes('git push') || lowerText.includes('pushed');
|
|
390
|
-
if (!pushed) {
|
|
391
|
-
missing = true;
|
|
392
|
-
instruction = 'You completed the code changes but did not push them. Please push your changes to the remote now.';
|
|
608
|
+
catch {
|
|
609
|
+
const lower = text.toLowerCase();
|
|
610
|
+
return !(lower.includes('pull request') || lower.includes('created a pr') || lower.includes('gh pr create'));
|
|
393
611
|
}
|
|
394
612
|
}
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
return
|
|
613
|
+
// policy === 'merge' — verify the branch was pushed to the remote
|
|
614
|
+
try {
|
|
615
|
+
const out = await this.exec('git', ['ls-remote', '--heads', 'origin', branch], cwd);
|
|
616
|
+
return out.trim().length === 0;
|
|
617
|
+
}
|
|
618
|
+
catch {
|
|
619
|
+
const lower = text.toLowerCase();
|
|
620
|
+
return !(lower.includes('git push') || lower.includes('pushed'));
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
/** Follow-up instruction sent (once) when the final step is missing. */
|
|
624
|
+
buildNudgeInstruction(policy) {
|
|
625
|
+
if (policy === 'pr') {
|
|
626
|
+
return 'You completed the code changes but no Pull Request exists for your branch yet. Please push your branch and create a PR now with a clear description of what was changed and why.';
|
|
403
627
|
}
|
|
404
|
-
return
|
|
628
|
+
return 'You completed the code changes but your branch has not been pushed to the remote. Please push your changes now.';
|
|
405
629
|
}
|
|
406
630
|
/**
|
|
407
631
|
* Extract assistant text from session output history.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator-children.js","sourceRoot":"","sources":["../orchestrator-children.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator-children.js","sourceRoot":"","sources":["../orchestrator-children.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,18 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { SessionManager } from './session-manager.js';
|
|
9
9
|
export declare const ORCHESTRATOR_DIR: string;
|
|
10
|
+
/**
|
|
11
|
+
* Bump this whenever CLAUDE_MD_TEMPLATE changes. Already-seeded CLAUDE.md
|
|
12
|
+
* files carrying an older (or no) version stamp are refreshed on boot —
|
|
13
|
+
* without this, installs keep running on stale orchestrator instructions
|
|
14
|
+
* forever. CLAUDE.md is system-managed; user memory lives in PROFILE.md,
|
|
15
|
+
* REPOS.md and journal/, which are never overwritten.
|
|
16
|
+
*/
|
|
17
|
+
export declare const CLAUDE_MD_TEMPLATE_VERSION = 2;
|
|
10
18
|
/** Ensure the orchestrator workspace directory exists with starter files. */
|
|
11
19
|
export declare function ensureOrchestratorDir(): void;
|
|
20
|
+
/** Parse the template version stamp from a seeded CLAUDE.md; 0 when absent. */
|
|
21
|
+
export declare function readTemplateVersion(path: string): number;
|
|
12
22
|
/** Get or create a stable session UUID that persists across restarts. */
|
|
13
23
|
export declare function getOrCreateOrchestratorId(): string;
|
|
14
24
|
/** Check if a session is the orchestrator session. */
|