@tangle-network/agent-runtime 0.263.0 → 0.266.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 (58) hide show
  1. package/dist/{activation-D_sIIewf.js → activation-BERiJjx5.js} +2 -2
  2. package/dist/{activation-D_sIIewf.js.map → activation-BERiJjx5.js.map} +1 -1
  3. package/dist/{activation-DJlWM1JN.d.ts → activation-VpxSbDKJ.d.ts} +2 -2
  4. package/dist/agent.d.ts +2 -2
  5. package/dist/agent.js +2 -2
  6. package/dist/{coordination-driver-L9zH0kBx.js → coordination-driver-DdZ-nh_4.js} +73 -39
  7. package/dist/coordination-driver-DdZ-nh_4.js.map +1 -0
  8. package/dist/{delegate-Cv-w2WgY.js → delegate-Ajx_PVyu.js} +3 -3
  9. package/dist/delegate-Ajx_PVyu.js.map +1 -0
  10. package/dist/durable.d.ts +2 -2
  11. package/dist/durable.js +2 -2
  12. package/dist/{graph-Cusg4eAx.js → graph-CK50N9vG.js} +7 -5
  13. package/dist/graph-CK50N9vG.js.map +1 -0
  14. package/dist/{improvement-cycle-_IPwoII2.js → improvement-cycle-GRPoHLm1.js} +3 -3
  15. package/dist/{improvement-cycle-_IPwoII2.js.map → improvement-cycle-GRPoHLm1.js.map} +1 -1
  16. package/dist/{index-DLYBQFyl.d.ts → index-CU2mlMfc.d.ts} +61 -73
  17. package/dist/index.d.ts +6 -6
  18. package/dist/index.js +7 -7
  19. package/dist/intelligence.d.ts +3 -3
  20. package/dist/intelligence.js +3 -3
  21. package/dist/kernel.d.ts +4 -4
  22. package/dist/kernel.js +9 -9
  23. package/dist/{loop-runner-bin-BL8--Dzr.d.ts → loop-runner-bin-XKZXM08Q.d.ts} +3 -3
  24. package/dist/{loop-runner-bin-NWPIxiix.js → loop-runner-bin-cC16EPUq.js} +3 -3
  25. package/dist/{loop-runner-bin-NWPIxiix.js.map → loop-runner-bin-cC16EPUq.js.map} +1 -1
  26. package/dist/loop-runner-bin.d.ts +1 -1
  27. package/dist/loop-runner-bin.js +1 -1
  28. package/dist/mcp/bin.js +3 -3
  29. package/dist/mcp/index.d.ts +5 -5
  30. package/dist/mcp/index.js +4 -4
  31. package/dist/{openai-tools-B9x50W9Y.d.ts → openai-tools-D3ajI_D2.d.ts} +2 -2
  32. package/dist/profiles.d.ts +2 -2
  33. package/dist/{provision-supervisor-CIKvsWDa.js → provision-supervisor-Bf_bPaCv.js} +4 -4
  34. package/dist/{provision-supervisor-CIKvsWDa.js.map → provision-supervisor-Bf_bPaCv.js.map} +1 -1
  35. package/dist/{runtime-4NuCVO6X.js → runtime-hOLlAc1i.js} +938 -18
  36. package/dist/runtime-hOLlAc1i.js.map +1 -0
  37. package/dist/{server-BnYImvnx.js → server-DOb67ohd.js} +3 -3
  38. package/dist/{server-BnYImvnx.js.map → server-DOb67ohd.js.map} +1 -1
  39. package/dist/{stream-agent-turn-Y5rUc6Q-.d.ts → stream-agent-turn-Gw9hLpBn.d.ts} +182 -3
  40. package/dist/{structural-rollout-Bq3PNAun.js → structural-rollout-DV9YoQF6.js} +2 -2
  41. package/dist/{structural-rollout-Bq3PNAun.js.map → structural-rollout-DV9YoQF6.js.map} +1 -1
  42. package/dist/{substrate-Ce302oia.d.ts → substrate-CLt9S9ym.d.ts} +2 -2
  43. package/dist/{supervise-RF3_8PuR.js → supervise--njTtSL3.js} +82 -27
  44. package/dist/supervise--njTtSL3.js.map +1 -0
  45. package/dist/{supervisor-BeW08Ncp.js → supervisor-B8UMAXya.js} +995 -402
  46. package/dist/supervisor-B8UMAXya.js.map +1 -0
  47. package/dist/testing.d.ts +2 -2
  48. package/dist/testing.js +12 -12
  49. package/dist/tui/index.d.ts +1 -1
  50. package/dist/tui/index.js +1 -1
  51. package/dist/{types-C-nszovv.d.ts → types-CrnwLVYQ.d.ts} +217 -38
  52. package/package.json +2 -2
  53. package/dist/coordination-driver-L9zH0kBx.js.map +0 -1
  54. package/dist/delegate-Cv-w2WgY.js.map +0 -1
  55. package/dist/graph-Cusg4eAx.js.map +0 -1
  56. package/dist/runtime-4NuCVO6X.js.map +0 -1
  57. package/dist/supervise-RF3_8PuR.js.map +0 -1
  58. package/dist/supervisor-BeW08Ncp.js.map +0 -1
package/dist/testing.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { $a as SuperviseTestOptions, $t as runGraphWithTestBrain, Ao as supervisorAgentWithTestBrain, Tn as driverAgent, Yt as RunGraphTestOptions, to as superviseWithTestBrain, wn as DriverAgentOptions, xo as SupervisorAgentTestDeps } from "./index-DLYBQFyl.js";
2
- import { On as ToolLoopCallContext, kn as ToolLoopChat } from "./stream-agent-turn-Y5rUc6Q-.js";
1
+ import { $a as SuperviseTestOptions, Ao as supervisorAgentWithTestBrain, Tn as driverAgent, Zt as RunGraphTestOptions, tn as runGraphWithTestBrain, to as superviseWithTestBrain, wn as DriverAgentOptions, xo as SupervisorAgentTestDeps } from "./index-CU2mlMfc.js";
2
+ import { Hn as ToolLoopChat, Vn as ToolLoopCallContext } from "./stream-agent-turn-Gw9hLpBn.js";
3
3
  import { AgentImprovementProposal, AgentProfile, AgentProfileImprovementMeasuredComparison, SandboxSizePreset } from "@tangle-network/agent-interface";
4
4
  //#region src/testing/index.d.ts
5
5
  /** A proposal produced by Runtime's opaque profile-improvement path. */
package/dist/testing.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { C as canonicalCandidateDigest$1, D as immutableCandidateValue } from "./workspace-archive-C9lgf77y.js";
2
- import { f as verifyAgentImprovementProposal } from "./improvement-cycle-_IPwoII2.js";
2
+ import { f as verifyAgentImprovementProposal } from "./improvement-cycle-GRPoHLm1.js";
3
3
  import { i as applyExactAgentProfileDiff, p as parseExactAgentProfile } from "./profile-D3eXNBQV.js";
4
- import { a as superviseWithTestBrain, h as supervisorAgentWithTestBrain } from "./supervise-RF3_8PuR.js";
5
- import { r as driverAgent } from "./coordination-driver-L9zH0kBx.js";
6
- import { i as runGraphWithTestBrain } from "./graph-Cusg4eAx.js";
4
+ import { r as driverAgent } from "./coordination-driver-DdZ-nh_4.js";
5
+ import { a as superviseWithTestBrain, h as supervisorAgentWithTestBrain } from "./supervise--njTtSL3.js";
6
+ import { i as runGraphWithTestBrain } from "./graph-CK50N9vG.js";
7
7
  import { SANDBOX_SIZE_PRESET_NAMES } from "@tangle-network/agent-interface";
8
8
  //#region src/testing/fixtures/agent-improvement-proposal.json
