@tangle-network/agent-runtime 0.300.0 → 0.306.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/{activation-DqWmWTyB.js → activation-C5wesfzd.js} +3 -3
  2. package/dist/{activation-DqWmWTyB.js.map → activation-C5wesfzd.js.map} +1 -1
  3. package/dist/{activation-Bhp8dYV5.d.ts → activation-wZ-8vOjV.d.ts} +88 -13
  4. package/dist/agent.d.ts +2 -2
  5. package/dist/agent.js +2 -2
  6. package/dist/{bundle-C9v5TH_H.js → bundle-C8EO05u3.js} +2 -2
  7. package/dist/{bundle-C9v5TH_H.js.map → bundle-C8EO05u3.js.map} +1 -1
  8. package/dist/candidate-execution/index.d.ts +3 -26
  9. package/dist/candidate-execution/index.js +6 -6
  10. package/dist/{coordination-driver-DzTvehd6.js → coordination-driver-yj9HPXef.js} +322 -223
  11. package/dist/coordination-driver-yj9HPXef.js.map +1 -0
  12. package/dist/{delegate-vJ2g76r6.js → delegate-KtrL9HWq.js} +5 -5
  13. package/dist/delegate-KtrL9HWq.js.map +1 -0
  14. package/dist/durable.d.ts +3 -15
  15. package/dist/durable.js +158 -124
  16. package/dist/durable.js.map +1 -1
  17. package/dist/{graph-BDQh3qry.js → graph-DcdyHbgf.js} +5 -6
  18. package/dist/graph-DcdyHbgf.js.map +1 -0
  19. package/dist/{improvement-cycle-D6cPLi6k.js → improvement-cycle-DsN-TVXR.js} +1129 -10
  20. package/dist/improvement-cycle-DsN-TVXR.js.map +1 -0
  21. package/dist/{index-sC6sl88d.d.ts → index-DflDZq_I.d.ts} +188 -748
  22. package/dist/index.d.ts +378 -12
  23. package/dist/index.js +223 -320
  24. package/dist/index.js.map +1 -1
  25. package/dist/intelligence.d.ts +5 -5
  26. package/dist/intelligence.js +7 -8
  27. package/dist/intelligence.js.map +1 -1
  28. package/dist/kernel.d.ts +4 -4
  29. package/dist/kernel.js +9 -9
  30. package/dist/{loop-runner-bin-DZglq4Cf.d.ts → loop-runner-bin-DZfRUVWy.d.ts} +3 -3
  31. package/dist/{loop-runner-bin-DQIHnCL0.js → loop-runner-bin-rVrSX5l1.js} +3 -3
  32. package/dist/{loop-runner-bin-DQIHnCL0.js.map → loop-runner-bin-rVrSX5l1.js.map} +1 -1
  33. package/dist/loop-runner-bin.d.ts +1 -1
  34. package/dist/loop-runner-bin.js +1 -1
  35. package/dist/mcp/bin.js +3 -3
  36. package/dist/mcp/index.d.ts +6 -35
  37. package/dist/mcp/index.js +311 -364
  38. package/dist/mcp/index.js.map +1 -1
  39. package/dist/model-policy-DydyWTQg.js.map +1 -1
  40. package/dist/{openai-tools-DvR82zEo.d.ts → openai-tools-YO30D2s3.d.ts} +2 -2
  41. package/dist/{prepare-CGVNMb1o.js → prepare--nWcazPr.js} +7 -13
  42. package/dist/prepare--nWcazPr.js.map +1 -0
  43. package/dist/{profile-BetOB4_Q.js → profile-h04LDjV6.js} +2 -2
  44. package/dist/{profile-BetOB4_Q.js.map → profile-h04LDjV6.js.map} +1 -1
  45. package/dist/profiles.d.ts +2 -94
  46. package/dist/profiles.js +2 -451
  47. package/dist/profiles.js.map +1 -1
  48. package/dist/{protected-model-port-CAa0t1MT.d.ts → protected-model-port-C9QtEf3y.d.ts} +2 -2
  49. package/dist/{protected-model-port-CuVHkhti.js → protected-model-port-wwalbyXM.js} +4 -4
  50. package/dist/{protected-model-port-CuVHkhti.js.map → protected-model-port-wwalbyXM.js.map} +1 -1
  51. package/dist/{provision-supervisor-IXBlLHE0.js → provision-supervisor-WxFEFQeJ.js} +14 -24
  52. package/dist/provision-supervisor-WxFEFQeJ.js.map +1 -0
  53. package/dist/{runtime-DpEt5v42.js → runtime-B9eBIyws.js} +86 -496
  54. package/dist/runtime-B9eBIyws.js.map +1 -0
  55. package/dist/{search-method-DvU-fc-f.js → search-executor-2tWr38Qw.js} +239 -1132
  56. package/dist/search-executor-2tWr38Qw.js.map +1 -0
  57. package/dist/{server-CIE8s4AN.js → server-CpKcrOPj.js} +5 -12
  58. package/dist/server-CpKcrOPj.js.map +1 -0
  59. package/dist/{stream-agent-turn-I3bb0eqF.d.ts → stream-agent-turn-B1giFgOg.d.ts} +4 -2
  60. package/dist/{substrate-UjsxukjZ.d.ts → substrate-L_sC7jCD.d.ts} +2 -2
  61. package/dist/{supervise-C5mktzrh.js → supervise-DllOHM4M.js} +206 -80
  62. package/dist/supervise-DllOHM4M.js.map +1 -0
  63. package/dist/{supervisor-CQSu5XGl.js → supervisor-gCfG6K1-.js} +1130 -1667
  64. package/dist/supervisor-gCfG6K1-.js.map +1 -0
  65. package/dist/testing.d.ts +2 -2
  66. package/dist/testing.js +14 -14
  67. package/dist/tui/index.d.ts +1 -1
  68. package/dist/tui/index.js +1 -1
  69. package/dist/{types-C73caP0U.d.ts → types-DeuEkBhI.d.ts} +167 -261
  70. package/dist/{workspace-archive-pz8YJ1fr.d.ts → workspace-streams-CpSmt3zx.d.ts} +67 -3
  71. package/dist/{workspace-streams-D5gHJdTb.js → workspace-streams-ILw0eWZ0.js} +694 -2
  72. package/dist/workspace-streams-ILw0eWZ0.js.map +1 -0
  73. package/package.json +8 -8
  74. package/skills/generate-eval/SKILL.md +1 -1
  75. package/skills/profile-authoring/SKILL.md +5 -5
  76. package/skills/supervise/SKILL.md +2 -2
  77. package/dist/coordination-driver-DzTvehd6.js.map +0 -1
  78. package/dist/delegate-vJ2g76r6.js.map +0 -1
  79. package/dist/graph-BDQh3qry.js.map +0 -1
  80. package/dist/improvement-cycle-D6cPLi6k.js.map +0 -1
  81. package/dist/prepare-CGVNMb1o.js.map +0 -1
  82. package/dist/provision-supervisor-IXBlLHE0.js.map +0 -1
  83. package/dist/runtime-DpEt5v42.js.map +0 -1
  84. package/dist/search-method-DvU-fc-f.js.map +0 -1
  85. package/dist/server-CIE8s4AN.js.map +0 -1
  86. package/dist/supervise-C5mktzrh.js.map +0 -1
  87. package/dist/supervisor-CQSu5XGl.js.map +0 -1
  88. package/dist/workspace-streams-D5gHJdTb.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { l as RuntimeHooks } from "./runtime-hooks-Bj6wJHlH.js";
2
- import { c as AgentCandidateArtifactPort, t as AgentCandidateWorkspaceArchiveLimits } from "./workspace-archive-pz8YJ1fr.js";
2
+ import { g as AgentCandidateArtifactPort, l as AgentCandidateWorkspaceArchiveLimits, n as AgentCandidateWorkspaceTree } from "./workspace-streams-CpSmt3zx.js";
3
3
  import { AgentCandidateArtifactRef, AgentCandidateWorkspaceSnapshotEvidence, AgentExactRunControlRef, AgentInteractiveSession, AgentInteractiveSessionPromptAcknowledgement, AgentInteractiveSessionPromptCommand, AgentInteractiveSessionRef, AgentInteractiveSessionStart, AgentInteractiveSessionStatus, AgentNativeContextContinuationOptions, AgentNativeContextContinuationResult, AgentProfile, AgentSessionStatus, AgentTurnResult, ChildTaskEvent, ContextTransferRequest, HarnessType, InputPart, InteractionAcknowledgement, InteractionRequest, InteractionResponseCommand, NativeContextBoundaryProof, NativeContextContinuationRequest, NativeContextContinuationTurn, RequestedInteractions, RuntimeEventEnvelope, Sha256Digest, StreamEvent, WorkspaceCheckpointRef, WorkspaceCheckpointRequest } from "@tangle-network/agent-interface";
