@paperclipai/adapter-utils 2026.1005.0-canary.4 → 2026.1005.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 (107) hide show
  1. package/README.md +0 -13
  2. package/dist/acpx-engine/execute.d.ts.map +1 -1
  3. package/dist/acpx-engine/execute.js +42 -66
  4. package/dist/acpx-engine/execute.js.map +1 -1
  5. package/dist/acpx-engine/execute.test.js +4 -162
  6. package/dist/acpx-engine/execute.test.js.map +1 -1
  7. package/dist/acpx-engine/session-codec.d.ts.map +1 -1
  8. package/dist/acpx-engine/session-codec.js +0 -1
  9. package/dist/acpx-engine/session-codec.js.map +1 -1
  10. package/dist/acpx-engine/settlement-characterization.test.js +0 -105
  11. package/dist/acpx-engine/settlement-characterization.test.js.map +1 -1
  12. package/dist/acpx-engine/terminal-session-failure.d.ts +0 -6
  13. package/dist/acpx-engine/terminal-session-failure.d.ts.map +1 -1
  14. package/dist/acpx-engine/terminal-session-failure.js +0 -14
  15. package/dist/acpx-engine/terminal-session-failure.js.map +1 -1
  16. package/dist/acpx-engine/terminal-session-failure.test.js +1 -21
  17. package/dist/acpx-engine/terminal-session-failure.test.js.map +1 -1
  18. package/dist/command-redaction.d.ts +0 -2
  19. package/dist/command-redaction.d.ts.map +1 -1
  20. package/dist/command-redaction.js +10 -20
  21. package/dist/command-redaction.js.map +1 -1
  22. package/dist/command-redaction.test.js +1 -20
  23. package/dist/command-redaction.test.js.map +1 -1
  24. package/dist/execution-target-sandbox.test.js +6 -48
  25. package/dist/execution-target-sandbox.test.js.map +1 -1
  26. package/dist/execution-target-stdin-race.test.js +0 -4
  27. package/dist/execution-target-stdin-race.test.js.map +1 -1
  28. package/dist/execution-target.d.ts.map +1 -1
  29. package/dist/execution-target.js +10 -6
  30. package/dist/execution-target.js.map +1 -1
  31. package/dist/git-workspace-sync.d.ts.map +1 -1
  32. package/dist/git-workspace-sync.js +2 -3
  33. package/dist/git-workspace-sync.js.map +1 -1
  34. package/dist/git-workspace-sync.test.js +3 -23
  35. package/dist/git-workspace-sync.test.js.map +1 -1
  36. package/dist/github-launcher.d.ts.map +1 -1
  37. package/dist/github-launcher.js +11 -26
  38. package/dist/github-launcher.js.map +1 -1
  39. package/dist/github-launcher.test.js +1 -34
  40. package/dist/github-launcher.test.js.map +1 -1
  41. package/dist/prompt-sections.test.js +6 -7
  42. package/dist/prompt-sections.test.js.map +1 -1
  43. package/dist/sandbox-callback-bridge.d.ts +0 -2
  44. package/dist/sandbox-callback-bridge.d.ts.map +1 -1
  45. package/dist/sandbox-callback-bridge.js +3 -12
  46. package/dist/sandbox-callback-bridge.js.map +1 -1
  47. package/dist/sandbox-callback-bridge.test.js +0 -100
  48. package/dist/sandbox-callback-bridge.test.js.map +1 -1
  49. package/dist/sandbox-managed-runtime.d.ts.map +1 -1
  50. package/dist/sandbox-managed-runtime.js +48 -55
  51. package/dist/sandbox-managed-runtime.js.map +1 -1
  52. package/dist/sandbox-managed-runtime.test.js +6 -65
  53. package/dist/sandbox-managed-runtime.test.js.map +1 -1
  54. package/dist/server-utils.d.ts +1 -6
  55. package/dist/server-utils.d.ts.map +1 -1
  56. package/dist/server-utils.js +47 -21
  57. package/dist/server-utils.js.map +1 -1
  58. package/dist/server-utils.test.js +48 -46
  59. package/dist/server-utils.test.js.map +1 -1
  60. package/dist/session-compaction.d.ts.map +1 -1
  61. package/dist/session-compaction.js +0 -6
  62. package/dist/session-compaction.js.map +1 -1
  63. package/dist/types.d.ts +1 -8
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/workspace-restore-diagnostics.d.ts +1 -21
  66. package/dist/workspace-restore-diagnostics.d.ts.map +1 -1
  67. package/dist/workspace-restore-diagnostics.js +8 -106
  68. package/dist/workspace-restore-diagnostics.js.map +1 -1
  69. package/dist/workspace-restore-diagnostics.test.js +1 -73
  70. package/dist/workspace-restore-diagnostics.test.js.map +1 -1
  71. package/dist/workspace-restore-merge.d.ts +2 -4
  72. package/dist/workspace-restore-merge.d.ts.map +1 -1
  73. package/dist/workspace-restore-merge.js +66 -89
  74. package/dist/workspace-restore-merge.js.map +1 -1
  75. package/dist/workspace-restore-merge.test.js +5 -8
  76. package/dist/workspace-restore-merge.test.js.map +1 -1
  77. package/dist/workspace-restore-result.d.ts.map +1 -1
  78. package/dist/workspace-restore-result.js +39 -44
  79. package/dist/workspace-restore-result.js.map +1 -1
  80. package/dist/workspace-restore-result.test.js +0 -11
  81. package/dist/workspace-restore-result.test.js.map +1 -1
  82. package/dist/workspace-restore-teardown.d.ts.map +1 -1
  83. package/dist/workspace-restore-teardown.js +3 -5
  84. package/dist/workspace-restore-teardown.js.map +1 -1
  85. package/dist/workspace-restore-teardown.test.js +0 -24
  86. package/dist/workspace-restore-teardown.test.js.map +1 -1
  87. package/package.json +2 -2
  88. package/dist/acpx-engine/ephemeral-session-environment.d.ts +0 -4
  89. package/dist/acpx-engine/ephemeral-session-environment.d.ts.map +0 -1
  90. package/dist/acpx-engine/ephemeral-session-environment.js +0 -29
  91. package/dist/acpx-engine/ephemeral-session-environment.js.map +0 -1
  92. package/dist/acpx-engine/ephemeral-session-environment.test.d.ts +0 -2
  93. package/dist/acpx-engine/ephemeral-session-environment.test.d.ts.map +0 -1
  94. package/dist/acpx-engine/ephemeral-session-environment.test.js +0 -177
  95. package/dist/acpx-engine/ephemeral-session-environment.test.js.map +0 -1
  96. package/dist/directory-merge-lock.test.d.ts +0 -2
  97. package/dist/directory-merge-lock.test.d.ts.map +0 -1
  98. package/dist/directory-merge-lock.test.js +0 -166
  99. package/dist/directory-merge-lock.test.js.map +0 -1
  100. package/dist/execution-phase.d.ts +0 -10
  101. package/dist/execution-phase.d.ts.map +0 -1
  102. package/dist/execution-phase.js +0 -27
  103. package/dist/execution-phase.js.map +0 -1
  104. package/dist/execution-phase.test.d.ts +0 -2
  105. package/dist/execution-phase.test.d.ts.map +0 -1
  106. package/dist/execution-phase.test.js +0 -26
  107. package/dist/execution-phase.test.js.map +0 -1
