@tangle-network/agent-runtime 0.81.1 → 0.83.0

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/README.md +4 -0
  2. package/dist/agent.d.ts +5 -3
  3. package/dist/agent.js +7 -7
  4. package/dist/agent.js.map +1 -1
  5. package/dist/analyst-loop.d.ts +3 -2
  6. package/dist/analyst-loop.js +2 -2
  7. package/dist/{chunk-35WXYO26.js → chunk-4WXGK6GV.js} +2 -2
  8. package/dist/chunk-4WXGK6GV.js.map +1 -0
  9. package/dist/{chunk-UZ5SODU7.js → chunk-5IBQAPVB.js} +1 -1
  10. package/dist/chunk-5IBQAPVB.js.map +1 -0
  11. package/dist/{chunk-5JAUQZQA.js → chunk-7LO5GMAO.js} +1 -1
  12. package/dist/chunk-7LO5GMAO.js.map +1 -0
  13. package/dist/{chunk-H7IBHAFT.js → chunk-BZF3KQ6G.js} +1 -1
  14. package/dist/chunk-BZF3KQ6G.js.map +1 -0
  15. package/dist/{chunk-WIR4HOOJ.js → chunk-DPEUKJRO.js} +1 -1
  16. package/dist/chunk-DPEUKJRO.js.map +1 -0
  17. package/dist/{chunk-EAGRBFQF.js → chunk-J3N6GODQ.js} +2 -2
  18. package/dist/chunk-J3N6GODQ.js.map +1 -0
  19. package/dist/{chunk-GRAGM4MC.js → chunk-NURIQBJQ.js} +1 -1
  20. package/dist/chunk-NURIQBJQ.js.map +1 -0
  21. package/dist/{chunk-D6GIWPKD.js → chunk-QDVLTRCP.js} +51 -4
  22. package/dist/chunk-QDVLTRCP.js.map +1 -0
  23. package/dist/{chunk-FNMGYYSS.js → chunk-SGKPNBXE.js} +1 -1
  24. package/dist/chunk-SGKPNBXE.js.map +1 -0
  25. package/dist/{chunk-VHJDS6OR.js → chunk-SSA6OERV.js} +6 -6
  26. package/dist/chunk-SSA6OERV.js.map +1 -0
  27. package/dist/{chunk-BPS254IE.js → chunk-UD4BHQMI.js} +2 -2
  28. package/dist/{chunk-BPS254IE.js.map → chunk-UD4BHQMI.js.map} +1 -1
  29. package/dist/{chunk-OUGNIHDZ.js → chunk-UJ3ONGHR.js} +6 -6
  30. package/dist/chunk-UJ3ONGHR.js.map +1 -0
  31. package/dist/{chunk-LWGVVP2C.js → chunk-VNOOH22O.js} +2 -2
  32. package/dist/chunk-VNOOH22O.js.map +1 -0
  33. package/dist/{chunk-NBV35BR6.js → chunk-YEJR7IXO.js} +1 -1
  34. package/dist/chunk-YEJR7IXO.js.map +1 -0
  35. package/dist/{chunk-C2FZ6GR6.js → chunk-YPA5MLVE.js} +2 -2
  36. package/dist/chunk-YPA5MLVE.js.map +1 -0
  37. package/dist/{coordination-BI9tpcmF.d.ts → coordination-CuDLO8wj.d.ts} +53 -32
  38. package/dist/environment-provider.d.ts +2 -2
  39. package/dist/environment-provider.js +1 -1
  40. package/dist/{improvement-adapter-CioiEE2z.d.ts → improvement-adapter-CDR8QNVM.d.ts} +3 -0
  41. package/dist/index.d.ts +163 -49
  42. package/dist/index.js +43 -13
  43. package/dist/index.js.map +1 -1
  44. package/dist/intelligence.d.ts +14 -8
  45. package/dist/intelligence.js +1 -1
  46. package/dist/intelligence.js.map +1 -1
  47. package/dist/{kb-gate-CuzMYGYM.d.ts → kb-gate-CwHO0vz6.d.ts} +4 -2
  48. package/dist/lifecycle.d.ts +2 -2
  49. package/dist/lifecycle.js +3 -3
  50. package/dist/{local-harness-DU7yV6mG.d.ts → local-harness-sI0S_XNA.d.ts} +2 -1
  51. package/dist/{loop-runner-bin-CBkLsyFg.d.ts → loop-runner-bin-hQDUL8Ld.d.ts} +28 -13
  52. package/dist/loop-runner-bin.d.ts +7 -7
  53. package/dist/loop-runner-bin.js +10 -10
  54. package/dist/loops.d.ts +153 -46
  55. package/dist/loops.js +9 -7
  56. package/dist/mcp/bin.js +8 -8
  57. package/dist/mcp/bin.js.map +1 -1
  58. package/dist/mcp/index.d.ts +44 -38
  59. package/dist/mcp/index.js +11 -11
  60. package/dist/mcp/index.js.map +1 -1
  61. package/dist/{mcp-serve-verifier-BvMAV_8U.d.ts → mcp-serve-verifier-FL7-ZEb_.d.ts} +8 -3
  62. package/dist/{openai-tools-B-3v06BE.d.ts → openai-tools-BnrOmGjN.d.ts} +7 -4
  63. package/dist/platform.d.ts +4 -0
  64. package/dist/platform.js.map +1 -1
  65. package/dist/profiles.d.ts +36 -23
  66. package/dist/profiles.js +2 -2
  67. package/dist/profiles.js.map +1 -1
  68. package/dist/{router-client-D6Ocf4jG.d.ts → router-client-r8y_VFVM.d.ts} +1 -0
  69. package/dist/{substrate-rNj6TDc3.d.ts → substrate-DO2GHNg2.d.ts} +5 -3
  70. package/dist/{types-By9LXllv.d.ts → types-Driepl87.d.ts} +3 -2
  71. package/dist/{types-BF-MEsQB.d.ts → types-ESeMOj94.d.ts} +26 -11
  72. package/dist/{worktree-fanout-D9Z2dMS9.d.ts → worktree-fanout-D6xR2CIA.d.ts} +16 -10
  73. package/dist/{worktree-harness-Dx8XULW3.d.ts → worktree-harness-CX_McRLp.d.ts} +11 -8
  74. package/package.json +1 -1
  75. package/dist/chunk-35WXYO26.js.map +0 -1
  76. package/dist/chunk-5JAUQZQA.js.map +0 -1
  77. package/dist/chunk-C2FZ6GR6.js.map +0 -1
  78. package/dist/chunk-D6GIWPKD.js.map +0 -1
  79. package/dist/chunk-EAGRBFQF.js.map +0 -1
  80. package/dist/chunk-FNMGYYSS.js.map +0 -1
  81. package/dist/chunk-GRAGM4MC.js.map +0 -1
  82. package/dist/chunk-H7IBHAFT.js.map +0 -1
  83. package/dist/chunk-LWGVVP2C.js.map +0 -1
  84. package/dist/chunk-NBV35BR6.js.map +0 -1
  85. package/dist/chunk-OUGNIHDZ.js.map +0 -1
  86. package/dist/chunk-UZ5SODU7.js.map +0 -1
  87. package/dist/chunk-VHJDS6OR.js.map +0 -1
  88. package/dist/chunk-WIR4HOOJ.js.map +0 -1
