taskflow-core 0.1.5 → 0.1.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.
Files changed (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +122 -30
  3. package/dist/agents.d.ts +20 -0
  4. package/dist/agents.d.ts.map +1 -1
  5. package/dist/agents.js +51 -2
  6. package/dist/agents.js.map +1 -1
  7. package/dist/deterministic.d.ts +33 -0
  8. package/dist/deterministic.d.ts.map +1 -0
  9. package/dist/deterministic.js +56 -0
  10. package/dist/deterministic.js.map +1 -0
  11. package/dist/flowir/translate.d.ts.map +1 -1
  12. package/dist/flowir/translate.js +25 -7
  13. package/dist/flowir/translate.js.map +1 -1
  14. package/dist/index.d.ts +7 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +7 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/interpolate.d.ts +18 -0
  19. package/dist/interpolate.d.ts.map +1 -1
  20. package/dist/interpolate.js +45 -0
  21. package/dist/interpolate.js.map +1 -1
  22. package/dist/jsonc.d.ts +30 -0
  23. package/dist/jsonc.d.ts.map +1 -0
  24. package/dist/jsonc.js +108 -0
  25. package/dist/jsonc.js.map +1 -0
  26. package/dist/library/meta.d.ts +31 -0
  27. package/dist/library/meta.d.ts.map +1 -0
  28. package/dist/library/meta.js +154 -0
  29. package/dist/library/meta.js.map +1 -0
  30. package/dist/library/search.d.ts +33 -0
  31. package/dist/library/search.d.ts.map +1 -0
  32. package/dist/library/search.js +299 -0
  33. package/dist/library/search.js.map +1 -0
  34. package/dist/library/types.d.ts +121 -0
  35. package/dist/library/types.d.ts.map +1 -0
  36. package/dist/library/types.js +18 -0
  37. package/dist/library/types.js.map +1 -0
  38. package/dist/replay.d.ts +75 -0
  39. package/dist/replay.d.ts.map +1 -0
  40. package/dist/replay.js +25 -0
  41. package/dist/replay.js.map +1 -0
  42. package/dist/runner-core.d.ts +54 -4
  43. package/dist/runner-core.d.ts.map +1 -1
  44. package/dist/runner-core.js +237 -10
  45. package/dist/runner-core.js.map +1 -1
  46. package/dist/runtime.d.ts +8 -11
  47. package/dist/runtime.d.ts.map +1 -1
  48. package/dist/runtime.js +170 -43
  49. package/dist/runtime.js.map +1 -1
  50. package/dist/schema.d.ts.map +1 -1
  51. package/dist/schema.js +13 -0
  52. package/dist/schema.js.map +1 -1
  53. package/dist/scorers.d.ts +11 -3
  54. package/dist/scorers.d.ts.map +1 -1
  55. package/dist/scorers.js +38 -7
  56. package/dist/scorers.js.map +1 -1
  57. package/dist/store.d.ts +80 -0
  58. package/dist/store.d.ts.map +1 -1
  59. package/dist/store.js +249 -39
  60. package/dist/store.js.map +1 -1
  61. package/dist/trace.d.ts +150 -0
  62. package/dist/trace.d.ts.map +1 -0
  63. package/dist/trace.js +191 -0
  64. package/dist/trace.js.map +1 -0
  65. package/package.json +6 -7
@@ -1,13 +1,18 @@
1
1
  /**
2
2
  * Host-neutral subagent-result helpers: failure classification, transient-error
3
- * detection, error sanitization, and the NDJSON event accumulator/parser.
3
+ * detection, error sanitization, and the NDJSON event accumulator/parser, PLUS
4
+ * the shared `runSubagentProcess` that the codex/claude/opencode runners delegate
5
+ * to for the identical spawn / idle-watchdog / abort / signal-kill / stderr-cap /
6
+ * post-exit classification block.
4
7
  *
5
8
  * This is the pure, host-SDK-free half of the original runner. The pi spawn
6
- * machinery lives in the pi adapter (`pi-taskflow`); the codex spawn machinery
7
- * in the codex adapter (`codex-taskflow`). Both reuse everything here so failure
8
- * semantics, retry heuristics, and usage folding are identical across hosts.
9
+ * machinery lives in the pi adapter (`pi-taskflow`); the codex/claude/opencode
10
+ * spawn machinery in their adapters. All of them reuse everything here so
11
+ * failure semantics, retry heuristics, and usage folding are identical across
12
+ * hosts.
9
13
  */
10
14
  import { type UsageStats } from "./usage.ts";
15
+ import type { AgentConfig } from "./agents.ts";
11
16
  import type { CoreMessage, LiveUpdate, RunResult } from "./host/runner-types.ts";
12
17
  export type { CoreMessage, LiveUpdate, RunOptions, RunResult, SubagentRunner } from "./host/runner-types.ts";
13
18
  export declare function isFailed(r: RunResult): boolean;
@@ -46,4 +51,49 @@ export declare function newAccumulator(model?: string): EventAccumulator;
46
51
  export declare function foldEventLine(acc: EventAccumulator, line: string): LiveUpdate | null;
47
52
  /** Run an array of items through `fn` with a bounded concurrency pool. */
48
53
  export declare function mapWithConcurrencyLimit<TIn, TOut>(items: TIn[], concurrency: number, fn: (item: TIn, index: number) => Promise<TOut>): Promise<TOut[]>;
54
+ /** Coerce a JSON-sourced numeric field to a finite number, defaulting to 0.
55
+ * Provider event streams are parsed off `any`; a version drift could ship a
56
+ * numeric STRING (e.g. "1234"), and `number += string` silently corrupts to
57
+ * string concatenation / NaN. This guard keeps usage accounting honest. */
58
+ export declare function num(v: unknown): number;
59
+ /** Same idle window every host runner uses: a child silent this long is wedged. */
60
+ export declare const DEFAULT_IDLE_TIMEOUT_MS: number;
61
+ /** The base accumulator contract the shared process runner reads/writes. Each
62
+ * host's accumulator (Codex/Claude/OpenCode) satisfies this structurally and
63
+ * may carry extra fields (e.g. claude's `sawResult`) its own foldLine uses. */
64
+ export interface SubagentAccumulator {
65
+ usage: UsageStats;
66
+ model?: string;
67
+ /** Final answer text (the host's foldLine sets this from its event stream). */
68
+ finalText: string;
69
+ lastActivity: string;
70
+ /** Set by the host foldLine when the stream reported a fatal error event. */
71
+ fatalError?: string;
72
+ }
73
+ /** Standard "unknown agent" RunResult — identical across every host runner. */
74
+ export declare function unknownAgentResult(agentName: string, task: string, agents: AgentConfig[]): RunResult;
75
+ export interface RunSubagentProcessOptions<TAcc extends SubagentAccumulator> {
76
+ /** Identity fields written verbatim onto the RunResult. */
77
+ agent: string;
78
+ task: string;
79
+ model?: string;
80
+ /** Spawn spec. `env` defaults to the parent process env; a host may override
81
+ * (e.g. opencode injects OPENCODE_CONFIG_CONTENT for read-only phases). */
82
+ bin: string;
83
+ args: string[];
84
+ env?: NodeJS.ProcessEnv;
85
+ cwd: string;
86
+ /** Execution knobs (forwarded from the phase's RunOptions). */
87
+ idleTimeoutMs?: number;
88
+ signal?: AbortSignal;
89
+ onLive?: (live: LiveUpdate) => void;
90
+ /** Per-host event folding: the host's accumulator + its line parser. */
91
+ acc: TAcc;
92
+ foldLine: (acc: TAcc, line: string) => LiveUpdate | null;
93
+ }
94
+ /** Spawn an isolated subagent process, fold its event stream, and classify the
95
+ * outcome into a RunResult. The whole tail (fatalError, signal-kill remap,
96
+ * idle-timeout, abort, isFailed + placeholder + sanitize) is the single source
97
+ * of truth — every host runner that delegates here gets identical semantics. */
98
+ export declare function runSubagentProcess<TAcc extends SubagentAccumulator>(opts: RunSubagentProcessOptions<TAcc>): Promise<RunResult>;
49
99
  //# sourceMappingURL=runner-core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-core.d.ts","sourceRoot":"","sources":["../src/runner-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIjF,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7G,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAE9C;AAUD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAQtD;AAED;4EAC4E;AAC5E,eAAO,MAAM,2BAA2B,iDAAiD,CAAC;AAE1F,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CActD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAyBpE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAU9D;AAED,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAoCpF;AAwCD,0EAA0E;AAC1E,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,IAAI,EACtD,KAAK,EAAE,GAAG,EAAE,EACZ,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC7C,OAAO,CAAC,IAAI,EAAE,CAAC,CAcjB"}
1
+ {"version":3,"file":"runner-core.d.ts","sourceRoot":"","sources":["../src/runner-core.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,17 @@
1
1
  /**
2
2
  * Host-neutral subagent-result helpers: failure classification, transient-error
3
- * detection, error sanitization, and the NDJSON event accumulator/parser.
3
+ * detection, error sanitization, and the NDJSON event accumulator/parser, PLUS
4
+ * the shared `runSubagentProcess` that the codex/claude/opencode runners delegate
5
+ * to for the identical spawn / idle-watchdog / abort / signal-kill / stderr-cap /
6
+ * post-exit classification block.
4
7
  *
5
8
  * This is the pure, host-SDK-free half of the original runner. The pi spawn
6
- * machinery lives in the pi adapter (`pi-taskflow`); the codex spawn machinery
7
- * in the codex adapter (`codex-taskflow`). Both reuse everything here so failure
8
- * semantics, retry heuristics, and usage folding are identical across hosts.
9
+ * machinery lives in the pi adapter (`pi-taskflow`); the codex/claude/opencode
10
+ * spawn machinery in their adapters. All of them reuse everything here so
11
+ * failure semantics, retry heuristics, and usage folding are identical across
12
+ * hosts.
9
13
  */
14
+ import { spawn } from "node:child_process";
10
15
  import { emptyUsage } from "./usage.js";
11
16
  export function isFailed(r) {
12
17
  return r.exitCode !== 0 || r.stopReason === "error" || r.stopReason === "aborted";
@@ -17,7 +22,7 @@ export function isFailed(r) {
17
22
  * the taskflow run with backoff rather than bubbled up — otherwise the calling
18
23
  * agent tends to re-invoke the whole tool, producing duplicate progress blocks.
19
24
  */
20
- const TRANSIENT_ERROR_RE = /rate[_\s-]?limit|too\s+many\s+requests|overloaded|\b429\b|\b503\b|\b502\b|\b504\b|service\s+unavailable|temporarily\s+unavailable|timeout|timed?\s+out|econnreset|etimedout|socket\s+hang\s*up/i;
25
+ const TRANSIENT_ERROR_RE = /rate[_\s-]?limit|too[ \t\n\r]+many[ \t\n\r]+requests|overloaded|\b429\b|\b503\b|\b502\b|\b504\b|service[ \t\n\r]+unavailable|temporarily[ \t\n\r]+unavailable|timeout|timed?[ \t\n\r]+out|econnreset|etimedout|socket[ \t\n\r]+hang[ \t\n\r]*up/i;
21
26
  export function isTransientError(r) {
22
27
  if (r.stopReason === "aborted")
23
28
  return false;
@@ -42,7 +47,7 @@ export function looksLikeHtmlOrJson(s) {
42
47
  return false;
43
48
  if (t.startsWith("<")) {
44
49
  // HTML/XML/Cloudflare challenge pages
45
- return /^<(?:!doctype\s+html|html|head|body|script|svg|div|iframe|span|p)\b/i.test(t);
50
+ return /^<(?:!doctype[ \t\n\r]+html|html|head|body|script|svg|div|iframe|span|p)\b/i.test(t);
46
51
  }
47
52
  if (t.startsWith("{")) {
48
53
  // Truncated JSON. A genuine JSON envelope is fine to keep; an unwrapped
@@ -59,7 +64,7 @@ export function looksLikeHtmlOrJson(s) {
59
64
  export function sanitizeErrorMessage(raw) {
60
65
  if (!raw)
61
66
  return "";
62
- const cleaned = raw.replace(/\s+/g, " ").trim();
67
+ const cleaned = raw.replace(/[ \t\n\r]+/g, " ").trim();
63
68
  if (!cleaned)
64
69
  return "";
65
70
  // Decide the sanitization branch on the RAW length, not the whitespace-
@@ -76,8 +81,8 @@ export function sanitizeErrorMessage(raw) {
76
81
  // gateway error pages) is a strong signal the upstream returned a page
77
82
  // instead of JSON. Summarize it instead of letting HTML pollute the
78
83
  // phase's error and downstream interpolation contexts.
79
- const title = cleaned.match(/<title[^>]*>([^<]*)<\/title>/i)?.[1]?.trim();
80
- const stripped = cleaned.replace(/<[^>]+>/g, " ").replace(/\s+/g, " ").trim();
84
+ const title = cleaned.match(/<title\b[^>]*>([^<]{0,500})<\/title>/i)?.[1]?.trim();
85
+ const stripped = cleaned.replace(/<[^>]{1,2000}>/g, " ").replace(/[ \t\n\r]+/g, " ").trim();
81
86
  const m = stripped.match(/(?:Unable to load site|Ray ID[: ]+([A-Za-z0-9]+)|[A-Z][a-z]+Error[: ]+(.{0,200}))/i);
82
87
  const hint = title || (m ? (m[1] || m[0]).trim() : stripped.slice(0, 200));
83
88
  return `Upstream returned non-JSON response (${rawLen} chars). Hint: ${hint}`;
@@ -164,7 +169,7 @@ function describeActivity(msg) {
164
169
  lastTool = summarizeToolCall(part.name, part.arguments ?? {});
165
170
  }
166
171
  const chosen = lastText || lastTool;
167
- return chosen.replace(/\s+/g, " ").trim();
172
+ return chosen.replace(/[ \t\n\r]+/g, " ").trim();
168
173
  }
169
174
  function summarizeToolCall(name, args) {
170
175
  const short = (p) => {
@@ -208,4 +213,226 @@ export async function mapWithConcurrencyLimit(items, concurrency, fn) {
208
213
  await Promise.all(workers);
209
214
  return results;
210
215
  }
216
+ // ---------------------------------------------------------------------------
217
+ // Shared subagent process runner
218
+ // ---------------------------------------------------------------------------
219
+ //
220
+ // The codex/claude/opencode host runners each spawn an isolated CLI process,
221
+ // fold its JSON event stream into an accumulator, and classify the outcome
222
+ // into a RunResult. The spawn + idle-watchdog + abort + signal-kill + stderr-
223
+ // cap + post-exit classification block was copy-pasted across all three
224
+ // (~82 lines × 3, byte-identical after renaming) — which already caused one
225
+ // divergence bug (contextTokens). This function is that block, extracted once.
226
+ //
227
+ // Each host runner now does only what is genuinely host-specific — build the
228
+ // argv (bin/flags/model/permission/prompt) and provide a foldLine + accumulator
229
+ // — then delegates here for everything else. Adding a new host can no longer
230
+ // drift the process/classify contract.
231
+ /** Coerce a JSON-sourced numeric field to a finite number, defaulting to 0.
232
+ * Provider event streams are parsed off `any`; a version drift could ship a
233
+ * numeric STRING (e.g. "1234"), and `number += string` silently corrupts to
234
+ * string concatenation / NaN. This guard keeps usage accounting honest. */
235
+ export function num(v) {
236
+ const n = Number(v);
237
+ return Number.isFinite(n) ? n : 0;
238
+ }
239
+ /** Tracks every live subagent child so a process exit can SIGKILL stragglers.
240
+ * Module-global (not per-host): a single exit handler must reach every host's
241
+ * children, so all host runners register here. */
242
+ const activeChildren = new Set();
243
+ const killAllChildren = () => {
244
+ for (const pid of activeChildren) {
245
+ try {
246
+ process.kill(pid, "SIGKILL");
247
+ }
248
+ catch { /* already dead */ }
249
+ }
250
+ };
251
+ process.on("exit", killAllChildren);
252
+ /** Same idle window every host runner uses: a child silent this long is wedged. */
253
+ export const DEFAULT_IDLE_TIMEOUT_MS = 5 * 60_000;
254
+ /** Standard "unknown agent" RunResult — identical across every host runner. */
255
+ export function unknownAgentResult(agentName, task, agents) {
256
+ const available = agents.map((a) => `"${a.name}"`).join(", ") || "none";
257
+ return {
258
+ agent: agentName,
259
+ task,
260
+ exitCode: 1,
261
+ output: "",
262
+ stderr: `Unknown agent: "${agentName}". Available: ${available}.`,
263
+ usage: emptyUsage(),
264
+ errorMessage: `Unknown agent: ${agentName}`,
265
+ stopReason: "error",
266
+ };
267
+ }
268
+ /** Spawn an isolated subagent process, fold its event stream, and classify the
269
+ * outcome into a RunResult. The whole tail (fatalError, signal-kill remap,
270
+ * idle-timeout, abort, isFailed + placeholder + sanitize) is the single source
271
+ * of truth — every host runner that delegates here gets identical semantics. */
272
+ export async function runSubagentProcess(opts) {
273
+ const { agent, task, model, bin, args, cwd, acc, foldLine } = opts;
274
+ const env = opts.env ?? { ...process.env };
275
+ const result = {
276
+ agent,
277
+ task,
278
+ exitCode: 0,
279
+ output: "",
280
+ stderr: "",
281
+ usage: emptyUsage(),
282
+ model,
283
+ };
284
+ let wasAborted = false;
285
+ let idleTimedOut = false;
286
+ let killedBySignal;
287
+ const idleMs = opts.idleTimeoutMs ?? DEFAULT_IDLE_TIMEOUT_MS;
288
+ // Structured run-log header, opt-in via PI_TASKFLOW_RUN_LOG. Written to the
289
+ // HOST process's stderr (the MCP stdio log channel; pi's subagent diagnostic
290
+ // stream) — never to stdout (stdout is JSON-RPC for MCP). One line per spawn
291
+ // so an operator tailing stderr can see which agent/bin produced the
292
+ // following child output. Default-off to avoid surprising users who capture
293
+ // stderr; set PI_TASKFLOW_RUN_LOG=1 to enable.
294
+ if (process.env.PI_TASKFLOW_RUN_LOG) {
295
+ const flag = String(process.env.PI_TASKFLOW_RUN_LOG).toLowerCase();
296
+ if (flag && flag !== "0" && flag !== "false") {
297
+ process.stderr.write(`[taskflow:run] agent=${agent} bin=${bin} model=${model ?? "-"} args=${JSON.stringify(args)}\n`);
298
+ }
299
+ }
300
+ const exitCode = await new Promise((resolve) => {
301
+ const proc = spawn(bin, args, { cwd, shell: false, stdio: ["ignore", "pipe", "pipe"], env });
302
+ if (proc.pid)
303
+ activeChildren.add(proc.pid);
304
+ let buffer = "";
305
+ let idleTimer;
306
+ let forceTimer;
307
+ const clearTimers = () => {
308
+ if (idleTimer)
309
+ clearTimeout(idleTimer);
310
+ if (forceTimer)
311
+ clearTimeout(forceTimer);
312
+ };
313
+ const hardKill = () => {
314
+ idleTimedOut = true;
315
+ proc.kill("SIGTERM");
316
+ forceTimer = setTimeout(() => proc.kill("SIGKILL"), 5000);
317
+ forceTimer.unref();
318
+ };
319
+ const armIdle = () => {
320
+ if (idleTimer)
321
+ clearTimeout(idleTimer);
322
+ if (idleMs <= 0)
323
+ return;
324
+ idleTimer = setTimeout(hardKill, idleMs);
325
+ idleTimer.unref();
326
+ };
327
+ armIdle();
328
+ const processLine = (line) => {
329
+ // A throwing foldLine (malformed/hostile stream line) or a throwing onLive
330
+ // callback must NEVER crash the run — this is the fail-open backstop that
331
+ // turns a bad line into a skipped line. It also honours the AGENTS.md
332
+ // invariant that user callbacks are wrapped in try/catch.
333
+ try {
334
+ const live = foldLine(acc, line);
335
+ if (live && opts.onLive)
336
+ opts.onLive(live);
337
+ }
338
+ catch {
339
+ /* malformed stream line / throwing callback — skip, never crash */
340
+ }
341
+ };
342
+ proc.stdout.on("data", (data) => {
343
+ armIdle();
344
+ buffer += data.toString();
345
+ const lines = buffer.split("\n");
346
+ buffer = lines.pop() || "";
347
+ for (const line of lines)
348
+ processLine(line);
349
+ });
350
+ const STDERR_MAX_LEN = 64 * 1024;
351
+ let stderrCapped = false;
352
+ proc.stderr.on("data", (data) => {
353
+ if (!stderrCapped) {
354
+ result.stderr += data.toString();
355
+ if (result.stderr.length >= STDERR_MAX_LEN) {
356
+ result.stderr = result.stderr.slice(0, STDERR_MAX_LEN) + "\n[...stderr truncated at 64KB]";
357
+ stderrCapped = true;
358
+ }
359
+ }
360
+ });
361
+ proc.on("close", (code, signal) => {
362
+ if (proc.pid)
363
+ activeChildren.delete(proc.pid);
364
+ clearTimers();
365
+ if (buffer.trim())
366
+ processLine(buffer);
367
+ if (code === null && signal)
368
+ killedBySignal = signal;
369
+ resolve(code ?? 0);
370
+ });
371
+ proc.on("error", (err) => {
372
+ clearTimers();
373
+ if (proc.pid)
374
+ activeChildren.delete(proc.pid); // defensive: close usually fires after error, but don't rely on it
375
+ if (!result.stderr)
376
+ result.stderr = err.message;
377
+ if (!result.errorMessage)
378
+ result.errorMessage = err.message;
379
+ resolve(1);
380
+ });
381
+ if (opts.signal) {
382
+ const kill = () => {
383
+ wasAborted = true;
384
+ // Disarm the idle watchdog first: otherwise, if the idle timer fires
385
+ // between this SIGTERM and the close event, `idleTimedOut` would be
386
+ // set and the post-exit classify chain (which checks idle BEFORE
387
+ // abort) would misreport a user abort as an idle stall.
388
+ clearTimers();
389
+ proc.kill("SIGTERM");
390
+ const forceKill = setTimeout(() => proc.kill("SIGKILL"), 5000);
391
+ forceKill.unref();
392
+ };
393
+ if (opts.signal.aborted)
394
+ kill();
395
+ else
396
+ opts.signal.addEventListener("abort", kill, { once: true });
397
+ }
398
+ });
399
+ result.exitCode = exitCode;
400
+ result.usage = acc.usage;
401
+ result.model = acc.model;
402
+ result.output = acc.finalText;
403
+ if (acc.fatalError) {
404
+ result.exitCode = result.exitCode || 1;
405
+ result.stopReason = "error";
406
+ result.errorMessage = acc.fatalError;
407
+ }
408
+ else {
409
+ result.stopReason = exitCode === 0 ? "end" : "error";
410
+ }
411
+ if (exitCode === 0 && killedBySignal && !idleTimedOut && !wasAborted) {
412
+ result.exitCode = 1;
413
+ result.stopReason = "error";
414
+ result.errorMessage = `Subagent killed by signal ${killedBySignal}`;
415
+ }
416
+ if (idleTimedOut) {
417
+ result.stopReason = "error";
418
+ result.idleTimeout = true;
419
+ result.errorMessage = `Subagent stalled: no output for ${Math.round(idleMs / 1000)}s (idle timeout) — killed`;
420
+ }
421
+ else if (wasAborted) {
422
+ result.stopReason = "aborted";
423
+ result.errorMessage = "Subagent was aborted";
424
+ }
425
+ if (isFailed(result)) {
426
+ if (!result.output) {
427
+ result.output = TRANSPORT_ERROR_PLACEHOLDER;
428
+ if (!result.errorMessage) {
429
+ result.errorMessage =
430
+ result.stderr || `Subagent exited with code ${result.exitCode} (stopReason: ${result.stopReason ?? "unknown"})`;
431
+ }
432
+ }
433
+ if (result.errorMessage)
434
+ result.errorMessage = sanitizeErrorMessage(result.errorMessage);
435
+ }
436
+ return result;
437
+ }
211
438
  //# sourceMappingURL=runner-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-core.js","sourceRoot":"","sources":["../src/runner-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-core.js","sourceRoot":"","sources":["../src/runner-core.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -16,6 +16,9 @@ import type { SubagentRunner } from "./host/runner-types.ts";
16
16
  type RunTaskFn = SubagentRunner<any>["runTask"];
17
17
  import { type UsageStats } from "./usage.ts";
18
18
  import { type CacheScope, type Taskflow } from "./schema.ts";
19
+ import { parseGateVerdict } from "./deterministic.ts";
20
+ import { type TraceSink } from "./trace.ts";
21
+ export { parseGateVerdict };
19
22
  import { type PhaseState, type RunState } from "./store.ts";
20
23
  import { CacheStore } from "./cache.ts";
21
24
  /** A human-in-the-loop approval request raised by an `approval` phase. */
@@ -50,6 +53,11 @@ export interface RuntimeDeps {
50
53
  cacheStore?: CacheStore;
51
54
  /** Default cache scope for phases that don't specify one. */
52
55
  cacheScopeDefault?: CacheScope;
56
+ /** Deterministic-replay trace sink (best-effort, fail-open). When injected,
57
+ * the runtime records each phase's subagent calls + its own decisions to an
58
+ * append-only trace for offline replay. Absent → no-op (runs behave
59
+ * identically to today). See `trace.ts`. */
60
+ trace?: TraceSink;
53
61
  /** Internal: sub-flow call stack, for recursion detection. */
54
62
  _stack?: string[];
55
63
  /** Internal: pre-resolved Shared Context Tree dir for this run (sub-flows inherit the parent's). */
@@ -161,16 +169,6 @@ export interface CacheKeys {
161
169
  * only `key`. This means an upgrade never produces a miss-storm: existing
162
170
  * entries (whichever shape) still hit, and new writes converge on `key`. */
163
171
  export declare function cacheKeys(cc: PhaseCacheCtx, baseParts: string[]): CacheKeys;
164
- /**
165
- * Parse a gate phase's output into a verdict. Blocks the flow only on an
166
- * explicit negative signal; ambiguous output passes (fail-open).
167
- * Accepts JSON ({continue|pass: bool} or {verdict: "..."}) or a text marker
168
- * `VERDICT: PASS|BLOCK|FAIL|STOP|OK|REJECT|HALT` (last occurrence wins).
169
- */
170
- export declare function parseGateVerdict(output: string): {
171
- verdict: "pass" | "block";
172
- reason?: string;
173
- };
174
172
  /**
175
173
  * Parse a judge's pick of the winning variant. Accepts JSON ({"winner":n} or
176
174
  * {"best":n}) or a `WINNER: n` line (last match wins). Clamps to [1, count].
@@ -230,5 +228,4 @@ export declare function recomputeTaskflow(state: RunState, deps: RuntimeDeps, se
230
228
  state: RunState;
231
229
  }>;
232
230
  export declare function executeTaskflow(state: RunState, deps: RuntimeDeps): Promise<RuntimeResult>;
233
- export {};
234
231
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}