package/README.md CHANGED
@@ -9,19 +9,6 @@ For the adapter-author guide see
9
9
  [`docs/adapters/creating-an-adapter.md`](../../docs/adapters/creating-an-adapter.md)
10
10
  and the in-repo notes at [`packages/adapters/AUTHORING.md`](../adapters/AUTHORING.md).
11
11
 
12
- ## Sandbox bridge deadlines
13
-
14
- Command-managed bridge control operations (queue reads, input delivery, setup,
15
- and cleanup) have a host-enforced deadline of at most 30 seconds per shell
16
- command. A shorter configured timeout still applies. These operations cannot
17
- inherit the agent run's hours-long lifetime or wait forever on a provider that
18
- ignores its timeout. Long-lived agent session commands keep their own limits.
19
-
20
- A control timeout reports a transport failure. It does not prove that the
21
- remote command stopped and does not replay an uncertain write. The process
22
- session closes failed input delivery and uses its existing shutdown path;
23
- normal execution settlement must still verify termination.
24
-
25
12
  ## No-remote-git contract
26
13
 
27
14
  The local execution-workspace cwd is the only persistence boundary across
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/acpx-engine/execute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/acpx-engine/execute.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { cancellableSandboxStartup } from "./startup-cancellation.js";
2
- import { withAdapterExecutionPhase } from "../execution-phase.js";
3
2
  import fs from "node:fs/promises";