package/dist/loops.d.ts CHANGED
@@ -2,31 +2,30 @@ import { ChatClient, RunRecord, AnalystFinding, AgentProfile, AnalystRunInputs,
2
2
  export { AnalystFinding, DefaultVerdict, computeFindingId, makeFinding } from '@tangle-network/agent-eval';
3
3
  import { SandboxEvent, SandboxInstance, CreateSandboxOptions } from '@tangle-network/sandbox';
4
4
  export { AgentProfile, CreateSandboxOptions, SandboxEvent, SandboxInstance } from '@tangle-network/sandbox';
5
- import { d as ResultBlobStore, S as SpawnJournal, N as NodeId, j as SpawnEvent, E as ExecutorFactory, c as Agent, B as Budget, i as Scope, g as Settled, f as SupervisedResult, h as Spend, U as UsageEvent, b as ExecutorRegistry, k as Supervisor } from './types-By9LXllv.js';
6
- export { A as AgentSpec, a as Executor, l as ExecutorContext, m as ExecutorResult, R as Runtime, n as SupervisorOpts, T as TreeView, W as WidenGate } from './types-By9LXllv.js';
7
- import { ak as MakeWorkerAgent, A as AnalystRegistry, o as CoordinationTools, n as CoordinationEvent, ar as QuestionPolicy, a$ as ExecutorConfig } from './coordination-BI9tpcmF.js';
8
- export { b0 as BusEvent, b1 as BusRecord, b2 as BusStats, b3 as EventBus, b4 as ProviderSeam, b5 as PublishOptions, b6 as cliWorktreeExecutor, b7 as createEventBus, b8 as createExecutor, b9 as createExecutorRegistry } from './coordination-BI9tpcmF.js';
9
- import { R as RuntimeHooks, I as Iteration, S as SandboxClient, W as Driver, A as AgentRunSpec, b as OutputAdapter, V as Validator, E as ExecCtx, X as LoopWinner, Y as LoopLineageOptions, Z as LoopResult, L as LoopTokenUsage, a as RuntimeStreamEvent, _ as MountRecorder } from './types-BF-MEsQB.js';
10
- export { $ as LoopDecisionPayload, a0 as LoopEndedPayload, a1 as LoopIterationDispatchPayload, a2 as LoopIterationEndedPayload, a3 as LoopIterationStartedPayload, a4 as LoopPlanDescription, a5 as LoopPlanPayload, d as LoopSandboxPlacement, a6 as LoopStartedPayload, a7 as LoopTeardownFailedPayload, e as LoopTraceEmitter, c as LoopTraceEvent, a8 as MountManifestEntry, a9 as RunProvenance, aa as SelectionReceipt, ab as ValidationCtx } from './types-BF-MEsQB.js';
5
+ import { d as ResultBlobStore, S as SpawnJournal, N as NodeId, j as SpawnEvent, E as ExecutorFactory, c as Agent, B as Budget, i as Scope, g as Settled, f as SupervisedResult, h as Spend, U as UsageEvent, b as ExecutorRegistry, k as Supervisor } from './types-Driepl87.js';
6
+ export { A as AgentSpec, a as Executor, l as ExecutorContext, m as ExecutorResult, R as Runtime, n as SupervisorOpts, T as TreeView, W as WidenGate } from './types-Driepl87.js';
7
+ import { ak as MakeWorkerAgent, A as AnalystRegistry, o as CoordinationTools, n as CoordinationEvent, ar as QuestionPolicy, a$ as ExecutorConfig } from './coordination-CuDLO8wj.js';
8
+ export { b0 as BusEvent, b1 as BusRecord, b2 as BusStats, b3 as EventBus, b4 as ProviderSeam, b5 as PublishOptions, b6 as cliWorktreeExecutor, b7 as createEventBus, b8 as createExecutor, b9 as createExecutorRegistry } from './coordination-CuDLO8wj.js';
9
+ import { R as RuntimeHooks, I as Iteration, S as SandboxClient, W as Driver, A as AgentRunSpec, b as OutputAdapter, V as Validator, E as ExecCtx, X as LoopWinner, Y as LoopLineageOptions, Z as LoopResult, L as LoopTokenUsage, a as RuntimeStreamEvent, _ as MountRecorder } from './types-ESeMOj94.js';
10
+ export { $ as LoopDecisionPayload, a0 as LoopEndedPayload, a1 as LoopIterationDispatchPayload, a2 as LoopIterationEndedPayload, a3 as LoopIterationStartedPayload, a4 as LoopPlanDescription, a5 as LoopPlanPayload, d as LoopSandboxPlacement, a6 as LoopStartedPayload, a7 as LoopTeardownFailedPayload, e as LoopTraceEmitter, c as LoopTraceEvent, a8 as MountManifestEntry, a9 as RunProvenance, aa as SelectionReceipt, ab as ValidationCtx } from './types-ESeMOj94.js';
11
11
  export { AgentEnvironmentProviderRef, AgentEnvironmentProviderRegistry, ProviderAsSandboxClientOptions, ProviderExecutorOptions, SandboxClientProviderOptions, createAgentEnvironmentProviderRegistry, providerAsExecutor, providerAsSandboxClient, resolveAgentEnvironmentProvider, sandboxClientAsProvider } from './environment-provider.js';
12
- import { C as CorpusRecord, c as Corpus, O as Outcome, S as ScopeAnalyzeInput, d as AssertTraceDerivedFindings, e as SteerContext, f as ScopeAnalyst, F as FanoutOptions, g as CombinatorShape, h as ScopeWidenGate, L as LoopUntilSpec, P as PanelSpec, i as PipelineStage, W as WinnerStrategy, j as FanoutWinnerSelector, V as VerifySpec, k as WidenSpec, l as CorpusFilter, R as RenderCorpusToInstructionsOptions, D as DefinePersonaInput, m as Persona, n as RunPersonifiedOptions, o as ShapeRegistry, p as LoopShape, E as EqualKArm, q as EqualKOnCostOptions, r as EqualKVerdict, T as TrajectoryReportOptions, s as TrajectoryReport } from './worktree-fanout-D9Z2dMS9.js';
13
- export { A as AuthoredHarness, t as DefinePersona, u as EqualKOnCost, v as Fanout, w as FanoutSynthesis, x as FlatWidenGate, y as LoopUntil, z as LoopUntilState, B as Panel, G as PanelJudge, H as PanelVerdict, I as PatchDeliverableOptions, J as PersonaContext, K as PersonaExecutors, M as Pipeline, N as RenderCorpusToInstructions, Q as RunPersonified, U as ShapeBudget, X as ShapeContext, Y as TrajectoryNode, Z as TrajectoryReportFn, _ as Verify, $ as Widen, a0 as WidenDecision, a1 as WidenLineage, a2 as WorktreeCliExecutorOptions, a as WorktreeFanoutOptions, b as WorktreePatchArtifact, a3 as createWorktreeCliExecutor, a4 as patchDelivered, a5 as worktreeFanout } from './worktree-fanout-D9Z2dMS9.js';
12
+ import { C as CorpusRecord, c as Corpus, O as Outcome, S as ScopeAnalyzeInput, d as AssertTraceDerivedFindings, e as SteerContext, f as ScopeAnalyst, F as FanoutOptions, g as CombinatorShape, h as ScopeWidenGate, L as LoopUntilSpec, P as PanelSpec, i as PipelineStage, W as WinnerStrategy, j as FanoutWinnerSelector, V as VerifySpec, k as WidenSpec, l as CorpusFilter, R as RenderCorpusToInstructionsOptions, D as DefinePersonaInput, m as Persona, n as RunPersonifiedOptions, o as ShapeRegistry, p as LoopShape, E as EqualKArm, q as EqualKOnCostOptions, r as EqualKVerdict, T as TrajectoryReportOptions, s as TrajectoryReport } from './worktree-fanout-D6xR2CIA.js';
13
+ export { A as AuthoredHarness, t as DefinePersona, u as EqualKOnCost, v as Fanout, w as FanoutSynthesis, x as FlatWidenGate, y as LoopUntil, z as LoopUntilState, B as Panel, G as PanelJudge, H as PanelVerdict, I as PatchDeliverableOptions, J as PersonaContext, K as PersonaExecutors, M as Pipeline, N as RenderCorpusToInstructions, Q as RunPersonified, U as ShapeBudget, X as ShapeContext, Y as TrajectoryNode, Z as TrajectoryReportFn, _ as Verify, $ as Widen, a0 as WidenDecision, a1 as WidenLineage, a2 as WorktreeCliExecutorOptions, a as WorktreeFanoutOptions, b as WorktreePatchArtifact, a3 as createWorktreeCliExecutor, a4 as patchDelivered, a5 as worktreeFanout } from './worktree-fanout-D6xR2CIA.js';
14
14
  import { Scenario, DispatchFn, ProfileDispatchFn } from '@tangle-network/agent-eval/campaign';
15
15
  import { b as AnalystRegistryLike } from './types-BC3bZpH0.js';
16
16
  import { AgentProfile as AgentProfile$1 } from '@tangle-network/agent-interface';
17
- import { R as RouterConfig, a as ToolLoopChat, b as ToolLoopCompactionOptions } from './router-client-D6Ocf4jG.js';
18
- export { c as RouterChatResult, d as RouterChatToolsResult, e as RouterToolCall, f as RouterToolLoopResult, g as ToolLoopCompaction, T as ToolSpec, r as routerBrain, h as routerChatWithTools, i as routerChatWithUsage, j as routerToolLoop } from './router-client-D6Ocf4jG.js';
19
- import { D as DeliverableSpec } from './worktree-harness-Dx8XULW3.js';
20
- export { g as WorktreeCommandResult, h as gateOnDeliverable } from './worktree-harness-Dx8XULW3.js';
17
+ import { R as RouterConfig, a as ToolLoopChat, b as ToolLoopCompactionOptions } from './router-client-r8y_VFVM.js';
18
+ export { c as RouterChatResult, d as RouterChatToolsResult, e as RouterToolCall, f as RouterToolLoopResult, g as ToolLoopCompaction, T as ToolSpec, r as routerBrain, h as routerChatWithTools, i as routerChatWithUsage, j as routerToolLoop } from './router-client-r8y_VFVM.js';
19
+ import { D as DeliverableSpec } from './worktree-harness-CX_McRLp.js';
20
+ export { g as WorktreeCommandResult, h as gateOnDeliverable } from './worktree-harness-CX_McRLp.js';
21
21
  import { stuckLoopView, toolWasteView } from '@tangle-network/agent-eval/pipelines';
22
22
  export { AgentEnvironment, AgentEnvironmentCapabilities, AgentEnvironmentEvent, AgentEnvironmentProvider, AgentEnvironmentQuery, AgentEnvironmentStatus, AgentEnvironmentSummary, AgentProfileRef, AgentSession, AgentSessionRef, AgentSessionStatus, AgentTurnInput, AgentTurnResult, CheckpointRef, CheckpointRequest, CreateAgentEnvironmentInput, ExecRequest, ExecResult, ForkRequest, PlacementInfo, ResourceRequest, WorkspaceRequest } from '@tangle-network/agent-interface/environment-provider';
23
- import './substrate-rNj6TDc3.js';
23
+ import './substrate-DO2GHNg2.js';
24
24
  import './otel-export-BKmNwiCb.js';
25
- import './local-harness-DU7yV6mG.js';
25
+ import './local-harness-sI0S_XNA.js';
26
26
  import 'node:child_process';
27
27
 
28
28
  /**
29
- * @experimental
30
29
  *
31
30
  * Event-sourced spawn journal for the recursive execution atom (build steps 3 + 7).
32
31
  *
@@ -44,6 +43,8 @@ import 'node:child_process';
44
43
  * each settlement — NOT wall-clock. `replaySpawnTree` sorts strictly by `seq` before
45
44
  * touching the blob store, so the order in which rehydration `get`s resolve can never
46
45
  * reorder the replayed `Settled[]`; the result is identical regardless of blob latency.
46
+ *
47
+ * @experimental
47
48
  */
48
49
 
49
50
  /**
@@ -136,6 +137,7 @@ interface WaterfallCollector {
136
137
  }): string;
137
138
  reset(): void;
138
139
  }
140
+ /** Build a `WaterfallCollector` that records agent spans and renders them as an ASCII timeline. */
139
141
  declare function createWaterfallCollector(): WaterfallCollector;
140
142
 
141
143
  /**
@@ -273,7 +275,9 @@ interface IntentAudit {
273
275
  steer?: string;
274
276
  confidence: number;
275
277
  }
278
+ /** Default system instruction for intent-auditor agents: diagnose diverged/drifting trajectories. */
276
279
  declare const defaultAuditorInstruction: string;
280
+ /** The route-rigor analyst: compare declared vs revealed vs user intent over a trajectory and return aligned / drifting / diverged with evidence and one recommended intervention. */
277
281
  declare function auditIntent(input: AuditIntentInput, opts: AuditIntentOptions): Promise<IntentAudit>;
278
282
 
279
283
  /**
@@ -410,7 +414,6 @@ declare function renderLeaderboardSvg(report: Leaderboard): string;
410
414
  declare function renderLeaderboardHtml(report: Leaderboard): string;
411
415
 
412
416
  /**
413
- * @experimental
414
417
  *
415
418
  * Completion / satisfiability — the OTHER output of the pluggable analyst (the steer output
416
419
  * is `AnalystFinding[]` via the `analyze` hook; this is the "is it done?" output via the
@@ -431,6 +434,8 @@ declare function renderLeaderboardHtml(report: Leaderboard): string;
431
434
  * unguessable + attributable, so it can't be spuriously emitted or confused with content.
432
435
  * - deterministic check (compile/test/citation/proof): `deterministicCompletion(check)` —
433
436
  * a verifier over the output, never the judge verdict (selector ≠ judge holds).
437
+ *
438
+ * @experimental
434
439
  */
435
440
 
436
441
  /** Trace-derived evidence for a completion claim — an artifact (output) or a verifier metric,
@@ -464,6 +469,7 @@ interface CompletionPolicy {
464
469
  /** Minimum confidence a PROBABILISTIC verdict must clear to end. Default 0.8. */
465
470
  minConfidence?: number;
466
471
  }
