@tangle-network/agent-runtime 0.116.0 → 0.119.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 (95) hide show
  1. package/README.md +9 -1
  2. package/dist/{activation-DuqQhee6.js → activation-DdIpwQ0k.js} +3 -3
  3. package/dist/{activation-DuqQhee6.js.map → activation-DdIpwQ0k.js.map} +1 -1
  4. package/dist/agent.d.ts +3 -64
  5. package/dist/agent.js +5 -207
  6. package/dist/agent.js.map +1 -1
  7. package/dist/{analyst-loop-BoNIG2hA.js → analyst-loop-DvSciOfB.js} +2 -2
  8. package/dist/{analyst-loop-BoNIG2hA.js.map → analyst-loop-DvSciOfB.js.map} +1 -1
  9. package/dist/analyst-loop.js +1 -1
  10. package/dist/candidate-execution/index.d.ts +3 -3
  11. package/dist/candidate-execution/index.js +5 -5
  12. package/dist/{candidate-execution-CfpJrd3o.js → candidate-execution-DDkSRPjY.js} +4 -4
  13. package/dist/{candidate-execution-CfpJrd3o.js.map → candidate-execution-DDkSRPjY.js.map} +1 -1
  14. package/dist/{environment-provider-CWsRh6Uz.d.ts → environment-provider-Bh4nX2qt.d.ts} +306 -32
  15. package/dist/{environment-provider-CCaEhA-l.js → environment-provider-Cr75N-rU.js} +141 -32
  16. package/dist/environment-provider-Cr75N-rU.js.map +1 -0
  17. package/dist/environment-provider.d.ts +1 -1
  18. package/dist/environment-provider.js +1 -1
  19. package/dist/{improvement-cycle-C1cmjvPD.js → improvement-cycle-zjR-MXwK.js} +163 -22
  20. package/dist/improvement-cycle-zjR-MXwK.js.map +1 -0
  21. package/dist/{index-C-FYUuFG.d.ts → index-B3bHsVLw.d.ts} +2 -2
  22. package/dist/{index-CYkDeM5L.d.ts → index-BLsKcxNd.d.ts} +3 -3
  23. package/dist/{index-COumPQka.d.ts → index-CGADWaa_.d.ts} +864 -437
  24. package/dist/{index-DcLMNnG5.d.ts → index-I35151Fr.d.ts} +9 -9
  25. package/dist/index.d.ts +9 -9
  26. package/dist/index.js +13 -13
  27. package/dist/index.js.map +1 -1
  28. package/dist/intelligence.d.ts +10 -9
  29. package/dist/intelligence.js +15 -9
  30. package/dist/intelligence.js.map +1 -1
  31. package/dist/kernel.d.ts +4 -4
  32. package/dist/kernel.js +9 -8
  33. package/dist/{knowledge-DOzbywZT.js → knowledge-I1e9zQGj.js} +7 -7
  34. package/dist/knowledge-I1e9zQGj.js.map +1 -0
  35. package/dist/knowledge.d.ts +1 -1
  36. package/dist/knowledge.js +1 -1
  37. package/dist/{local-harness-t6cDWDQ2.d.ts → local-harness-BIajef4A.d.ts} +29 -7
  38. package/dist/{loop-runner-bin-BFrhPLKt.d.ts → loop-runner-bin-BeG9vTdE.d.ts} +3 -3
  39. package/dist/{loop-runner-bin-BuQjc5DR.js → loop-runner-bin-L996YVPS.js} +4 -4
  40. package/dist/{loop-runner-bin-BuQjc5DR.js.map → loop-runner-bin-L996YVPS.js.map} +1 -1
  41. package/dist/loop-runner-bin.d.ts +1 -1
  42. package/dist/loop-runner-bin.js +1 -1
  43. package/dist/mcp/bin.js +43 -10
  44. package/dist/mcp/bin.js.map +1 -1
  45. package/dist/mcp/index.d.ts +5 -45
  46. package/dist/mcp/index.js +8 -212
  47. package/dist/mcp/index.js.map +1 -1
  48. package/dist/{openai-tools-_Wyp4udO.js → openai-tools-CvFEzw6f.js} +2 -2
  49. package/dist/{openai-tools-_Wyp4udO.js.map → openai-tools-CvFEzw6f.js.map} +1 -1
  50. package/dist/{prepare-BHQBb02e.js → prepare-DpV6np9e.js} +47 -34
  51. package/dist/prepare-DpV6np9e.js.map +1 -0
  52. package/dist/primeintellect/index.d.ts +1 -1
  53. package/dist/{protected-model-port-BP6Z4eau.d.ts → protected-model-port-CoJOiINX.d.ts} +11 -3
  54. package/dist/{protected-model-port-DqAH1Z2M.js → protected-model-port-vQLBRoAQ.js} +2 -2
  55. package/dist/{protected-model-port-DqAH1Z2M.js.map → protected-model-port-vQLBRoAQ.js.map} +1 -1
  56. package/dist/{redact-BEtQtvd6.d.ts → redact-PQzmE1Jn.d.ts} +4 -4
  57. package/dist/run-layout-C2FGmZ3v.js +158 -0
  58. package/dist/run-layout-C2FGmZ3v.js.map +1 -0
  59. package/dist/{runtime-Ut1pkd2n.js → runtime-D4e3GP5K.js} +147 -190
  60. package/dist/runtime-D4e3GP5K.js.map +1 -0
  61. package/dist/{sandbox-events-DeI5xX8P.js → sandbox-events-Yhd1GYWl.js} +4 -2
  62. package/dist/sandbox-events-Yhd1GYWl.js.map +1 -0
  63. package/dist/spawn-journal-IeXpidO2.js +857 -0
  64. package/dist/spawn-journal-IeXpidO2.js.map +1 -0
  65. package/dist/{structural-rollout-CVY_0hJp.js → structural-rollout-DQHO3b2Y.js} +4 -4
  66. package/dist/structural-rollout-DQHO3b2Y.js.map +1 -0
  67. package/dist/{supervise-BUR9ByF7.js → supervise-Cq50UT5-.js} +2874 -1892
  68. package/dist/supervise-Cq50UT5-.js.map +1 -0
  69. package/dist/{supervisor-BBbPBXpe.js → supervisor-CpT9yAxL.js} +2896 -983
  70. package/dist/supervisor-CpT9yAxL.js.map +1 -0
  71. package/dist/testing.js +98 -76
  72. package/dist/testing.js.map +1 -1
  73. package/dist/top-app-5unxqovu.js +1088 -0
  74. package/dist/top-app-5unxqovu.js.map +1 -0
  75. package/dist/tui/bin.d.ts +1 -0
  76. package/dist/tui/bin.js +19 -0
  77. package/dist/tui/bin.js.map +1 -0
  78. package/dist/tui/index.d.ts +209 -0
  79. package/dist/tui/index.js +2 -0
  80. package/dist/{util-Cc9g9Y-o.js → util-MVgdwuIS.js} +2 -2
  81. package/dist/{util-Cc9g9Y-o.js.map → util-MVgdwuIS.js.map} +1 -1
  82. package/dist/{workspace-archive-DXzJq7WP.js → workspace-archive-B4SkNJjw.js} +2 -2
  83. package/dist/{workspace-archive-DXzJq7WP.js.map → workspace-archive-B4SkNJjw.js.map} +1 -1
  84. package/package.json +8 -2
  85. package/dist/environment-provider-CCaEhA-l.js.map +0 -1
  86. package/dist/improvement-cycle-C1cmjvPD.js.map +0 -1
  87. package/dist/knowledge-DOzbywZT.js.map +0 -1
  88. package/dist/prepare-BHQBb02e.js.map +0 -1
  89. package/dist/runtime-Ut1pkd2n.js.map +0 -1
  90. package/dist/sandbox-events-DeI5xX8P.js.map +0 -1
  91. package/dist/spawn-journal-DCPbicXB.js +0 -457
  92. package/dist/spawn-journal-DCPbicXB.js.map +0 -1
  93. package/dist/structural-rollout-CVY_0hJp.js.map +0 -1
  94. package/dist/supervise-BUR9ByF7.js.map +0 -1
  95. package/dist/supervisor-BBbPBXpe.js.map +0 -1
