@tangle-network/agent-runtime 0.177.1 → 0.179.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 (69) hide show
  1. package/README.md +1 -1
  2. package/dist/{activation-XVI_z1g3.js → activation-C-FAeybF.js} +2 -2
  3. package/dist/{activation-XVI_z1g3.js.map → activation-C-FAeybF.js.map} +1 -1
  4. package/dist/agent.d.ts +1 -1
  5. package/dist/agent.js +2 -2
  6. package/dist/{authoring-bXmPNfCI.js → authoring-kLYzRjsB.js} +2 -2
  7. package/dist/{authoring-bXmPNfCI.js.map → authoring-kLYzRjsB.js.map} +1 -1
  8. package/dist/candidate-execution/index.js +2 -2
  9. package/dist/{candidate-execution-fBNUyWyE.js → candidate-execution-7lVEly33.js} +2 -2
  10. package/dist/{candidate-execution-fBNUyWyE.js.map → candidate-execution-7lVEly33.js.map} +1 -1
  11. package/dist/conversation.d.ts +1 -1
  12. package/dist/{coordination-driver-xO1tkxy-.js → coordination-driver-BeLF1j7n.js} +2 -2
  13. package/dist/{coordination-driver-xO1tkxy-.js.map → coordination-driver-BeLF1j7n.js.map} +1 -1
  14. package/dist/durable.d.ts +2 -2
  15. package/dist/durable.js +1 -1
  16. package/dist/{environment-provider-5E82esWE.d.ts → environment-provider-BGCU0IRa.d.ts} +2 -2
  17. package/dist/environment-provider.d.ts +1 -1
  18. package/dist/{graph-DwJXa1Ph.js → graph-CZFWujWS.js} +2 -2
  19. package/dist/{graph-DwJXa1Ph.js.map → graph-CZFWujWS.js.map} +1 -1
  20. package/dist/graph.d.ts +3 -3
  21. package/dist/graph.js +3 -3
  22. package/dist/{improvement-cycle-eiSv6aH4.js → improvement-cycle-CADEjVOB.js} +3 -3
  23. package/dist/{improvement-cycle-eiSv6aH4.js.map → improvement-cycle-CADEjVOB.js.map} +1 -1
  24. package/dist/{index-Bs0uhf-y.d.ts → index-DNXW665W.d.ts} +2 -2
  25. package/dist/{index-BnAiQVLD.d.ts → index-DhnWuHkN.d.ts} +5 -5
  26. package/dist/{index-C9XTLVP1.d.ts → index-lu9HFbv5.d.ts} +4 -4
  27. package/dist/index.d.ts +7 -7
  28. package/dist/index.js +9 -9
  29. package/dist/intelligence.d.ts +4 -4
  30. package/dist/intelligence.js +3 -3
  31. package/dist/kernel.d.ts +6 -6
  32. package/dist/kernel.js +8 -8
  33. package/dist/{knowledge-Bmtj_7u7.js → knowledge-BZvQ7Pca.js} +4 -4
  34. package/dist/{knowledge-Bmtj_7u7.js.map → knowledge-BZvQ7Pca.js.map} +1 -1
  35. package/dist/knowledge.d.ts +1 -1
  36. package/dist/knowledge.js +1 -1
  37. package/dist/{loop-runner-bin-ChS5deJ0.d.ts → loop-runner-bin-BnSUNv5h.d.ts} +3 -3
  38. package/dist/{loop-runner-bin-GTN5wqCt.js → loop-runner-bin-CeMD66qH.js} +3 -3
  39. package/dist/{loop-runner-bin-GTN5wqCt.js.map → loop-runner-bin-CeMD66qH.js.map} +1 -1
  40. package/dist/loop-runner-bin.d.ts +1 -1
  41. package/dist/loop-runner-bin.js +1 -1
  42. package/dist/mcp/bin.js +3 -3
  43. package/dist/mcp/index.d.ts +3 -3
  44. package/dist/mcp/index.js +5 -5
  45. package/dist/{openai-tools-BBj1QGJp.js → openai-tools-CQq1fhJ0.js} +2 -2
  46. package/dist/{openai-tools-BBj1QGJp.js.map → openai-tools-CQq1fhJ0.js.map} +1 -1
  47. package/dist/primeintellect/index.d.ts +1 -1
  48. package/dist/{provision-supervisor-zA__ayUX.js → provision-supervisor-C_o4UH8c.js} +3 -3
  49. package/dist/{provision-supervisor-zA__ayUX.js.map → provision-supervisor-C_o4UH8c.js.map} +1 -1
  50. package/dist/{redact-DkRLcSiE.d.ts → redact-GpYsFenv.d.ts} +3 -3
  51. package/dist/{runtime-CJNlF5wM.js → runtime-BblXWn4d.js} +8 -8
  52. package/dist/{runtime-CJNlF5wM.js.map → runtime-BblXWn4d.js.map} +1 -1
  53. package/dist/{runtime-B2eZ76kG.d.ts → runtime-oGfkncdd.d.ts} +3 -3
  54. package/dist/{stream-agent-turn-ByY8po9W.d.ts → stream-agent-turn-esfjghd9.d.ts} +2 -2
  55. package/dist/{structural-rollout-BeAUK7Ta.js → structural-rollout-D4uIcI7I.js} +2 -2
  56. package/dist/{structural-rollout-BeAUK7Ta.js.map → structural-rollout-D4uIcI7I.js.map} +1 -1
  57. package/dist/{supervise-HsRKOlKY.js → supervise-Ckj6Ewdi.js} +3 -3
  58. package/dist/{supervise-HsRKOlKY.js.map → supervise-Ckj6Ewdi.js.map} +1 -1
  59. package/dist/{supervisor-ChLgoYhG.js → supervisor--tj9JsFo.js} +192 -35
  60. package/dist/{supervisor-ChLgoYhG.js.map → supervisor--tj9JsFo.js.map} +1 -1
  61. package/dist/testing.d.ts +2 -2
  62. package/dist/testing.js +12 -12
  63. package/dist/tui/index.d.ts +1 -1
  64. package/dist/tui/index.js +1 -1
  65. package/dist/{types-a2ZZUl80.d.ts → types-CPpvwwTx.d.ts} +23 -10
  66. package/dist/{workspace-archive-DOZAeeKU.js → workspace-archive-ByonPBl-.js} +3 -1
  67. package/dist/workspace-archive-ByonPBl-.js.map +1 -0
  68. package/package.json +17 -17
  69. package/dist/workspace-archive-DOZAeeKU.js.map +0 -1
