@openclaw/codex 2026.10.6 → 2026.10.7

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 (57) hide show
  1. package/dist/.setup/{account-usage-runtime-E3SrjJVn.mjs → account-usage-runtime-gzHf_Qtb.mjs} +1 -1
  2. package/dist/.setup/{apply-C3s-1Zxe.mjs → apply-BaBl0hiG.mjs} +4 -4
  3. package/dist/.setup/{attempt-client-cleanup-BVww-ct8.mjs → attempt-client-cleanup-jWVRH043.mjs} +4 -4
  4. package/dist/.setup/{auth-cache-key-CXK7tmkb.mjs → auth-cache-key-DrieYJUQ.mjs} +1 -1
  5. package/dist/.setup/{bounded-turn-vdpL2efh.mjs → bounded-turn-s9yVsxaM.mjs} +7 -7
  6. package/dist/.setup/{build-state-DPMC9C_U.mjs → build-state-B5mKL-in.mjs} +1 -1
  7. package/dist/.setup/{client-Div-zqnz.mjs → client-BM97zH3z.mjs} +3 -3
  8. package/dist/.setup/{client-catalog-response-Dtob_lVt.mjs → client-catalog-response-DhB266B_.mjs} +1 -1
  9. package/dist/.setup/{command-dispatch-ByO36LmS.mjs → command-dispatch-DsaWfzET.mjs} +1 -1
  10. package/dist/.setup/{command-handlers-CJqo6LZS.mjs → command-handlers-zgDE_J40.mjs} +10 -10
  11. package/dist/.setup/{command-rpc-Co0UzT-T.mjs → command-rpc-CAG1xrqm.mjs} +6 -6
  12. package/dist/.setup/{compact-CzNBg4cQ.mjs → compact-BZK-e5zD.mjs} +9 -9
  13. package/dist/.setup/{computer-use-BcDrQlxi.mjs → computer-use-CZhx4nNO.mjs} +4 -4
  14. package/dist/.setup/{conversation-binding-Dcv7_rs-.mjs → conversation-binding-qGuQR4jw.mjs} +7 -7
  15. package/dist/.setup/{dynamic-tool-build-DjbDZzOJ.mjs → dynamic-tool-build-Dp4v52Kl.mjs} +1 -1
  16. package/dist/.setup/{dynamic-tools-75qoSOch.mjs → dynamic-tools-C1Egdhrx.mjs} +6 -6
  17. package/dist/.setup/{effective-mcp-catalog-Dz0J8iAj.mjs → effective-mcp-catalog-BNwgItdW.mjs} +4 -4
  18. package/dist/.setup/{ephemeral-turn-K_d99r9P.mjs → ephemeral-turn-DeppK8zz.mjs} +2 -2
  19. package/dist/.setup/{isolated-completion-dNt4kRLw.mjs → isolated-completion-BUS9Mqfm.mjs} +3 -3
  20. package/dist/.setup/{mcp-app-session-preparation-C7LyxbAm.mjs → mcp-app-session-preparation-D9F1O5si.mjs} +3 -3
  21. package/dist/.setup/{model-catalog-BRJ7RMXY.mjs → model-catalog-BBg4thof.mjs} +5 -5
  22. package/dist/.setup/{models-CusrgpiY.mjs → models-B65GHU4g.mjs} +3 -3
  23. package/dist/.setup/{native-hook-relay-BvwSj5bt.mjs → native-hook-relay-Ctyky2Qt.mjs} +3 -3
  24. package/dist/.setup/{native-mcp-app-DDEtVQED.mjs → native-mcp-app-DprMGBqj.mjs} +4 -4
  25. package/dist/.setup/{native-skill-isolation-Cx2AkUco.mjs → native-skill-isolation-C4XYLm33.mjs} +2 -2
  26. package/dist/.setup/{native-subagent-monitor-CBYFkNsB.mjs → native-subagent-monitor-CJaIve3h.mjs} +6 -6
  27. package/dist/.setup/{plan-BKFbfVsV.mjs → plan-GqWF4XGA.mjs} +2 -2
  28. package/dist/.setup/{plugin-approval-roundtrip-CXXXhuKi.mjs → plugin-approval-roundtrip-x7UI_uqk.mjs} +1 -1
  29. package/dist/.setup/{provider-BVV8SWlx.mjs → provider-Bi9QCsg1.mjs} +4 -4
  30. package/dist/.setup/{provider-capabilities-B-pTlDsf.mjs → provider-capabilities-BCZeV7xZ.mjs} +1 -1
  31. package/dist/.setup/{request-m-H-7FMu.mjs → request-XC1RG34l.mjs} +1 -1
  32. package/dist/.setup/{run-attempt-Ch1emiZE.mjs → run-attempt-8U2CrqjW.mjs} +59 -48
  33. package/dist/.setup/{session-catalog-events-BBV3DMG7.mjs → session-catalog-events-CpEyDv0D.mjs} +3 -3
  34. package/dist/.setup/{session-catalog-index-B00GIRi3.mjs → session-catalog-index-DpYCf1-8.mjs} +4 -4
  35. package/dist/.setup/{session-catalog-native-projection-BJupfCyt.mjs → session-catalog-native-projection-BYV0ICja.mjs} +1 -1
  36. package/dist/.setup/{session-catalog-projection-CYgFTaYm.mjs → session-catalog-projection-B0IyXrHt.mjs} +1 -1
  37. package/dist/.setup/{session-catalog-source-Xt6-hNns.mjs → session-catalog-source-CfIBVrbT.mjs} +1 -1
  38. package/dist/.setup/{session-retirement-DIqF1vQ4.mjs → session-retirement-CKIS7jFv.mjs} +5 -5
  39. package/dist/.setup/{settled-turn-finalizer-dVv34G_E.mjs → settled-turn-finalizer-CnIWbqN7.mjs} +3 -3
  40. package/dist/.setup/{shared-client-CNGDTv68.mjs → shared-client-AdQX0Tdq.mjs} +49 -6
  41. package/dist/.setup/{side-question-D1Wa21s9.mjs → side-question-ZVehuPZn.mjs} +9 -9
  42. package/dist/.setup/{source-DyVuYlTN.mjs → source-BszpKEvi.mjs} +1 -1
  43. package/dist/.setup/{thread-lifecycle-run-DjSfTw6v.mjs → thread-lifecycle-run-DezS4UNT.mjs} +28 -13
  44. package/dist/.setup/{thread-ownership-BBsOFzCM.mjs → thread-ownership-OXzPB_RV.mjs} +3 -3
  45. package/dist/.setup/{thread-policy-BEiS7ITh.mjs → thread-policy-Dp4CQjdL.mjs} +3 -3
  46. package/dist/.setup/{thread-resume-BqOca2Iy.mjs → thread-resume-8YKfRoX6.mjs} +4 -4
  47. package/dist/.setup/{turn-router-DM0fRrYI.mjs → turn-router-DnfbVPvu.mjs} +1 -1
  48. package/dist/.setup/{upstream-session-fork-CxgShpwe.mjs → upstream-session-fork-BhADVCrb.mjs} +8 -8
  49. package/dist/.setup/{usage-DV8T9Yau.mjs → usage-BoTUkAoJ.mjs} +1 -1
  50. package/dist/.setup/{usage-limit-error-ryR1PGou.mjs → usage-limit-error-EoQ7Vl2A.mjs} +1 -1
  51. package/dist/.setup/{web-search-provider.runtime-DkciK2gS.mjs → web-search-provider.runtime-Cc6vN-2C.mjs} +1 -1
  52. package/dist/catalog-page.worker.js +1 -1
  53. package/dist/harness.js +15 -15
  54. package/dist/index.js +24 -24
  55. package/dist/media-understanding-provider.js +2 -2
  56. package/dist/migration-provider-api.js +1 -1
  57. package/package.json +5 -5
