@tangle-network/agent-runtime 0.237.0 → 0.239.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-CJqtz9SS.d.ts → activation-CRDZUoUE.d.ts} +2 -2
  2. package/dist/{activation-B1Ioaoxu.js → activation-CUhkPtm0.js} +2 -2
  3. package/dist/{activation-B1Ioaoxu.js.map → activation-CUhkPtm0.js.map} +1 -1
  4. package/dist/agent.d.ts +2 -2
  5. package/dist/agent.js +2 -2
  6. package/dist/{coordination-driver-DD8ffHLE.js → coordination-driver-m-2dzvu6.js} +8 -260
  7. package/dist/coordination-driver-m-2dzvu6.js.map +1 -0
  8. package/dist/{delegate-C0G0SOif.js → delegate-DRQtaWF1.js} +2 -2
  9. package/dist/{delegate-C0G0SOif.js.map → delegate-DRQtaWF1.js.map} +1 -1
  10. package/dist/durable.d.ts +2 -2
  11. package/dist/durable.js +26 -37
  12. package/dist/durable.js.map +1 -1
  13. package/dist/{graph-DBemtsCf.js → graph-B17RjVhE.js} +3 -3
  14. package/dist/{graph-DBemtsCf.js.map → graph-B17RjVhE.js.map} +1 -1
  15. package/dist/{improvement-cycle-Ac5z5H7M.js → improvement-cycle-BP4rDivU.js} +3 -3
  16. package/dist/{improvement-cycle-Ac5z5H7M.js.map → improvement-cycle-BP4rDivU.js.map} +1 -1
  17. package/dist/{index-BfUDevdx.d.ts → index-DTGWDyrF.d.ts} +129 -5
  18. package/dist/index.d.ts +6 -6
  19. package/dist/index.js +8 -16
  20. package/dist/index.js.map +1 -1
  21. package/dist/intelligence.d.ts +3 -3
  22. package/dist/intelligence.js +3 -3
  23. package/dist/kernel.d.ts +3 -3
  24. package/dist/kernel.js +8 -8
  25. package/dist/{loop-runner-bin-DNVhcUz2.d.ts → loop-runner-bin-BGi5UT85.d.ts} +3 -3
  26. package/dist/{loop-runner-bin-B3NW0VPt.js → loop-runner-bin-mrOuv9SU.js} +3 -3
  27. package/dist/{loop-runner-bin-B3NW0VPt.js.map → loop-runner-bin-mrOuv9SU.js.map} +1 -1
  28. package/dist/loop-runner-bin.d.ts +1 -1
  29. package/dist/loop-runner-bin.js +1 -1
  30. package/dist/mcp/bin.js +3 -3
  31. package/dist/mcp/index.d.ts +6 -6
  32. package/dist/mcp/index.js +5 -5
  33. package/dist/{openai-tools-C5SS8ngZ.d.ts → openai-tools-BPPAXxP2.d.ts} +2 -2
  34. package/dist/profiles.d.ts +2 -2
  35. package/dist/{provision-supervisor-Ch-vCAbq.js → provision-supervisor-CNdrsjvc.js} +3 -3
  36. package/dist/{provision-supervisor-Ch-vCAbq.js.map → provision-supervisor-CNdrsjvc.js.map} +1 -1
  37. package/dist/{runtime-BDwTXkDM.js → runtime-BsPY_v8H.js} +11 -20
  38. package/dist/runtime-BsPY_v8H.js.map +1 -0
  39. package/dist/{server-D4Ypvef9.js → server-b8uEBoK0.js} +3 -3
  40. package/dist/{server-D4Ypvef9.js.map → server-b8uEBoK0.js.map} +1 -1
  41. package/dist/{stream-agent-turn-DkiyfYi8.d.ts → stream-agent-turn-xgmm-M55.d.ts} +2 -2
  42. package/dist/{structural-rollout-D-Ougv7r.js → structural-rollout-sy2sH_7-.js} +2 -2
  43. package/dist/{structural-rollout-D-Ougv7r.js.map → structural-rollout-sy2sH_7-.js.map} +1 -1
  44. package/dist/{substrate-CfzWdBcq.d.ts → substrate-B_9stFWH.d.ts} +2 -2
  45. package/dist/{supervise-gSGndJJo.js → supervise-CBd3FyCS.js} +42 -16
  46. package/dist/supervise-CBd3FyCS.js.map +1 -0
  47. package/dist/{supervisor-B5wyKVRd.js → supervisor-De0lytFU.js} +539 -63
  48. package/dist/supervisor-De0lytFU.js.map +1 -0
  49. package/dist/testing.d.ts +2 -2
  50. package/dist/testing.js +12 -12
  51. package/dist/tui/index.d.ts +1 -1
  52. package/dist/tui/index.js +1 -1
  53. package/dist/{types-palY_bT_.d.ts → types-CE7ES_TD.d.ts} +10 -4
  54. package/package.json +1 -1
  55. package/dist/coordination-driver-DD8ffHLE.js.map +0 -1
  56. package/dist/runtime-BDwTXkDM.js.map +0 -1
  57. package/dist/supervise-gSGndJJo.js.map +0 -1
  58. package/dist/supervisor-B5wyKVRd.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { Ur as Driver, Vr as AgentRunSpec, hi as Validator, ui as OutputAdapter } from "./types-palY_bT_.js";