4
3
  import fsSync from "node:fs";
5
4
  import os from "node:os";
@@ -7,16 +6,14 @@ import path from "node:path";
7
6
  import { execFile } from "node:child_process";
8
7
  import { promisify } from "node:util";
9
8
  import { createHash, randomUUID } from "node:crypto";
10
- import { parseFrontmatterMarkdown } from "@paperclipai/shared";
11
9
  import { fileURLToPath } from "node:url";
12
10
  import { adapterExecutionTargetSessionIdentity, describeAdapterExecutionTarget, adapterExecutionTargetDuplexObservabilityRecorder, adapterExecutionTargetEnablesSandboxDuplexBridge, formatAdapterExecutionTimeoutErrorMessage, formatAdapterExecutionTimeoutStartLogLine, prepareAdapterExecutionTargetRuntime, readAdapterExecutionTarget, resolveAdapterExecutionTargetTimeout, resolveReferencedSourceIgnore, runAdapterExecutionTargetShellCommand, startAdapterExecutionTargetPaperclipBridge, startAdapterExecutionTargetProcessSessionBridge, } from "@paperclipai/adapter-utils/execution-target";
13
11
  import { captureLocalProcess, capturedProcessExited, killCapturedLocalProcess } from "./local-process-control.js";
14
12
  import { DUPLEX_CHANNEL_LOST_ERROR_CODE } from "../bridge-transport-contract.js";
15
- import { classifyToolDefinitionFailure, formatTerminalSessionFailure, sanitizeTerminalSessionFailure, } from "./terminal-session-failure.js";
13
+ import { formatTerminalSessionFailure, sanitizeTerminalSessionFailure, } from "./terminal-session-failure.js";
16
14
  import { classifyWorkspaceRestoreFailure, describeWorkspaceRestoreFailure, } from "../workspace-restore-merge.js";
17
- import { DEFAULT_PAPERCLIP_AGENT_PROMPT_TEMPLATE, DEFAULT_PAPERCLIP_CONVERSATION_PROMPT_TEMPLATE, applyPaperclipWorkspaceEnv, asNumber, asString, buildInvocationEnvForLogs, buildPaperclipEnv, ensureAbsoluteDirectory, ensurePathInEnv, ensurePaperclipSkillSymlink, isForbiddenConfigEnvKey, isPaperclipExternalChatTurn, isPaperclipRuntimeEnvKey, joinPromptSections, materializePaperclipSkillCopy, parseObject, isPaperclipSkillSourceMissing, readPaperclipRuntimeSkillEntries, readPaperclipIssueWorkModeFromContext, renderTemplate, resolvePaperclipInstanceRootForAdapter, hydrateFreshSessionHandoff, selectInitialCommunicationGuidance, selectPaperclipPromptSections, resolveLegacyPaperclipDesiredSkillNames, removeMaintainerOnlySkillSymlinks, rewriteWorkspaceCwdEnvVarsForExecution, shapePaperclipWorkspaceEnvForExecution, } from "@paperclipai/adapter-utils/server-utils";
15
+ import { DEFAULT_PAPERCLIP_AGENT_PROMPT_TEMPLATE, DEFAULT_PAPERCLIP_CONVERSATION_PROMPT_TEMPLATE, applyPaperclipWorkspaceEnv, asNumber, asString, buildInvocationEnvForLogs, buildPaperclipEnv, ensureAbsoluteDirectory, ensurePathInEnv, ensurePaperclipSkillSymlink, isForbiddenConfigEnvKey, isPaperclipExternalChatTurn, isPaperclipRuntimeEnvKey, joinPromptSections, materializePaperclipSkillCopy, parseObject, isPaperclipSkillSourceMissing, readPaperclipRuntimeSkillEntries, readPaperclipIssueWorkModeFromContext, renderTemplate, resolvePaperclipInstanceRootForAdapter, selectPaperclipPromptSections, resolveLegacyPaperclipDesiredSkillNames, removeMaintainerOnlySkillSymlinks, rewriteWorkspaceCwdEnvVarsForExecution, shapePaperclipWorkspaceEnvForExecution, } from "@paperclipai/adapter-utils/server-utils";
18
16
  import { shellQuote } from "@paperclipai/adapter-utils/ssh";
