taskflow-core 0.1.6 → 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 (44) hide show
  1. package/README.md +10 -8
  2. package/dist/deterministic.d.ts +33 -0
  3. package/dist/deterministic.d.ts.map +1 -0
  4. package/dist/deterministic.js +56 -0
  5. package/dist/deterministic.js.map +1 -0
  6. package/dist/flowir/translate.d.ts.map +1 -1
  7. package/dist/flowir/translate.js +25 -7
  8. package/dist/flowir/translate.js.map +1 -1
  9. package/dist/index.d.ts +3 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/interpolate.d.ts +18 -0
  14. package/dist/interpolate.d.ts.map +1 -1
  15. package/dist/interpolate.js +45 -0
  16. package/dist/interpolate.js.map +1 -1
  17. package/dist/library/search.d.ts +3 -2
  18. package/dist/library/search.d.ts.map +1 -1
  19. package/dist/library/search.js +2 -1
  20. package/dist/library/search.js.map +1 -1
  21. package/dist/replay.d.ts +75 -0
  22. package/dist/replay.d.ts.map +1 -0
  23. package/dist/replay.js +25 -0
  24. package/dist/replay.js.map +1 -0
  25. package/dist/runtime.d.ts +8 -11
  26. package/dist/runtime.d.ts.map +1 -1
  27. package/dist/runtime.js +170 -43
  28. package/dist/runtime.js.map +1 -1
  29. package/dist/schema.d.ts.map +1 -1
  30. package/dist/schema.js +13 -0
  31. package/dist/schema.js.map +1 -1
  32. package/dist/scorers.d.ts +11 -3
  33. package/dist/scorers.d.ts.map +1 -1
  34. package/dist/scorers.js +38 -7
  35. package/dist/scorers.js.map +1 -1
  36. package/dist/store.d.ts +57 -9
  37. package/dist/store.d.ts.map +1 -1
  38. package/dist/store.js +165 -83
  39. package/dist/store.js.map +1 -1
  40. package/dist/trace.d.ts +150 -0
  41. package/dist/trace.d.ts.map +1 -0
  42. package/dist/trace.js +191 -0
  43. package/dist/trace.js.map +1 -0
  44. package/package.json +1 -1
package/dist/store.js CHANGED
@@ -19,7 +19,32 @@ import * as os from "node:os";
19
19
  import * as path from "node:path";
20
20
  import { parseJsonc } from "./jsonc.js";
21
21
  import { getAgentDir } from "./paths.js";
22
- import { safeParse } from "./interpolate.js";
22
+ import { parseStrict } from "./interpolate.js";
23
+ /** Build a single-line, user-facing message from a failed `LoadResult`. */
24
+ export function describeLoadFailure(r, what) {
25
+ return r.reason === "missing"
26
+ ? `${what} not found: ${r.path}`
27
+ : `${what} could not be parsed — ${r.detail} (${r.path})`;
28
+ }
29
+ /** Read+parse a user-authored file, distinguishing missing from malformed. */
30
+ function loadFile(filePath, parse) {
31
+ let raw;
32
+ try {
33
+ raw = fs.readFileSync(filePath, "utf-8");
34
+ }
35
+ catch (e) {
36
+ return { ok: false, reason: "missing", path: filePath, detail: errMessage(e) };
37
+ }
38
+ try {
39
+ return { ok: true, value: parse(raw) };
40
+ }
41
+ catch (e) {
42
+ return { ok: false, reason: "unparseable", path: filePath, detail: errMessage(e) };
43
+ }
44
+ }
45
+ function errMessage(e) {
46
+ return e instanceof Error ? e.message : String(e);
47
+ }
23
48
  // ---------------------------------------------------------------------------
24
49
  // File-lock constants
25
50
  // ---------------------------------------------------------------------------