1
+ import { Ur as Driver, Vr as AgentRunSpec, hi as Validator, ui as OutputAdapter } from "./types-CE7ES_TD.js";
2
2
  import { AgentProfile } from "@tangle-network/agent-interface";
3
3
  //#region src/profiles/coder.d.ts
4
4
  /**
@@ -281,4 +281,4 @@ interface UiFinding {
281
281
  }
282
282
  //#endregion
283
283
  export { CoderTask as _, UiFindingSeverity as a, KnowledgeUpdate as c, ResearchSource as d, ResearchTask as f, researcherProfile as g, multiHarnessResearcherFanout as h, UiFindingScreenshot as i, MultiHarnessResearcherFanoutOptions as l, createResearcherValidator as m, UI_LENSES as n, UiLens as o, ResearcherProfileOptions as p, UiFinding as r, KnowledgeItem as s, UI_FINDING_SEVERITIES as t, ResearchOutput as u, coderTaskToPrompt as v };
284
- //# sourceMappingURL=substrate-CfzWdBcq.d.ts.map
284
+ //# sourceMappingURL=substrate-B_9stFWH.d.ts.map
@@ -1,16 +1,16 @@
1
- import { $ as bindReusableExecutorExecutionId, $r as providerAttemptEvidence, An as RunCancellationReason, Ar as profileMaterializationAxes$1, At as spendFromUsageTotals, Bi as withTimeout, Br as worktreeCliProfileMaterialization, Bt as createInbox, C as scopeOwnerExecutorNodeContext, Cn as resolveAgentEnvironmentProvider, Di as addSpend, Dr as controlProfileMaterialization, Dt as meterUsageEvent, Er as assertProfileMaterialization, F as scopeRetainedOwnerPriorSpend, Fi as sleep, Gn as contentAddress, Hi as addResourceSpend, Hr as parseCommittedJsonLines, I as scopeRetainedOwnerResult, Ir as renderUnsupported, J as errMessage, Ji as DEFAULT_SUCCESSFUL_SHUTDOWN_MS, Kr as attestRuntimeOwnedScopeOwner, M as consumeScopeRetainedOwnerResult, Mn as linkAbort, Mr as promptModelProfileMaterialization, N as prepareScopeRetainedOwnerTask, Nn as runAbortable, On as registerRetainedExecutorPreparation, Or as defineProfileMaterializationContract, Ot as newUsageTotals, P as scopeRetainedOwnerContext, Qt as bridgeModelRouteRefusal, Rr as unsupportedProfileDimensions, S as restoreScopeOwnerAcceptedExecution, Tt as assertValidBudget, Ui as resourceTelemetry, Ur as prepareJsonlAppend, Vi as zeroSpend, Vr as isNoEntError, Wi as withBudgetResources, Xi as teardownExecutor, Yr as inheritRuntimeOwnedExecutorAttestation, Zt as bridgeAdmissionRefusal, ai as runtimeOwnedPendingExecutorMaterialization, at as snapshotExecutorConfig, b as meterRuntimeOwnedProviderAttempt, cr as toOtelAttributes, d as runDriverWithRetry, ei as recordRuntimeOwnedDriveHarnessProviderEvidence, et as captureReusableExecutorConfig, f as driverChild, fi as detachedSnapshot, g as beginScopeOwnerAttempt, hn as routerBrain, ii as runtimeOwnedExecutorProviderEvidence, in as bridgeStopSignalKey, ir as generateSpanId, j as bindScopeRetainedOwnerProvider, jr as promptControlProfileMaterialization, jt as WORKER_TRACE_PROPAGATION, kn as retainedExecutorSeamKey, kr as fullProfileMaterialization, m as isDriverSpec, n as createSupervisor, ni as runtimeOwnedExecutorExecutionBinding, o as runFinalizer, oi as runtimeOwnedScopeOwnerRuntime, p as driverExecutorFactory, r as bestDelivered, ri as runtimeOwnedExecutorMaterialization, rn as bridgeRuntimeAttachmentsKey, rt as createExecutor, s as runTree, t as createRootHandle, ti as runtimeOwnedDriveHarnessProviderEvidence, tr as createOtelExporter, u as defaultUnmetContractSteer, v as deriveNodeExecutionIdentity, x as recordScopeOwnerMaterialization, y as meterRuntimeOwnedAccounting, zi as unmeteredSpend } from "./supervisor-B5wyKVRd.js";
1
+ import { $n as contentAddress, Bn as linkAbort, Br as promptModelProfileMaterialization, C as restoreScopeOwnerAcceptedExecution, Cn as routerBrain, F as prepareScopeRetainedOwnerTask, Fi as addSpend, Fr as controlProfileMaterialization, Ft as newUsageTotals, I as scopeRetainedOwnerContext, In as registerRetainedExecutorPreparation, Ir as defineProfileMaterializationContract, Ji as withTimeout, Jr as worktreeCliProfileMaterialization, Kr as unsupportedProfileDimensions, L as scopeRetainedOwnerPriorSpend, Ln as retainedExecutorSeamKey, Lr as fullProfileMaterialization, Lt as spendFromUsageTotals, M as bindScopeRetainedOwnerEnvironmentId, Mt as assertValidBudget, N as bindScopeRetainedOwnerProvider, P as consumeScopeRetainedOwnerResult, Pr as assertProfileMaterialization, Pt as meterUsageEvent, Qi as withBudgetResources, R as scopeRetainedOwnerResourceReader, Rn as RunCancellationReason, Rr as profileMaterializationAxes$1, Rt as WORKER_TRACE_PROPAGATION, S as recordScopeOwnerMaterialization, Ui as sleep, Vn as runAbortable, Wr as renderUnsupported, Xi as addResourceSpend, Xr as prepareJsonlAppend, Yi as zeroSpend, Yr as isNoEntError, Zi as resourceTelemetry, Zr as readCommittedJsonLines, _ as beginScopeOwnerAttempt, an as bridgeAdmissionRefusal, b as meterRuntimeOwnedAccounting, bi as detachedSnapshot, ci as recordRuntimeOwnedDriveHarnessProviderEvidence, d as defaultUnmetContractSteer, di as runtimeOwnedExecutorMaterialization, dn as bridgeRuntimeAttachmentsKey, ei as attestRuntimeOwnedScopeOwner, f as runDriverWithRetry, fi as runtimeOwnedExecutorProviderEvidence, fn as bridgeStopSignalKey, fr as generateSpanId, ft as snapshotExecutorConfig, gr as toOtelAttributes, h as isDriverSpec, ia as teardownExecutor, in as executorFailure, jn as resolveAgentEnvironmentProvider, l as HarnessTurnFailedError, li as runtimeOwnedDriveHarnessProviderEvidence, lr as createOtelExporter, m as driverExecutorFactory, mi as runtimeOwnedScopeOwnerRuntime, n as createSupervisor, na as DEFAULT_SUCCESSFUL_SHUTDOWN_MS, o as runFinalizer, on as bridgeModelRouteRefusal, ot as bindReusableExecutorExecutionId, p as driverChild, pi as runtimeOwnedPendingExecutorMaterialization, qi as unmeteredSpend, qt as createInbox, r as bestDelivered, ri as inheritRuntimeOwnedExecutorAttestation, s as runTree, si as providerAttemptEvidence, st as captureReusableExecutorConfig, t as createRootHandle, tt as errMessage, ui as runtimeOwnedExecutorExecutionBinding, ut as createExecutor, w as scopeOwnerExecutorNodeContext, x as meterRuntimeOwnedProviderAttempt, y as deriveNodeExecutionIdentity, z as scopeRetainedOwnerResult, zr as promptControlProfileMaterialization } from "./supervisor-De0lytFU.js";
2
2
  import { f as RuntimeRunStateError, i as ConfigError, m as ValidationError } from "./errors-DodWX-cb.js";
3
3
  import { a as concreteProfileModel, c as profileModelExecutionSettings, d as agentHarness, f as harnessRunsAgent, n as assertModelAllowed, o as enforceTokenLimits, r as assertProfileModelsAllowed, s as profileBridgeWireModel, t as assertExecutableAgentProfile } from "./model-policy-BbSCSak0.js";
4
4
  import { t as composeRuntimeHooks } from "./runtime-hooks-tXpAarhW.js";
5
5
  import { n as assertNoSymlinkDescendant } from "./durable-file-D24y9zg7.js";
6
6
  import { n as createStdioToolServer, t as PROTOCOL_VERSION } from "./tool-server-x9NEhvHZ.js";
7
- import { D as coordinationVerbNames, O as createCoordinationTools, S as watchRunCancellation, c as createProgressTracker, d as progressStop, r as driverAgent, v as createFileRunContext, w as DEFAULT_AWAIT_EVENT_TIMEOUT_MS, x as applyRunCancellation, y as createInMemoryRunContext } from "./coordination-driver-DD8ffHLE.js";
7
+ import { D as coordinationVerbNames, O as createCoordinationTools, S as watchRunCancellation, c as createProgressTracker, d as progressStop, r as driverAgent, v as createFileRunContext, w as DEFAULT_AWAIT_EVENT_TIMEOUT_MS, x as applyRunCancellation, y as createInMemoryRunContext } from "./coordination-driver-m-2dzvu6.js";
8
8
  import { k as writeRunCancellation, o as readRunCancelRequest, s as readRunCancellation } from "./run-layout-hZREkcfu.js";
9
9
  import { agentProfileSchema, canonicalAgentProfileDigest, canonicalCandidateDigest, canonicalCandidateJson, validateAgentProfileSecurity } from "@tangle-network/agent-interface";
10
10
  import { createHash, createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
11
11
  import { closeSync, constants, fsyncSync, openSync, writeSync } from "node:fs";
12
12
  import { resolve } from "node:path";
13
- import { mkdir, readFile } from "node:fs/promises";
13
+ import { mkdir } from "node:fs/promises";
14
14
  import { isMaterializerHarness } from "@tangle-network/agent-profile-materialize";
15
15
  import { createServer } from "node:http";
16
16
  //#region src/runtime/supervise/completion-gate.ts
@@ -665,6 +665,7 @@ async function serveCoordinationMcp(opts) {
665
665
  };
666
666
  const audiences = /* @__PURE__ */ new Set();