9
9
  var agent_improvement_proposal_default = {
10
10
  changedSurfaces: ["prompt"],
11
- digest: "sha256:5f4f50e85d413caae43b957dbf580ca7a0cc00cb7279f0dd8cfb6babf743079b",
11
+ digest: "sha256:b4ce9950c510d96ecccbb6b3134cca32fe0dcf821aef326e0b34010471dc5fc1",
12
12
  evaluation: {
13
13
  "decision": {
14
14
  "contributingChecks": [
@@ -4579,7 +4579,7 @@ var agent_improvement_proposal_default = {
4579
4579
  ],
4580
4580
  "metadata": {
4581
4581
  "fixture": "agent-improvement-proposal",
4582
- "runtimeVersion": "0.263.0"
4582
+ "runtimeVersion": "0.266.0"
4583
4583
  },
4584
4584
  "objectives": [
4585
4585
  {
@@ -4690,8 +4690,8 @@ var agent_improvement_proposal_default = {
4690
4690
  "baselineContentHash": "sha256:5c21ee53e513fc604cb09754e21c392b24a424da0ef37dbf8f1ee4a8a0b08f09",
4691
4691
  "candidateContentHash": "sha256:60fcbb1c728194bd51d7d19cb732d1c3f1881dce7e0a6266b41c8b98cfd65693",
4692
4692
  "kind": "agent-eval-loop",
4693
- "recordDigest": "sha256:4c02cbe588b9ab34cd220f4331be18660a69416376b878bc88c2b04309aaf3b0",
4694
- "runId": "agent-runtime-0.263.0-proposal-fixture",
4693
+ "recordDigest": "sha256:38b07934c181f4f92d397194fd50a1ddf303fe599d53feccced96ee75e3f0299",
4694
+ "runId": "agent-runtime-0.266.0-proposal-fixture",
4695
4695
  "schema": "agent-candidate-experiment"
4696
4696
  }
4697
4697
  },
@@ -4714,13 +4714,13 @@ var agent_improvement_proposal_default = {
4714
4714
  }],
4715
4715
  kind: "agent-improvement-proposal",
4716
4716
  proposedAt: "2026-07-10T01:00:00.000Z",
4717
- runId: "agent-runtime-0.263.0-proposal-fixture"
4717
+ runId: "agent-runtime-0.266.0-proposal-fixture"
4718
4718
  };
4719
4719
  //#endregion
4720
4720
  //#region src/testing/fixtures/agent-profile-improvement-proposal.json
4721
4721
  var agent_profile_improvement_proposal_default = {
4722
4722
  changedSurfaces: ["prompt", "skills"],
4723
- digest: "sha256:35bab5a60f089a9a21f66cb3f057c29f407602648d833d1fbfadfdc177e50645",
4723
+ digest: "sha256:6320cd1100f5e0b06dd69176b4aa65ca738ab573b79edef05673db16357a4547",
4724
4724
  evaluation: {
4725
4725
  "decision": {
4726
4726
  "contributingChecks": [
@@ -6354,7 +6354,7 @@ var agent_profile_improvement_proposal_default = {
6354
6354
  ],
6355
6355
  "metadata": {
6356
6356
  "fixture": "agent-profile-improvement-proposal",
6357
- "runtimeVersion": "0.263.0"
6357
+ "runtimeVersion": "0.266.0"
6358
6358
  },
6359
6359
  "objectives": [
6360
6360
  {
@@ -6465,7 +6465,7 @@ var agent_profile_improvement_proposal_default = {
6465
6465
  "baselineContentHash": "sha256:21c495a37c418c10bde64fbaa188beddeed31f1f051ea60a6a6582a9ee0db704",
6466
6466
  "candidateContentHash": "sha256:103f77bc8481601eef1ad5fe6ba84a40dffabc3a44f421f8c8559121edab84e9",
6467
6467
  "kind": "agent-eval-loop",
6468
- "recordDigest": "sha256:23893fc7f2a2f713647c2b049a34a4bc4de4960616160790014f807b900f61b1",
6468
+ "recordDigest": "sha256:76a0368ba73c6f3e5e4c18daab0019ef6b95e634fcffc4601d2436c4c8471db6",
6469
6469
  "runId": "profile-improvement-1",
6470
6470
  "schema": "agent-profile-improvement-experiment"
6471
6471
  }
@@ -1,4 +1,4 @@
1
- import { Ct as ProvisionedSupervisor, St as ProvisionSupervisorRequest, Tt as provisionSupervisor, wt as SupervisorCleanupReceipt, xt as ProvisionSupervisorConnection } from "../index-DLYBQFyl.js";
1
+ import { Ct as ProvisionSupervisorConnection, Dt as provisionSupervisor, Et as SupervisorCleanupReceipt, Tt as ProvisionedSupervisor, wt as ProvisionSupervisorRequest } from "../index-CU2mlMfc.js";
2
2
  //#region src/tui/top-app.d.ts
3
3
  /**
4
4
  * The interactive side of the supervisor-run TUI: a keypress/mouse loop over the frames
package/dist/tui/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { t as provisionSupervisor } from "../provision-supervisor-CIKvsWDa.js";
1
+ import { t as provisionSupervisor } from "../provision-supervisor-Bf_bPaCv.js";
2
2
  import { a as renderTopFrameWithLayout, i as renderTopFrame, n as runTopApp, r as loadTopSnapshot, t as renderTopOnce } from "../top-app-VAOrBskv.js";
3
3
  export { loadTopSnapshot, provisionSupervisor, renderTopFrame, renderTopFrameWithLayout, renderTopOnce, runTopApp };
@@ -1403,6 +1403,30 @@ type BudgetReadout = Readonly<{
1403
1403
  deadlineMs: number;
1404
1404
  reservedTokens: number;
1405
1405
  }>;
1406
+ /** The part of each channel a reservation must leave free: a manager's own share of its slice,
1407
+ * which its children may not reserve. */
1408
+ interface ReservationFloor {
1409
+ readonly tokens: number;
1410
+ readonly iterations: number;
1411
+ readonly usd?: number;
1412
+ }
1413
+ /** How a caller asks for a reservation. */
1414
+ interface ReserveOptions {
1415
+ /** Wait for budget instead of failing, when the reservations still open would return enough.
1416
+ * The reservation then holds nothing until it is granted. */
1417
+ readonly wait?: boolean;
1418
+ /** Leave this much of each channel free after the reservation. */
1419
+ readonly keep?: ReservationFloor;
1420
+ }
1421
+ /**
1422
+ * A waiting reservation that can never be granted: every open reservation settled and the free
1423
+ * balance still cannot cover it. `shortfalls` are the channels that did not fit at that moment.
1424
+ */
1425
+ declare class ReservationWaitRefused extends Error {
1426
+ readonly reason: "budget-exhausted";
1427
+ readonly shortfalls: readonly ReservationShortfall[];
1428
+ constructor(shortfalls: readonly ReservationShortfall[]);
1429
+ }
1406
1430
  /** Why a reservation was refused. `budget-exhausted` means the pool ran out of a channel it
1407
1431
  * budgets; `usd-unbudgeted` means the root declared no dollar ceiling, so a dollar request is
1408
1432
  * unsatisfiable at any amount and the fix is to budget the root, not to ask for less. */
@@ -1420,6 +1444,9 @@ interface ReservationShortfall {
1420
1444
  readonly channel: 'tokens' | 'iterations' | 'usd' | `resource:${string}`;
1421
1445
  readonly requested: number;
1422
1446
  readonly free: number;
1447
+ /** What open reservations hold on this channel, when they hold any. A request of at most
1448
+ * `free + held` can wait for them to settle; a larger one never fits. */
1449
+ readonly held?: number;
1423
1450
  readonly closedByUnknownSpend?: true;
1424
1451
  }
1425
1452
  /** State recovered from a prior process before new work is admitted. `committed` is measured spend
@@ -1435,10 +1462,17 @@ interface BudgetPool {
1435
1462
  * Atomically reserve a child's full ceiling from the free balance. Fails closed
1436
1463
  * ({ ok: false }) when the pool can't cover standard or named channels — the
1437
1464
  * caller inspects `ok` before `ticket`.
1465
+ *
1466
+ * With `wait`, a request the free balance cannot cover now, but could once the open reservations
1467
+ * return, is admitted as a WAITING ticket: `granted` resolves when the pool reserves it, and
1468
+ * rejects with {@link ReservationWaitRefused} once nothing open could return enough. A waiting
1469
+ * ticket reserves nothing; reconciling it withdraws it. While any ticket waits, a new waiting
1470
+ * request queues behind it even when it would fit, so the order of asking is the order of grant.
1438
1471
  */
1439
- reserve(b: Budget, holder?: ReservationHolder): {
1472
+ reserve(b: Budget, holder?: ReservationHolder, options?: ReserveOptions): {
1440
1473
  ok: true;
1441
1474
  ticket: ReservationTicket;
1475
+ granted?: Promise<void>;
1442
1476
  } | {
1443
1477
  ok: false;
1444
1478
  reason: ReservationRejection;
@@ -1770,6 +1804,55 @@ type RecoverRetainedRunResult = {
1770
1804
  readonly environment: AgentEnvironment;
1771
1805
  };
1772
1806
  //#endregion
1807
+ //#region src/runtime/supervise/worker-slots.d.ts
1808
+ /**
1809
+ * Worker slots: the one bound on how many spawned agents work at the same time.
1810
+ *
1811
+ * Every scope of a supervised tree draws from one allocator. A host that runs several trees in one
1812
+ * process can pass the same allocator to each of them, and the bound then holds across all of them.
1813
+ *
1814
+ * A spawn past the bound is never refused. It keeps its reserved budget slice and waits in a queue,
1815
+ * and it starts when a slot frees. The queue releases the deepest spawn first and then the oldest,
1816
+ * so a subtree that is already paid for finishes before the tree grows wider.
1817
+ *
1818
+ * A slot counts a working agent: a spawned agent that runs with no running child of its own. A
1819
+ * manager whose children are all running is waiting on them, so its first running child takes over
1820
+ * the manager's slot and the manager takes it back when its last running child ends. This makes
1821
+ * nested waits deadlock-free: a manager can always run one child on its own slot, so a queued subtree
1822
+ * always keeps a path to completion, whatever the bound and however deep the tree.
1823
+ *
1824
+ * The bound therefore limits working agents, not environments. The environments alive at one time
1825
+ * can exceed it by the number of managers that have a running child. The conserved budget pool and
1826
+ * the deadline bound the total work; this allocator only bounds how much of it runs at once.
1827
+ *
1828
+ * @experimental
1829
+ */
1830
+ /** A fleet-wide bound on concurrently working agents, with a queue for the spawns past it. */
1831
+ interface WorkerSlots {
1832
+ /** The bound on working agents, or `undefined` when only the budget bounds concurrency. */
1833
+ readonly max: number | undefined;
1834
+ /** Working agents that hold a slot now. */
1835
+ readonly working: number;
1836
+ /** Spawns that hold a budget slice and wait for a slot. */
1837
+ readonly queued: number;
1838
+ }
1839
+ /**
1840
+ * One held or awaited slot. `ready` resolves when the slot is granted; `granted` reads whether it
1841
+ * has been. `release` returns the slot, or withdraws a request that is still queued, and is
1842
+ * idempotent.
1843
+ */
1844
+ interface SlotPermit {
1845
+ readonly ready: Promise<void>;
1846
+ readonly granted: boolean;
1847
+ release(): void;
1848
+ }
1849
+ /**
1850
+ * Create a worker-slot allocator. `max` omitted, `0`, or negative leaves concurrency bounded by the
1851
+ * budget alone, and every spawn starts at once. Pass the returned allocator as `workerSlots` to each
1852
+ * run that should share one bound.
1853
+ */
1854
+ declare function createWorkerSlots(max?: number): WorkerSlots;
1855
+ //#endregion
1773
1856
  //#region src/errors.d.ts
1774
1857
  /**
1775
1858
  *
@@ -1915,6 +1998,18 @@ declare class RetainedRunDispatchBindingError extends AgentEvalError {
1915
1998
  });
1916
1999
  }
1917
2000
  //#endregion
2001
+ //#region src/runtime/supervise/upstream-unavailable.d.ts
2002
+ /** How long an agent waits after its upstream refused a turn for capacity: the codes and
2003
+ * statuses `upstreamUnavailableSignal` reads. A pause is not a failure: a driver spends neither
2004
+ * `maxAttempts` nor `maxConsecutiveFailures` on it. */
2005
+ interface UnavailablePausePolicy {
2006
+ /** The first pause, doubling per consecutive refusal. Default 15000ms. */
2007
+ readonly unavailablePauseMs?: number;
2008
+ /** Ceiling on the doubling. Default 300000ms, so a long outage costs at most twelve turns an
2009
+ * hour. */
2010
+ readonly maxUnavailablePauseMs?: number;
2011
+ }
2012
+ //#endregion
1918
2013
  //#region src/runtime/supervise/driver-retry.d.ts
1919
2014
  /** The scope's live conserved-pool readout — the retry's real bound. Indexed off `Scope` so this
1920
2015
  * module tracks the pool's shape rather than restating it. */
@@ -1924,7 +2019,7 @@ type DriverBudgetReadout = Scope<unknown>['budget'];
1924
2019
  type DriverContractState = 'met' | 'unmet' | 'none';
1925
2020
  /** How hard the root driver is retried after a transient failure. The defaults retry; a caller
1926
2021
  * that wants the pre-#741 behavior sets `enabled: false` and owns the consequence. */
1927
- interface DriverRetryPolicy {
2022
+ interface DriverRetryPolicy extends UnavailablePausePolicy {
1928
2023
  /** `false` restores the historical behavior: the first driver failure ends the run. */
1929
2024
  readonly enabled?: boolean;
1930
2025
  /** Consecutive failures that changed NOTHING (no metered spend, no settlement, no submission)
@@ -1938,13 +2033,6 @@ interface DriverRetryPolicy {
1938
2033
  readonly initialBackoffMs?: number;
1939
2034
  /** Ceiling on the doubling. Default 30000ms. */
1940
2035
  readonly maxBackoffMs?: number;
1941
- /** Pause before re-entering after the upstream was unavailable (see
1942
- * {@link upstreamUnavailableSignal}), doubling per consecutive pause. Default 15000ms. A pause
1943
- * is not a failure: it consumes neither `maxAttempts` nor `maxConsecutiveFailures`. */
1944
- readonly unavailablePauseMs?: number;
1945
- /** Ceiling on the pause doubling. Default 300000ms, so a long outage costs at most twelve
1946
- * re-entries an hour. */
1947
- readonly maxUnavailablePauseMs?: number;
1948
2036
  }
1949
2037
  /** Why the retry loop stopped. `completed` is the only non-failure. */
1950
2038
  type DriverAttemptStop = 'completed' | 'terminal-error' | 'retry-disabled' | 'aborted' | 'budget-exhausted' | 'deadline' | 'no-progress' | 'max-attempts';
@@ -2080,8 +2168,9 @@ declare const DEFAULT_MAX_BARREN_REPROMPTS = 2;
2080
2168
  *
2081
2169
  * - `terminal`: Runtime's own refusal, or a request that fails identically forever. The run ends.
2082
2170
  * - `transient`: a foreign accident. It is retried under `maxAttempts` and the barren streak.
2083
- * - `unavailable`: the upstream refused for capacity (quota, rate limit, overload). The driver
2084
- * pauses and re-enters, and only the deadline, the budget, and cancellation bound the pauses.
2171
+ * - `unavailable`: the upstream cannot serve now (quota, rate limit, overload, or the router's
2172
+ * own provider credential refused). The driver pauses and re-enters, and only the deadline, the
2173
+ * budget, and cancellation bound the pauses.
2085
2174
  */
2086
2175
  type DriverFailureClass = 'transient' | 'terminal' | 'unavailable';
2087
2176
  /**
@@ -2125,8 +2214,10 @@ interface DriverLoopRecord {
2125
2214
  readonly failureRetries: number;
2126
2215
  /** Re-entries after the upstream refused a drive for capacity. Each is a pause, not a failure. */
2127
2216
  readonly unavailablePauses: number;
2128
- /** Infrastructure time the unavailable upstream cost this loop: every refused drive's duration
2129
- * plus the pause after it. */
2217
+ /** Infrastructure time the unavailable upstream cost this loop: every pause, plus every refused
2218
+ * drive that made no progress. A refused drive that made progress was mostly work, so only its
2219
+ * pause counts. Measured 2026-09-24 on a real run: a first drive worked 8 minutes before its
2220
+ * refusal, and counting its whole duration doubled a 10-minute outage to 16 minutes. */
2130
2221
  readonly unavailableMs: number;
2131
2222
  /** Re-entered drives, in a row at the end, that completed without a delivery. */
2132
2223
  readonly barrenReentries: number;
@@ -2352,6 +2443,23 @@ interface ExecutorProgress {
2352
2443
  /** A one-line human-readable state ("turn 3, running tests"). */
2353
2444
  readonly note?: string;
2354
2445
  }
2446
+ /** The team a worker leads, as its own lead observes it mid-flight: every agent below the worker,
2447
+ * at every depth. A lead reads this instead of the team's raw outputs, so the read stays bounded
2448
+ * however large the team grows. */
2449
+ interface TeamProgress {
2450
+ /** Agents spawned below the worker, at every depth. */
2451
+ readonly agents: number;
2452
+ /** Levels below the worker: `1` when it leads only workers that lead no one. */
2453
+ readonly depth: number;
2454
+ /** Agents below it that hold a worker slot and are running. */
2455
+ readonly working: number;
2456
+ /** Agents below it waiting for a worker slot. */
2457
+ readonly queued: number;
2458
+ /** Agents below it that settled done. */
2459
+ readonly done: number;
2460
+ /** Agents below it that settled down or were cancelled. */
2461
+ readonly down: number;
2462
+ }
2355
2463
  /** The full live view of one worker, as `observe_agent` returns it mid-flight. */
2356
2464
  interface WorkerProgress {
2357
2465
  readonly id: string;
@@ -2362,9 +2470,11 @@ interface WorkerProgress {
2362
2470
  * can actually reach it. False means a steer would be recorded and dropped. */
2363
2471
  readonly steerable: boolean;
2364
2472
  readonly startedAt: number;
2365
- /** Epoch ms of the last metered usage event or executor-reported activity. */
2473
+ /** Epoch ms of the last metered usage event or executor-reported activity. For a worker that
2474
+ * leads a team, the newest activity anywhere in that team counts, its own turns included. */
2366
2475
  readonly lastActivityAt: number;
2367
2476
  readonly idleMs: number;
2477
+ /** Live, not waiting for a worker slot, and idle past `stallAfterMs`. */
2368
2478
  readonly stalled: boolean;
2369
2479
  readonly stallAfterMs: number;
2370
2480
  /** Metered iterations so far (the executor's own count when it reports one). */
@@ -2390,6 +2500,8 @@ interface WorkerProgress {
2390
2500
  * Unlike `recentActivity` this is never evicted, so it still answers on a failed run. */
2391
2501
  readonly derived?: ReadonlyArray<string>;
2392
2502
  readonly note?: string;
2503
+ /** The team this worker leads; absent while it leads no one. */
2504
+ readonly team?: TeamProgress;
2393
2505
  }
2394
2506
  /** A bounded newest-last ring of `ActivityNote`s an executor keeps to answer `progress()`. */
2395
2507
  interface ActivityLog {
@@ -2417,6 +2529,8 @@ interface ScopeProgressInput {
2417
2529
  readonly usd: number;
2418
2530
  readonly usdKnown?: boolean;
2419
2531
  readonly resources?: Spend['resources'];
2532
+ /** The team the worker leads, when it leads one. */
2533
+ readonly team?: TeamProgress;
2420
2534
  }
2421
2535
  /** Fold the scope-derived facts and the executor's optional enrichment into one read. Pure: the
2422
2536
  * caller supplies `now`, so a test can observe a stall without waiting for one. */
@@ -2468,10 +2582,22 @@ interface RetainedChildRecovery {
2468
2582
  kind: 'spawned';
2469
2583
  }>;
2470
2584
  readonly spec: AgentSpec;
2585
+ /** The node's original task, which its admitted identity digests. */
2471
2586
  readonly task: unknown;
2587
+ /** The admissions of the invocation being recovered. */
2472
2588
  readonly admissions: readonly RetainedRunAdmission[];
2473
2589
  readonly factory: ExecutorFactory<unknown>;
2474
2590
  readonly priorMaterialization?: ProfileMaterializationReceipt;
2591
+ /** The invocation being recovered, when it is a leaf's continuation rather than its first. */
2592
+ readonly continuation?: RetainedLeafContinuation;
2593
+ }
2594
+ /** @internal A leaf's later invocation: its own task, input and execution identity, and the
2595
+ * environment admission of the invocation it continues. */
2596
+ interface RetainedLeafContinuation {
2597
+ readonly task: unknown;
2598
+ readonly inputSeq: number;
2599
+ readonly executionId: string;
2600
+ readonly priorSession: RetainedRunEnvironmentAdmission;
2475
2601
  }
2476
2602
  //#endregion
2477
2603
  //#region src/runtime/supervise/trace-source.d.ts
@@ -3137,6 +3263,12 @@ interface Agent<Task, Out> {
3137
3263
  traceSource?(): TraceSource | undefined;
3138
3264
  /** Optional live execution progress exposed by executors that can observe it. */
3139
3265
  progress?(): ExecutorProgress | undefined;
3266
+ /**
3267
+ * Optional capture of this agent's own harness session, for an agent that runs a harness as a
3268
+ * manager. A driver child forwards it to its executor, so the manager settles with the same
3269
+ * receipt a leaf gets instead of `executor-exposes-no-transcript`.
3270
+ */
3271
+ harnessTranscript?(): HarnessTranscriptCapture | undefined;
3140
3272
  }
3141
3273
  /**
3142
3274
  * The leaf runtime — ONE open interface, not a closed union. `execute` returns a
@@ -3874,12 +4006,14 @@ interface Spend {
3874
4006
  */
3875
4007
  tokensProvenance?: TokenUsageProvenance;
3876
4008
  }
3877
- /** `'acquiring'` is first-class (M1): a node spends real time + reaps an orphan box
3878
- * during sandbox acquire BEFORE it is `running`, so abort must be defined over it.
4009
+ /** `'queued'` is an admitted child that holds its budget slice and waits for a worker slot
4010
+ * (`workerSlots`); it runs nothing until the allocator grants one. `'acquiring'` is first-class
4011
+ * (M1): a node spends real time + reaps an orphan box during sandbox acquire BEFORE it is
4012
+ * `running`, so abort must be defined over it.
3879
4013
  * `'waiting'` is first-class for the opposite reason: a wait-state node holds NO executor, NO
3880
4014
  * box, and no conserved budget — it is neither in flight nor settled, so neither `inFlight` nor
3881
4015
  * a terminal status describes it (see `Scope.wait`). */
3882
- type NodeStatus = 'pending' | 'acquiring' | 'running' | 'waiting' | 'done' | 'failed' | 'cancelled';
4016
+ type NodeStatus = 'pending' | 'queued' | 'acquiring' | 'running' | 'waiting' | 'done' | 'failed' | 'cancelled';
3883
4017
  /** Deterministic node id — `${parent}:s${seq}` from the cursor order, never wall-clock. */
3884
4018
  type NodeId = string;
3885
4019
  interface SpawnOpts {
@@ -3919,7 +4053,7 @@ interface SpawnOpts {
3919
4053
  * run, its driver simply finished. A caller that outlived the request it was serving (a background
3920
4054
  * tool invocation still holding the driver's verbs) gets a refusal it can record, instead of a
3921
4055
  * child nobody joins. */
3922
- type SpawnRejection = 'budget-exhausted' | 'usd-unbudgeted' | 'depth-exceeded' | 'duplicate-key' | 'in-doubt' | 'invalid-identity' | 'key-conflict' | 'max-live-workers' | 'scope-aborted' | 'scope-settled';
4056
+ type SpawnRejection = 'budget-exhausted' | 'usd-unbudgeted' | 'depth-exceeded' | 'duplicate-key' | 'in-doubt' | 'invalid-identity' | 'key-conflict' | 'scope-aborted' | 'scope-settled';
3923
4057
  /**
3924
4058
  * What a KEYED spawn resolved to when the key had a prior attempt. Absent on a fresh key (and on
3925
4059
  * every unkeyed spawn). `'completed'` is the exactly-once path: NOTHING was spawned — the handle
@@ -3984,6 +4118,8 @@ type Settled<Out> = {
3984
4118
  harnessTranscript?: HarnessTranscriptEvidence;
3985
4119
  /** Present when the measured spend exceeded this child's reservation. */
3986
4120
  budgetViolation?: BudgetViolation;
4121
+ /** Present when this child led workers of its own: a bounded account of its team. */
4122
+ subtree?: SubtreeSummary;
3987
4123
  /** Epoch ms parsed from the durable settlement record when available. */
3988
4124
  settledAt?: number;
3989
4125
  seq: number;
@@ -4024,10 +4160,47 @@ type Settled<Out> = {
4024
4160
  * `retainedExecution` is; the `reason` text names the same thing, but a reader must never
4025
4161
  * have to parse it (#1204). */
4026
4162
  retainedPendingCause?: RetainedPendingCause;
4163
+ /** Present when this child led workers of its own: a bounded account of its team. */
4164
+ subtree?: SubtreeSummary;
4027
4165
  /** Epoch ms parsed from the durable settlement/cancellation record when available. */
4028
4166
  settledAt?: number;
4029
4167
  seq: number;
4030
4168
  };
4169
+ /**
4170
+ * A bounded account of the team a manager led, carried up on its settlement.
4171
+ *
4172
+ * A lead reads its children's summaries instead of every descendant's output: the counts cover
4173
+ * the whole subtree, and `results` lists only the manager's own direct children, best first.
4174
+ * Every listed result stays addressable by its content address (`outRef`), so the lead can read
4175
+ * any one of them in full. The summary is bounded at every level, so a tree of hundreds of agents
4176
+ * reaches its root as a handful of summaries.
4177
+ */
4178
+ interface SubtreeSummary {
4179
+ /** Spawned agents below this node, at every depth. */
4180
+ readonly agents: number;
4181
+ /** Levels below this node: `1` when it led only workers that led no one. */
4182
+ readonly depth: number;
4183
+ /** Agents below this node that settled done. */
4184
+ readonly done: number;
4185
+ /** Agents below this node that settled down or were cancelled. */
4186
+ readonly down: number;
4187
+ /** This node's own direct children, done before down and then by score, at most
4188
+ * `SUBTREE_RESULT_LIMIT` of them. */
4189
+ readonly results: ReadonlyArray<SubtreeResult>;
4190
+ /** Direct children not listed in `results`. */
4191
+ readonly omitted: number;
4192
+ }
4193
+ /** One direct child of a manager, as its lead sees it in a {@link SubtreeSummary}. */
4194
+ interface SubtreeResult {
4195
+ readonly id: NodeId;
4196
+ readonly label: string;
4197
+ readonly status: 'done' | 'down';
4198
+ /** Content address of the child's retained output, when it produced one. */
4199
+ readonly outRef?: string;
4200
+ readonly score?: number;
4201
+ /** Agents in this child's own subtree, itself excluded. */
4202
+ readonly agents: number;
4203
+ }
4031
4204
  /**
4032
4205
  * The budget-conserving reactive scope an `Agent.act` runs inside. `spawn` reserves
4033
4206
  * budget atomically from the shared pool and fails closed when the pool cannot cover it.
@@ -4172,12 +4345,14 @@ interface Scope<Out> {
4172
4345
  readonly view: TreeView;
4173
4346
  /** Conserved-pool readouts (post-reservation). */
4174
4347
  readonly budget: BudgetReadout;
4175
- /** One tree-wide view of simultaneous spawned work. Every nested scope reads the same counter;
4176
- * the root agent itself is not a spawned worker. `freeSlots` is `null` when no limit is set.
4177
- * `unconfirmed` NAMES the settled children whose executor teardown was never acknowledged —
4178
- * the nodes still holding a capacity slot. Empty on every healthy run. */
4348
+ /** The worker-slot allocator as this scope sees it. Every scope of a tree, and every tree that
4349
+ * shares the allocator, reads the same counts; the root agent itself holds no slot. `working`
4350
+ * counts agents that hold a slot, `queued` counts admitted spawns that wait for one, and
4351
+ * `freeSlots` is `null` when no bound is set. `unconfirmed` NAMES this scope's settled children
4352
+ * whose executor teardown was never acknowledged. Empty on every healthy run. */
4179
4353
  readonly workerCapacity: Readonly<{
4180
- live: number;
4354
+ working: number;
4355
+ queued: number;
4181
4356
  freeSlots: number | null;
4182
4357
  unconfirmed: ReadonlyArray<UnconfirmedTeardown>;
4183
4358
  }>;
@@ -4304,7 +4479,7 @@ interface NodeSnapshot {
4304
4479
  interface TreeView {
4305
4480
  readonly root: NodeId;
4306
4481
  readonly nodes: ReadonlyArray<NodeSnapshot>;
4307
- /** Count of nodes in `running` or `acquiring` — the "what's in flow?" answer. */
4482
+ /** Count of nodes in `queued`, `acquiring`, or `running` — the "what's in flow?" answer. */
4308
4483
  readonly inFlight: number;
4309
4484
  /** Count of nodes in `waiting` — armed wait-states. Deliberately NOT folded into `inFlight`:
4310
4485
  * a wait burns no executor and no budget, so counting it as flow would misreport both idle
@@ -4327,12 +4502,10 @@ type SpawnEvent = {
4327
4502
  successorOf?: NodeId;
4328
4503
  budget: Budget;
4329
4504
  runtime: Runtime;
4330
- /** Root-only opt-in admission contract. A resumed run must use the same policy and fleet
4331
- * limits; absent on historical and default-off records. */
4505
+ /** Root-only opt-in owner-share contract. A resumed run must use the same policy; absent on
4506
+ * records that set none. */
4332
4507
  recursiveAdmission?: {
4333
4508
  policy: RecursiveReservationPolicy;
4334
- maxDepth: number;
4335
- maxLiveWorkers: number;
4336
4509
  };
4337
4510
  /** Exact nested journal tree this node owns. Runtime writes this only after privately
4338
4511
  * attesting the executor as a recursive scope owner. Its absence means no tree is followed,
@@ -4429,6 +4602,8 @@ type SpawnEvent = {
4429
4602
  * `'pending'` can never be journaled: the journal states that as `reconciled`. */
4430
4603
  retainedExecution?: Extract<RetainedExecutionState, 'released'>;
4431
4604
  retainedPendingCause?: RetainedPendingCause;
4605
+ /** The bounded account of the team this child led, when it led one. */
4606
+ subtree?: SubtreeSummary;
4432
4607
  seq: number;
4433
4608
  at: string;
4434
4609
  } | {
@@ -4449,6 +4624,8 @@ type SpawnEvent = {
4449
4624
  * builder writes whichever kind the settlement had. */
4450
4625
  retainedExecution?: Extract<RetainedExecutionState, 'released'>;
4451
4626
  retainedPendingCause?: RetainedPendingCause;
4627
+ /** The bounded account of the team this child led, when it led one. */
4628
+ subtree?: SubtreeSummary;
4452
4629
  seq: number;
4453
4630
  at: string;
4454
4631
  } | {
@@ -4771,8 +4948,7 @@ interface Supervisor<Task, Out> {
4771
4948
  attach(h: RootHandle<Out>): void;
4772
4949
  }
4773
4950
  /** Optional recursive admission policy. `ownerShare` is the fraction of every manager's budget
4774
- * kept free for its own inference while children hold their full declared ceilings. The same
4775
- * policy reserves one live worker slot per remaining depth, up to `maxDepth`. */
4951
+ * kept free for its own inference while children hold their declared slices. */
4776
4952
  interface RecursiveReservationPolicy {
4777
4953
  readonly ownerShare: number;
4778
4954
  }
@@ -4798,13 +4974,16 @@ interface SupervisorOpts {
4798
4974
  * the wait can be journaled and re-armed by a later process; this is what the name resolves
4799
4975
  * against. Unset ⇒ `poll` waits are refused (`unknown-probe`); `timer` waits are unaffected. */
4800
4976
  readonly probes?: WaitProbeRegistry;
4801
- /** Runtime recursion-depth ceiling (paired with the conserved pool per R3). */
4977
+ /** Recursion ceiling (root = 0). The conserved pool bounds depth; this only stops a runaway
4978
+ * recursion. Omit = `DEFAULT_MAX_DEPTH` (16). */
4802
4979
  readonly maxDepth?: number;
4803
- /** Hard tree-wide cap on simultaneously executing spawned workers. The root is excluded; every
4804
- * nested driver and leaf shares this one allocation. Omit/`<= 0` leaves worker count uncapped. */
4805
- readonly maxLiveWorkers?: number;
4806
- /** Opt in to reserving each manager's inference share and enough tree-wide worker slots for a
4807
- * descendant path to `maxDepth`. Omit to retain full-ceiling admission behavior. */
4980
+ /** The bound on concurrently working agents across the whole tree, as a number or as an
4981
+ * allocator from `createWorkerSlots` that several runs share. A spawn past it waits in a queue
4982
+ * instead of being refused. The root holds no slot. Omit/`<= 0` bounds concurrency by the budget
4983
+ * alone. */
4984
+ readonly workerSlots?: number | WorkerSlots;
4985
+ /** Opt in to keeping each manager's inference share free of its children's slices. A resumed
4986
+ * run must use the same policy. */
4808
4987
  readonly reservationPolicy?: RecursiveReservationPolicy;
4809
4988
  /**
4810
4989
  * OTP intensity breaker: more than `maxRestarts` child restarts within `withinMs`
@@ -5254,5 +5433,5 @@ interface WidenGate<Out> {
5254
5433
  readonly judgeExempt?: boolean;
5255
5434
  }
5256
5435
  //#endregion
5257
- export { SpawnJournal as $, RuntimeRunCost as $i, HarnessTranscriptUnavailableReason as $n, RetainedRunDispatchedAdmission as $r, toOtelAttributes as $t, NodeExecutionIdentity as A, LoopIterationDispatchPayload as Ai, sandboxSessionTraceSource as An, NotFoundError as Ar, readTraceContextFromEnv as At, ResultBlobStore as B, LoopTokenUsage as Bi, readWorkerProgress as Bn, NativeContextContinuationInput as Br, OtelExporter as Bt, ExecutorToolCall as C, RunAgentTaskStreamOptions as Ca, AgentRunSpec as Ci, waitUntil as Cn, summarizeDriverAttempts as Cr, readWorkerTraceContext as Ct, MaterializedExecutionIdentity as D, RuntimeStreamEvent as Da, Iteration as Di, TraceSource as Dn, BackendTransportError as Dr, TraceContext as Dt, HeldEnvironment as E, RuntimeSessionStore as Ea, ExecCtx as Ei, ToolStepInput as En, AgentEvalErrorCode as Er, workerTraceSeamKey as Et, ProviderModelAttemptEvidence as F, LoopPlanPayload as Fi, DEFAULT_STALL_AFTER_MS as Fn, RetainedRunDispatchBindingError as Fr, EvalRunsExportResult as Ft, RootMaterialization as G, MountRecorder as Gi, RetainedInteractiveRunHandle as Gn, RetainedInteractiveAdmission as Gr, buildRuntimeEventOtelSpans as Gt, ResumedWork as H, LoopTraceEvent as Hi, RecoverRetainedInteractiveRunOptions as Hn, RecoverRetainedRunIntentOptions as Hr, RuntimeEventOtelOptions as Ht, ProviderModelExecutionEvidence as I, LoopResult as Ii, ExecutorProgress as In, RuntimeRunStateError as Ir, INTELLIGENCE_WIRE_VERSION as It, RootStreamReceipt as J, SandboxClient as Ji, HarnessTranscriptArtifact as Jn, RetainedInteractiveStartedAdmission as Jr, exportEvalRuns as Jt, RootProviderModelEvidence as K, OutputAdapter as Ki, RetainedInteractiveStartMaterial as Kn, RetainedInteractiveEnvironmentAdmission as Kr, createOpenInferenceFileExporter as Kt, RecursiveReservationPolicy as L, LoopSandboxPlacement as Li, ScopeProgressInput as Ln, ValidationError as Lr, LoopSpanNode as Lt, NodeSnapshot as M, LoopIterationStartedPayload as Mi, RetainedPendingCause as Mn, RetainedInteractiveAdmissionError as Mr, EvalRunEvent as Mt, NodeStatus as N, LoopLineageOptions as Ni, ActivityLog as Nn, RetainedInteractiveBindingError as Nr, EvalRunGeneration as Nt, MaterializedModelIdentity as O, LoopDecisionPayload as Oi, createPushTraceSource as On, ConfigError as Or, createPropagatingTraceEmitter as Ot, ProfileMaterializationReceipt as P, LoopPlanDescription as Pi, ActivityNote as Pn, RetainedRunAdmissionError as Pr, EvalRunsExportConfig as Pt, SpawnEvent as Q, RuntimeRunCompleteInput as Qi, HarnessTranscriptUnavailable as Qn, RetainedRunCancellation as Qr, padTraceId as Qt, ResourceLimit as R, LoopStartedPayload as Ri, WorkerProgress as Rn, NativeContextContinuationExecution as Rr, OtelAttribute as Rt, ExecutorTeardownWarning as S, RunAgentTaskOptions as Sa, spendFromUsageEvents as Si, validateWaitSpec as Sn, defaultUnmetContractSteer as Sr, WorkerTraceSeamCarrier as St, Handle as T, RuntimeSession as Ta, Driver as Ti, SessionTraceBox as Tn, AgentEvalError$1 as Tr, workerTraceHeaders as Tt, RetainedExecutionState as U, LoopWinner as Ui, RetainedInteractiveAdmissionHook as Un, RecoverRetainedRunOptions as Ur, buildLoopOtelSpans as Ut, ResumedKeyState as V, LoopTraceEmitter as Vi, ReconnectRetainedInteractiveRunOptions as Vn, ReconnectRetainedRunOptions as Vr, OtelSpan as Vt, RootHandle as W, MountManifestEntry as Wi, RetainedInteractiveEnvironmentInput as Wn, RecoverRetainedRunResult as Wr, buildLoopSpanNodes as Wt, Scope as X, ValidationCtx as Xi, HarnessTranscriptEvidence as Xn, RetainedRunAdmissionHook as Xr, loopEventToOtelSpan as Xt, Runtime as Y, SelectionReceipt as Yi, HarnessTranscriptCapture as Yn, RetainedRunAdmission as Yr, generateSpanId as Yt, Settled as Z, Validator as Zi, HarnessTranscriptFile as Zn, RetainedRunCancelOptions as Zr, padSpanId as Zt, ExecutorMaterialization as _, BackendErrorDetail as _a, ReservationRejection as _i, WaitSpec as _n, DriverRetryPolicy as _r, WorkerInteractiveSession as _t, BudgetOverspend as a, startRuntimeRun as aa, RetainedRunReplayPoint as ai, SanitizedKnowledgeReadinessReport as an, DriverAttemptRecord as ar, SpendGap as at, ExecutorRegistry as b, OpenAIChatTool as ba, ReservationTicket as bi, pollFor as bn, OnUnmetContract as br, WorkerTraceUnavailableReason as bt, EnvironmentTeardownReceipt as c, AgentBackendInput as ca, RetainedRunTurnInput as ci, createRuntimeStreamEventCollector as cn, DriverBudgetReadout as cr, Supervisor as ct, ExecutorAccounting as d, AgentRuntimeEvent as da, BudgetPool as di, sanitizeRuntimeStreamEvent as dn, DriverFailureClass as dr, TreeView as dt, RuntimeRunHandle as ea, RetainedRunEffect as ei, RuntimeEventCollector as en, ReadableEnvironment as er, SpawnOpts as et, ExecutorCancellation as f, AgentRuntimeEventSink as fa, BudgetPoolRestore as fi, PendingWait as fn, DriverLoopRecord as fr, UnconfirmedTeardown as ft, ExecutorFactory as g, AgentTaskStatus as ga, ReservationHolder as gi, WaitRejection as gn, DriverRepromptRefusal as gr, WidenGate as gt, ExecutorExecutionBinding as h, AgentTaskSpec as ha, LeakedReservation as hi, WaitProbeRegistry as hn, DriverRepromptPolicy as hr, WaitOpts as ht, Budget as i, RuntimeRunStatus as ia, RetainedRunIntentAdmission as ii, RuntimeTelemetryOptions as in, DEFAULT_MAX_BARREN_REPROMPTS as ir, SpendChannel as it, NodeId as j, LoopIterationEndedPayload as ji, RetainedChildRecovery as jn, PlannerError as jr, traceContextToEnv as jt, NoWinnerError as k, LoopEndedPayload as ki, decodeToolPart as kn, JudgeError as kr, mergeTraceEnv as kt, ExecutionBindingReceipt as l, AgentExecutionBackend as la, StartRetainedRunInEnvironmentOptions as li, sanitizeAgentRuntimeEvent as ln, DriverContinuationRecord as lr, SupervisorOpts as lt, ExecutorContext as m, AgentTaskRunResult as ma, BudgetReconcileFault as mi, WaitProbe as mn, DriverReentry as mr, UsageEvent as mt, AgentExecutionRef as n, RuntimeRunPersistenceAdapter as na, RetainedRunEventOptions as ni, RuntimeStreamEventSink as nn, harnessTranscriptArtifact as nr, SpawnRejection as nt, BudgetViolation as o, AgentAdapter as oa, RetainedRunSnapshot as oi, SanitizedKnowledgeRequirement as on, DriverAttemptStop as or, SteerableRootHandle as ot, ExecutorCancellationRequest as p, AgentTaskContext as pa, BudgetReadout as pi, WaitOutcome as pn, DriverProgressMark as pr, UnknownMaterializationReason as pt, RootSignal as q, RunProvenance as qi, StartRetainedInteractiveRunOptions as qn, RetainedInteractiveIntentAdmission as qr, createOtelExporter as qt, AgentSpec as r, RuntimeRunRow as ra, RetainedRunHandle as ri, RuntimeStreamEventSummary as rn, persistHarnessTranscript as rr, Spend as rt, DefaultVerdict as s, AgentBackendContext as sa, RetainedRunStartMaterial as si, createRuntimeEventCollector as sn, DriverAttemptsExhaustedError as sr, SupervisedResult as st, Agent as t, RuntimeRunOptions as ta, RetainedRunEnvironmentAdmission as ti, RuntimeStreamEventCollector as tn, captureHarnessTranscript as tr, SpawnPrior as tt, Executor as u, AgentKnowledgeProvider as ua, StartRetainedRunOptions as ui, sanitizeKnowledgeReadinessReport as un, DriverContractState as ur, TokenUsageProvenance as ut, ExecutorNodeContext as v, KnowledgeReadinessDecision as va, ReservationShortfall as vi, createWaitProbes as vn, DriverUnmetContractContext as vr, WorkerInteractiveUnavailableReason as vt, FleetYield as w, RuntimeCanonicalStreamEvent as wa, DefaultVerdict$1 as wi, SessionMessageLike as wn, upstreamUnavailableSignal as wr, workerTraceEnv as wt, ExecutorResult as x, OpenAIChatToolChoice as xa, createBudgetPool as xi, timerAt as xn, classifyDriverFailure as xr, WorkerTraceResolver as xt, ExecutorProgressEvent as y, OpenAIChatResponseFormat as ya, ReservationStage as yi, isWaitOutcome as yn, DriverUnmetContractDecision as yr, WorkerTraceEvidence as yt, ResourceSpend as z, LoopTeardownFailedPayload as zi, createActivityLog as zn, NativeContextContinuationHandle as zr, OtelExportConfig as zt };
5258
- //# sourceMappingURL=types-C-nszovv.d.ts.map
5436
+ export { SpawnJournal as $, LoopWinner as $i, HarnessTranscriptEvidence as $n, RetainedInteractiveEnvironmentAdmission as $r, padSpanId as $t, NodeExecutionIdentity as A, OpenAIChatTool as Aa, ReserveOptions as Ai, createPushTraceSource as An, AgentEvalErrorCode as Ar, createPropagatingTraceEmitter as At, ResultBlobStore as B, LoopIterationDispatchPayload as Bi, TeamProgress as Bn, RuntimeRunStateError as Br, OtelAttribute as Bt, ExecutorToolCall as C, AgentTaskContext as Ca, ReservationFloor as Ci, timerAt as Cn, OnUnmetContract as Cr, WorkerTraceResolver as Ct, MaterializedExecutionIdentity as D, BackendErrorDetail as Da, ReservationStage as Di, SessionTraceBox as Dn, upstreamUnavailableSignal as Dr, workerTraceHeaders as Dt, HeldEnvironment as E, AgentTaskStatus as Ea, ReservationShortfall as Ei, SessionMessageLike as En, summarizeDriverAttempts as Er, workerTraceEnv as Et, ProviderModelAttemptEvidence as F, RuntimeSession as Fa, Driver as Fi, ActivityLog as Fn, PlannerError as Fr, EvalRunGeneration as Ft, RootMaterialization as G, LoopPlanPayload as Gi, RecoverRetainedInteractiveRunOptions as Gn, NativeContextContinuationExecution as Gr, buildLoopOtelSpans as Gt, ResumedWork as H, LoopIterationStartedPayload as Hi, createActivityLog as Hn, SlotPermit as Hr, OtelExporter as Ht, ProviderModelExecutionEvidence as I, RuntimeSessionStore as Ia, ExecCtx as Ii, ActivityNote as In, RetainedInteractiveAdmissionError as Ir, EvalRunsExportConfig as It, RootStreamReceipt as J, LoopStartedPayload as Ji, RetainedInteractiveRunHandle as Jn, ReconnectRetainedRunOptions as Jr, createOpenInferenceFileExporter as Jt, RootProviderModelEvidence as K, LoopResult as Ki, RetainedInteractiveAdmissionHook as Kn, NativeContextContinuationHandle as Kr, buildLoopSpanNodes as Kt, RecursiveReservationPolicy as L, RuntimeStreamEvent as La, Iteration as Li, DEFAULT_STALL_AFTER_MS as Ln, RetainedInteractiveBindingError as Lr, EvalRunsExportResult as Lt, NodeSnapshot as M, RunAgentTaskOptions as Ma, spendFromUsageEvents as Mi, sandboxSessionTraceSource as Mn, ConfigError as Mr, readTraceContextFromEnv as Mt, NodeStatus as N, RunAgentTaskStreamOptions as Na, AgentRunSpec as Ni, RetainedChildRecovery as Nn, JudgeError as Nr, traceContextToEnv as Nt, MaterializedModelIdentity as O, KnowledgeReadinessDecision as Oa, ReservationTicket as Oi, ToolStepInput as On, UnavailablePausePolicy as Or, workerTraceSeamKey as Ot, ProfileMaterializationReceipt as P, RuntimeCanonicalStreamEvent as Pa, DefaultVerdict$1 as Pi, RetainedPendingCause as Pn, NotFoundError as Pr, EvalRunEvent as Pt, SpawnEvent as Q, LoopTraceEvent as Qi, HarnessTranscriptCapture as Qn, RetainedInteractiveAdmission as Qr, loopEventToOtelSpan as Qt, ResourceLimit as R, LoopDecisionPayload as Ri, ExecutorProgress as Rn, RetainedRunAdmissionError as Rr, INTELLIGENCE_WIRE_VERSION as Rt, ExecutorTeardownWarning as S, AgentRuntimeEventSink as Sa, LeakedReservation as Si, pollFor as Sn, DriverUnmetContractDecision as Sr, WorkerTraceUnavailableReason as St, Handle as T, AgentTaskSpec as Ta, ReservationRejection as Ti, waitUntil as Tn, defaultUnmetContractSteer as Tr, readWorkerTraceContext as Tt, RetainedExecutionState as U, LoopLineageOptions as Ui, readWorkerProgress as Un, WorkerSlots as Ur, OtelSpan as Ut, ResumedKeyState as V, LoopIterationEndedPayload as Vi, WorkerProgress as Vn, ValidationError as Vr, OtelExportConfig as Vt, RootHandle as W, LoopPlanDescription as Wi, ReconnectRetainedInteractiveRunOptions as Wn, createWorkerSlots as Wr, RuntimeEventOtelOptions as Wt, Scope as X, LoopTokenUsage as Xi, StartRetainedInteractiveRunOptions as Xn, RecoverRetainedRunOptions as Xr, exportEvalRuns as Xt, Runtime as Y, LoopTeardownFailedPayload as Yi, RetainedInteractiveStartMaterial as Yn, RecoverRetainedRunIntentOptions as Yr, createOtelExporter as Yt, Settled as Z, LoopTraceEmitter as Zi, HarnessTranscriptArtifact as Zn, RecoverRetainedRunResult as Zr, generateSpanId as Zt, ExecutorMaterialization as _, AgentBackendContext as _a, StartRetainedRunOptions as _i, WaitProbeRegistry as _n, DriverReentry as _r, WaitOpts as _t, BudgetOverspend as a, SelectionReceipt as aa, RetainedRunCancellation as ai, RuntimeStreamEventSummary as an, harnessTranscriptArtifact as ar, SpendGap as at, ExecutorRegistry as b, AgentKnowledgeProvider as ba, BudgetReadout as bi, createWaitProbes as bn, DriverRetryPolicy as br, WorkerInteractiveUnavailableReason as bt, EnvironmentTeardownReceipt as c, RuntimeRunCompleteInput as ca, RetainedRunEnvironmentAdmission as ci, SanitizedKnowledgeRequirement as cn, DriverAttemptRecord as cr, SubtreeSummary as ct, ExecutorAccounting as d, RuntimeRunOptions as da, RetainedRunIntentAdmission as di, sanitizeAgentRuntimeEvent as dn, DriverBudgetReadout as dr, SupervisorOpts as dt, MountManifestEntry as ea, RetainedInteractiveIntentAdmission as ei, padTraceId as en, HarnessTranscriptFile as er, SpawnOpts as et, ExecutorCancellation as f, RuntimeRunPersistenceAdapter as fa, RetainedRunReplayPoint as fi, sanitizeKnowledgeReadinessReport as fn, DriverContinuationRecord as fr, TokenUsageProvenance as ft, ExecutorFactory as g, AgentAdapter as ga, StartRetainedRunInEnvironmentOptions as gi, WaitProbe as gn, DriverProgressMark as gr, UsageEvent as gt, ExecutorExecutionBinding as h, startRuntimeRun as ha, RetainedRunTurnInput as hi, WaitOutcome as hn, DriverLoopRecord as hr, UnknownMaterializationReason as ht, Budget as i, SandboxClient as ia, RetainedRunCancelOptions as ii, RuntimeStreamEventSink as in, captureHarnessTranscript as ir, SpendChannel as it, NodeId as j, OpenAIChatToolChoice as ja, createBudgetPool as ji, decodeToolPart as jn, BackendTransportError as jr, mergeTraceEnv as jt, NoWinnerError as k, OpenAIChatResponseFormat as ka, ReservationWaitRefused as ki, TraceSource as kn, AgentEvalError$1 as kr, TraceContext as kt, ExecutionBindingReceipt as l, RuntimeRunCost as la, RetainedRunEventOptions as li, createRuntimeEventCollector as ln, DriverAttemptStop as lr, SupervisedResult as lt, ExecutorContext as m, RuntimeRunStatus as ma, RetainedRunStartMaterial as mi, PendingWait as mn, DriverFailureClass as mr, UnconfirmedTeardown as mt, AgentExecutionRef as n, OutputAdapter as na, RetainedRunAdmission as ni, RuntimeEventCollector as nn, HarnessTranscriptUnavailableReason as nr, SpawnRejection as nt, BudgetViolation as o, ValidationCtx as oa, RetainedRunDispatchedAdmission as oi, RuntimeTelemetryOptions as on, persistHarnessTranscript as or, SteerableRootHandle as ot, ExecutorCancellationRequest as p, RuntimeRunRow as pa, RetainedRunSnapshot as pi, sanitizeRuntimeStreamEvent as pn, DriverContractState as pr, TreeView as pt, RootSignal as q, LoopSandboxPlacement as qi, RetainedInteractiveEnvironmentInput as qn, NativeContextContinuationInput as qr, buildRuntimeEventOtelSpans as qt, AgentSpec as r, RunProvenance as ra, RetainedRunAdmissionHook as ri, RuntimeStreamEventCollector as rn, ReadableEnvironment as rr, Spend as rt, DefaultVerdict as s, Validator as sa, RetainedRunEffect as si, SanitizedKnowledgeReadinessReport as sn, DEFAULT_MAX_BARREN_REPROMPTS as sr, SubtreeResult as st, Agent as t, MountRecorder as ta, RetainedInteractiveStartedAdmission as ti, toOtelAttributes as tn, HarnessTranscriptUnavailable as tr, SpawnPrior as tt, Executor as u, RuntimeRunHandle as ua, RetainedRunHandle as ui, createRuntimeStreamEventCollector as un, DriverAttemptsExhaustedError as ur, Supervisor as ut, ExecutorNodeContext as v, AgentBackendInput as va, BudgetPool as vi, WaitRejection as vn, DriverRepromptPolicy as vr, WidenGate as vt, FleetYield as w, AgentTaskRunResult as wa, ReservationHolder as wi, validateWaitSpec as wn, classifyDriverFailure as wr, WorkerTraceSeamCarrier as wt, ExecutorResult as x, AgentRuntimeEvent as xa, BudgetReconcileFault as xi, isWaitOutcome as xn, DriverUnmetContractContext as xr, WorkerTraceEvidence as xt, ExecutorProgressEvent as y, AgentExecutionBackend as ya, BudgetPoolRestore as yi, WaitSpec as yn, DriverRepromptRefusal as yr, WorkerInteractiveSession as yt, ResourceSpend as z, LoopEndedPayload as zi, ScopeProgressInput as zn, RetainedRunDispatchBindingError as zr, LoopSpanNode as zt };
5437
+ //# sourceMappingURL=types-CrnwLVYQ.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/agent-runtime",
3
- "version": "0.263.0",
3
+ "version": "0.266.0",
4
4
  "description": "Shared task-lifecycle skeleton for agents: a recursive loop kernel for chat turns, one-shot tasks, and multi-attempt loops, with trace capture and eval-gated self-improvement. Domain behavior lives in adapters; scoring and ship-gates in @tangle-network/agent-eval.",
5
5
  "homepage": "https://github.com/tangle-network/agent-runtime#readme",
6
6
  "repository": {
@@ -123,7 +123,7 @@
123
123
  "peerDependencies": {
124
124
  "@tangle-network/agent-eval": ">=0.185.0 <0.188.0",
125
125
  "@tangle-network/agent-interface": "^2.11.0",
126
- "@tangle-network/sandbox": ">=0.36.4 <0.48.0 || ^0.49.0-0 || ^0.50.0"
126
+ "@tangle-network/sandbox": ">=0.36.4 <0.48.0 || ^0.49.0-0 || ^0.50.0 || ^0.51.0 || ^0.52.0"
127
127
  },
128
128
  "dependencies": {
129
129
  "@tangle-network/agent-core": ">=0.9.6 <0.10.0",