19
- import { createEphemeralSessionEnvironmentStore } from "./ephemeral-session-environment.js";
20
17
  import { createAcpRuntime, createAgentRegistry, createRuntimeStore, isAcpRuntimeError, } from "acpx/runtime";
21
18
  import { ACPX_DUPLEX_LOSS_CANCEL_DEADLINE_MS, ACPX_HANDSHAKE_TIMEOUT_MS, ACPX_HANDSHAKE_TRANSPORT_POLL_MS, DEFAULT_ACP_ENGINE_AGENT, DEFAULT_ACP_ENGINE_MODE, DEFAULT_ACP_ENGINE_NON_INTERACTIVE_PERMISSIONS, DEFAULT_ACP_ENGINE_PERMISSION_MODE, DEFAULT_ACP_ENGINE_TIMEOUT_SEC, DEFAULT_ACP_ENGINE_WARM_HANDLE_IDLE_MS, } from "./constants.js";
22
19
  import { createRunResourceLedger } from "./run-resource-ledger.js";
@@ -625,25 +622,11 @@ async function prepareClaudeSkillRuntime(input) {
625
622
  }
626
623
  }
627
624
  const selectedNames = materializedNames.sort();
628
- const skillDescriptions = await Promise.all(selectedNames.map(async (name) => {
629
- const file = path.join(skillsHome, name, "SKILL.md");
630
- let description = "";
631
- try {
632
- const parsed = parseFrontmatterMarkdown(await fs.readFile(file, "utf8"));
633
- description = asString(parsed.frontmatter.description, "").replace(/\s+/g, " ").trim().slice(0, 512);
634
- }
635
- catch {
636
- // A readable skill without valid routing metadata remains available.
637
- // Do not substitute its body for a missing description.
638
- }
639
- return `- ${name}${description ? `: ${description}` : ""} (file: ${file})`;
640
- }));
641
625
  const promptInstructions = selectedNames.length > 0
642
626
  ? [
643
627
  "Paperclip has materialized selected runtime skills for this ACPX Claude session.",
644
628
  `Skill root: ${skillsHome}`,
645
629
  `Selected skills: ${selectedNames.join(", ")}`,
646
- ...skillDescriptions,
647
630
  "When a task calls for one of these skills, read its SKILL.md from that root and follow it.",
648
631
  ].join("\n")
649
632
  : "";