@@ -293,7 +293,7 @@ async function withCodexAppServerJsonClient(params, run) {
293
293
  timeoutMessage,
294
294
  promise: (async () => {
295
295
  const { resolveCodexAppServerDirectSandboxBypassBlock } = await import("./sandbox-guard-Cf9XMRrg.mjs").then((n) => n.r);
296
- const { createIsolatedCodexAppServerClient, getLeasedSharedCodexAppServerClient, isCodexAppServerStartSelectionChangedError, releaseLeasedSharedCodexAppServerClient, retireSharedCodexAppServerClientIfCurrent } = await import("./shared-client-CNGDTv68.mjs").then((n) => n.v);
296
+ const { createIsolatedCodexAppServerClient, getLeasedSharedCodexAppServerClient, isCodexAppServerStartSelectionChangedError, releaseLeasedSharedCodexAppServerClient, retireSharedCodexAppServerClientIfCurrent } = await import("./shared-client-AdQX0Tdq.mjs").then((n) => n.v);
297
297
  for (let attempt = 0; attempt < 2; attempt += 1) {
298
298
  errorPhase = void 0;
299
299
  setPhase("prepare");
@@ -2,13 +2,13 @@ import { n as readCodexRuntimeModelId } from "./model-runtime-BdqzOMkU.mjs";
2
2
  import { g as createCodexNativeSubagentHistoryOwner } from "./native-subagent-pending-assignments-DmVhedNs.mjs";
3
3
  import { i as isJsonObject, r as flattenCodexDynamicToolFunctions } from "./protocol-CANUwXJ3.mjs";
4
4
  import { i as matchesCodexNativeSubagentSubmissionBinding, m as sessionBindingIdentity, n as assertCodexBindingMayBeReplaced } from "./session-binding-record-C2kDBZhx.mjs";
5
- import { n as defineCodexBuildState } from "./build-state-DPMC9C_U.mjs";
5
+ import { n as defineCodexBuildState } from "./build-state-B5mKL-in.mjs";
6
6
  import { c as withMcpElicitationsApprovalPolicy, d as readCodexRequirementsToml, n as hasCodexMcpToolApprovalOverrides, s as shouldAutoApproveCodexAppServerApprovals } from "./config-security-DpkGNy5T.mjs";
7
7
  import { c as isCodexPairedNodeRemoteExecPlacementSandbox, d as readCodexPluginConfig, f as resolveCodexPluginsPolicy, l as isCodexRemoteExecPlacementSandbox, u as isCodexSandboxExecServerEnabled } from "./config-parsing-CVK2Q463.mjs";
8
8
  import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
9
9
  import { t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
10
10
  import { i as resolveCodexAppServerHomeScope, l as resolveCodexModelBackedReviewerPolicyContext, o as resolveCodexComputerUseConfig } from "./config-options-CZmH25Xq.mjs";
11
- import { c as resolveCodexAppServerPreparedApiKeyCacheKey, g as observeAcquire, s as resolveCodexAppServerFallbackApiKeyCacheKey, w as retireSharedCodexAppServerClientIfCurrent } from "./auth-cache-key-CXK7tmkb.mjs";
11
+ import { c as resolveCodexAppServerPreparedApiKeyCacheKey, g as observeAcquire, s as resolveCodexAppServerFallbackApiKeyCacheKey, w as retireSharedCodexAppServerClientIfCurrent } from "./auth-cache-key-DrieYJUQ.mjs";
12
12
  import { o as formatCodexDisplayText } from "./command-formatters-xW9KpoSZ.mjs";
13
13
  import { a as codexPrewriteRejectionCause, i as CodexAppServerScopedRequestRejectedError, r as CodexAppServerRpcError } from "./rpc-error-C98SHchT.mjs";
14
14
  import { n as waitForPromiseOrAbort } from "./timeout-D0mEWSGG.mjs";
@@ -17,49 +17,49 @@ import { i as readCodexProviderRefusal, n as extractRawResponseItemText, o as re
17
17
  import { i as readMirrorIdentity, n as attachCodexMirrorIdentity, t as attachCodexAssistantItemIds } from "./upstream-prompt-provenance-Ccd9MFRJ.mjs";
18
18
  import { n as buildCodexAppServerRuntimeFingerprint, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
19
19
  import { i as resolveCodexBindingAppServerConnection, r as requireCodexSupervisionModelSelection, t as assertCodexSessionRuntimeOwnership } from "./binding-connection-C0t9TBX_.mjs";
20
- import { n as requestCodexAppServerClientJson } from "./request-m-H-7FMu.mjs";
20
+ import { n as requestCodexAppServerClientJson } from "./request-XC1RG34l.mjs";
21
21
  import { n as canUseCodexModelBackedApprovalsReviewerForModel, r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-LQemoqTL.mjs";
22
22
  import { a as isCodexDurableCustomMessage, c as resolveCodexContextEngineProjectionMaxChars, i as fitCodexProjectedContextForTurnStart, l as resolveCodexContinuityProjectionMaxChars, n as CodexContextAttachmentError, o as neutralizeCodexExplicitMentionSigils, r as buildCodexContinuityCalibration, s as projectContextEngineAssemblyForCodex, t as CODEX_TURN_START_TEXT_INPUT_MAX_CHARS, u as resolveProjectionPromptBudgetTokens } from "./context-engine-projection-ps-yn_ci.mjs";
23
23
  import { a as buildCodexMirrorIdempotencyKey, i as buildCodexMirrorDedupeIdentity, s as hasCodexMirrorOrigin, t as applyCodexTranscriptTaint } from "./transcript-mirror-attestation-BzUXnrvv.mjs";
24
24
  import { t as readCodexMirroredSessionHistoryMessages } from "./session-history-BO6i_pfk.mjs";
25
25
  import { i as resolveCodexAppServerAuthProfileIdForAgent, r as resolveCodexAppServerAuthProfileId } from "./auth-profile-CgHQ8Vot.mjs";
26
- import { E as isCodexContextRestartSelectionChangedError, G as protectCodexAppServerLiveThread, I as ensureCodexAppServerClientRuntime, M as getCodexInferenceThreadQualification, Q as readRecentCodexRateLimits, W as prepareCodexWorkspaceReferences, Z as readCodexRateLimitsRevision, _ as retainSharedCodexAppServerClientIfCurrent, _t as withCodexStartupTimeout, a as clearSharedCodexAppServerClientIfCurrentAndUnclaimed, c as getLeasedSharedCodexAppServerClient, dt as CodexAppServerStartupError, f as readCodexAppServerClientDesktopGenerationFingerprint, ft as TURN_FINALIZE_DRAIN_ABORT_GRACE_MS, gt as resolveCodexStartupTimeoutMs, h as releaseLeasedSharedCodexAppServerClient, i as clearSharedCodexAppServerClientIfCurrent, j as getCodexInferenceThread, l as getSharedCodexAppServerClient, nt as resolveCodexAppServerAuthAccountCacheKey, pt as TURN_TERMINAL_SETTLEMENT_TIMEOUT_MS, rt as resolveCodexAppServerPreparedAuthHandoff, s as createIsolatedCodexAppServerClient, u as isCodexAppServerStartSelectionChangedError, w as CodexThreadClientReplacementError, x as CODEX_APP_SERVER_CONTEXT_RESTART_SELECTION_CHANGED } from "./shared-client-CNGDTv68.mjs";
26
+ import { E as isCodexContextRestartSelectionChangedError, G as protectCodexAppServerLiveThread, I as ensureCodexAppServerClientRuntime, M as getCodexInferenceThreadQualification, Q as readRecentCodexRateLimits, W as prepareCodexWorkspaceReferences, Z as readCodexRateLimitsRevision, _ as retainSharedCodexAppServerClientIfCurrent, a as clearSharedCodexAppServerClientIfCurrentAndUnclaimed, at as resolveCodexAppServerPreparedAuthHandoff, c as getLeasedSharedCodexAppServerClient, f as readCodexAppServerClientDesktopGenerationFingerprint, h as releaseLeasedSharedCodexAppServerClient, ht as TURN_TERMINAL_SETTLEMENT_TIMEOUT_MS, i as clearSharedCodexAppServerClientIfCurrent, it as resolveCodexAppServerAuthAccountCacheKey, j as getCodexInferenceThread, l as getSharedCodexAppServerClient, mt as TURN_FINALIZE_DRAIN_ABORT_GRACE_MS, pt as CodexAppServerStartupError, s as createIsolatedCodexAppServerClient, u as isCodexAppServerStartSelectionChangedError, vt as resolveCodexStartupTimeoutMs, w as CodexThreadClientReplacementError, x as CODEX_APP_SERVER_CONTEXT_RESTART_SELECTION_CHANGED, yt as withCodexStartupTimeout } from "./shared-client-AdQX0Tdq.mjs";
27
27
  import { a as isCodexResponsesOAuthRun, r as isCodexResponsesOAuth } from "./responses-oauth-twnuTaAa.mjs";
28
- import { D as toCodexDynamicToolProgressResponse, E as resolveDynamicToolCallTimeoutMs, L as resolveCodexAppServerClientInstanceId, M as readCodexAppServerWarningMessage, O as toCodexDynamicToolProtocolResponse, P as CODEX_APP_SERVER_OPT_OUT_NOTIFICATION_METHODS, T as handleDynamicToolCallWithTimeout, _ as assertCodexTurnStartResponse, a as isCodexAppServerIndeterminateRequestCancellationError, i as isCodexAppServerConnectionClosedError, l as CodexServerRequestResolvedError, o as isCodexAppServerIndeterminateTransportError, r as isCodexAppServerApprovalRequest, w as createCodexElicitationResponse, x as readCodexTurnCompletedNotification, y as readCodexDynamicToolCallParams } from "./client-Div-zqnz.mjs";
28
+ import { D as toCodexDynamicToolProgressResponse, E as resolveDynamicToolCallTimeoutMs, L as resolveCodexAppServerClientInstanceId, M as readCodexAppServerWarningMessage, O as toCodexDynamicToolProtocolResponse, P as CODEX_APP_SERVER_OPT_OUT_NOTIFICATION_METHODS, T as handleDynamicToolCallWithTimeout, _ as assertCodexTurnStartResponse, a as isCodexAppServerIndeterminateRequestCancellationError, i as isCodexAppServerConnectionClosedError, l as CodexServerRequestResolvedError, o as isCodexAppServerIndeterminateTransportError, r as isCodexAppServerApprovalRequest, w as createCodexElicitationResponse, x as readCodexTurnCompletedNotification, y as readCodexDynamicToolCallParams } from "./client-BM97zH3z.mjs";
29
29
  import { n as isCodexWebSocketOpenFailure } from "./transport-websocket-CEBjEtFP.mjs";
30
- import { S as shouldClearTerminalPresentationForNativeItem, _ as itemName, a as isCodexNotificationForTurn, b as matchesCodexSnapshotTurn, i as CodexProjectionDiagnostics, n as getCodexAppServerTurnRouter, o as readCodexNotificationScope, s as readCodexNotificationThreadId, t as CODEX_APP_SERVER_NATIVE_TURN_WAIT_TIMEOUT_MS, x as shouldAdvancePersistableAssistantBarrier } from "./turn-router-DM0fRrYI.mjs";
31
- import { d as terminateCodexBackgroundTerminals, f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError, s as interruptCodexTurnAndWaitBestEffort, u as shouldRetireCodexStartupClient } from "./attempt-client-cleanup-BVww-ct8.mjs";
30
+ import { S as shouldClearTerminalPresentationForNativeItem, _ as itemName, a as isCodexNotificationForTurn, b as matchesCodexSnapshotTurn, i as CodexProjectionDiagnostics, n as getCodexAppServerTurnRouter, o as readCodexNotificationScope, s as readCodexNotificationThreadId, t as CODEX_APP_SERVER_NATIVE_TURN_WAIT_TIMEOUT_MS, x as shouldAdvancePersistableAssistantBarrier } from "./turn-router-DnfbVPvu.mjs";
31
+ import { d as terminateCodexBackgroundTerminals, f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError, s as interruptCodexTurnAndWaitBestEffort, u as shouldRetireCodexStartupClient } from "./attempt-client-cleanup-jWVRH043.mjs";
32
32
  import { r as prepareCodexAppServerAuthBinding } from "./auth-binding-BFTkrP_b.mjs";
33
33
  import { a as isRawFunctionToolOutputCompletionNotification, c as readRawResponseToolCallId, i as isCodexTurnAbortMarkerNotification, l as updateActiveTurnItemIds, o as isTerminalTurnStatus, r as completePendingOpenClawDynamicToolNotification, s as readCodexNotificationItem, t as CodexUsageProjection } from "./event-projector-usage-BpKfdoTm.mjs";
34
- import { n as listAllCodexAppServerModels } from "./models-CusrgpiY.mjs";
34
+ import { n as listAllCodexAppServerModels } from "./models-B65GHU4g.mjs";
35
35
  import { d as mergeCodexThreadConfigs } from "./project-doc-thread-config-D_sWbxFR.mjs";
36
36
  import { B as resolveCodexDynamicToolsLoadingForRuntime, L as isSystemAgentOnlyCodexDynamicToolAllowlist, P as filterCodexDynamicTools, V as joinPresentSections, _ as buildDeveloperInstructions, b as codexDynamicToolsFingerprint, h as resolveCodexWebSearchPlan, k as stabilizeJsonValue, l as isCodexNativeDelegationDisabledForRun, v as areCodexDynamicToolFingerprintsCompatible, w as fingerprintJsonObject, x as codexLegacyDynamicToolsFingerprint } from "./thread-requests-DjyDmCo4.mjs";
37
37
  import { i as resolveCodexSessionBinding, n as createCodexSessionGenerationSupersededError, t as clearCodexBindingForClient } from "./session-binding-BDnNz-Co.mjs";
38
38
  import { i as resolveCodexAppServerThreadModelSelection } from "./thread-model-selection-DcVebr8N.mjs";
39
- import { a as resolveCodexPromptError, i as refreshCodexUsageLimitPromptError, n as formatCodexTurnStartUsageLimitError, r as markCodexAuthProfileBlockedFromRateLimits, t as CodexUsageLimitPromptError } from "./usage-limit-error-ryR1PGou.mjs";
40
- import { c as withExclusiveCodexAppServerThread, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-BBsOFzCM.mjs";
39
+ import { a as resolveCodexPromptError, i as refreshCodexUsageLimitPromptError, n as formatCodexTurnStartUsageLimitError, r as markCodexAuthProfileBlockedFromRateLimits, t as CodexUsageLimitPromptError } from "./usage-limit-error-EoQ7Vl2A.mjs";
40
+ import { c as withExclusiveCodexAppServerThread, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-OXzPB_RV.mjs";
41
41
  import { t as persistCodexContextCompactionActivity } from "./context-compaction-activity-CMla5FPJ.mjs";
42
- import { a as CodexToolTranscriptProjection, c as isCodexCommandBearingToolCall, d as sanitizeCodexToolArguments, i as emitCodexAgentEvent, l as resolveCodexToolProgressDetailMode, o as CodexToolProgressProjection, r as CodexEventProjection, s as shouldEmitTranscriptToolProgress, t as codexNativeSubagentMonitorRuntime, u as sanitizeCodexAgentEventRecord } from "./native-subagent-monitor-CBYFkNsB.mjs";
43
- import { a as requestPluginApprovalOutcome } from "./plugin-approval-roundtrip-CXXXhuKi.mjs";
44
- import { n as CodexThreadPolicyHandoffError, s as restoreCodexThreadInstructionsAfterCompaction } from "./thread-policy-BEiS7ITh.mjs";
42
+ import { a as CodexToolTranscriptProjection, c as isCodexCommandBearingToolCall, d as sanitizeCodexToolArguments, i as emitCodexAgentEvent, l as resolveCodexToolProgressDetailMode, o as CodexToolProgressProjection, r as CodexEventProjection, s as shouldEmitTranscriptToolProgress, t as codexNativeSubagentMonitorRuntime, u as sanitizeCodexAgentEventRecord } from "./native-subagent-monitor-CJaIve3h.mjs";
43
+ import { a as requestPluginApprovalOutcome } from "./plugin-approval-roundtrip-x7UI_uqk.mjs";
44
+ import { n as CodexThreadPolicyHandoffError, s as restoreCodexThreadInstructionsAfterCompaction } from "./thread-policy-Dp4CQjdL.mjs";
45
45
  import { t as attemptTerminal } from "./attempt-terminal-sZutF0WY.mjs";
46
46
  import { a as runCodexAgentEndHook, c as withCodexAppServerFastModeServiceTier, i as reportCodexBackgroundCleanupFailure, n as ensureCodexWorkspaceDirOnce, o as runCodexCleanupStep, r as estimateCodexAppServerProjectedTurnTokens, s as shouldKeepCodexSharedAbortOpen, t as emitCodexAppServerEvent } from "./run-attempt-lifecycle-DN-ATDp9.mjs";
47
47
  import { t as CODEX_INFERENCE_GENERATION_KEY } from "./inference-metadata-DCvcG_N_.mjs";
48
48
  import "./inference-context-DNlGwzwy.mjs";
49
49
  import { i as createAssistantReasoningMessage, n as createAssistantCommentaryMessage, r as createAssistantMessage, t as createAssistantAsyncMessage } from "./event-projector-assistant-message-CLMKN4x-.mjs";
50
- import { a as resolveCodexExternalSandboxPolicyForOpenClawSandbox, c as shouldEnableCodexAppServerNativeToolSurface, i as resolveCodexAppServerHookChannelId, l as shouldRequireCodexSandboxExecServerEnvironment, o as resolveCodexMessageToolProvider, p as mapCodexAppServerRemoteWorkspacePath, r as resolveCodexAppServerExecutionCwd, s as resolveCodexSandboxEnvironmentSelection, t as buildDynamicTools, u as shouldWarnCodexDynamicToolBuildStageSummary } from "./dynamic-tool-build-DjbDZzOJ.mjs";
51
- import { a as buildCodexNativeHookRelayDisabledConfig, d as scheduleCodexNativeHookRelayUnregister, i as buildCodexNativeHookRelayConfig, l as resolveCodexNativeHookRelayEvents, n as CodexManagedHooksOnlyError, r as assertCodexNativeHookRelayAllowed, s as createCodexNativeHookRelay, t as CODEX_NATIVE_HOOK_RELAY_TTL_GRACE_MS, u as resolveCodexNativeHookRelayTtlMs } from "./native-hook-relay-BvwSj5bt.mjs";
52
- import { a as prepareCodexPluginThreadConfigStartupProvider, c as buildLegacyScheduledCodexAppRecoveryPrompt, d as resolveScheduledCodexAppCreatorCaptureDecision, i as isContextEngineBindingCompatible, l as buildScheduledCodexAppServerConnectionIdentity, n as isCodexAppServerProfilerEnabled, o as resolveCodexPluginThreadConfigStartupPolicy, r as buildContextEngineBinding, s as assertScheduledCodexAppAuthorityRuntime, t as startOrResumeThread, u as captureScheduledCodexAppAuthority } from "./thread-lifecycle-run-DjSfTw6v.mjs";
50
+ import { a as resolveCodexExternalSandboxPolicyForOpenClawSandbox, c as shouldEnableCodexAppServerNativeToolSurface, i as resolveCodexAppServerHookChannelId, l as shouldRequireCodexSandboxExecServerEnvironment, o as resolveCodexMessageToolProvider, p as mapCodexAppServerRemoteWorkspacePath, r as resolveCodexAppServerExecutionCwd, s as resolveCodexSandboxEnvironmentSelection, t as buildDynamicTools, u as shouldWarnCodexDynamicToolBuildStageSummary } from "./dynamic-tool-build-Dp4v52Kl.mjs";
51
+ import { a as buildCodexNativeHookRelayDisabledConfig, d as scheduleCodexNativeHookRelayUnregister, i as buildCodexNativeHookRelayConfig, l as resolveCodexNativeHookRelayEvents, n as CodexManagedHooksOnlyError, r as assertCodexNativeHookRelayAllowed, s as createCodexNativeHookRelay, t as CODEX_NATIVE_HOOK_RELAY_TTL_GRACE_MS, u as resolveCodexNativeHookRelayTtlMs } from "./native-hook-relay-Ctyky2Qt.mjs";
52
+ import { a as prepareCodexPluginThreadConfigStartupProvider, c as buildLegacyScheduledCodexAppRecoveryPrompt, d as resolveScheduledCodexAppCreatorCaptureDecision, i as isContextEngineBindingCompatible, l as buildScheduledCodexAppServerConnectionIdentity, n as isCodexAppServerProfilerEnabled, o as resolveCodexPluginThreadConfigStartupPolicy, r as buildContextEngineBinding, s as assertScheduledCodexAppAuthorityRuntime, t as startOrResumeThread, u as captureScheduledCodexAppAuthority } from "./thread-lifecycle-run-DezS4UNT.mjs";
53
53
  import { i as resolveCodexSessionPermissionCwd, n as applyCodexSessionPermissionPolicy, r as resolveCodexEffectiveSessionPermissionPolicy } from "./session-permission-policy-C7kYxPGd.mjs";
54
- import { o as hasCodexNativeToolCatalog, s as loadCodexNativeToolCatalog } from "./native-skill-isolation-Cx2AkUco.mjs";
55
- import { r as prepareCodexNativeMcpFormResourceContext, t as createCodexNativeMcpAppResultDetailsPreparer } from "./native-mcp-app-DDEtVQED.mjs";
56
- import { _ as invalidateCodexComputerFrame, a as handleCodexAppServerApprovalRequest, c as createCodexNativePreToolUseFailureBuffer, f as buildTurnCollaborationMode, g as buildCodexUserInput, h as readCodexRetainedBackgroundCommands, i as createCodexDynamicToolDiagnostics, l as buildCodexHistoryProvenancePrefix, m as CodexNativeProcessAuthority, n as projectCodexExecutableDynamicTools, o as ensureCodexSandboxExecServerEnvironment, p as buildTurnStartParams, r as routeCodexAppServerElicitationRequest, s as releaseCodexSandboxExecServerEnvironment, t as createCodexDynamicToolBridge, u as buildCodexParentLocalInstructions, v as createCodexRemoteWorkspaceFileReader, y as CodexNativeToolLifecycleProjector } from "./dynamic-tools-75qoSOch.mjs";
54
+ import { o as hasCodexNativeToolCatalog, s as loadCodexNativeToolCatalog } from "./native-skill-isolation-C4XYLm33.mjs";
55
+ import { r as prepareCodexNativeMcpFormResourceContext, t as createCodexNativeMcpAppResultDetailsPreparer } from "./native-mcp-app-DprMGBqj.mjs";
56
+ import { _ as invalidateCodexComputerFrame, a as handleCodexAppServerApprovalRequest, c as createCodexNativePreToolUseFailureBuffer, f as buildTurnCollaborationMode, g as buildCodexUserInput, h as readCodexRetainedBackgroundCommands, i as createCodexDynamicToolDiagnostics, l as buildCodexHistoryProvenancePrefix, m as CodexNativeProcessAuthority, n as projectCodexExecutableDynamicTools, o as ensureCodexSandboxExecServerEnvironment, p as buildTurnStartParams, r as routeCodexAppServerElicitationRequest, s as releaseCodexSandboxExecServerEnvironment, t as createCodexDynamicToolBridge, u as buildCodexParentLocalInstructions, v as createCodexRemoteWorkspaceFileReader, y as CodexNativeToolLifecycleProjector } from "./dynamic-tools-C1Egdhrx.mjs";
57
57
  import { c as promptSnapshot, i as mirrorPromptAtTurnStartBestEffort, n as createCodexAppServerUserMessagePersistenceNotifier, o as buildCodexUserPromptMessage, s as buildResolvedCodexUserPromptMessage, t as codexTranscriptMirrorRuntime } from "./transcript-mirror-DVEzdOs0.mjs";
58
58
  import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-V8zuN8q_.mjs";
59
59
  import { a as getCodexContextFileDisplayBasename, i as getCodexContextFileBasename, n as CODEX_NATIVE_PROJECT_DOC_BASENAMES, o as isNonEmptyString, r as buildCodexWorkspaceBootstrapContext, s as normalizeCodexContextFilePath } from "./attempt-workspace-context-BkA0W8Jy.mjs";
60
60
  import { n as captureCodexSettledTurnFinalizationContext } from "./settled-turn-context-BPL6D3RO.mjs";
61
- import { t as resolveCodexProviderWebSearchSupport } from "./provider-capabilities-B-pTlDsf.mjs";
62
- import { a as runCodexComputerUseLiveTest, i as createComputerUseRequest, t as ensureCodexComputerUse } from "./computer-use-BcDrQlxi.mjs";
61
+ import { t as resolveCodexProviderWebSearchSupport } from "./provider-capabilities-BCZeV7xZ.mjs";
62
+ import { a as runCodexComputerUseLiveTest, i as createComputerUseRequest, t as ensureCodexComputerUse } from "./computer-use-CZhx4nNO.mjs";
63
63
  import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString, readNonBlankString, readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
64
64
  import { createHash, randomUUID } from "node:crypto";
65
65
  import { isDeepStrictEqual } from "node:util";
@@ -1558,6 +1558,26 @@ var CodexProjectionSettlement = class extends AgentHarnessProjectionSettlement {
1558
1558
  };
1559
1559
  /** Owns per-turn projection state and builds results from the same state. */
1560
1560
  var CodexTurnProjection = class {
1561
+ /** Materialize terminal native-tool gaps while the durable checkpoint is still open. */
1562
+ prepareTerminalToolResultCheckpoint(toolTelemetry, options) {
1563
+ const retainedCommands = /* @__PURE__ */ new Map();
1564
+ if (!this.aborted && !this.options.runAbortSignal?.aborted && this.completedTurn?.status === "completed" && !this.promptError) {
1565
+ const pending = this.nativeToolLifecycleProjector.pendingCommands();
1566
+ for (const [id, processId] of options?.readRetainedNativeCommands?.() ?? []) if (pending.has(id) && (pending.get(id) === null || pending.get(id) === processId)) retainedCommands.set(id, processId);
1567
+ }
1568
+ this.nativeToolLifecycleProjector.finalizeActive(void 0, retainedCommands);
1569
+ const rawAssistantTexts = toolTelemetry.sourceReplyDelivered ? [] : this.assistantProjection.collectAssistantTexts();
1570
+ const hasDeliverableAssistantOnCompletedTurn = this.completedTurn?.status === "completed" && rawAssistantTexts.some((text) => text.trim().length > 0);
1571
+ const synthesized = this.toolTranscriptProjection.synthesizeMissingToolResults({
1572
+ synthesize: !this.completedTurn || this.completedTurn.status !== "completed" || this.assistantProjection.hasAssistantItemTextForSynthesis(),
1573
+ retainedCommands,
1574
+ terminalDisposition: this.aborted ? "tool_error" : hasDeliverableAssistantOnCompletedTurn ? "diagnostic_only" : "prompt_error"
1575
+ });
1576
+ if (synthesized) {
1577
+ this.synthesizedMissingToolResultError = synthesized;
1578
+ this.promptErrorSource ??= "prompt";
1579
+ }
1580
+ }
1561
1581
  constructor(params, threadId, turnId, options = {}) {
1562
1582
  this.params = params;
1563
1583
  this.threadId = threadId;
@@ -1604,7 +1624,8 @@ var CodexTurnProjection = class {
1604
1624
  }
1605
1625
  buildResult(toolTelemetry, options) {
1606
1626
  this.eventProjection.flushPendingGuardianWarning();
1607
- const { params: runParams, turnId, completedTurn, aborted, contextTokens, contextTokensSource, completedCompactionCount, synthesizedMissingToolResultError: previousMissingToolResultError, promptError: initialPromptError, promptErrorSource: initialPromptErrorSource, providerRefusal } = this;
1627
+ this.prepareTerminalToolResultCheckpoint(toolTelemetry, options);
1628
+ const { params: runParams, turnId, completedTurn, aborted, contextTokens, contextTokensSource, completedCompactionCount, synthesizedMissingToolResultError, promptError: initialPromptError, promptErrorSource: initialPromptErrorSource, providerRefusal } = this;
1608
1629
  const upstreamUserText = this.options.upstreamUserText;
1609
1630
  const turnTainted = this.settlement.turnTainted;
1610
1631
  const observedItemCount = (/* @__PURE__ */ new Set([...this.observedItemIds, ...this.completedItemIds])).size;
@@ -1612,12 +1633,6 @@ var CodexTurnProjection = class {
1612
1633
  const completedItemCount = this.completedItemIds.size;
1613
1634
  const guardianReviewCount = this.eventProjection.guardianReviewCount;
1614
1635
  const yieldDetected = options?.yieldDetected;
1615
- const retainedCommands = /* @__PURE__ */ new Map();
1616
- if (!aborted && !this.options.runAbortSignal?.aborted && completedTurn?.status === "completed" && !initialPromptError) {
1617
- const pending = this.nativeToolLifecycleProjector.pendingCommands();
1618
- for (const [id, processId] of options?.readRetainedNativeCommands?.() ?? []) if (pending.has(id) && (pending.get(id) === null || pending.get(id) === processId)) retainedCommands.set(id, processId);
1619
- }
1620
- this.nativeToolLifecycleProjector.finalizeActive(void 0, retainedCommands);
1621
1636
  const assistantTexts = this.assistantProjection.collectAssistantTexts();
1622
1637
  const asyncMessages = this.assistantProjection.collectAsyncMessages();
1623
1638
  const commentaryMessages = this.assistantProjection.collectCommentaryMessages();
@@ -1628,20 +1643,8 @@ var CodexTurnProjection = class {
1628
1643
  ...usage,
1629
1644
  contextUsage: { state: "unavailable" }
1630
1645
  } : usage;
1631
- const hasAssistantItemText = this.assistantProjection.hasAssistantItemTextForSynthesis();
1632
- const legacyFailClosed = !completedTurn || completedTurn.status !== "completed" || hasAssistantItemText;
1633
- const hasDeliverableAssistantOnCompletedTurn = completedTurn?.status === "completed" && assistantTexts.some((text) => text.trim().length > 0);
1634
- const synthesizedMissingToolResultError = this.toolTranscriptProjection.synthesizeMissingToolResults({
1635
- synthesize: legacyFailClosed,
1636
- retainedCommands,
1637
- terminalDisposition: aborted ? "tool_error" : hasDeliverableAssistantOnCompletedTurn ? "diagnostic_only" : "prompt_error"
1638
- });
1639
- const storedMissingToolResultError = synthesizedMissingToolResultError ?? previousMissingToolResultError;
1640
- let promptErrorSource = initialPromptErrorSource;
1641
- if (synthesizedMissingToolResultError) {
1642
- this.synthesizedMissingToolResultError = synthesizedMissingToolResultError;
1643
- promptErrorSource = promptErrorSource ?? "prompt";
1644
- }
1646
+ const storedMissingToolResultError = synthesizedMissingToolResultError;
1647
+ const promptErrorSource = initialPromptErrorSource;
1645
1648
  const assistantMessageOptions = {
1646
1649
  tokenUsage: projectedUsage,
1647
1650
  aborted,
@@ -1755,15 +1758,16 @@ var CodexAppServerEventProjector = class extends CodexTurnProjection {
1755
1758
  return !this.projectionClosed && !this.aborted && !this.options.runAbortSignal?.aborted && this.completedTurn?.status === "completed" && !this.promptError ? this.nativeToolLifecycleProjector.pendingCommands() : /* @__PURE__ */ new Map();
1756
1759
  }
1757
1760
  /** Native completion owns the answer independently of unfinished host projection. */
1758
- recoverCompletedAnswer() {
1761
+ recoverCompletedAnswer(toolTelemetry, options) {
1759
1762
  const completed = this.settlement.completedAnswer;
1760
1763
  if (!completed || this.aborted || this.promptError) return false;
1761
- this.closeCompactionProgress();
1762
- this.projectionController.abort();
1763
- this.transcriptCheckpoint.abandon();
1764
1764
  this.completedTurn = completed.turn;
1765
1765
  this.assistantProjection.recordItemCompleted(completed.answer);
1766
1766
  this.assistantProjection.finalizeAnswerCandidate(completed.turn);
1767
+ this.prepareTerminalToolResultCheckpoint(toolTelemetry, options);
1768
+ this.closeCompactionProgress();
1769
+ this.projectionController.abort();
1770
+ this.transcriptCheckpoint.abandon();
1767
1771
  return true;
1768
1772
  }
1769
1773
  getActiveMcpToolCall(serverName) {
@@ -2989,6 +2993,7 @@ async function cleanupCodexAttempt(resources, turnRuntime, lifecycle, requestRun
2989
2993
  resourceState.releaseInferenceContext = void 0;
2990
2994
  prompt.context.attemptTools.scheduledAppAuthoritySourceRef.current = void 0;
2991
2995
  freezeRunTerminalOutcome();
2996
+ if (!state.projectionClosed) activeTurn.activeProjector.prepareTerminalToolResultCheckpoint(prompt.context.attemptTools.toolBridge.telemetry);
2992
2997
  const projectionClose = state.projectionClosed ? void 0 : activeTurn.activeProjector.closeProjection();
2993
2998
  state.projectionClosed = true;
2994
2999
  const checkpointCleanup = projectionClose ? runCleanupStep("codex-transcript-checkpoint", () => projectionClose) : void 0;
@@ -4351,6 +4356,7 @@ async function beginCodexAttemptSettlement(resources, turnRuntime, notifications
4351
4356
  const { state: resourceState } = resources;
4352
4357
  const { connection } = resources.prompt.context.runtime;
4353
4358
  const { params, runAbortController, appServer } = connection;
4359
+ const { toolBridge } = resources.prompt.context.attemptTools;
4354
4360
  const { state, deadlines, settlementExpired } = turnRuntime;
4355
4361
  const { drainNotificationQueue } = notifications;
4356
4362
  const { activeProjector, activeTurnId } = activeTurn;
@@ -4404,6 +4410,7 @@ async function beginCodexAttemptSettlement(resources, turnRuntime, notifications
4404
4410
  return /* @__PURE__ */ new Map();
4405
4411
  }
4406
4412
  };
4413
+ state.readRetainedNativeCommands = readRetainedNativeCommands;
4407
4414
  } catch (error) {
4408
4415
  embeddedAgentLog.debug("could not confirm retained native commands", {
4409
4416
  threadId: resourceState.thread.threadId,
@@ -4412,6 +4419,7 @@ async function beginCodexAttemptSettlement(resources, turnRuntime, notifications
4412
4419
  }
4413
4420
  await drainNotificationQueue();
4414
4421
  }
4422
+ activeProjector.prepareTerminalToolResultCheckpoint(toolBridge.telemetry, { readRetainedNativeCommands: () => readRetainedNativeCommands?.() ?? /* @__PURE__ */ new Map() });
4415
4423
  await closeProjection();
4416
4424
  await activeProjector.settlement.drain();
4417
4425
  }),
@@ -4549,7 +4557,10 @@ async function finalizeCodexAttempt(resources, turnRuntime, lifecycle, notificat
4549
4557
  ]);
4550
4558
  if (runAbortController.signal.aborted) await state.abortCleanup;
4551
4559
  } finally {
4552
- if (!state.projectionClosed) await resources.runCleanupStep("codex-transcript-checkpoint", closeProjection);
4560
+ if (!state.projectionClosed) {
4561
+ activeProjector.prepareTerminalToolResultCheckpoint(toolBridge.telemetry, { readRetainedNativeCommands });
4562
+ await resources.runCleanupStep("codex-transcript-checkpoint", closeProjection);
4563
+ }
4553
4564
  }
4554
4565
  const result = activeProjector.buildResult(toolBridge.telemetry, {
4555
4566
  yieldDetected: toolState.yieldDetected,
@@ -8477,7 +8488,7 @@ function createCodexAttemptTurnState(resources) {
8477
8488
  onDeadlineChanged: params.onAttemptDeadlineChanged,
8478
8489
  onTimeout: (timeout) => {
8479
8490
  const pendingStage = state.pendingSettlementStage ?? projectorRef.current?.settlement.pendingStage ?? "notification_queue";
8480
- if (timeout.kind === "settlement" && projectorRef.current?.recoverCompletedAnswer()) {
8491
+ if (timeout.kind === "settlement" && projectorRef.current?.recoverCompletedAnswer(prompt.context.attemptTools.toolBridge.telemetry, { readRetainedNativeCommands: state.readRetainedNativeCommands })) {
8481
8492
  state.settlementWarning = {
8482
8493
  pendingStage,
8483
8494
  elapsedMs: timeout.elapsedMs,
@@ -1,11 +1,11 @@
1
1
  import { c as MAX_CWD_LENGTH, d as boundedCatalogString } from "./session-catalog-parsing-B4OyhylL.mjs";
2
- import { n as defineCodexBuildState } from "./build-state-DPMC9C_U.mjs";
2
+ import { n as defineCodexBuildState } from "./build-state-B5mKL-in.mjs";
3
3
  import { r as inferCodexAppServerConnectionClass } from "./config-security-DpkGNy5T.mjs";
4
4
  import { n as resolveCodexAppServerLocalHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
5
5
  import { n as codexCatalogHomeIdFromCanonicalPath } from "./session-catalog-home-id-vlih0B_g.mjs";
6
6
  import { t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
7
- import { n as codexCatalogSourceForClient, o as observeCodexCatalogEphemeralThreads } from "./session-catalog-source-Xt6-hNns.mjs";
8
- import { r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-BJupfCyt.mjs";
7
+ import { n as codexCatalogSourceForClient, o as observeCodexCatalogEphemeralThreads } from "./session-catalog-source-CfIBVrbT.mjs";
8
+ import { r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-BYV0ICja.mjs";
9
9
  import { createHash } from "node:crypto";
10
10
  import { embeddedAgentLog } from "openclaw/plugin-sdk/agent-harness-registration";
11
11
  import path from "node:path";
@@ -2,11 +2,11 @@ import { S as readControlCursor, _ as normalizeLimit, c as MAX_CWD_LENGTH, d as
2
2
  import { n as detachCodexCatalogString, t as CODEX_CATALOG_MAX_ROWS } from "./session-catalog-limits-Daqt3JLk.mjs";
3
3
  import { i as retainCodexCatalogRow, n as codexCatalogRowRecency, r as compareCodexCatalogRows, t as CodexCatalogOrdering } from "./session-catalog-index-order-B30rjUEJ.mjs";
4
4
  import { c as CodexCatalogPersistence, i as CodexCatalogAvailability, l as codexCatalogMetadataPage, r as withCodexCatalogListRequest } from "./session-catalog-list-request-SJyGz02j.mjs";
5
- import { a as hasLiveCodexCatalogSource, c as setCodexCatalogSource, i as getCodexCatalogSource } from "./session-catalog-source-Xt6-hNns.mjs";
6
- import { r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-BJupfCyt.mjs";
7
- import { i as subscribeCodexCatalogEvents } from "./session-catalog-events-BBV3DMG7.mjs";
5
+ import { a as hasLiveCodexCatalogSource, c as setCodexCatalogSource, i as getCodexCatalogSource } from "./session-catalog-source-CfIBVrbT.mjs";
6
+ import { r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-BYV0ICja.mjs";
7
+ import { i as subscribeCodexCatalogEvents } from "./session-catalog-events-CpEyDv0D.mjs";
8
8
  import { a as reportCodexCatalogSpawnFailure, n as findCodexAppServerSpawnError } from "./spawn-error-CL3n6MAa.mjs";
9
- import { CodexCatalogProjectionCapacityError, CodexCatalogProjections, mergeCodexCatalogRolloutRow, n as readCodexCatalogRollout, projectCodexCatalogPage, r as resolveCodexCatalogRolloutFingerprint, t as codexCatalogRolloutLogicalPath } from "./session-catalog-projection-CYgFTaYm.mjs";
9
+ import { CodexCatalogProjectionCapacityError, CodexCatalogProjections, mergeCodexCatalogRolloutRow, n as readCodexCatalogRollout, projectCodexCatalogPage, r as resolveCodexCatalogRolloutFingerprint, t as codexCatalogRolloutLogicalPath } from "./session-catalog-projection-B0IyXrHt.mjs";
10
10
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
11
11
  import { createHash } from "node:crypto";
12
12
  import { isDeepStrictEqual } from "node:util";
@@ -1,7 +1,7 @@
1
1
  import { D as selectCodexCatalogPreviewInput, c as MAX_CWD_LENGTH, d as boundedCatalogString, k as truncateCodexCatalogPreview } from "./session-catalog-parsing-B4OyhylL.mjs";
2
2
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
3
3
  import { n as detachCodexCatalogString } from "./session-catalog-limits-Daqt3JLk.mjs";
4
- import { r as copyCodexCatalogSource } from "./session-catalog-source-Xt6-hNns.mjs";
4
+ import { r as copyCodexCatalogSource } from "./session-catalog-source-CfIBVrbT.mjs";
5
5
  import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";
6
6
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
7
7
  //#region extensions/codex/src/session-catalog-native-projection.ts
@@ -2,7 +2,7 @@ import { D as selectCodexCatalogPreviewInput, O as toCatalogSession, S as readCo
2
2
  import { n as detachCodexCatalogString } from "./session-catalog-limits-Daqt3JLk.mjs";
3
3
  import { n as codexCatalogRowRecency } from "./session-catalog-index-order-B30rjUEJ.mjs";
4
4
  import { t as isOpenClawManagedCodexThread } from "./session-catalog-provenance-CmsOE5mh.mjs";
5
- import { c as setCodexCatalogSource, i as getCodexCatalogSource, r as copyCodexCatalogSource } from "./session-catalog-source-Xt6-hNns.mjs";
5
+ import { c as setCodexCatalogSource, i as getCodexCatalogSource, r as copyCodexCatalogSource } from "./session-catalog-source-CfIBVrbT.mjs";
6
6
  import { asFiniteNumber, isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { n as defineCodexBuildState } from "./build-state-DPMC9C_U.mjs";
1
+ import { n as defineCodexBuildState } from "./build-state-B5mKL-in.mjs";
2
2
  //#region extensions/codex/src/session-catalog-source.ts
3
3
  function hasLiveCodexCatalogSource(sources) {
4
4
  for (const source of sources) if (!source.closed) return true;
@@ -1,9 +1,9 @@
1
- import { S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-CXK7tmkb.mjs";
1
+ import { S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-DrieYJUQ.mjs";
2
2
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-CeyYScUC.mjs";
3
- import { H as isCodexAppServerLiveThreadClaimed, R as hasCodexAppServerLiveThread, q as releaseCodexAppServerLiveThread } from "./shared-client-CNGDTv68.mjs";
4
- import { f as unsubscribeCodexThreadBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-BVww-ct8.mjs";
5
- import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-BBsOFzCM.mjs";
6
- import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-CBYFkNsB.mjs";
3
+ import { H as isCodexAppServerLiveThreadClaimed, R as hasCodexAppServerLiveThread, q as releaseCodexAppServerLiveThread } from "./shared-client-AdQX0Tdq.mjs";
4
+ import { f as unsubscribeCodexThreadBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-jWVRH043.mjs";
5
+ import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-OXzPB_RV.mjs";
6
+ import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-CJaIve3h.mjs";
7
7
  import { t as getCodexSessionInitializationRollback } from "./session-initialization-BjVtsTzi.mjs";
8
8
  import { isIncognitoSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
9
9
  import { isNativeSessionDeletionUnresolved, wrapNativeSessionDeletionMutation } from "openclaw/plugin-sdk/agent-harness-session-runtime";
@@ -1,8 +1,8 @@
1
1
  import { i as readMirrorIdentity, n as attachCodexMirrorIdentity } from "./upstream-prompt-provenance-Ccd9MFRJ.mjs";
2
2
  import { l as readCodexMirrorSourceFingerprint, o as fingerprintCodexMirrorSourceMessage } from "./transcript-mirror-attestation-BzUXnrvv.mjs";
3
- import { rt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-CNGDTv68.mjs";
4
- import { f as assertCodexPassiveTurnItems } from "./client-Div-zqnz.mjs";
5
- import { runBoundedCodexAppServerTurn } from "./bounded-turn-vdpL2efh.mjs";
3
+ import { at as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-AdQX0Tdq.mjs";
4
+ import { f as assertCodexPassiveTurnItems } from "./client-BM97zH3z.mjs";
5
+ import { runBoundedCodexAppServerTurn } from "./bounded-turn-s9yVsxaM.mjs";
6
6
  import { t as resolveCodexLocalRuntimeAttribution } from "./local-runtime-attribution-CZz2DJ4q.mjs";
7
7
  import { t as resolveCodexBoundedTurnIsolation } from "./bounded-turn-isolation-CIQJykuM.mjs";
8
8
  import { a as createAttributedCodexAssistantMessage } from "./event-projector-assistant-message-CLMKN4x-.mjs";
@@ -1,21 +1,21 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
- import { n as defineCodexBuildState, t as codexBuildSymbol } from "./build-state-DPMC9C_U.mjs";
2
+ import { n as defineCodexBuildState, t as codexBuildSymbol } from "./build-state-B5mKL-in.mjs";
3
3
  import { t as CODEX_APP_SERVER_AUTH_PROVIDER } from "./auth-profile-selection-hr8ocLtz.mjs";
4
4
  import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
5
5
  import { a as withEphemeralCodexAuthStore, i as withClearedEnvironmentVariables, n as resolveCodexAppServerLocalHomeDir, r as resolveCodexAppServerUserHomeDir, t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
6
6
  import { a as resolveCodexAppServerStartOptionsForAgent, d as readCodexEffectiveConfig, o as resolveCodexComputerUseConfig, t as codexAppServerStartOptionsKey, u as CODEX_SESSION_OVERRIDABLE_LAYER_TYPES } from "./config-options-CZmH25Xq.mjs";
7
7
  import { d as resolveMacOSDesktopCodexBundledMarketplaceCandidates, f as resolveMacOSDesktopCodexComputerUseServiceAppCandidates, i as resolveManagedCodexNativeCommand, l as resolveFirstExistingMacOSDesktopCodexBundledMarketplacePath, r as resolveManagedCodexAppServerStartOptions, t as isManagedCodexDesktopCommand, u as resolveMacOSDesktopCodexAppPathCandidates } from "./managed-binary-DwC9wxch.mjs";
8
- import { A as waitForCodexDesktopGeneration, C as retirePendingSharedClientEntryIfUnclaimed, D as waitForUnclaimedSharedClientStartup, _ as observeSharedClientAcquire, a as readCodexCliAuthFileApiKey, b as releaseSharedClientEntry, c as resolveCodexAppServerPreparedApiKeyCacheKey, d as getCurrentSharedClientEntry, f as getOrCreateSharedClientEntry, g as observeAcquire, h as notifyDesktopGenerationDrainChecks, i as fingerprintTokenAuthProfileCacheKey, j as readCodexDesktopArtifactTreeFingerprint, k as isCodexDesktopGenerationCurrent, l as closeSharedClientEntryIfUnclaimed, n as CODEX_AUTH_JSON_FILENAME, o as readFirstNonEmptyEnv, p as getSharedCodexAppServerClientState, r as fingerprintApiKeyAuthProfileCacheKey, s as resolveCodexAppServerFallbackApiKeyCacheKey, t as CODEX_APP_SERVER_API_KEY_ENV_VARS, u as createCodexAppServerStartupLifetime, v as ownCodexStartup, w as retireSharedCodexAppServerClientIfCurrent, x as retainSharedClientEntry, y as recordSharedClientAcquireBoundary } from "./auth-cache-key-CXK7tmkb.mjs";
8
+ import { A as waitForCodexDesktopGeneration, C as retirePendingSharedClientEntryIfUnclaimed, D as waitForUnclaimedSharedClientStartup, _ as observeSharedClientAcquire, a as readCodexCliAuthFileApiKey, b as releaseSharedClientEntry, c as resolveCodexAppServerPreparedApiKeyCacheKey, d as getCurrentSharedClientEntry, f as getOrCreateSharedClientEntry, g as observeAcquire, h as notifyDesktopGenerationDrainChecks, i as fingerprintTokenAuthProfileCacheKey, j as readCodexDesktopArtifactTreeFingerprint, k as isCodexDesktopGenerationCurrent, l as closeSharedClientEntryIfUnclaimed, n as CODEX_AUTH_JSON_FILENAME, o as readFirstNonEmptyEnv, p as getSharedCodexAppServerClientState, r as fingerprintApiKeyAuthProfileCacheKey, s as resolveCodexAppServerFallbackApiKeyCacheKey, t as CODEX_APP_SERVER_API_KEY_ENV_VARS, u as createCodexAppServerStartupLifetime, v as ownCodexStartup, w as retireSharedCodexAppServerClientIfCurrent, x as retainSharedClientEntry, y as recordSharedClientAcquireBoundary } from "./auth-cache-key-DrieYJUQ.mjs";
9
9
  import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-lgeKKHyw.mjs";
10
10
  import { n as CodexAppServerAuthProfileUnavailableError, r as formatCodexAuthProfileUnavailableMessage } from "./auth-profile-recovery-BREezV0L.mjs";
11
11
  import { a as codexPrewriteRejectionCause } from "./rpc-error-C98SHchT.mjs";
12
12
  import { i as withTimeout } from "./timeout-D0mEWSGG.mjs";
13
13
  import { n as readCodexSessionMeta } from "./session-catalog-provenance-CmsOE5mh.mjs";
14
- import { n as observeCodexCatalogClient } from "./session-catalog-events-BBV3DMG7.mjs";
14
+ import { n as observeCodexCatalogClient } from "./session-catalog-events-CpEyDv0D.mjs";
15
15
  import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
16
16
  import { a as resolveCodexAppServerAuthProfileStore, i as resolveCodexAppServerAuthProfileIdForAgent, r as resolveCodexAppServerAuthProfileId, t as isCodexAppServerNativeAuthProfile } from "./auth-profile-CgHQ8Vot.mjs";
17
17
  import { i as isCodexResponsesOAuthCredential, n as createCodexResponsesOAuth, o as resolveCodexResponsesOAuthProfileFingerprint, r as isCodexResponsesOAuth, t as CODEX_RESPONSES_OAUTH_PROVIDER } from "./responses-oauth-twnuTaAa.mjs";
18
- import { N as isUnsupportedCodexAppServerVersionError, t as CodexAppServerClient } from "./client-Div-zqnz.mjs";
18
+ import { N as isUnsupportedCodexAppServerVersionError, t as CodexAppServerClient } from "./client-BM97zH3z.mjs";
19
19
  import { n as isCodexWebSocketOpenFailure } from "./transport-websocket-CEBjEtFP.mjs";
20
20
  import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";
21
21
  import { asOptionalRecord, isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -1560,6 +1560,47 @@ function resolveExplicitChatgptAccountId(credential) {
1560
1560
  return "accountId" in credential && typeof credential.accountId === "string" ? credential.accountId.trim() || void 0 : void 0;
1561
1561
  }
1562
1562
  //#endregion
1563
+ //#region extensions/codex/src/app-server/client-thread-closure.ts
1564
+ const MAX_CLOSED_THREAD_RECEIPTS = 256;
1565
+ const THREAD_TERMINAL_NOTIFICATION_METHODS = /* @__PURE__ */ new Set([
1566
+ "thread/archived",
1567
+ "thread/deleted",
1568
+ "thread/closed"
1569
+ ]);
1570
+ const closureState = defineCodexBuildState("openclaw.codexAppServerClosedThreads", () => ({
1571
+ closedThreadsByClient: /* @__PURE__ */ new WeakMap(),
1572
+ observedClients: /* @__PURE__ */ new WeakSet()
1573
+ }))();
1574
+ function recordCodexAppServerThreadClosed(client, threadId) {
1575
+ const receipts = closureState.closedThreadsByClient.get(client) ?? /* @__PURE__ */ new Set();
1576
+ receipts.delete(threadId);
1577
+ receipts.add(threadId);
1578
+ while (receipts.size > MAX_CLOSED_THREAD_RECEIPTS) {
1579
+ const oldestThreadId = receipts.values().next().value;
1580
+ if (oldestThreadId === void 0) break;
1581
+ receipts.delete(oldestThreadId);
1582
+ }
1583
+ closureState.closedThreadsByClient.set(client, receipts);
1584
+ }
1585
+ function isCodexAppServerThreadTerminalNotification(method) {
1586
+ return THREAD_TERMINAL_NOTIFICATION_METHODS.has(method);
1587
+ }
1588
+ function ensureCodexAppServerThreadClosureTracking(client) {
1589
+ if (closureState.observedClients.has(client)) return;
1590
+ closureState.observedClients.add(client);
1591
+ client.addNotificationHandler((notification) => {
1592
+ const threadId = notification.params && typeof notification.params === "object" ? Reflect.get(notification.params, "threadId") : void 0;
1593
+ if (isCodexAppServerThreadTerminalNotification(notification.method) && typeof threadId === "string") recordCodexAppServerThreadClosed(client, threadId);
1594
+ });
1595
+ client.addCloseHandler(() => closureState.closedThreadsByClient.delete(client));
1596
+ }
1597
+ function clearCodexAppServerThreadClosed(client, threadId) {
1598
+ closureState.closedThreadsByClient.get(client)?.delete(threadId);
1599
+ }
1600
+ function wasCodexAppServerThreadClosed(client, threadId) {
1601
+ return closureState.closedThreadsByClient.get(client)?.has(threadId) === true;
1602
+ }
1603
+ //#endregion
1563
1604
  //#region extensions/codex/src/app-server/client-thread-owner.ts
1564
1605
  /** Background custody can survive projection replacement only under its creation policy. */
1565
1606
  function isThreadBackgroundOnly(runtime, threadId, configFingerprint) {
@@ -1860,6 +1901,7 @@ function ensureCodexAppServerClientRuntime(client, context) {
1860
1901
  workspaceReferences: /* @__PURE__ */ new Map()
1861
1902
  };
1862
1903
  configuredClients.set(client, runtime);
1904
+ ensureCodexAppServerThreadClosureTracking(client);
1863
1905
  client.addCloseHandler(() => {
1864
1906
  runtime.closed = true;
1865
1907
  clearTimeout(runtime.evictionTimer);
@@ -2007,6 +2049,7 @@ async function retainCodexAppServerLiveThread(client, threadId, releaseThread, c
2007
2049
  return false;
2008
2050
  }
2009
2051
  const previousOwner = runtime.retainedThreads.get(threadId)?.ownerToken;
2052
+ clearCodexAppServerThreadClosed(client, threadId);
2010
2053
  runtime.retainedThreads.delete(threadId);
2011
2054
  const retained = {
2012
2055
  ownerToken,
@@ -2498,7 +2541,7 @@ async function prepareCodexInferenceRoute(params) {
2498
2541
  }
2499
2542
  pending = Promise.all([
2500
2543
  import("./inference-proxy-DSnaS-uS.mjs"),
2501
- import("./native-subagent-monitor-CBYFkNsB.mjs").then((n) => n.n),
2544
+ import("./native-subagent-monitor-CJaIve3h.mjs").then((n) => n.n),
2502
2545
  import("./inference-dispatch-CO6tTs4q.mjs")
2503
2546
  ]).then(([{ createCodexInferenceProxy }, native, { createCodexInferenceModelBinding }]) => {
2504
2547
  assertClient();
@@ -3567,4 +3610,4 @@ function clearSharedCodexAppServerClientIfCurrentAndUnclaimed(client) {
3567
3610
  };
3568
3611
  }
3569
3612
  //#endregion
3570
- export { rememberCodexRateLimitsRead as $, bindCodexInferenceThread as A, isCodexAppServerClientRuntimeLive as B, CodexThreadBindingConflictError as C, nativeHookRelayUnregisterQueue as D, isCodexContextRestartSelectionChangedError as E, consumeCodexAppServerLiveThread as F, protectCodexAppServerLiveThread as G, isCodexAppServerLiveThreadClaimed as H, ensureCodexAppServerClientRuntime as I, retainCodexAppServerLiveThread as J, readCodexClientSessionMeta as K, forgetCodexWorkspaceReferences as L, getCodexInferenceThreadQualification as M, prepareCodexInferenceThreadConfig as N, acquireCodexNativeConfigFence as O, claimCodexAppServerLiveThread as P, readRecentCodexRateLimits as Q, hasCodexAppServerLiveThread as R, CodexAdoptedThreadActiveError as S, CodexThreadStartRequestError as T, isCodexAppServerLiveThreadProtected as U, isCodexAppServerLiveThreadBackgroundOnly as V, prepareCodexWorkspaceReferences as W, unsubscribeCodexAppServerLiveThread as X, revertCodexAppServerLiveThreadInstructions as Y, readCodexRateLimitsRevision as Z, retainSharedCodexAppServerClientIfCurrent as _, withCodexStartupTimeout as _t, clearSharedCodexAppServerClientIfCurrentAndUnclaimed as a, resolveClientManagedBundledMarketplacePath as at, withLeasedCodexAppServerClientStartSelectionRetry as b, getLeasedSharedCodexAppServerClient as c, resolveManagedCodexComputerUseConfig as ct, readCodexAppServerClientDesktopGeneration as d, CodexAppServerStartupError as dt, createCodexEphemeralThreadPolicy as et, readCodexAppServerClientDesktopGenerationFingerprint as f, TURN_FINALIZE_DRAIN_ABORT_GRACE_MS as ft, resolveCodexNativeConfigFenceKey as g, resolveCodexStartupTimeoutMs as gt, releaseLeasedSharedCodexAppServerClient as h, resolveCodexGatewayTimeoutWithGraceMs as ht, clearSharedCodexAppServerClientIfCurrent as i, resolveBundledComputerUseMarketplacePath as it, getCodexInferenceThread as j, assertCodexInferenceRouteConfig as k, getSharedCodexAppServerClient as l, ensureCodexComputerUseSharedPluginCache as lt, releaseCodexAppServerClientLease as m, isCodexAppServerStartupError as mt, captureCodexAppServerClientLifetime as n, resolveCodexAppServerAuthAccountCacheKey as nt, clearSharedCodexAppServerClientIfCurrentAndWait as o, hasLegacyCodexComputerUseMcpPolicy as ot, readCodexAppServerClientProcessIdentity as p, TURN_TERMINAL_SETTLEMENT_TIMEOUT_MS as pt, releaseCodexAppServerLiveThread as q, captureSharedCodexAppServerCatalogLifetime as r, resolveCodexAppServerPreparedAuthHandoff as rt, createIsolatedCodexAppServerClient as s, isLegacyCodexComputerUsePluginDisabled as st, assertCodexAppServerClientStartSelectionCurrent as t, reconcileCodexComputerUseStartArtifacts as tt, isCodexAppServerStartSelectionChangedError as u, assertNotSymlink as ut, shared_client_exports as v, CodexThreadClientReplacementError as w, CODEX_APP_SERVER_CONTEXT_RESTART_SELECTION_CHANGED as x, waitForCodexAppServerClientDesktopGenerationDrain as y, hasCodexAppServerSiblingThreadWork as z };
3613
+ export { rememberCodexRateLimitsRead as $, bindCodexInferenceThread as A, isCodexAppServerClientRuntimeLive as B, CodexThreadBindingConflictError as C, nativeHookRelayUnregisterQueue as D, isCodexContextRestartSelectionChangedError as E, consumeCodexAppServerLiveThread as F, protectCodexAppServerLiveThread as G, isCodexAppServerLiveThreadClaimed as H, ensureCodexAppServerClientRuntime as I, retainCodexAppServerLiveThread as J, readCodexClientSessionMeta as K, forgetCodexWorkspaceReferences as L, getCodexInferenceThreadQualification as M, prepareCodexInferenceThreadConfig as N, acquireCodexNativeConfigFence as O, claimCodexAppServerLiveThread as P, readRecentCodexRateLimits as Q, hasCodexAppServerLiveThread as R, CodexAdoptedThreadActiveError as S, CodexThreadStartRequestError as T, isCodexAppServerLiveThreadProtected as U, isCodexAppServerLiveThreadBackgroundOnly as V, prepareCodexWorkspaceReferences as W, unsubscribeCodexAppServerLiveThread as X, revertCodexAppServerLiveThreadInstructions as Y, readCodexRateLimitsRevision as Z, retainSharedCodexAppServerClientIfCurrent as _, resolveCodexGatewayTimeoutWithGraceMs as _t, clearSharedCodexAppServerClientIfCurrentAndUnclaimed as a, resolveCodexAppServerPreparedAuthHandoff as at, withLeasedCodexAppServerClientStartSelectionRetry as b, getLeasedSharedCodexAppServerClient as c, hasLegacyCodexComputerUseMcpPolicy as ct, readCodexAppServerClientDesktopGeneration as d, ensureCodexComputerUseSharedPluginCache as dt, createCodexEphemeralThreadPolicy as et, readCodexAppServerClientDesktopGenerationFingerprint as f, assertNotSymlink as ft, resolveCodexNativeConfigFenceKey as g, isCodexAppServerStartupError as gt, releaseLeasedSharedCodexAppServerClient as h, TURN_TERMINAL_SETTLEMENT_TIMEOUT_MS as ht, clearSharedCodexAppServerClientIfCurrent as i, resolveCodexAppServerAuthAccountCacheKey as it, getCodexInferenceThread as j, assertCodexInferenceRouteConfig as k, getSharedCodexAppServerClient as l, isLegacyCodexComputerUsePluginDisabled as lt, releaseCodexAppServerClientLease as m, TURN_FINALIZE_DRAIN_ABORT_GRACE_MS as mt, captureCodexAppServerClientLifetime as n, wasCodexAppServerThreadClosed as nt, clearSharedCodexAppServerClientIfCurrentAndWait as o, resolveBundledComputerUseMarketplacePath as ot, readCodexAppServerClientProcessIdentity as p, CodexAppServerStartupError as pt, releaseCodexAppServerLiveThread as q, captureSharedCodexAppServerCatalogLifetime as r, reconcileCodexComputerUseStartArtifacts as rt, createIsolatedCodexAppServerClient as s, resolveClientManagedBundledMarketplacePath as st, assertCodexAppServerClientStartSelectionCurrent as t, isCodexAppServerThreadTerminalNotification as tt, isCodexAppServerStartSelectionChangedError as u, resolveManagedCodexComputerUseConfig as ut, shared_client_exports as v, resolveCodexStartupTimeoutMs as vt, CodexThreadClientReplacementError as w, CODEX_APP_SERVER_CONTEXT_RESTART_SELECTION_CHANGED as x, waitForCodexAppServerClientDesktopGenerationDrain as y, withCodexStartupTimeout as yt, hasCodexAppServerSiblingThreadWork as z };
@@ -6,24 +6,24 @@ import { i as resolveCodexAppServerHomeScope, l as resolveCodexModelBackedReview
6
6
  import { n as formatCodexUsageLimitErrorMessage } from "./rate-limits-CI8pTPqL.mjs";
7
7
  import { i as resolveCodexBindingAppServerConnection, r as requireCodexSupervisionModelSelection } from "./binding-connection-C0t9TBX_.mjs";
8
8
  import { n as canUseCodexModelBackedApprovalsReviewerForModel, r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-LQemoqTL.mjs";
9
- import { Q as readRecentCodexRateLimits, b as withLeasedCodexAppServerClientStartSelectionRetry, c as getLeasedSharedCodexAppServerClient, m as releaseCodexAppServerClientLease, rt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-CNGDTv68.mjs";
10
- import { E as resolveDynamicToolCallTimeoutMs, O as toCodexDynamicToolProtocolResponse, T as handleDynamicToolCallWithTimeout, _ as assertCodexTurnStartResponse, a as isCodexAppServerIndeterminateRequestCancellationError, k as resolveCodexToolAbortTerminalReason, m as assertCodexThreadForkResponse, r as isCodexAppServerApprovalRequest, w as createCodexElicitationResponse, y as readCodexDynamicToolCallParams } from "./client-Div-zqnz.mjs";
11
- import { d as terminateCodexBackgroundTerminals, f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, s as interruptCodexTurnAndWaitBestEffort } from "./attempt-client-cleanup-BVww-ct8.mjs";
12
- import { t as CodexEphemeralTurn } from "./ephemeral-turn-K_d99r9P.mjs";
9
+ import { Q as readRecentCodexRateLimits, at as resolveCodexAppServerPreparedAuthHandoff, b as withLeasedCodexAppServerClientStartSelectionRetry, c as getLeasedSharedCodexAppServerClient, m as releaseCodexAppServerClientLease } from "./shared-client-AdQX0Tdq.mjs";
10
+ import { E as resolveDynamicToolCallTimeoutMs, O as toCodexDynamicToolProtocolResponse, T as handleDynamicToolCallWithTimeout, _ as assertCodexTurnStartResponse, a as isCodexAppServerIndeterminateRequestCancellationError, k as resolveCodexToolAbortTerminalReason, m as assertCodexThreadForkResponse, r as isCodexAppServerApprovalRequest, w as createCodexElicitationResponse, y as readCodexDynamicToolCallParams } from "./client-BM97zH3z.mjs";
11
+ import { d as terminateCodexBackgroundTerminals, f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, s as interruptCodexTurnAndWaitBestEffort } from "./attempt-client-cleanup-jWVRH043.mjs";
12
+ import { t as CodexEphemeralTurn } from "./ephemeral-turn-DeppK8zz.mjs";
13
13
  import { d as mergeCodexThreadConfigs, f as refreshCodexPluginAppApprovalPolicy } from "./project-doc-thread-config-D_sWbxFR.mjs";
14
14
  import { n as resolveCodexAppServerReasoningEffort, t as readCodexSupportedReasoningEfforts } from "./reasoning-effort-CS9kKWB9.mjs";
15
15
  import { h as resolveCodexWebSearchPlan, r as buildCodexRuntimeThreadConfig, z as resolveCodexDynamicToolsLoading } from "./thread-requests-DjyDmCo4.mjs";
16
16
  import { i as resolveCodexSessionBinding } from "./session-binding-BDnNz-Co.mjs";
17
17
  import { i as resolveCodexAppServerThreadModelSelection, t as CODEX_NATIVE_PERSONALITY_NONE } from "./thread-model-selection-DcVebr8N.mjs";
18
18
  import { t as resolveCodexNativeExecutionBlock } from "./sandbox-guard-Cf9XMRrg.mjs";
19
- import { i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy } from "./thread-policy-BEiS7ITh.mjs";
19
+ import { i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy } from "./thread-policy-Dp4CQjdL.mjs";
20
20
  import { o as runCodexCleanupStep } from "./run-attempt-lifecycle-DN-ATDp9.mjs";
21
- import { a as resolveCodexExternalSandboxPolicyForOpenClawSandbox, c as shouldEnableCodexAppServerNativeToolSurface, l as shouldRequireCodexSandboxExecServerEnvironment, o as resolveCodexMessageToolProvider, s as resolveCodexSandboxEnvironmentSelection, t as buildDynamicTools } from "./dynamic-tool-build-DjbDZzOJ.mjs";
22
- import { a as buildCodexNativeHookRelayDisabledConfig, i as buildCodexNativeHookRelayConfig, l as resolveCodexNativeHookRelayEvents, u as resolveCodexNativeHookRelayTtlMs } from "./native-hook-relay-BvwSj5bt.mjs";
21
+ import { a as resolveCodexExternalSandboxPolicyForOpenClawSandbox, c as shouldEnableCodexAppServerNativeToolSurface, l as shouldRequireCodexSandboxExecServerEnvironment, o as resolveCodexMessageToolProvider, s as resolveCodexSandboxEnvironmentSelection, t as buildDynamicTools } from "./dynamic-tool-build-Dp4v52Kl.mjs";
22
+ import { a as buildCodexNativeHookRelayDisabledConfig, i as buildCodexNativeHookRelayConfig, l as resolveCodexNativeHookRelayEvents, u as resolveCodexNativeHookRelayTtlMs } from "./native-hook-relay-Ctyky2Qt.mjs";
23
23
  import { i as resolveCodexSessionPermissionCwd, n as applyCodexSessionPermissionPolicy, r as resolveCodexEffectiveSessionPermissionPolicy, t as CODEX_SESSION_PERMISSION_EXEC_MODES } from "./session-permission-policy-C7kYxPGd.mjs";
24
- import { a as handleCodexAppServerApprovalRequest, c as createCodexNativePreToolUseFailureBuffer, d as buildCodexTemporalAdditionalContext, g as buildCodexUserInput, i as createCodexDynamicToolDiagnostics, o as ensureCodexSandboxExecServerEnvironment, r as routeCodexAppServerElicitationRequest, s as releaseCodexSandboxExecServerEnvironment, t as createCodexDynamicToolBridge, y as CodexNativeToolLifecycleProjector } from "./dynamic-tools-75qoSOch.mjs";
24
+ import { a as handleCodexAppServerApprovalRequest, c as createCodexNativePreToolUseFailureBuffer, d as buildCodexTemporalAdditionalContext, g as buildCodexUserInput, i as createCodexDynamicToolDiagnostics, o as ensureCodexSandboxExecServerEnvironment, r as routeCodexAppServerElicitationRequest, s as releaseCodexSandboxExecServerEnvironment, t as createCodexDynamicToolBridge, y as CodexNativeToolLifecycleProjector } from "./dynamic-tools-C1Egdhrx.mjs";
25
25
  import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-V8zuN8q_.mjs";
26
- import { n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-B-pTlDsf.mjs";
26
+ import { n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-BCZeV7xZ.mjs";
27
27
  import { readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
28
28
  import { randomUUID } from "node:crypto";
29
29
  import { isDeepStrictEqual } from "node:util";
@@ -1,5 +1,5 @@
1
1
  import { a as defaultCodexAppInventoryCache, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
2
- import { a as withCodexAppServerJsonClient } from "./request-m-H-7FMu.mjs";
2
+ import { a as withCodexAppServerJsonClient } from "./request-XC1RG34l.mjs";
3
3
  import { a as marketplaceRef, o as pluginReadParams, r as isOpenAiCuratedMarketplaceName, u as CODEX_PLUGINS_MARKETPLACE_NAME } from "./plugin-inventory-OhiCoyPH.mjs";
4
4
  import "./config-LQemoqTL.mjs";
5
5
  import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";