@@ -2,7 +2,7 @@ import { d as AgentTaskStatus, o as AgentRuntimeEvent, x as RuntimeStreamEvent }
2
2
  import { l as RuntimeHooks } from "./runtime-hooks-sbRpjStq.js";
3
3
  import { E as SandboxClient, v as LoopTokenUsage, y as LoopTraceEmitter } from "./types-DnNGJ5Gz.js";
4
4
  import { ControlEvalResult, DefaultVerdict, KnowledgeReadinessReport, KnowledgeRequirement, ToolSpan } from "@tangle-network/agent-eval";
5
- import { AgentProfile as AgentProfile$1, AgentProfileValidationResult } from "@tangle-network/agent-interface";
5
+ import { AgentProfile as AgentProfile$1, AgentProfileValidationResult, Sha256Digest } from "@tangle-network/agent-interface";
6
6
  import { BackendType, CreateSandboxOptions, Sandbox } from "@tangle-network/sandbox";
7
7
  import { AgentEnvironment, AgentEnvironmentCapabilities, AgentEnvironmentCapabilities as AgentEnvironmentCapabilities$1, AgentEnvironmentEvent, AgentEnvironmentProvider, AgentEnvironmentProvider as AgentEnvironmentProvider$1, AgentEnvironmentQuery, AgentEnvironmentStatus, AgentEnvironmentSummary, AgentProfileRef, AgentProfileRef as AgentProfileRef$1, AgentSession, AgentSessionRef, AgentSessionStatus, AgentTurnInput, AgentTurnInput as AgentTurnInput$1, AgentTurnResult, CheckpointRef, CheckpointRequest, CreateAgentEnvironmentInput, CreateAgentEnvironmentInput as CreateAgentEnvironmentInput$1, ExecRequest, ExecResult, ForkRequest, PlacementInfo, ResourceRequest, WorkspaceRequest } from "@tangle-network/agent-interface/environment-provider";
8
8
  //#region src/runtime/supervise/progress.d.ts