4
4
  import { AgentEvalError, AgentEvalError as AgentEvalError$1, AgentEvalErrorCode, ConfigError, ControlBudget, ControlDecision, ControlEvalResult, ControlRunResult, ControlStep, DataAcquisitionPlan, DefaultVerdict, DefaultVerdict as DefaultVerdict$1, JudgeError, KnowledgeReadinessReport, KnowledgeRequirement, NotFoundError, RunRecord, ToolSpan, TraceAnalysisStore, TraceStore, UserQuestion, ValidationError } from "@tangle-network/agent-eval";
5
5
  import { AgentRunOutcome } from "@tangle-network/sandbox/runtime";
@@ -991,21 +991,6 @@ interface LoopResult<Task, Output, Decision> {
991
991
  interface SandboxClient {
992
992
  create(options?: CreateSandboxOptions, requestOptions?: CreateRequestOptions): Promise<SandboxInstance>;
993
993
  describePlacement?(box: SandboxInstance): LoopSandboxPlacement;
994
- /**
995
- * Optional legacy CRIU capability probe. When present and it resolves
996
- * `{ available: true }`, the loop's `lineage.fork` seam may checkpoint and fork
997
- * a parent box when live `branch(count)` is unavailable. Current Sandbox boxes
998
- * expose live branching directly. The kernel reads this ONLY through the
999
- * capability probe — it never branches on backend kind.
1000
- * The raw `Sandbox` SDK class satisfies it; the loop's test fakes omit it
1001
- * (⇒ `canFork = false`).
1002
- * @experimental
1003
- */
1004
- criuStatus?(): Promise<{
1005
- available: boolean;
1006
- criuVersion?: string;
1007
- reason?: string;
1008
- }>;
1009
994
  }
1010
995
  /**
1011
996
  * Opt-in box-lineage controls for `runAgentRounds`. Default OFF — with both flags
@@ -1791,20 +1776,24 @@ interface RecoverRetainedRunOptions {
1791
1776
  readonly now?: () => number;
1792
1777
  }
1793
1778
  /**
1794
- * Outcome of one recovery attempt from pre-dispatch admission coordinates.
1779
+ * Outcome of one recovery attempt.
1795
1780
  *
1796
- * `not_found`: the provider no longer holds the environment; nothing remains
1797
- * to destroy. `recovered`: the provider self-identified the session with a
1798
- * strict exact reference matching the recorded coordinates. `unverifiable`:
1799
- * the environment exists but the provider cannot self-identify the session;
1800
- * never destroy on this outcome — keep the environment, retry
1801
- * `reconnectRetainedRun` with a dispatched admission record, or inspect it
1802
- * with provider-native tools.
1781
+ * `recovered` with `via: 'reattached'`: the provider self-identified the
1782
+ * original session with a strict exact reference matching the recorded
1783
+ * environment coordinates. `recovered` with `via: 'resumed'`: a pre-create
1784
+ * intent was replayed through the exact, idempotent create and dispatch; the
1785
+ * handle controls the admitted run, whether this call or the crashed one
1786
+ * dispatched it. `not_found`: the provider no longer holds the environment;
1787
+ * nothing remains to destroy. `unverifiable`: the environment exists but the
1788
+ * provider cannot self-identify the session. Never destroy on this outcome:
1789
+ * keep the environment, retry `reconnectRetainedRun` with a dispatched
1790
+ * admission record, or inspect it with provider-native tools.
1803
1791
  *
1804
1792
  * @stable
1805
1793
  */
1806
1794
  type RecoverRetainedRunResult = {
1807
1795
  readonly outcome: 'recovered';
1796
+ readonly via: 'reattached' | 'resumed';
1808
1797
  readonly handle: RetainedRunHandle;
1809
1798
  } | {
1810
1799
  readonly outcome: 'not_found';
@@ -2273,11 +2262,6 @@ interface ContinuationNoteInput {
2273
2262
  /** Whether the check's score comes from cases the director cannot see. */
2274
2263
  readonly sealed?: boolean;
2275
2264
  }
2276
- /**
2277
- * Write one continuation note, sections 1 to 8 of docs/38. Section 9, the run's state, is
2278
- * `composeReentryTask`, which wraps this text. Pure: the same input writes the same note.
2279
- */
2280
- declare function composeContinuationNote(input: ContinuationNoteInput): string;
2281
2265
  /** One continuation as the settle record carries it (`DriverContinuationRecord.continuations`). */
2282
2266
  interface ContinuationEntry {
2283
2267
  /** 1-based. */
@@ -2314,9 +2298,6 @@ interface VerdictSummary {
2314
2298
  readonly failed?: number;
2315
2299
  readonly total?: number;
2316
2300
  }
2317
- /** A run directory's continuation files: the root's at `<runDir>/continuations/<n>/`, a nested
2318
- * manager's at `<runDir>/continuations/managers/<owner>/<n>/`. */
2319
- declare const CONTINUATIONS_DIR = "continuations";
2320
2301
  /** The readout a continuation is composed from. */
2321
2302
  interface ContinuationContext {
2322
2303
  /** The attempt that just completed, 1-based. */
@@ -2403,6 +2384,9 @@ interface DriverAttemptRecord {
2403
2384
  readonly contract?: DriverContractState;
2404
2385
  /** True when this COMPLETED attempt's unmet contract sent the loop back with a continuation. */
2405
2386
  readonly reprompted?: boolean;
2387
+ /** For a completed attempt that left work open: how long the manager then waited, with no
2388
+ * model turn, before the wake that started the next attempt. */
2389
+ readonly waitedMs?: number;
2406
2390
  /** Why an unmet contract did NOT re-enter the session. Absent when the contract was met, when
2407
2391
  * the manager has no continuation policy, or when the continuation was sent. */
2408
2392
  readonly repromptRefusedBy?: DriverRepromptRefusal;
@@ -2453,6 +2437,14 @@ type DriverReentry = {
2453
2437
  readonly failure: string;
2454
2438
  /** 1-based: which failure retry this is. */
2455
2439
  readonly retry: number;
2440
+ } | {
2441
+ /** The previous turn ended with work open, and Runtime woke the manager when something
2442
+ * happened. Not a continuation: the manager chose to wait, and `input` is what it waited for. */
2443
+ readonly reason: 'wake';
2444
+ /** The wake input: every event since the last turn, or the heartbeat or deadline notice. */
2445
+ readonly input: string;
2446
+ /** 1-based: which wake this is. */
2447
+ readonly wake: number;
2456
2448
  } | {
2457
2449
  /** The upstream refused the previous drive for capacity, or the check could not run, and the
2458
2450
  * loop paused before this one. Re-entered like a failure, with the original task and the
@@ -2523,6 +2515,10 @@ interface DriverLoopRecord {
2523
2515
  readonly unavailableMs: number;
2524
2516
  /** Re-entered drives, in a row at the end, that completed without a delivery. */
2525
2517
  readonly barrenReentries: number;
2518
+ /** Turns started by a wake: the manager ended its turn with work open and Runtime resumed it. */
2519
+ readonly wakes: number;
2520
+ /** Time the manager waited between turns with no model turn, summed over its wakes. */
2521
+ readonly waitedMs: number;
2526
2522
  /** Why the loop ended: its last record's stop, or `unrecorded` when it ended without one (an
2527
2523
  * admission refusal before the first attempt, or a throw from outside the loop). */
2528
2524
  readonly ended: DriverAttemptStop | 'unrecorded';
@@ -2587,6 +2583,23 @@ interface ProviderWorkspaceRetentionPort {
2587
2583
  * Its captures use their own queue and bound, so they never wait behind workspace captures.
2588
2584
  */
2589
2585
  captureNative?(context: ProviderWorkspaceRetentionContext): Promise<ProviderWorkspaceCaptureResult>;
2586
+ /**
2587
+ * Store one workspace checkpoint's files in the run's content-addressed store, before Runtime
2588
+ * deletes the checkpoint. Return what `captureAgentCandidateWorkspaceTreeToArtifacts` returns
2589
+ * for the files the environment holds, written to {@link artifacts}.
2590
+ *
2591
+ * A checkpoint is a provider snapshot that Runtime takes while a director works and deletes
2592
+ * once two newer ones exist. Its files are read from a fork Runtime creates from the snapshot
2593
+ * for this call alone: the fork holds exactly the checkpoint's workspace and runs no harness,
2594
+ * so the capture has no session to copy. Runtime verifies the tree against the store and the
2595
+ * checkpoint's marker file, journals its digest, and destroys the fork. Without this method, or
2596
+ * when a capture fails, Runtime keeps the checkpoint: on Discovery Lab run
2597
+ * terraform-dc-tokens-20261006d, 76 of the first 101 checkpoint deletions removed the only copy
2598
+ * of a director's workspace at that moment.
2599
+ *
2600
+ * Captures run on their own queue of {@link maxConcurrentCaptures} slots, under {@link timeoutMs}.
2601
+ */
2602
+ captureCheckpoint?(context: ProviderCheckpointCaptureContext): Promise<AgentCandidateWorkspaceTree>;
2590
2603
  /** Milliseconds between native captures of a running turn. Default 120,000. */
2591
2604
  readonly nativeIntervalMs?: number;
2592
2605
  /** Bound on one native capture, including its queue wait. Default 120,000. */
@@ -2734,6 +2747,20 @@ interface ProviderWorkspaceRetentionContext {
2734
2747
  /** A fresh signal bounded by {@link ProviderWorkspaceRetentionPort.timeoutMs}. */
2735
2748
  readonly signal: AbortSignal;
2736
2749
  }
2750
+ /** What {@link ProviderWorkspaceRetentionPort.captureCheckpoint} receives. */
2751
+ interface ProviderCheckpointCaptureContext {
2752
+ /** A fork of the checkpoint, created for this capture alone. It holds the checkpoint's
2753
+ * workspace and runs no harness. */
2754
+ readonly environment: AgentEnvironment;
2755
+ /** The checkpoint the fork was created from. */
2756
+ readonly checkpoint: WorkspaceCheckpointRef;
2757
+ /** Runtime artifact identity of this capture: `<node>:checkpoint:<checkpoint id>`. */
2758
+ readonly executionId: string;
2759
+ /** The owner's profile; its harness names what the fork's source ran. */
2760
+ readonly profile: AgentProfile;
2761
+ /** A fresh signal bounded by {@link ProviderWorkspaceRetentionPort.timeoutMs}. */
2762
+ readonly signal: AbortSignal;
2763
+ }
2737
2764
  /** Durable join from one provider box to the verified bytes retained before cleanup. */
2738
2765
  interface ProviderWorkspaceCaptureReceipt {
2739
2766
  readonly executionId: string;
@@ -3280,149 +3307,6 @@ declare function sandboxSessionTraceSource(box: SessionTraceBox, sessionId: stri
3280
3307
  now?: () => number;
3281
3308
  }): TraceSource;
3282
3309
  //#endregion
3283
- //#region src/runtime/supervise/wait.d.ts
3284
- /**
3285
- *
3286
- * WAIT-STATES — a supervision-tree node that waits on wall-clock time or an external condition
3287
- * without holding a worker, an executor, a sandbox, or a single LLM turn.
3288
- *
3289
- * A long-horizon run spends most of its wall-clock NOT computing: waiting for CI to finish,
3290
- * for a nightly job to land, for a human to reply, for a rate-limit window to reopen. Before
3291
- * this, the only way to express that was to keep something alive and re-ask — which spends
3292
- * driver tokens per re-ask and pins a process to the wait.
3293
- *
3294
- * Two node kinds, both first-class:
3295
- * - `timer` — wake at an ABSOLUTE wall-clock instant (`untilMs`).
3296
- * - `poll` — re-run a named predicate every `intervalMs` until it returns true, or until an
3297
- * absolute `timeoutAtMs` passes (CI status, file existence, an HTTP probe, an
3298
- * inbox message).
3299
- *
3300
- * ── How this differs from `await_event`'s 45s poll fence (`DEFAULT_AWAIT_EVENT_TIMEOUT_MS`) ──
3301
- *
3302
- * They look similar and are not the same mechanism. `await_event` is an IN-RUN RENDEZVOUS: the
3303
- * driver blocks on the coordination bus for the next event from a live worker, and the 45s fence
3304
- * exists only so a remote MCP request does not exceed the client's timeout — the caller re-polls.
3305
- * Every re-poll is another driver inference turn (real tokens) against a process that must stay
3306
- * up, and nothing about that wait is recorded: kill the process and the wait is simply gone.
3307
- *
3308
- * A wait-state is a NODE, not a call. It has a node id in the tree, a journal record carrying its
3309
- * ABSOLUTE deadline, and it settles through the same `Scope.next()` cursor as any worker. Nobody
3310
- * is blocked on it — the driver can stop reasoning entirely, and the process can die. Cost while
3311
- * waiting: zero LLM calls, zero executor, zero sandbox, zero conserved budget (a wait reserves
3312
- * nothing from the pool). The only in-process residue is one timer entry.
3313
- *
3314
- * ── Why probes are NAMED, not passed as closures ────────────────────────────────────────────
3315
- *
3316
- * A wait must survive a process restart with its original deadline intact, and a closure cannot
3317
- * be journaled. So a `poll` names its predicate (`probe: 'ci-green'`) and the run resolves it
3318
- * through a `WaitProbeRegistry`. A brand-new process re-resolves the SAME name against its own
3319
- * registry and re-arms the wait — which is what makes "kill the box, the wait keeps waiting"
3320
- * true rather than aspirational.
3321
- *
3322
- * Absolute instants for the same reason: `untilMs` / `timeoutAtMs` are epoch ms, not durations,
3323
- * so a resumed wait counts down from the original arm, not from the restart. `timerAt`/`pollFor`
3324
- * build them from a duration when that is what the caller has.
3325
- *
3326
- * @experimental
3327
- */
3328
- /** What a wait node is waiting for. Both variants carry ABSOLUTE epoch-ms instants so a wait
3329
- * re-armed by a later process keeps the deadline the first process set. */
3330
- type WaitSpec = {
3331
- readonly kind: 'timer';
3332
- /** Absolute epoch ms to wake at. A past instant fires immediately. */
3333
- readonly untilMs: number;
3334
- } | {
3335
- /** A graph-engine suspension: the host holds the content-addressed token and wakes it via
3336
- * `resume`/`expire`; the engine owns the transition table (agent-runtime#976). */
3337
- readonly kind: 'token';
3338
- readonly token: string;
3339
- /** Absent ⇒ `onExpire: 'wait'` (never expires). */
3340
- readonly expiresAtMs?: number;
3341
- readonly onExpire: 'wait' | 'fail' | 'default';
3342
- /** `onExpire: 'default'`: the pre-admitted payload the expiry resolves with. */
3343
- readonly defaultRef?: string;
3344
- } | {
3345
- readonly kind: 'poll';
3346
- /** Name of the predicate in the run's `WaitProbeRegistry`. Named (not a closure) so a
3347
- * resumed process can re-resolve it — see the module header. */
3348
- readonly probe: string;
3349
- /** How often to re-run the predicate, in ms. Must be > 0. */
3350
- readonly intervalMs: number;
3351
- /** Absolute epoch ms after which an unfired poll settles `timeout`. Omit = no timeout
3352
- * (then the run's own deadline is the only bound, and a run WITH a deadline refuses an
3353
- * unbounded poll — see `assertWaitWithinDeadline`). */
3354
- readonly timeoutAtMs?: number;
3355
- /** Opaque JSON handed to the probe on every check. Journaled with the spec, so a resumed
3356
- * probe gets the same arguments. */
3357
- readonly args?: Record<string, unknown>;
3358
- };
3359
- /** Build a `timer` spec from a DURATION. The instant is resolved once, at arm time — a resumed
3360
- * wait re-uses the journaled instant, never a fresh `now + ms`. */
3361
- declare function timerAt(ms: number, now: number): WaitSpec;
3362
- /** Build a bounded `poll` spec from a duration. */
3363
- declare function pollFor(probe: string, opts: {
3364
- readonly intervalMs: number;
3365
- readonly timeoutMs?: number;
3366
- readonly args?: Record<string, unknown>;
3367
- }, now: number): WaitSpec;
3368
- /**
3369
- * A named predicate a `poll` node re-checks. Returns true when the condition it watches has
3370
- * flipped. A throw is treated as "not yet" (an unreachable CI endpoint is not a settled answer),
3371
- * and is counted in the outcome's `probeErrors` so a probe that never works is visible rather
3372
- * than silently polling forever.
3373
- */
3374
- type WaitProbe = (args: Record<string, unknown> | undefined, signal: AbortSignal) => boolean | Promise<boolean>;
3375
- /** Resolves a `poll` spec's `probe` name to its predicate. Threaded through `SupervisorOpts` so
3376
- * the SAME registry a fresh run used is what a resumed run re-resolves against. */
3377
- interface WaitProbeRegistry {
3378
- resolve(name: string): WaitProbe | undefined;
3379
- }
3380
- /** Registry over a plain name→predicate record. */
3381
- declare function createWaitProbes(entries: Record<string, WaitProbe>): WaitProbeRegistry;
3382
- /** The `out` a settled wait node delivers through `Scope.next()`. `settled` is the outcome the
3383
- * caller branches on: `'fired'` = the timer reached its instant or the predicate flipped;
3384
- * `'timeout'` = a bounded poll gave up. A timeout is a first-class ANSWER, not a failure — a
3385
- * wait only settles `down` when it is cancelled or aborted. */
3386
- interface WaitOutcome {
3387
- /** Tag for `isWaitOutcome` — a wait outcome arrives on the same cursor as worker outputs. */
3388
- readonly waitOutcome: true;
3389
- readonly kind: WaitSpec['kind'];
3390
- readonly settled: 'fired' | 'timeout';
3391
- readonly label: string;
3392
- /** The absolute instant this wait was armed for (timer `untilMs` / poll `timeoutAtMs`); absent
3393
- * for an unbounded poll. */
3394
- readonly untilMs?: number;
3395
- /** Epoch ms the wait was FIRST armed — preserved across a resume, so `wokenAt - armedAt` is
3396
- * the true end-to-end wait even when it spanned several processes. */
3397
- readonly armedAt: number;
3398
- readonly wokenAt: number;
3399
- /** Predicate checks performed in the process that settled it (a resume restarts this count). */
3400
- readonly polls: number;
3401
- /** Probe checks that threw (counted, not fatal). */
3402
- readonly probeErrors: number;
3403
- /** True when a later process re-armed this wait from the journal instead of creating it. */
3404
- readonly resumed: boolean;
3405
- }
3406
- /** Narrow a settlement's `out` to a wait outcome — a wait settles on the SAME cursor as workers,
3407
- * so a driver that mixes them tags them apart with this. */
3408
- declare function isWaitOutcome(value: unknown): value is WaitOutcome;
3409
- /** A wait recorded in the journal that never woke — what a resumed run re-arms. */
3410
- interface PendingWait {
3411
- readonly id: string;
3412
- readonly label: string;
3413
- readonly spec: WaitSpec;
3414
- /** The ORIGINAL arm instant. A re-armed wait keeps it, so its deadline never slides. */
3415
- readonly armedAt: number;
3416
- /** The wait ordinal in its parent scope, so a resumed scope continues past it. */
3417
- readonly ordinal: number;
3418
- }
3419
- /** Reject reasons for `Scope.wait`, mirroring `Scope.spawn`'s fail-closed admission shape. */
3420
- type WaitRejection = 'invalid-spec' | 'unknown-probe' | 'deadline-exceeded';
3421
- /** The absolute instant a spec is bounded by, or `undefined` for an unbounded wait. */
3422
- declare function waitUntil(spec: WaitSpec): number | undefined;
3423
- /** Structural validation, independent of the run. Returns null when the spec is usable. */
3424
- declare function validateWaitSpec(spec: WaitSpec): string | null;
3425
- //#endregion
3426
3310
  //#region src/sanitize.d.ts
3427
3311
  /** @stable */
3428
3312
  interface RuntimeTelemetryOptions {
@@ -3823,12 +3707,6 @@ declare function workerTraceEnv(ctx: WorkerTraceSeamCarrier): Record<string, str
3823
3707
  declare function workerTraceHeaders(ctx: WorkerTraceSeamCarrier): Record<string, string>;
3824
3708
  //#endregion
3825
3709
  //#region src/runtime/supervise/types.d.ts
3826
- /** Options for `Scope.wait`. `label` is the wait's identity within its parent scope — it is what
3827
- * a resumed run matches to re-adopt a journaled, still-unfired wait, so it must be stable across
3828
- * processes (a label derived from wall-clock would resume as a NEW wait). */
3829
- interface WaitOpts {
3830
- readonly label: string;
3831
- }
3832
3710
  /**
3833
3711
  * One self-similar atom. A leaf is an `Agent` that never calls `scope.spawn`; a driver
3834
3712
  * is an `Agent` whose `act` spawns children and reacts to them via `scope.next()`. An
@@ -3859,6 +3737,13 @@ interface Agent<Task, Out> {
3859
3737
  */
3860
3738
  harnessTranscript?(): HarnessTranscriptCapture | undefined; /** Forwarded the same way: resolves once {@link harnessTranscript} is final (see `Executor`). */
3861
3739
  harnessTranscriptSettled?(): Promise<void>;
3740
+ /**
3741
+ * True once this agent's result is committed: its completion check accepted a submission and
3742
+ * the coordination record holds it. `act` then resolves with that result once the turn that
3743
+ * submitted it has ended, so an abort that arrives after acceptance waits for it, bounded,
3744
+ * instead of discarding it (see `Executor.resultAccepted`).
3745
+ */
3746
+ resultAccepted?(): boolean;
3862
3747
  }
3863
3748
  /**
3864
3749
  * The leaf runtime — ONE open interface, not a closed union. `execute` returns a
@@ -4033,9 +3918,18 @@ interface Executor<Out> {
4033
3918
  * Never rejects. An executor whose transcript is final when `execute` ends omits it.
4034
3919
  */
4035
3920
  harnessTranscriptSettled?(): Promise<void>;
3921
+ /**
3922
+ * True once this execution's result is committed and `execute` will resolve with it: a
3923
+ * manager whose completion check accepted its submission. The scope does not settle such a node
3924
+ * `down` when its deadline or an abort arrives while the accepted turn is still ending; it waits
3925
+ * for `execute` to resolve, and the executor bounds that wait itself. Measured on Discovery Lab
3926
+ * run terraform-economics-20261005f: 5 of 20 nodes with accepted results were settled `down` by
3927
+ * deadlines that fell while their turns were still ending.
3928
+ */
3929
+ resultAccepted?(): boolean;
4036
3930
  }
4037
3931
  /** Why Runtime cannot provide structured tool-call evidence for one settled execution. */
4038
- type WorkerTraceUnavailableReason = 'execution-did-not-start' | 'executor-did-not-expose-trace-source' | 'trace-source-unavailable' | 'no-tool-spans-captured' | 'invalid-tool-spans' | 'trace-collection-failed' | 'trace-persistence-failed' | 'legacy-settlement-without-trace-evidence' | 'not-an-executor';
3932
+ type WorkerTraceUnavailableReason = 'execution-did-not-start' | 'executor-did-not-expose-trace-source' | 'trace-source-unavailable' | 'no-tool-spans-captured' | 'invalid-tool-spans' | 'trace-collection-failed' | 'trace-persistence-failed' | 'legacy-settlement-without-trace-evidence';
4039
3933
  /** Durable proof of a worker's structured tool trace, or the exact reason it is unavailable. */
4040
3934
  type WorkerTraceEvidence = {
4041
3935
  readonly status: 'available';
@@ -4050,7 +3944,7 @@ type WorkerTraceEvidence = {
4050
3944
  type WorkerInteractiveUnavailableReason =
4051
3945
  /** No child of this scope carries that node id. */
4052
3946
  'unknown-node' |
4053
- /** The child settled, was cancelled, or is a wait-state node: there is no process to attach to. */
3947
+ /** The child settled or was cancelled: there is no process to attach to. */
4054
3948
  'not-live' |
4055
3949
  /** The worker runs headless. Its executor exposes no interactive session, so there is no
4056
3950
  * terminal — a headless execution is never converted into an attachment. */
@@ -4612,11 +4506,8 @@ interface Spend {
4612
4506
  /** `'queued'` is an admitted child that holds its budget slice and waits for a worker slot
4613
4507
  * (`workerSlots`); it runs nothing until the allocator grants one. `'acquiring'` is first-class
4614
4508
  * (M1): a node spends real time + reaps an orphan box during sandbox acquire BEFORE it is
4615
- * `running`, so abort must be defined over it.
4616
- * `'waiting'` is first-class for the opposite reason: a wait-state node holds NO executor, NO
4617
- * box, and no conserved budget — it is neither in flight nor settled, so neither `inFlight` nor
4618
- * a terminal status describes it (see `Scope.wait`). */
4619
- type NodeStatus = 'pending' | 'queued' | 'acquiring' | 'running' | 'waiting' | 'done' | 'failed' | 'cancelled';
4509
+ * `running`, so abort must be defined over it. */
4510
+ type NodeStatus = 'pending' | 'queued' | 'acquiring' | 'running' | 'done' | 'failed' | 'cancelled';
4620
4511
  /** Deterministic node id — `${parent}:s${seq}` from the cursor order, never wall-clock. */
4621
4512
  type NodeId = string;
4622
4513
  interface SpawnOpts {
@@ -4857,32 +4748,6 @@ interface Scope<Out> {
4857
4748
  * is a direct call; the sandbox/Agent-Bus transports surface the SAME verb as an MCP tool.
4858
4749
  */
4859
4750
  send(nodeId: NodeId, msg: unknown): boolean;
4860
- /**
4861
- * Arm a WAIT-STATE node: a first-class tree node that waits on wall-clock time (`timer`) or on
4862
- * a named external predicate (`poll`) and settles through THIS scope's `next()` cursor like any
4863
- * other child — but holds no executor, no sandbox, and no conserved budget. Waiting costs zero
4864
- * tokens and zero dollars by construction.
4865
- *
4866
- * It is journaled (`waiting` → `woken`) with its ABSOLUTE deadline, so a run that dies mid-wait
4867
- * resumes still waiting: the supervisor surfaces the un-woken waits on `Scope.resume.waits`, and
4868
- * re-arming the same `label` adopts the recorded node id and original instant instead of
4869
- * restarting the countdown.
4870
- *
4871
- * Fail-closed admission, mirroring `spawn`: `invalid-spec`, `unknown-probe` (a `poll` naming a
4872
- * predicate this run's registry cannot resolve), or `deadline-exceeded` (the wait would outlive
4873
- * the pool's hard wall-clock ceiling — a wait never extends a budget guard).
4874
- *
4875
- * NOT `await_event`: that is an in-run rendezvous on the coordination bus whose 45s fence makes
4876
- * the caller re-poll — each re-poll a driver inference turn against a process that must stay up,
4877
- * and nothing about it survives a restart. See `supervise/wait.ts`.
4878
- */
4879
- wait(spec: WaitSpec, opts: WaitOpts): {
4880
- ok: true;
4881
- handle: Handle<WaitOutcome>;
4882
- } | {
4883
- ok: false;
4884
- reason: WaitRejection;
4885
- };
4886
4751
  /**
4887
4752
  * The LIVE read-model of one child, valid WHILE it runs: last-activity timestamp, idle time,
4888
4753
  * a derived `stalled` flag, tokens/turns spent so far, whether a steer can even reach it
@@ -4994,13 +4859,6 @@ interface UnconfirmedTeardown {
4994
4859
  interface ResumedWork<Out> {
4995
4860
  readonly settled: ReadonlyArray<Settled<Out>>;
4996
4861
  readonly view: TreeView;
4997
- /**
4998
- * Wait-state nodes the journal shows as ARMED but never woken — the run died mid-wait. Each
4999
- * carries the ORIGINAL arm instant and absolute deadline, so re-arming the same `label` through
5000
- * `Scope.wait` resumes the countdown instead of restarting it. Empty on a fresh run and on a
5001
- * resumed run that was not waiting.
5002
- */
5003
- readonly waits: ReadonlyArray<PendingWait>;
5004
4862
  /**
5005
4863
  * Keyed assignments from the prior journal: `SpawnOpts.key` → what the journal proves about it.
5006
4864
  * `completed`/`down` carry the rehydrated settlement; `in-doubt` means the spawn was journaled
@@ -5058,7 +4916,7 @@ interface NodeSnapshot {
5058
4916
  readonly spent: Spend;
5059
4917
  /**
5060
4918
  * The node's executor has FINISHED and its settlement is queued for the manager to drain with
5061
- * `await_event`/`next()`, but `status` still reads as it did while running because the settle
4919
+ * its next wake/`next()`, but `status` still reads as it did while running because the settle
5062
4920
  * transition happens at drain time. Present only in that window; absent once drained or while
5063
4921
  * the executor is still live. Carries the terminal kind so a manager polling `observe_agent`
5064
4922
  * can tell "still working" from "finished, waiting for you to read it".
@@ -5093,10 +4951,6 @@ interface TreeView {
5093
4951
  readonly nodes: ReadonlyArray<NodeSnapshot>;
5094
4952
  /** Count of nodes in `queued`, `acquiring`, or `running` — the "what's in flow?" answer. */
5095
4953
  readonly inFlight: number;
5096
- /** Count of nodes in `waiting` — armed wait-states. Deliberately NOT folded into `inFlight`:
5097
- * a wait burns no executor and no budget, so counting it as flow would misreport both idle
5098
- * capacity and how much work is actually running. */
5099
- readonly waiting: number;
5100
4954
  }
5101
4955
  /** Journaled spawn-tree events (B1/B2). `seq` is the cursor order; `at` is an ISO
5102
4956
  * timestamp for human inspection only (NOT a replay input). */
@@ -5300,33 +5154,6 @@ type SpawnEvent = {
5300
5154
  instance: string;
5301
5155
  seq: number;
5302
5156
  at: string;
5303
- } | {
5304
- /** A wait-state node was ARMED. Lives in the SPAWN-ORDINAL namespace (`seq` is the wait
5305
- * ordinal within its parent scope), exactly like `spawned` — it creates a node, it does not
5306
- * settle one. It carries the whole `spec` and the original `armedAt` so a brand-new process
5307
- * re-arms the identical wait with the identical ABSOLUTE deadline. */
5308
- kind: 'waiting';
5309
- id: NodeId;
5310
- parent?: NodeId;
5311
- label: string;
5312
- spec: WaitSpec;
5313
- armedAt: number;
5314
- seq: number;
5315
- at: string;
5316
- } | {
5317
- /** A wait-state node SETTLED — the cursor-namespace twin of `settled`, kept distinct so a
5318
- * reader can tell zero-cost waiting apart from paid work without inspecting payloads. A
5319
- * wait carries no `spent` (it is free by construction, not by measurement); `outRef`
5320
- * rehydrates its `WaitOutcome`, absent when the wait was cancelled. */
5321
- kind: 'woken';
5322
- id: NodeId;
5323
- /** `expired`: a graph suspension whose `onExpire: 'fail'` deadline passed — distinct from
5324
- * `timeout` (a poll wait's own deadline), so a consumer can tell "the human never
5325
- * answered" from "the probe never fired". */
5326
- by: 'fired' | 'timeout' | 'cancelled' | 'expired';
5327
- outRef?: string;
5328
- seq: number;
5329
- at: string;
5330
5157
  } | {
5331
5158
  /** A driver's OWN inference spend, journaled separately from spawned-child work — the journal
5332
5159
  * TWIN of `BudgetPool.observe`, exactly as `settled` is the twin of `reconcile`. So every
@@ -5511,15 +5338,77 @@ type SpawnEvent = {
5511
5338
  marker?: WorkspaceCheckpointMarker;
5512
5339
  seq: number;
5513
5340
  at: string;
5341
+ } | {
5342
+ /** Runtime is about to ask the provider for a fork of a checkpoint, to read its files. The
5343
+ * record comes first, so a fork that a crash left alive is found by this key and destroyed
5344
+ * at the owner's release. Informational, like `workspace-checkpoint`. */
5345
+ kind: 'workspace-checkpoint-fork-requested';
5346
+ id: NodeId;
5347
+ provider: string;
5348
+ /** The environment the checkpoint was taken from. */
5349
+ environmentId: string;
5350
+ checkpointId: string;
5351
+ idempotencyKey: string;
5352
+ requestDigest: Sha256Digest;
5353
+ seq: number;
5354
+ at: string;
5355
+ } | {
5356
+ /** Whether the provider confirmed destroying a checkpoint capture's fork. A fork without a
5357
+ * `destroyed` record is asked for again at the owner's release. Informational, like
5358
+ * `workspace-checkpoint`. */
5359
+ kind: 'workspace-checkpoint-fork-teardown';
5360
+ id: NodeId;
5361
+ provider: string;
5362
+ /** The environment the checkpoint was taken from. */
5363
+ environmentId: string;
5364
+ checkpointId: string;
5365
+ fork: {
5366
+ idempotencyKey: string;
5367
+ environmentId: string;
5368
+ };
5369
+ destroyed: boolean;
5370
+ seq: number;
5371
+ at: string;
5372
+ } | {
5373
+ /** A checkpoint's files, read from a fork of it, stored in the run's content-addressed
5374
+ * store as a tree before the checkpoint may be deleted. `tree.digest` names the manifest;
5375
+ * every file it lists is an object of the same store. Informational, like
5376
+ * `workspace-checkpoint`. */
5377
+ kind: 'workspace-checkpoint-capture';
5378
+ id: NodeId;
5379
+ provider: string;
5380
+ /** The environment the checkpoint was taken from. */
5381
+ environmentId: string;
5382
+ checkpointId: string;
5383
+ /** The fork the capture read, by its request key and environment; destroyed once this
5384
+ * record is written. */
5385
+ fork: {
5386
+ idempotencyKey: string;
5387
+ environmentId: string;
5388
+ };
5389
+ tree: {
5390
+ digest: Sha256Digest;
5391
+ manifest: AgentCandidateArtifactRef;
5392
+ files: number;
5393
+ bytes: number;
5394
+ storedBytes: number;
5395
+ };
5396
+ seq: number;
5397
+ at: string;
5514
5398
  } | {
5515
5399
  /** Exact checkpoint cleanup outcome; unconfirmed resources remain pending across resume.
5516
- * Informational, like `workspace-checkpoint`. */
5400
+ * `capturedDigest` is the tree of the checkpoint's files that a `workspace-checkpoint-capture`
5401
+ * stored before the delete was asked for. `refused` says why the checkpoint was kept
5402
+ * without a delete: its files are in no capture, so deleting it would lose them.
5403
+ * Informational, like `workspace-checkpoint`. */
5517
5404
  kind: 'workspace-checkpoint-cleanup';
5518
5405
  id: NodeId;
5519
5406
  provider: string;
5520
5407
  environmentId: string;
5521
5408
  checkpointId: string;
5522
5409
  confirmed: boolean;
5410
+ capturedDigest?: Sha256Digest;
5411
+ refused?: string;
5523
5412
  seq: number;
5524
5413
  at: string;
5525
5414
  } | {
@@ -5539,6 +5428,27 @@ type SpawnEvent = {
5539
5428
  detail?: string;
5540
5429
  seq: number;
5541
5430
  at: string;
5431
+ } | {
5432
+ /** One end-of-turn workspace capture of this node's environment and where its time went.
5433
+ * Captures queue on one port that every recursive environment shares, so `queuedMs` is
5434
+ * the wait behind other nodes' captures and `captureMs` the capture and its verification.
5435
+ * Informational, like `workspace-checkpoint`; `seq` counts this node's records. */
5436
+ kind: 'workspace-capture';
5437
+ id: NodeId;
5438
+ /** The Runtime invocation the capture belongs to. */
5439
+ executionId: string;
5440
+ environmentId: string;
5441
+ /** Captures holding or waiting for a slot when this one was requested. */
5442
+ ahead: number;
5443
+ queuedMs: number;
5444
+ /** Absent when the capture never held a slot. */
5445
+ captureMs?: number;
5446
+ /** Bytes of the verified workspace archive. */
5447
+ archiveBytes?: number;
5448
+ outcome: 'captured' | 'failed';
5449
+ error?: string;
5450
+ seq: number;
5451
+ at: string;
5542
5452
  } | {
5543
5453
  /** One GRAPH-EDGE traversal (`runGraph`): what the runtime actually DELIVERED across a
5544
5454
  * delegates/analyzes edge, with byte counts — the observability that makes an edge's
@@ -5622,7 +5532,7 @@ type SpawnEvent = {
5622
5532
  at: string;
5623
5533
  };
5624
5534
  /**
5625
- * The spawn-tree event source (mirrors `ConversationJournal`'s begin/append/load shape).
5535
+ * The spawn-tree event source (begin/append/load).
5626
5536
  * `loadTree` returns events for inspection and completed-settlement replay, not live process
5627
5537
  * recovery; `appendEvent` runs only AFTER the event is observed-committed (never speculative).
5628
5538
  */
@@ -5674,10 +5584,6 @@ interface SupervisorOpts {
5674
5584
  readonly executors: ExecutorRegistry;
5675
5585
  /** Reconstruct configured executors for interrupted children before resuming the driver. */
5676
5586
  readonly recoverExecutor?: ExecutorFactory<unknown>;
5677
- /** Predicate resolution for `poll` wait-states (`Scope.wait`). A `poll` names its predicate so
5678
- * the wait can be journaled and re-armed by a later process; this is what the name resolves
5679
- * against. Unset ⇒ `poll` waits are refused (`unknown-probe`); `timer` waits are unaffected. */
5680
- readonly probes?: WaitProbeRegistry;
5681
5587
  /** Recursion ceiling (root = 0). The conserved pool bounds depth; this only stops a runaway
5682
5588
  * recursion. Omit = `DEFAULT_MAX_DEPTH` (16). */
5683
5589
  readonly maxDepth?: number;
@@ -6167,5 +6073,5 @@ interface WidenGate<Out> {
6167
6073
  readonly judgeExempt?: boolean;
6168
6074
  }
6169
6075
  //#endregion
6170
- export { SpawnJournal as $, AgentRuntimeEventSink as $a, LeakedReservation as $i, ReadableEnvironment as $n, checkVerdictOf as $r, RuntimeStreamEventCollector as $t, NodeExecutionIdentity as A, LoopWinner as Aa, RetainedInteractiveEnvironmentAdmission as Ai, RetainedPendingCause as An, classifyDriverFailure as Ar, TraceContext as At, ResultBlobStore as B, RuntimeRunCost as Ba, RetainedRunEventOptions as Bi, ReconnectRetainedInteractiveRunOptions as Bn, ContinuationAppend as Br, OtelSpan as Bt, ExecutorToolCall as C, LoopResult as Ca, NativeContextContinuationHandle as Ci, SessionTraceBox as Cn, DriverContractState as Cr, WorkspaceCheckpointMarker as Ct, MaterializedExecutionIdentity as D, LoopTokenUsage as Da, RecoverRetainedRunOptions as Di, decodeToolPart as Dn, DriverReentry as Dr, workerTraceEnv as Dt, HeldEnvironment as E, LoopTeardownFailedPayload as Ea, RecoverRetainedRunIntentOptions as Ei, createPushTraceSource as En, DriverProgressMark as Er, readWorkerTraceContext as Et, ProviderModelAttemptEvidence as F, SandboxClient as Fa, RetainedRunCancelOptions as Fi, ScopeProgressInput as Fn, CONTINUATIONS_DIR as Fr, LoopSpanNode as Ft, RootMaterialization as G, RuntimeRunStatus as Ga, RetainedRunStartMaterial as Gi, RetainedInteractiveStartMaterial as Gn, ContinuationPanelInput as Gr, createOpenInferenceFileExporter as Gt, ResumedWork as H, RuntimeRunOptions as Ha, RetainedRunIntentAdmission as Hi, RetainedInteractiveAdmissionHook as Hn, ContinuationEntry as Hr, buildLoopOtelSpans as Ht, ProviderModelExecutionEvidence as I, SelectionReceipt as Ia, RetainedRunCancellation as Ii, TeamProgress as In, CONTINUATION_FACTS as Ir, OtelAttribute as It, RootStreamReceipt as J, AgentBackendContext as Ja, StartRetainedRunOptions as Ji, HarnessTranscriptCapture as Jn, ContinuationProfile as Jr, loopEventToOtelSpan as Jt, RootProviderModelEvidence as K, startRuntimeRun as Ka, RetainedRunTurnInput as Ki, StartRetainedInteractiveRunOptions as Kn, ContinuationPanelResult as Kr, createOtelExporter as Kt, RecursiveReservationPolicy as L, ValidationCtx as La, RetainedRunDispatchedAdmission as Li, WorkerProgress as Ln, CheckRead as Lr, OtelExportConfig as Lt, NodeSnapshot as M, MountRecorder as Ma, RetainedInteractiveStartedAdmission as Mi, ActivityNote as Mn, upstreamUnavailableSignal as Mr, mergeTraceEnv as Mt, NodeStatus as N, OutputAdapter as Na, RetainedRunAdmission as Ni, DEFAULT_STALL_AFTER_MS as Nn, UnavailablePausePolicy as Nr, readTraceContextFromEnv as Nt, MaterializedModelIdentity as O, LoopTraceEmitter as Oa, RecoverRetainedRunResult as Oi, sandboxSessionTraceSource as On, DriverRepromptRefusal as Or, workerTraceHeaders as Ot, ProfileMaterializationReceipt as P, RunProvenance as Pa, RetainedRunAdmissionHook as Pi, ExecutorProgress as Pn, AdmittedFinding as Pr, traceContextToEnv as Pt, SpawnEvent as Q, AgentRuntimeEvent as Qa, BudgetReconcileFault as Qi, HarnessTranscriptUnavailableReason as Qn, admitFinding as Qr, RuntimeEventCollector as Qt, ResourceLimit as R, Validator as Ra, RetainedRunEffect as Ri, createActivityLog as Rn, CheckUnavailableError as Rr, OtelExportStats as Rt, ExecutorTeardownWarning as S, LoopPlanPayload as Sa, NativeContextContinuationExecution as Si, SessionMessageLike as Sn, DriverContinuationRecord as Sr, WorkerTraceUnavailableReason as St, Handle as T, LoopStartedPayload as Ta, ReconnectRetainedRunOptions as Ti, TraceSource as Tn, DriverLoopRecord as Tr, WorkerTraceSeamCarrier as Tt, RetainedExecutionState as U, RuntimeRunPersistenceAdapter as Ua, RetainedRunReplayPoint as Ui, RetainedInteractiveEnvironmentInput as Un, ContinuationNoteInput as Ur, buildLoopSpanNodes as Ut, ResumedKeyState as V, RuntimeRunHandle as Va, RetainedRunHandle as Vi, RecoverRetainedInteractiveRunOptions as Vn, ContinuationContext as Vr, RuntimeEventOtelOptions as Vt, RootHandle as W, RuntimeRunRow as Wa, RetainedRunSnapshot as Wi, RetainedInteractiveRunHandle as Wn, ContinuationPanel as Wr, buildRuntimeEventOtelSpans as Wt, Scope as X, AgentExecutionBackend as Xa, BudgetPoolRestore as Xi, HarnessTranscriptFile as Xn, VerdictSummary as Xr, padTraceId as Xt, Runtime as Y, AgentBackendInput as Ya, BudgetPool as Yi, HarnessTranscriptEvidence as Yn, PanelFinding as Yr, padSpanId as Yt, Settled as Z, AgentKnowledgeProvider as Za, BudgetReadout as Zi, HarnessTranscriptUnavailable as Zn, admitContinuationPolicy as Zr, toOtelAttributes as Zt, ExecutorMaterialization as _, LoopIterationDispatchPayload as _a, RuntimeRunStateError as _i, isWaitOutcome as _n, ProviderWorkspaceRetentionPort as _r, WaitOpts as _t, BudgetOverspend as a, ReservationTicket as aa, verdictFromJudgeScore as ai, createRuntimeEventCollector as an, KnowledgeReadinessDecision as ao, HarnessTranscriptReadOptions as ar, SpendGap as at, ExecutorRegistry as b, LoopLineageOptions as ba, WorkerSlots as bi, validateWaitSpec as bn, DriverAttemptsExhaustedError as br, WorkerInteractiveUnavailableReason as bt, EnvironmentTeardownReceipt as c, createBudgetPool as ca, BackendTransportError as ci, sanitizeKnowledgeReadinessReport as cn, OpenAIChatToolChoice as co, resolveHarnessTranscriptCapture as cr, SubtreeSummary as ct, ExecutorAccounting as d, DefaultVerdict$1 as da, NotFoundError as di, WaitOutcome as dn, RuntimeCanonicalStreamEvent as do, ProviderWorkspaceAttemptProvenance as dr, SupervisorOpts as dt, ReservationFloor as ea, composeContinuationNote as ei, RuntimeStreamEventSink as en, AgentTaskContext as eo, captureHarnessTranscript as er, SpawnOpts as et, ExecutorCancellation as f, Driver as fa, PlannerError as fi, WaitProbe as fn, RuntimeSession as fo, ProviderWorkspaceCaptureProvenance as fr, TokenUsageProvenance as ft, ExecutorFactory as g, LoopEndedPayload as ga, RetainedRunDispatchBindingError as gi, createWaitProbes as gn, ProviderWorkspaceRetentionContext as gr, UsageEvent as gt, ExecutorExecutionBinding as h, LoopDecisionPayload as ha, RetainedRunAdmissionError as hi, WaitSpec as hn, ProviderWorkspaceEntryMetadata as hr, UnknownMaterializationReason as ht, Budget as i, ReservationStage as ia, passedItems as ii, SanitizedKnowledgeRequirement as in, BackendErrorDetail as io, HarnessTranscriptReadLimits as ir, SpendChannel as it, NodeId as j, MountManifestEntry as ja, RetainedInteractiveIntentAdmission as ji, ActivityLog as jn, summarizeDriverAttempts as jr, createPropagatingTraceEmitter as jt, NoWinnerError as k, LoopTraceEvent as ka, RetainedInteractiveAdmission as ki, RetainedChildRecovery as kn, DriverRetryPolicy as kr, workerTraceSeamKey as kt, ExecutionBindingReceipt as l, spendFromUsageEvents as la, ConfigError as li, sanitizeRuntimeStreamEvent as ln, RunAgentTaskOptions as lo, retainHarnessTranscript as lr, SupervisedResult as lt, ExecutorContext as m, Iteration as ma, RetainedInteractiveBindingError as mi, WaitRejection as mn, RuntimeStreamEvent as mo, ProviderWorkspaceCaptureResult as mr, UnconfirmedTeardown as mt, AgentExecutionRef as n, ReservationRejection as na, expandQuestions as ni, RuntimeTelemetryOptions as nn, AgentTaskSpec as no, persistHarnessTranscript as nr, SpawnRejection as nt, BudgetViolation as o, ReservationWaitRefused as oa, AgentEvalError$1 as oi, createRuntimeStreamEventCollector as on, OpenAIChatResponseFormat as oo, RetainedHarnessTranscriptCapture as or, SteerableRootHandle as ot, ExecutorCancellationRequest as p, ExecCtx as pa, RetainedInteractiveAdmissionError as pi, WaitProbeRegistry as pn, RuntimeSessionStore as po, ProviderWorkspaceCaptureReceipt as pr, TreeView as pt, RootSignal as q, AgentAdapter as qa, StartRetainedRunInEnvironmentOptions as qi, HarnessTranscriptArtifact as qn, ContinuationPolicy as qr, generateSpanId as qt, AgentSpec as r, ReservationShortfall as ra, failedItems as ri, SanitizedKnowledgeReadinessReport as rn, AgentTaskStatus as ro, HarnessTranscriptMetadata as rr, Spend as rt, DefaultVerdict as s, ReserveOptions as sa, AgentEvalErrorCode as si, sanitizeAgentRuntimeEvent as sn, OpenAIChatTool as so, RetainedHarnessTranscriptDescriptor as sr, SubtreeResult as st, Agent as t, ReservationHolder as ta, distillFindings as ti, RuntimeStreamEventSummary as tn, AgentTaskRunResult as to, harnessTranscriptArtifact as tr, SpawnPrior as tt, Executor as u, AgentRunSpec as ua, JudgeError as ui, PendingWait as un, RunAgentTaskStreamOptions as uo, ProviderNativeCapturePhase as ur, Supervisor as ut, ExecutorNodeContext as v, LoopIterationEndedPayload as va, ValidationError as vi, pollFor as vn, DriverAttemptRecord as vr, WidenGate as vt, FleetYield as w, LoopSandboxPlacement as wa, NativeContextContinuationInput as wi, ToolStepInput as wn, DriverFailureClass as wr, WorkerTraceResolver as wt, ExecutorResult as x, LoopPlanDescription as xa, createWorkerSlots as xi, waitUntil as xn, DriverBudgetReadout as xr, WorkerTraceEvidence as xt, ExecutorProgressEvent as y, LoopIterationStartedPayload as ya, SlotPermit as yi, timerAt as yn, DriverAttemptStop as yr, WorkerInteractiveSession as yt, ResourceSpend as z, RuntimeRunCompleteInput as za, RetainedRunEnvironmentAdmission as zi, readWorkerProgress as zn, CheckVerdict as zr, OtelExporter as zt };
6171
- //# sourceMappingURL=types-C73caP0U.d.ts.map
6076
+ export { SpawnJournal as $, RuntimeSessionStore as $a, ExecCtx as $i, ProviderWorkspaceAttemptProvenance as $n, RetainedInteractiveAdmissionError as $r, RuntimeStreamEventSink as $t, NodeExecutionIdentity as A, RuntimeRunRow as Aa, RetainedRunSnapshot as Ai, RetainedInteractiveEnvironmentInput as An, ContinuationNoteInput as Ar, createPropagatingTraceEmitter as At, ResultBlobStore as B, AgentTaskContext as Ba, ReservationFloor as Bi, ReadableEnvironment as Bn, checkVerdictOf as Br, RuntimeEventOtelOptions as Bt, ExecutorToolCall as C, ValidationCtx as Ca, RetainedRunDispatchedAdmission as Ci, TeamProgress as Cn, CONTINUATION_FACTS as Cr, WorkerTraceResolver as Ct, MaterializedExecutionIdentity as D, RuntimeRunHandle as Da, RetainedRunHandle as Di, ReconnectRetainedInteractiveRunOptions as Dn, ContinuationAppend as Dr, workerTraceHeaders as Dt, HeldEnvironment as E, RuntimeRunCost as Ea, RetainedRunEventOptions as Ei, readWorkerProgress as En, CheckVerdict as Er, workerTraceEnv as Et, ProviderModelAttemptEvidence as F, AgentBackendInput as Fa, BudgetPool as Fi, HarnessTranscriptCapture as Fn, ContinuationProfile as Fr, OtelAttribute as Ft, RootMaterialization as G, KnowledgeReadinessDecision as Ga, ReservationTicket as Gi, HarnessTranscriptReadLimits as Gn, verdictFromJudgeScore as Gr, createOtelExporter as Gt, ResumedWork as H, AgentTaskSpec as Ha, ReservationRejection as Hi, harnessTranscriptArtifact as Hn, expandQuestions as Hr, buildLoopSpanNodes as Ht, ProviderModelExecutionEvidence as I, AgentExecutionBackend as Ia, BudgetPoolRestore as Ii, HarnessTranscriptEvidence as In, PanelFinding as Ir, OtelExportConfig as It, RootStreamReceipt as J, OpenAIChatToolChoice as Ja, createBudgetPool as Ji, RetainedHarnessTranscriptDescriptor as Jn, BackendTransportError as Jr, padSpanId as Jt, RootProviderModelEvidence as K, OpenAIChatResponseFormat as Ka, ReservationWaitRefused as Ki, HarnessTranscriptReadOptions as Kn, AgentEvalError$1 as Kr, generateSpanId as Kt, RecursiveReservationPolicy as L, AgentKnowledgeProvider as La, BudgetReadout as Li, HarnessTranscriptFile as Ln, VerdictSummary as Lr, OtelExportStats as Lt, NodeSnapshot as M, startRuntimeRun as Ma, RetainedRunTurnInput as Mi, RetainedInteractiveStartMaterial as Mn, ContinuationPanelInput as Mr, readTraceContextFromEnv as Mt, NodeStatus as N, AgentAdapter as Na, StartRetainedRunInEnvironmentOptions as Ni, StartRetainedInteractiveRunOptions as Nn, ContinuationPanelResult as Nr, traceContextToEnv as Nt, MaterializedModelIdentity as O, RuntimeRunOptions as Oa, RetainedRunIntentAdmission as Oi, RecoverRetainedInteractiveRunOptions as On, ContinuationContext as Or, workerTraceSeamKey as Ot, ProfileMaterializationReceipt as P, AgentBackendContext as Pa, StartRetainedRunOptions as Pi, HarnessTranscriptArtifact as Pn, ContinuationPolicy as Pr, LoopSpanNode as Pt, SpawnEvent as Q, RuntimeSession as Qa, Driver as Qi, ProviderNativeCapturePhase as Qn, PlannerError as Qr, RuntimeStreamEventCollector as Qt, ResourceLimit as R, AgentRuntimeEvent as Ra, BudgetReconcileFault as Ri, HarnessTranscriptUnavailable as Rn, admitContinuationPolicy as Rr, OtelExporter as Rt, ExecutorTeardownWarning as S, SelectionReceipt as Sa, RetainedRunCancellation as Si, ScopeProgressInput as Sn, AdmittedFinding as Sr, WorkspaceCheckpointMarker as St, Handle as T, RuntimeRunCompleteInput as Ta, RetainedRunEnvironmentAdmission as Ti, createActivityLog as Tn, CheckUnavailableError as Tr, readWorkerTraceContext as Tt, RetainedExecutionState as U, AgentTaskStatus as Ua, ReservationShortfall as Ui, persistHarnessTranscript as Un, failedItems as Ur, buildRuntimeEventOtelSpans as Ut, ResumedKeyState as V, AgentTaskRunResult as Va, ReservationHolder as Vi, captureHarnessTranscript as Vn, distillFindings as Vr, buildLoopOtelSpans as Vt, RootHandle as W, BackendErrorDetail as Wa, ReservationStage as Wi, HarnessTranscriptMetadata as Wn, passedItems as Wr, createOpenInferenceFileExporter as Wt, Scope as X, RunAgentTaskStreamOptions as Xa, AgentRunSpec as Xi, retainHarnessTranscript as Xn, JudgeError as Xr, toOtelAttributes as Xt, Runtime as Y, RunAgentTaskOptions as Ya, spendFromUsageEvents as Yi, resolveHarnessTranscriptCapture as Yn, ConfigError as Yr, padTraceId as Yt, Settled as Z, RuntimeCanonicalStreamEvent as Za, DefaultVerdict$1 as Zi, ProviderCheckpointCaptureContext as Zn, NotFoundError as Zr, RuntimeEventCollector as Zt, ExecutorMaterialization as _, MountManifestEntry as _a, RetainedInteractiveIntentAdmission as _i, RetainedPendingCause as _n, DriverRetryPolicy as _r, WidenGate as _t, BudgetOverspend as a, LoopIterationStartedPayload as aa, SlotPermit as ai, createRuntimeStreamEventCollector as an, ProviderWorkspaceRetentionPort as ar, SpendGap as at, ExecutorRegistry as b, RunProvenance as ba, RetainedRunAdmissionHook as bi, DEFAULT_STALL_AFTER_MS as bn, upstreamUnavailableSignal as br, WorkerTraceEvidence as bt, EnvironmentTeardownReceipt as c, LoopPlanPayload as ca, NativeContextContinuationExecution as ci, sanitizeRuntimeStreamEvent as cn, DriverAttemptsExhaustedError as cr, SubtreeSummary as ct, ExecutorAccounting as d, LoopStartedPayload as da, ReconnectRetainedRunOptions as di, ToolStepInput as dn, DriverContractState as dr, SupervisorOpts as dt, Iteration as ea, RetainedInteractiveBindingError as ei, RuntimeStreamEventSummary as en, RuntimeStreamEvent as eo, ProviderWorkspaceCaptureProvenance as er, SpawnOpts as et, ExecutorCancellation as f, LoopTeardownFailedPayload as fa, RecoverRetainedRunIntentOptions as fi, TraceSource as fn, DriverFailureClass as fr, TokenUsageProvenance as ft, ExecutorFactory as g, LoopWinner as ga, RetainedInteractiveEnvironmentAdmission as gi, RetainedChildRecovery as gn, DriverRepromptRefusal as gr, UsageEvent as gt, ExecutorExecutionBinding as h, LoopTraceEvent as ha, RetainedInteractiveAdmission as hi, sandboxSessionTraceSource as hn, DriverReentry as hr, UnknownMaterializationReason as ht, Budget as i, LoopIterationEndedPayload as ia, ValidationError as ii, createRuntimeEventCollector as in, ProviderWorkspaceRetentionContext as ir, SpendChannel as it, NodeId as j, RuntimeRunStatus as ja, RetainedRunStartMaterial as ji, RetainedInteractiveRunHandle as jn, ContinuationPanel as jr, mergeTraceEnv as jt, NoWinnerError as k, RuntimeRunPersistenceAdapter as ka, RetainedRunReplayPoint as ki, RetainedInteractiveAdmissionHook as kn, ContinuationEntry as kr, TraceContext as kt, ExecutionBindingReceipt as l, LoopResult as la, NativeContextContinuationHandle as li, SessionMessageLike as ln, DriverBudgetReadout as lr, SupervisedResult as lt, ExecutorContext as m, LoopTraceEmitter as ma, RecoverRetainedRunResult as mi, decodeToolPart as mn, DriverProgressMark as mr, UnconfirmedTeardown as mt, AgentExecutionRef as n, LoopEndedPayload as na, RetainedRunDispatchBindingError as ni, SanitizedKnowledgeReadinessReport as nn, ProviderWorkspaceCaptureResult as nr, SpawnRejection as nt, BudgetViolation as o, LoopLineageOptions as oa, WorkerSlots as oi, sanitizeAgentRuntimeEvent as on, DriverAttemptRecord as or, SteerableRootHandle as ot, ExecutorCancellationRequest as p, LoopTokenUsage as pa, RecoverRetainedRunOptions as pi, createPushTraceSource as pn, DriverLoopRecord as pr, TreeView as pt, RootSignal as q, OpenAIChatTool as qa, ReserveOptions as qi, RetainedHarnessTranscriptCapture as qn, AgentEvalErrorCode as qr, loopEventToOtelSpan as qt, AgentSpec as r, LoopIterationDispatchPayload as ra, RuntimeRunStateError as ri, SanitizedKnowledgeRequirement as rn, ProviderWorkspaceEntryMetadata as rr, Spend as rt, DefaultVerdict as s, LoopPlanDescription as sa, createWorkerSlots as si, sanitizeKnowledgeReadinessReport as sn, DriverAttemptStop as sr, SubtreeResult as st, Agent as t, LoopDecisionPayload as ta, RetainedRunAdmissionError as ti, RuntimeTelemetryOptions as tn, ProviderWorkspaceCaptureReceipt as tr, SpawnPrior as tt, Executor as u, LoopSandboxPlacement as ua, NativeContextContinuationInput as ui, SessionTraceBox as un, DriverContinuationRecord as ur, Supervisor as ut, ExecutorNodeContext as v, MountRecorder as va, RetainedInteractiveStartedAdmission as vi, ActivityLog as vn, classifyDriverFailure as vr, WorkerInteractiveSession as vt, FleetYield as w, Validator as wa, RetainedRunEffect as wi, WorkerProgress as wn, CheckRead as wr, WorkerTraceSeamCarrier as wt, ExecutorResult as x, SandboxClient as xa, RetainedRunCancelOptions as xi, ExecutorProgress as xn, UnavailablePausePolicy as xr, WorkerTraceUnavailableReason as xt, ExecutorProgressEvent as y, OutputAdapter as ya, RetainedRunAdmission as yi, ActivityNote as yn, summarizeDriverAttempts as yr, WorkerInteractiveUnavailableReason as yt, ResourceSpend as z, AgentRuntimeEventSink as za, LeakedReservation as zi, HarnessTranscriptUnavailableReason as zn, admitFinding as zr, OtelSpan as zt };
6077
+ //# sourceMappingURL=types-DeuEkBhI.d.ts.map