@tangle-network/agent-runtime 0.238.0 → 0.240.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 (55) hide show
  1. package/dist/{activation-CRDZUoUE.d.ts → activation-CtkpoWet.d.ts} +2 -2
  2. package/dist/{activation-Br1FRlyB.js → activation-q224yRQK.js} +2 -2
  3. package/dist/{activation-Br1FRlyB.js.map → activation-q224yRQK.js.map} +1 -1
  4. package/dist/agent.d.ts +2 -2
  5. package/dist/agent.js +2 -2
  6. package/dist/{coordination-driver-DbiCH5be.js → coordination-driver-CMprWr0k.js} +14 -240
  7. package/dist/coordination-driver-CMprWr0k.js.map +1 -0
  8. package/dist/{delegate-C4rLxuv8.js → delegate-kwBecu_w.js} +2 -2
  9. package/dist/{delegate-C4rLxuv8.js.map → delegate-kwBecu_w.js.map} +1 -1
  10. package/dist/durable.d.ts +2 -2
  11. package/dist/durable.js +2 -2
  12. package/dist/{graph-BHU73FnA.js → graph-Bke7I2gs.js} +3 -3
  13. package/dist/{graph-BHU73FnA.js.map → graph-Bke7I2gs.js.map} +1 -1
  14. package/dist/{improvement-cycle-DkzbEzS5.js → improvement-cycle-BpSVwIJw.js} +3 -3
  15. package/dist/{improvement-cycle-DkzbEzS5.js.map → improvement-cycle-BpSVwIJw.js.map} +1 -1
  16. package/dist/{index-B8Fmz26p.d.ts → index-CbZaoYbD.d.ts} +129 -5
  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 +3 -3
  22. package/dist/kernel.js +8 -8
  23. package/dist/{loop-runner-bin-vGFnPXLM.d.ts → loop-runner-bin-BUkkPt10.d.ts} +3 -3
  24. package/dist/{loop-runner-bin-BaQIyvh-.js → loop-runner-bin-DU8XqsGN.js} +3 -3
  25. package/dist/{loop-runner-bin-BaQIyvh-.js.map → loop-runner-bin-DU8XqsGN.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 +6 -6
  30. package/dist/mcp/index.js +5 -5
  31. package/dist/{openai-tools-BPPAXxP2.d.ts → openai-tools-BI1ofIfL.d.ts} +2 -2
  32. package/dist/profiles.d.ts +2 -2
  33. package/dist/{provision-supervisor-Briw5tX4.js → provision-supervisor-DoSrqsM7.js} +3 -3
  34. package/dist/{provision-supervisor-Briw5tX4.js.map → provision-supervisor-DoSrqsM7.js.map} +1 -1
  35. package/dist/{runtime-BzGKUqqY.js → runtime-CmuAQsWI.js} +8 -8
  36. package/dist/{runtime-BzGKUqqY.js.map → runtime-CmuAQsWI.js.map} +1 -1
  37. package/dist/{server-CDn-i_GJ.js → server-shkdLqls.js} +3 -3
  38. package/dist/{server-CDn-i_GJ.js.map → server-shkdLqls.js.map} +1 -1
  39. package/dist/{stream-agent-turn-xgmm-M55.d.ts → stream-agent-turn-DayHmtvw.d.ts} +2 -2
  40. package/dist/{structural-rollout-B-EAO8C5.js → structural-rollout-CW67upUV.js} +2 -2
  41. package/dist/{structural-rollout-B-EAO8C5.js.map → structural-rollout-CW67upUV.js.map} +1 -1
  42. package/dist/{substrate-B_9stFWH.d.ts → substrate-iQOskmQ_.d.ts} +2 -2
  43. package/dist/{supervise-Dc2DjlZS.js → supervise-DzoCYAe-.js} +15 -4
  44. package/dist/supervise-DzoCYAe-.js.map +1 -0
  45. package/dist/{supervisor-BN3oMv_v.js → supervisor-CFSPj8rx.js} +407 -20
  46. package/dist/supervisor-CFSPj8rx.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-CE7ES_TD.d.ts → types-CEma9LKR.d.ts} +16 -1
  52. package/package.json +1 -1
  53. package/dist/coordination-driver-DbiCH5be.js.map +0 -1
  54. package/dist/supervise-Dc2DjlZS.js.map +0 -1
  55. package/dist/supervisor-BN3oMv_v.js.map +0 -1
@@ -287,9 +287,9 @@ async function exactSessionResult(session) {
287
287
  return session.result();
288
288
  }