@@ -118,6 +118,14 @@ interface ToolStepInput {
118
118
  /** False when the call was observed but its original arguments were unavailable. */
119
119
  readonly argsCaptured?: boolean;
120
120
  readonly status?: 'ok' | 'error';
121
+ /**
122
+ * False when the source observed the call being MADE but never observed it finishing — so no
123
+ * outcome is knowable, not even by default. Some wires (cli-bridge's OpenAI-shaped `tool_calls`
124
+ * deltas) report the model's DECISION to call a tool and never report the call's result at all.
125
+ * Without this marker such a call would project as `status: 'ok'` and be counted as a success in
126
+ * every downstream error-rate read. Set it and the span carries NO status, which is the truth.
127
+ */
128
+ readonly statusCaptured?: boolean;
121
129
  readonly result?: unknown;
122
130
  readonly error?: string;
123
131
  /** Stable id of the tool call — used to de-duplicate the repeated state transitions a harness
@@ -450,6 +458,26 @@ interface OtelAttribute {
450
458
  boolValue?: boolean;
451
459
  };
452
460
  }
461
+ /**
462
+ * Create an exporter that APPENDS spans to a local OpenInference-JSONL file, one complete span per
463
+ * line, instead of posting them to a collector.
464
+ *
465
+ * Why this exists beside {@link createOtelExporter}: that one needs an OTLP endpoint, so a run on a
466
+ * laptop, in CI, or inside a sandbox with no collector emits nothing and its per-turn shape is
467
+ * simply lost. The journal records the TREE (who spawned whom, what settled, what it spent); it
468
+ * does not record what happened inside a turn. A run whose tree is readable but whose turns are not
469
+ * is exactly the state that made an observability gap invisible until someone went looking.
470
+ *
471
+ * The line shape is the one `@tangle-network/traces` reads (`spans.otlp.jsonl`) and is a standard
472
+ * OpenInference representation, so the same file feeds any OpenInference tool with no conversion:
473
+ * snake_case identity fields, ISO-8601 times, `parent_span_id` empty at the root, and attributes as
474
+ * a plain object rather than OTLP's key/value array.
475
+ *
476
+ * Appends synchronously per span so a killed process keeps every span it had already finished —
477
+ * matching the spawn journal's durability posture, since a trace that only survives a clean exit is
478
+ * useless for the runs you most want to look at.
479
+ */
480
+ declare function createOpenInferenceFileExporter(filePath: string): OtelExporter;
453
481
  /**
454
482
  * Create an OTEL exporter. Returns undefined when no endpoint is configured.
455
483
  */
@@ -675,6 +703,12 @@ interface WaitOpts {
675
703
  interface Agent<Task, Out> {
676
704
  readonly name: string;
677
705
  act(task: Task, scope: Scope<Out>): Promise<Out>;
706
+ /**
707
+ * Optional manager inbox. A parent or attached `RootHandle` uses this to deliver the same raw
708
+ * down-message accepted by executor inboxes. Return `false` when the manager has no live receive
709
+ * path; returning `true` means the message was accepted for the current manager session.
710
+ */
711
+ deliver?(msg: unknown): void | boolean;
678
712
  }
679
713
  /**
680
714
  * The leaf runtime — ONE open interface, not a closed union. `execute` returns a
@@ -687,16 +721,17 @@ interface Agent<Task, Out> {
687
721
  * Built-in implementations (in `runtime.ts`, NOT variants here): router/inline (a direct
688
722
  * Router/HTTP inference call, no box), sandbox (COMPOSES `runAgentRounds` as a leaf, forwarding
689
723
  * PR #150's optional `lineage` passthrough — does NOT reinvent checkpoint/fork), cli
690
- * (Halo/RLM subprocess; `budgetExempt`, excluded from equal-k by construction). A user's
724
+ * (Halo/RLM subprocess; `budgetExempt`, refused by budgeted supervision). A user's
691
725
  * own agent (mastra/agno/raw HTTP/anything) is first-class by implementing this interface.
692
726
  */
693
727
  interface Executor<Out> {
694
728
  /** Stable runtime tag for traces + the equal-k exemption check. */
695
729
  readonly runtime: Runtime;
696
730
  /**
697
- * When true, this executor's spend is NOT metered against the conserved pool and its
698
- * iterations are excluded from the equal-k assertion (a `cli` subprocess without
699
- * token accounting). Fail-loud everywhere else: a metered executor MUST report usage.
731
+ * When true, this executor cannot report the usage a conserved pool would need (for example, a
732
+ * subscription CLI with no token receipt). `Executor` can still be used directly, but `Scope`
733
+ * refuses it before `execute` so unknown compute can never appear as measured zero in a
734
+ * supervised or equal-resource run. A metered executor MUST report usage.
700
735
  */
701
736
  readonly budgetExempt?: boolean;
702
737
  /**
@@ -709,10 +744,10 @@ interface Executor<Out> {
709
744
  * Optional inbox: receive an out-of-band message from the driver mid-run (the `send`/`steer_agent`
710
745
  * verb). A streaming executor drains pending messages between turns and folds them into the next
711
746
  * step (a steer / interrupt / resume). A one-shot executor that can't be steered mid-flight omits
712
- * this; `Scope.send` then returns `false` for it. Never throws — a malformed message is the
713
- * executor's to ignore.
747
+ * this; `Scope.send` then returns `false` for it. Never throws — an inbox that rejects a malformed
748
+ * message returns `false`, and that refusal propagates to the caller.
714
749
  */
715
- deliver?(msg: unknown): void;
750
+ deliver?(msg: unknown): void | boolean;
716
751
  /**
717
752
  * Optional LIVE progress: what this worker is doing RIGHT NOW, read synchronously and
718
753
  * cheaply while `execute` is still streaming. The scope already derives activity timing,
@@ -751,6 +786,15 @@ interface Executor<Out> {
751
786
  verdict?: DefaultVerdict;
752
787
  spent: Spend;
753
788
  };
789
+ /**
790
+ * Optional accounting split for recursive executors.
791
+ * `reported` is the child-work spend written on this node's settlement; `reservation` is the
792
+ * whole amount reconciled against this node's parent reservation.
793
+ * They differ when a driver owns a nested allocation: its child work and own inference consume
794
+ * that allocation together, while the journal keeps those two categories separate.
795
+ * Valid after `execute` resolves or throws; ordinary leaf executors omit it.
796
+ */
797
+ accounting?(): ExecutorAccounting | undefined;
754
798
  /**
755
799
  * A driver-executor's OWN-inference subtree total (rolled up from its nested tree's `metered`
756
800
  * events) — the parent scope journals it as a `metered` event for this node on settle, on BOTH
@@ -761,6 +805,24 @@ interface Executor<Out> {
761
805
  */
762
806
  metered?(): Spend | undefined;
763
807
  }
808
+ /** Why Runtime cannot provide structured tool-call evidence for one settled execution. */
809
+ 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';
810
+ /** Durable proof of a worker's structured tool trace, or the exact reason it is unavailable. */
811
+ type WorkerTraceEvidence = {
812
+ readonly status: 'available';
813
+ /** Content-addressed pointer to a persisted `WorkerToolTraceArtifact`. */
814
+ readonly traceRef: string;
815
+ readonly spanCount: number;
816
+ } | {
817
+ readonly status: 'unavailable';
818
+ readonly reason: WorkerTraceUnavailableReason;
819
+ };
820
+ /** Split used by a recursive executor when journaled child work differs from the full amount
821
+ * reconciled against its parent reservation. */
822
+ interface ExecutorAccounting {
823
+ readonly reported: Spend;
824
+ readonly reservation: Spend;
825
+ }
764
826
  /** Terminal artifact of a one-shot `Executor.execute`. */
765
827
  interface ExecutorResult<Out> {
766
828
  outRef: string;
@@ -799,11 +861,12 @@ type UsageEvent = {
799
861
  * External executors can register additional runtime strings without widening this type. */
800
862
  type Runtime = 'router' | 'inline' | 'sandbox' | 'cli' | (string & {});
801
863
  /**
802
- * `AgentProfile` does NOT carry a `harness`/backend field `harness` lives on the
803
- * sandbox SDK's `BackendConfig`, not the portable profile. So an agent is mapped to its
804
- * executor through this MINIMAL wrapper, never by fabricating a field onto `AgentProfile`.
864
+ * `AgentProfile.harness` is a portable preference; this wrapper records the executor decision for
865
+ * one concrete run. A caller may honor the preference, override it for a comparison cell, or supply
866
+ * an executor directly, without changing the profile's behavioral identity.
805
867
  *
806
868
  * Resolution (in `runtime.ts`):
869
+ * - `executorFactory` present → BYO: build it after admission with the live context.
807
870
  * - `executor` present → BYO: use it verbatim (a user's own `Executor`).
808
871
  * - `harness === null` → router/inline: a direct Router call, no box.
809
872
  * - `harness` is a `BackendType` → sandbox: compose `runAgentRounds` against `profile` on that backend.
@@ -813,9 +876,121 @@ interface AgentSpec {
813
876
  readonly profile: AgentProfile$1;
814
877
  /** `null` selects router/inline; a `BackendType` selects the sandboxed harness. */
815
878
  readonly harness: BackendType | null;
879
+ /** Trusted candidate/campaign attribution supplied by the caller. Profile/task digests are
880
+ * computed by Scope from the exact values it executes and cannot be supplied here. */
881
+ readonly execution?: AgentExecutionRef;
882
+ /** Per-spawn factory carrying caller configuration. Constructed only after admission, with the
883
+ * real child signal and nested-scope context. */
884
+ readonly executorFactory?: ExecutorFactory<unknown>;
816
885
  /** Bring-your-own executor: when set, overrides harness-based resolution entirely. */
817
886
  readonly executor?: Executor<unknown>;
818
887
  }
888
+ /** Caller-owned identity beyond the exact profile/task bytes Scope can compute itself. */
889
+ interface AgentExecutionRef {
890
+ readonly candidateDigest?: Sha256Digest;
891
+ readonly correlation?: Readonly<Record<string, string>>;
892
+ }
893
+ /** Durable identity of one realized node. Missing digests mean the input was not canonical JSON. */
894
+ interface NodeExecutionIdentity extends AgentExecutionRef {
895
+ readonly profileDigest?: Sha256Digest;
896
+ readonly taskDigest?: Sha256Digest;
897
+ }
898
+ /** A named model carried into an execution, or an explicit reason the exact model is unknowable. */
899
+ type MaterializedModelIdentity = {
900
+ readonly status: 'known';
901
+ readonly id: string;
902
+ } | {
903
+ readonly status: 'unknown';
904
+ readonly reason: string;
905
+ };
906
+ /** External execution identity that operators can use to join this node to its backend. */
907
+ interface MaterializedExecutionIdentity {
908
+ /** Backend-native identity kind, for example `request`, `session`, `run`, `process`, or `tree`. */
909
+ readonly kind: string;
910
+ readonly id: string;
911
+ }
912
+ /**
913
+ * Data-only declaration from trusted executor code about the exact sealed plan `execute` uses.
914
+ * Scope snapshots this value and computes the durable receipt; callers never provide digests.
915
+ */
916
+ interface ExecutorMaterialization {
917
+ /** Complete profile after trusted runtime-owned attachments or backend overlays were applied. */
918
+ readonly effectiveProfile: AgentProfile$1;
919
+ /** Concrete backend or harness selected for this run. */
920
+ readonly backend: string;
921
+ /** Exact selected model, or an explicit unknown reason. */
922
+ readonly model: MaterializedModelIdentity;
923
+ /** Backend-native session/run/request/process identity. */
924
+ readonly execution: MaterializedExecutionIdentity;
925
+ /** Named implementation that turns the effective profile into executable backend inputs. */
926
+ readonly materializer: string;
927
+ /** Finite JSON describing the exact materialization plan. Persisted by digest only. */
928
+ readonly plan: unknown;
929
+ /** Trusted runtime-only attachments, such as the coordination MCP. Persisted by digest only. */
930
+ readonly platformAttachments?: unknown;
931
+ }
932
+ /** Volatile execution routing that is true for one attempt but is not profile identity. The full
933
+ * binding is hashed and discarded; only the safe structural descriptor is journaled. */
934
+ interface ExecutorExecutionBinding {
935
+ readonly attemptId: string;
936
+ readonly binding: unknown;
937
+ readonly descriptor: Readonly<Record<string, string | number | boolean | null>>;
938
+ }
939
+ /** Why exact materialization evidence is unavailable for a node. */
940
+ type UnknownMaterializationReason = 'executor-did-not-report' | 'invalid-executor-report' | 'root-agent-did-not-report';
941
+ /** What the kernel can prove about one node's actual execution plan. */
942
+ type ProfileMaterializationReceipt = {
943
+ readonly status: 'known';
944
+ readonly authoredProfileDigest: Sha256Digest;
945
+ readonly effectiveProfileDigest: Sha256Digest;
946
+ readonly materializationPlanDigest: Sha256Digest;
947
+ readonly platformAttachmentsDigest?: Sha256Digest;
948
+ readonly runtime: Runtime;
949
+ readonly backend: string;
950
+ readonly model: MaterializedModelIdentity;
951
+ readonly execution: MaterializedExecutionIdentity;
952
+ readonly materializer: string;
953
+ } | {
954
+ readonly status: 'unknown';
955
+ readonly authoredProfileDigest?: Sha256Digest;
956
+ readonly runtime: Runtime;
957
+ readonly reason: UnknownMaterializationReason;
958
+ };
959
+ /** One attempt's immutable link from a stable materialization plan to its actual transport. */
960
+ type ExecutionBindingReceipt = {
961
+ readonly status: 'known';
962
+ readonly attemptId: string;
963
+ readonly materializationReceiptDigest: Sha256Digest;
964
+ readonly bindingDigest: Sha256Digest;
965
+ readonly descriptor: Readonly<Record<string, string | number | boolean | null>>;
966
+ } | {
967
+ readonly status: 'unknown';
968
+ readonly attemptId: string;
969
+ readonly materializationReceiptDigest: Sha256Digest;
970
+ readonly reason: UnknownMaterializationReason;
971
+ };
972
+ /** Trusted root composition evidence. Generic `Agent.act` roots omit this and remain unknown. */
973
+ type RootMaterialization = {
974
+ readonly runtime: Runtime;
975
+ readonly declaration: ExecutorMaterialization;
976
+ readonly binding: Omit<ExecutorExecutionBinding, 'attemptId'>;
977
+ } | {
978
+ /** The runtime-owned external adapter will publish the exact declaration after its dynamic
979
+ * platform attachment (for example a coordination URL) exists and before paid work starts. */
980
+ readonly runtime: Runtime;
981
+ readonly declaration: 'deferred';
982
+ /** Exact admitted profile used to validate the stable effective identity at publication. */
983
+ readonly authoredProfile: AgentProfile$1;
984
+ };
985
+ /** Kernel-owned context for the concrete supervised node a factory is constructing. */
986
+ interface ExecutorNodeContext {
987
+ readonly rootId: NodeId;
988
+ readonly parentId: NodeId;
989
+ readonly nodeId: NodeId;
990
+ /** Kernel-minted identity for this concrete execution attempt. */
991
+ readonly attemptId: string;
992
+ readonly identity?: NodeExecutionIdentity;
993
+ }
819
994
  /**
820
995
  * Builds a fresh `Executor` for one spawn from the resolved spec. Per-spawn (not
821
996
  * shared) so each child owns its own box/abort/teardown lifecycle. A BYO factory lets a
@@ -827,6 +1002,8 @@ type ExecutorFactory<Out> = (spec: AgentSpec, ctx: ExecutorContext) => Executor<
827
1002
  * the factory reaching into module globals. */
828
1003
  interface ExecutorContext {
829
1004
  readonly signal: AbortSignal;
1005
+ /** Present when Scope constructs the executor for a supervised node. */
1006
+ readonly node?: ExecutorNodeContext;
830
1007
  /** Opaque seams the registry threads through; a built-in narrows what it needs. */
831
1008
  readonly seams: Readonly<Record<string, unknown>>;
832
1009
  }
@@ -840,8 +1017,8 @@ interface ExecutorRegistry {
840
1017
  /** Register a factory for a named runtime. Throws on a duplicate name (fail loud). */
841
1018
  register<Out>(runtime: Runtime, factory: ExecutorFactory<Out>): void;
842
1019
  /**
843
- * Resolve a spec to a factory. Precedence: a BYO `spec.executor` → a trivial factory
844
- * returning it; else `harness === null` → the `'router'` factory; else a registered
1020
+ * Resolve a spec to a factory. Precedence: a BYO `spec.executorFactory` → `spec.executor`
1021
+ * `harness === null` → the `'router'` factory; else a registered
845
1022
  * factory for the harness-derived runtime. Returns a typed outcome — the caller
846
1023
  * inspects `succeeded` before `value` (no silent fallback).
847
1024
  */
@@ -890,6 +1067,9 @@ type NodeId = string;
890
1067
  interface SpawnOpts {
891
1068
  readonly budget: Budget;
892
1069
  readonly label: string;
1070
+ /** Manager-scoped semantic assignment identity. Unlike `key`, this names every spawn, including
1071
+ * unkeyed siblings, so product traces can join authorization, node, and backend execution. */
1072
+ readonly assignmentId?: string;
893
1073
  readonly restart?: Restart;
894
1074
  /** Teardown grace handed to the executor when this node is reaped. */
895
1075
  readonly shutdown?: number | 'brutalKill' | 'infinity';
@@ -906,13 +1086,17 @@ interface SpawnOpts {
906
1086
  readonly key?: string;
907
1087
  }
908
1088
  /** Fail-closed spawn rejections: an exhausted pool, a dollar request against a root that budgets
909
- * no dollars, an exceeded recursion ceiling, or a `key` that is still LIVE in this scope (the
910
- * same assignment may not run twice concurrently).
1089
+ * no dollars, an exceeded recursion ceiling, a full tree-wide worker allocation, or a `key` that
1090
+ * is still LIVE in this scope (the same assignment may not run twice concurrently).
911
1091
  *
912
1092
  * `usd-unbudgeted` is separate from `budget-exhausted` because the two call for opposite
913
1093
  * responses: an exhausted pool may admit a smaller request, while an unbudgeted dollar channel
914
- * refuses every amount until the ROOT budget names a `maxUsd`. */
915
- type SpawnRejection = 'budget-exhausted' | 'usd-unbudgeted' | 'depth-exceeded' | 'duplicate-key';
1094
+ * refuses every amount until the ROOT budget names a `maxUsd`.
1095
+ *
1096
+ * `below-runtime-floor` is separate for the same reason and points the opposite way from
1097
+ * `budget-exhausted`: the request is under what that harness spends before it reads its task, so
1098
+ * it is unsatisfiable at that SIZE and the fix is to RAISE it, never to retry smaller. */
1099
+ type SpawnRejection = 'budget-exhausted' | 'usd-unbudgeted' | 'below-runtime-floor' | 'depth-exceeded' | 'duplicate-key' | 'invalid-identity' | 'key-conflict' | 'max-live-workers' | 'scope-aborted';
916
1100
  /**
917
1101
  * What a KEYED spawn resolved to when the key had a prior attempt. Absent on a fresh key (and on
918
1102
  * every unkeyed spawn). `'completed'` is the exactly-once path: NOTHING was spawned — the handle
@@ -920,8 +1104,10 @@ type SpawnRejection = 'budget-exhausted' | 'usd-unbudgeted' | 'depth-exceeded' |
920
1104
  * `'lost'` DID spawn fresh: the prior attempt settled `down` (retried) or was journaled as
921
1105
  * started but never settled — the process died with it in flight and the built-in executors
922
1106
  * cannot re-attach to a dead process's work, so the result is explicitly in doubt (lost), never
923
- * silently duplicated. An executor that CAN re-attach to a still-running external execution (a
924
- * live sandbox box) extends this union with an adoption state; none of the built-ins can today.
1107
+ * silently duplicated. On restart, an in-doubt attempt's full declared reservation is charged and
1108
+ * its telemetry remains unknown; a fresh retry is admitted only from safely remaining capacity.
1109
+ * An executor that CAN re-attach to a still-running external execution extends this union with an
1110
+ * adoption state; none of the built-ins can today.
925
1111
  */
926
1112
  type SpawnPrior<Out = unknown> = {
927
1113
  readonly state: 'completed';
@@ -945,6 +1131,14 @@ interface Handle<Out> {
945
1131
  readonly id: NodeId;
946
1132
  readonly label: string;
947
1133
  readonly status: NodeStatus;
1134
+ /** Manager-scoped assignment identity supplied at admission. */
1135
+ readonly assignmentId?: string;
1136
+ /** Durable identity of the authorized profile/task/candidate represented by this handle. */
1137
+ readonly identity?: NodeExecutionIdentity;
1138
+ /** Stable execution plan once Runtime has committed it. */
1139
+ readonly materialization?: ProfileMaterializationReceipt;
1140
+ /** Immutable per-attempt backend bindings committed so far, oldest first. */
1141
+ readonly executionBindings?: ReadonlyArray<ExecutionBindingReceipt>;
948
1142
  abort(reason?: string): void;
949
1143
  /** Phantom: binds the handle to the child's output type so `spawn<C>` returns a
950
1144
  * `Handle<C>` distinct from a `Handle<other>`. Type-only — never present at runtime. */
@@ -962,6 +1156,10 @@ type Settled<Out> = {
962
1156
  outRef: string;
963
1157
  verdict?: DefaultVerdict;
964
1158
  spent: Spend;
1159
+ /** Structured tool evidence captured before this settlement was journaled. */
1160
+ trace: WorkerTraceEvidence;
1161
+ /** Epoch ms parsed from the durable settlement record when available. */
1162
+ settledAt?: number;
965
1163
  seq: number;
966
1164
  } | {
967
1165
  kind: 'down';
@@ -970,6 +1168,10 @@ type Settled<Out> = {
970
1168
  /** True = infrastructure failure (excluded from merge `n` / equal-k), not a bad result. */
971
1169
  infra: boolean;
972
1170
  restartCount: number;
1171
+ /** Partial structured tool evidence captured before this failure was journaled. */
1172
+ trace: WorkerTraceEvidence;
1173
+ /** Epoch ms parsed from the durable settlement/cancellation record when available. */
1174
+ settledAt?: number;
973
1175
  seq: number;
974
1176
  };
975
1177
  /**
@@ -980,13 +1182,17 @@ type Settled<Out> = {
980
1182
  */
981
1183
  interface Scope<Out> {
982
1184
  /**
983
- * Spawn a child. Reserves `opts.budget` from the conserved pool atomically; refunds the
984
- * unspent remainder on settle. Returns a typed outcome fail-closed on an exhausted
985
- * pool, an exceeded depth ceiling, or a still-live duplicate `key` (the caller inspects
986
- * `ok` before `handle`). A KEYED spawn whose key already settled `done` spends nothing:
987
- * it returns the committed result on `prior` instead of re-running (see `SpawnOpts.key`).
1185
+ * Spawn a child. For a fresh key or an unkeyed spawn, tree-wide worker admission happens before a
1186
+ * lazy factory is called, so a full worker allocation creates no worker, executor, or reservation.
1187
+ * Reserves `opts.budget` from the conserved pool atomically; refunds the unspent remainder on
1188
+ * settle. Returns a typed outcome fail-closed on an exhausted pool, an exceeded depth ceiling, a
1189
+ * full worker allocation, or a still-live duplicate `key` (the caller inspects `ok` before
1190
+ * `handle`). A KEYED spawn whose key already settled `done` invokes the factory only far enough to
1191
+ * prepare and authorize the exact profile/task identity, then compares that identity with the
1192
+ * journal. On a match it spends nothing, constructs no executor, reserves no budget, and runs no
1193
+ * work: it returns the committed result on `prior` (see `SpawnOpts.key`).
988
1194
  */
989
- spawn<C extends Out>(agent: Agent<unknown, C>, task: unknown, opts: SpawnOpts): {
1195
+ spawn<C extends Out>(agent: Agent<unknown, C> | (() => Agent<unknown, C>), task: unknown, opts: SpawnOpts): {
990
1196
  ok: true;
991
1197
  handle: Handle<C>;
992
1198
  prior?: SpawnPrior<C>;
@@ -1088,13 +1294,21 @@ interface Scope<Out> {
1088
1294
  /** Conserved-pool readouts (post-reservation). */
1089
1295
  readonly budget: Readonly<{
1090
1296
  tokensLeft: number;
1297
+ /** `false` once a turn settled without reporting its tokens: `tokensLeft` is then a ceiling,
1298
+ * not a measurement. */
1299
+ tokensKnown: boolean;
1091
1300
  usdLeft: number;
1092
1301
  usdCapped: boolean;
1302
+ usdKnown: boolean;
1303
+ iterationsLeft: number;
1093
1304
  deadlineMs: number;
1094
1305
  reservedTokens: number;
1095
- /** Present and `false` once a turn settled without reporting its tokens: `tokensLeft` is then
1096
- * a ceiling, not a measurement. Absent means every settled turn reported. */
1097
- tokensKnown?: boolean;
1306
+ }>;
1307
+ /** One tree-wide view of simultaneous spawned work. Every nested scope reads the same counter;
1308
+ * the root agent itself is not a spawned worker. `freeSlots` is `null` when no limit is set. */
1309
+ readonly workerCapacity: Readonly<{
1310
+ live: number;
1311
+ freeSlots: number | null;
1098
1312
  }>;
1099
1313
  }
1100
1314
  /**
@@ -1136,6 +1350,8 @@ interface ResumedWork<Out> {
1136
1350
  interface ResumedKeyState<Out = unknown> {
1137
1351
  readonly id: NodeId;
1138
1352
  readonly label: string;
1353
+ /** Identity recorded when this key was first admitted. Every reuse must match it exactly. */
1354
+ readonly identity?: NodeExecutionIdentity;
1139
1355
  readonly state: 'completed' | 'down' | 'in-doubt';
1140
1356
  /** The rehydrated settlement; absent exactly when `state` is `'in-doubt'`. */
1141
1357
  readonly settled?: Settled<Out>;
@@ -1147,10 +1363,23 @@ interface NodeSnapshot {
1147
1363
  readonly status: NodeStatus;
1148
1364
  readonly runtime: Runtime;
1149
1365
  readonly budget: Budget;
1366
+ /** Exact nested journal tree owned by this node, when Runtime attested recursive ownership. */
1367
+ readonly ownedTreeRoot?: NodeId;
1368
+ /** Manager-scoped assignment identity, including deterministic ids for unkeyed siblings. */
1369
+ readonly assignmentId?: string;
1370
+ readonly identity?: NodeExecutionIdentity;
1371
+ /** Kernel-owned execution evidence. `unknown` is distinct from a known zero/empty plan. */
1372
+ readonly materialization?: ProfileMaterializationReceipt;
1373
+ /** Immutable attempt bindings, oldest first. A retried/resumed node may have more than one. */
1374
+ readonly executionBindings?: ReadonlyArray<ExecutionBindingReceipt>;
1375
+ /** Epoch ms of the terminal journal record; absent while live or when legacy evidence lacks it. */
1376
+ readonly settledAt?: number;
1150
1377
  /** Conserved spend so far for this node. */
1151
1378
  readonly spent: Spend;
1152
1379
  /** `outRef` once the node is `done` (the replay/result pointer). */
1153
1380
  readonly outRef?: string;
1381
+ /** Present on terminal executor nodes; legacy records carry an explicit unavailable reason. */
1382
+ readonly trace?: WorkerTraceEvidence;
1154
1383
  }
1155
1384
  /** The live tree — what `scope.view` / `RootHandle.view()` materialize for a viewer. */
1156
1385
  interface TreeView {
@@ -1173,8 +1402,31 @@ type SpawnEvent = {
1173
1402
  /** The semantic spawn key (`SpawnOpts.key`), when the spawn carried one — what a resumed
1174
1403
  * run matches to resolve the same assignment to its committed result. */
1175
1404
  key?: string;
1405
+ /** Manager-scoped assignment identity used to join unkeyed and keyed work alike. */
1406
+ assignmentId?: string;
1176
1407
  budget: Budget;
1177
1408
  runtime: Runtime;
1409
+ /** Exact nested journal tree this node owns. Runtime writes this only after privately
1410
+ * attesting the executor as a recursive scope owner. Its absence means no tree is followed,
1411
+ * including records written before this field existed and caller leaves named `driver`. */
1412
+ ownedTreeRoot?: NodeId;
1413
+ /** Exact profile/task digests plus trusted candidate/campaign attribution when available. */
1414
+ identity?: NodeExecutionIdentity;
1415
+ seq: number;
1416
+ at: string;
1417
+ } | {
1418
+ /** Volatile transport/session binding for exactly one attempt. The full binding is retained
1419
+ * only by digest; descriptor fields are safe structural labels, never credential-bearing URLs. */
1420
+ kind: 'execution-bound';
1421
+ id: NodeId;
1422
+ binding: ExecutionBindingReceipt;
1423
+ seq: number;
1424
+ at: string;
1425
+ } | {
1426
+ /** Trusted runtime transformation from the authorized profile to actual wire bytes. */
1427
+ kind: 'materialized';
1428
+ id: NodeId;
1429
+ receipt: ProfileMaterializationReceipt;
1178
1430
  seq: number;
1179
1431
  at: string;
1180
1432
  } | {
@@ -1186,6 +1438,11 @@ type SpawnEvent = {
1186
1438
  verdict?: DefaultVerdict;
1187
1439
  spent: Spend;
1188
1440
  infra?: boolean;
1441
+ /** Exact child failure. Present on every new `status: 'down'` record; optional only so
1442
+ * journals written before this field existed remain replayable. */
1443
+ reason?: string;
1444
+ /** Structured tool evidence. Optional only for journals written before trace capture. */
1445
+ trace?: WorkerTraceEvidence;
1189
1446
  seq: number;
1190
1447
  at: string;
1191
1448
  } | {
@@ -1261,6 +1518,11 @@ interface Supervisor<Task, Out> {
1261
1518
  interface SupervisorOpts {
1262
1519
  /** The root conserved-pool ceiling (tokens + usd + iterations + deadline). */
1263
1520
  readonly budget: Budget;
1521
+ /** Exact root profile/task identity supplied by the one-call composition surface. */
1522
+ readonly rootIdentity?: NodeExecutionIdentity;
1523
+ /** Trusted composition evidence for a root whose `act` drives an external backend. A generic
1524
+ * root omits it and is durably marked unknown; model-facing Scope never receives this writer. */
1525
+ readonly rootMaterialization?: RootMaterialization;
1264
1526
  /** Trace-correlation root + the journal/blob root key. */
1265
1527
  readonly runId: NodeId;
1266
1528
  /** Event source — defaults to the in-memory journal in the impl; pass JSONL/FS for durability. */
@@ -1275,6 +1537,9 @@ interface SupervisorOpts {
1275
1537
  readonly probes?: WaitProbeRegistry;
1276
1538
  /** Runtime recursion-depth ceiling (paired with the conserved pool per R3). */
1277
1539
  readonly maxDepth?: number;
1540
+ /** Hard tree-wide cap on simultaneously executing spawned workers. The root is excluded; every
1541
+ * nested driver and leaf shares this one allocation. Omit/`<= 0` leaves worker count uncapped. */
1542
+ readonly maxLiveWorkers?: number;
1278
1543
  /**
1279
1544
  * OTP intensity breaker: more than `maxRestarts` child restarts within `withinMs`
1280
1545
  * trips the supervisor to `no-winner` rather than restarting forever.
@@ -1373,16 +1638,23 @@ type SupervisedResult<Out> = {
1373
1638
  * recoverable by the caller. A non-`Error` rejection is normalized, never dropped. */
1374
1639
  error: NoWinnerError;
1375
1640
  };
1376
- /** Live root handle — the substrate a chat/pi-viz client attaches to (Q2). `signal`
1377
- * delivers an out-of-band message to the running root; `view()` materializes the tree. */
1641
+ /** Live root handle — a chat/pi-viz client uses it to inspect and control one root run. */
1378
1642
  interface RootHandle<Out> {
1379
1643
  view(): TreeView;
1644
+ /** Optional for structural compatibility with existing view/signal/abort wrappers. Handles
1645
+ * minted by `createRootHandle` implement the required form in `SteerableRootHandle`. */
1646
+ deliver?(msg: unknown): boolean;
1380
1647
  signal(msg: RootSignal): void;
1381
1648
  abort(reason?: string): void;
1382
1649
  /** Phantom: binds the handle to the supervised run's output type. Type-only — never
1383
1650
  * present at runtime; lets `attach(h: RootHandle<Out>)` stay output-typed. */
1384
1651
  readonly __out?: Out;
1385
1652
  }
1653
+ /** A Runtime-minted root handle that can deliver raw steering or answers to a live manager inbox.
1654
+ * Delivery returns `false` when the manager has no receive path; detached calls fail loud. */
1655
+ interface SteerableRootHandle<Out> extends RootHandle<Out> {
1656
+ deliver(msg: unknown): boolean;
1657
+ }
1386
1658
  /** Out-of-band message to a running root. Open by intent — a client extends it. */
1387
1659
  type RootSignal = {
1388
1660
  kind: 'pause';
@@ -1452,6 +1724,8 @@ declare function resolveAgentEnvironmentProvider(provider: AgentEnvironmentProvi
1452
1724
  interface ProviderAsSandboxClientOptions {
1453
1725
  defaults?: Partial<CreateAgentEnvironmentInput>;
1454
1726
  requireTerminalEvent?: boolean;
1727
+ /** Require declared live continuation plus concrete session controls. */
1728
+ requireSession?: boolean;
1455
1729
  mapCreateOptions?: (options: CreateSandboxOptions | undefined) => Partial<CreateAgentEnvironmentInput>;
1456
1730
  }
1457
1731
  /** Adapt a neutral environment provider to the `SandboxClient` interface used by existing loop paths.
@@ -1484,5 +1758,5 @@ interface ProviderExecutorOptions {
1484
1758
  * @experimental */
1485
1759
  declare function providerAsExecutor(provider: AgentEnvironmentProvider, options?: ProviderExecutorOptions): ExecutorFactory<unknown>;
1486
1760
  //#endregion
1487
- export { ResumedWork as $, createRuntimeEventCollector as $t, providerAsSandboxClient as A, readWorkerProgress as An, EvalRunsExportResult as At, Executor as B, buildRuntimeEventOtelSpans as Bt, ProviderAsSandboxClientOptions as C, ActivityLog as Cn, TraceContext as Ct, WorkspaceRequest as D, ScopeProgressInput as Dn, EvalRunEvent as Dt, SandboxClientProviderOptions as E, ExecutorProgress as En, traceContextToEnv as Et, createTangleSandboxExactProcessProvider as F, OtelExporter as Ft, Handle as G, toOtelAttributes as Gt, ExecutorFactory as H, exportEvalRuns as Ht, Agent as I, OtelSpan as It, NodeSnapshot as J, RuntimeStreamEventSink as Jt, NoWinnerError as K, RuntimeEventCollector as Kt, AgentSpec as L, RuntimeEventOtelOptions as Lt, sandboxClientAsProvider as M, LoopSpanNode as Mt, CreateTangleSandboxExactProcessProviderOptions as N, OtelAttribute as Nt, createAgentEnvironmentProviderRegistry as O, WorkerProgress as On, EvalRunGeneration as Ot, SandboxControlClient as P, OtelExportConfig as Pt, ResumedKeyState as Q, SanitizedKnowledgeRequirement as Qt, Budget as R, buildLoopOtelSpans as Rt, PlacementInfo as S, sandboxSessionTraceSource as Sn, workerTraceSeamKey as St, ResourceRequest as T, DEFAULT_STALL_AFTER_MS as Tn, readTraceContextFromEnv as Tt, ExecutorRegistry as U, generateSpanId as Ut, ExecutorContext as V, createOtelExporter as Vt, ExecutorResult as W, loopEventToOtelSpan as Wt, Restart as X, RuntimeTelemetryOptions as Xt, NodeStatus as Y, RuntimeStreamEventSummary as Yt, ResultBlobStore as Z, SanitizedKnowledgeReadinessReport as Zt, CheckpointRequest as _, SessionTraceBox as _n, WidenGate as _t, AgentEnvironmentProviderRef as a, WaitOutcome as an, SpawnEvent as at, ExecResult as b, createPushTraceSource as bn, readWorkerTraceContext as bt, AgentEnvironmentStatus as c, WaitRejection as cn, SpawnPrior as ct, AgentSession as d, isWaitOutcome as dn, SupervisedResult as dt, createRuntimeStreamEventCollector as en, RootHandle as et, AgentSessionRef as f, pollFor as fn, Supervisor as ft, CheckpointRef as g, SessionMessageLike as gn, WaitOpts as gt, AgentTurnResult as h, waitUntil as hn, UsageEvent as ht, AgentEnvironmentProvider$1 as i, PendingWait as in, Settled as it, resolveAgentEnvironmentProvider as j, INTELLIGENCE_WIRE_VERSION as jt, providerAsExecutor as k, createActivityLog as kn, EvalRunsExportConfig as kt, AgentEnvironmentSummary as l, WaitSpec as ln, SpawnRejection as lt, AgentTurnInput$1 as m, validateWaitSpec as mn, TreeView as mt, AgentEnvironmentCapabilities$1 as n, sanitizeKnowledgeReadinessReport as nn, Runtime as nt, AgentEnvironmentProviderRegistry as o, WaitProbe as on, SpawnJournal as ot, AgentSessionStatus as p, timerAt as pn, SupervisorOpts as pt, NodeId as q, RuntimeStreamEventCollector as qt, AgentEnvironmentEvent as r, sanitizeRuntimeStreamEvent as rn, Scope as rt, AgentEnvironmentQuery as s, WaitProbeRegistry as sn, SpawnOpts as st, AgentEnvironment as t, sanitizeAgentRuntimeEvent as tn, RootSignal as tt, AgentProfileRef$1 as u, createWaitProbes as un, Spend as ut, CreateAgentEnvironmentInput$1 as v, ToolStepInput as vn, WorkerTraceResolver as vt, ProviderExecutorOptions as w, ActivityNote as wn, createPropagatingTraceEmitter as wt, ForkRequest as x, decodeToolPart as xn, workerTraceEnv as xt, ExecRequest as y, TraceSource as yn, WorkerTraceSeamCarrier as yt, DefaultVerdict as z, buildLoopSpanNodes as zt };
1488
- //# sourceMappingURL=environment-provider-CWsRh6Uz.d.ts.map
1761
+ export { MaterializedModelIdentity as $, buildLoopOtelSpans as $t, providerAsSandboxClient as A, validateWaitSpec as An, WidenGate as At, DefaultVerdict as B, ActivityNote as Bn, readTraceContextFromEnv as Bt, ProviderAsSandboxClientOptions as C, WaitProbeRegistry as Cn, SupervisedResult as Ct, WorkspaceRequest as D, isWaitOutcome as Dn, UnknownMaterializationReason as Dt, SandboxClientProviderOptions as E, createWaitProbes as En, TreeView as Et, createTangleSandboxExactProcessProvider as F, TraceSource as Fn, readWorkerTraceContext as Ft, ExecutorExecutionBinding as G, createActivityLog as Gn, EvalRunsExportResult as Gt, Executor as H, ExecutorProgress as Hn, EvalRunEvent as Ht, Agent as I, createPushTraceSource as In, workerTraceEnv as It, ExecutorNodeContext as J, OtelAttribute as Jt, ExecutorFactory as K, readWorkerProgress as Kn, INTELLIGENCE_WIRE_VERSION as Kt, AgentExecutionRef as L, decodeToolPart as Ln, workerTraceSeamKey as Lt, sandboxClientAsProvider as M, SessionMessageLike as Mn, WorkerTraceUnavailableReason as Mt, CreateTangleSandboxExactProcessProviderOptions as N, SessionTraceBox as Nn, WorkerTraceResolver as Nt, createAgentEnvironmentProviderRegistry as O, pollFor as On, UsageEvent as Ot, SandboxControlClient as P, ToolStepInput as Pn, WorkerTraceSeamCarrier as Pt, MaterializedExecutionIdentity as Q, RuntimeEventOtelOptions as Qt, AgentSpec as R, sandboxSessionTraceSource as Rn, TraceContext as Rt, PlacementInfo as S, WaitProbe as Sn, SteerableRootHandle as St, ResourceRequest as T, WaitSpec as Tn, SupervisorOpts as Tt, ExecutorAccounting as U, ScopeProgressInput as Un, EvalRunGeneration as Ut, ExecutionBindingReceipt as V, DEFAULT_STALL_AFTER_MS as Vn, traceContextToEnv as Vt, ExecutorContext as W, WorkerProgress as Wn, EvalRunsExportConfig as Wt, ExecutorResult as X, OtelExporter as Xt, ExecutorRegistry as Y, OtelExportConfig as Yt, Handle as Z, OtelSpan as Zt, CheckpointRequest as _, sanitizeAgentRuntimeEvent as _n, SpawnJournal as _t, AgentEnvironmentProviderRef as a, generateSpanId as an, ProfileMaterializationReceipt as at, ExecResult as b, PendingWait as bn, SpawnRejection as bt, AgentEnvironmentStatus as c, RuntimeEventCollector as cn, ResumedKeyState as ct, AgentSession as d, RuntimeStreamEventSummary as dn, RootMaterialization as dt, buildLoopSpanNodes as en, NoWinnerError as et, AgentSessionRef as f, RuntimeTelemetryOptions as fn, RootSignal as ft, CheckpointRef as g, createRuntimeStreamEventCollector as gn, SpawnEvent as gt, AgentTurnResult as h, createRuntimeEventCollector as hn, Settled as ht, AgentEnvironmentProvider$1 as i, exportEvalRuns as in, NodeStatus as it, resolveAgentEnvironmentProvider as j, waitUntil as jn, WorkerTraceEvidence as jt, providerAsExecutor as k, timerAt as kn, WaitOpts as kt, AgentEnvironmentSummary as l, RuntimeStreamEventCollector as ln, ResumedWork as lt, AgentTurnInput$1 as m, SanitizedKnowledgeRequirement as mn, Scope as mt, AgentEnvironmentCapabilities$1 as n, createOpenInferenceFileExporter as nn, NodeId as nt, AgentEnvironmentProviderRegistry as o, loopEventToOtelSpan as on, Restart as ot, AgentSessionStatus as p, SanitizedKnowledgeReadinessReport as pn, Runtime as pt, ExecutorMaterialization as q, LoopSpanNode as qt, AgentEnvironmentEvent as r, createOtelExporter as rn, NodeSnapshot as rt, AgentEnvironmentQuery as s, toOtelAttributes as sn, ResultBlobStore as st, AgentEnvironment as t, buildRuntimeEventOtelSpans as tn, NodeExecutionIdentity as tt, AgentProfileRef$1 as u, RuntimeStreamEventSink as un, RootHandle as ut, CreateAgentEnvironmentInput$1 as v, sanitizeKnowledgeReadinessReport as vn, SpawnOpts as vt, ProviderExecutorOptions as w, WaitRejection as wn, Supervisor as wt, ForkRequest as x, WaitOutcome as xn, Spend as xt, ExecRequest as y, sanitizeRuntimeStreamEvent as yn, SpawnPrior as yt, Budget as z, ActivityLog as zn, createPropagatingTraceEmitter as zt };
1762
+ //# sourceMappingURL=environment-provider-Bh4nX2qt.d.ts.map