@@ -925,7 +908,6 @@ function buildSessionParams(input) {
925
908
  mode: prepared.mode,
926
909
  stateDir: prepared.stateDir,
927
910
  configFingerprint: prepared.fingerprint,
928
- mcpFingerprint: shortHash(prepared.mcpIdentity),
929
911
  ...(prepared.requestedModel ? { model: prepared.requestedModel } : {}),
930
912
  ...(prepared.requestedThinkingEffort ? { thinkingEffort: prepared.requestedThinkingEffort } : {}),
931
913
  ...(prepared.fastMode ? { fastMode: true } : {}),
@@ -1471,9 +1453,7 @@ async function buildRuntime(input) {
1471
1453
  defaultMode: paperclipClaudeSettings.defaultMode,
1472
1454
  }
1473
1455
  : null,
1474
- // Qualified built-in ACP harnesses reconnect to the supplied MCP servers
1475
- // on session/load. Keep their conversation identity independent of tools.
1476
- mcpServers: ["claude", "codex", "grok", "gemini", "kimi"].includes(acpxAgent) ? [] : mcpIdentity,
1456
+ mcpServers: mcpIdentity,
1477
1457
  secretManifestHash: shortHash(secretManifest),
1478
1458
  // Fold the resolved adapter env (all applied user-configured values —
1479
1459
  // plain, secret_ref, and stable PAPERCLIP_* config such as an explicit
@@ -2173,8 +2153,7 @@ async function buildPrompt(ctx, resumedSession, env) {
2173
2153
  const renderedBootstrapPrompt = !resumedSession && bootstrapPromptTemplate.trim().length > 0
2174
2154
  ? renderTemplate(bootstrapPromptTemplate, templateData).trim()
2175
2155
  : "";
2176
- await hydrateFreshSessionHandoff(ctx, { resumedSession });
2177
- const { taskContextNote, wakePrompt } = selectPaperclipPromptSections(context, { resumedSession, includeCommunicationGuidance: false });
2156
+ const { taskContextNote, wakePrompt } = selectPaperclipPromptSections(context, { resumedSession });
2178
2157
  const externalChatTurn = isPaperclipExternalChatTurn(context.paperclipWake);
2179
2158
  const shouldUseResumeDeltaPrompt = resumedSession && wakePrompt.length > 0;
2180
2159
  const promptInstructionsPrefix = shouldUseResumeDeltaPrompt ? "" : instructionsPrefix;
@@ -2187,7 +2166,6 @@ async function buildPrompt(ctx, resumedSession, env) {
2187
2166
  const prompt = joinPromptSections([
2188
2167
  promptInstructionsPrefix,
2189
2168
  renderedBootstrapPrompt,
2190
- selectInitialCommunicationGuidance(context, { resumedSession }),
2191
2169
  wakePrompt,
2192
2170
  sessionHandoffNote,
2193
2171
  taskContextNote,
@@ -3094,9 +3072,9 @@ export function createAcpxEngineExecutor(deps = {}) {
3094
3072
  : teardownErr instanceof Error
3095
3073
  ? teardownErr.message
3096
3074
  : String(teardownErr);
3097
- await withAdapterExecutionPhase(ctx, "phase_reporting", () => ctx
3075
+ await ctx
3098
3076
  .onLog("stderr", `[paperclip] ACPX teardown step "${step}" failed: ${reason}\n`)
3099
- .catch(() => { }));
3077
+ .catch(() => { });
3100
3078
  };
3101
3079
  // Emit one per-phase timing run-log event. It is not an OpenTelemetry
3102
3080
  // export and it is not a Telemetry event: it carries the phase name
@@ -3109,13 +3087,13 @@ export function createAcpxEngineExecutor(deps = {}) {
3109
3087
  const timedPhase = async (phase, run) => {
3110
3088
  const start = now();
3111
3089
  try {
3112
- await withAdapterExecutionPhase(ctx, phase, run);
3090
+ await run();
3113
3091
  }
3114
3092
  catch (error) {
3115
- await withAdapterExecutionPhase(ctx, "phase_reporting", () => emitPhase(phase, start, "failed"));
3093
+ await emitPhase(phase, start, "failed");
3116
3094
  throw error;
3117
3095
  }
3118
- await withAdapterExecutionPhase(ctx, "phase_reporting", () => emitPhase(phase, start, "ok"));
3096
+ await emitPhase(phase, start, "ok");
3119
3097
  };
3120
3098
  // The turn the run started. It is hoisted to the run scope so the settlement
3121
3099
  // `endSession` step can cancel a running turn before it closes the runtime
@@ -3233,14 +3211,7 @@ export function createAcpxEngineExecutor(deps = {}) {
3233
3211
  // same session still sees it. The borrow clears the entry's idle timer, so
3234
3212
  // the reused runtime cannot expire under its own timer while this run uses
3235
3213
  // it (today's `clearWarmHandleTimer(cached)` after the reuse decision).
3236
- let cached = canResume ? hostStore.borrow(prepared.sessionKey) : undefined;
3237
- if (cached && (ctx.context.refreshTools === true
3238
- || asString(previousParams.mcpFingerprint, "") !== shortHash(prepared.mcpIdentity)
3239
- // MCP bearer credentials are run-scoped, even for an unchanged catalog.
3240
- || prepared.mcpServers.length > 0)) {
3241
- await hostStore.discard(prepared.sessionKey);
3242
- cached = undefined;
3243
- }
3214
+ const cached = canResume ? hostStore.borrow(prepared.sessionKey) : undefined;
3244
3215
  childStderrState = cached?.childStderrState ?? { logPath: null, pendingLiveLine: "" };
3245
3216
  processIdentitySink = cached?.processIdentitySink ?? {
3246
3217
  current: ctx.onSpawn,
@@ -3253,9 +3224,27 @@ export function createAcpxEngineExecutor(deps = {}) {
3253
3224
  flushChildStderr(childStderrState);
3254
3225
  childStderrState.logPath = prepared.childStderrLogPath;
3255
3226
  const persistedRuntimeStore = createRuntimeStore({ stateDir: prepared.stateDir });
3256
- // Resume with this run's launch environment; keep it out of the saved
3257
- // conversation record without mutating the live runtime's options.
3258
- const runtimeStore = createEphemeralSessionEnvironmentStore(persistedRuntimeStore, prepared.env);
3227
+ const runtimeStore = {
3228
+ async load(id) {
3229
+ const record = await persistedRuntimeStore.load(id);
3230
+ if (!record)
3231
+ return undefined;
3232
+ // ACPX resumes from the stored session options rather than the
3233
+ // options passed to ensureSession. Keep conversation state, but
3234
+ // launch the provider with this run's credentials and scratch paths.
3235
+ return {
3236
+ ...record,
3237
+ acpx: {
3238
+ ...record.acpx,
3239
+ session_options: {
3240
+ ...record.acpx?.session_options,
3241
+ env: { ...prepared.env },
3242
+ },
3243
+ },
3244
+ };
3245
+ },
3246
+ save: (record) => persistedRuntimeStore.save(record),
3247
+ };
3259
3248
  const runtimeOptions = {
3260
3249
  cwd: prepared.cwd,
3261
3250
  // Host-only spawn cwd for the relay proxy on the remote process-session
@@ -3779,9 +3768,8 @@ export function createAcpxEngineExecutor(deps = {}) {
3779
3768
  // Diagnostics are retained even when an adapter has no recovery
3780
3769
  // classifier. Redact before bounding so partial secrets cannot leak.
3781
3770
  onTerminalSessionFailure: (failure) => {
3782
- terminalFailureClassification = classifyToolDefinitionFailure(failure)
3783
- ?? deps.classifyTerminalSessionFailure?.(failure, new Date(now())) ?? null;
3784
3771
  terminalSessionFailure = sanitizeTerminalSessionFailure(failure, prepared.env, ctx.authToken, parseObject(ctx.config.env));
3772
+ terminalFailureClassification = deps.classifyTerminalSessionFailure?.(failure, new Date(now())) ?? null;
3785
3773
  },
3786
3774
  });
3787
3775
  activeTurn = turn;
@@ -3839,7 +3827,7 @@ export function createAcpxEngineExecutor(deps = {}) {
3839
3827
  armStopDeadline();
3840
3828
  return {
3841
3829
  cancel: async (reason) => {
3842
- await withAdapterExecutionPhase(ctx, "cancel_turn", () => turn.cancel({ reason }));
3830
+ await turn.cancel({ reason });
3843
3831
  },
3844
3832
  };
3845
3833
  };
@@ -4295,7 +4283,7 @@ export function createAcpxEngineExecutor(deps = {}) {
4295
4283
  : baseSettlement;
4296
4284
  // Cancel a running turn before the close (the turn-error path).
4297
4285
  if (settlement.cancelTurnReason && activeTurn) {
4298
- await withAdapterExecutionPhase(ctx, "cancel_turn", () => activeTurn.cancel({ reason: settlement.cancelTurnReason }).catch(() => { }));
4286
+ await activeTurn.cancel({ reason: settlement.cancelTurnReason }).catch(() => { });
4299
4287
  }
4300
4288
  const existing = warmHandles.get(prepared.sessionKey);
4301
4289
  // Re-read the duplex control-channel disposition here, at the
@@ -4332,26 +4320,26 @@ export function createAcpxEngineExecutor(deps = {}) {
4332
4320
  existing) {
4333
4321
  // A matching warm entry closes through the warm store, which also
4334
4322
  // clears its idle timer and flushes its child stderr.
4335
- runtimeStopConfirmed = await withAdapterExecutionPhase(ctx, "close_session", () => closeWarmHandle({
4323
+ runtimeStopConfirmed = await closeWarmHandle({
4336
4324
  handles: warmHandles,
4337
4325
  key: prepared.sessionKey,
4338
4326
  entry: existing,
4339
4327
  reason: settlement.reason,
4340
4328
  discardPersistentState: settlement.discardPersistentState,
4341
- }));
4329
+ });
4342
4330
  return;
4343
4331
  }
4344
4332
  const onCloseError = settlement.recordCloseError || ctx.signal?.aborted
4345
4333
  ? (closeErr) => recordTeardownError("runtime-close", closeErr)
4346
4334
  : () => { };
4347
- await withAdapterExecutionPhase(ctx, "close_session", () => runtime
4335
+ await runtime
4348
4336
  .close({
4349
4337
  handle: settlement.handle,
4350
4338
  reason: settlement.reason,
4351
4339
  discardPersistentState: settlement.discardPersistentState,
4352
4340
  })
4353
4341
  .then(() => { runtimeStopConfirmed = true; })
4354
- .catch(onCloseError));
4342
+ .catch(onCloseError);
4355
4343
  if (settlement.dropWarmEntry && warmHandleMatches(existing, runtime, settlement.handle) && existing) {
4356
4344
  clearWarmHandleTimer(existing);
4357
4345
  warmHandles.delete(prepared.sessionKey);
@@ -4384,7 +4372,7 @@ export function createAcpxEngineExecutor(deps = {}) {
4384
4372
  const stopped = runtimeStopConfirmed || (!prepared.processSessionBridge && capturedProcessExited(processIdentitySink?.localProcess));
4385
4373
  try {
4386
4374
  if (stopped)
4387
- await withAdapterExecutionPhase(ctx, "instruction_collection", () => ctx.onProviderStopped?.());
4375
+ await ctx.onProviderStopped?.();
4388
4376
  }
4389
4377
  catch {
4390
4378
  // Match ACP's fail-soft teardown policy without describing this as
@@ -4392,15 +4380,12 @@ export function createAcpxEngineExecutor(deps = {}) {
4392
4380
  await recordTeardownError("instruction-collection", new Error("Instruction collection failed after provider stop. No instruction save is claimed."));
4393
4381
  }
4394
4382
  finally {
4395
- await withAdapterExecutionPhase(ctx, "workspace_restore", () => runRuntimeSpan("sandbox.syncBack", async () => {
4383
+ await runRuntimeSpan("sandbox.syncBack", async () => {
4396
4384
  const restoreOutcome = await syncBackManagedHome(prepared);
4397
4385
  if (!restoreOutcome.ok) {
4398
- workspaceRestoreFailureField = {
4399
- workspaceRestoreFailure: restoreOutcome.code,
4400
- ...(restoreOutcome.diagnostic ? { workspaceRestoreDiagnostic: restoreOutcome.diagnostic } : {}),
4401
- };
4386
+ workspaceRestoreFailureField = { workspaceRestoreFailure: restoreOutcome.code };
4402
4387
  }
4403
- }));
4388
+ });
4404
4389
  }
4405
4390
  }),
4406
4391
  // The staging lease releases as the run's final act, AFTER the coordinator
@@ -4470,15 +4455,6 @@ export function createAcpxEngineExecutor(deps = {}) {
4470
4455
  } },
4471
4456
  };
4472
4457
  }
4473
- // Preserve the policy resolved for this execution target. The server
4474
- // cannot reconstruct sandbox defaults from the stored agent config.
4475
- capturedResult = {
4476
- ...capturedResult,
4477
- resultJson: {
4478
- ...capturedResult.resultJson,
4479
- adapterExecutionTimeout: { ...prepared.timeoutResolution },
4480
- },
4481
- };
4482
4458
  // The sync-back settlement step runs before this reproduces the result
4483
4459
  // (settlement precedes reproduction), so a failed workspace restore is
4484
4460
  // already recorded by the time we get here. Merge it into `resultJson`