667
667
  const paths = /* @__PURE__ */ new Set(["/mcp"]);
668
+ const ownerReader = opts.spawnResourceReader ?? (opts.spawnResourceRoot === void 0 ? scopeRetainedOwnerResourceReader(opts.scope) : void 0);
668
669
  const coord = createCoordinationTools({
669
670
  scope: opts.scope,
670
671
  blobs: opts.blobs,
@@ -691,6 +692,7 @@ async function serveCoordinationMcp(opts) {
691
692
  ...opts.preflightSpawn ? { preflightSpawn: opts.preflightSpawn } : {},
692
693
  ...opts.resolveSpawnProfile ? { resolveSpawnProfile: opts.resolveSpawnProfile } : {},
693
694
  ...opts.spawnResourceRoot ? { spawnResourceRoot: opts.spawnResourceRoot } : {},
695
+ ...ownerReader ? { spawnResourceReader: ownerReader } : {},
694
696
  ...opts.peerMail ? { peerMail: typeof opts.peerMail === "object" && opts.peerMail.limits ? { limits: opts.peerMail.limits } : {} } : {}
695
697
  });
696
698
  await coord.ready();
@@ -1243,7 +1245,8 @@ function createRootStreamSink(runDir, now) {
1243
1245
  await mkdir(dir, { recursive: true });
1244
1246
  assertNoSymlinkDescendant(dir, path, "root stream");
1245
1247
  const needsSeparator = await prepareJsonlAppend(path);
1246
- seq = (await readRootStream(dir) ?? []).length;
1248
+ seq = 0;
1249
+ for await (const _record of readCommittedJsonLines(path, { allowMissing: true })) seq += 1;
1247
1250
  fd = openSync(path, constants.O_APPEND | constants.O_CREAT | constants.O_WRONLY | (typeof constants.O_NOFOLLOW === "number" ? constants.O_NOFOLLOW : 0), 384);
1248
1251
  if (needsSeparator) writeLine(fd, "");
1249
1252
  };
@@ -1322,30 +1325,33 @@ function writeLine(fd, line) {
1322
1325
  */
1323
1326
  async function readRootStreamReceipt(runDir) {
1324
1327
  const path = resolve(runDir, ROOT_STREAM_FILE);
1325
- let bytes;
1328
+ const hash = createHash("sha256");
1329
+ let events = 0;
1326
1330
  try {
1327
- bytes = await readFile(path);
1331
+ for await (const _record of readCommittedJsonLines(path, { onBytes: (bytes) => {
1332
+ hash.update(bytes);
1333
+ } })) events += 1;
1328
1334
  } catch (error) {
1329
1335
  if (isNoEntError(error)) return void 0;
1330
1336
  throw error;
1331
1337
  }
1332
1338
  return Object.freeze({
1333
- ref: `sha256:${createHash("sha256").update(bytes).digest("hex")}`,
1334
- events: parseCommittedJsonLines(bytes.toString("utf8"), path).length
1339
+ ref: `sha256:${hash.digest("hex")}`,
1340
+ events
1335
1341
  });
1336
1342
  }
1337
1343
  /** Every committed line of the root stream, in order, or `undefined` when there is no file. A
1338
1344
  * torn final line from a process that died mid-write is not a record and is left out. */
1339
1345
  async function readRootStream(runDir) {
1340
1346
  const path = resolve(runDir, ROOT_STREAM_FILE);
1341
- let text;
1347
+ const records = [];
1342
1348
  try {
1343
- text = await readFile(path, "utf8");
1349
+ for await (const record of readCommittedJsonLines(path)) records.push(record);
1344
1350
  } catch (error) {
1345
1351
  if (isNoEntError(error)) return void 0;
1346
1352
  throw error;
1347
1353
  }
1348
- return parseCommittedJsonLines(text, path);
1354
+ return records;
1349
1355
  }
1350
1356
  function errorMessage(error) {
1351
1357
  return error instanceof Error ? error.message : String(error);
@@ -1592,6 +1598,7 @@ function buildSupervisorAgent(profile, deps, testBrain) {
1592
1598
  ...deps.preflightSpawn ? { preflightSpawn: deps.preflightSpawn } : {},
1593
1599
  ...deps.resolveSpawnProfile ? { resolveSpawnProfile: deps.resolveSpawnProfile } : {},
1594
1600
  ...deps.spawnResourceRoot ? { spawnResourceRoot: deps.spawnResourceRoot } : {},
1601
+ ...deps.spawnResourceReader ? { spawnResourceReader: deps.spawnResourceReader } : {},
1595
1602
  ...deps.stopRule ? { stopRule: deps.stopRule } : {},
1596
1603
  ...deps.onProgressStop ? { onProgressStop: deps.onProgressStop } : {},
1597
1604
  ...deps.maxTurns !== void 0 ? { maxTurns: deps.maxTurns } : {},
@@ -1680,6 +1687,7 @@ function buildSupervisorAgent(profile, deps, testBrain) {
1680
1687
  ...deps.preflightSpawn ? { preflightSpawn: deps.preflightSpawn } : {},
1681
1688
  ...deps.resolveSpawnProfile ? { resolveSpawnProfile: deps.resolveSpawnProfile } : {},
1682
1689
  ...deps.spawnResourceRoot ? { spawnResourceRoot: deps.spawnResourceRoot } : {},
1690
+ ...deps.spawnResourceReader ? { spawnResourceReader: deps.spawnResourceReader } : {},
1683
1691
  ...deps.peerMail ? { peerMail: deps.peerMail } : {},
1684
1692
  ...priorCoordination?.questions.length ? { priorQuestions: priorCoordination.questions } : {},
1685
1693
  ...priorCoordination?.escalations?.length ? { priorEscalations: priorCoordination.escalations } : {},
@@ -2477,14 +2485,25 @@ function driveHarnessFromBackend(backend, executionId, now = Date.now, maxTurns,
2477
2485
  const turnCap = maxTurns ?? 0;
2478
2486
  const boundBackend = bindReusableExecutorExecutionId(captureReusableExecutorConfig(backend, "driveHarnessFromBackend"), executionId);
2479
2487
  const baseFactory = createExecutor(boundBackend);
2488
+ const ownerRuntime = boundBackend.backend === "provider" ? boundBackend.runtime ?? resolveAgentEnvironmentProvider(boundBackend.provider, boundBackend.registry).name : "cli";
2480
2489
  let activeExecutor;
2481
2490
  const drive = async ({ profile, authoredProfile, task, scope, coordinationMcpUrl, coordinationMcpHeaders, stopSignal, coordinationTools }) => {
2482
2491
  const retainedOwner = boundBackend.backend === "provider" ? scopeRetainedOwnerContext(scope) : void 0;
2483
- if (retainedOwner && boundBackend.backend === "provider") bindScopeRetainedOwnerProvider(scope, resolveAgentEnvironmentProvider(boundBackend.provider, boundBackend.registry));
2492
+ if (retainedOwner && boundBackend.backend === "provider") {
2493
+ bindScopeRetainedOwnerProvider(scope, resolveAgentEnvironmentProvider(boundBackend.provider, boundBackend.registry));
2494
+ bindScopeRetainedOwnerEnvironmentId(scope, () => {
2495
+ if (activeExecutor === void 0) return void 0;
2496
+ const execution = runtimeOwnedExecutorMaterialization(activeExecutor)?.execution;
2497
+ return execution?.kind === "environment" ? execution.id : void 0;
2498
+ });
2499
+ }
2484
2500
  const originalTask = retainedOwner ? await prepareScopeRetainedOwnerTask(scope, task) : task;
2485
- if (retainedOwner ? await scopeRetainedOwnerResult(scope) : void 0) {
2501
+ const acceptedOwner = retainedOwner ? await scopeRetainedOwnerResult(scope) : void 0;
2502
+ if (acceptedOwner) {
2486
2503
  await restoreScopeOwnerAcceptedExecution(scope);
2487
2504
  consumeScopeRetainedOwnerResult(scope);
2505
+ const replayedFailure = executorFailure(acceptedOwner);
2506
+ if (replayedFailure !== void 0) throw new HarnessTurnFailedError(ownerRuntime, replayedFailure);
2488
2507
  return;
2489
2508
  }
2490
2509
  const initialBudget = scope.budget;
@@ -2640,6 +2659,7 @@ function driveHarnessFromBackend(backend, executionId, now = Date.now, maxTurns,
2640
2659
  const pending = runtimeOwnedPendingExecutorMaterialization(executor);
2641
2660
  let failed = false;
2642
2661
  let failure;
2662
+ let turnFailure;
2643
2663
  let ownerMaterializationPublished = false;
2644
2664
  const ownerDeclaration = (exactDeclaration) => ({
2645
2665
  ...exactDeclaration,
@@ -2741,15 +2761,20 @@ function driveHarnessFromBackend(backend, executionId, now = Date.now, maxTurns,
2741
2761
  telemetry: "unknown"
2742
2762
  });
2743
2763
  terminalAccountingCaptured = true;
2764
+ const reported = executorFailure(artifact);
2765
+ if (reported !== void 0) turnFailure = new HarnessTurnFailedError(executor.runtime, reported);
2744
2766
  } else {
2767
+ const artifact = await run;
2745
2768
  await meterRuntimeOwnedProviderAttempt(scope, withBudgetResources({
2746
- ...(await run).spent,
2769
+ ...artifact.spent,
2747
2770
  iterations: 0
2748
2771
  }, scope.budget), providerEvidenceForNextMeter(), {
2749
2772
  role: "driver",
2750
2773
  runtime: executor.runtime
2751
2774
  });
2752
2775
  terminalAccountingCaptured = true;
2776
+ const reported = executorFailure(artifact);
2777
+ if (reported !== void 0) turnFailure = new HarnessTurnFailedError(executor.runtime, reported);
2753
2778
  }
2754
2779
  if (pending !== void 0 && !ownerMaterializationPublished) {
2755
2780
  const acknowledged = runtimeOwnedExecutorMaterialization(executor);
@@ -2822,6 +2847,7 @@ function driveHarnessFromBackend(backend, executionId, now = Date.now, maxTurns,
2822
2847
  if (activeExecutor === executor) activeExecutor = void 0;
2823
2848
  }
2824
2849
  if (failed) throw failure;
2850
+ if (turnFailure !== void 0) throw turnFailure;
2825
2851
  };
2826
2852
  drive.deliver = (message) => {
2827
2853
  const deliver = activeExecutor?.deliver;
@@ -2830,7 +2856,7 @@ function driveHarnessFromBackend(backend, executionId, now = Date.now, maxTurns,
2830
2856
  };
2831
2857
  drive.traceSource = () => activeExecutor?.traceSource?.();
2832
2858
  drive.progress = () => activeExecutor?.progress?.();
2833
- return attestRuntimeOwnedScopeOwner(drive, boundBackend.backend === "provider" ? boundBackend.runtime ?? resolveAgentEnvironmentProvider(boundBackend.provider, boundBackend.registry).name : "cli");
2859
+ return attestRuntimeOwnedScopeOwner(drive, ownerRuntime);
2834
2860
  }
2835
2861
  function isAsyncIterable(value) {
2836
2862
  return value !== null && typeof value === "object" && Symbol.asyncIterator in value && typeof value[Symbol.asyncIterator] === "function";
@@ -3674,4 +3700,4 @@ function rootProviderModelEvidenceFromExecution(evidence) {
3674
3700
  //#endregion
3675
3701
  export { createSupervisorSpanRecorder as _, isPreSpawnExecutorFailure as a, mapExecutorResult as b, withWorkerSpawnRetry as c, resolveSupervisorProfile as d, supervisorAgent as f, readRootStreamReceipt as g, readRootStream as h, workerFromBackend as i, assertCoordinationBinding as l, ROOT_STREAM_FILE as m, supervise as n, resolveWorkerSpawnRetry as o, supervisorAgentWithTestBrain as p, superviseWithTestBrain as r, retryPreSpawnRefusals as s, DEFAULT_AUTHORED_PROFILE_SECURITY_POLICY as t, coordinationProfileToolPrefix as u, serveCoordinationMcp as v, gateOnDeliverable as y };
3676
3702
 
3677
- //# sourceMappingURL=supervise-gSGndJJo.js.map
3703
+ //# sourceMappingURL=supervise-CBd3FyCS.js.map