472
+ /** Decide whether a `CompletionVerdict` may end the node under the policy: authority scales with the verdict's determinism, and probabilistic verdicts must clear `minConfidence`. */
467
473
  declare function completionAuthorizes(v: CompletionVerdict, policy?: CompletionPolicy): boolean;
468
474
  /**
469
475
  * A unique, attributable stop sentinel for a node (ralph-loop style). Deterministic from the
@@ -546,6 +552,7 @@ interface Observation {
546
552
  /** Operator-facing markdown: what the observer noticed + what to change. */
547
553
  report: string;
548
554
  }
555
+ /** The third-person trace analyst: read a worker's trace and produce steer findings for the next attempt plus durable `learned` facts for the cross-run corpus. */
549
556
  declare function observe(input: ObserveInput, opts: ObserveOptions): Promise<Observation>;
550
557
  /** Operator-facing report, split by who should act. The agent block is the
551
558
  * steer; the operator block is the advice. */
@@ -605,6 +612,7 @@ interface HarvestReport {
605
612
  /** Per-run analysis failures — reported, never silently dropped. */
606
613
  failures: HarvestFailure[];
607
614
  }
615
+ /** Batch the firewalled `observe()` analyst over completed runs and accrete the trace-derived facts into the durable corpus — the production-traces→corpus write side of the flywheel. */
608
616
  declare function harvestCorpus(opts: HarvestCorpusOptions): Promise<HarvestReport>;
609
617
 
610
618
  /** Context handed to each `onPrompt` call. */
@@ -664,7 +672,6 @@ declare function inProcessSandboxClient(options: InProcessSandboxClientOptions):
664
672
  declare function inlineSandboxClient(factory: ExecutorFactory<unknown>): SandboxClient;
665
673
 
666
674
  /**
667
- * @experimental
668
675
  *
669
676
  * `runLoop` — the topology-agnostic kernel built atop the sandbox SDK.
670
677
  *
@@ -686,6 +693,8 @@ declare function inlineSandboxClient(factory: ExecutorFactory<unknown>): Sandbox
686
693
  * emission. The kernel does NOT own: what the agent runs (sandbox SDK +
687
694
  * profile), how outputs are decoded (output adapter), how outputs are
688
695
  * scored (validator), or topology (driver).
696
+ *
697
+ * @experimental
689
698
  */
690
699
 
691
700
  /** @experimental */
@@ -753,7 +762,11 @@ interface RunLoopOptions<Task, Output, Decision> {
753
762
  */
754
763
  lineage?: LoopLineageOptions;
755
764
  }
756
- /** @experimental */
765
+ /**
766
+ * The round-synchronous loop kernel: each round `driver.plan()` fans N tasks to sandboxes (bounded concurrency), parses + validates each output, and folds results through `driver.decide`.
767
+ *
768
+ * @experimental
769
+ */
757
770
  declare function runLoop<Task, Output, Decision>(options: RunLoopOptions<Task, Output, Decision>): Promise<LoopResult<Task, Output, Decision>>;
758
771
  /**
759
772
  * The kernel's winner argmax — best-valid-score, ties broken by earliest index,
@@ -975,7 +988,9 @@ interface Strategy {
975
988
  readonly name: string;
976
989
  driver(surface: AgenticSurface, task: AgenticTask, opts: AgenticOptions, budget: number): Agent<unknown, Outcome<unknown>>;
977
990
  }
991
+ /** Built-in `Strategy`: K independent attempts, keep the best-verifying (best-of-N / resample). */
978
992
  declare const sample: Strategy;
993
+ /** Built-in `Strategy`: attempt → `observe()` reads the trace → steer the next attempt → repeat (deepen one lineage). */
979
994
  declare const refine: Strategy;
980
995
  /** A role for one shot — multi-agent loops (researcher + engineer, a panel of k
981
996
  * researchers) give each shot its own system prompt and optionally its own model. */
@@ -1144,6 +1159,7 @@ interface BenchmarkStrategySummary {
1144
1159
  usd: number;
1145
1160
  ms: number;
1146
1161
  }