@@ -72,6 +97,12 @@ function flowRunDir(runsRoot, flowName) {
72
97
  function runFilePath(runsRoot, flowName, runId) {
73
98
  return path.join(flowRunDir(runsRoot, flowName), `${runId}.json`);
74
99
  }
100
+ /** Return the path to a run's deterministic-replay trace (append-only JSONL).
101
+ * Sibling to `<runId>.json` in the same per-flow dir. Best-effort: the file
102
+ * only exists if a TraceSink was injected for the run. */
103
+ export function traceFilePath(runsRoot, flowName, runId) {
104
+ return path.join(flowRunDir(runsRoot, flowName), `${runId}.trace.jsonl`);
105
+ }
75
106
  /** Return the path to the run index file. */
76
107
  function indexPath(runsRoot) {
77
108
  return path.join(runsRoot, "index.json");
@@ -407,6 +438,16 @@ function cleanupTerminalRuns(runsRoot, maxKeep = DEFAULT_MAX_KEPT_TERMINAL, maxA
407
438
  fs.unlinkSync(filePath + ".lock");
408
439
  }
409
440
  catch { /* ignore */ }
441
+ // Also remove the deterministic-replay trace (sibling .trace.jsonl +
442
+ // its append lock) so pruned runs don't accumulate trace files.
443
+ try {
444
+ fs.unlinkSync(filePath.replace(/\.json$/, ".trace.jsonl"));
445
+ }
446
+ catch { /* ignore */ }
447
+ try {
448
+ fs.unlinkSync(filePath.replace(/\.json$/, ".trace.jsonl.lock"));
449
+ }
450
+ catch { /* ignore */ }
410
451
  // Also remove the per-run Shared Context Tree directory (C6). Orphaned
411
452
  // ctx dirs would otherwise accumulate under runs/ctx/ over many runs.
412
453
  try {
@@ -461,39 +502,25 @@ function findProjectFlowsDirInternal(cwd, create = false) {
461
502
  }
462
503
  /**
463
504
  * Read a flow definition from a file on disk. Supports raw JSON or a Markdown
464
- * document with a fenced ```json block (reuses safeParse). Used by the
465
- * `defineFile` parameter so verify/compile/run can share one persisted draft
466
- * (e.g. in the OS temp dir) without saving it into the project's .pi/taskflows.
505
+ * document with a fenced ```json block. Used by the `defineFile` parameter so
506
+ * verify/compile/run can share one persisted draft (e.g. in the OS temp dir)
507
+ * without saving it into the project's .pi/taskflows.
467
508
  *
468
- * Returns the parsed definition (object/array/shorthand), or null if the file
469
- * can't be read or parsed. Callers surface an explicit error in that case.
509
+ * Returns a `LoadResult`: `{ ok: true, value }` on success, or
510
+ * `{ ok: false, reason: "missing" | "unparseable", ... }` on failure. Callers
511
+ * surface an explicit error via `describeLoadFailure`.
470
512
  */
471
513
  export function readDefineFile(filePath) {
472
- let raw;
473
- try {
474
- raw = fs.readFileSync(filePath, "utf-8");
475
- }
476
- catch {
477
- return null;
478
- }
479
- const parsed = safeParse(raw);
480
- return parsed ?? null;
514
+ return loadFile(filePath, (raw) => parseStrict(raw, { allowFence: true }));
481
515
  }
482
516
  function readFlowFile(filePath, scope) {
483
- try {
484
- const raw = fs.readFileSync(filePath, "utf-8");
485
- // Flow definition files are hand-authored and may contain JSONC-style
486
- // comments (// line and /* block */) for readability. parseJsonc strips
487
- // them before handing off to JSON.parse. LLM/subagent output is NOT
488
- // routed through here — see interpolate.ts#safeParse (kept strict).
489
- const def = parseJsonc(raw);
490
- if (!def?.name)
491
- return null;
492
- return { name: def.name, scope, filePath, def };
493
- }
494
- catch {
495
- return null;
517
+ const r = loadFile(filePath, (raw) => parseJsonc(raw));
518
+ if (!r.ok)
519
+ return r;
520
+ if (!r.value?.name) {
521
+ return { ok: false, reason: "unparseable", path: filePath, detail: "parsed OK but missing required field: name" };
496
522
  }
523
+ return { ok: true, value: { name: r.value.name, scope, filePath, def: r.value } };
497
524
  }
498
525
  /** List all saved flows (project overrides user on name collision). */
499
526
  /** Internal-but-exported for tests: walk-up `.pi` finder with home-dir stop. */
@@ -522,9 +549,16 @@ export function listFlows(cwd) {
522
549
  // A1: sidecar .meta.json must never be scanned as a candidate flow.
523
550
  if (name.endsWith(".meta.json"))
524
551
  continue;
525
- const flow = readFlowFile(path.join(dir, name), scope);
526
- if (flow)
527
- map.set(flow.name, flow); // project after user → overrides
552
+ const r = readFlowFile(path.join(dir, name), scope);
553
+ if (r.ok) {
554
+ map.set(r.value.name, r.value); // project after user → overrides
555
+ }
556
+ else if (r.reason === "unparseable") {
557
+ // A corrupt saved flow used to be silently dropped here, so `getFlow`
558
+ // would later report "not found" for a file that clearly exists.
559
+ // Surface it loudly instead — the detail carries line/column.
560
+ console.warn(`[taskflow] saved flow is corrupt and was excluded from the list: ${name} — ${r.detail}`);
561
+ }
528
562
  }
529
563
  }
530
564
  return Array.from(map.values()).sort((a, b) => a.name.localeCompare(b.name));
@@ -532,6 +566,33 @@ export function listFlows(cwd) {
532
566
  export function getFlow(cwd, name) {
533
567
  return listFlows(cwd).find((f) => f.name === name) ?? null;
534
568
  }
569
+ /**
570
+ * Resolve a saved flow by name with diagnosable failure. Unlike `getFlow`
571
+ * (which returns `null` for both "no such flow" and "file exists but corrupt",
572
+ * because corrupt files are excluded from `listFlows`), this re-reads the
573
+ * candidate file directly so callers can report *why* a name didn't resolve.
574
+ */
575
+ export function getFlowDiagnosed(cwd, name) {
576
+ const found = getFlow(cwd, name);
577
+ if (found)
578
+ return { ok: true, value: found };
579
+ // Not in the list — check whether a file exists for this name but is corrupt.
580
+ const candidates = [
581
+ { dir: userFlowsDir(), scope: "user" },
582
+ ];
583
+ const projDir = findProjectFlowsDir(cwd);
584
+ if (projDir)
585
+ candidates.push({ dir: projDir, scope: "project" });
586
+ for (const { dir, scope } of candidates) {
587
+ const filePath = path.join(dir, `${safeFlowDirName(name)}.json`);
588
+ if (fs.existsSync(filePath)) {
589
+ const r = readFlowFile(filePath, scope);
590
+ if (!r.ok)
591
+ return r; // unparseable (or a missing-in-race) — surface detail
592
+ }
593
+ }
594
+ return { ok: false, reason: "missing", path: name, detail: `no saved flow named '${name}'` };
595
+ }
535
596
  let _piCreationHinted = false;
536
597
  export function saveFlow(cwd, def, scope = "project") {
537
598
  const dir = scope === "user" ? userFlowsDir() : (findProjectFlowsDir(cwd, true) ?? path.join(cwd, ".pi", "taskflows"));
@@ -565,40 +626,39 @@ export function sidecarPathFor(cwd, flowName, scope = "project") {
565
626
  function sidecarPathIn(flowFilePath) {
566
627
  return flowFilePath.replace(/\.json$/, ".meta.json");
567
628
  }
568
- /** Read a flow's library sidecar. Returns null if missing/unparseable. */
629
+ /** Read a flow's library sidecar. Returns a `LoadResult`; missing/unparseable
630
+ * are discriminated by `reason`. */
569
631
  export function readMeta(cwd, flowName) {
570
632
  // Try project scope first, then user — mirrors getFlow's resolution.
571
633
  for (const scope of ["project", "user"]) {
572
634
  const p = sidecarPathFor(cwd, flowName, scope);
573
- try {
574
- if (!fs.existsSync(p))
575
- continue;
576
- const raw = fs.readFileSync(p, "utf-8");
577
- const parsed = safeParse(raw);
578
- if (parsed && typeof parsed === "object")
579
- return parsed;
580
- return null;
581
- }
582
- catch {
635
+ if (!fs.existsSync(p))
583
636
  continue;
584
- }
637
+ const r = loadFile(p, (raw) => {
638
+ const parsed = parseStrict(raw);
639
+ if (!parsed || typeof parsed !== "object") {
640
+ throw new Error("expected a JSON object at the top level");
641
+ }
642
+ return parsed;
643
+ });
644
+ return r;
585
645
  }
586
- return null;
646
+ return { ok: false, reason: "missing", path: flowName, detail: "no sidecar .meta.json found" };
587
647
  }
588
648
  /** Read a sidecar next to a specific flow file (avoids name→scope lookup when
589
649
  * we already have the SavedFlow from listFlows). */
590
650
  export function readMetaNextTo(flowFilePath) {
591
- try {
592
- const p = sidecarPathIn(flowFilePath);
593
- if (!fs.existsSync(p))
594
- return null;
595
- const raw = fs.readFileSync(p, "utf-8");
596
- const parsed = safeParse(raw);
597
- return parsed && typeof parsed === "object" ? parsed : null;
598
- }
599
- catch {
600
- return null;
601
- }
651
+ const p = sidecarPathIn(flowFilePath);
652
+ if (!fs.existsSync(p)) {
653
+ return { ok: false, reason: "missing", path: p, detail: "no sidecar .meta.json next to flow file" };
654
+ }
655
+ return loadFile(p, (raw) => {
656
+ const parsed = parseStrict(raw);
657
+ if (!parsed || typeof parsed !== "object") {
658
+ throw new Error("expected a JSON object at the top level");
659
+ }
660
+ return parsed;
661
+ });
602
662
  }
603
663
  /** Write a flow + its sidecar atomically (same withLock critical section — R2).
604
664
  * Embedding (Phase 2) is computed by the caller BEFORE this call and passed in
@@ -630,7 +690,8 @@ export function bumpReuseInSidecar(cwd, flowName) {
630
690
  const metaPath = sidecarPathIn(saved.filePath);
631
691
  const lockPath = saved.filePath + ".lock";
632
692
  return withLock(lockPath, () => {
633
- const existing = readMetaNextTo(saved.filePath);
693
+ const existingR = readMetaNextTo(saved.filePath);
694
+ const existing = existingR.ok ? existingR.value : undefined;
634
695
  const now = Date.now();
635
696
  const updated = existing
636
697
  ? { ...existing, reuseCount: (existing.reuseCount ?? 0) + 1, lastUsedAt: now }
@@ -714,18 +775,37 @@ export function saveRun(state, cleanup) {
714
775
  * All existing path-traversal, symlink, and realpath guards are preserved for
715
776
  * every path touched.
716
777
  */
717
- export function loadRun(cwd, runId) {
718
- if (!validateRunId(runId))
719
- return null;
778
+ /**
779
+ * Diagnosable variant of `loadRun`. Returns a `LoadResult` so callers can tell
780
+ * the user *why* a runId didn't resolve: a file exists for it but is corrupt
781
+ * (`reason: "unparseable"`, with the parse error in `detail`) versus genuinely
782
+ * absent (`reason: "missing"`). Used by user-facing paths (resume / show /
783
+ * provenance / why-stale / recompute). Internal polling keeps the plain
784
+ * `loadRun` (RunState | null) for API stability.
785
+ */
786
+ export function loadRunDiagnosed(cwd, runId) {
787
+ if (!validateRunId(runId)) {
788
+ return { ok: false, reason: "missing", path: runId, detail: "invalid runId format" };
789
+ }
720
790
  const root = runsDir(cwd);
791
+ // Remember the first corrupt candidate so we can report "corrupt" rather
792
+ // than "missing" when no candidate parses cleanly.
793
+ let corrupt = null;
794
+ const probe = (filePath) => {
795
+ const r = tryReadRunFile(root, filePath);
796
+ if (r.ok)
797
+ return r.value;
798
+ if (r.reason === "unparseable" && !corrupt)
799
+ corrupt = r;
800
+ return undefined;
801
+ };
721
802
  // ---- Try index first ----
722
803
  const indexEntries = readIndex(root);
723
804
  const entry = indexEntries.find((e) => e.runId === runId);
724
805
  if (entry) {
725
- const filePath = path.join(root, entry.relPath);
726
- const state = tryReadRunFile(root, filePath);
727
- if (state)
728
- return state;
806
+ const found = probe(path.join(root, entry.relPath));
807
+ if (found)
808
+ return { ok: true, value: found };
729
809
  // Index entry exists but file is gone or corrupt — fall through.
730
810
  }
731
811
  // ---- Try subdirectory scan ----
@@ -739,17 +819,21 @@ export function loadRun(cwd, runId) {
739
819
  dirs = [];
740
820
  }
741
821
  for (const dirName of dirs) {
742
- const filePath = path.join(root, dirName, `${runId}.json`);
743
- const state = tryReadRunFile(root, filePath);
744
- if (state)
745
- return state;
822
+ const found = probe(path.join(root, dirName, `${runId}.json`));
823
+ if (found)
824
+ return { ok: true, value: found };
746
825
  }
747
826
  // ---- Try legacy flat fallback ----
748
- const flatPath = path.join(root, `${runId}.json`);
749
- const state = tryReadRunFile(root, flatPath);
750
- if (state)
751
- return state;
752
- return null;
827
+ const found = probe(path.join(root, `${runId}.json`));
828
+ if (found)
829
+ return { ok: true, value: found };
830
+ if (corrupt)
831
+ return corrupt; // file exists for this runId but won't parse
832
+ return { ok: false, reason: "missing", path: runId, detail: `no run with id '${runId}'` };
833
+ }
834
+ export function loadRun(cwd, runId) {
835
+ const r = loadRunDiagnosed(cwd, runId);
836
+ return r.ok ? r.value : null;
753
837
  }
754
838
  /**
755
839
  * Safely read a run file, performing all path-traversal / symlink guards.
@@ -758,8 +842,11 @@ export function loadRun(cwd, runId) {
758
842
  function tryReadRunFile(runsRoot, filePath) {
759
843
  // Lexical traversal guard.
760
844
  const rel = path.relative(runsRoot, filePath);
761
- if (rel === ".." || rel.startsWith(`..${path.sep}`) || path.isAbsolute(rel))
762
- return null;
845
+ if (rel === ".." || rel.startsWith(`..${path.sep}`) || path.isAbsolute(rel)) {
846
+ // Path-traversal violation — report opaquely as "missing" (do not leak
847
+ // filesystem layout to the caller).
848
+ return { ok: false, reason: "missing", path: filePath, detail: "outside runs root" };
849
+ }
763
850
  // Resolve symlinks on both runsRoot and the file so the containment check
764
851
  // uses consistent physical paths (macOS /var → /private/var etc.).
765
852
  let realDir;
@@ -769,18 +856,13 @@ function tryReadRunFile(runsRoot, filePath) {
769
856
  realFilePath = fs.realpathSync(filePath);
770
857
  }
771
858
  catch {
772
- return null;
859
+ return { ok: false, reason: "missing", path: filePath, detail: "unresolvable path" };
773
860
  }
774
861
  const realRel = path.relative(realDir, realFilePath);
775
- if (realRel === ".." || realRel.startsWith(`..${path.sep}`) || path.isAbsolute(realRel))
776
- return null;
777
- try {
778
- const raw = fs.readFileSync(realFilePath, "utf-8");
779
- return JSON.parse(raw);
780
- }
781
- catch {
782
- return null;
862
+ if (realRel === ".." || realRel.startsWith(`..${path.sep}`) || path.isAbsolute(realRel)) {
863
+ return { ok: false, reason: "missing", path: filePath, detail: "outside runs root" };
783
864
  }
865
+ return loadFile(realFilePath, (raw) => JSON.parse(raw));
784
866
  }
785
867
  /**
786
868
  * List recent runs, sorted by updatedAt descending.
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Deterministic-replay trace — the foundation.
3
+ *
4
+ * Every run may emit an **append-only event trace** (`runs/<flow>/<runId>.trace.jsonl`)
5
+ * recording what each subagent call received and produced, plus the runtime's
6
+ * own decisions (gate verdicts, when-guard results, budget hits, cache hits,
7
+ * "this phase cannot be replayed" markers). A future `replay` action consumes
8
+ * this trace to re-evaluate a recorded run against changed decision knobs
9
+ * (thresholds, budget, model route) **without calling the model** — zero tokens.
10
+ *
11
+ * This module is deliberately **host-agnostic and side-effect-light**: it owns
12
+ * only the data shape, a JSONL reader/writer with partial-line tolerance, and a
13
+ * fail-open file-backed sink. The runtime emits events via `RuntimeDeps.trace`;
14
+ * if no sink is injected, nothing happens (the host-agnostic invariant is
15
+ * preserved — runs with no trace sink behave identically to today).
16
+ *
17
+ * **0.1.7 scope**: trace *emission* + read-only `trace` inspection only. The
18
+ * `replay` action (which consumes these events) lands in 0.2.0 — but the schema
19
+ * here is already complete enough that a 0.2.0 replay won't need a breaking
20
+ * migration. See `replay.ts` for the `ReplayDecision` type stub.
21
+ */
22
+ import type { UsageStats } from "./usage.ts";
23
+ import type { ScorerResult } from "./scorers.ts";
24
+ /**
25
+ * One line in the trace JSONL. `kind` discriminates the record; the optional
26
+ * fields are populated per-kind. A replay consumer groups by `phaseId` and
27
+ * walks events in file (append) order.
28
+ *
29
+ * Design notes (from the cross-adversarial plan review):
30
+ * - `attempt` / `mapIndex` / `variantIndex` discriminate which call was
31
+ * terminal for a retrying gate, a 30-item map, or a tournament (P0-1).
32
+ * - `input.preRead` records the resolved `context:` file content so a changed
33
+ * context file is detected as a changed input, not silently reused (P0-2).
34
+ * - `decision` captures the runtime's own verdicts (gate-score, when-guard,
35
+ * unreplayable) — the things a replay re-adjudicates against recorded
36
+ * outputs (P0-3..P0-5).
37
+ */
38
+ export interface TraceEvent {
39
+ ts: number;
40
+ runId: string;
41
+ phaseId: string;
42
+ kind: "phase-start" | "phase-end" | "subagent-call" | "decision";
43
+ input?: {
44
+ agent: string;
45
+ model?: string;
46
+ task: string;
47
+ /** Resolved `context:` file content prepended to the task. Without this a
48
+ * changed context file looks like an unchanged input → wrong reuse. */
49
+ preRead?: string;
50
+ /** Stable node path, e.g. "review", "review#item-3", "gate#judge". */
51
+ nodePath: string;
52
+ /** 0-based within runOne's retry loop; the completion's retry-count. */
53
+ attempt?: number;
54
+ /** Index in the items array for `map` phases (undefined otherwise). */
55
+ mapIndex?: number;
56
+ /** 1-based variant number for `tournament` phases (undefined otherwise). */
57
+ variantIndex?: number;
58
+ };
59
+ output?: {
60
+ text: string;
61
+ model?: string;
62
+ usage?: UsageStats;
63
+ stopReason?: string;
64
+ };
65
+ /** The runtime's own decision — what a replay re-adjudicates. */
66
+ decision?: TraceDecision;
67
+ status?: "done" | "failed" | "blocked" | "skipped" | "timedOut" | "pending" | "running";
68
+ error?: string;
69
+ }
70
+ /** Discriminated record of a runtime decision. Reused `as const` kinds keep
71
+ * replay's type-narrowing sound. */
72
+ export type TraceDecision = {
73
+ type: "gate-verdict";
74
+ value: "pass" | "block";
75
+ reason?: string;
76
+ } | {
77
+ type: "gate-score";
78
+ target: string;
79
+ /** Scorer config at emit time (pure scorers re-run from source; code-compiles is read from `results`). */
80
+ results: ScorerResult[];
81
+ combined: number;
82
+ threshold?: number;
83
+ verdict: "pass" | "block";
84
+ evalPassed?: boolean;
85
+ judgeOutput?: string;
86
+ } | {
87
+ type: "tournament-winner";
88
+ value: number;
89
+ reason?: string;
90
+ } | {
91
+ type: "budget-hit";
92
+ value: string;
93
+ reason?: string;
94
+ } | {
95
+ type: "cache-hit";
96
+ scope: "cross-run" | "run-only";
97
+ reason?: string;
98
+ } | {
99
+ type: "when-guard";
100
+ expression: string;
101
+ result: boolean;
102
+ } | {
103
+ type: "unreplayable";
104
+ reason: "context-sharing" | "inner-flow" | "context-files" | "unobservable-deps";
105
+ };
106
+ /**
107
+ * Sink the runtime calls with each event. **Must not throw** — the runtime
108
+ * wraps calls in try/catch (a disk-full or unwritable trace dir must never
109
+ * crash a run), but implementations should catch their own errors too.
110
+ *
111
+ * Implementations buffer per-phase and flush once at `phase-end` to avoid
112
+ * serialising concurrent subagent completions through a file lock.
113
+ */
114
+ export interface TraceSink {
115
+ /** Buffer an event (called from hot paths; must be cheap + lock-free). */
116
+ emit(event: TraceEvent): void;
117
+ /** Flush buffered events for a phase to durable storage. Called at phase-end. */
118
+ flush(phaseId: string): void;
119
+ }
120
+ /** A sink that drops everything. The default when no sink is injected. */
121
+ export declare const NoopTraceSink: TraceSink;
122
+ /**
123
+ * Append-only JSONL trace, buffered per phase. Events for a phase accumulate in
124
+ * memory (lock-free) and are written in one locked append at `flush(phaseId)`,
125
+ * so a 30-item `map` fan-out never serialises 30 completions through the file
126
+ * lock. Crash-safety is therefore at the phase boundary, not the sub-call —
127
+ * sufficient for replay, which only needs completed phases.
128
+ *
129
+ * Each flush appends one line per event (`JSON.stringify` + `\n`) to a temp
130
+ * file then renames atomically onto the trace path's *appended* content. To
131
+ * keep appends atomic without read-modify-write races, flush holds an
132
+ * exclusive lock file (`<runId>.trace.lock`) via `O_CREAT|O_EXCL` (the same
133
+ * discipline as `store.ts`'s `withLock`).
134
+ */
135
+ export declare class FileTraceSink implements TraceSink {
136
+ private readonly buffer;
137
+ private readonly tracePath;
138
+ private readonly lockPath;
139
+ private readonly dirOk;
140
+ constructor(tracePath: string);
141
+ emit(event: TraceEvent): void;
142
+ flush(phaseId: string): void;
143
+ }
144
+ /**
145
+ * Read + parse a trace JSONL. Skips blank lines and any trailing partial line
146
+ * (a crash mid-flush can leave a truncated final record). Returns events in
147
+ * file (append) order. Best-effort: a missing file → empty array.
148
+ */
149
+ export declare function readTrace(tracePath: string): TraceEvent[];
150
+ //# sourceMappingURL=trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"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"}