@synaplink/orqlaude 0.7.2 → 0.9.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/__tests__/v07.test.js +28 -0
- package/dist/__tests__/v07.test.js.map +1 -1
- package/dist/__tests__/v08.test.d.ts +1 -0
- package/dist/__tests__/v08.test.js +175 -0
- package/dist/__tests__/v08.test.js.map +1 -0
- package/dist/__tests__/v09.test.d.ts +1 -0
- package/dist/__tests__/v09.test.js +189 -0
- package/dist/__tests__/v09.test.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/lib/jsonl_tail.d.ts +43 -5
- package/dist/lib/jsonl_tail.js +66 -11
- package/dist/lib/jsonl_tail.js.map +1 -1
- package/dist/lib/spawn_cli.d.ts +27 -0
- package/dist/lib/spawn_cli.js +138 -14
- package/dist/lib/spawn_cli.js.map +1 -1
- package/dist/lib/state.d.ts +22 -0
- package/dist/lib/state.js +60 -21
- package/dist/lib/state.js.map +1 -1
- package/dist/lib/telegram_status.js +7 -1
- package/dist/lib/telegram_status.js.map +1 -1
- package/dist/lib/version.d.ts +18 -0
- package/dist/lib/version.js +19 -0
- package/dist/lib/version.js.map +1 -0
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/telegram/notifier.js +33 -1
- package/dist/telegram/notifier.js.map +1 -1
- package/dist/tools/dispatch.js +321 -8
- package/dist/tools/dispatch.js.map +1 -1
- package/dist/tools/lifecycle.js +44 -2
- package/dist/tools/lifecycle.js.map +1 -1
- package/dist/tools/ping.js +2 -1
- package/dist/tools/ping.js.map +1 -1
- package/dist/tools/userio.js +16 -6
- package/dist/tools/userio.js.map +1 -1
- package/package.json +1 -1
package/dist/tools/dispatch.js
CHANGED
|
@@ -2,9 +2,11 @@ import { z } from "zod";
|
|
|
2
2
|
import { findPlan, findTask } from "../lib/state.js";
|
|
3
3
|
import { jsonlPathFor, snapshotSession } from "../lib/jsonl_tail.js";
|
|
4
4
|
import { detectHallucination, extractToolUses } from "../lib/hallucination.js";
|
|
5
|
-
import { spawnAgnetViaCli, findGitRoot, cleanupPlanWorktrees } from "../lib/spawn_cli.js";
|
|
5
|
+
import { spawnAgnetViaCli, findGitRoot, cleanupPlanWorktrees, readChildExitRecord } from "../lib/spawn_cli.js";
|
|
6
6
|
import { isProcessAlive } from "../lib/process_lib.js";
|
|
7
7
|
import { resolveStateDir } from "../lib/state_dir.js";
|
|
8
|
+
import { probeTelegramStatus } from "../lib/telegram_status.js";
|
|
9
|
+
import { VERSION } from "../lib/version.js";
|
|
8
10
|
import { promises as fs } from "node:fs";
|
|
9
11
|
/**
|
|
10
12
|
* Dispatch-phase tools: next_task, register_spawn, status, collect.
|
|
@@ -124,6 +126,7 @@ export function registerDispatch(server, store, audit) {
|
|
|
124
126
|
task.commandLine = spawn.commandLine;
|
|
125
127
|
task.stderrPath = spawn.stderrPath;
|
|
126
128
|
task.stdoutPath = spawn.stdoutPath;
|
|
129
|
+
task.exitJsonPath = spawn.exitJsonPath;
|
|
127
130
|
task.status = "running";
|
|
128
131
|
task.startedAt = Date.now();
|
|
129
132
|
return {
|
|
@@ -145,13 +148,50 @@ export function registerDispatch(server, store, audit) {
|
|
|
145
148
|
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
146
149
|
}, ({ plan_id }) => ({ planId: plan_id })));
|
|
147
150
|
// ---- cleanup_worktrees (companion to spawn_via_cli, v0.5.3+) -------------
|
|
148
|
-
server.tool("cleanup_worktrees", "Remove all orqlaude-managed worktrees for a plan (typically called after `collect`). Only touches paths under <project>/.orqlaude-worktrees/<plan_short>-*. Force-removes via `git worktree remove --force` then falls back to rm -rf if git refuses.", {
|
|
151
|
+
server.tool("cleanup_worktrees", "Remove all orqlaude-managed worktrees for a plan (typically called after `collect`). Only touches paths under <project>/.orqlaude-worktrees/<plan_short>-*. Force-removes via `git worktree remove --force` then falls back to rm -rf if git refuses. v0.9.0: also releases the spawn locks on every task whose worktree was removed - so the orchestrator can re-spawn against the same plan_id + task_id without create_plan churn.", {
|
|
149
152
|
plan_id: z.string(),
|
|
150
153
|
project_root: z.string().optional(),
|
|
151
154
|
}, audit.wrap("cleanup_worktrees", async ({ plan_id, project_root }) => {
|
|
152
155
|
const root = project_root ?? findGitRoot(process.cwd());
|
|
153
156
|
const removed = await cleanupPlanWorktrees(root, plan_id);
|
|
154
|
-
|
|
157
|
+
// v0.9.0: walk the plan's tasks and release any spawn lock whose
|
|
158
|
+
// worktreePath was just removed. This makes cleanup_worktrees the
|
|
159
|
+
// canonical "reset this plan, let me re-spawn fresh" entry point.
|
|
160
|
+
const released = await store.update((state) => {
|
|
161
|
+
const plan = findPlan(state, plan_id);
|
|
162
|
+
const releasedIds = [];
|
|
163
|
+
for (const t of plan.tasks) {
|
|
164
|
+
if (t.worktreePath && removed.includes(t.worktreePath)) {
|
|
165
|
+
t.spawnedSessionId = undefined;
|
|
166
|
+
t.pid = undefined;
|
|
167
|
+
t.exitJsonPath = undefined;
|
|
168
|
+
// Reset to pending so next_task / spawn_via_cli treat it fresh.
|
|
169
|
+
// Preserve worktreePath/branch for audit but they'll be
|
|
170
|
+
// overwritten on the next spawn.
|
|
171
|
+
if (t.status === "running" || t.status === "dispatched" || t.status === "died_at_launch") {
|
|
172
|
+
t.status = "pending";
|
|
173
|
+
}
|
|
174
|
+
releasedIds.push(t.id);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return releasedIds;
|
|
178
|
+
});
|
|
179
|
+
return {
|
|
180
|
+
content: [
|
|
181
|
+
{
|
|
182
|
+
type: "text",
|
|
183
|
+
text: JSON.stringify({
|
|
184
|
+
plan_id,
|
|
185
|
+
removed_count: removed.length,
|
|
186
|
+
removed,
|
|
187
|
+
released_task_ids: released,
|
|
188
|
+
next_step: released.length > 0
|
|
189
|
+
? `Released ${released.length} spawn lock(s). You can call spawn_via_cli on the same task_ids to re-fire.`
|
|
190
|
+
: undefined,
|
|
191
|
+
}, null, 2),
|
|
192
|
+
},
|
|
193
|
+
],
|
|
194
|
+
};
|
|
155
195
|
}, ({ plan_id }) => ({ planId: plan_id })));
|
|
156
196
|
// ---- register_spawn (MANUAL FALLBACK; rarely needed) ---------------------
|
|
157
197
|
server.tool("register_spawn", "MANUAL FALLBACK ONLY. Normally the spawned agent self-registers on its first `checkin` call (the prompt next_task generates instructs it to). Only call this if a child fails to self-register within ~30s — symptom: status() shows the task as `dispatched` long after spawn_task succeeded.", {
|
|
@@ -185,7 +225,13 @@ export function registerDispatch(server, store, audit) {
|
|
|
185
225
|
note: "Not yet spawned (waiting for chip click + self-registration).",
|
|
186
226
|
};
|
|
187
227
|
}
|
|
188
|
-
const snap = await snapshotSession(cwd, t.spawnedSessionId);
|
|
228
|
+
const snap = await snapshotSession(cwd, t.spawnedSessionId, t.stdoutPath);
|
|
229
|
+
// v0.9.0: fast-path terminal-state read. If the child wrote an
|
|
230
|
+
// exit record via the spawn_via_cli on('exit') handler, surface
|
|
231
|
+
// it - the orchestrator doesn't have to re-poll until isProcessAlive
|
|
232
|
+
// ticks over. Falls through to the regular PID/snapshot path if
|
|
233
|
+
// the file is missing (server restart after spawn, etc).
|
|
234
|
+
const exitRecord = t.exitJsonPath ? await readChildExitRecord(t.exitJsonPath) : null;
|
|
189
235
|
const toolUses = await extractToolUses(jsonlPathFor(cwd, t.spawnedSessionId));
|
|
190
236
|
const hallu = await detectHallucination(toolUses, cwd);
|
|
191
237
|
const taskWarnings = [];
|
|
@@ -195,10 +241,39 @@ export function registerDispatch(server, store, audit) {
|
|
|
195
241
|
// stops polling a corpse.
|
|
196
242
|
let derivedStatus = snap.terminated ? "done" : t.status;
|
|
197
243
|
let stderrExcerpt = null;
|
|
244
|
+
// v0.9.0: terminal-state precedence:
|
|
245
|
+
// 1. exit-record file (most authoritative; written by the
|
|
246
|
+
// parent's on('exit') handler).
|
|
247
|
+
// 2. snap.terminated (result row in the event stream).
|
|
248
|
+
// 3. PID liveness + empty stream = died_at_launch.
|
|
249
|
+
if (exitRecord) {
|
|
250
|
+
derivedStatus = exitRecord.success ? "done" : "failed";
|
|
251
|
+
if (!exitRecord.success && t.stderrPath) {
|
|
252
|
+
try {
|
|
253
|
+
const buf = await fs.readFile(t.stderrPath, "utf8");
|
|
254
|
+
stderrExcerpt = buf.slice(0, 1000);
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
/* file missing */
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
t.status = derivedStatus;
|
|
261
|
+
if (!t.finishedAt)
|
|
262
|
+
t.finishedAt = exitRecord.terminated_at;
|
|
263
|
+
}
|
|
264
|
+
// died_at_launch is now defined as "PID dead AND no event was
|
|
265
|
+
// ever parsed from either stream source." Earlier versions
|
|
266
|
+
// checked `!snap.exists` which broke once we started creating
|
|
267
|
+
// the stdout log file at spawn time (the file exists but is
|
|
268
|
+
// empty when the child exits before writing). Use
|
|
269
|
+
// lastActivityAt + tokens-used == 0 as the canonical signal.
|
|
270
|
+
const producedNothing = !snap.lastActivityAt &&
|
|
271
|
+
snap.totalEffectiveTokens === 0 &&
|
|
272
|
+
!snap.lastAssistantText &&
|
|
273
|
+
!snap.lastToolUse;
|
|
198
274
|
if (t.pid &&
|
|
199
275
|
!isProcessAlive(t.pid) &&
|
|
200
|
-
|
|
201
|
-
!snap.lastActivityAt &&
|
|
276
|
+
producedNothing &&
|
|
202
277
|
(t.status === "running" || t.status === "dispatched")) {
|
|
203
278
|
derivedStatus = "died_at_launch";
|
|
204
279
|
if (t.stderrPath) {
|
|
@@ -210,7 +285,7 @@ export function registerDispatch(server, store, audit) {
|
|
|
210
285
|
/* file missing or unreadable */
|
|
211
286
|
}
|
|
212
287
|
}
|
|
213
|
-
taskWarnings.push(`Child PID ${t.pid} is dead and no JSONL
|
|
288
|
+
taskWarnings.push(`Child PID ${t.pid} is dead and no events were parsed from either the Desktop JSONL or the spawn_via_cli stdout log. ` +
|
|
214
289
|
`Inspect stderr at ${t.stderrPath ?? "(unknown)"} or re-run the command: ${t.commandLine ?? "(unknown)"}`);
|
|
215
290
|
// Persist the new status so subsequent calls don't redo this.
|
|
216
291
|
t.status = "died_at_launch";
|
|
@@ -243,6 +318,9 @@ export function registerDispatch(server, store, audit) {
|
|
|
243
318
|
stop_requested: t.stopRequested ?? null,
|
|
244
319
|
stderr_excerpt: stderrExcerpt,
|
|
245
320
|
stderr_path: t.stderrPath ?? null,
|
|
321
|
+
stdout_path: t.stdoutPath ?? null,
|
|
322
|
+
stream_source: snap.source,
|
|
323
|
+
exit_record: exitRecord,
|
|
246
324
|
command_line: t.commandLine ?? null,
|
|
247
325
|
};
|
|
248
326
|
}));
|
|
@@ -332,6 +410,146 @@ export function registerDispatch(server, store, audit) {
|
|
|
332
410
|
],
|
|
333
411
|
};
|
|
334
412
|
}, ({ plan_id }) => ({ planId: plan_id })));
|
|
413
|
+
// ---- wait_for_status_change (long-poll) ----------------------------------
|
|
414
|
+
// v0.9.0: replaces the orchestrator's polling-loop pattern. Blocks for up
|
|
415
|
+
// to `timeout_sec` (default 60s) until ANY task in the plan transitions
|
|
416
|
+
// state, finishes, opens a PR, dies at launch, or chews through a
|
|
417
|
+
// material slice of its token budget. Cheap internal poll (every 2s
|
|
418
|
+
// file-stat + tiny snapshot read), but holds the connection open so the
|
|
419
|
+
// primary Claude can sleep without waking up to call status() every 90s.
|
|
420
|
+
server.tool("wait_for_status_change", "Long-poll: blocks up to `timeout_sec` (default 60, max 600) and returns as soon as the fleet state changes (task transition, new PR url, exit-record, +1 KB token delta) - OR returns the unchanged state when the timeout elapses. Use this INSTEAD of ScheduleWakeup + status() polling: pass the `fingerprint` from the prior response as `since_fingerprint` and the call returns the moment something useful happens. v0.9.0+.", {
|
|
421
|
+
plan_id: z.string(),
|
|
422
|
+
since_fingerprint: z.string().optional().describe("The `fingerprint` field from the prior wait_for_status_change (or status) response. Omit on first call - the server returns immediately with the current snapshot + the fresh fingerprint to thread through subsequent calls."),
|
|
423
|
+
timeout_sec: z.number().int().positive().max(600).default(60).describe("Max seconds the call blocks before returning the unchanged state. Default 60. Cap 600 (10 min)."),
|
|
424
|
+
}, audit.wrap("wait_for_status_change", async ({ plan_id, since_fingerprint, timeout_sec }) => {
|
|
425
|
+
const cwd = process.cwd();
|
|
426
|
+
const POLL_INTERVAL_MS = 2_000;
|
|
427
|
+
const deadline = Date.now() + timeout_sec * 1000;
|
|
428
|
+
const buildSnapshot = async () => {
|
|
429
|
+
const plan = await store.read((state) => findPlan(state, plan_id));
|
|
430
|
+
const agents = await Promise.all(plan.tasks.map(async (t) => {
|
|
431
|
+
if (!t.spawnedSessionId) {
|
|
432
|
+
return {
|
|
433
|
+
task_id: t.id,
|
|
434
|
+
title: t.title,
|
|
435
|
+
status: t.status,
|
|
436
|
+
tokens_used: 0,
|
|
437
|
+
pr_url: t.prUrl ?? null,
|
|
438
|
+
pid_alive: null,
|
|
439
|
+
exit_record: null,
|
|
440
|
+
terminated: false,
|
|
441
|
+
stop_kind: t.stopRequested?.kind ?? null,
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
const snap = await snapshotSession(cwd, t.spawnedSessionId, t.stdoutPath);
|
|
445
|
+
const exitRecord = t.exitJsonPath ? await readChildExitRecord(t.exitJsonPath) : null;
|
|
446
|
+
return {
|
|
447
|
+
task_id: t.id,
|
|
448
|
+
title: t.title,
|
|
449
|
+
status: exitRecord ? (exitRecord.success ? "done" : "failed") : t.status,
|
|
450
|
+
tokens_used: snap.totalEffectiveTokens,
|
|
451
|
+
pr_url: t.prUrl ?? null,
|
|
452
|
+
pid_alive: t.pid ? isProcessAlive(t.pid) : null,
|
|
453
|
+
exit_record: exitRecord,
|
|
454
|
+
terminated: snap.terminated || !!exitRecord,
|
|
455
|
+
stop_kind: t.stopRequested?.kind ?? null,
|
|
456
|
+
};
|
|
457
|
+
}));
|
|
458
|
+
return {
|
|
459
|
+
plan_id,
|
|
460
|
+
plan_status: plan.status,
|
|
461
|
+
agents,
|
|
462
|
+
};
|
|
463
|
+
};
|
|
464
|
+
const computeFingerprint = (snap) => {
|
|
465
|
+
// v0.9.1: hash-safe encoding via JSON.stringify. The previous
|
|
466
|
+
// pipe-joined / colon-separated form was fragile if a task_id or
|
|
467
|
+
// pr_url ever contained a `|` or `:` (today both are sanitized
|
|
468
|
+
// UUIDs / GitHub URLs, but pinning the structure costs nothing).
|
|
469
|
+
// Also includes `stop_kind` so kill_task / request_stop transitions
|
|
470
|
+
// wake the long-poll without waiting for the child to actually
|
|
471
|
+
// terminate - useful when a soft-stop is in flight.
|
|
472
|
+
const parts = [snap.plan_status];
|
|
473
|
+
for (const a of snap.agents) {
|
|
474
|
+
// Round token count to KB so per-token churn doesn't trip the
|
|
475
|
+
// fingerprint - only material progress does.
|
|
476
|
+
const kb = Math.floor(a.tokens_used / 1024);
|
|
477
|
+
parts.push([
|
|
478
|
+
a.task_id,
|
|
479
|
+
a.status,
|
|
480
|
+
a.pr_url ?? null,
|
|
481
|
+
kb,
|
|
482
|
+
a.exit_record
|
|
483
|
+
? { code: a.exit_record.exit_code, sig: a.exit_record.signal }
|
|
484
|
+
: null,
|
|
485
|
+
a.terminated,
|
|
486
|
+
a.pid_alive,
|
|
487
|
+
a.stop_kind,
|
|
488
|
+
]);
|
|
489
|
+
}
|
|
490
|
+
return JSON.stringify(parts);
|
|
491
|
+
};
|
|
492
|
+
// First read - if no fingerprint, return immediately with the
|
|
493
|
+
// current state (still useful as a fresh dispatch).
|
|
494
|
+
let snapshot = await buildSnapshot();
|
|
495
|
+
let fingerprint = computeFingerprint(snapshot);
|
|
496
|
+
if (!since_fingerprint || fingerprint !== since_fingerprint) {
|
|
497
|
+
return {
|
|
498
|
+
content: [
|
|
499
|
+
{
|
|
500
|
+
type: "text",
|
|
501
|
+
text: JSON.stringify({
|
|
502
|
+
...snapshot,
|
|
503
|
+
fingerprint,
|
|
504
|
+
changed: !!since_fingerprint,
|
|
505
|
+
elapsed_sec: 0,
|
|
506
|
+
timed_out: false,
|
|
507
|
+
next_step: "Call wait_for_status_change again with this `fingerprint` as `since_fingerprint` to block until the next transition.",
|
|
508
|
+
}, null, 2),
|
|
509
|
+
},
|
|
510
|
+
],
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
// Poll loop until fingerprint changes or deadline hits.
|
|
514
|
+
const startedAt = Date.now();
|
|
515
|
+
while (Date.now() < deadline) {
|
|
516
|
+
await new Promise((r) => setTimeout(r, POLL_INTERVAL_MS));
|
|
517
|
+
snapshot = await buildSnapshot();
|
|
518
|
+
fingerprint = computeFingerprint(snapshot);
|
|
519
|
+
if (fingerprint !== since_fingerprint) {
|
|
520
|
+
return {
|
|
521
|
+
content: [
|
|
522
|
+
{
|
|
523
|
+
type: "text",
|
|
524
|
+
text: JSON.stringify({
|
|
525
|
+
...snapshot,
|
|
526
|
+
fingerprint,
|
|
527
|
+
changed: true,
|
|
528
|
+
elapsed_sec: Math.round((Date.now() - startedAt) / 1000),
|
|
529
|
+
timed_out: false,
|
|
530
|
+
}, null, 2),
|
|
531
|
+
},
|
|
532
|
+
],
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
// Timeout - return unchanged state.
|
|
537
|
+
return {
|
|
538
|
+
content: [
|
|
539
|
+
{
|
|
540
|
+
type: "text",
|
|
541
|
+
text: JSON.stringify({
|
|
542
|
+
...snapshot,
|
|
543
|
+
fingerprint,
|
|
544
|
+
changed: false,
|
|
545
|
+
elapsed_sec: Math.round((Date.now() - startedAt) / 1000),
|
|
546
|
+
timed_out: true,
|
|
547
|
+
next_step: "Nothing changed during the wait window. Call wait_for_status_change again with the same `since_fingerprint` to keep waiting, OR call status() for a deeper read.",
|
|
548
|
+
}, null, 2),
|
|
549
|
+
},
|
|
550
|
+
],
|
|
551
|
+
};
|
|
552
|
+
}, ({ plan_id }) => ({ planId: plan_id })));
|
|
335
553
|
// ---- collect --------------------------------------------------------------
|
|
336
554
|
server.tool("collect", "Final result aggregation: per-task summary, PR URLs, total tokens+cost, exit reasons. Call once all agents have terminated. The result includes a `ready_for_review` flag suggesting you call `review_prs` (when available) to spawn reviewers.", { plan_id: z.string() }, audit.wrap("collect", async ({ plan_id }) => {
|
|
337
555
|
const plan = await store.update((state) => {
|
|
@@ -343,7 +561,9 @@ export function registerDispatch(server, store, audit) {
|
|
|
343
561
|
});
|
|
344
562
|
const cwd = process.cwd();
|
|
345
563
|
const results = await Promise.all(plan.tasks.map(async (t) => {
|
|
346
|
-
const snap = t.spawnedSessionId
|
|
564
|
+
const snap = t.spawnedSessionId
|
|
565
|
+
? await snapshotSession(cwd, t.spawnedSessionId, t.stdoutPath)
|
|
566
|
+
: null;
|
|
347
567
|
return {
|
|
348
568
|
task_id: t.id,
|
|
349
569
|
title: t.title,
|
|
@@ -380,6 +600,99 @@ export function registerDispatch(server, store, audit) {
|
|
|
380
600
|
],
|
|
381
601
|
};
|
|
382
602
|
}, ({ plan_id }) => ({ planId: plan_id })));
|
|
603
|
+
// ---- fleet_summary (v0.9.0 dashboard, one-tool aggregation) --------------
|
|
604
|
+
// Single-call replacement for ping + status + list_plans + telegram probe.
|
|
605
|
+
// Use this at the START of a fresh session ("what's in flight?") and any
|
|
606
|
+
// time you want a wide view of every active plan without making 4 round
|
|
607
|
+
// trips. Returns:
|
|
608
|
+
// - server health (version, cwd, state dir, telegram status)
|
|
609
|
+
// - per-plan rollup (counts of pending/running/done/failed, PR list)
|
|
610
|
+
// - cross-plan totals (active Agnets, total tokens spent today)
|
|
611
|
+
server.tool("fleet_summary", "Single-call dashboard for the entire orqlaude state. Returns server health + per-plan rollup + cross-plan totals. Use at session start to discover in-flight fleets; use mid-fleet for a wide view without ping + status + list_plans round-trips. v0.9.0+.", {}, audit.wrap("fleet_summary", async () => {
|
|
612
|
+
const cwd = process.cwd();
|
|
613
|
+
const stateDir = resolveStateDir().path;
|
|
614
|
+
const tg = await probeTelegramStatus(stateDir);
|
|
615
|
+
const { plans, orphanNotificationCount, orphanResponseCount } = await store.read((s) => ({
|
|
616
|
+
plans: Object.values(s.plans),
|
|
617
|
+
orphanNotificationCount: (s.orphanNotifications ?? []).length,
|
|
618
|
+
orphanResponseCount: (s.orphanResponseRequests ?? []).length,
|
|
619
|
+
}));
|
|
620
|
+
const planRollups = await Promise.all(plans.map(async (p) => {
|
|
621
|
+
// Fast per-task counts WITHOUT the full snapshotSession read.
|
|
622
|
+
const counts = { pending: 0, dispatched: 0, running: 0, done: 0, failed: 0, cancelled: 0, died_at_launch: 0 };
|
|
623
|
+
const prs = [];
|
|
624
|
+
// v0.9.1: parallelize the per-task snapshot reads. The first
|
|
625
|
+
// post-restart call is O(plans × tasks) IO; the inner Promise.all
|
|
626
|
+
// makes the per-plan inner loop concurrent. Cache makes
|
|
627
|
+
// subsequent calls cheap regardless.
|
|
628
|
+
for (const t of p.tasks) {
|
|
629
|
+
const status = t.status ?? "pending";
|
|
630
|
+
counts[status] = (counts[status] ?? 0) + 1;
|
|
631
|
+
if (t.prUrl)
|
|
632
|
+
prs.push(t.prUrl);
|
|
633
|
+
}
|
|
634
|
+
const taskTokens = await Promise.all(p.tasks.map(async (t) => {
|
|
635
|
+
if (!t.spawnedSessionId)
|
|
636
|
+
return 0;
|
|
637
|
+
const snap = await snapshotSession(cwd, t.spawnedSessionId, t.stdoutPath);
|
|
638
|
+
return snap.totalEffectiveTokens;
|
|
639
|
+
}));
|
|
640
|
+
const tokensTotal = taskTokens.reduce((s, v) => s + v, 0);
|
|
641
|
+
const allDone = p.tasks.length > 0 && p.tasks.every((t) => t.status === "done" || t.status === "failed" || t.status === "cancelled");
|
|
642
|
+
return {
|
|
643
|
+
plan_id: p.id,
|
|
644
|
+
status: p.status,
|
|
645
|
+
created_at: p.createdAt,
|
|
646
|
+
root_task: p.rootTask.slice(0, 120),
|
|
647
|
+
task_count: p.tasks.length,
|
|
648
|
+
task_status_counts: counts,
|
|
649
|
+
tokens_used: tokensTotal,
|
|
650
|
+
budget_cap_tokens: p.budgetCapTokens,
|
|
651
|
+
budget_pct: p.budgetCapTokens ? Math.round((tokensTotal / p.budgetCapTokens) * 100) : 0,
|
|
652
|
+
prs,
|
|
653
|
+
all_terminal: allDone,
|
|
654
|
+
suggested_next: p.status === "draft"
|
|
655
|
+
? "request_approval + confirm"
|
|
656
|
+
: counts.pending > 0
|
|
657
|
+
? "spawn_via_cli (per-task) or next_task"
|
|
658
|
+
: counts.running + counts.dispatched > 0
|
|
659
|
+
? "wait_for_status_change"
|
|
660
|
+
: allDone
|
|
661
|
+
? "collect + cleanup_worktrees"
|
|
662
|
+
: "status",
|
|
663
|
+
};
|
|
664
|
+
}));
|
|
665
|
+
const activeAgnets = planRollups.reduce((sum, r) => sum + (r.task_status_counts.running ?? 0) + (r.task_status_counts.dispatched ?? 0), 0);
|
|
666
|
+
const grandTokens = planRollups.reduce((sum, r) => sum + r.tokens_used, 0);
|
|
667
|
+
return {
|
|
668
|
+
content: [
|
|
669
|
+
{
|
|
670
|
+
type: "text",
|
|
671
|
+
text: JSON.stringify({
|
|
672
|
+
server: { version: VERSION, cwd, state_dir: stateDir },
|
|
673
|
+
telegram: tg,
|
|
674
|
+
plans: planRollups.sort((a, b) => b.created_at - a.created_at),
|
|
675
|
+
totals: {
|
|
676
|
+
plan_count: plans.length,
|
|
677
|
+
active_agnets: activeAgnets,
|
|
678
|
+
grand_total_tokens: grandTokens,
|
|
679
|
+
},
|
|
680
|
+
orphan_queue: {
|
|
681
|
+
notifications: orphanNotificationCount,
|
|
682
|
+
response_requests: orphanResponseCount,
|
|
683
|
+
},
|
|
684
|
+
next_step: activeAgnets > 0
|
|
685
|
+
? `${activeAgnets} Agnet(s) actively running. Call wait_for_status_change(<plan_id>) to block until any transitions.`
|
|
686
|
+
: planRollups.some((r) => r.status === "draft")
|
|
687
|
+
? "One or more plans are draft - confirm or cancel."
|
|
688
|
+
: planRollups.some((r) => r.all_terminal && r.status !== "collected")
|
|
689
|
+
? "All Agnets on at least one plan are terminal. Call collect + cleanup_worktrees."
|
|
690
|
+
: "Idle.",
|
|
691
|
+
}, null, 2),
|
|
692
|
+
},
|
|
693
|
+
],
|
|
694
|
+
};
|
|
695
|
+
}, () => ({})));
|
|
383
696
|
}
|
|
384
697
|
function buildSpawnPrompt(planId, taskId, userPrompt, branchHint) {
|
|
385
698
|
const branchSection = branchHint ? `\n\nSuggested branch: \`${branchHint}\`.` : "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/tools/dispatch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/tools/dispatch.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/lifecycle.js
CHANGED
|
@@ -2,6 +2,8 @@ import { z } from "zod";
|
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { findPlan, findTask } from "../lib/state.js";
|
|
4
4
|
import { snapshotSession } from "../lib/jsonl_tail.js";
|
|
5
|
+
import { isProcessAlive } from "../lib/process_lib.js";
|
|
6
|
+
import { readChildExitRecord } from "../lib/spawn_cli.js";
|
|
5
7
|
/**
|
|
6
8
|
* Lifecycle tools: kill_task, resume_plan, list_plans.
|
|
7
9
|
*
|
|
@@ -18,11 +20,30 @@ import { snapshotSession } from "../lib/jsonl_tail.js";
|
|
|
18
20
|
*/
|
|
19
21
|
export function registerLifecycle(server, store, audit) {
|
|
20
22
|
// ---- kill_task (HARD STOP) ----------------------------------------------
|
|
21
|
-
server.tool("kill_task", "HARD STOP a running task. Queues a STOP broker message saying 'commit what you have and exit immediately', and returns the session id ready for `mcp__ccd_session_mgmt__archive_session` if the agent doesn't comply within ~30s. Use this when an agent is hallucinating, looping, or otherwise off the rails. For a polite 'we don't need this anymore, please wind down' alternative, use `request_stop`.", {
|
|
23
|
+
server.tool("kill_task", "HARD STOP a running task. Queues a STOP broker message saying 'commit what you have and exit immediately', and returns the session id ready for `mcp__ccd_session_mgmt__archive_session` if the agent doesn't comply within ~30s. v0.9.0: if the Agnet is already dead (PID gone OR exit record present), the spawn lock is released so the task can be re-spawned without creating a fresh plan. Use this when an agent is hallucinating, looping, or otherwise off the rails. For a polite 'we don't need this anymore, please wind down' alternative, use `request_stop`.", {
|
|
22
24
|
plan_id: z.string(),
|
|
23
25
|
task_id: z.string(),
|
|
24
26
|
reason: z.string().describe("Why you're killing this task. Surfaced to the agent and stored in audit log."),
|
|
25
27
|
}, audit.wrap("kill_task", async ({ plan_id, task_id, reason }) => {
|
|
28
|
+
// v0.9.0: check liveness OUTSIDE store.update (it's IO-bound and
|
|
29
|
+
// shouldn't be inside the state critical section).
|
|
30
|
+
let isCorpse = false;
|
|
31
|
+
const preCheck = await store.read((state) => {
|
|
32
|
+
const plan = findPlan(state, plan_id);
|
|
33
|
+
const task = findTask(plan, task_id);
|
|
34
|
+
return {
|
|
35
|
+
spawnedSessionId: task.spawnedSessionId,
|
|
36
|
+
pid: task.pid,
|
|
37
|
+
exitJsonPath: task.exitJsonPath,
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
if (preCheck.spawnedSessionId) {
|
|
41
|
+
const pidDead = preCheck.pid ? !isProcessAlive(preCheck.pid) : false;
|
|
42
|
+
const exitRecord = preCheck.exitJsonPath
|
|
43
|
+
? await readChildExitRecord(preCheck.exitJsonPath)
|
|
44
|
+
: null;
|
|
45
|
+
isCorpse = pidDead || !!exitRecord;
|
|
46
|
+
}
|
|
26
47
|
const result = await store.update((state) => {
|
|
27
48
|
const plan = findPlan(state, plan_id);
|
|
28
49
|
const task = findTask(plan, task_id);
|
|
@@ -30,6 +51,25 @@ export function registerLifecycle(server, store, audit) {
|
|
|
30
51
|
task.status = "cancelled";
|
|
31
52
|
return { plan_id, task_id, status: "cancelled_before_spawn", session_id: null };
|
|
32
53
|
}
|
|
54
|
+
// v0.9.0: if the Agnet is already dead, queuing a STOP message
|
|
55
|
+
// is pointless - the agent will never read it. Release the
|
|
56
|
+
// spawn lock so a re-spawn doesn't require create_plan churn.
|
|
57
|
+
if (isCorpse) {
|
|
58
|
+
const releasedSessionId = task.spawnedSessionId;
|
|
59
|
+
task.status = "cancelled";
|
|
60
|
+
task.stopRequested = { reason, requestedAt: Date.now(), kind: "hard" };
|
|
61
|
+
task.spawnedSessionId = undefined;
|
|
62
|
+
task.pid = undefined;
|
|
63
|
+
task.finishedAt = task.finishedAt ?? Date.now();
|
|
64
|
+
return {
|
|
65
|
+
plan_id,
|
|
66
|
+
task_id,
|
|
67
|
+
session_id: releasedSessionId,
|
|
68
|
+
released_spawn_lock: true,
|
|
69
|
+
reason_released: "Agnet was already dead (PID gone or exit-record present); STOP message would not be delivered. Lock cleared so spawn_via_cli can re-fire this task without creating a fresh plan.",
|
|
70
|
+
next_step: "Call spawn_via_cli with the same plan_id + task_id to re-attempt. If the corpse was a died_at_launch case, fix whatever the stderr surfaced first.",
|
|
71
|
+
};
|
|
72
|
+
}
|
|
33
73
|
task.stopRequested = { reason, requestedAt: Date.now(), kind: "hard" };
|
|
34
74
|
plan.messages.push({
|
|
35
75
|
id: randomUUID(),
|
|
@@ -86,7 +126,9 @@ export function registerLifecycle(server, store, audit) {
|
|
|
86
126
|
const plan = await store.read((state) => findPlan(state, plan_id));
|
|
87
127
|
const cwd = process.cwd();
|
|
88
128
|
const tasks = await Promise.all(plan.tasks.map(async (t) => {
|
|
89
|
-
const snap = t.spawnedSessionId
|
|
129
|
+
const snap = t.spawnedSessionId
|
|
130
|
+
? await snapshotSession(cwd, t.spawnedSessionId, t.stdoutPath)
|
|
131
|
+
: null;
|
|
90
132
|
return {
|
|
91
133
|
task_id: t.id,
|
|
92
134
|
title: t.title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAc,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/ping.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { resolveStateDir } from "../lib/state_dir.js";
|
|
3
3
|
import { probeTelegramStatus } from "../lib/telegram_status.js";
|
|
4
|
+
import { VERSION } from "../lib/version.js";
|
|
4
5
|
export function registerPing(server) {
|
|
5
6
|
server.tool("ping", "Health check — returns version, cwd, resolved state directory, AND Telegram bot status (configured/active/stale). Use this once after installing orqlaude, and consult it before relying on Telegram-bound tools (notify_user / request_user_response).", {
|
|
6
7
|
echo: z.string().optional().describe("Optional string echoed back in the response"),
|
|
@@ -21,7 +22,7 @@ export function registerPing(server) {
|
|
|
21
22
|
const payload = {
|
|
22
23
|
ok: warnings.length === 0,
|
|
23
24
|
server: "orqlaude",
|
|
24
|
-
version:
|
|
25
|
+
version: VERSION,
|
|
25
26
|
cwd: realCwd,
|
|
26
27
|
cwd_source: stateRes.cwdSource,
|
|
27
28
|
state_dir: stateRes.path,
|