1162
+ /** Benchmark output: per-strategy means plus the full per-task × per-strategy losses table an optimizer mines. */
1147
1163
  interface BenchmarkReport {
1148
1164
  n: number;
1149
1165
  excluded: number;
@@ -1206,10 +1222,10 @@ interface McpEnvironmentOptions {
1206
1222
  /** Cap on a tool result's text fed back to the worker. Default 1500 chars. */
1207
1223
  maxResultChars?: number;
1208
1224
  }
1225
+ /** Wrap any MCP server as an `Environment`: `tools/list` becomes `AgenticTool[]` with provider-safe schemas; the domain supplies only the artifact lifecycle hooks. */
1209
1226
  declare function createMcpEnvironment(opts: McpEnvironmentOptions): Environment;
1210
1227
 
1211
1228
  /**
1212
- * @experimental
1213
1229
  *
1214
1230
  * Analyst-on-scope (G1) — the analyze→findings→steer wire over the reactive `Scope`.
1215
1231
  *
@@ -1226,6 +1242,8 @@ declare function createMcpEnvironment(opts: McpEnvironmentOptions): Environment;
1226
1242
  * drains its settlement, then enforces the firewall on the way out — a judge-derived finding
1227
1243
  * ABORTS, it is never filtered. Fail loud: a down analyst, a non-array result, or a tainted finding
1228
1244
  * throws; there is no silent empty-findings path that would let a combinator steer on nothing.
1245
+ *
1246
+ * @experimental
1229
1247
  */
1230
1248
 
1231
1249
  declare const assertTraceDerivedFindings: AssertTraceDerivedFindings;
@@ -1303,7 +1321,6 @@ declare function registryScopeAnalyst<D>(registry: AnalystRegistryLike, buildInp
1303
1321
  declare function buildSteerContext<D>(findings: ReadonlyArray<AnalystFinding>, settledSoFar: ReadonlyArray<Settled<Outcome<D>>>): SteerContext<D>;
1304
1322
 
1305
1323
  /**
1306
- * @experimental
1307
1324
  *
1308
1325
  * The generic combinator library — the content-free act-bodies the wave's §1 contract froze.
1309
1326
  *
@@ -1323,6 +1340,8 @@ declare function buildSteerContext<D>(findings: ReadonlyArray<AnalystFinding>, s
1323
1340
  * Two fail-loud invariants every combinator honors: a child the conserved pool cannot admit is a
1324
1341
  * CONCRETE blocker (never an eager over-fan, never a silent drop), and a `blocked` outcome always
1325
1342
  * names at least one blocker (a shape that cannot finish MUST say why — `blocked([])` throws).
1343
+ *
1344
+ * @experimental
1326
1345
  */
1327
1346
 
1328
1347
  /**
@@ -1406,7 +1425,6 @@ declare function widen<Task, Seed, D>(spec: WidenSpec<Seed, D>): CombinatorShape
1406
1425
  declare function flatWidenGate<D>(): ScopeWidenGate<D>;
1407
1426
 
1408
1427
  /**
1409
- * @experimental
1410
1428
  *
1411
1429
  * The cross-run corpus (G2) — the learning-flywheel's durable accreted-fact store.
1412
1430
  *
@@ -1421,6 +1439,8 @@ declare function flatWidenGate<D>(): ScopeWidenGate<D>;
1421
1439
  * the same `id`. Malformed records — a structurally-invalid `CorpusRecord` from disk or a caller —
1422
1440
  * fail loud (the validator throws), since a corpus that silently accepts garbage would poison
1423
1441
  * every downstream run that reads it back.
1442
+ *
1443
+ * @experimental
1424
1444
  */
1425
1445
 
1426
1446
  /**
@@ -1475,7 +1495,6 @@ declare class FileCorpus implements Corpus {
1475
1495
  declare function renderCorpusToInstructions(opts: RenderCorpusToInstructionsOptions): Promise<AgentProfile$1>;
1476
1496
 
1477
1497
  /**
1478
- * @experimental
1479
1498
  *
1480
1499
  * The personify layer impl — `definePersona` (the thin builder) + `runPersonified` (composes
1481
1500
  * the persona + chosen shape onto the keystone `Supervisor`), plus `createShapeContext`, the
@@ -1492,6 +1511,8 @@ declare function renderCorpusToInstructions(opts: RenderCorpusToInstructionsOpti
1492
1511
  * that supplies raw `seams` is therefore wrapped here into a registry whose resolved factories
1493
1512
  * receive a ctx with the persona seams merged in — so a persona never has to pre-close its
1494
1513
  * factories by hand. A persona may instead supply a fully-built `registry` and skip the wrap.
1514
+ *
1515
+ * @experimental
1495
1516
  */
1496
1517
 
1497
1518
  /**
@@ -1510,7 +1531,6 @@ declare function definePersona<D = unknown>(input: DefinePersonaInput<D>): Perso
1510
1531
  declare function runPersonified<Task, D>(options: RunPersonifiedOptions<Task, D>): Promise<SupervisedResult<Outcome<D>>>;
1511
1532
 
1512
1533
  /**
1513
- * @experimental
1514
1534
  *
1515
1535
  * The loop-shape registry — the OPEN, content-free extension point for the personify layer.
1516
1536
  *
@@ -1524,6 +1544,8 @@ declare function runPersonified<Task, D>(options: RunPersonifiedOptions<Task, D>
1524
1544
  * `verify`/`widen`) take spec arguments, so they are not bare zero-arg factories — a caller that
1525
1545
  * wants name-resolution registers its own COMPOSED shape (a combinator already applied to its
1526
1546
  * spec) on a registry instance. The registry carries SHAPE only; the domain lives on the persona.
1547
+ *
1548
+ * @experimental
1527
1549
  */
1528
1550
 
1529
1551
  /**
@@ -1539,7 +1561,6 @@ declare const builtinShapes: ShapeRegistry;
1539
1561
  declare function registerShape<Task, D>(name: string, factory: LoopShape<Task, D>): void;
1540
1562
 
1541
1563
  /**
1542
- * @experimental
1543
1564
  *
1544
1565
  * Trajectory trace + cost ledger — the post-hoc tree reconstructor (§4 of `wave-types`).
1545
1566
  *
@@ -1560,6 +1581,8 @@ declare function registerShape<Task, D>(name: string, factory: LoopShape<Task, D
1560
1581
  * CROSS-run analogue the pool cannot reach — proving equal compute before any win is claimed.
1561
1582
  *
1562
1583
  * Pure over the journal/blobs — no live agent calls; safe to run on a finished run's log.
1584
+ *
1585
+ * @experimental
1563
1586
  */
1564
1587
 
1565
1588
  /**
@@ -1635,6 +1658,7 @@ interface PromotionVerdict {
1635
1658
  high: number;
1636
1659
  };
1637
1660
  }
1661
+ /** Statistical promotion decision over a holdout benchmark: a seeded paired bootstrap (`heldoutSignificance`) whose CI lower bound must clear `deltaThreshold`. */
1638
1662
  declare function promotionGate(opts: PromotionGateOptions): PromotionVerdict;
1639
1663
 
1640
1664
  /**
@@ -1670,7 +1694,56 @@ interface UsageSink {
1670
1694
  declare function reportLoopUsage<Task, Output, Decision>(cost: UsageSink, result: Pick<LoopResult<Task, Output, Decision>, 'costUsd' | 'tokenUsage'>, source?: string): void;
1671
1695
 
1672
1696
  /**
1673
- * @experimental
1697
+ * The product-facing backend selector: one call picks the execution transport a
1698
+ * `runLoop` (or any consumer that drives a `SandboxClient`) runs on, from the
1699
+ * package a product already depends on. It is pure sugar over the existing
1700
+ * primitives — `createExecutor({ backend })` + `inlineSandboxClient` — and adds
1701
+ * ZERO transport code (the node:http cli-bridge transport lives in `bridgeExecutor`).
1702
+ *
1703
+ * The heavy `resolveBenchClient` in `@tangle-network/agent-bench` is the bench-side
1704
+ * sibling: it layers router/search specifics a product should not have to depend on.
1705
+ * This is the generic, dep-light core products call to switch backends:
1706
+ *
1707
+ * - `backend: 'sandbox'` → IN-BOX: return the caller's real Sandbox-backed
1708
+ * `sandboxClient` unchanged. Fail loud if absent — a
1709
+ * product on the sandbox backend already holds its box.
1710
+ * - `backend: 'bridge'` → OFF-BOX: a local cli-bridge fronting a harness CLI
1711
+ * (opencode / kimi-code / …) as the leaf executor, wired
1712
+ * through the resumable `bridgeExecutor`.
1713
+ * - `backend: 'router'` → OFF-BOX: a router chat-completion as the leaf executor,
1714
+ * presented as a `SandboxClient` (no sandbox dependency).
1715
+ */
1716
+
1717
+ interface ResolveSandboxClientOptions {
1718
+ /** The execution transport for the driven loop. */
1719
+ backend: 'sandbox' | 'bridge' | 'router';
1720
+ /** `sandbox` backend: the caller's real Sandbox-backed client. Required for that backend. */
1721
+ sandboxClient?: SandboxClient;
1722
+ /** `bridge` backend: local cli-bridge transport. `bearer` + `model` required. */
1723
+ bridge?: {
1724
+ /** cli-bridge base URL. Defaults to `http://127.0.0.1:3355`. */
1725
+ url?: string;
1726
+ bearer: string;
1727
+ /** Bridge model id, doubling as the harness selector (e.g. `claude-code/sonnet`). */
1728
+ model: string;
1729
+ /** Per-turn deadline (ms). */
1730
+ timeoutMs?: number;
1731
+ };
1732
+ /** `router` backend: router chat-completion transport. All three fields required. */
1733
+ router?: {
1734
+ baseUrl: string;
1735
+ key: string;
1736
+ model: string;
1737
+ };
1738
+ }
1739
+ /**
1740
+ * Resolve a `SandboxClient` for the chosen backend. The generic, dep-light core
1741
+ * that `resolveBenchClient` builds on — reuse this instead of hand-rolling the
1742
+ * `createExecutor`/`inlineSandboxClient` branch in each product.
1743
+ */
1744
+ declare function resolveSandboxClient(opts: ResolveSandboxClientOptions): SandboxClient;
1745
+
1746
+ /**
1674
1747
  *
1675
1748
  * `acquireSandbox` — cold-start-resilient sandbox acquisition. Eliminates the
1676
1749
  * "create timed out at the proxy" failure mode conceptually by DECOUPLING "the
@@ -1694,6 +1767,8 @@ declare function reportLoopUsage<Task, Output, Decision>(cost: UsageSink, result
1694
1767
  * but never reaches `running` (abort, terminal status, budget) is torn down
1695
1768
  * before the failure propagates, so an abort storm during cold start does not
1696
1769
  * leak live sandboxes.
1770
+ *
1771
+ * @experimental
1697
1772
  */
1698
1773
 
1699
1774
  /** @experimental */
@@ -1715,11 +1790,14 @@ interface AcquireOptions {
1715
1790
  /** Sleep override for deterministic tests. */
1716
1791
  sleep?: (ms: number) => Promise<void>;
1717
1792
  }
1718
- /** @experimental */
1793
+ /**
1794
+ * Cold-start-resilient sandbox acquisition: create by name, observe readiness from the sandbox's own status (not the create call), and re-attach after gateway timeouts.
1795
+ *
1796
+ * @experimental
1797
+ */
1719
1798
  declare function acquireSandbox(client: SandboxClient, options: CreateSandboxOptions, acquire?: AcquireOptions): Promise<SandboxInstance>;
1720
1799
 
1721
1800
  /**
1722
- * @experimental
1723
1801
  *
1724
1802
  * Capability probe for the loop kernel's backend-blind lineage seams. The
1725
1803
  * kernel must NEVER ask "is this Docker or Firecracker?"; it asks "can this
@@ -1731,6 +1809,8 @@ declare function acquireSandbox(client: SandboxClient, options: CreateSandboxOpt
1731
1809
  * Invariant: a client with no `criuStatus` method (the loop's test fakes, the
1732
1810
  * raw SDK before it grew the probe) reports `canFork = false`. The seam is
1733
1811
  * fail-CLOSED — never assume forking works, only enable it on a positive probe.
1812
+ *
1813
+ * @experimental
1734
1814
  */
1735
1815
 
1736
1816
  /**
@@ -1842,7 +1922,6 @@ declare function mapSandboxEvent(event: SandboxEvent, opts?: {
1842
1922
  }): RuntimeStreamEvent | undefined;
1843
1923
 
1844
1924
  /**
1845
- * @experimental
1846
1925
  *
1847
1926
  * `SandboxLineage` — the backend-blind owner of box + session handles for a
1848
1927
  * single `runLoop` invocation. It exists so `run-loop.ts` never references a
@@ -1873,6 +1952,8 @@ declare function mapSandboxEvent(event: SandboxEvent, opts?: {
1873
1952
  * in `run-loop.ts`; the lineage only hands back the live `streamPrompt` iterable
1874
1953
  * so the kernel keeps ownership of event collection, cost accounting, and trace
1875
1954
  * emission.
1955
+ *
1956
+ * @experimental
1876
1957
  */
1877
1958
 
1878
1959
  /**
@@ -2024,12 +2105,13 @@ interface SessionCapableBox {
2024
2105
  */
2025
2106
 
2026
2107
  /**
2027
- * @experimental
2028
2108
  * How a typed deliverable `Out` is materialized from a finished turn.
2029
2109
  * - `events` — pure parse over the event array (identical to `OutputAdapter`).
2030
2110
  * - `artifact` — read a file off the box AFTER the turn drains, then map it (+ the
2031
2111
  * events). For diffs/codebases/documents that don't fit the chat
2032
2112
  * stream. `path` relative ⇒ workspace root; absolute ⇒ container FS.
2113
+ *
2114
+ * @experimental
2033
2115
  */
2034
2116
  type Deliverable<Out> = {
2035
2117
  kind: 'events';
@@ -2040,10 +2122,11 @@ type Deliverable<Out> = {
2040
2122
  fromArtifact: (raw: string, events: SandboxEvent[]) => Out;
2041
2123
  };
2042
2124
  /**
2043
- * @experimental
2044
2125
  * One finished turn over the artifact. A failed FS read is surfaced in `readError`
2045
2126
  * (never masked as an empty deliverable) so a caller distinguishes "agent produced
2046
2127
  * nothing" from a transport/FS fault.
2128
+ *
2129
+ * @experimental
2047
2130
  */
2048
2131
  interface TurnResult<Out> {
2049
2132
  out: Out;
@@ -2051,7 +2134,6 @@ interface TurnResult<Out> {
2051
2134
  readError?: string;
2052
2135
  }
2053
2136
  /**
2054
- * @experimental
2055
2137
  * Thrown when a turn is aborted/timed-out mid-settle. Carries the events drained
2056
2138
  * BEFORE the abort fired (and any in-progress `readError`) so an aborted run is
2057
2139
  * DIAGNOSABLE — the caller can tell never-started (`events: []`) from looped
@@ -2059,6 +2141,8 @@ interface TurnResult<Out> {
2059
2141
  *
2060
2142
  * `name === 'AbortError'`, so existing `err.name === 'AbortError'` callers (the
2061
2143
  * loop kernel, scope, supervise runtime) keep matching it unchanged.
2144
+ *
2145
+ * @experimental
2062
2146
  */
2063
2147
  declare class SandboxRunAbortError extends Error {
2064
2148
  readonly name = "AbortError";
@@ -2099,15 +2183,15 @@ interface OpenSandboxRunOptions {
2099
2183
  readRetryDelayMs?: number;
2100
2184
  }
2101
2185
  /**
2102
- * @experimental
2103
2186
  * Open a sandbox run. Harness-agnostic: the harness lives in
2104
2187
  * `options.agentRun.sandboxOverrides.backend.type`, so opencode/codex/claude-code/
2105
2188
  * kimi-code all flow through this one entrypoint with identical env/auth wiring.
2189
+ *
2190
+ * @experimental
2106
2191
  */
2107
2192
  declare function openSandboxRun<Out>(client: SandboxClient, options: OpenSandboxRunOptions, deliverable: Deliverable<Out>): Promise<SandboxRun<Out>>;
2108
2193
 
2109
2194
  /**
2110
- * @experimental
2111
2195
  *
2112
2196
  * Leak-free steering drivers — the non-LLM controls for the driven loop.
2113
2197
  *
@@ -2148,6 +2232,8 @@ declare function openSandboxRun<Out>(client: SandboxClient, options: OpenSandbox
2148
2232
  * They consume nothing the loop kernel does not already give `plan()`/`decide()`
2149
2233
  * — `runLoop` requires no change. A benchmark picks a driver by name and the
2150
2234
  * kernel does the rest.
2235
+ *
2236
+ * @experimental
2151
2237
  */
2152
2238
 
2153
2239
  /**
@@ -2504,10 +2590,10 @@ declare function pickChampion(means: Record<string, {
2504
2590
  }>, fieldOrder: string[], policy: ChampionPolicy, epsilon: number): ChampionPick;
2505
2591
  /** Search-side champion selection over a tournament report. */
2506
2592
  declare function selectChampion(report: BenchmarkReport, fieldOrder: string[], policy: ChampionPolicy, epsilon: number): ChampionPick;
2593
+ /** Multi-generation strategy search: author candidates from tournament losses, play them against the incumbent at equal budget, promote via `promotionGate` on an untouched holdout slice. */
2507
2594
  declare function runStrategyEvolution(cfg: StrategyEvolutionConfig): Promise<EvolutionReport>;
2508
2595
 
2509
2596
  /**
2510
- * @experimental
2511
2597
  *
2512
2598
  * The supervisor's intelligence is AUTHORING the agents it spawns — not pressing buttons.
2513
2599
  *
@@ -2519,6 +2605,8 @@ declare function runStrategyEvolution(cfg: StrategyEvolutionConfig): Promise<Evo
2519
2605
  *
2520
2606
  * The skill is the single OPTIMIZABLE surface: edit it → the supervisor designs better agents.
2521
2607
  * That is the self-improvement lever (the prompt/skill lever), not the execution plumbing.
2608
+ *
2609
+ * @experimental
2522
2610
  */
2523
2611
 
2524
2612
  /** What the supervisor AUTHORS per sub-task — a worker recipe (a partial `AgentProfile`). */
@@ -2552,6 +2640,7 @@ interface ProfileRichnessThresholds {
2552
2640
  /** A prompt with fewer than this many non-blank lines is thin (default 6). */
2553
2641
  readonly minSystemPromptLines: number;
2554
2642
  }
2643
+ /** Default thresholds for `ProfileRichnessThresholds` — 600 chars / 6 lines minimum system prompt. */
2555
2644
  declare const defaultProfileRichnessThresholds: ProfileRichnessThresholds;
2556
2645
  /** Per-field verdict on one authored profile — the raw material the bench renders + scores. */
2557
2646
  interface ProfileRichness {
@@ -2589,7 +2678,6 @@ declare function profileRichnessFinding(richness: ProfileRichness, opts?: {
2589
2678
  }): AnalystFinding;
2590
2679
 
2591
2680
  /**
2592
- * @experimental
2593
2681
  *
2594
2682
  * The conserved budget reservation pool — the invariant the whole instrument
2595
2683
  * rests on (critique M5/B3). One root `Budget` becomes a conserved pool of three
@@ -2607,6 +2695,8 @@ declare function profileRichnessFinding(richness: ProfileRichness, opts?: {
2607
2695
  * Pure and deterministic: `now()` is injected, there is no I/O, and no wall-clock or
2608
2696
  * RNG read. A `reserve`/`reconcile` ticket is single-use (fail-loud on double or
2609
2697
  * unknown reconcile) so a child can never refund twice.
2698
+ *
2699
+ * @experimental
2610
2700
  */
2611
2701
 
2612
2702
  /** Opaque, single-use reservation handle returned by `reserve` and consumed by
@@ -2685,7 +2775,6 @@ declare function spendFromUsageEvents(events: UsageEvent[]): Spend;
2685
2775
  declare function createBudgetPool(root: Budget, now?: () => number): BudgetPool;
2686
2776
 
2687
2777
  /**
2688
- * @experimental
2689
2778
  *
2690
2779
  * `driverAgent` — the driver's BRAIN.
2691
2780
  *
@@ -2709,6 +2798,8 @@ declare function createBudgetPool(root: Budget, now?: () => number): BudgetPool;
2709
2798
  * sandboxed harness drives the verbs as MCP tools. The same seam every tool-loop uses.
2710
2799
  * - `systemPrompt` — the driver's stance (the agent-eval worker-driver prompt / the prompt
2711
2800
  * generator). Injected, never hardcoded — the prompt is a pluggable role.
2801
+ *
2802
+ * @experimental
2712
2803
  */
2713
2804
 
2714
2805
  interface DriverAgentOptions {
@@ -2785,7 +2876,6 @@ declare function finalizeBestDelivered(settled: ReadonlyArray<{
2785
2876
  }>, blobs: ResultBlobStore): Promise<unknown>;
2786
2877
 
2787
2878
  /**
2788
- * @experimental
2789
2879
  *
2790
2880
  * Serve the coordination verbs (spawn_agent / await_event / observe_agent / steer_agent / stop)
2791
2881
  * as a real HTTP MCP server over a LIVE `Scope`. This is the keystone that lets a coding-harness
@@ -2802,6 +2892,8 @@ declare function finalizeBestDelivered(settled: ReadonlyArray<{
2802
2892
  * Transport: JSON-RPC over HTTP POST (the MCP streamable-HTTP shape — `application/json` for a
2803
2893
  * single response). The server is created INSIDE an agent's `act(task, scope)` so it fronts that
2804
2894
  * agent's live scope; tear it down when the act returns.
2895
+ *
2896
+ * @experimental
2805
2897
  */
2806
2898
 
2807
2899
  interface CoordinationMcpHandle {
@@ -2905,10 +2997,10 @@ interface SupervisorAgentDeps {
2905
2997
  * instead of re-billing the whole thing every turn. See `DriverAgentOptions.compaction`. */
2906
2998
  readonly compaction?: ToolLoopCompactionOptions;
2907
2999
  }
3000
+ /** Build a supervisor `Agent` from its profile: the brain resolves from `profile.harness` (backend-as-data), the same resolution rule as every worker. */
2908
3001
  declare function supervisorAgent(profile: SupervisorProfile, deps: SupervisorAgentDeps): Agent<unknown, unknown>;
2909
3002
 
2910
3003
  /**
2911
- * @experimental
2912
3004
  *
2913
3005
  * `delegate` — the one generic delegation verb. You hand it an INTENT (what you want done) and it
2914
3006
  * hands that intent to a default AUTHORING supervisor: a router-brained supervisor whose standing
@@ -2925,6 +3017,8 @@ declare function supervisorAgent(profile: SupervisorProfile, deps: SupervisorAge
2925
3017
  * caller on BOTH paths — a `winner` carries the delivered worker's spend, a `no-winner` carries the
2926
3018
  * spend incurred before it failed. That cost channel means a `delegate()` caller always learns what
2927
3019
  * the delegation actually spent.
3020
+ *
3021
+ * @experimental
2928
3022
  */
2929
3023
 
2930
3024
  /** The conserved pool a `delegate()` call applies when the caller does not pass its own `budget`.
@@ -2970,7 +3064,6 @@ interface DelegateOptions<Out = unknown> {
2970
3064
  declare function delegate<Out = unknown>(intent: string, opts?: DelegateOptions<Out>): Promise<SupervisedResult<Out>>;
2971
3065
 
2972
3066
  /**
2973
- * @experimental
2974
3067
  *
2975
3068
  * `TraceSource` — the ONE substrate-agnostic source of a worker's tool-call trace. The online
2976
3069
  * detectors and the settle-time analyzers consume agent-eval `ToolSpan`s from here, regardless of
@@ -2986,6 +3079,8 @@ declare function delegate<Out = unknown>(intent: string, opts?: DelegateOptions<
2986
3079
  *
2987
3080
  * This module imports NO substrate SDK — it decodes generic message parts / OpenAI tool-call shapes.
2988
3081
  * The sandbox wiring (`sandboxSessionTraceSource`) is the thin adapter that feeds box session parts in.
3082
+ *
3083
+ * @experimental
2989
3084
  */
2990
3085
 
2991
3086
  interface ToolStepInput {
@@ -3045,13 +3140,14 @@ declare function sandboxSessionTraceSource(box: SessionTraceBox, sessionId: stri
3045
3140
  }): TraceSource;
3046
3141
 
3047
3142
  /**
3048
- * @experimental
3049
3143
  *
3050
3144
  * The ONLINE analyst: watch a `TraceSource` and fold each tool span through agent-eval's published
3051
3145
  * streaming detector kernel (`repeatedActionDetector`/`errorStreakDetector` — the SAME kernel the
3052
3146
  * control loop folds), firing `onSignal` the moment a worker loops or error-storms. Substrate-
3053
3147
  * agnostic: it consumes spans from any source (owned router/bridge loop OR a sandbox box session),
3054
3148
  * never the raw tool seam. Detection logic + the failure taxonomy live in agent-eval; not reimplemented.
3149
+ *
3150
+ * @experimental
3055
3151
  */
3056
3152
 
3057
3153
  interface WatchTraceOptions {
@@ -3074,7 +3170,6 @@ declare function defaultToolDetectors(): StreamingDetector[];
3074
3170
  declare function watchTrace(source: TraceSource, opts?: WatchTraceOptions): () => void;
3075
3171
 
3076
3172
  /**
3077
- * @experimental
3078
3173
  *
3079
3174
  * The worker-side receive end of the down-leg: a per-worker inbox an executor exposes as
3080
3175
  * `Executor.deliver`. The driver's `steer_agent` / `answer_question` land here,
@@ -3088,6 +3183,8 @@ declare function watchTrace(source: TraceSource, opts?: WatchTraceOptions): () =
3088
3183
  * of a wrong path mid-task instead of waiting for it to finish the step.
3089
3184
  *
3090
3185
  * `deliver` never throws — a malformed message is ignored, per the `Executor.deliver` contract.
3186
+ *
3187
+ * @experimental
3091
3188
  */
3092
3189
  interface InboxMessage {
3093
3190
  readonly kind: 'steer' | 'answer';
@@ -3109,6 +3206,7 @@ interface Inbox {
3109
3206
  /** Render drained messages as ONE operator turn to fold into the worker's conversation. */
3110
3207
  fold(messages: ReadonlyArray<InboxMessage>): string;
3111
3208
  }
3209
+ /** Create the worker-side inbox for the down-leg: the driver's `steer_agent` / `answer_question` messages queue here and the worker's loop drains them at step boundaries and before settle. */
3112
3210
  declare function createInbox(): Inbox;
3113
3211
 
3114
3212
  /**
@@ -3119,7 +3217,6 @@ declare function createInbox(): Inbox;
3119
3217
  declare function assertModelAllowed(model: string | undefined, allowed: readonly string[] | undefined): void;
3120
3218
 
3121
3219
  /**
3122
- * @experimental
3123
3220
  *
3124
3221
  * `createInMemoryRunContext` — the one-call bundle of the in-memory stores a
3125
3222
  * `createSupervisor().run(root, task, opts)` needs: a fresh `InMemorySpawnJournal`
@@ -3141,6 +3238,8 @@ declare function assertModelAllowed(model: string | undefined, allowed: readonly
3141
3238
  * The spread shape matches `SupervisorOpts` exactly, so the call site reads:
3142
3239
  * const run = createInMemoryRunContext()
3143
3240
  * await createSupervisor().run(root, task, { budget, runId, ...run })
3241
+ *
3242
+ * @experimental
3144
3243
  */
3145
3244
 
3146
3245
  /** Options for the in-memory run context. */
@@ -3169,7 +3268,6 @@ interface InMemoryRunContext {
3169
3268
  declare function createInMemoryRunContext(opts?: InMemoryRunContextOptions): InMemoryRunContext;
3170
3269
 
3171
3270
  /**
3172
- * @experimental
3173
3271
  *
3174
3272
  * The reactive `Scope` impl (KEYSTONE, build step 4 + the step-8 adapter).
3175
3273
  *
@@ -3192,6 +3290,8 @@ declare function createInMemoryRunContext(opts?: InMemoryRunContextOptions): InM
3192
3290
  * The settle path is the only writer of journal `settled` events; the spawn path the only
3193
3291
  * writer of `spawned` events. The result blob is `put` BEFORE the journal `settled` record
3194
3292
  * references its `outRef`, so a crash can never leave a journaled ref with no blob.
3293
+ *
3294
+ * @experimental
3195
3295
  */
3196
3296
 
3197
3297
  /** Construction args for `createScope`. The supervisor threads the shared pool, journal,
@@ -3225,6 +3325,7 @@ interface ScopeArgs {
3225
3325
  * (the topology viewer reads it). Undefined ⇒ the journal stays the only record. */
3226
3326
  readonly hooks?: RuntimeHooks;
3227
3327
  }
3328
+ /** Create the reactive `Scope` a driver's `Agent.act` runs inside: spawn children on an atomically reserved conserved budget, settle via the `next()` cursor, journal for replay. */
3228
3329
  declare function createScope<Out>(args: ScopeArgs): Scope<Out>;
3229
3330
  /**
3230
3331
  * The step-8 merge-boundary adapter (M4): rehydrate a `Settled.done` into the kernel's
@@ -3301,10 +3402,10 @@ interface SuperviseOptions {
3301
3402
  * or `supervise()` throws a `ConfigError` before any compute is spent. Unset = unrestricted. */
3302
3403
  readonly allowedModels?: readonly string[];
3303
3404
  }
3405
+ /** One-call supervisor: build + run a supervisor from its profile with sensible defaults; the raw `supervisorAgent` + `createSupervisor().run` seams stay available for power use. */
3304
3406
  declare function supervise(profile: SupervisorProfile, task: unknown, opts: SuperviseOptions): Promise<SupervisedResult<unknown>>;
3305
3407
 
3306
3408
  /**
3307
- * @experimental
3308
3409
  *
3309
3410
  * The `Supervisor` impl (KEYSTONE, build step 5).
3310
3411
  *
@@ -3336,18 +3437,21 @@ declare function supervise(profile: SupervisorProfile, task: unknown, opts: Supe
3336
3437
  * winner `Out`. The supervisor content-addresses that `Out` for its replay `outRef`, reads
3337
3438
  * `spentTotal` off the journal (`settled` child work + `metered` driver inference), and wraps
3338
3439
  * it as a typed `winner` — it does not re-rank children behind the driver's back.
3440
+ *
3441
+ * @experimental
3339
3442
  */
3340
3443
 
3341
3444
  declare function createSupervisor<Task, Out>(): Supervisor<Task, Out>;
3342
3445
 
3343
3446
  /**
3344
- * @experimental
3345
3447
  *
3346
3448
  * The SETTLE-time analyst: when a worker finishes, collect its tool spans from a `TraceSource` and run
3347
3449
  * agent-eval's PUBLISHED batch analyzers over them — `buildTrajectory` (structured run summary),
3348
3450
  * `stuckLoopView` (full-run repeated-call view, complementing the online consecutive detector), and
3349
3451
  * `toolWasteView`. Substrate-agnostic: the spans come from any source (an owned loop's buffer OR a
3350
3452
  * sandbox box session). No analysis reimplemented — this is the thin bridge into agent-eval's analyzers.
3453
+ *
3454
+ * @experimental
3351
3455
  */
3352
3456
 
3353
3457
  interface TrajectoryAnalysis {
@@ -3463,6 +3567,7 @@ interface VerifierEnvironmentOptions {
3463
3567
  /** Executes the extra tools. Required when `extraTools` is set. */
3464
3568
  callExtra?(task: AgenticTask, name: string, args: Record<string, unknown>): Promise<string> | string;
3465
3569
  }
3570
+ /** Any checkable task as an `Environment`, no tool surface required: the artifact is the worker's answer and the domain is one deployable `check` over it. */
3466
3571
  declare function createVerifierEnvironment(opts: VerifierEnvironmentOptions): Environment;
3467
3572
 
3468
3573
  /** Command runner seam. Host code can use `localShell`; sandbox code can wrap `box.exec`. */
@@ -3484,6 +3589,7 @@ interface Workspace {
3484
3589
  commit(dir: string, message: string): Promise<WorkspaceCommit>;
3485
3590
  head(): Promise<string>;
3486
3591
  }
3592
+ /** Host-process `Shell`: run a command via `execFile`, resolving `{ stdout, stderr, code }` (never throws on non-zero exit). */
3487
3593
  declare function localShell(): Shell;
3488
3594
  interface GitWorkspaceOptions {
3489
3595
  readonly ref: string;
@@ -3491,6 +3597,7 @@ interface GitWorkspaceOptions {
3491
3597
  readonly branch?: string;
3492
3598
  readonly noHooks?: boolean;
3493
3599
  }
3600
+ /** A `Workspace` over a git checkout: materialize an isolated worktree at `ref`, commit produced changes (conflict-aware), and read `head` — hooks disabled, identity pinned. */
3494
3601
  declare function gitWorkspace(opts: GitWorkspaceOptions): Workspace;
3495
3602
  /** A jj-backed `Workspace` (Jujutsu, colocated with git for the durable remote).
3496
3603
  * Same port, same `Shell` — a drop-in for `gitWorkspace`. jj suits agent loops:
@@ -3519,4 +3626,4 @@ declare function runInWorkspace<T>(ws: Workspace, body: (cwd: string) => Promise
3519
3626
  commitOnInvalid?: boolean;
3520
3627
  }): Promise<WorkspaceRun<T>>;
3521
3628
 
3522
- export { Agent, AgentRunSpec, type AgenticOptions, type AgenticRunResult, type AgenticSurface, type AgenticTask, type AgenticTool, AnalystRegistry, type AnytimeReport, type AnytimeStrategySummary, type AnytimeTaskCurve, type ApplyContinuation, type ArtifactHandle, AssertTraceDerivedFindings, type AuditIntentInput, type AuditIntentOptions, type AuthorStrategyOptions, type AuthoredProfile, type AuthoredStrategy, type BenchmarkCell, type BenchmarkConfig, type BenchmarkLift, type BenchmarkReport, type BenchmarkStrategySummary, type BenchmarkTaskRow, Budget, type BudgetPool, type BudgetReadout, type ChampionPick, type ChampionPolicy, type CheckpointCapableBox, CombinatorShape, type CompletionAnalyst, type CompletionEvidence, type CompletionPolicy, type CompletionVerdict, CoordinationEvent, type CoordinationMcpHandle, Corpus, CorpusFilter, CorpusRecord, type CreateScopeAnalystOptions, type CriuCapableClient, DefinePersonaInput, type DelegateOptions, type Deliverable, DeliverableSpec, type DriveHarness, Driver, type DriverAgentOptions, type DumbDriverOptions, type Environment, EqualKArm, EqualKOnCostOptions, EqualKVerdict, type EvolutionArchiveNode, type EvolutionAuthor, type EvolutionBandInfo, type EvolutionCandidate, type EvolutionGeneration, type EvolutionReport, ExecCtx, ExecutorConfig, ExecutorFactory, ExecutorRegistry, FanoutOptions, FanoutWinnerSelector, FileCorpus, type ForkCapableBox, type GitWorkspaceOptions, type HarvestCorpusOptions, type HarvestFailure, type HarvestReport, InMemoryCorpus, InMemoryResultBlobStore, type InMemoryRunContext, type InMemoryRunContextOptions, InMemorySpawnJournal, type InProcessOnPrompt, type InProcessPromptCtx, type InProcessSandboxClientOptions, type Inbox, type InboxMessage, type IntentAudit, type Interval, Iteration, type Leaderboard, type LeaderboardOptions, type LeaderboardRow, type LoopCampaignDispatchOptions, type LoopDispatchOptions, LoopLineageOptions, type LoopOptionsForDispatch, LoopResult, LoopShape, LoopTokenUsage, LoopUntilSpec, LoopWinner, MakeWorkerAgent, type McpEndpoint, type McpEnvironmentOptions, MountRecorder, type NaiveDriverOptions, type Observation, type ObserveInput, type ObserveOptions, type OpenSandboxRunOptions, Outcome, OutputAdapter, type PairwiseOptions, type PairwiseVerdict, PanelSpec, Persona, PipelineStage, type ProfileRichness, type ProfileRichnessThresholds, type PromotionGateOptions, type PromotionVerdict, type RegistryAnalyzeProjection, RenderCorpusToInstructionsOptions, type ReservationTicket, ResultBlobStore, RouterConfig, type RunAgenticOptions, RunPersonifiedOptions, type SandboxCapabilities, SandboxClient, type SandboxLineage, type SandboxLineageHandle, type SandboxRun, SandboxRunAbortError, Scope, ScopeAnalyst, ScopeAnalyzeInput, ScopeWidenGate, type SessionCapableBox, type SessionTraceBox, Settled, ShapeRegistry, type Shell, type ShotPersona, type ShotSpec, Spend, SteerContext, type SteeringDecision, type Strategy, type StrategyCtx, type StrategyEvolutionConfig, type StrategyResult, type SuperviseOptions, type SuperviseSurfaceOptions, type SuperviseSurfaceResult, SupervisedResult, Supervisor, type SupervisorAgentDeps, type SupervisorProfile, type SurfaceScore, type SurfaceWorkerConfig, type SurfaceWorkerOut, ToolLoopChat, ToolLoopCompactionOptions, type TraceSource, type TrajectoryAnalysis, TrajectoryReport, TrajectoryReportOptions, type TurnResult, UsageEvent, type UsageSink, Validator, type VerifierEnvironmentOptions, VerifySpec, type WatchTraceOptions, type WaterfallCollector, type WaterfallReport, type WaterfallSpan, WidenSpec, WinnerStrategy, type Workspace, type WorkspaceCommit, type WorkspaceRun, acquireSandbox, adaptiveRefine, analyzeTrace, anytimeReport, asAuthoredProfile, assertModelAllowed, assertStrategyContract, assertTraceDerivedFindings, assessAuthoredProfile, auditIntent, authorStrategy, authoredWorker, breadthStrategy, buildSteerContext, builtinShapes, completionAuthorizes, contentAddress, createBudgetPool, createInMemoryRunContext, createInbox, createMcpEnvironment, createPushTraceSource, createSandboxLineage, createScope, createScopeAnalyst, createShapeRegistry, createSupervisor, createVerifierEnvironment, createWaterfallCollector, decodeToolPart, defaultAnalystInstruction, defaultAuditorInstruction, defaultDelegateBudget, defaultProfileRichnessThresholds, defaultSelectWinner, defaultToolDetectors, definePersona, defineStrategy, delegate, depthStrategy, deterministicCompletion, discriminatingMeans, driverAgent, dumbDriver, equalKOnCost, extractLlmCallEvent, failuresAnalyst, fanout, finalizeBestDelivered, flatWidenGate, gitWorkspace, harvestCorpus, inProcessSandboxClient, inlineSandboxClient, jjWorkspace, leaderboard, localShell, loopCampaignDispatch, loopDispatch, loopUntil, mapSandboxEvent, naiveDriver, observe, openSandboxRun, pairwiseSignificance, panel, pickChampion, pipeline, printBenchmarkReport, probeSandboxCapabilities, profileRichnessFinding, promotionGate, refine, registerShape, registryScopeAnalyst, renderAnytimeTable, renderCorpusToInstructions, renderLeaderboardHtml, renderLeaderboardMarkdown, renderLeaderboardSvg, renderPairwiseMarkdown, renderReport, reportLoopUsage, runAgentic, runBenchmark, runInWorkspace, runLoop, runPersonified, runStrategyEvolution, sample, sampleThenRefine, sandboxSessionTraceSource, selectChampion, selectValidWinner, sentinelCompletion, serveCoordinationMcp, settledToIteration, spendFromUsageEvents, stopSentinel, strategyAuthorContract, sumSandboxUsage, supervise, superviseSurface, supervisorAgent, supervisorInstructions, trajectoryReport, verify, watchTrace, widen, workerFromBackend };
3629
+ export { Agent, AgentRunSpec, type AgenticOptions, type AgenticRunResult, type AgenticSurface, type AgenticTask, type AgenticTool, AnalystRegistry, type AnytimeReport, type AnytimeStrategySummary, type AnytimeTaskCurve, type ApplyContinuation, type ArtifactHandle, AssertTraceDerivedFindings, type AuditIntentInput, type AuditIntentOptions, type AuthorStrategyOptions, type AuthoredProfile, type AuthoredStrategy, type BenchmarkCell, type BenchmarkConfig, type BenchmarkLift, type BenchmarkReport, type BenchmarkStrategySummary, type BenchmarkTaskRow, Budget, type BudgetPool, type BudgetReadout, type ChampionPick, type ChampionPolicy, type CheckpointCapableBox, CombinatorShape, type CompletionAnalyst, type CompletionEvidence, type CompletionPolicy, type CompletionVerdict, CoordinationEvent, type CoordinationMcpHandle, Corpus, CorpusFilter, CorpusRecord, type CreateScopeAnalystOptions, type CriuCapableClient, DefinePersonaInput, type DelegateOptions, type Deliverable, DeliverableSpec, type DriveHarness, Driver, type DriverAgentOptions, type DumbDriverOptions, type Environment, EqualKArm, EqualKOnCostOptions, EqualKVerdict, type EvolutionArchiveNode, type EvolutionAuthor, type EvolutionBandInfo, type EvolutionCandidate, type EvolutionGeneration, type EvolutionReport, ExecCtx, ExecutorConfig, ExecutorFactory, ExecutorRegistry, FanoutOptions, FanoutWinnerSelector, FileCorpus, type ForkCapableBox, type GitWorkspaceOptions, type HarvestCorpusOptions, type HarvestFailure, type HarvestReport, InMemoryCorpus, InMemoryResultBlobStore, type InMemoryRunContext, type InMemoryRunContextOptions, InMemorySpawnJournal, type InProcessOnPrompt, type InProcessPromptCtx, type InProcessSandboxClientOptions, type Inbox, type InboxMessage, type IntentAudit, type Interval, Iteration, type Leaderboard, type LeaderboardOptions, type LeaderboardRow, type LoopCampaignDispatchOptions, type LoopDispatchOptions, LoopLineageOptions, type LoopOptionsForDispatch, LoopResult, LoopShape, LoopTokenUsage, LoopUntilSpec, LoopWinner, MakeWorkerAgent, type McpEndpoint, type McpEnvironmentOptions, MountRecorder, type NaiveDriverOptions, type Observation, type ObserveInput, type ObserveOptions, type OpenSandboxRunOptions, Outcome, OutputAdapter, type PairwiseOptions, type PairwiseVerdict, PanelSpec, Persona, PipelineStage, type ProfileRichness, type ProfileRichnessThresholds, type PromotionGateOptions, type PromotionVerdict, type RegistryAnalyzeProjection, RenderCorpusToInstructionsOptions, type ReservationTicket, type ResolveSandboxClientOptions, ResultBlobStore, RouterConfig, type RunAgenticOptions, RunPersonifiedOptions, type SandboxCapabilities, SandboxClient, type SandboxLineage, type SandboxLineageHandle, type SandboxRun, SandboxRunAbortError, Scope, ScopeAnalyst, ScopeAnalyzeInput, ScopeWidenGate, type SessionCapableBox, type SessionTraceBox, Settled, ShapeRegistry, type Shell, type ShotPersona, type ShotSpec, Spend, SteerContext, type SteeringDecision, type Strategy, type StrategyCtx, type StrategyEvolutionConfig, type StrategyResult, type SuperviseOptions, type SuperviseSurfaceOptions, type SuperviseSurfaceResult, SupervisedResult, Supervisor, type SupervisorAgentDeps, type SupervisorProfile, type SurfaceScore, type SurfaceWorkerConfig, type SurfaceWorkerOut, ToolLoopChat, ToolLoopCompactionOptions, type TraceSource, type TrajectoryAnalysis, TrajectoryReport, TrajectoryReportOptions, type TurnResult, UsageEvent, type UsageSink, Validator, type VerifierEnvironmentOptions, VerifySpec, type WatchTraceOptions, type WaterfallCollector, type WaterfallReport, type WaterfallSpan, WidenSpec, WinnerStrategy, type Workspace, type WorkspaceCommit, type WorkspaceRun, acquireSandbox, adaptiveRefine, analyzeTrace, anytimeReport, asAuthoredProfile, assertModelAllowed, assertStrategyContract, assertTraceDerivedFindings, assessAuthoredProfile, auditIntent, authorStrategy, authoredWorker, breadthStrategy, buildSteerContext, builtinShapes, completionAuthorizes, contentAddress, createBudgetPool, createInMemoryRunContext, createInbox, createMcpEnvironment, createPushTraceSource, createSandboxLineage, createScope, createScopeAnalyst, createShapeRegistry, createSupervisor, createVerifierEnvironment, createWaterfallCollector, decodeToolPart, defaultAnalystInstruction, defaultAuditorInstruction, defaultDelegateBudget, defaultProfileRichnessThresholds, defaultSelectWinner, defaultToolDetectors, definePersona, defineStrategy, delegate, depthStrategy, deterministicCompletion, discriminatingMeans, driverAgent, dumbDriver, equalKOnCost, extractLlmCallEvent, failuresAnalyst, fanout, finalizeBestDelivered, flatWidenGate, gitWorkspace, harvestCorpus, inProcessSandboxClient, inlineSandboxClient, jjWorkspace, leaderboard, localShell, loopCampaignDispatch, loopDispatch, loopUntil, mapSandboxEvent, naiveDriver, observe, openSandboxRun, pairwiseSignificance, panel, pickChampion, pipeline, printBenchmarkReport, probeSandboxCapabilities, profileRichnessFinding, promotionGate, refine, registerShape, registryScopeAnalyst, renderAnytimeTable, renderCorpusToInstructions, renderLeaderboardHtml, renderLeaderboardMarkdown, renderLeaderboardSvg, renderPairwiseMarkdown, renderReport, reportLoopUsage, resolveSandboxClient, runAgentic, runBenchmark, runInWorkspace, runLoop, runPersonified, runStrategyEvolution, sample, sampleThenRefine, sandboxSessionTraceSource, selectChampion, selectValidWinner, sentinelCompletion, serveCoordinationMcp, settledToIteration, spendFromUsageEvents, stopSentinel, strategyAuthorContract, sumSandboxUsage, supervise, superviseSurface, supervisorAgent, supervisorInstructions, trajectoryReport, verify, watchTrace, widen, workerFromBackend };