289
289
  function assertEventBinding(source, controlRef) {
290
- const transport = isRecord$2(source) ? source : void 0;
291
- const payload = isRecord$2(source.data) ? source.data : void 0;
292
- const providerEvent = isRecord$2(source.providerEvent) ? source.providerEvent : void 0;
290
+ const transport = isRecord$3(source) ? source : void 0;
291
+ const payload = isRecord$3(source.data) ? source.data : void 0;
292
+ const providerEvent = isRecord$3(source.providerEvent) ? source.providerEvent : void 0;
293
293
  const bindings = [
294
294
  {
295
295
  value: transport,
@@ -317,7 +317,7 @@ function assertCanonicalEventBinding(controlRef, event) {
317
317
  const binding = event.request.binding;
318
318
  if (binding.runId !== controlRef.runId || binding.provider !== controlRef.provider || binding.environmentId !== controlRef.environmentId || binding.sessionId !== controlRef.sessionId || binding.executionId !== controlRef.executionId || binding.interactionId !== event.request.id) throw new Error("provider returned an interaction for another retained execution");
319
319
  }
320
- function isRecord$2(value) {
320
+ function isRecord$3(value) {
321
321
  return typeof value === "object" && value !== null && !Array.isArray(value);
322
322
  }
323
323
  function assertStableText(value, label) {
@@ -391,7 +391,7 @@ function delay(ms, signal) {
391
391
  */
392
392
  function parseCodexUsageRecord(usage, label) {
393
393
  const record = plainRecord$2(usage);
394
- if (record === void 0) throw new ValidationError$1(`${label}: usage must be an object, received ${describe(usage)}`);
394
+ if (record === void 0) throw new ValidationError$1(`${label}: usage must be an object, received ${describe$1(usage)}`);
395
395
  const inputTokens = naturalNumber$1(record.input_tokens, "input_tokens", label);
396
396
  const cachedInputTokens = naturalNumber$1(record.cached_input_tokens, "cached_input_tokens", label);
397
397
  const outputTokens = naturalNumber$1(record.output_tokens, "output_tokens", label);
@@ -471,10 +471,10 @@ function plainRecord$2(value) {
471
471
  return value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;
472
472
  }
473
473
  function naturalNumber$1(value, field, label) {
474
- if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) throw new ValidationError$1(`${label}: usage.${field} must be a non-negative safe integer, received ${describe(value)}`);
474
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) throw new ValidationError$1(`${label}: usage.${field} must be a non-negative safe integer, received ${describe$1(value)}`);
475
475
  return value;
476
476
  }
477
- function describe(value) {
477
+ function describe$1(value) {
478
478
  if (value === null) return "null";
479
479
  if (typeof value === "number" || typeof value === "boolean") return String(value);
480
480
  if (typeof value === "string") return JSON.stringify(value);
@@ -518,7 +518,7 @@ function assertRuntimeTimestamp(value, label) {
518
518
  const harnessNativePayloadType = "raw";
519
519
  /** Parse canonical payload fields without treating transport identity as event data. */
520
520
  function parseCanonicalTransportEvent(type, data, normalized, source) {
521
- if (!isRecord$1(data)) throw new Error(`${source} emitted a canonical event without an object payload`);
521
+ if (!isRecord$2(data)) throw new Error(`${source} emitted a canonical event without an object payload`);
522
522
  const outerType = String(type ?? "");
523
523
  const harnessNative = outerType === harnessNativePayloadType;
524
524
  if (normalized !== void 0) {
@@ -540,10 +540,10 @@ function parseCanonicalTransportEvent(type, data, normalized, source) {
540
540
  }
541
541
  /** Extract shared event identity without privileging one provider wire shape. */
542
542
  function extractTransportEventIdentity(event) {
543
- const record = isRecord$1(event) ? event : {};
544
- const data = isRecord$1(record.data) ? record.data : {};
545
- const providerEvent = isRecord$1(record.providerEvent) ? record.providerEvent : {};
546
- const providerData = isRecord$1(providerEvent.data) ? providerEvent.data : {};
543
+ const record = isRecord$2(event) ? event : {};
544
+ const data = isRecord$2(record.data) ? record.data : {};
545
+ const providerEvent = isRecord$2(record.providerEvent) ? record.providerEvent : {};
546
+ const providerData = isRecord$2(providerEvent.data) ? providerEvent.data : {};
547
547
  const eventId = canonicalEventId(record, data, providerEvent, providerData);
548
548
  const cursor = stableString(record.cursor ?? data.cursor ?? providerEvent.cursor ?? providerData.cursor);
549
549
  const sequence = optionalSequence(record.sequence ?? data.sequence ?? providerEvent.sequence ?? providerData.sequence);
@@ -591,7 +591,7 @@ function optionalTimestamp(value) {
591
591
  assertRuntimeTimestamp(value, "occurredAt");
592
592
  return value;
593
593
  }
594
- function isRecord$1(value) {
594
+ function isRecord$2(value) {
595
595
  return typeof value === "object" && value !== null && !Array.isArray(value);
596
596
  }
597
597
  //#endregion
@@ -3643,13 +3643,13 @@ function normalizeCodexDebugPromptNewlines(value) {
3643
3643
  function jsonTextContains(value, needle) {
3644
3644
  if (typeof value === "string") return value.includes(needle);
3645
3645
  if (Array.isArray(value)) return value.some((item) => jsonTextContains(item, needle));
3646
- if (isRecord(value)) return Object.values(value).some((item) => jsonTextContains(item, needle));
3646
+ if (isRecord$1(value)) return Object.values(value).some((item) => jsonTextContains(item, needle));
3647
3647
  return false;
3648
3648
  }
3649
3649
  function redactJsonText(value, text) {
3650
3650
  if (typeof value === "string") return value.replaceAll(text, "");
3651
3651
  if (Array.isArray(value)) return value.map((item) => redactJsonText(item, text));
3652
- if (isRecord(value)) return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, redactJsonText(item, text)]));
3652
+ if (isRecord$1(value)) return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, redactJsonText(item, text)]));
3653
3653
  return value;
3654
3654
  }
3655
3655
  const CODEX_AUTH_ENV = [
@@ -4041,11 +4041,11 @@ function parseCodexTokenUsage(stdout) {
4041
4041
  } catch {
4042
4042
  throw new ValidationError$1(`runLocalHarness: Codex JSONL line ${index + 1} is not valid JSON`);
4043
4043
  }
4044
- if (isRecord(event) && event.type === "turn.completed") completed.push(event);
4044
+ if (isRecord$1(event) && event.type === "turn.completed") completed.push(event);
4045
4045
  }
4046
4046
  if (completed.length !== 1) throw new ValidationError$1(`runLocalHarness: expected exactly one Codex turn.completed usage event, received ${completed.length}`);
4047
4047
  const event = completed[0];
4048
- if (!isRecord(event) || !isRecord(event.usage)) throw new ValidationError$1("runLocalHarness: Codex turn.completed event is missing usage");
4048
+ if (!isRecord$1(event) || !isRecord$1(event.usage)) throw new ValidationError$1("runLocalHarness: Codex turn.completed event is missing usage");
4049
4049
  const record = parseCodexUsageRecord(event.usage, "runLocalHarness: Codex");
4050
4050
  return {
4051
4051
  inputTokens: record.inputTokens,
@@ -4055,7 +4055,7 @@ function parseCodexTokenUsage(stdout) {
4055
4055
  ...record.cacheWriteInputTokens === void 0 ? {} : { cacheWriteInputTokens: record.cacheWriteInputTokens }
4056
4056
  };
4057
4057
  }
4058
- function isRecord(value) {
4058
+ function isRecord$1(value) {
4059
4059
  return value !== null && typeof value === "object" && !Array.isArray(value);
4060
4060
  }
4061
4061
  //#endregion
@@ -20441,6 +20441,314 @@ async function prepareScopeResume(opts, events, signal, now, parentId = opts.run
20441
20441
  };
20442
20442
  }
20443
20443
  //#endregion
20444
+ //#region src/mcp/tools/spawn-resource-paths.ts
20445
+ /**
20446
+ * Inline resources a manager hands a child by PATH instead of by content.
20447
+ *
20448
+ * The canonical profile schema knows two resource kinds, `inline` (a content string) and `github`.
20449
+ * A manager that wants a child to receive a data file therefore had one way to do it: emit the
20450
+ * bytes inside its own `spawn` tool call. That is a transcription by a language model, and it does
20451
+ * not survive size. Measured 2026-09-12 (discovery-lab `mech-interp-foundations-glm2-b-20260912b`):
20452
+ * a 29,144-character base64 payload on the manager's disk reached three children as 15,928
20453
+ * characters with 11 substitutions, and a fourth child received the literal placeholder the
20454
+ * manager meant to replace. Seven blind-check attempts across two runs delivered no data.
20455
+ *
20456
+ * `{ kind: 'inline', name, path }` lets the coordination server be the transport: it reads the
20457
+ * file from the manager's workspace, fills `content`, and the profile that reaches the schema,
20458
+ * the journal, and the provider is an ordinary inline resource. Nothing downstream changes; the
20459
+ * model's output stops carrying the bytes.
20460
+ *
20461
+ * Where the bytes come from is a {@link SpawnResourceReader}, and there are two:
20462
+ * - a HOST DIRECTORY, for a manager whose driver runs on this host (a loopback bridge with a
20463
+ * `cwd`), read through the descriptor-identity checks below;
20464
+ * - the manager's OWN EXECUTION ENVIRONMENT, for a manager inside a provider sandbox, read
20465
+ * through the environment's `read()`. The coordination server cannot see a sandbox filesystem,
20466
+ * but the provider that created the sandbox can, and it is already in hand.
20467
+ *
20468
+ * The second reader exists because the first one's absence was not a refusal a manager could
20469
+ * work around. Measured 2026-09-17 (discovery-lab `mech-interp-foundations-sandbox-a-20260917h`):
20470
+ * a sandbox-rooted director, refused by path, fell back to emitting its files as content and got
20471
+ * 5 characters wrong in 24,008, destroying 3 of 7 files including its instrument and both
20472
+ * drivers. At that rate 20 KB of mounts all arrive intact about 2% of the time, and gzip makes it
20473
+ * worse by turning one wrong character into total loss. Four consecutive runs in that lane lost
20474
+ * their research children to this. There is no encoding that fixes a transcription channel; the
20475
+ * only fix is a channel with no model in it.
20476
+ *
20477
+ * Fail-closed rules, each with the reason a manager needs to fix its call:
20478
+ * - no reader available → refused (neither a host directory nor an environment with `read`)
20479
+ * - absolute path or `..` escape → refused by both readers; a symlink that resolves outside the
20480
+ * root → refused by the host reader (the environment reader delegates containment to the
20481
+ * provider, which serves only the sandbox's own workspace)
20482
+ * - not a regular file → refused
20483
+ * - over {@link SPAWN_RESOURCE_PATH_MAX_BYTES} → refused naming the bound
20484
+ * - bytes that are not valid UTF-8 → refused; `content` is a string, so binary data is encoded
20485
+ * (base64) by the manager first, exactly as it would be for a content resource
20486
+ */
20487
+ const SPAWN_RESOURCE_PATH_MAX_BYTES = 4 * 1024 * 1024;
20488
+ /** The host-directory reader: a manager whose workspace is a directory this process can open. */
20489
+ function hostDirectoryReader(root) {
20490
+ return {
20491
+ describe: `workspace root ${root}`,
20492
+ read: (requested) => readUnderRoot(root, requested)
20493
+ };
20494
+ }
20495
+ /**
20496
+ * The environment reader: a manager running inside a provider environment whose `read()` serves
20497
+ * its own workspace. The provider owns containment — it will not serve a path outside the box —
20498
+ * but the relative-path and `..` rules are enforced here too, so the refusal names the rule the
20499
+ * manager broke rather than whatever the provider says about an escape it declined.
20500
+ *
20501
+ * `read()` returns a string, so an environment cannot hand back bytes that are not UTF-8; the
20502
+ * provider has already decoded. The size bound is checked on what arrives.
20503
+ */
20504
+ function environmentReader(environment) {
20505
+ return {
20506
+ describe: `environment ${environment.id}`,
20507
+ async read(requested) {
20508
+ if (requested.length === 0) return {
20509
+ ok: false,
20510
+ reason: "path is empty"
20511
+ };
20512
+ if (isAbsolute(requested)) return {
20513
+ ok: false,
20514
+ reason: `path must be relative to the manager's workspace, not absolute (${requested})`
20515
+ };
20516
+ if (requested.split(/[\\/]/u).includes("..")) return {
20517
+ ok: false,
20518
+ reason: `path ${requested} leaves the manager's workspace`
20519
+ };
20520
+ let content;
20521
+ try {
20522
+ content = await environment.read(requested);
20523
+ } catch (error) {
20524
+ return {
20525
+ ok: false,
20526
+ reason: `path ${requested}: ${describe(error)} (read from environment ${environment.id})`
20527
+ };
20528
+ }
20529
+ const bytes = Buffer.from(content, "utf8");
20530
+ if (bytes.length > 4194304) return {
20531
+ ok: false,
20532
+ reason: `path ${requested} is ${bytes.length} bytes; an inline resource is at most ${SPAWN_RESOURCE_PATH_MAX_BYTES} bytes`
20533
+ };
20534
+ return {
20535
+ ok: true,
20536
+ content,
20537
+ byteLength: bytes.length,
20538
+ sha256: createHash("sha256").update(bytes).digest("hex")
20539
+ };
20540
+ }
20541
+ };
20542
+ }
20543
+ function isRecord(value) {
20544
+ return typeof value === "object" && value !== null && !Array.isArray(value);
20545
+ }
20546
+ /** An inline ref that names a path and carries no content. Anything else is left untouched so the
20547
+ * canonical schema keeps its verdict on it. */
20548
+ function pathInlineRef(value) {
20549
+ if (!isRecord(value)) return void 0;
20550
+ if (value.kind !== "inline" || value.content !== void 0) return void 0;
20551
+ if (typeof value.path !== "string" || typeof value.name !== "string") return void 0;
20552
+ return {
20553
+ kind: "inline",
20554
+ name: value.name,
20555
+ path: value.path
20556
+ };
20557
+ }
20558
+ async function readUnderRoot(root, requested) {
20559
+ if (requested.length === 0) return {
20560
+ ok: false,
20561
+ reason: "path is empty"
20562
+ };
20563
+ if (isAbsolute(requested)) return {
20564
+ ok: false,
20565
+ reason: `path must be relative to the workspace root, not absolute (${requested})`
20566
+ };
20567
+ const rootReal = await realpath(root).catch(() => void 0);
20568
+ if (rootReal === void 0) return {
20569
+ ok: false,
20570
+ reason: `workspace root ${root} does not exist`
20571
+ };
20572
+ const candidate = resolve(rootReal, requested);
20573
+ if (!inside(rootReal, candidate)) return {
20574
+ ok: false,
20575
+ reason: `path ${requested} leaves the workspace root`
20576
+ };
20577
+ let handle;
20578
+ try {
20579
+ handle = await open(candidate, "r");
20580
+ } catch (error) {
20581
+ return {
20582
+ ok: false,
20583
+ reason: `path ${requested}: ${describe(error)}`
20584
+ };
20585
+ }
20586
+ try {
20587
+ const info = await handle.stat();
20588
+ if (!info.isFile()) return {
20589
+ ok: false,
20590
+ reason: `path ${requested} is not a regular file`
20591
+ };
20592
+ const real = await realpath(candidate).catch(() => void 0);
20593
+ if (real === void 0 || !inside(rootReal, real)) return {
20594
+ ok: false,
20595
+ reason: `path ${requested} resolves outside the workspace root`
20596
+ };
20597
+ const named = await stat(real).catch(() => void 0);
20598
+ if (named === void 0 || named.dev !== info.dev || named.ino !== info.ino) return {
20599
+ ok: false,
20600
+ reason: `path ${requested} changed while it was being read; retry the spawn`
20601
+ };
20602
+ if (info.size > 4194304) return {
20603
+ ok: false,
20604
+ reason: `path ${requested} is ${info.size} bytes; an inline resource is at most ${SPAWN_RESOURCE_PATH_MAX_BYTES} bytes`
20605
+ };
20606
+ const bytes = await handle.readFile();
20607
+ if (bytes.length > 4194304) return {
20608
+ ok: false,
20609
+ reason: `path ${requested} is ${bytes.length} bytes; an inline resource is at most ${SPAWN_RESOURCE_PATH_MAX_BYTES} bytes`
20610
+ };
20611
+ const content = bytes.toString("utf8");
20612
+ if (!Buffer.from(content, "utf8").equals(bytes)) return {
20613
+ ok: false,
20614
+ reason: `path ${requested} is not valid UTF-8; encode binary data (base64) before handing it to a child`
20615
+ };
20616
+ return {
20617
+ ok: true,
20618
+ content,
20619
+ byteLength: bytes.length,
20620
+ sha256: createHash("sha256").update(bytes).digest("hex")
20621
+ };
20622
+ } catch (error) {
20623
+ return {
20624
+ ok: false,
20625
+ reason: `path ${requested}: ${describe(error)}`
20626
+ };
20627
+ } finally {
20628
+ await handle.close().catch(() => void 0);
20629
+ }
20630
+ }
20631
+ /** `target` is `rootReal` itself or strictly below it; both must already be absolute. */
20632
+ function inside(rootReal, target) {
20633
+ const rel = relative(rootReal, target);
20634
+ return rel !== "" && !rel.startsWith(`..${sep}`) && rel !== ".." && !isAbsolute(rel);
20635
+ }
20636
+ function describe(error) {
20637
+ const code = error?.code;
20638
+ if (code === "ENOENT") return "does not exist under the workspace root";
20639
+ if (code === "EACCES" || code === "EPERM") return "is not readable by the runtime process";
20640
+ if (code === "EISDIR") return "is not a regular file";
20641
+ return error instanceof Error ? error.message : String(error);
20642
+ }
20643
+ /**
20644
+ * Replace every `{ kind: 'inline', name, path }` under `profile.resources` with the inline
20645
+ * resource its bytes make. Returns the profile unchanged (same reference) when nothing names a
20646
+ * path, so callers pay nothing on the common case.
20647
+ *
20648
+ * `source` is a host directory (a string, kept for the existing call sites), a
20649
+ * {@link SpawnResourceReader}, or `undefined` when the manager has neither — in which case a path
20650
+ * is refused with the reason and what to do instead.
20651
+ */
20652
+ async function resolveSpawnResourcePaths(profile, source) {
20653
+ if (!isRecord(profile) || !isRecord(profile.resources)) return {
20654
+ ok: true,
20655
+ profile,
20656
+ resolved: []
20657
+ };
20658
+ const reader = typeof source === "string" ? hostDirectoryReader(source) : source;
20659
+ const resources = profile.resources;
20660
+ const resolved = [];
20661
+ let touched = false;
20662
+ const next = { ...resources };
20663
+ const substitute = async (at, ref) => {
20664
+ if (reader === void 0) return { error: "this manager has no workspace root the coordination server may read (no host directory and no environment with read), so a resource by path cannot be resolved; pass content, or a github resource" };
20665
+ const read = await reader.read(ref.path);
20666
+ if (!read.ok) return { error: read.reason };
20667
+ resolved.push({
20668
+ at,
20669
+ path: ref.path,
20670
+ byteLength: read.byteLength,
20671
+ sha256: read.sha256
20672
+ });
20673
+ touched = true;
20674
+ return {
20675
+ kind: "inline",
20676
+ name: ref.name,
20677
+ content: read.content
20678
+ };
20679
+ };
20680
+ for (const list of [
20681
+ "tools",
20682
+ "skills",
20683
+ "agents"
20684
+ ]) {
20685
+ const entries = resources[list];
20686
+ if (!Array.isArray(entries)) continue;
20687
+ const out = [];
20688
+ for (const [index, entry] of entries.entries()) {
20689
+ const ref = pathInlineRef(entry);
20690
+ if (ref === void 0) {
20691
+ out.push(entry);
20692
+ continue;
20693
+ }
20694
+ const at = `${list}[${index}]`;
20695
+ const replaced = await substitute(at, ref);
20696
+ if ("error" in replaced) return {
20697
+ ok: false,
20698
+ at,
20699
+ reason: replaced.error
20700
+ };
20701
+ out.push(replaced);
20702
+ }
20703
+ next[list] = out;
20704
+ }
20705
+ if (Array.isArray(resources.files)) {
20706
+ const out = [];
20707
+ for (const [index, mount] of resources.files.entries()) {
20708
+ const ref = isRecord(mount) ? pathInlineRef(mount.resource) : void 0;
20709
+ if (ref === void 0 || !isRecord(mount)) {
20710
+ out.push(mount);
20711
+ continue;
20712
+ }
20713
+ const at = `files[${index}].resource`;
20714
+ const replaced = await substitute(at, ref);
20715
+ if ("error" in replaced) return {
20716
+ ok: false,
20717
+ at,
20718
+ reason: replaced.error
20719
+ };
20720
+ out.push({
20721
+ ...mount,
20722
+ resource: replaced
20723
+ });
20724
+ }
20725
+ next.files = out;
20726
+ }
20727
+ const instructions = pathInlineRef(resources.instructions);
20728
+ if (instructions !== void 0) {
20729
+ const replaced = await substitute("instructions", instructions);
20730
+ if ("error" in replaced) return {
20731
+ ok: false,
20732
+ at: "instructions",
20733
+ reason: replaced.error
20734
+ };
20735
+ next.instructions = replaced;
20736
+ }
20737
+ if (!touched) return {
20738
+ ok: true,
20739
+ profile,
20740
+ resolved: []
20741
+ };
20742
+ return {
20743
+ ok: true,
20744
+ profile: {
20745
+ ...profile,
20746
+ resources: next
20747
+ },
20748
+ resolved
20749
+ };
20750
+ }
20751
+ //#endregion
20444
20752
  //#region src/runtime/supervise/retained-scope-owner.ts
20445
20753
  const owners = /* @__PURE__ */ new WeakMap();
20446
20754
  /** The scope owns these writers; provider adapters receive only the restricted context. */
@@ -20528,6 +20836,84 @@ function bindScopeRetainedOwnerProvider(scope, provider) {
20528
20836
  const state = owners.get(scope);
20529
20837
  if (state) state.provider = provider;
20530
20838
  }
20839
+ /**
20840
+ * Bind where the owner's CURRENT environment id can be read from. The drive harness supplies a
20841
+ * resolver over its active executor's materialization receipt, which every provider path
20842
+ * publishes once the environment exists. The `environment` admission is written only on the
20843
+ * retained path, and the production tangle provider declares no `retainedControl`, so a reader
20844
+ * that scanned admissions alone would refuse every read on a real sandbox root while looking
20845
+ * correct in every test that uses the retained fixture.
20846
+ */
20847
+ function bindScopeRetainedOwnerEnvironmentId(scope, liveEnvironmentId) {
20848
+ const state = owners.get(scope);
20849
+ if (state) state.liveEnvironmentId = liveEnvironmentId;
20850
+ }
20851
+ /**
20852
+ * The owner's environment as a source of by-path spawn resources.
20853
+ *
20854
+ * Built once per scope, before the environment exists: the coordination tools are created ahead
20855
+ * of the owner's first turn, and the environment is admitted during it. So the reader resolves
20856
+ * its target on every read — the latest environment admission on this node, reconstructed through
20857
+ * the bound provider the same way cleanup reconstructs it, with the same identity check. A manager
20858
+ * that has not yet been admitted, or whose provider was never bound, gets a refusal that names the
20859
+ * missing piece rather than a read from nowhere.
20860
+ *
20861
+ * The environment's `read()` serves the sandbox's own workspace; containment against that
20862
+ * workspace is the provider's. The relative-path and `..` rules are the reader's, in
20863
+ * `environmentReader`, so a manager is refused for the rule it broke.
20864
+ */
20865
+ function scopeRetainedOwnerResourceReader(scope) {
20866
+ const state = owners.get(scope);
20867
+ if (state === void 0) return void 0;
20868
+ const latestEnvironmentId = () => state.liveEnvironmentId?.() ?? [...state.admissions].reverse().flatMap((admission) => admission.phase === "environment" ? [admission.environmentId] : [])[0];
20869
+ return {
20870
+ get describe() {
20871
+ return `environment ${latestEnvironmentId() ?? "<not yet admitted>"}`;
20872
+ },
20873
+ async read(path) {
20874
+ const provider = state.provider;
20875
+ if (provider === void 0) return {
20876
+ ok: false,
20877
+ reason: "the manager’s environment provider is not bound yet"
20878
+ };
20879
+ const environmentId = latestEnvironmentId();
20880
+ if (environmentId === void 0) return {
20881
+ ok: false,
20882
+ reason: "the manager’s environment has not been admitted yet"
20883
+ };
20884
+ if (!provider.get) return {
20885
+ ok: false,
20886
+ reason: `provider ${provider.name} cannot reconstruct the manager’s environment`
20887
+ };
20888
+ let environment;
20889
+ try {
20890
+ environment = await provider.get(environmentId);
20891
+ } catch (error) {
20892
+ return {
20893
+ ok: false,
20894
+ reason: `environment ${environmentId}: ${error instanceof Error ? error.message : String(error)}`
20895
+ };
20896
+ }
20897
+ if (environment === null) return {
20898
+ ok: false,
20899
+ reason: `environment ${environmentId} is gone`
20900
+ };
20901
+ if (environment.id !== environmentId || environment.provider !== provider.name) return {
20902
+ ok: false,
20903
+ reason: `provider returned another environment for ${environmentId}`
20904
+ };
20905
+ if (typeof environment.read !== "function") return {
20906
+ ok: false,
20907
+ reason: `environment ${environmentId} does not expose read; its provider cannot serve a resource by path`
20908
+ };
20909
+ const read = environment.read.bind(environment);
20910
+ return environmentReader({
20911
+ id: environment.id,
20912
+ read
20913
+ }).read(path);
20914
+ }
20915
+ };
20916
+ }
20531
20917
  /** The existing scope settlement barrier releases the owner's environment after all its turns. */
20532
20918
  async function releaseScopeRetainedOwnerEnvironment(scope) {
20533
20919
  const state = owners.get(scope);
@@ -22762,6 +23148,7 @@ function makeTreeView(root, children) {
22762
23148
  ...c.materialization ? { materialization: c.materialization } : {},
22763
23149
  ...c.executionBindings.length > 0 ? { executionBindings: Object.freeze([...c.executionBindings]) } : {},
22764
23150
  spent: c.spent,
23151
+ ...c.resolved !== void 0 && !c.delivered ? { settlementPending: { kind: c.resolved.kind } } : {},
22765
23152
  ...c.settledAt === void 0 ? {} : { settledAt: c.settledAt },
22766
23153
  ...c.outRef ? { outRef: c.outRef } : {},
22767
23154
  ...c.trace ? { trace: c.trace } : {},
@@ -24660,6 +25047,6 @@ function isNonEmptySpend(s) {
24660
25047
  return s.iterations > 0 || s.tokens.input > 0 || s.tokens.output > 0 || s.usd > 0 || s.ms > 0 || s.tokensKnown === false || s.usdKnown === false || Object.values(s.resources ?? {}).some((resource) => resource.amount > 0 || !resource.known);
24661
25048
  }
24662
25049
  //#endregion
24663
- export { rollingDispatch as $, promptFromAgentTurnInput as $i, buildLoopOtelSpans as $n, knownMaterializationReceipt as $r, bridgeAdmissionRefusal as $t, validateWaitSpec as A, chargedTokens as Ai, registerRetainedExecutorPreparation as An, defineProfileMaterializationContract as Ar, spendFromUsageEvents as At, workerInteractiveAdmissionFile as B, throwIfAborted as Bi, retainedCreateMaterial as Bn, unsupportedProfileDimensions as Br, readWorkerProgress as Bt, restoreScopeOwnerAcceptedExecution as C, mapSandboxEvent as Ci, providerAsExecutor as Cn, harnessSupportsReasoningEffort as Cr, parseWorkerToolTraceArtifact as Ct, isWaitOutcome as D, sandboxProgressEvents as Di, createPushTraceSource as Dn, AGENT_PROFILE_MATERIALIZATION_AXES as Dr, createBudgetPool as Dt, createWaitProbes as E, sandboxEventServedBackend as Ei, sandboxClientAsProvider as En, CodexExecutionDiagnosticError as Er, assertValidBudget as Et, scopeRetainedOwnerContext as F, promptCacheTokenClasses as Fi, runAbortable as Fn, promptOnlyProfileMaterialization as Fr, workerTraceHeaders as Ft, reconnectRetainedInteractiveRun as G, resourceTelemetry as Gi, harnessTranscriptArtifact as Gn, readCommittedJsonLines as Gr, claimsAuthority as Gt, readWorkerInteractiveBinding as H, withTimeout as Hi, defaultRedactorIdentityMaterial as Hn, worktreeCliProfileMaterialization as Hr, AUTHORITY_MARKERS as Ht, scopeRetainedOwnerPriorSpend as I, randomSuffix as Ii, reconnectRetainedRun as In, promptResourceProfileMaterialization as Ir, workerTraceSeamKey as It, destroyInteractiveEnvironment as J, abortError$2 as Ji, createPropagatingTraceEmitter as Jn, attestRuntimeOwnedScopeOwner as Jr, peerMailTools as Jt, recoverRetainedInteractiveRun as K, withBudgetResources as Ki, persistHarnessTranscript as Kn, writeAllBytes as Kr, createPeerMailbox as Kt, scopeRetainedOwnerResult as L, sleep as Li, recoverRetainedRun as Ln, renderProfileMaterializationIssues as Lr, taskToPrompt as Lt, bindScopeRetainedOwnerProvider as M, deleteBoxSafe as Mi, RunCancellationReason as Mn, profileMaterializationAxes$1 as Mr, WORKER_TRACE_PROPAGATION as Mt, consumeScopeRetainedOwnerResult as N, hasCompleteCacheBreakdown as Ni, abortError as Nn, promptControlProfileMaterialization as Nr, readWorkerTraceContext as Nt, pollFor as O, sumSandboxUsage as Oi, decodeToolPart as On, assertProfileMaterialization as Or, meterUsageEvent as Ot, prepareScopeRetainedOwnerTask as P, isAbortError$2 as Pi, linkAbort as Pn, promptModelProfileMaterialization as Pr, workerTraceEnv as Pt, queueOf as Q, teardownExecutor as Qi, INTELLIGENCE_WIRE_VERSION as Qn, knownExecutionBindingReceipt as Qr, executorFailure as Qt, interactiveAdmissionSeamKey as R, stringifySafe as Ri, startRetainedRun as Rn, renderUnsupported as Rr, DEFAULT_STALL_AFTER_MS as Rt, recordScopeOwnerMaterialization as S, isSandboxTerminalEvent as Si, createAgentEnvironmentProviderRegistry as Sn, LOCAL_HARNESSES as Sr, isTraceAnalysisStore as St, settledToIteration as T, notifySandboxEventObserver as Ti, resolveAgentEnvironmentProvider as Tn, parseCodexTokenUsage as Tr, BudgetReconcileFault as Tt, workerInteractiveBindingFile as U, zeroSpend as Ui, resolveRedactor as Un, isNoEntError as Ur, DEFAULT_PEER_MAIL_LIMITS as Ut, attachWorker as V, unmeteredSpend as Vi, defaultRedactor as Vn, validateProfileMaterialization as Vr, createInbox as Vt, workerInteractiveBindingsDir as W, addResourceSpend as Wi, captureHarnessTranscript as Wn, prepareJsonlAppend as Wr, PEER_MAIL_WIRE_KEY as Wt, effectiveConcurrency as X, DEFAULT_SUCCESSFUL_SHUTDOWN_MS as Xi, readTraceContextFromEnv as Xn, finalizeRuntimeOwnedPendingExecutor as Xr, isLiveNodeStatus as Xt, errMessage as Y, awaitAbortable$1 as Yi, mergeTraceEnv as Yn, authoredProfileDigest as Yr, peerMailVerbNames as Yt, freeSlots as Z, armDeadlineTimer as Zi, traceContextToEnv as Zn, inheritRuntimeOwnedExecutorAttestation as Zr, isTerminalNodeStatus as Zt, beginScopeOwnerAttempt as _, assertSandboxServedModel as _i, routerBrain as _n, runWorktreeHarness as _r, materializeTreeView as _t, pickBestDelivered as a, runtimeOwnedExecutorMaterialization as ai, bridgeRuntimeAttachmentsKey as an, flatOtelSpan as ar, createExecutorRegistry as at, meterRuntimeOwnedAccounting as b, createSandboxUsageLedger as bi, observedModelMatchesDeclared as bn, removeWorktree as br, WORKER_TOOL_TRACE_SCHEMA_VERSION as bt, DriverAttemptsExhaustedError as c, runtimeOwnedScopeOwnerRuntime as ci, createSandboxForSpec as cn, padSpanId as cr, DEFAULT_SANDBOX_STEERING_MAX_TURNS as ct, defaultUnmetContractSteer as d, executableAgentProfileSnapshot as di, runAgentRounds as dn, createRuntimeEventCollector as dr, FileResultBlobStore as dt, promptOptionsFromAgentTurnInput as ea, newExecutionAttemptId as ei, bridgeModelRouteRefusal as en, buildLoopSpanNodes as er, bindReusableExecutorExecutionId as et, runDriverWithRetry as f, executableAgentSpecSnapshot as fi, createSandboxLineage as fn, createRuntimeStreamEventCollector as fr, FileSpawnJournal as ft, withDriverExecutor as g, readSandboxOutcome as gi, readPromptOptions as gn, runSettledCommand as gr, loadSpawnForest as gt, isDriverSpec as h, projectSandboxOutcome as hi, assertBoxlessPromptOptions as hn, sanitizeRuntimeStreamEvent as hr, insideCursorNamespace as ht, collectDelivered as i, runtimeOwnedExecutorExecutionBinding as ii, readCodexRolloutSession as in, exportEvalRuns as ir, createExecutor as it, waitUntil as j, cloneSpend as ji, retainedExecutorSeamKey as jn, fullProfileMaterialization as jr, spendFromUsageTotals as jt, timerAt as k, addSpend as ki, sandboxSessionTraceSource as kn, controlProfileMaterialization as kr, newUsageTotals as kt, HarnessTurnFailedError as l, unknownExecutionBindingReceipt as li, defaultSelectWinner as ln, padTraceId as lr, createSteerableSandboxSession as lt, driverExecutorFactory as m, detachedSnapshot as mi, acquireSandbox as mn, sanitizeKnowledgeReadinessReport as mr, InMemorySpawnJournal as mt, createSupervisor as n, recordRuntimeOwnedDriveHarnessProviderEvidence as ni, createCodexRolloutStoreReader as nn, createOpenInferenceFileExporter as nr, cliInPlaceExecutor as nt, runFinalizer as o, runtimeOwnedExecutorProviderEvidence as oi, bridgeStopSignalKey as on, generateSpanId as or, snapshotExecutorConfig as ot, driverChild as p, detachedFrozen as pi, probeSandboxCapabilities as pn, sanitizeAgentRuntimeEvent as pr, InMemoryResultBlobStore as pt, startRetainedInteractiveRun as q, decodeHarnessUsage as qi, contentAddress as qn, attestRuntimeOwnedPendingExecutor as qr, isPeerMailEnvelope as qt, bestDelivered as r, runtimeOwnedDriveHarnessProviderEvidence as ri, harnessUsageIsEmpty as rn, createOtelExporter as rr, cliWorktreeExecutor as rt, runTree as s, runtimeOwnedPendingExecutorMaterialization as si, TERMINAL_DECISIONS as sn, loopEventToOtelSpan as sr, createWorktreeCliExecutor as st, createRootHandle as t, providerMessageText as ta, providerAttemptEvidence as ti, addHarnessUsage as tn, buildRuntimeEventOtelSpans as tr, captureReusableExecutorConfig as tt, classifyDriverFailure as u, unknownMaterializationReceipt as ui, isTerminalDecision as un, toOtelAttributes as ur, createInPlaceCliExecutor as ut, createScope as v, canonicalStreamEventFromSandboxEvent as vi, runBrainLoop as vn, captureWorktreeDiff as vr, pendingWaits as vt, scopeOwnerExecutorNodeContext as w, mapSandboxToolEvent as wi, providerAsSandboxClient as wn, localHarnessExecutable as wr, workerTraceAnalysisStore as wt, meterRuntimeOwnedProviderAttempt as x, extractLlmCallEvent as xi, DEFAULT_SANDBOX_IDLE_TIMEOUT_SECONDS as xn, DEFAULT_LOCAL_HARNESS as xr, captureWorkerTraceEvidence as xt, deriveNodeExecutionIdentity as y, createSandboxToolPartState as yi, canonicalObservedModelParts as yn, createWorktree as yr, replaySpawnTree as yt, readWorkerInteractiveAdmissions as z, throwAbort as zi, startRetainedRunInEnvironment as zn, sandboxActProfileMaterialization as zr, createActivityLog as zt };
25050
+ export { startRetainedInteractiveRun as $, decodeHarnessUsage as $i, contentAddress as $n, attestRuntimeOwnedPendingExecutor as $r, isPeerMailEnvelope as $t, validateWaitSpec as A, mapSandboxToolEvent as Ai, providerAsSandboxClient as An, localHarnessExecutable as Ar, workerTraceAnalysisStore as At, SPAWN_RESOURCE_PATH_MAX_BYTES as B, isAbortError$2 as Bi, linkAbort as Bn, promptModelProfileMaterialization as Br, workerTraceEnv as Bt, restoreScopeOwnerAcceptedExecution as C, assertSandboxServedModel as Ci, routerBrain as Cn, runWorktreeHarness as Cr, materializeTreeView as Ct, isWaitOutcome as D, extractLlmCallEvent as Di, DEFAULT_SANDBOX_IDLE_TIMEOUT_SECONDS as Dn, DEFAULT_LOCAL_HARNESS as Dr, captureWorkerTraceEvidence as Dt, createWaitProbes as E, createSandboxUsageLedger as Ei, observedModelMatchesDeclared as En, removeWorktree as Er, WORKER_TOOL_TRACE_SCHEMA_VERSION as Et, prepareScopeRetainedOwnerTask as F, addSpend as Fi, sandboxSessionTraceSource as Fn, controlProfileMaterialization as Fr, newUsageTotals as Ft, readWorkerInteractiveAdmissions as G, throwAbort as Gi, startRetainedRunInEnvironment as Gn, sandboxActProfileMaterialization as Gr, createActivityLog as Gt, hostDirectoryReader as H, randomSuffix as Hi, reconnectRetainedRun as Hn, promptResourceProfileMaterialization as Hr, workerTraceSeamKey as Ht, scopeRetainedOwnerContext as I, chargedTokens as Ii, registerRetainedExecutorPreparation as In, defineProfileMaterializationContract as Ir, spendFromUsageEvents as It, readWorkerInteractiveBinding as J, withTimeout as Ji, defaultRedactorIdentityMaterial as Jn, worktreeCliProfileMaterialization as Jr, AUTHORITY_MARKERS as Jt, workerInteractiveAdmissionFile as K, throwIfAborted as Ki, retainedCreateMaterial as Kn, unsupportedProfileDimensions as Kr, readWorkerProgress as Kt, scopeRetainedOwnerPriorSpend as L, cloneSpend as Li, retainedExecutorSeamKey as Ln, fullProfileMaterialization as Lr, spendFromUsageTotals as Lt, bindScopeRetainedOwnerEnvironmentId as M, sandboxEventServedBackend as Mi, sandboxClientAsProvider as Mn, CodexExecutionDiagnosticError as Mr, assertValidBudget as Mt, bindScopeRetainedOwnerProvider as N, sandboxProgressEvents as Ni, createPushTraceSource as Nn, AGENT_PROFILE_MATERIALIZATION_AXES as Nr, createBudgetPool as Nt, pollFor as O, isSandboxTerminalEvent as Oi, createAgentEnvironmentProviderRegistry as On, LOCAL_HARNESSES as Or, isTraceAnalysisStore as Ot, consumeScopeRetainedOwnerResult as P, sumSandboxUsage as Pi, decodeToolPart as Pn, assertProfileMaterialization as Pr, meterUsageEvent as Pt, recoverRetainedInteractiveRun as Q, withBudgetResources as Qi, persistHarnessTranscript as Qn, writeAllBytes as Qr, createPeerMailbox as Qt, scopeRetainedOwnerResourceReader as R, deleteBoxSafe as Ri, RunCancellationReason as Rn, profileMaterializationAxes$1 as Rr, WORKER_TRACE_PROPAGATION as Rt, recordScopeOwnerMaterialization as S, readSandboxOutcome as Si, readPromptOptions as Sn, runSettledCommand as Sr, loadSpawnForest as St, settledToIteration as T, createSandboxToolPartState as Ti, canonicalObservedModelParts as Tn, createWorktree as Tr, replaySpawnTree as Tt, resolveSpawnResourcePaths as U, sleep as Ui, recoverRetainedRun as Un, renderProfileMaterializationIssues as Ur, taskToPrompt as Ut, environmentReader as V, promptCacheTokenClasses as Vi, runAbortable as Vn, promptOnlyProfileMaterialization as Vr, workerTraceHeaders as Vt, interactiveAdmissionSeamKey as W, stringifySafe as Wi, startRetainedRun as Wn, renderUnsupported as Wr, DEFAULT_STALL_AFTER_MS as Wt, workerInteractiveBindingsDir as X, addResourceSpend as Xi, captureHarnessTranscript as Xn, prepareJsonlAppend as Xr, PEER_MAIL_WIRE_KEY as Xt, workerInteractiveBindingFile as Y, zeroSpend as Yi, resolveRedactor as Yn, isNoEntError as Yr, DEFAULT_PEER_MAIL_LIMITS as Yt, reconnectRetainedInteractiveRun as Z, resourceTelemetry as Zi, harnessTranscriptArtifact as Zn, readCommittedJsonLines as Zr, claimsAuthority as Zt, beginScopeOwnerAttempt as _, executableAgentProfileSnapshot as _i, runAgentRounds as _n, createRuntimeEventCollector as _r, FileResultBlobStore as _t, pickBestDelivered as a, promptFromAgentTurnInput as aa, knownMaterializationReceipt as ai, bridgeAdmissionRefusal as an, buildLoopOtelSpans as ar, rollingDispatch as at, meterRuntimeOwnedAccounting as b, detachedSnapshot as bi, acquireSandbox as bn, sanitizeKnowledgeReadinessReport as br, InMemorySpawnJournal as bt, DriverAttemptsExhaustedError as c, recordRuntimeOwnedDriveHarnessProviderEvidence as ci, createCodexRolloutStoreReader as cn, createOpenInferenceFileExporter as cr, cliInPlaceExecutor as ct, defaultUnmetContractSteer as d, runtimeOwnedExecutorMaterialization as di, bridgeRuntimeAttachmentsKey as dn, flatOtelSpan as dr, createExecutorRegistry as dt, abortError$2 as ea, attestRuntimeOwnedScopeOwner as ei, peerMailTools as en, createPropagatingTraceEmitter as er, destroyInteractiveEnvironment as et, runDriverWithRetry as f, runtimeOwnedExecutorProviderEvidence as fi, bridgeStopSignalKey as fn, generateSpanId as fr, snapshotExecutorConfig as ft, withDriverExecutor as g, unknownMaterializationReceipt as gi, isTerminalDecision as gn, toOtelAttributes as gr, createInPlaceCliExecutor as gt, isDriverSpec as h, unknownExecutionBindingReceipt as hi, defaultSelectWinner as hn, padTraceId as hr, createSteerableSandboxSession as ht, collectDelivered as i, teardownExecutor as ia, knownExecutionBindingReceipt as ii, executorFailure as in, INTELLIGENCE_WIRE_VERSION as ir, queueOf as it, waitUntil as j, notifySandboxEventObserver as ji, resolveAgentEnvironmentProvider as jn, parseCodexTokenUsage as jr, BudgetReconcileFault as jt, timerAt as k, mapSandboxEvent as ki, providerAsExecutor as kn, harnessSupportsReasoningEffort as kr, parseWorkerToolTraceArtifact as kt, HarnessTurnFailedError as l, runtimeOwnedDriveHarnessProviderEvidence as li, harnessUsageIsEmpty as ln, createOtelExporter as lr, cliWorktreeExecutor as lt, driverExecutorFactory as m, runtimeOwnedScopeOwnerRuntime as mi, createSandboxForSpec as mn, padSpanId as mr, DEFAULT_SANDBOX_STEERING_MAX_TURNS as mt, createSupervisor as n, DEFAULT_SUCCESSFUL_SHUTDOWN_MS as na, finalizeRuntimeOwnedPendingExecutor as ni, isLiveNodeStatus as nn, readTraceContextFromEnv as nr, effectiveConcurrency as nt, runFinalizer as o, promptOptionsFromAgentTurnInput as oa, newExecutionAttemptId as oi, bridgeModelRouteRefusal as on, buildLoopSpanNodes as or, bindReusableExecutorExecutionId as ot, driverChild as p, runtimeOwnedPendingExecutorMaterialization as pi, TERMINAL_DECISIONS as pn, loopEventToOtelSpan as pr, createWorktreeCliExecutor as pt, attachWorker as q, unmeteredSpend as qi, defaultRedactor as qn, validateProfileMaterialization as qr, createInbox as qt, bestDelivered as r, armDeadlineTimer as ra, inheritRuntimeOwnedExecutorAttestation as ri, isTerminalNodeStatus as rn, traceContextToEnv as rr, freeSlots as rt, runTree as s, providerMessageText as sa, providerAttemptEvidence as si, addHarnessUsage as sn, buildRuntimeEventOtelSpans as sr, captureReusableExecutorConfig as st, createRootHandle as t, awaitAbortable$1 as ta, authoredProfileDigest as ti, peerMailVerbNames as tn, mergeTraceEnv as tr, errMessage as tt, classifyDriverFailure as u, runtimeOwnedExecutorExecutionBinding as ui, readCodexRolloutSession as un, exportEvalRuns as ur, createExecutor as ut, createScope as v, executableAgentSpecSnapshot as vi, createSandboxLineage as vn, createRuntimeStreamEventCollector as vr, FileSpawnJournal as vt, scopeOwnerExecutorNodeContext as w, canonicalStreamEventFromSandboxEvent as wi, runBrainLoop as wn, captureWorktreeDiff as wr, pendingWaits as wt, meterRuntimeOwnedProviderAttempt as x, projectSandboxOutcome as xi, assertBoxlessPromptOptions as xn, sanitizeRuntimeStreamEvent as xr, insideCursorNamespace as xt, deriveNodeExecutionIdentity as y, detachedFrozen as yi, probeSandboxCapabilities as yn, sanitizeAgentRuntimeEvent as yr, InMemoryResultBlobStore as yt, scopeRetainedOwnerResult as z, hasCompleteCacheBreakdown as zi, abortError as zn, promptControlProfileMaterialization as zr, readWorkerTraceContext as zt };
24664
25051
 
24665
- //# sourceMappingURL=supervisor-BN3oMv_v.js.map
25052
+ //# sourceMappingURL=supervisor-CFSPj8rx.js.map