@revisium/orchestrator 0.1.0-alpha.6 → 0.1.0-alpha.7

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.
@@ -9,11 +9,24 @@
9
9
  * inside the process that should have removed it). The two doctors are complementary, not duplicates.
10
10
  */
11
11
  export function buildDoctorReport(o) {
12
- // Nothing recorded on either tier → the stack is simply down, not broken.
12
+ const issues = [];
13
+ // Daemon-zoo signal: a process not tracked by host.json/runtime.json holds a profile port. The
14
+ // advisory-lock singleton (slice 139) stops new duplicates, but pre-existing/orphan ones must be seen.
15
+ for (const owner of o.unexpectedPortOwners ?? []) {
16
+ issues.push(`Unexpected process (pid ${owner.pid}) on the ${owner.label} port ${owner.port} — an untracked or ` +
17
+ 'duplicate daemon. Run `revo stop` to reap the profile, then `revo start`.');
18
+ }
19
+ // Stale-code daemon: the live daemon is a different build than this CLI/installation.
20
+ if (o.versionMismatch && o.versionMismatch.running !== o.versionMismatch.current) {
21
+ issues.push(`Running daemon is version ${o.versionMismatch.running} but this build is ${o.versionMismatch.current} — ` +
22
+ 'run `revo restart` to replace the stale daemon.');
23
+ }
24
+ // Nothing recorded on either tier → the stack is simply down (unless a rogue process was flagged above).
13
25
  if (!o.host.present && !o.standalone.present) {
14
- return { ok: false, issues: ['Stack is not running. Run `revo start`.'] };
26
+ if (issues.length === 0)
27
+ return { ok: false, issues: ['Stack is not running. Run `revo start`.'] };
28
+ return { ok: false, issues };
15
29
  }
16
- const issues = [];
17
30
  // Host tier — the single DBOS owner and the GraphQL/MCP front door.
18
31
  if (o.host.present && !o.host.alive) {
19
32
  issues.push(`Stale host.json: recorded pid ${o.host.pid} is not alive. Run \`revo stop\` to clear it, then \`revo start\`.`);
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-report.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqBH,MAAM,UAAU,iBAAiB,CAAC,CAAoB;IACpD,0EAA0E;IAC1E,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC7C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,yCAAyC,CAAC,EAAE,CAAC;IAC5E,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,oEAAoE;IACpE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CACT,iCAAiC,CAAC,CAAC,IAAI,CAAC,GAAG,oEAAoE,CAChH,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CACT,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,mDAAmD,CAAC,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAClH,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,qGAAqG,CAAC,CAAC;IACrH,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC/F,CAAC;SAAM,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,CACT,4BAA4B,CAAC,CAAC,UAAU,CAAC,GAAG,sCAAsC,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,CACvG,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CACT,yGAAyG,CAC1G,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"doctor-report.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA6BH,MAAM,UAAU,iBAAiB,CAAC,CAAoB;IACpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,+FAA+F;IAC/F,uGAAuG;IACvG,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,oBAAoB,IAAI,EAAE,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CACT,2BAA2B,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,IAAI,qBAAqB;YACjG,2EAA2E,CAC9E,CAAC;IACJ,CAAC;IAED,sFAAsF;IACtF,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,KAAK,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACjF,MAAM,CAAC,IAAI,CACT,6BAA6B,CAAC,CAAC,eAAe,CAAC,OAAO,sBAAsB,CAAC,CAAC,eAAe,CAAC,OAAO,KAAK;YACxG,iDAAiD,CACpD,CAAC;IACJ,CAAC;IAED,yGAAyG;IACzG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,yCAAyC,CAAC,EAAE,CAAC;QACnG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,oEAAoE;IACpE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CACT,iCAAiC,CAAC,CAAC,IAAI,CAAC,GAAG,oEAAoE,CAChH,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CACT,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,mDAAmD,CAAC,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAClH,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,qGAAqG,CAAC,CAAC;IACrH,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC/F,CAAC;SAAM,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,CACT,4BAA4B,CAAC,CAAC,UAAU,CAAC,GAAG,sCAAsC,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,CACvG,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CACT,yGAAyG,CAC1G,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC"}
@@ -1,10 +1,43 @@
1
1
  import { closeSync, existsSync, openSync, readSync, statSync } from 'node:fs';
2
+ import { execFileSync } from 'node:child_process';
2
3
  import { baseUrl, getConfig, isAlive, isHealthy, readRuntime, removeRuntime, } from '../config.js';
3
4
  import { killTree, tailLines, waitForExit } from './revisium-helpers.js';
4
5
  import { buildDoctorReport } from './doctor-report.js';
5
6
  import { ensureHost, expectedGraphqlPort, isGraphqlHealthy } from '../../host/ensure-host.js';
6
7
  import { runHostDaemon } from '../../host/daemon.js';
7
- import { isHostRunning, readHostRuntime, removeHostRuntime } from '../../host/host-runtime.js';
8
+ import { hostCodeVersion, isHostRunning, readHostRuntime, removeHostRuntime, } from '../../host/host-runtime.js';
9
+ // Resolve lsof to a FIXED absolute path — never via $PATH (S4036: a writable PATH entry could shadow
10
+ // the binary). null if lsof isn't installed, in which case port-owner detection/reaping degrade to no-op.
11
+ const LSOF_PATH = ['/usr/sbin/lsof', '/usr/bin/lsof', '/bin/lsof'].find((p) => existsSync(p)) ?? null;
12
+ /** PID listening on a local TCP port (via lsof), or null. Best-effort — null on any failure. */
13
+ function listenerPid(port) {
14
+ if (LSOF_PATH === null)
15
+ return null;
16
+ try {
17
+ const out = execFileSync(LSOF_PATH, ['-nP', `-tiTCP:${port}`, '-sTCP:LISTEN'], {
18
+ encoding: 'utf8',
19
+ stdio: ['ignore', 'pipe', 'ignore'],
20
+ }).trim();
21
+ const pid = Number(out.split(/\r?\n/)[0]);
22
+ return Number.isInteger(pid) && pid > 0 ? pid : null;
23
+ }
24
+ catch {
25
+ return null; // no listener / lsof error
26
+ }
27
+ }
28
+ /** The four ports a profile's stack uses (host GraphQL+MCP, standalone HTTP+Postgres), deduped. */
29
+ function profilePortList(host, standalone) {
30
+ const cfg = getConfig();
31
+ const gql = host?.graphqlPort ?? expectedGraphqlPort();
32
+ return [
33
+ ...new Set([
34
+ gql,
35
+ host?.mcpPort ?? gql + 1,
36
+ standalone?.httpPort ?? cfg.preferredPort,
37
+ standalone?.pgPort ?? cfg.preferredPgPort,
38
+ ]),
39
+ ];
40
+ }
8
41
  const DEFAULT_LOG_LINES = 50;
9
42
  /** A --profile flag sets REVO_PROFILE so the resolved profile flows to the daemon child via env. */
10
43
  function applyProfileEnv(options) {
@@ -43,21 +76,36 @@ async function stopProcess(pid) {
43
76
  /** `revo stop` — stop the host daemon first (it owns DBOS), then the standalone Revisium daemon. */
44
77
  async function stopStack(options) {
45
78
  applyProfileEnv(options);
79
+ const host = readHostRuntime();
80
+ const standalone = readRuntime();
81
+ const ports = profilePortList(host, standalone);
46
82
  let stopped = false;
47
83
  // Host first (it owns DBOS); then the standalone daemon underneath it.
48
- const host = readHostRuntime();
49
84
  if (host && isAlive(host.pid)) {
50
85
  await stopProcess(host.pid);
51
86
  stopped = true;
52
87
  }
53
88
  removeHostRuntime();
54
- const standalone = readRuntime();
55
89
  if (standalone && isAlive(standalone.pid)) {
56
90
  await stopProcess(standalone.pid);
57
91
  stopped = true;
58
92
  }
59
93
  removeRuntime();
60
- console.log(stopped ? 'stopped' : 'not running');
94
+ // Reap any orphan/duplicate still holding a profile port (slice 139) a daemon/standalone NOT
95
+ // tracked by host.json/runtime.json. Without this, `revo stop` leaves a zoo that can silently serve
96
+ // runs off the shared DBOS queue.
97
+ let reaped = 0;
98
+ for (const port of ports) {
99
+ const pid = listenerPid(port);
100
+ if (pid !== null && isAlive(pid)) {
101
+ await stopProcess(pid);
102
+ reaped += 1;
103
+ }
104
+ }
105
+ if (reaped > 0)
106
+ console.log(`stopped (reaped ${reaped} orphan process${reaped === 1 ? '' : 'es'})`);
107
+ else
108
+ console.log(stopped ? 'stopped' : 'not running');
61
109
  }
62
110
  /** `revo status` — summarize the stack: profile, data dir, host daemon, and Revisium health. */
63
111
  async function statusStack(options) {
@@ -99,6 +147,23 @@ async function doctorStack(options) {
99
147
  const standalone = readRuntime();
100
148
  const standaloneAlive = standalone !== null && isAlive(standalone.pid);
101
149
  const standaloneHealthy = standalone !== null && standaloneAlive && (await isHealthy(standalone.httpPort));
150
+ // Detect untracked/duplicate daemons on the profile ports + a stale-version daemon (slice 139): a
151
+ // listener whose pid isn't the tracked host/standalone is an orphan or a second daemon (the zoo).
152
+ const gql = host?.graphqlPort ?? expectedGraphqlPort();
153
+ const portChecks = [
154
+ { label: 'GraphQL', port: gql, expected: host?.pid ?? null },
155
+ { label: 'MCP', port: host?.mcpPort ?? gql + 1, expected: host?.pid ?? null },
156
+ { label: 'standalone HTTP', port: standalone?.httpPort ?? getConfig().preferredPort, expected: standalone?.pid ?? null },
157
+ { label: 'Postgres', port: standalone?.pgPort ?? getConfig().preferredPgPort, expected: standalone?.pid ?? null },
158
+ ];
159
+ const unexpectedPortOwners = [];
160
+ for (const check of portChecks) {
161
+ const pid = listenerPid(check.port);
162
+ if (pid !== null && pid !== check.expected) {
163
+ unexpectedPortOwners.push({ label: check.label, port: check.port, pid });
164
+ }
165
+ }
166
+ const versionMismatch = host?.version !== undefined ? { running: host.version, current: hostCodeVersion() } : undefined;
102
167
  const report = buildDoctorReport({
103
168
  host: {
104
169
  present: host !== null,
@@ -114,6 +179,8 @@ async function doctorStack(options) {
114
179
  pid: standalone?.pid ?? null,
115
180
  port: standalone?.httpPort ?? null,
116
181
  },
182
+ unexpectedPortOwners,
183
+ versionMismatch,
117
184
  });
118
185
  console.log(`Profile: ${profile}`);
119
186
  console.log(`Data dir: ${dataDir}`);
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/cli/commands/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/cli/commands/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@ import { createDaemonInstaller, seedDefaultPlaybook, seedDefaultPlaybookBestEffo
6
6
  import { McpFacadeService } from '../mcp/mcp-facade.service.js';
7
7
  import { McpHttpService } from '../mcp/mcp-http.service.js';
8
8
  import { TaskControlPlaneApiService } from '../task-control-plane/task-control-plane-api.service.js';
9
- import { removeHostRuntimeIfMatches, writeHostRuntime } from './host-runtime.js';
9
+ import { hostCodeVersion, removeHostRuntimeIfMatches, writeHostRuntime } from './host-runtime.js';
10
+ import { acquireQueueOwnership } from './queue-ownership.js';
10
11
  /** MCP endpoint port: REVO_MCP_PORT, else the GraphQL port + 1 (kept in the profile band). */
11
12
  function resolveMcpPort(graphqlPort) {
12
13
  const env = process.env['REVO_MCP_PORT'];
@@ -17,6 +18,16 @@ export async function runHostDaemon() {
17
18
  // 1. Standalone up first, then 2. all control-plane writes via fresh client scopes — BEFORE the
18
19
  // service layer (startGraphqlHost) caches its read scope, so same-boot reads see a ready control-plane.
19
20
  const { runtime } = await ensureRevisium();
21
+ // Singleton gate (slice 139): exactly ONE host daemon per profile may own + poll the dev-tasks
22
+ // queue. Acquired here — BEFORE DBOS.launch()/queue polling (startGraphqlHost) — so a daemon that
23
+ // lost a concurrent cold-start race exits cleanly without ever touching the queue; ensureHost then
24
+ // attaches to the winner via host.json. Crash-safe: the connection-scoped advisory lock frees itself
25
+ // if this process dies.
26
+ const ownership = await acquireQueueOwnership(getConfig().profile, runtime.pgPort);
27
+ if (!ownership.owned) {
28
+ console.error(`[host] profile "${getConfig().profile}" is already owned by another daemon — exiting; the owner serves the queue.`);
29
+ process.exit(0);
30
+ }
20
31
  await bootstrapControlPlane(runtime.httpPort);
21
32
  await seedDefaultPlaybookBestEffort(() => seedDefaultPlaybook(createDaemonInstaller(() => listInstalledPlaybooks(runtime.httpPort))));
22
33
  // 3. Now bring up the Nest/GraphQL/DBOS layer (HostLifecycle re-ensures Revisium = no-op).
@@ -40,6 +51,7 @@ export async function runHostDaemon() {
40
51
  mcpPort,
41
52
  startedAt,
42
53
  profile: getConfig().profile,
54
+ version: hostCodeVersion(),
43
55
  });
44
56
  const runningMcp = mcpServer;
45
57
  let closing = false;
@@ -52,8 +64,13 @@ export async function runHostDaemon() {
52
64
  .close() // → HostLifecycle.onApplicationShutdown → DBOS.shutdown()
53
65
  .catch(() => undefined)
54
66
  .finally(() => {
55
- removeHostRuntimeIfMatches(snapshot);
56
- process.exit(0);
67
+ ownership
68
+ .release() // free the dev-tasks ownership lock for the next daemon
69
+ .catch(() => undefined)
70
+ .finally(() => {
71
+ removeHostRuntimeIfMatches(snapshot);
72
+ process.exit(0);
73
+ });
57
74
  });
58
75
  };
59
76
  process.on('SIGTERM', shutdown);
@@ -62,6 +79,7 @@ export async function runHostDaemon() {
62
79
  catch (err) {
63
80
  mcpServer?.close();
64
81
  await started.app.close().catch(() => undefined);
82
+ await ownership.release().catch(() => undefined);
65
83
  throw err;
66
84
  }
67
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/host/daemon.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEjF,8FAA8F;AAC9F,SAAS,cAAc,CAAC,WAAmB;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACzC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,4GAA4G;AAC5G,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,gGAAgG;IAChG,wGAAwG;IACxG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,cAAc,EAAE,CAAC;IAC3C,MAAM,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,6BAA6B,CAAC,GAAG,EAAE,CACvC,mBAAmB,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC3F,CAAC;IAEF,2FAA2F;IAC3F,MAAM,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAEzC,8FAA8F;IAC9F,iGAAiG;IACjG,iGAAiG;IACjG,IAAI,SAAiC,CAAC;IACtC,IAAI,CAAC;QACH,gGAAgG;QAChG,mGAAmG;QACnG,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,SAAS,GAAG,MAAM,IAAI,cAAc,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/E,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC;QAEjD,4FAA4F;QAC5F,gBAAgB,CAAC;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,OAAO;YACP,SAAS;YACT,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO;SAC7B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,SAAS,CAAC;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG;iBACR,KAAK,EAAE,CAAC,0DAA0D;iBAClE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;iBACtB,OAAO,CAAC,GAAG,EAAE;gBACZ,0BAA0B,CAAC,QAAQ,CAAC,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,EAAE,KAAK,EAAE,CAAC;QACnB,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/host/daemon.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  import { spawn } from 'node:child_process';
12
12
  import { closeSync, openSync } from 'node:fs';
13
13
  import { getConfig, isAlive, resolveDefaultGraphqlPort } from '../config.js';
14
- import { isHostRunning, readHostRuntime, removeHostRuntime, } from './host-runtime.js';
14
+ import { hostCodeVersion, isHostRunning, readHostRuntime, removeHostRuntime, } from './host-runtime.js';
15
15
  const DEFAULT_TIMEOUT_MS = 120_000;
16
16
  /** Budget to let an alive-but-not-yet-healthy daemon finish booting before giving up. */
17
17
  const DEFAULT_RECHECK_MS = 20_000;
@@ -83,6 +83,13 @@ export async function ensureHost(options = {}) {
83
83
  const existing = readHostRuntime();
84
84
  if (existing && isHostRunning()) {
85
85
  if (await isGraphqlHealthy(existing.graphqlPort)) {
86
+ // Version-check (slice 139): surface a daemon running a DIFFERENT build than this install so it
87
+ // can't silently serve stale behavior. We warn (not auto-kill) to avoid disrupting in-flight runs;
88
+ // `revo restart` (or `doctor`) replaces it. A 0.0.0 dev checkout doesn't change version → no warn.
89
+ if (existing.version !== undefined && existing.version !== hostCodeVersion()) {
90
+ console.warn(`[host] attached to a daemon running version ${existing.version}, but this build is ` +
91
+ `${hostCodeVersion()} — run \`revo restart\` to replace the stale daemon.`);
92
+ }
86
93
  return { runtime: existing, alreadyRunning: true };
87
94
  }
88
95
  // Alive but not ready — likely mid-boot/bootstrap. Wait; never spawn a duplicate (port collision).
@@ -93,10 +100,10 @@ export async function ensureHost(options = {}) {
93
100
  `${existing.graphqlPort}. Stop it with \`revo stop\` and retry.`);
94
101
  }
95
102
  // No live daemon — clear a stale host.json (dead pid), then spawn a fresh detached one.
96
- // Known limitation (matches ensureRevisium's deferred concurrent-cold-start): this check-then-spawn
97
- // is not atomic, so two ensureHost() callers racing with no live daemon could both spawn `__daemon`.
98
- // The second daemon's startGraphqlHost fails fast (the GraphQL port is already bound) and exits, so
99
- // it cannot become a second DBOS owner; full cross-process spawn locking is deferred.
103
+ // The check-then-spawn is not atomic, but the daemon's advisory-lock singleton (slice 139,
104
+ // queue-ownership.ts) makes a concurrent cold-start safe: if two ensureHost() callers both spawn
105
+ // `__daemon`, only one wins the per-profile lock and lives; the loser exits before DBOS/queue, and
106
+ // every waiter observes the winner's host.json via waitForReady.
100
107
  if (existing)
101
108
  removeHostRuntime();
102
109
  spawnDaemon();
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-host.js","sourceRoot":"","sources":["../../src/host/ensure-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensure-host.js","sourceRoot":"","sources":["../../src/host/ensure-host.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,27 @@
10
10
  */
11
11
  import { existsSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
12
12
  import { join } from 'node:path';
13
+ import { fileURLToPath } from 'node:url';
13
14
  import { getConfig, isAlive } from '../config.js';
15
+ let cachedCodeVersion;
16
+ /**
17
+ * This build's package version (e.g. `0.1.0-alpha.7`). Recorded in host.json so `ensureHost`/`doctor`
18
+ * can detect a stale daemon running a DIFFERENT build than the current install (slice 139). A `0.0.0`
19
+ * dev checkout does not change across rebuilds, so dev relies on `revo restart`; released builds differ.
20
+ */
21
+ export function hostCodeVersion() {
22
+ if (cachedCodeVersion === undefined) {
23
+ try {
24
+ const pkgPath = fileURLToPath(new URL('../../package.json', import.meta.url));
25
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
26
+ cachedCodeVersion = typeof pkg.version === 'string' ? pkg.version : 'unknown';
27
+ }
28
+ catch {
29
+ cachedCodeVersion = 'unknown';
30
+ }
31
+ }
32
+ return cachedCodeVersion;
33
+ }
14
34
  export function hostRuntimeFile() {
15
35
  return join(getConfig().dataDir, 'host.json');
16
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"host-runtime.js","sourceRoot":"","sources":["../../src/host/host-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAclD,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAqB,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAuB;IACtD,aAAa,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAA6B;IACtE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,OAAO,EAAE,GAAG,KAAK,QAAQ,CAAC,GAAG,IAAI,OAAO,EAAE,SAAS,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC/E,iBAAiB,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"host-runtime.js","sourceRoot":"","sources":["../../src/host/host-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAalD,IAAI,iBAAqC,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAA0B,CAAC;YAC/E,iBAAiB,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB,GAAG,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAKD,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAqB,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAuB;IACtD,aAAa,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAA6B;IACtE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,OAAO,EAAE,GAAG,KAAK,QAAQ,CAAC,GAAG,IAAI,OAAO,EAAE,SAAS,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC/E,iBAAiB,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Daemon singleton gate (slice 139). Exactly ONE host daemon per profile may own — and therefore poll
3
+ * — the `dev-tasks` WorkflowQueue. Ownership is a connection-scoped Postgres ADVISORY LOCK:
4
+ *
5
+ * - Advisory locks are CLUSTER-global (not database-scoped), so we take it on the standalone's
6
+ * maintenance `postgres` database, which exists right after `ensureRevisium` — before the `dbos`
7
+ * database is even created. That lets the daemon decide "am I the owner?" BEFORE DBOS.launch() and
8
+ * before the queue worker starts polling.
9
+ * - The lock is held on a DEDICATED, long-lived connection for the daemon's whole life. It
10
+ * auto-releases when that connection ends — on graceful shutdown OR on a hard crash — so a dead
11
+ * owner never blocks a successor. (Verified by experiment before this code: a second connection's
12
+ * `pg_try_advisory_lock` returns false while held, and true again once the holder disconnects.)
13
+ *
14
+ * A daemon that does NOT win the lock lost a concurrent cold-start race (e.g. several `revo mcp`
15
+ * bridges spawning at once) and exits; ensureHost then attaches to the winner via host.json. This
16
+ * closes the "concurrent cold-start spawns multiple daemons" hole that let stale daemons accumulate.
17
+ */
18
+ import pg from 'pg';
19
+ /** Stable advisory-lock identity for a profile's dev-tasks queue ownership. */
20
+ export function ownershipLockName(profile) {
21
+ return `revo:dev-tasks:${profile}`;
22
+ }
23
+ /**
24
+ * Try to become the sole dev-tasks owner for `profile`. Returns `{owned:false}` (and closes its probe
25
+ * connection) when another live daemon already holds it. When `{owned:true}`, the returned connection
26
+ * stays open holding the lock until `release()` (or process death) frees it.
27
+ */
28
+ export async function acquireQueueOwnership(profile, pgPort, deps = {}) {
29
+ const url = `postgresql://revisium:password@localhost:${pgPort}/postgres`;
30
+ const name = ownershipLockName(profile);
31
+ const createClient = deps.createClient ?? ((u) => new pg.Client(u));
32
+ const client = createClient(url);
33
+ await client.connect();
34
+ const res = await client.query('SELECT pg_try_advisory_lock(hashtext($1)::bigint) AS owned', [name]);
35
+ const owned = res.rows[0]?.owned === true;
36
+ if (!owned) {
37
+ await client.end().catch(() => undefined);
38
+ return { owned: false, release: async () => undefined };
39
+ }
40
+ // Keep `client` reachable (via this closure) so its socket — and the lock — is held for the daemon's
41
+ // life. The OS frees the connection (and thus the lock) on crash; release() does it gracefully.
42
+ const release = async () => {
43
+ try {
44
+ await client.query('SELECT pg_advisory_unlock(hashtext($1)::bigint)', [name]);
45
+ }
46
+ catch {
47
+ // best-effort; ending the connection releases the lock regardless
48
+ }
49
+ await client.end().catch(() => undefined);
50
+ };
51
+ return { owned: true, release };
52
+ }
53
+ //# sourceMappingURL=queue-ownership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-ownership.js","sourceRoot":"","sources":["../../src/host/queue-ownership.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AAqBpB,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,kBAAkB,OAAO,EAAE,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAe,EACf,MAAc,EACd,OAA6B,EAAE;IAE/B,MAAM,GAAG,GAAG,4CAA4C,MAAM,WAAW,CAAC;IAC1E,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAA+B,CAAC,CAAC;IAC1G,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAEvB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,4DAA4D,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACrG,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAE1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;IAC1D,CAAC;IAED,qGAAqG;IACrG,gGAAgG;IAChG,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;QACD,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { RunAgentError } from './runner.js';
2
- import { AGENT_RESULT_SCHEMA, STRUCTURED_RESULT_NOTE, agentResultFromStructured, parseTransportEnvelope, } from './result-envelope.js';
2
+ import { AGENT_RESULT_SCHEMA, STRUCTURED_RESULT_NOTE, agentResultFromStructured, extractTerminalResult, parseTransportEnvelope, } from './result-envelope.js';
3
3
  import { boundedPreview, buildAttemptResult, buildUsageCosts, runnerError, tail } from './runner-common.js';
4
4
  const DEFAULT_TIMEOUT_MS = 600_000;
5
5
  const DEFAULT_COMMAND = 'claude';
@@ -61,13 +61,40 @@ function readParamNum(params, ...keys) {
61
61
  }
62
62
  return undefined;
63
63
  }
64
+ // Summarize one stream-json event into a short, redaction-safe preview for the observability feed.
65
+ // Assistant turns surface their text + tool names; tool results are marked; anything else by type.
66
+ function streamEventPreview(evt) {
67
+ const message = evt.message;
68
+ const content = message?.content;
69
+ if (Array.isArray(content)) {
70
+ const parts = content.map((raw) => {
71
+ const block = raw;
72
+ if (block.type === 'text' && typeof block.text === 'string')
73
+ return block.text;
74
+ if (block.type === 'tool_use' && typeof block.name === 'string')
75
+ return `[tool_use:${block.name}]`;
76
+ if (block.type === 'tool_result')
77
+ return '[tool_result]';
78
+ return `[${String(block.type)}]`;
79
+ });
80
+ const joined = parts.join(' ').trim();
81
+ return joined.length > 0 ? joined.slice(0, 500) : undefined;
82
+ }
83
+ if (typeof evt.result === 'string')
84
+ return evt.result.slice(0, 500);
85
+ return undefined;
86
+ }
64
87
  // CLI invocation — the only place flags are assembled. EXACT flag set is confirmed by the manual
65
88
  // Step-6 smoke before --runner defaults to auto. The permission mode keeps the headless run
66
89
  // non-interactive: a tool not in allowedTools is auto-denied (no TTY can prompt in -p mode).
67
90
  // 0008 #5: permissionMode is now per-role DATA (was hardcoded 'default'); model_profiles.params
68
91
  // (previously unused "{}") is threaded in — a configured maxTurns maps to claude's --max-turns.
69
92
  function buildArgs(modelId, allowedTools, permissionMode, params) {
70
- const args = ['-p', '--model', modelId, '--output-format', 'json', '--permission-mode', permissionMode];
93
+ // stream-json (NOT json): claude emits a JSONL transcript — one event per turn (assistant text,
94
+ // tool_use, tool_result) plus a terminal `result` line — so the runner can stream live per-turn
95
+ // observability AND still extract the final structured result. `--verbose` is required by claude
96
+ // for stream-json in `-p` mode. Confirmed by experiment before this change (slice 128).
97
+ const args = ['-p', '--model', modelId, '--output-format', 'stream-json', '--verbose', '--permission-mode', permissionMode];
71
98
  // Constrain the final message to the agent-result schema -> a reliable `verdict` in structured_output.
72
99
  // No prose fallback is accepted.
73
100
  args.push('--json-schema', AGENT_RESULT_SCHEMA);
@@ -112,6 +139,26 @@ export function createClaudeCodeRunner(deps) {
112
139
  timeoutMs,
113
140
  });
114
141
  reporter?.started();
142
+ // stream-json arrives as JSONL; buffer partial chunks and report ONE observability event per
143
+ // COMPLETE line — this is the live per-turn transcript. The terminal `result` line is skipped
144
+ // here and reported below via reportTransportMetadata (after extraction), to avoid duplication.
145
+ let stdoutLineBuffer = '';
146
+ const reportStreamLine = (line) => {
147
+ const trimmed = line.trim();
148
+ if (trimmed === '')
149
+ return;
150
+ let evt;
151
+ try {
152
+ evt = JSON.parse(trimmed);
153
+ }
154
+ catch {
155
+ return; // a partial or non-JSON line — ignore
156
+ }
157
+ const type = typeof evt.type === 'string' ? evt.type : 'event';
158
+ if (type === 'result')
159
+ return;
160
+ reporter?.parsed({ type, preview: streamEventPreview(evt) });
161
+ };
115
162
  const req = {
116
163
  command,
117
164
  args,
@@ -121,7 +168,12 @@ export function createClaudeCodeRunner(deps) {
121
168
  onSpawn: (pid) => reporter?.spawned(pid),
122
169
  onStdoutChunk: (chunk) => {
123
170
  processArtifact?.appendStdout(chunk);
124
- reporter?.output('stdout', chunk);
171
+ stdoutLineBuffer += chunk;
172
+ let nl;
173
+ while ((nl = stdoutLineBuffer.indexOf('\n')) >= 0) {
174
+ reportStreamLine(stdoutLineBuffer.slice(0, nl));
175
+ stdoutLineBuffer = stdoutLineBuffer.slice(nl + 1);
176
+ }
125
177
  },
126
178
  onStderrChunk: (chunk) => {
127
179
  processArtifact?.appendStderr(chunk);
@@ -129,6 +181,9 @@ export function createClaudeCodeRunner(deps) {
129
181
  },
130
182
  };
131
183
  const result = await deps.executor(req);
184
+ // Flush a trailing partial line (the result line normally ends in \n, so this is usually empty).
185
+ if (stdoutLineBuffer.trim() !== '')
186
+ reportStreamLine(stdoutLineBuffer);
132
187
  const processSnapshot = processArtifact?.finish({ code: result.code, timedOut: result.timedOut });
133
188
  // Timeout / process failure → throw; the loop's catch → failStep returns the step to ready
134
189
  // (backoff) or dead at the attempt cap. No loop change needed.
@@ -140,7 +195,7 @@ export function createClaudeCodeRunner(deps) {
140
195
  reporter?.failed(`claude-code runner exited with code ${String(result.code)}`, { exitCode: result.code });
141
196
  throw runnerError(`claude-code runner exited with code ${String(result.code)}: ${tail(result.stderr || result.stdout)}`, processSnapshot);
142
197
  }
143
- const transport = parseTransportEnvelope(result.stdout);
198
+ const transport = parseTransportEnvelope(extractTerminalResult(result.stdout));
144
199
  reporter?.parsed({ type: 'result', preview: transport.text });
145
200
  reportTransportMetadata(reporter, transport);
146
201
  if (transport.isError) {
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-runner.js","sourceRoot":"","sources":["../../src/worker/claude-code-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAc5G,MAAM,kBAAkB,GAAG,OAAO,CAAC;AACnC,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEjC,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7E,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,wBAAwB,CAAC,SAA4B;IAC5D,OAAO,cAAc,CAAC,EAAE,kBAAkB,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,SAA4B;IACnD,OAAO,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,CAAC;AACxH,CAAC;AAED,SAAS,uBAAuB,CAAC,QAA2C,EAAE,SAA4B;IACxG,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,cAAc,CAAC;gBACtB,cAAc,EAAE,SAAS,CAAC,OAAO;gBACjC,YAAY,EAAE,SAAS,CAAC,WAAW;gBACnC,aAAa,EAAE,SAAS,CAAC,YAAY;aACtC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,cAAc,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC;SACvE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,oBAAoB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtD,QAAQ,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,SAAS,YAAY,CAAC,MAAe,EAAE,GAAG,IAAc;IACtD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACrF,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9E,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,iGAAiG;AACjG,4FAA4F;AAC5F,6FAA6F;AAC7F,gGAAgG;AAChG,gGAAgG;AAChG,SAAS,SAAS,CAAC,OAAe,EAAE,YAAsB,EAAE,cAAsB,EAAE,MAAe;IACjG,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACxG,uGAAuG;IACvG,iCAAiC;IACjC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAChD,uGAAuG;IACvG,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC/D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qGAAqG;AACrG,iGAAiG;AACjG,SAAS,WAAW,CAAC,OAAe,EAAE,SAAiB;IACrD,MAAM,eAAe,GACnB,eAAe,SAAS,qEAAqE,CAAC;IAChG,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA0B;IAC/D,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC;IAEhD,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrE,uFAAuF;QACvF,oGAAoG;QACpG,8FAA8F;QAC9F,uFAAuF;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;QACxD,IAAI,eAAsE,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3F,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;gBACjD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS;gBACT,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO;gBACP,IAAI;gBACJ,GAAG;gBACH,SAAS;aACV,CAAC,CAAC;YACH,QAAQ,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,GAAG,GAAgB;gBACvB,OAAO;gBACP,IAAI;gBACJ,GAAG;gBACH,SAAS;gBACT,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC;gBACtC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;gBACxC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;gBACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,eAAe,GAAG,eAAe,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElG,2FAA2F;YAC3F,+DAA+D;YAC/D,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,QAAQ,EAAE,MAAM,CAAC,+BAA+B,SAAS,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1G,MAAM,WAAW,CAAC,+BAA+B,SAAS,IAAI,EAAE,eAAe,CAAC,CAAC;YACnF,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,QAAQ,EAAE,MAAM,CAAC,uCAAuC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1G,MAAM,WAAW,CACf,uCAAuC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,EACrG,eAAe,CAChB,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,QAAQ,EAAE,MAAM,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7G,MAAM,WAAW,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;YACtG,CAAC;YAED,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACpE,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;YAC9E,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE,IAAI,oBAAoB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACtD,QAAQ,EAAE,MAAM,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa;gBAAE,MAAM,GAAG,CAAC;YAC5C,MAAM,eAAe,GAAG,eAAe,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,kGAAkG;AAClG,0FAA0F"}
1
+ {"version":3,"file":"claude-code-runner.js","sourceRoot":"","sources":["../../src/worker/claude-code-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAc5G,MAAM,kBAAkB,GAAG,OAAO,CAAC;AACnC,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEjC,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7E,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,wBAAwB,CAAC,SAA4B;IAC5D,OAAO,cAAc,CAAC,EAAE,kBAAkB,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,SAA4B;IACnD,OAAO,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,CAAC;AACxH,CAAC;AAED,SAAS,uBAAuB,CAAC,QAA2C,EAAE,SAA4B;IACxG,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,cAAc,CAAC;gBACtB,cAAc,EAAE,SAAS,CAAC,OAAO;gBACjC,YAAY,EAAE,SAAS,CAAC,WAAW;gBACnC,aAAa,EAAE,SAAS,CAAC,YAAY;aACtC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,cAAc,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC;SACvE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,oBAAoB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtD,QAAQ,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,SAAS,YAAY,CAAC,MAAe,EAAE,GAAG,IAAc;IACtD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACrF,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9E,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,mGAAmG;AACnG,mGAAmG;AACnG,SAAS,kBAAkB,CAAC,GAA4B;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,OAA8C,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,GAA8B,CAAC;YAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC;YAC/E,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,aAAa,KAAK,CAAC,IAAI,GAAG,CAAC;YACnG,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO,eAAe,CAAC;YACzD,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,iGAAiG;AACjG,4FAA4F;AAC5F,6FAA6F;AAC7F,gGAAgG;AAChG,gGAAgG;AAChG,SAAS,SAAS,CAAC,OAAe,EAAE,YAAsB,EAAE,cAAsB,EAAE,MAAe;IACjG,gGAAgG;IAChG,gGAAgG;IAChG,iGAAiG;IACjG,wFAAwF;IACxF,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAC5H,uGAAuG;IACvG,iCAAiC;IACjC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAChD,uGAAuG;IACvG,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC/D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qGAAqG;AACrG,iGAAiG;AACjG,SAAS,WAAW,CAAC,OAAe,EAAE,SAAiB;IACrD,MAAM,eAAe,GACnB,eAAe,SAAS,qEAAqE,CAAC;IAChG,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA0B;IAC/D,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC;IAEhD,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrE,uFAAuF;QACvF,oGAAoG;QACpG,8FAA8F;QAC9F,uFAAuF;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;QACxD,IAAI,eAAsE,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3F,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;gBACjD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS;gBACT,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO;gBACP,IAAI;gBACJ,GAAG;gBACH,SAAS;aACV,CAAC,CAAC;YACH,QAAQ,EAAE,OAAO,EAAE,CAAC;YACpB,6FAA6F;YAC7F,8FAA8F;YAC9F,gGAAgG;YAChG,IAAI,gBAAgB,GAAG,EAAE,CAAC;YAC1B,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAQ,EAAE;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,OAAO,KAAK,EAAE;oBAAE,OAAO;gBAC3B,IAAI,GAA4B,CAAC;gBACjC,IAAI,CAAC;oBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;gBACvD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,sCAAsC;gBAChD,CAAC;gBACD,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC/D,IAAI,IAAI,KAAK,QAAQ;oBAAE,OAAO;gBAC9B,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC;YACF,MAAM,GAAG,GAAgB;gBACvB,OAAO;gBACP,IAAI;gBACJ,GAAG;gBACH,SAAS;gBACT,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC;gBACtC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;gBACxC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBACrC,gBAAgB,IAAI,KAAK,CAAC;oBAC1B,IAAI,EAAU,CAAC;oBACf,OAAO,CAAC,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClD,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;wBAChD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxC,iGAAiG;YACjG,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;YACvE,MAAM,eAAe,GAAG,eAAe,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElG,2FAA2F;YAC3F,+DAA+D;YAC/D,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,QAAQ,EAAE,MAAM,CAAC,+BAA+B,SAAS,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1G,MAAM,WAAW,CAAC,+BAA+B,SAAS,IAAI,EAAE,eAAe,CAAC,CAAC;YACnF,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,QAAQ,EAAE,MAAM,CAAC,uCAAuC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1G,MAAM,WAAW,CACf,uCAAuC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,EACrG,eAAe,CAChB,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/E,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,QAAQ,EAAE,MAAM,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7G,MAAM,WAAW,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;YACtG,CAAC;YAED,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACpE,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;YAC9E,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE,IAAI,oBAAoB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACtD,QAAQ,EAAE,MAAM,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa;gBAAE,MAAM,GAAG,CAAC;YAC5C,MAAM,eAAe,GAAG,eAAe,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,kGAAkG;AAClG,0FAA0F"}
@@ -105,6 +105,52 @@ export function parseTransportEnvelope(stdout) {
105
105
  structuredOutput: obj.structured_output,
106
106
  };
107
107
  }
108
+ /**
109
+ * Reduce the runner's stdout to the single terminal `result` JSON object, then hand it to
110
+ * parseTransportEnvelope. Handles BOTH shapes:
111
+ * - legacy `--output-format json` → the whole stdout is one `{...}` object;
112
+ * - `--output-format stream-json` → a JSONL stream (system/assistant/user/… lines) whose LAST
113
+ * line is `{"type":"result",...}`.
114
+ * Confirmed by experiment (2026-06-23): under stream-json the terminal result still carries
115
+ * `structured_output`, `usage`, and `total_cost_usd`, so verdict/cost extraction is unchanged.
116
+ * Throws when no result object is present (the runner maps that to a lesson-bearing failure).
117
+ */
118
+ export function extractTerminalResult(stdout) {
119
+ const trimmed = stdout.trim();
120
+ if (trimmed === '')
121
+ throw new Error('claude -p produced no output (no result envelope)');
122
+ // Legacy single-object form: the whole stdout parses as one object. Accept only a terminal
123
+ // result (`type` 'result' or absent — the legacy `--output-format json` blob is `type:'result'`);
124
+ // a lone non-result stream event (e.g. `{"type":"assistant",…}`) must fall through so the JSONL
125
+ // scan reports the clear "no result event" error rather than failing later on a missing result.
126
+ try {
127
+ const whole = JSON.parse(trimmed);
128
+ if (whole !== null && typeof whole === 'object' && !Array.isArray(whole)) {
129
+ const type = whole.type;
130
+ if (type === undefined || type === 'result')
131
+ return trimmed;
132
+ }
133
+ }
134
+ catch {
135
+ // Not a single object → fall through to the JSONL scan.
136
+ }
137
+ // stream-json: the terminal result is the LAST line with `"type":"result"`.
138
+ const lines = trimmed.split(/\r?\n/);
139
+ for (let i = lines.length - 1; i >= 0; i--) {
140
+ const line = lines[i].trim();
141
+ if (line === '')
142
+ continue;
143
+ try {
144
+ const obj = JSON.parse(line);
145
+ if (obj !== null && typeof obj === 'object' && obj.type === 'result')
146
+ return line;
147
+ }
148
+ catch {
149
+ // skip a partial/non-JSON line
150
+ }
151
+ }
152
+ throw new Error('claude -p stream contained no result event (transport envelope)');
153
+ }
108
154
  // Map each raw nextSteps entry to NewStepSpec. Require role/kind/input; default taskId and
109
155
  // modelProfile from the current step so the agent never needs to know IDs. Throw a lesson-bearing
110
156
  // error (naming the index) on a malformed entry.
@@ -1 +1 @@
1
- {"version":3,"file":"result-envelope.js","sourceRoot":"","sources":["../../src/worker/result-envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result-envelope.js","sourceRoot":"","sources":["../../src/worker/result-envelope.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revisium/orchestrator",
3
- "version": "0.1.0-alpha.6",
3
+ "version": "0.1.0-alpha.7",
4
4
  "description": "Local orchestrator for software-development tasks driven by short-lived AI agents",
5
5
  "keywords": [
6
6
  "agents",