@@ -9,7 +9,7 @@ import { a as concreteProfileModel, c as profileModelExecutionSettings, d as age
9
9
  import { c as linkAbort, i as resolveAgentEnvironmentProvider, l as runAbortable, n as providerAsExecutor, r as providerAsSandboxClient, s as abortError$1 } from "./environment-provider-DKyMWQJd.js";
10
10
  import { i as notifyRuntimeHookEvent } from "./runtime-hooks-tXpAarhW.js";
11
11
  import { n as assertNoSymlinkDescendant, r as publishExclusiveDurableFile } from "./durable-file-g3YdfEh4.js";
12
- import { AGENT_PROFILE_MATERIALIZATION_AXES, AgentEnvironmentCapabilitiesSchema, AgentExactRunControlRefSchema, AgentInteractiveSessionControlClaimAcknowledgementSchema, AgentInteractiveSessionControlClaimSchema, AgentInteractiveSessionPromptAcknowledgementSchema, AgentInteractiveSessionRefSchema, AgentInteractiveSessionStatusSchema, AgentInteractiveSessionStopAcknowledgementSchema, AgentNativeContextContinuationResultSchema, AgentTurnInputSchema, AgentTurnResultSchema, InteractionAcknowledgementSchema, InteractionResponseCommandSchema, NativeContextBoundaryProofSchema, NativeContextContinuationRequestSchema, REASONING_EFFORTS, RuntimeEventEnvelopeSchema, TerminalReplayWindowSchema, TerminalSessionRefSchema, agentInteractiveSessionControlClaimAcknowledgementMatchesRequest, agentInteractiveSessionControlClaimMatchesRef, agentInteractiveSessionPromptAcknowledgementMatchesCommand, agentInteractiveSessionRefMatchesStart, agentInteractiveSessionRunRef, agentInteractiveSessionStatusMatchesRef, agentInteractiveSessionStopAcknowledgementMatchesCommand, agentNativeContextContinuationResultMatchesRequest, agentProfileSchema, canonicalAgentProfileDigest, canonicalCandidateDigest, exactAgentInteractiveSessionStart, harnessTypeSchema, nativeContextContinuationTurnDigest, nativeReasoningControl, profileMaterializationAxes, profileMaterializationAxes as profileMaterializationAxes$1, renderInputPartsAsText, sha256DigestSchema } from "@tangle-network/agent-interface";
12
+ import { AGENT_PROFILE_MATERIALIZATION_AXES, AgentEnvironmentCapabilitiesSchema, AgentExactRunControlRefSchema, AgentInteractiveSessionControlClaimAcknowledgementSchema, AgentInteractiveSessionControlClaimSchema, AgentInteractiveSessionPromptAcknowledgementSchema, AgentInteractiveSessionRefSchema, AgentInteractiveSessionStatusSchema, AgentInteractiveSessionStopAcknowledgementSchema, AgentNativeContextContinuationResultSchema, AgentTurnInputSchema, AgentTurnResultSchema, ContextTransferRequestSchema, InteractionAcknowledgementSchema, InteractionResponseCommandSchema, NativeContextBoundaryProofSchema, NativeContextContinuationRequestSchema, REASONING_EFFORTS, RuntimeEventEnvelopeSchema, TerminalReplayWindowSchema, TerminalSessionRefSchema, agentInteractiveSessionControlClaimAcknowledgementMatchesRequest, agentInteractiveSessionControlClaimMatchesRef, agentInteractiveSessionPromptAcknowledgementMatchesCommand, agentInteractiveSessionRefMatchesStart, agentInteractiveSessionRunRef, agentInteractiveSessionStatusMatchesRef, agentInteractiveSessionStopAcknowledgementMatchesCommand, agentNativeContextContinuationResultMatchesRequest, agentProfileSchema, canonicalAgentProfileDigest, canonicalCandidateDigest, exactAgentInteractiveSessionStart, harnessTypeSchema, nativeContextContinuationTurnDigest, nativeReasoningControl, profileMaterializationAxes, profileMaterializationAxes as profileMaterializationAxes$1, renderInputPartsAsText, sha256DigestSchema } from "@tangle-network/agent-interface";
13
13
  import { estimateCost, isModelPriced } from "@tangle-network/agent-eval";
14
14
  import { createHash, randomBytes, randomUUID } from "node:crypto";
15
15
  import { basename, delimiter, dirname, isAbsolute, join, resolve, sep, win32 } from "node:path";
@@ -11037,7 +11037,7 @@ function retainedSecretNames(secrets) {
11037
11037
  return Array.isArray(secrets) ? [...secrets].sort() : Object.keys(secrets).sort();
11038
11038
  }
11039
11039
  /** Project one headless turn into the material that `freshTurnInput` forwards. */
11040
- function retainedTurnMaterial(input) {
11040
+ function retainedTurnMaterial(input, contextTransfer) {
11041
11041
  return {
11042
11042
  ...input.prompt === void 0 ? {} : { prompt: input.prompt },
11043
11043
  ...input.parts === void 0 ? {} : { parts: input.parts },
@@ -11045,7 +11045,8 @@ function retainedTurnMaterial(input) {
11045
11045
  ...input.timeoutMs === void 0 ? {} : { timeoutMs: input.timeoutMs },
11046
11046
  ...input.context === void 0 ? {} : { context: input.context },
11047
11047
  ...input.interactions === void 0 ? {} : { interactions: input.interactions },
11048
- ...input.providerOptions === void 0 ? {} : { providerOptions: input.providerOptions }
11048
+ ...input.providerOptions === void 0 ? {} : { providerOptions: input.providerOptions },
11049
+ ...contextTransfer === void 0 ? {} : { contextTransferRequestDigest: contextTransfer.requestDigest }
11049
11050
  };
11050
11051
  }
11051
11052
  //#endregion
@@ -11144,8 +11145,38 @@ function createRetainedRunHandle(environment, session, initialControlRef, capabi
11144
11145
  const clock = now ?? Date.now;
11145
11146
  const measuredCapabilities = structuredClone(capabilities);
11146
11147
  let activeControlRef = freezeControlRef(initialControlRef);
11148
+ const knownControlRefDigests = /* @__PURE__ */ new Set([canonicalCandidateDigest(activeControlRef)]);
11149
+ const synchronizeActiveControlRef = () => {
11150
+ let candidate;
11151
+ try {
11152
+ candidate = session.controlRef;
11153
+ } catch (error) {
11154
+ throw new RetainedRunProviderContractError("provider retained session control reference read failed", {
11155
+ code: "RETAINED_CONTROL_REF_READ_FAILED",
11156
+ cause: error
11157
+ });
11158
+ }
11159
+ if (candidate === void 0) return;
11160
+ const parsed = AgentExactRunControlRefSchema.safeParse(candidate);
11161
+ if (!parsed.success) throw new RetainedRunProviderContractError("provider retained session returned an invalid current control reference", {
11162
+ code: "RETAINED_CONTROL_REF_INVALID",
11163
+ cause: parsed.error
11164
+ });
11165
+ const candidateDigest = canonicalCandidateDigest(parsed.data);
11166
+ if (sameControlCoordinates(parsed.data, activeControlRef) || knownControlRefDigests.has(candidateDigest)) return;
11167
+ try {
11168
+ activeControlRef = freezeControlRef(exactContinuedControlRef(parsed.data, activeControlRef));
11169
+ knownControlRefDigests.add(candidateDigest);
11170
+ } catch (error) {
11171
+ throw new RetainedRunProviderContractError("provider retained session advanced to an invalid control reference", {
11172
+ code: "RETAINED_CONTROL_REF_ADVANCE_INVALID",
11173
+ cause: error
11174
+ });
11175
+ }
11176
+ };
11147
11177
  const snapshot = async (reason, signal) => {
11148
11178
  if (signal?.aborted) throw abortError(signal.reason);
11179
+ synchronizeActiveControlRef();
11149
11180
  let status;
11150
11181
  try {
11151
11182
  status = await awaitAbortable$1(Promise.resolve().then(() => session.status({ signal })), signal);
@@ -11153,6 +11184,7 @@ function createRetainedRunHandle(environment, session, initialControlRef, capabi
11153
11184
  if (signal?.aborted) throw abortError(signal.reason);
11154
11185
  status = "unknown";
11155
11186
  }
11187
+ synchronizeActiveControlRef();
11156
11188
  const effect = status === "cancelled" ? "cancelled" : status === "completed" || status === "failed" || status === "expired" ? "not_live" : "unknown";
11157
11189
  return {
11158
11190
  runId: activeControlRef.runId,
@@ -11164,8 +11196,137 @@ function createRetainedRunHandle(environment, session, initialControlRef, capabi
11164
11196
  ...signal?.aborted ? { signal: String(signal.reason ?? "aborted") } : {}
11165
11197
  };
11166
11198
  };
11199
+ const assertContinuationIsCurrent = (continuationSource, nextControlRef) => {
11200
+ if (!sameControlCoordinates(activeControlRef, continuationSource) && !sameControlCoordinates(activeControlRef, nextControlRef)) throw new Error("provider advanced the retained session while another native continuation was pending");
11201
+ };
11202
+ const missingContinuationAdmission = () => new RetainedRunProviderContractError("provider accepted a native continuation without an admission reference", { code: "RETAINED_NATIVE_CONTINUATION_ADMISSION_MISSING" });
11203
+ const executeNativeContinuation = async (request, turn, admission, expectedSource) => {
11204
+ synchronizeActiveControlRef();
11205
+ const exactRequest = NativeContextContinuationRequestSchema.parse(request);
11206
+ const continuationSource = expectedSource ?? activeControlRef;
11207
+ if (!sameControlCoordinates(activeControlRef, continuationSource)) throw new Error("native continuation retained-run control changed before admission");
11208
+ if (!sameControlCoordinates(exactRequest.run, continuationSource)) throw new Error("native continuation request targets another retained run");
11209
+ const { timeoutMs, signal, ...semanticTurn } = turn;
11210
+ if (nativeContextContinuationTurnDigest(semanticTurn) !== exactRequest.turnDigest) throw new Error("native continuation request targets another user turn");
11211
+ const nativeCapabilities = measuredCapabilities.nativeContinuation;
11212
+ if (nativeCapabilities?.atomicBoundary !== true || nativeCapabilities.requestIdempotency !== true || !session.continueNative) throw new Error(`provider "${activeControlRef.provider}" does not support retry-safe native continuation`);
11213
+ if (admission !== void 0 && nativeCapabilities.admissionControl !== true) throw new Error(`provider "${activeControlRef.provider}" does not advertise early native continuation admission control`);
11214
+ let outcome;
11215
+ try {
11216
+ outcome = AgentNativeContextContinuationResultSchema.parse(await awaitAbortable$1(Promise.resolve().then(() => {
11217
+ const providerOptions = {
11218
+ turn: semanticTurn,
11219
+ ...timeoutMs === void 0 ? {} : { timeoutMs },
11220
+ ...signal === void 0 ? {} : { signal },
11221
+ ...admission === void 0 ? {} : { onAdmission: admission.onAdmission }
11222
+ };
11223
+ return session.continueNative(exactRequest, providerOptions);
11224
+ }), signal));
11225
+ } catch (error) {
11226
+ try {
11227
+ synchronizeActiveControlRef();
11228
+ } catch (syncError) {
11229
+ throw new AggregateError([error, syncError], "native continuation failed and its current control reference could not be read");
11230
+ }
11231
+ throw error;
11232
+ }
11233
+ const admissionFailure = admission?.failure();
11234
+ if (admissionFailure !== void 0) throw admissionFailure;
11235
+ synchronizeActiveControlRef();
11236
+ if (outcome.acknowledgement.operationId !== exactRequest.operationId || outcome.acknowledgement.requestDigest !== exactRequest.requestDigest) throw new Error("provider returned a native continuation result for another request");
11237
+ if (outcome.acknowledgement.actualBoundary !== void 0) {
11238
+ const actualBoundary = NativeContextBoundaryProofSchema.parse(outcome.acknowledgement.actualBoundary);
11239
+ assertBoundaryBinding(exactRequest.run, actualBoundary);
11240
+ }
11241
+ if (outcome.acknowledgement.status !== "accepted" && outcome.acknowledgement.status !== "replayed") return structuredClone(outcome);
11242
+ if (admission !== void 0 && !admission.isSettled() && outcome.acknowledgement.status === "accepted") throw missingContinuationAdmission();
11243
+ if (!("result" in outcome) || !("controlRef" in outcome)) throw new Error("provider omitted the successful native continuation result");
11244
+ if (!agentNativeContextContinuationResultMatchesRequest(exactRequest, outcome)) throw new Error("provider returned a native continuation result for another request");
11245
+ const nextControlRef = exactContinuedControlRef(outcome.controlRef, continuationSource);
11246
+ assertResultBinding(nextControlRef, outcome.result);
11247
+ assertContinuationIsCurrent(continuationSource, nextControlRef);
11248
+ if (admission !== void 0 && !admission.isSettled()) {
11249
+ if (outcome.acknowledgement.status !== "replayed") throw missingContinuationAdmission();
11250
+ admission.onAdmission(nextControlRef);
11251
+ }
11252
+ const admittedControlRef = admission?.controlRef();
11253
+ if (admission !== void 0 && admittedControlRef === void 0) throw missingContinuationAdmission();
11254
+ if (admittedControlRef !== void 0 && !sameControlCoordinates(nextControlRef, admittedControlRef)) throw new RetainedRunProviderContractError("provider changed the native continuation run after admission", { code: "RETAINED_NATIVE_CONTINUATION_RESULT_CHANGED" });
11255
+ activeControlRef = freezeControlRef(nextControlRef);
11256
+ knownControlRefDigests.add(canonicalCandidateDigest(activeControlRef));
11257
+ return structuredClone({
11258
+ ...outcome,
11259
+ controlRef: copyControlRef(activeControlRef)
11260
+ });
11261
+ };
11262
+ const beginNativeContinuation = (request, turn) => {
11263
+ synchronizeActiveControlRef();
11264
+ if (measuredCapabilities.nativeContinuation?.admissionControl !== true) throw new Error(`provider "${activeControlRef.provider}" does not advertise early native continuation admission control`);
11265
+ const continuationSource = activeControlRef;
11266
+ let admissionSettled = false;
11267
+ let admissionCalled = false;
11268
+ let admittedControlRef;
11269
+ let admissionFailure;
11270
+ let resolveAdmission;
11271
+ let rejectAdmission;
11272
+ const admissionPromise = new Promise((resolve, reject) => {
11273
+ resolveAdmission = resolve;
11274
+ rejectAdmission = reject;
11275
+ });
11276
+ admissionPromise.catch(() => void 0);
11277
+ const failAdmission = (error) => {
11278
+ admissionFailure ??= error;
11279
+ if (admissionSettled) return;
11280
+ admissionSettled = true;
11281
+ rejectAdmission(error);
11282
+ };
11283
+ const onAdmission = (candidate) => {
11284
+ if (admissionCalled) {
11285
+ const error = new RetainedRunProviderContractError("provider called native continuation admission more than once", { code: "RETAINED_NATIVE_CONTINUATION_ADMISSION_DUPLICATE" });
11286
+ failAdmission(error);
11287
+ throw error;
11288
+ }
11289
+ admissionCalled = true;
11290
+ try {
11291
+ const nextControlRef = exactContinuedControlRef(AgentExactRunControlRefSchema.parse(candidate), continuationSource);
11292
+ assertContinuationIsCurrent(continuationSource, nextControlRef);
11293
+ activeControlRef = freezeControlRef(nextControlRef);
11294
+ knownControlRefDigests.add(canonicalCandidateDigest(activeControlRef));
11295
+ admittedControlRef = activeControlRef;
11296
+ if (!admissionSettled) {
11297
+ admissionSettled = true;
11298
+ resolveAdmission(copyControlRef(activeControlRef));
11299
+ }
11300
+ } catch (error) {
11301
+ const contractError = error instanceof RetainedRunProviderContractError ? error : new RetainedRunProviderContractError(error instanceof Error ? error.message : "provider returned an invalid native continuation admission reference", {
11302
+ code: "RETAINED_NATIVE_CONTINUATION_ADMISSION_INVALID",
11303
+ cause: error
11304
+ });
11305
+ failAdmission(contractError);
11306
+ throw contractError;
11307
+ }
11308
+ };
11309
+ const result = executeNativeContinuation(request, turn, {
11310
+ isSettled: () => admissionSettled,
11311
+ failure: () => admissionFailure,
11312
+ controlRef: () => admittedControlRef === void 0 ? void 0 : copyControlRef(admittedControlRef),
11313
+ onAdmission
11314
+ }, continuationSource);
11315
+ result.then((outcome) => {
11316
+ if (admissionSettled) return;
11317
+ const error = new RetainedRunProviderContractError(outcome.acknowledgement.status === "accepted" || outcome.acknowledgement.status === "replayed" ? "provider accepted a native continuation without an admission reference" : "native continuation ended without durable admission", { code: outcome.acknowledgement.status === "accepted" || outcome.acknowledgement.status === "replayed" ? "RETAINED_NATIVE_CONTINUATION_ADMISSION_MISSING" : "RETAINED_NATIVE_CONTINUATION_NOT_ADMITTED" });
11318
+ failAdmission(error);
11319
+ }, (error) => {
11320
+ failAdmission(error);
11321
+ });
11322
+ return {
11323
+ admission: admissionPromise,
11324
+ result
11325
+ };
11326
+ };
11167
11327
  return {
11168
11328
  get controlRef() {
11329
+ synchronizeActiveControlRef();
11169
11330
  return copyControlRef(activeControlRef);
11170
11331
  },
11171
11332
  get capabilities() {
@@ -11185,8 +11346,12 @@ function createRetainedRunHandle(environment, session, initialControlRef, capabi
11185
11346
  }
11186
11347
  return current;
11187
11348
  },
11188
- events: (options) => retainedRunEvents(session, copyControlRef(activeControlRef), options, clock),
11349
+ events: (options) => {
11350
+ synchronizeActiveControlRef();
11351
+ return retainedRunEvents(session, copyControlRef(activeControlRef), options, clock);
11352
+ },
11189
11353
  result: async () => {
11354
+ synchronizeActiveControlRef();
11190
11355
  let candidate;
11191
11356
  try {
11192
11357
  candidate = await exactSessionResult(session);
@@ -11202,6 +11367,7 @@ function createRetainedRunHandle(environment, session, initialControlRef, capabi
11202
11367
  code: "RETAINED_RESULT_SCHEMA_INVALID",
11203
11368
  cause: parsed.error
11204
11369
  });
11370
+ synchronizeActiveControlRef();
11205
11371
  try {
11206
11372
  assertResultBinding(activeControlRef, parsed.data);
11207
11373
  } catch (error) {
@@ -11213,51 +11379,33 @@ function createRetainedRunHandle(environment, session, initialControlRef, capabi
11213
11379
  return structuredClone(parsed.data);
11214
11380
  },
11215
11381
  async respondToInteraction(command, options) {
11382
+ synchronizeActiveControlRef();
11216
11383
  const exactCommand = InteractionResponseCommandSchema.parse(command);
11217
11384
  assertInteractionBinding(activeControlRef, exactCommand);
11218
11385
  if (measuredCapabilities.interactions?.replay !== true || measuredCapabilities.interactions.responseIdempotency !== true) throw new Error(`provider "${activeControlRef.provider}" does not promise retry-safe interaction responses`);
11219
11386
  const respond = session.respondToInteraction ?? environment.respondToInteraction;
11220
11387
  if (!respond) throw new Error(`provider "${activeControlRef.provider}" does not support interaction responses`);
11221
11388
  const acknowledgement = InteractionAcknowledgementSchema.parse(await awaitAbortable$1(Promise.resolve().then(() => respond.call(session.respondToInteraction ? session : environment, exactCommand, options)), options?.signal));
11389
+ synchronizeActiveControlRef();
11222
11390
  if (acknowledgement.operationId !== exactCommand.operationId || acknowledgement.commandDigest !== exactCommand.commandDigest || canonicalCandidateDigest(acknowledgement.binding) !== canonicalCandidateDigest(exactCommand.binding)) throw new Error("provider returned an interaction acknowledgement for another command");
11223
11391
  return structuredClone(acknowledgement);
11224
11392
  },
11225
11393
  async contextBoundary(options) {
11394
+ synchronizeActiveControlRef();
11226
11395
  if (!session.contextBoundary) return null;
11227
11396
  const proof = await awaitAbortable$1(Promise.resolve().then(() => session.contextBoundary(options)), options?.signal);
11397
+ synchronizeActiveControlRef();
11228
11398
  if (proof === null) return null;
11229
11399
  const exactProof = NativeContextBoundaryProofSchema.parse(proof);
11230
11400
  assertBoundaryBinding(activeControlRef, exactProof);
11231
11401
  return structuredClone(exactProof);
11232
11402
  },
11233
- async continueNative(request, turn) {
11234
- const exactRequest = NativeContextContinuationRequestSchema.parse(request);
11235
- if (!sameControlCoordinates(exactRequest.run, activeControlRef)) throw new Error("native continuation request targets another retained run");
11236
- const { timeoutMs, signal, ...semanticTurn } = turn;
11237
- if (nativeContextContinuationTurnDigest(semanticTurn) !== exactRequest.turnDigest) throw new Error("native continuation request targets another user turn");
11238
- if (measuredCapabilities.nativeContinuation?.atomicBoundary !== true || measuredCapabilities.nativeContinuation.requestIdempotency !== true || !session.continueNative) throw new Error(`provider "${activeControlRef.provider}" does not support retry-safe native continuation`);
11239
- const outcome = AgentNativeContextContinuationResultSchema.parse(await awaitAbortable$1(Promise.resolve().then(() => session.continueNative(exactRequest, {
11240
- turn: semanticTurn,
11241
- ...timeoutMs === void 0 ? {} : { timeoutMs },
11242
- ...signal === void 0 ? {} : { signal }
11243
- })), signal));
11244
- if (outcome.acknowledgement.operationId !== exactRequest.operationId || outcome.acknowledgement.requestDigest !== exactRequest.requestDigest) throw new Error("provider returned a native continuation result for another request");
11245
- if (outcome.acknowledgement.actualBoundary !== void 0) {
11246
- const actualBoundary = NativeContextBoundaryProofSchema.parse(outcome.acknowledgement.actualBoundary);
11247
- assertBoundaryBinding(exactRequest.run, actualBoundary);
11248
- }
11249
- if (outcome.acknowledgement.status !== "accepted" && outcome.acknowledgement.status !== "replayed") return structuredClone(outcome);
11250
- if (!("result" in outcome) || !("controlRef" in outcome)) throw new Error("provider omitted the successful native continuation result");
11251
- if (!agentNativeContextContinuationResultMatchesRequest(exactRequest, outcome)) throw new Error("provider returned a native continuation result for another request");
11252
- const nextControlRef = exactContinuedControlRef(outcome.controlRef, activeControlRef);
11253
- assertResultBinding(nextControlRef, outcome.result);
11254
- activeControlRef = freezeControlRef(nextControlRef);
11255
- return structuredClone({
11256
- ...outcome,
11257
- controlRef: copyControlRef(activeControlRef)
11258
- });
11403
+ beginNativeContinuation,
11404
+ continueNative(request, turn) {
11405
+ return executeNativeContinuation(request, turn, void 0, void 0);
11259
11406
  },
11260
11407
  async cancel(options) {
11408
+ synchronizeActiveControlRef();
11261
11409
  assertStableText(options.operationId, "retained cancellation operation id");
11262
11410
  if (options.reason !== void 0) assertStableText(options.reason, "retained cancellation reason");
11263
11411
  if (options.signal?.aborted) throw abortError(options.signal.reason);
@@ -11333,8 +11481,9 @@ async function startRetainedRun(options) {
11333
11481
  }
11334
11482
  if (typeof options.onAdmission !== "function") throw new Error("startRetainedRun requires an awaited onAdmission durability hook");
11335
11483
  const identity = options.identity ?? mintRetainedIdentity(options.environment.idempotencyKey, options.turn.turnId);
11484
+ const contextTransfer = retainedContextTransfer(options.turn.contextTransfer);
11336
11485
  if (!options.provider.get) throw new Error(`provider "${options.provider.name}" cannot reconstruct an environment by id`);
11337
- const intent = retainedRunIntent(options, identity);
11486
+ const intent = retainedRunIntent(options, identity, contextTransfer);
11338
11487
  if (options.intent === void 0) await admitDurably(options.onAdmission, intent);
11339
11488
  else assertExactRetainedRunIntent(options.intent, intent);
11340
11489
  const providerCapabilities = await assertRetainedCapabilities(options.provider);
@@ -11368,6 +11517,7 @@ async function startRetainedRun(options) {
11368
11517
  environment,
11369
11518
  environmentIdempotencyKey: options.environment.idempotencyKey,
11370
11519
  turn: options.turn,
11520
+ contextTransfer,
11371
11521
  identity,
11372
11522
  onAdmission: options.onAdmission,
11373
11523
  capabilities,
@@ -11393,6 +11543,7 @@ async function startRetainedRunInEnvironment(options) {
11393
11543
  }
11394
11544
  if (typeof options.onAdmission !== "function") throw new Error("startRetainedRunInEnvironment requires an awaited onAdmission durability hook");
11395
11545
  const identity = options.identity ?? mintRetainedIdentity(options.environment.idempotencyKey, options.turn.turnId);
11546
+ const contextTransfer = retainedContextTransfer(options.turn.contextTransfer);
11396
11547
  const providerCapabilities = await assertRetainedCapabilities(options.provider);
11397
11548
  if (!options.provider.get) throw new Error(`provider "${options.provider.name}" cannot reconstruct an environment by id`);
11398
11549
  const environment = await options.provider.get(options.environment.id);
@@ -11407,6 +11558,7 @@ async function startRetainedRunInEnvironment(options) {
11407
11558
  environment,
11408
11559
  environmentIdempotencyKey: options.environment.idempotencyKey,
11409
11560
  turn: options.turn,
11561
+ contextTransfer,
11410
11562
  identity,
11411
11563
  onAdmission: options.onAdmission,
11412
11564
  capabilities,
@@ -11444,7 +11596,8 @@ async function dispatchRetainedRun(options) {
11444
11596
  reference = await environment.dispatch(freshTurnInput(options.turn, {
11445
11597
  turnId: options.turn.turnId,
11446
11598
  detach: true,
11447
- ...identity
11599
+ ...identity,
11600
+ ...options.contextTransfer === void 0 ? {} : { contextTransfer: options.contextTransfer }
11448
11601
  }));
11449
11602
  } catch (error) {
11450
11603
  await destroyIfCreated(error);
@@ -11549,7 +11702,7 @@ async function recoverRetainedRun(options) {
11549
11702
  handle: createRetainedRunHandle(environment, exact.session, exact.controlRef, capabilities, options.now)
11550
11703
  };
11551
11704
  }
11552
- function retainedRunIntent(options, identity) {
11705
+ function retainedRunIntent(options, identity, contextTransfer) {
11553
11706
  const requestedProfileDigest = canonicalCandidateDigest(options.environment.profile);
11554
11707
  const requestDigest = canonicalCandidateDigest({
11555
11708
  kind: "retained-run-intent.v1",
@@ -11560,7 +11713,7 @@ function retainedRunIntent(options, identity) {
11560
11713
  executionId: identity.executionId,
11561
11714
  requestedProfileDigest,
11562
11715
  create: retainedCreateMaterial(options.environment),
11563
- turn: retainedTurnMaterial(options.turn)
11716
+ turn: retainedTurnMaterial(options.turn, contextTransfer)
11564
11717
  });
11565
11718
  return {
11566
11719
  phase: "intent",
@@ -11574,6 +11727,10 @@ function retainedRunIntent(options, identity) {
11574
11727
  requestDigest
11575
11728
  };
11576
11729
  }
11730
+ function retainedContextTransfer(value) {
11731
+ if (value === void 0) return void 0;
11732
+ return detachedSnapshot(ContextTransferRequestSchema.parse(value), "retained context transfer request");
11733
+ }
11577
11734
  function assertExactRetainedRunIntent(received, expected) {
11578
11735
  if (canonicalCandidateDigest(parseRetainedRunIntent(received)) !== canonicalCandidateDigest(expected)) throw new Error("retained run intent conflicts with replay material");
11579
11736
  }
@@ -15292,4 +15449,4 @@ function isNonEmptySpend(s) {
15292
15449
  //#endregion
15293
15450
  export { bridgeRuntimeAttachmentsKey as $, buildRuntimeEventOtelSpans as $t, readWorkerInteractiveBinding as A, profileMaterializationAxes$1 as An, isLiveNodeStatus as At, retainedCreateMaterial as B, worktreeCliProfileMaterialization as Bn, probeSandboxCapabilities as Bt, timerAt as C, parseCodexTokenUsage as Cn, DEFAULT_PEER_MAIL_LIMITS as Ct, readWorkerInteractiveAdmissions as D, controlProfileMaterialization as Dn, isPeerMailEnvelope as Dt, interactiveAdmissionSeamKey as E, assertProfileMaterialization as En, createPeerMailbox as Et, startRetainedInteractiveRun as F, renderProfileMaterializationIssues as Fn, createSandboxForSpec as Ft, DEFAULT_SUCCESSFUL_SHUTDOWN_MS as G, observedModelMatchesDeclared as Gt, freeSlots as H, routerBrain as Ht, reconnectRetainedRun as I, renderUnsupported as In, defaultSelectWinner as It, createBudgetPool as J, readTraceContextFromEnv as Jt, teardownExecutor as K, createPropagatingTraceEmitter as Kt, recoverRetainedRun as L, sandboxActProfileMaterialization as Ln, isTerminalDecision as Lt, workerInteractiveBindingsDir as M, promptModelProfileMaterialization as Mn, createInPlaceCliExecutor as Mt, reconnectRetainedInteractiveRun as N, promptOnlyProfileMaterialization as Nn, taskToPrompt as Nt, workerInteractiveAdmissionFile as O, defineProfileMaterializationContract as On, peerMailTools as Ot, recoverRetainedInteractiveRun as P, promptResourceProfileMaterialization as Pn, TERMINAL_DECISIONS as Pt, bridgeModelRouteRefusal as Q, buildLoopSpanNodes as Qt, startRetainedRun as R, unsupportedProfileDimensions as Rn, runAgentRounds as Rt, pollFor as S, localHarnessExecutable as Sn, AUTHORITY_MARKERS as St, waitUntil as T, AGENT_PROFILE_MATERIALIZATION_AXES as Tn, claimsAuthority as Tt, queueOf as U, runBrainLoop as Ut, effectiveConcurrency as V, acquireSandbox as Vt, rollingDispatch as W, canonicalObservedModel as Wt, bindReusableExecutorExecutionId as X, INTELLIGENCE_WIRE_VERSION as Xt, spendFromUsageEvents as Y, traceContextToEnv as Yt, bridgeAdmissionRead as Z, buildLoopOtelSpans as Zt, recordScopeOwnerMaterialization as _, createWorktree as _n, sandboxSessionTraceSource as _t, uncertainSpawnBudgets as a, loopEventToOtelSpan as an, createExecutorRegistry as at, createWaitProbes as b, LOCAL_HARNESSES as bn, readWorkerProgress as bt, pickBestDelivered as c, toOtelAttributes as cn, WORKER_TRACE_PROPAGATION as ct, driverChild as d, sanitizeAgentRuntimeEvent as dn, workerTraceHeaders as dt, createOpenInferenceFileExporter as en, bridgeStopSignalKey as et, withDriverExecutor as f, sanitizeKnowledgeReadinessReport as fn, workerTraceSeamKey as ft, meterRuntimeOwnedProviderAttempt as g, captureWorktreeDiff as gn, decodeToolPart as gt, meterRuntimeOwnedAccounting as h, runWorktreeHarness as hn, createPushTraceSource as ht, sumMeasuredSpendFromEvents as i, generateSpanId as in, createExecutor as it, workerInteractiveBindingFile as j, promptControlProfileMaterialization as jn, isTerminalNodeStatus as jt, attachWorker as k, fullProfileMaterialization as kn, peerMailVerbNames as kt, runFinalizer as l, createRuntimeEventCollector as ln, readWorkerTraceContext as lt, deriveNodeExecutionIdentity as m, runSettledCommand as mn, createSteerableSandboxSession as mt, createSupervisor as n, exportEvalRuns as nn, cliInPlaceExecutor as nt, bestDelivered as o, padSpanId as on, snapshotExecutorConfig as ot, createScope as p, sanitizeRuntimeStreamEvent as pn, DEFAULT_SANDBOX_STEERING_MAX_TURNS as pt, assertValidBudget as q, mergeTraceEnv as qt, maxSeqOf as r, flatOtelSpan as rn, cliWorktreeExecutor as rt, collectDelivered as s, padTraceId as sn, createWorktreeCliExecutor as st, createRootHandle as t, createOtelExporter as tn, captureReusableExecutorConfig as tt, runTree as u, createRuntimeStreamEventCollector as un, workerTraceEnv as ut, scopeOwnerExecutorNodeContext as v, removeWorktree as vn, DEFAULT_STALL_AFTER_MS as vt, validateWaitSpec as w, CodexExecutionDiagnosticError as wn, PEER_MAIL_WIRE_KEY as wt, isWaitOutcome as x, harnessSupportsReasoningEffort as xn, createInbox as xt, settledToIteration as y, DEFAULT_LOCAL_HARNESS as yn, createActivityLog as yt, startRetainedRunInEnvironment as z, validateProfileMaterialization as zn, createSandboxLineage as zt };
15294
15451
 
15295
- //# sourceMappingURL=supervisor-ChLgoYhG.js.map
15452
+ //# sourceMappingURL=supervisor--tj9JsFo.js.map