@openclaw/codex 2026.10.10-beta.2 → 2026.10.10-beta.4

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 (113) hide show
  1. package/dist/.setup/{account-usage-runtime-BVO-lpvn.mjs → account-usage-runtime-CO_i9_7B.mjs} +3 -3
  2. package/dist/.setup/{app-server-policy-Cog6mm2i.mjs → app-server-policy-CFCEWj0w.mjs} +1 -1
  3. package/dist/.setup/{apply-tJl5mopa.mjs → apply-DvEtGGBB.mjs} +8 -8
  4. package/dist/.setup/{attempt-client-cleanup-DMJWXGxM.mjs → attempt-client-cleanup-Bj4T3tcX.mjs} +5 -5
  5. package/dist/.setup/{attempt-workspace-context-GYPLawX6.mjs → attempt-workspace-context-DxHd71bH.mjs} +1 -1
  6. package/dist/.setup/{auth-binding-830RLAJW.mjs → auth-binding-BY7Fm501.mjs} +1 -1
  7. package/dist/.setup/{auth-cache-key-BW1YeaIk.mjs → auth-cache-key-Do2ZQrNP.mjs} +3 -3
  8. package/dist/.setup/{binding-connection-GTgUj9pi.mjs → binding-connection-hJD5mFkM.mjs} +2 -2
  9. package/dist/.setup/{binding-connection.runtime-RcWR3vQu.mjs → binding-connection.runtime-Dap4qmsz.mjs} +1 -1
  10. package/dist/.setup/{bounded-turn-BQkmyyjB.mjs → bounded-turn-DnxnHHZP.mjs} +10 -10
  11. package/dist/.setup/{bounded-turn-isolation-D8CDrAVX.mjs → bounded-turn-isolation-Iz8EsqFg.mjs} +2 -2
  12. package/dist/.setup/{build-state-CjLCC0wm.mjs → build-state-CpGXWSN4.mjs} +1 -1
  13. package/dist/.setup/{client--P8jwXvA.mjs → client-Bxe8bl-K.mjs} +8 -8
  14. package/dist/.setup/{client-catalog-response-CsDxVVOZ.mjs → client-catalog-response-D-dEl0Ac.mjs} +1 -1
  15. package/dist/.setup/{client-initialize-CjgZcX61.mjs → client-initialize-CPNmLwhL.mjs} +1 -1
  16. package/dist/.setup/{command-dispatch-DqaVBeR3.mjs → command-dispatch-BD9-WK7I.mjs} +1 -1
  17. package/dist/.setup/{command-handlers-i6mEjvfo.mjs → command-handlers-g046iNsp.mjs} +22 -22
  18. package/dist/.setup/{command-rpc-B65jEc0r.mjs → command-rpc-CwpCTOrX.mjs} +11 -11
  19. package/dist/.setup/{compact-AO2H4RJe.mjs → compact-B-qCn3BG.mjs} +13 -13
  20. package/dist/.setup/{computer-use-YUnu0JVx.mjs → computer-use-C0qJq1rh.mjs} +6 -6
  21. package/dist/.setup/{config-BfrAlTMT.mjs → config-BZYTxljj.mjs} +2 -2
  22. package/dist/.setup/{config-runtime-BZRizyuG.mjs → config-runtime-CqCrHEAU.mjs} +1 -1
  23. package/dist/.setup/{conversation-binding-CfnUR-IM.mjs → conversation-binding-CXGGbblk.mjs} +38 -29
  24. package/dist/.setup/{conversation-binding-data-khgW0n-o.mjs → conversation-binding-data-CAKQCqTL.mjs} +1 -1
  25. package/dist/.setup/{conversation-control-B2EpVZEb.mjs → conversation-control-CTZTP_rE.mjs} +3 -3
  26. package/dist/.setup/{doctor-start-options-8uIBXIzR.mjs → doctor-start-options-CpcBuzLb.mjs} +3 -3
  27. package/dist/.setup/{dynamic-tool-build-DOub3CB5.mjs → dynamic-tool-build-BzTaCmlT.mjs} +3 -3
  28. package/dist/.setup/{dynamic-tools-Us5mvq_N.mjs → dynamic-tools-BALvjDwR.mjs} +8 -8
  29. package/dist/.setup/{effective-mcp-catalog-DfUUoeeM.mjs → effective-mcp-catalog-CQbEkKv_.mjs} +6 -6
  30. package/dist/.setup/{ephemeral-turn-B2z0RIeF.mjs → ephemeral-turn-CNm9tN72.mjs} +2 -2
  31. package/dist/.setup/{inference-context-HRw3PDwn.mjs → inference-context-DYpvCEF3.mjs} +1 -1
  32. package/dist/.setup/{inference-proxy-CiLbHMLf.mjs → inference-proxy-e1Rg8kr_.mjs} +1 -1
  33. package/dist/.setup/{installed-probe-lVC1X5ve.mjs → installed-probe-yc_w-vom.mjs} +3 -3
  34. package/dist/.setup/{isolated-completion-CybgD6uU.mjs → isolated-completion-B1mlyhKu.mjs} +5 -5
  35. package/dist/.setup/{managed-binary-DbKvGXKl.mjs → managed-binary-BwzkwiGo.mjs} +2 -2
  36. package/dist/.setup/{mcp-app-session-preparation-zUgpDLWR.mjs → mcp-app-session-preparation-CFbTbxia.mjs} +9 -9
  37. package/dist/.setup/{model-catalog-CWY3wo0B.mjs → model-catalog-BNSZklNP.mjs} +7 -7
  38. package/dist/.setup/{models-CmOBxsKF.mjs → models-HgvyBseb.mjs} +3 -3
  39. package/dist/.setup/native-assignment-repair-BsWKjUjZ.mjs +162 -0
  40. package/dist/.setup/{native-auth-DpZIaY8N.mjs → native-auth-o_vw8KWa.mjs} +3 -3
  41. package/dist/.setup/{native-hook-relay-CocOW9YS.mjs → native-hook-relay-COcu2b4l.mjs} +4 -4
  42. package/dist/.setup/{native-mcp-app-DrQeLxXj.mjs → native-mcp-app-CFyl3R2g.mjs} +5 -5
  43. package/dist/.setup/{native-skill-isolation-DL4-PQa4.mjs → native-skill-isolation-B8cWhSFy.mjs} +3 -3
  44. package/dist/.setup/{native-subagent-monitor-C3CIIaZG.mjs → native-subagent-monitor-LJd5_D5F.mjs} +153 -47
  45. package/dist/.setup/{native-subagent-pending-assignments-CTinVtjo.mjs → native-subagent-pending-assignments-CX-LtYDX.mjs} +49 -11
  46. package/dist/.setup/{native-task-assignments-YJopbaVO.mjs → native-task-assignments-CMd-JiUS.mjs} +4 -4
  47. package/dist/.setup/{node-cli-sessions-BuJnBnEq.mjs → node-cli-sessions-C59CAyDh.mjs} +2 -2
  48. package/dist/.setup/{node-exec-server.runtime-CP7RC1Nd.mjs → node-exec-server.runtime-DvRSh5Oi.mjs} +2 -2
  49. package/dist/.setup/{plan-Bqj6VQvQ.mjs → plan-C3H9W_2P.mjs} +5 -5
  50. package/dist/.setup/{plugin-activation-CXPWe-hl.mjs → plugin-activation-Cj2k3W9n.mjs} +2 -2
  51. package/dist/.setup/{plugin-approval-roundtrip-CGEiG7hG.mjs → plugin-approval-roundtrip-DEbTgtVQ.mjs} +1 -1
  52. package/dist/.setup/{plugin-inventory-DE9wcaeH.mjs → plugin-inventory-BVP15PmN.mjs} +1 -1
  53. package/dist/.setup/{project-doc-thread-config-B0UI3f1D.mjs → project-doc-thread-config-Ds92xu17.mjs} +3 -3
  54. package/dist/.setup/{provider-C_1fMsyD.mjs → provider-C1GuStnr.mjs} +4 -4
  55. package/dist/.setup/{provider-capabilities-C7pYYpvh.mjs → provider-capabilities-DMfkFwZi.mjs} +1 -1
  56. package/dist/.setup/{request-C6U8q2uz.mjs → request-DTgD_jsY.mjs} +5 -5
  57. package/dist/.setup/{run-attempt-BhuXanLv.mjs → run-attempt-DB4AY6QP.mjs} +127 -72
  58. package/dist/.setup/{runtime-artifact-CmLWeyJB.mjs → runtime-artifact-Bn_GvxjU.mjs} +3 -3
  59. package/dist/.setup/{runtime-artifact-connection-DpWlZ02e.mjs → runtime-artifact-connection-DCwh9tgV.mjs} +2 -2
  60. package/dist/.setup/{sandbox-guard-DneAfNye.mjs → sandbox-guard-CrzVgQUn.mjs} +1 -1
  61. package/dist/.setup/{session-binding-BgsWcbdY.mjs → session-binding-Dg0B6Zua.mjs} +38 -12
  62. package/dist/.setup/{session-binding-record-C_THntMe.mjs → session-binding-record-BpWF2Sus.mjs} +2 -2
  63. package/dist/.setup/{session-binding-sidecars-BNSS6WL4.mjs → session-binding-sidecars-C9uEGpDX.mjs} +1 -1
  64. package/dist/.setup/{session-cancellation-DCN1FcBZ.mjs → session-cancellation-Bg94rN6N.mjs} +4 -4
  65. package/dist/.setup/{session-catalog-adoption-ppsLlVLB.mjs → session-catalog-adoption-D6pqS43M.mjs} +5 -5
  66. package/dist/.setup/{session-catalog-archive-CqLRHJ6z.mjs → session-catalog-archive-B-ZpAiiK.mjs} +5 -5
  67. package/dist/.setup/{session-catalog-events-CEi6SuLQ.mjs → session-catalog-events-BmhPYZGw.mjs} +4 -4
  68. package/dist/.setup/{session-catalog-index-qt4UWBua.mjs → session-catalog-index-D7fccO1r.mjs} +8 -8
  69. package/dist/.setup/{session-catalog-index-order-0Zqng2u8.mjs → session-catalog-index-order-DyCNai_t.mjs} +1 -1
  70. package/dist/.setup/{session-catalog-limits-Dc6E0BZz.mjs → session-catalog-limits-CGjAZOTM.mjs} +1 -1
  71. package/dist/.setup/{session-catalog-list-request-CAjoWjaH.mjs → session-catalog-list-request-DGn9LMJY.mjs} +3 -3
  72. package/dist/.setup/{session-catalog-native-projection-BqBYi6kV.mjs → session-catalog-native-projection-HAmuA2-G.mjs} +4 -4
  73. package/dist/.setup/{session-catalog-node-adoption-e9v8mGgx.mjs → session-catalog-node-adoption-C_41f1dK.mjs} +2 -2
  74. package/dist/.setup/{session-catalog-node-continue-H7nrzcUD.mjs → session-catalog-node-continue-FuNSGUYz.mjs} +5 -5
  75. package/dist/.setup/{session-catalog-node-lookup-BrZfDkA8.mjs → session-catalog-node-lookup-BfHfknjz.mjs} +2 -2
  76. package/dist/.setup/{session-catalog-parsing-V6jyFg9g.mjs → session-catalog-parsing-ktmfo9oa.mjs} +1 -1
  77. package/dist/.setup/{session-catalog-projection-CNyhjZze.mjs → session-catalog-projection-C_w9yRCz.mjs} +4 -4
  78. package/dist/.setup/{session-catalog-source-z_mNyQdX.mjs → session-catalog-source-BW46oF7X.mjs} +1 -1
  79. package/dist/.setup/{session-cli-CBGKiqdv.mjs → session-cli-COjTO3Dy.mjs} +1 -1
  80. package/dist/.setup/{session-history-import-BwPKwcNi.mjs → session-history-import-BZHN6RtG.mjs} +4 -4
  81. package/dist/.setup/{session-initialization-Dn3vveGv.mjs → session-initialization-Bztyf-sf.mjs} +1 -1
  82. package/dist/.setup/{session-retirement-RZStisKb.mjs → session-retirement-BHMs5nFf.mjs} +6 -6
  83. package/dist/.setup/{settled-turn-finalizer-gioXygEX.mjs → settled-turn-finalizer-C3OEC7ED.mjs} +5 -5
  84. package/dist/.setup/{shared-client-CkyTrNB8.mjs → shared-client-BelwlhWf.mjs} +84 -33
  85. package/dist/.setup/{side-question-DHPWKgO3.mjs → side-question-Bt2vXr-h.mjs} +21 -21
  86. package/dist/.setup/{source-63MLSmLJ.mjs → source-DQN8P65G.mjs} +4 -4
  87. package/dist/.setup/{thread-lifecycle-run-zCXYFW8W.mjs → thread-lifecycle-run-aBfXzIGf.mjs} +79 -38
  88. package/dist/.setup/{thread-ownership-Bmk5a2Gu.mjs → thread-ownership-DxW6b6fR.mjs} +4 -4
  89. package/dist/.setup/{thread-policy-DYtvZ5Ay.mjs → thread-policy-j-BAwvSk.mjs} +3 -3
  90. package/dist/.setup/{thread-requests-BjawdIVV.mjs → thread-requests-6Dy8hyXF.mjs} +2 -2
  91. package/dist/.setup/{thread-resume-vBShG3-o.mjs → thread-resume-CZxguYjc.mjs} +4 -4
  92. package/dist/.setup/{transcript-mirror-CEQJZlF3.mjs → transcript-mirror-5w4Hx1kt.mjs} +1 -1
  93. package/dist/.setup/{transport-stdio-Bq160Dhv.mjs → transport-stdio-BVeWgcK6.mjs} +1 -1
  94. package/dist/.setup/{transport-websocket-0YqiI_MH.mjs → transport-websocket-2Y-cL8kD.mjs} +1 -1
  95. package/dist/.setup/{turn-router-BGj67FMK.mjs → turn-router-B62dF4CM.mjs} +1 -1
  96. package/dist/.setup/{upstream-session-fork-CWKjpdtW.mjs → upstream-session-fork-5d_7cWPF.mjs} +17 -17
  97. package/dist/.setup/{usage-AhrLFxZP.mjs → usage-DSIlxJrx.mjs} +3 -3
  98. package/dist/.setup/{usage-limit-error-BdNbGJC3.mjs → usage-limit-error-A0XP58jR.mjs} +1 -1
  99. package/dist/.setup/{web-search-provider.runtime-Yk6lnJBG.mjs → web-search-provider.runtime-B-m9u2M1.mjs} +2 -2
  100. package/dist/.setup/{workspace-write-sandbox-probe-DJxOXcF3.mjs → workspace-write-sandbox-probe-D5OfU42L.mjs} +2 -2
  101. package/dist/.source-module-urls/6c41bd629a7a55e13b9ba84558fce30100391f4f229cc77b7c54b07fb0bfe9cf.json +1 -0
  102. package/dist/api.js +3 -3
  103. package/dist/catalog-page.worker.js +1 -1
  104. package/dist/cli-metadata.js +1 -1
  105. package/dist/client-version-api.js +3 -3
  106. package/dist/doctor-contract-api.js +14 -5
  107. package/dist/harness.js +21 -21
  108. package/dist/index.js +68 -58
  109. package/dist/media-understanding-provider.js +2 -2
  110. package/dist/migration-provider-api.js +1 -1
  111. package/dist/provider-discovery.js +1 -1
  112. package/openclaw.plugin.json +5 -0
  113. package/package.json +4 -4
@@ -1,36 +1,36 @@
1
1
  import { r as isJsonObject } from "./protocol-CaPAVwe9.mjs";
2
- import { g as sessionBindingIdentity } from "./session-binding-record-C_THntMe.mjs";
2
+ import { g as sessionBindingIdentity } from "./session-binding-record-BpWF2Sus.mjs";
3
3
  import { c as withMcpElicitationsApprovalPolicy, d as readCodexRequirementsToml, n as hasCodexMcpToolApprovalOverrides, s as shouldAutoApproveCodexAppServerApprovals } from "./config-security-clxAZYWX.mjs";
4
4
  import { c as isCodexPairedNodeRemoteExecPlacementSandbox, d as readCodexPluginConfig, l as isCodexRemoteExecPlacementSandbox, u as isCodexSandboxExecServerEnabled } from "./config-parsing-DsWSCPHO.mjs";
5
5
  import { i as resolveCodexAppServerHomeScope, l as resolveCodexModelBackedReviewerPolicyContext } from "./config-options-DMFZkd3X.mjs";
6
- import { T as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-BW1YeaIk.mjs";
6
+ import { T as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-Do2ZQrNP.mjs";
7
7
  import { n as formatCodexUsageLimitErrorMessage } from "./rate-limits-BpfURnuy.mjs";
8
8
  import { c as isMissingCodexParentThreadError } from "./rpc-error-DemqqaxE.mjs";
9
- import { i as resolveCodexBindingAppServerConnection, r as requireCodexSupervisionModelSelection } from "./binding-connection-GTgUj9pi.mjs";
10
- import { n as canUseCodexModelBackedApprovalsReviewerForModel, r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-BfrAlTMT.mjs";
11
- import { C as getCodexInferenceThread, Q as resolveCodexAppServerPreparedAuthHandoff, W as readRecentCodexRateLimits, Y as requireCodexThreadForkSettings, d as releaseCodexAppServerClientLease, h as withCodexAppServerClientRequestScope, o as getLeasedSharedCodexAppServerClient, w as getCodexInferenceThreadQualification } from "./shared-client-CkyTrNB8.mjs";
12
- import { C as createCodexElicitationResponse, D as toCodexDynamicToolProtocolResponse, O as resolveCodexToolAbortTerminalReason, T as resolveDynamicToolCallTimeoutMs, g as assertCodexTurnStartResponse, i as isCodexAppServerIndeterminateRequestCancellationError, p as assertCodexThreadForkResponse, r as isCodexAppServerApprovalRequest, v as readCodexDynamicToolCallParams, w as handleDynamicToolCallWithTimeout } from "./client--P8jwXvA.mjs";
13
- import { d as terminateCodexBackgroundTerminals, f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, s as interruptCodexTurnAndWaitBestEffort } from "./attempt-client-cleanup-DMJWXGxM.mjs";
14
- import { t as CodexEphemeralTurn } from "./ephemeral-turn-B2z0RIeF.mjs";
15
- import { d as mergeCodexThreadConfigs, f as refreshCodexPluginAppApprovalPolicy } from "./project-doc-thread-config-B0UI3f1D.mjs";
9
+ import { i as resolveCodexBindingAppServerConnection, r as requireCodexSupervisionModelSelection } from "./binding-connection-hJD5mFkM.mjs";
10
+ import { n as canUseCodexModelBackedApprovalsReviewerForModel, r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-BZYTxljj.mjs";
11
+ import { C as getCodexInferenceThread, G as readRecentCodexRateLimits, Q as requireCodexThreadForkSettings, d as releaseCodexAppServerClientLease, h as withCodexAppServerClientRequestScope, o as getLeasedSharedCodexAppServerClient, tt as resolveCodexAppServerPreparedAuthHandoff, w as getCodexInferenceThreadQualification } from "./shared-client-BelwlhWf.mjs";
12
+ import { C as createCodexElicitationResponse, D as toCodexDynamicToolProtocolResponse, O as resolveCodexToolAbortTerminalReason, T as resolveDynamicToolCallTimeoutMs, g as assertCodexTurnStartResponse, i as isCodexAppServerIndeterminateRequestCancellationError, p as assertCodexThreadForkResponse, r as isCodexAppServerApprovalRequest, v as readCodexDynamicToolCallParams, w as handleDynamicToolCallWithTimeout } from "./client-Bxe8bl-K.mjs";
13
+ import { d as terminateCodexBackgroundTerminals, f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, s as interruptCodexTurnAndWaitBestEffort } from "./attempt-client-cleanup-Bj4T3tcX.mjs";
14
+ import { t as CodexEphemeralTurn } from "./ephemeral-turn-CNm9tN72.mjs";
15
+ import { d as mergeCodexThreadConfigs, f as refreshCodexPluginAppApprovalPolicy } from "./project-doc-thread-config-Ds92xu17.mjs";
16
16
  import { n as resolveCodexAppServerReasoningEffort, t as readCodexSupportedReasoningEfforts } from "./reasoning-effort-CS9kKWB9.mjs";
17
- import { h as resolveCodexWebSearchPlan, r as buildCodexRuntimeThreadConfig, z as resolveCodexDynamicToolsLoading } from "./thread-requests-BjawdIVV.mjs";
18
- import { i as resolveCodexSessionBinding } from "./session-binding-BgsWcbdY.mjs";
17
+ import { h as resolveCodexWebSearchPlan, r as buildCodexRuntimeThreadConfig, z as resolveCodexDynamicToolsLoading } from "./thread-requests-6Dy8hyXF.mjs";
18
+ import { i as resolveCodexSessionBinding } from "./session-binding-Dg0B6Zua.mjs";
19
19
  import { i as resolveCodexAppServerThreadModelSelection, t as CODEX_NATIVE_PERSONALITY_NONE } from "./thread-model-selection-DxposL4X.mjs";
20
- import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-Bmk5a2Gu.mjs";
21
- import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-C3CIIaZG.mjs";
20
+ import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-DxW6b6fR.mjs";
21
+ import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-LJd5_D5F.mjs";
22
22
  import { r as prepareCodexNativeExecutionPolicyForRun } from "./native-execution-policy-D09tLP-u.mjs";
23
- import { i as resolveCodexNativeExecutionBlock } from "./sandbox-guard-DneAfNye.mjs";
24
- import { i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy } from "./thread-policy-DYtvZ5Ay.mjs";
23
+ import { i as resolveCodexNativeExecutionBlock } from "./sandbox-guard-CrzVgQUn.mjs";
24
+ import { i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy } from "./thread-policy-j-BAwvSk.mjs";
25
25
  import { o as runCodexCleanupStep } from "./run-attempt-lifecycle-DN-ATDp9.mjs";
26
26
  import { t as CODEX_INFERENCE_GENERATION_KEY } from "./inference-metadata-CYFWLHVk.mjs";
27
- import "./inference-context-HRw3PDwn.mjs";
28
- import { a as resolveCodexExternalSandboxPolicyForOpenClawSandbox, c as shouldEnableCodexAppServerNativeToolSurface, l as shouldRequireCodexSandboxExecServerEnvironment, o as resolveCodexMessageToolProvider, s as resolveCodexSandboxEnvironmentSelection, t as buildDynamicTools } from "./dynamic-tool-build-DOub3CB5.mjs";
29
- import { a as buildCodexNativeHookRelayDisabledConfig, i as buildCodexNativeHookRelayConfig, l as resolveCodexNativeHookRelayEvents, r as assertCodexNativeHookRelayAllowed, u as resolveCodexNativeHookRelayTtlMs } from "./native-hook-relay-CocOW9YS.mjs";
27
+ import "./inference-context-DYpvCEF3.mjs";
28
+ import { a as resolveCodexExternalSandboxPolicyForOpenClawSandbox, c as shouldEnableCodexAppServerNativeToolSurface, l as shouldRequireCodexSandboxExecServerEnvironment, o as resolveCodexMessageToolProvider, s as resolveCodexSandboxEnvironmentSelection, t as buildDynamicTools } from "./dynamic-tool-build-BzTaCmlT.mjs";
29
+ import { a as buildCodexNativeHookRelayDisabledConfig, i as buildCodexNativeHookRelayConfig, l as resolveCodexNativeHookRelayEvents, r as assertCodexNativeHookRelayAllowed, u as resolveCodexNativeHookRelayTtlMs } from "./native-hook-relay-COcu2b4l.mjs";
30
30
  import { i as resolveCodexSessionPermissionCwd, n as applyCodexSessionPermissionPolicy, r as resolveCodexEffectiveSessionPermissionPolicy, t as CODEX_SESSION_PERMISSION_EXEC_MODES } from "./session-permission-policy-CD2MAWU8.mjs";
31
- 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-Us5mvq_N.mjs";
32
- import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-Cog6mm2i.mjs";
33
- import { n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-C7pYYpvh.mjs";
31
+ 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-BALvjDwR.mjs";
32
+ import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-CFCEWj0w.mjs";
33
+ import { n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-DMfkFwZi.mjs";
34
34
  import { readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
35
35
  import { randomUUID } from "node:crypto";
36
36
  import { isDeepStrictEqual } from "node:util";
@@ -1,8 +1,8 @@
1
1
  import { a as defaultCodexAppInventoryCache, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-DRb-niJc.mjs";
2
- import { a as withCodexAppServerJsonClient } from "./request-C6U8q2uz.mjs";
3
- import { a as marketplaceRef, o as pluginReadParams, r as isOpenAiCuratedMarketplaceName, u as CODEX_PLUGINS_MARKETPLACE_NAME } from "./plugin-inventory-DE9wcaeH.mjs";
4
- import "./config-BfrAlTMT.mjs";
5
- import { t as __exportAll } from "./session-binding-sidecars-BNSS6WL4.mjs";
2
+ import { a as withCodexAppServerJsonClient } from "./request-DTgD_jsY.mjs";
3
+ import { a as marketplaceRef, o as pluginReadParams, r as isOpenAiCuratedMarketplaceName, u as CODEX_PLUGINS_MARKETPLACE_NAME } from "./plugin-inventory-BVP15PmN.mjs";
4
+ import "./config-BZYTxljj.mjs";
5
+ import { t as __exportAll } from "./session-binding-sidecars-C9uEGpDX.mjs";
6
6
  import { asNonArrayRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import path from "node:path";
8
8
  import os from "node:os";
@@ -1,11 +1,11 @@
1
1
  import { n as flattenCodexDynamicToolFunctions, r as isJsonObject } from "./protocol-CaPAVwe9.mjs";
2
2
  import { n as matchesPendingSupervisionBranch } from "./session-binding-record-codec-DvmOI7g_.mjs";
3
- import { g as sessionBindingIdentity, n as assertCodexBindingMayBeReplaced } from "./session-binding-record-C_THntMe.mjs";
3
+ import { g as sessionBindingIdentity, n as assertCodexBindingMayBeReplaced } from "./session-binding-record-BpWF2Sus.mjs";
4
4
  import { l as fingerprintCodexPolicy } from "./config-security-clxAZYWX.mjs";
5
5
  import { f as resolveCodexPluginsPolicy } from "./config-parsing-DsWSCPHO.mjs";
6
6
  import { n as resolveCodexAppServerLocalHomeDir, t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
7
7
  import { d as readCodexEffectiveConfig, s as assertCodexModelBackedReviewerEffectiveConfig, u as CODEX_SESSION_OVERRIDABLE_LAYER_TYPES } from "./config-options-DMFZkd3X.mjs";
8
- import { T as retainSharedCodexAppServerClientByInstanceId, f as getCurrentSharedClientEntry } from "./auth-cache-key-BW1YeaIk.mjs";
8
+ import { T as retainSharedCodexAppServerClientByInstanceId, f as getCurrentSharedClientEntry } from "./auth-cache-key-Do2ZQrNP.mjs";
9
9
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-CeyYScUC.mjs";
10
10
  import { i as CodexAppServerScopedRequestRejectedError, o as isCodexAppServerOverloadError, r as CodexAppServerRpcError, s as isCodexThreadReadMissingError } from "./rpc-error-DemqqaxE.mjs";
11
11
  import { t as codexCatalogHomeId } from "./session-catalog-home-id-vlih0B_g.mjs";
@@ -13,30 +13,30 @@ import { r as withAbortableTimeout } from "./timeout-D0mEWSGG.mjs";
13
13
  import { t as projectBoundedCodexThreadHistory } from "./transcript-history-projection-i-FVpyha.mjs";
14
14
  import { a as defaultCodexAppInventoryCache, t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-DRb-niJc.mjs";
15
15
  import { n as readCodexSessionMeta } from "./session-catalog-provenance-Dg9s12z-.mjs";
16
- import { t as assertCodexSessionRuntimeOwnership } from "./binding-connection-GTgUj9pi.mjs";
17
- import { n as requestCodexAppServerClientJson } from "./request-C6U8q2uz.mjs";
18
- import { c as resolveRecoverableCodexPluginConfigKeys } from "./plugin-inventory-DE9wcaeH.mjs";
19
- import "./config-BfrAlTMT.mjs";
16
+ import { t as assertCodexSessionRuntimeOwnership } from "./binding-connection-hJD5mFkM.mjs";
17
+ import { n as requestCodexAppServerClientJson } from "./request-DTgD_jsY.mjs";
18
+ import { c as resolveRecoverableCodexPluginConfigKeys } from "./plugin-inventory-BVP15PmN.mjs";
19
+ import "./config-BZYTxljj.mjs";
20
20
  import { c as resolveCodexContextEngineProjectionMaxChars } from "./context-engine-projection-PIeLSnR-.mjs";
21
21
  import { n as normalizeCodexAppServerBindingModelProvider } from "./auth-profile-auwzSwwy.mjs";
22
- import { C as getCodexInferenceThread, D as consumeCodexAppServerLiveThread, H as unsubscribeCodexAppServerLiveThread, K as createCodexEphemeralThreadPolicy, M as isCodexAppServerClientRuntimeLive, N as isCodexAppServerLiveThreadClaimed, P as isCodexAppServerLiveThreadProtected, R as readCodexLiveThreadEphemeralPolicy, S as bindCodexInferenceThread, T as prepareCodexInferenceThreadConfig, _ as CodexThreadBindingConflictError, g as CodexAdoptedThreadActiveError, j as hasCodexAppServerSiblingThreadWork, q as recordCodexThreadForkSettings, t as captureCodexAppServerClientLifetime, v as CodexThreadClientReplacementError, w as getCodexInferenceThreadQualification, x as assertCodexInferenceRouteConfig, y as CodexThreadStartRequestError, z as releaseCodexAppServerLiveThread } from "./shared-client-CkyTrNB8.mjs";
22
+ import { B as releaseCodexAppServerLiveThread, C as getCodexInferenceThread, D as consumeCodexAppServerLiveThread, J as isThreadBackgroundOnly, L as readCodexAppServerThreadOwnershipState, M as isCodexAppServerClientRuntimeLive, N as isCodexAppServerLiveThreadClaimed, P as isCodexAppServerLiveThreadProtected, S as bindCodexInferenceThread, T as prepareCodexInferenceThreadConfig, U as unsubscribeCodexAppServerLiveThread, X as recordCodexThreadForkSettings, Y as wasCodexAppServerThreadClosed, _ as CodexThreadBindingConflictError, g as CodexAdoptedThreadActiveError, j as hasCodexAppServerSiblingThreadWork, q as createCodexEphemeralThreadPolicy, t as captureCodexAppServerClientLifetime, v as CodexThreadClientReplacementError, w as getCodexInferenceThreadQualification, x as assertCodexInferenceRouteConfig, y as CodexThreadStartRequestError, z as readCodexLiveThreadEphemeralPolicy } from "./shared-client-BelwlhWf.mjs";
23
23
  import "./responses-oauth-CCV7aVYF.mjs";
24
- import { M as getCodexAppServerClientInstanceId, P as resolveCodexAppServerClientInstanceId, S as resolveCodexThreadRolloutPath, _ as assertExactSupervisionModelSelection, f as assertCodexThreadAcceptsDirectInput, h as assertCodexThreadStartResponse, p as assertCodexThreadForkResponse, s as isCodexAppServerRequestTimeoutError, x as readSupervisionResponseThreadId } from "./client--P8jwXvA.mjs";
25
- import { r as hasCodexAppServerSiblingRouteWork } from "./turn-router-BGj67FMK.mjs";
26
- import { f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-DMJWXGxM.mjs";
27
- import { n as listAllCodexAppServerModels } from "./models-CmOBxsKF.mjs";
28
- import { a as buildCodexPluginThreadConfigInputFingerprint, c as buildPluginAppPolicyContext, d as mergeCodexThreadConfigs, i as buildCodexPluginThreadConfig, l as disableUnlistedCodexApps, m as buildCodexAppApprovalOverrides, n as mergeCodexNativeProjectDocThreadConfig, o as buildCodexPluginThreadConfigTimeoutFallback, p as shouldBuildCodexPluginThreadConfig, r as buildCodexPluginAppsConfigPatchFromPolicyContext, u as isCodexPluginThreadBindingStale } from "./project-doc-thread-config-B0UI3f1D.mjs";
29
- import { A as isTransientWebSearchRestriction, C as fingerprintEnvironmentSelection, D as readActiveCodexTurnIdsFromResume, E as legacyFingerprintUserMcpServersConfigPatch, I as isMessageOnlyCodexSourceReply, L as isSystemAgentOnlyCodexDynamicToolAllowlist, M as shouldRotateCodexAppServerBindingForRuntime, N as shouldRotateCodexGpt56MultiAgentBinding, O as shouldStartTransientNoToolThread, S as fingerprintCodexThreadConfig, T as fingerprintUserMcpServersConfigPatch, _ as buildDeveloperInstructions, b as codexDynamicToolsFingerprint, c as codexThreadSandboxOrPermissions, d as readCodexManagedRequirementsFingerprint, f as resolveCodexThreadApprovalsReviewer, g as mergeCodexNativeShellEnvironment, h as resolveCodexWebSearchPlan, i as buildCodexRuntimeThreadConfigForRun, j as shouldRecheckRecoverablePluginBinding, n as buildCodexRingZeroThreadConfigPatch, o as buildThreadResumeParams, p as attestCodexRestrictedToolSurfaceMcpServersDisabled, s as buildThreadStartParams, t as assertCodexManagedRequirementsDoNotOverrideToolPolicy, u as readCodexInheritedMcpServerNames, v as areCodexDynamicToolFingerprintsCompatible, w as fingerprintJsonObject, x as codexLegacyDynamicToolsFingerprint, y as areUserMcpServersFingerprintsCompatible } from "./thread-requests-BjawdIVV.mjs";
30
- import { i as resolveCodexSessionBinding, o as hashCodexAppServerBindingFingerprint } from "./session-binding-BgsWcbdY.mjs";
24
+ import { M as getCodexAppServerClientInstanceId, P as resolveCodexAppServerClientInstanceId, S as resolveCodexThreadRolloutPath, _ as assertExactSupervisionModelSelection, f as assertCodexThreadAcceptsDirectInput, h as assertCodexThreadStartResponse, p as assertCodexThreadForkResponse, s as isCodexAppServerRequestTimeoutError, x as readSupervisionResponseThreadId } from "./client-Bxe8bl-K.mjs";
25
+ import { r as hasCodexAppServerSiblingRouteWork } from "./turn-router-B62dF4CM.mjs";
26
+ import { f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-Bj4T3tcX.mjs";
27
+ import { n as listAllCodexAppServerModels } from "./models-HgvyBseb.mjs";
28
+ import { a as buildCodexPluginThreadConfigInputFingerprint, c as buildPluginAppPolicyContext, d as mergeCodexThreadConfigs, i as buildCodexPluginThreadConfig, l as disableUnlistedCodexApps, m as buildCodexAppApprovalOverrides, n as mergeCodexNativeProjectDocThreadConfig, o as buildCodexPluginThreadConfigTimeoutFallback, p as shouldBuildCodexPluginThreadConfig, r as buildCodexPluginAppsConfigPatchFromPolicyContext, u as isCodexPluginThreadBindingStale } from "./project-doc-thread-config-Ds92xu17.mjs";
29
+ import { A as isTransientWebSearchRestriction, C as fingerprintEnvironmentSelection, D as readActiveCodexTurnIdsFromResume, E as legacyFingerprintUserMcpServersConfigPatch, I as isMessageOnlyCodexSourceReply, L as isSystemAgentOnlyCodexDynamicToolAllowlist, M as shouldRotateCodexAppServerBindingForRuntime, N as shouldRotateCodexGpt56MultiAgentBinding, O as shouldStartTransientNoToolThread, S as fingerprintCodexThreadConfig, T as fingerprintUserMcpServersConfigPatch, _ as buildDeveloperInstructions, b as codexDynamicToolsFingerprint, c as codexThreadSandboxOrPermissions, d as readCodexManagedRequirementsFingerprint, f as resolveCodexThreadApprovalsReviewer, g as mergeCodexNativeShellEnvironment, h as resolveCodexWebSearchPlan, i as buildCodexRuntimeThreadConfigForRun, j as shouldRecheckRecoverablePluginBinding, n as buildCodexRingZeroThreadConfigPatch, o as buildThreadResumeParams, p as attestCodexRestrictedToolSurfaceMcpServersDisabled, s as buildThreadStartParams, t as assertCodexManagedRequirementsDoNotOverrideToolPolicy, u as readCodexInheritedMcpServerNames, v as areCodexDynamicToolFingerprintsCompatible, w as fingerprintJsonObject, x as codexLegacyDynamicToolsFingerprint, y as areUserMcpServersFingerprintsCompatible } from "./thread-requests-6Dy8hyXF.mjs";
30
+ import { i as resolveCodexSessionBinding, o as hashCodexAppServerBindingFingerprint } from "./session-binding-Dg0B6Zua.mjs";
31
31
  import { i as resolveCodexAppServerThreadModelSelection, n as resolveCodexAppServerModelProvider } from "./thread-model-selection-DxposL4X.mjs";
32
- import { c as withExclusiveCodexAppServerThread, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-Bmk5a2Gu.mjs";
33
- import { a as refreshCodexThreadInstructions, i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy, r as assertAdoptedCodexThreadResumeAllowed, t as CodexIncognitoPolicyChangeError } from "./thread-policy-DYtvZ5Ay.mjs";
34
- import { t as resumeCodexAppServerThread } from "./thread-resume-vBShG3-o.mjs";
32
+ import { c as withExclusiveCodexAppServerThread, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-DxW6b6fR.mjs";
33
+ import { a as refreshCodexThreadInstructions, i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy, r as assertAdoptedCodexThreadResumeAllowed, t as CodexIncognitoPolicyChangeError } from "./thread-policy-j-BAwvSk.mjs";
34
+ import { t as resumeCodexAppServerThread } from "./thread-resume-CZxguYjc.mjs";
35
35
  import { r as readCodexMcpToolConnectorId } from "./mcp-tool-metadata-DW41snf3.mjs";
36
- import { n as disableCodexPluginThreadConfig } from "./dynamic-tool-build-DOub3CB5.mjs";
37
- import { n as CodexManagedHooksOnlyError, r as assertCodexNativeHookRelayAllowed } from "./native-hook-relay-CocOW9YS.mjs";
36
+ import { n as disableCodexPluginThreadConfig } from "./dynamic-tool-build-BzTaCmlT.mjs";
37
+ import { n as CodexManagedHooksOnlyError, r as assertCodexNativeHookRelayAllowed } from "./native-hook-relay-COcu2b4l.mjs";
38
38
  import { t as defaultCodexPluginMetadataCache } from "./plugin-metadata-cache-BqC-a6Fb.mjs";
39
- import { a as discardUnattestedCodexPluginThread, i as checkCodexThreadAppAvailability, n as resolveCodexNativeSkillIsolation, o as hasCodexNativeToolCatalog, r as attestCodexThreadToolSurface, s as loadCodexNativeToolCatalog, t as applyCodexNativeSkillIsolation } from "./native-skill-isolation-DL4-PQa4.mjs";
39
+ import { a as discardUnattestedCodexPluginThread, i as checkCodexThreadAppAvailability, n as resolveCodexNativeSkillIsolation, o as hasCodexNativeToolCatalog, r as attestCodexThreadToolSurface, s as loadCodexNativeToolCatalog, t as applyCodexNativeSkillIsolation } from "./native-skill-isolation-B8cWhSFy.mjs";
40
40
  import { asOptionalRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
41
41
  import crypto from "node:crypto";
42
42
  import { isDeepStrictEqual } from "node:util";
@@ -535,6 +535,12 @@ function isCodexPluginThreadConfigTimeoutError(error) {
535
535
  return error instanceof CodexPluginThreadConfigDeadlineError || error instanceof Error && "code" in error && error.code === "CODEX_APP_SERVER_LOCAL_REQUEST_CANCELLED" && error.message.endsWith(" timed out");
536
536
  }
537
537
  //#endregion
538
+ //#region extensions/codex/src/app-server/client-runtime-thread-state.ts
539
+ /** Completed foreground work may leave cleanup custody with native background work. */
540
+ function isCodexAppServerLiveThreadBackgroundOnly(client, threadId, configFingerprint) {
541
+ return isThreadBackgroundOnly(readCodexAppServerThreadOwnershipState(client), threadId, configFingerprint);
542
+ }
543
+ //#endregion
538
544
  //#region extensions/codex/src/app-server/thread-context-engine.ts
539
545
  function buildContextEngineBinding(params, projection) {
540
546
  const contextEngine = isActiveHarnessContextEngine(params.contextEngine) ? params.contextEngine : void 0;
@@ -1301,6 +1307,16 @@ async function releaseCodexBoundLiveThread(options) {
1301
1307
  }) : void 0;
1302
1308
  if (changedClient && !previous) return false;
1303
1309
  const client = previous?.client ?? options.client;
1310
+ let threadClosed;
1311
+ let stopWatching;
1312
+ if (previous) {
1313
+ threadClosed = new Promise((resolve) => {
1314
+ stopWatching = client.addNotificationHandler((notification) => {
1315
+ if (notification.method === "thread/closed" && isJsonObject(notification.params) && notification.params.threadId === options.threadId) resolve();
1316
+ });
1317
+ });
1318
+ if (wasCodexAppServerThreadClosed(client, options.threadId)) threadClosed = Promise.resolve();
1319
+ }
1304
1320
  try {
1305
1321
  if (isCodexAppServerLiveThreadClaimed(client, options.threadId) || isCodexAppServerLiveThreadProtected(client, options.threadId)) throw new Error(`Codex thread ${options.threadId} is claimed by active work; stop it first.`);
1306
1322
  return await releaseCodexRetainedLiveThread({
@@ -1314,8 +1330,12 @@ async function releaseCodexBoundLiveThread(options) {
1314
1330
  } : void 0
1315
1331
  });
1316
1332
  } finally {
1317
- const retiredExit = previous?.release(!isCodexAppServerLiveThreadClaimed(client, options.threadId) && !isCodexAppServerLiveThreadProtected(client, options.threadId));
1318
- if (retiredExit) await racePromiseWithAbortSignal(retiredExit, options.signal, codexThreadLifecycleAbortError);
1333
+ try {
1334
+ const retiredExit = previous?.release(!isCodexAppServerLiveThreadClaimed(client, options.threadId) && !isCodexAppServerLiveThreadProtected(client, options.threadId));
1335
+ if (retiredExit) await racePromiseWithAbortSignal(threadClosed ? Promise.race([retiredExit, threadClosed]) : retiredExit, options.signal, codexThreadLifecycleAbortError);
1336
+ } finally {
1337
+ stopWatching?.();
1338
+ }
1319
1339
  }
1320
1340
  }
1321
1341
  /** Reuses one safely owned, fully matching subscription on its original client. */
@@ -1676,6 +1696,16 @@ function observeCodexThreadConfiguration(params, thread, assertCurrent) {
1676
1696
  };
1677
1697
  }
1678
1698
  //#endregion
1699
+ //#region extensions/codex/src/app-server/thread-lifecycle-projection.ts
1700
+ /** Projection identity omits persistent instructions: qualify using warm reuse's full policy. */
1701
+ async function canRetainCodexProjectionBackgroundWork(params, binding, context, pluginThreadConfig) {
1702
+ const finalConfig = await prepareCodexThreadFinalConfigPatch(params, context.nativeModelInputTools, binding);
1703
+ const pluginConfig = pluginThreadConfig?.configPatch ?? (params.pluginThreadConfig?.enabled && binding.pluginAppPolicyContext ? buildCodexPluginAppsConfigPatchFromPolicyContext(binding.pluginAppPolicyContext) : void 0);
1704
+ const authProfileId = binding.connectionScope === "supervision" ? void 0 : params.params.authProfileId ?? binding.authProfileId;
1705
+ const resumeParams = await context.buildResumeParams(binding, authProfileId, buildCodexThreadRequestConfig(params, context, pluginConfig, finalConfig.configPatch));
1706
+ return isCodexAppServerLiveThreadBackgroundOnly(params.client, binding.threadId, fingerprintCodexThreadConfig(resumeParams, authProfileId, context.dynamicToolsFingerprint, binding));
1707
+ }
1708
+ //#endregion
1679
1709
  //#region extensions/codex/src/app-server/thread-supervision-cleanup.ts
1680
1710
  function withPendingSupervisionCleanup(pending, cleanupThreadIds) {
1681
1711
  return {
@@ -2013,6 +2043,7 @@ async function startOrResumeThread(input) {
2013
2043
  const preflight = await prepareCodexThreadLifecyclePreflight(params);
2014
2044
  const callerConfig = params.config;
2015
2045
  const { contextEngineBinding, dynamicToolsContainDeferred, dynamicToolsFingerprint, hostSystemAgentActive, legacyDynamicToolsFingerprint, legacyUserMcpServersFingerprint, lifecycleTiming, nativeSkillIsolationFingerprint, networkProxyConfigFingerprint, ringZeroActive, ringZeroClientInstanceId, ringZeroConfigFingerprint, restrictedToolSurface, restrictedToolSurfaceInheritedMcpServerNames, userMcpServersFingerprint, webSearchThreadConfigFingerprint } = preflight;
2046
+ let retainBackgroundPredecessor = false;
2016
2047
  let replacementPredecessor;
2017
2048
  const initialBoundThreadId = binding?.threadId;
2018
2049
  const initialBoundClientId = binding?.clientId;
@@ -2200,21 +2231,6 @@ async function startOrResumeThread(input) {
2200
2231
  embeddedAgentLog.debug("codex app-server delegation restricted for turn; starting transient thread", { threadId: binding.threadId });
2201
2232
  binding = void 0;
2202
2233
  }
2203
- if (binding?.threadId && (binding.contextEngine || contextEngineBinding)) {
2204
- if (!contextEngineBinding || !isContextEngineBindingCompatible(binding.contextEngine, contextEngineBinding)) {
2205
- rotateStaleBinding(binding, "context-engine binding", {
2206
- engineId: contextEngineBinding?.engineId,
2207
- previousEngineId: binding.contextEngine?.engineId,
2208
- epoch: contextEngineBinding?.projection?.epoch,
2209
- previousEpoch: binding.contextEngine?.projection?.epoch,
2210
- fingerprint: contextEngineBinding?.projection?.fingerprint,
2211
- previousFingerprint: binding.contextEngine?.projection?.fingerprint,
2212
- policyFingerprint: contextEngineBinding?.policyFingerprint,
2213
- previousPolicyFingerprint: binding.contextEngine?.policyFingerprint
2214
- });
2215
- rotatedContextEngineBinding = true;
2216
- }
2217
- }
2218
2234
  if (binding?.threadId) {
2219
2235
  if (!areUserMcpServersFingerprintsCompatible({
2220
2236
  previous: binding.userMcpServersFingerprint,
@@ -2231,6 +2247,31 @@ async function startOrResumeThread(input) {
2231
2247
  })) rotateStaleBinding(binding, "plugin app config");
2232
2248
  else if (binding.dynamicToolsFingerprint && params.dynamicTools.length > 0 && binding.dynamicToolsContainDeferred !== dynamicToolsContainDeferred && (binding.dynamicToolsContainDeferred !== void 0 || !dynamicToolsContainDeferred)) rotateStaleBinding(binding, "dynamic tool loading");
2233
2249
  }
2250
+ if (binding?.threadId && (binding.contextEngine || contextEngineBinding)) {
2251
+ if (!contextEngineBinding || !isContextEngineBindingCompatible(binding.contextEngine, contextEngineBinding)) {
2252
+ retainBackgroundPredecessor = initialBoundClientId === clientId && binding.contextEngine?.engineId === contextEngineBinding?.engineId && binding.contextEngine?.policyFingerprint === contextEngineBinding?.policyFingerprint && Boolean(contextEngineBinding) && (!binding.dynamicToolsFingerprint || areCodexDynamicToolFingerprintsCompatible({
2253
+ previous: binding.dynamicToolsFingerprint,
2254
+ next: dynamicToolsFingerprint,
2255
+ nextLegacy: legacyDynamicToolsFingerprint
2256
+ })) && isCodexAppServerLiveThreadBackgroundOnly(params.client, binding.threadId);
2257
+ if (retainBackgroundPredecessor) {
2258
+ const currentPluginConfig = await buildLoadedPluginThreadConfig(binding);
2259
+ if (currentPluginConfig && currentPluginConfig.fingerprint !== binding.pluginAppsFingerprint) retainBackgroundPredecessor = false;
2260
+ }
2261
+ if (retainBackgroundPredecessor) retainBackgroundPredecessor = await canRetainCodexProjectionBackgroundWork(params, binding, await prepareRequestContext(), prebuiltPluginThreadConfig);
2262
+ rotateStaleBinding(binding, "context-engine binding", {
2263
+ engineId: contextEngineBinding?.engineId,
2264
+ previousEngineId: binding.contextEngine?.engineId,
2265
+ epoch: contextEngineBinding?.projection?.epoch,
2266
+ previousEpoch: binding.contextEngine?.projection?.epoch,
2267
+ fingerprint: contextEngineBinding?.projection?.fingerprint,
2268
+ previousFingerprint: binding.contextEngine?.projection?.fingerprint,
2269
+ policyFingerprint: contextEngineBinding?.policyFingerprint,
2270
+ previousPolicyFingerprint: binding.contextEngine?.policyFingerprint
2271
+ });
2272
+ rotatedContextEngineBinding = true;
2273
+ }
2274
+ }
2234
2275
  if (binding?.threadId) {
2235
2276
  if (binding.dynamicToolsFingerprint && !areCodexDynamicToolFingerprintsCompatible({
2236
2277
  previous: binding.dynamicToolsFingerprint,
@@ -2280,7 +2321,7 @@ async function startOrResumeThread(input) {
2280
2321
  }
2281
2322
  assertCodexBindingMayBeReplaced(binding, "starting a fresh native thread", expectedOwnership);
2282
2323
  const requestContext = await prepareRequestContext();
2283
- if (initialBoundThreadId && !preserveExistingBinding && !configuredMcpOwnershipChanged) await releaseRetainedThread(initialBoundThreadId);
2324
+ if (initialBoundThreadId && !preserveExistingBinding && !configuredMcpOwnershipChanged && !(retainBackgroundPredecessor && isCodexAppServerLiveThreadBackgroundOnly(params.client, initialBoundThreadId))) await releaseRetainedThread(initialBoundThreadId);
2284
2325
  const started = await startFreshCodexThread(params, {
2285
2326
  ...requestContext,
2286
2327
  prebuiltPluginThreadConfig,
@@ -1,8 +1,8 @@
1
- import { T as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-BW1YeaIk.mjs";
1
+ import { T as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-Do2ZQrNP.mjs";
2
2
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-CeyYScUC.mjs";
3
- import { B as retainCodexAppServerLiveThread, N as isCodexAppServerLiveThreadClaimed, z as releaseCodexAppServerLiveThread } from "./shared-client-CkyTrNB8.mjs";
4
- import { f as unsubscribeCodexThreadBestEffort, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-DMJWXGxM.mjs";
5
- import { t as __exportAll } from "./session-binding-sidecars-BNSS6WL4.mjs";
3
+ import { B as releaseCodexAppServerLiveThread, N as isCodexAppServerLiveThreadClaimed, V as retainCodexAppServerLiveThread } from "./shared-client-BelwlhWf.mjs";
4
+ import { f as unsubscribeCodexThreadBestEffort, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-Bj4T3tcX.mjs";
5
+ import { t as __exportAll } from "./session-binding-sidecars-C9uEGpDX.mjs";
6
6
  import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
7
7
  import { runWithAsyncWorkResources } from "openclaw/plugin-sdk/agent-harness-tool-runtime";
8
8
  //#region extensions/codex/src/app-server/thread-ownership.ts
@@ -1,7 +1,7 @@
1
1
  import { i as CodexAppServerScopedRequestRejectedError, o as isCodexAppServerOverloadError } from "./rpc-error-DemqqaxE.mjs";
2
- import { n as requestCodexAppServerClientJson } from "./request-C6U8q2uz.mjs";
3
- import { g as CodexAdoptedThreadActiveError } from "./shared-client-CkyTrNB8.mjs";
4
- import { f as assertCodexThreadAcceptsDirectInput, o as isCodexAppServerPrewriteRequestCancellationError } from "./client--P8jwXvA.mjs";
2
+ import { n as requestCodexAppServerClientJson } from "./request-DTgD_jsY.mjs";
3
+ import { g as CodexAdoptedThreadActiveError } from "./shared-client-BelwlhWf.mjs";
4
+ import { f as assertCodexThreadAcceptsDirectInput, o as isCodexAppServerPrewriteRequestCancellationError } from "./client-Bxe8bl-K.mjs";
5
5
  import { AgentHarnessPreflightError, embeddedAgentLog, formatErrorMessage } from "openclaw/plugin-sdk/agent-harness-runtime";
6
6
  //#region extensions/codex/src/app-server/thread-policy.ts
7
7
  /** A refusal, not a failed native write: the ephemeral conversation must stay alive. */
@@ -2,8 +2,8 @@ import { r as isJsonObject } from "./protocol-CaPAVwe9.mjs";
2
2
  import { t as appendCodexGitConfigParameters } from "./config-utils-DN_YT7dE.mjs";
3
3
  import { d as readCodexEffectiveConfig, u as CODEX_SESSION_OVERRIDABLE_LAYER_TYPES } from "./config-options-DMFZkd3X.mjs";
4
4
  import { a as isCodexResponsesOAuthRun } from "./responses-oauth-CCV7aVYF.mjs";
5
- import { d as mergeCodexThreadConfigs, t as buildCodexProjectDocThreadConfig } from "./project-doc-thread-config-B0UI3f1D.mjs";
6
- import { o as hashCodexAppServerBindingFingerprint } from "./session-binding-BgsWcbdY.mjs";
5
+ import { d as mergeCodexThreadConfigs, t as buildCodexProjectDocThreadConfig } from "./project-doc-thread-config-Ds92xu17.mjs";
6
+ import { o as hashCodexAppServerBindingFingerprint } from "./session-binding-Dg0B6Zua.mjs";
7
7
  import { n as resolveCodexAppServerModelProvider, r as resolveCodexAppServerRequestModelSelection, t as CODEX_NATIVE_PERSONALITY_NONE } from "./thread-model-selection-DxposL4X.mjs";
8
8
  import { normalizeOptionalString, normalizeUniqueStringEntries, normalizeUniqueTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import crypto, * as crypto$1 from "node:crypto";
@@ -1,8 +1,8 @@
1
1
  import { i as CodexAppServerScopedRequestRejectedError, o as isCodexAppServerOverloadError, r as CodexAppServerRpcError } from "./rpc-error-DemqqaxE.mjs";
2
- import { r as publishCodexCatalogResume } from "./session-catalog-events-CEi6SuLQ.mjs";
3
- import { k as forgetCodexWorkspaceReferences, lt as isCodexAppServerStartupError } from "./shared-client-CkyTrNB8.mjs";
4
- import { m as assertCodexThreadResumeResponse, o as isCodexAppServerPrewriteRequestCancellationError } from "./client--P8jwXvA.mjs";
5
- import { f as unsubscribeCodexThreadBestEffort, i as assertCodexThreadResumeSubscription, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-DMJWXGxM.mjs";
2
+ import { r as publishCodexCatalogResume } from "./session-catalog-events-BmhPYZGw.mjs";
3
+ import { ft as isCodexAppServerStartupError, k as forgetCodexWorkspaceReferences } from "./shared-client-BelwlhWf.mjs";
4
+ import { m as assertCodexThreadResumeResponse, o as isCodexAppServerPrewriteRequestCancellationError } from "./client-Bxe8bl-K.mjs";
5
+ import { f as unsubscribeCodexThreadBestEffort, i as assertCodexThreadResumeSubscription, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-Bj4T3tcX.mjs";
6
6
  import { sanitizeTerminalText } from "openclaw/plugin-sdk/text-chunking";
7
7
  //#region extensions/codex/src/app-server/thread-resume.ts
8
8
  /** Owns Codex thread/resume subscription safety. */
@@ -2,7 +2,7 @@ import { t as readCodexAsyncQuestions } from "./async-questions-DdhOCwGi.mjs";
2
2
  import { a as readUpstreamUserText, i as readMirrorIdentity, n as attachCodexMirrorIdentity, o as takeCodexAssistantItemIds, r as attachUpstreamUserText } from "./upstream-prompt-provenance-Ccd9MFRJ.mjs";
3
3
  import { t as projectBoundedCodexThreadHistory } from "./transcript-history-projection-i-FVpyha.mjs";
4
4
  import { a as buildCodexMirrorIdempotencyKey, c as isMirroredAgentMessage, i as buildCodexMirrorDedupeIdentity, l as readCodexMirrorSourceFingerprint, n as attachCodexMirrorAttestation, o as fingerprintCodexMirrorSourceMessage, r as attachCodexMirrorRunId, t as applyCodexTranscriptTaint } from "./transcript-mirror-attestation-BzUXnrvv.mjs";
5
- import { t as __exportAll } from "./session-binding-sidecars-BNSS6WL4.mjs";
5
+ import { t as __exportAll } from "./session-binding-sidecars-C9uEGpDX.mjs";
6
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { deliverAgentHarnessUserInputPrompt, embeddedAgentLog, formatErrorMessage, projectAgentHarnessTranscriptMessageForDisplay, restorePreparedUserTurnOperationalMetaForRuntime, runAgentHarnessBeforeMessageWriteHook } from "openclaw/plugin-sdk/agent-harness-runtime";
8
8
  import { withCodexSessionTranscriptMirrorWrite } from "openclaw/plugin-sdk/codex-session-transcript-runtime";
@@ -1,6 +1,6 @@
1
1
  import { t as appendCodexGitConfigParameters } from "./config-utils-DN_YT7dE.mjs";
2
2
  import { r as normalizeCodexAppServerArgs } from "./launch-args-DbFCehO7.mjs";
3
- import { f as resolveManagedCodexNativeCommand } from "./managed-binary-DbKvGXKl.mjs";
3
+ import { f as resolveManagedCodexNativeCommand } from "./managed-binary-BwzkwiGo.mjs";
4
4
  import { i as recordCodexAppServerSpawnFailure, r as getCodexAppServerSpawnFailure } from "./spawn-error-CL3n6MAa.mjs";
5
5
  import { createHash, randomUUID } from "node:crypto";
6
6
  import { stripVTControlCharacters } from "node:util";
@@ -1,5 +1,5 @@
1
1
  import { r as resolveCodexAppServerUserHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
2
- import "./config-BfrAlTMT.mjs";
2
+ import "./config-BZYTxljj.mjs";
3
3
  import { t as codexWebSocketDataToBuffer } from "./websocket-data-XlRvt8Ys.mjs";
4
4
  import path from "node:path";
5
5
  import { EventEmitter } from "node:events";
@@ -1,6 +1,6 @@
1
1
  import { r as isJsonObject } from "./protocol-CaPAVwe9.mjs";
2
2
  import { n as waitForPromiseOrAbort, t as abortReason } from "./timeout-D0mEWSGG.mjs";
3
- import { b as readCodexTurnCompletedNotification } from "./client--P8jwXvA.mjs";
3
+ import { b as readCodexTurnCompletedNotification } from "./client-Bxe8bl-K.mjs";
4
4
  import { normalizeOptionalString, readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { AsyncResource } from "node:async_hooks";
6
6
  import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
@@ -1,5 +1,5 @@
1
1
  import { n as flattenCodexDynamicToolFunctions, r as isJsonObject } from "./protocol-CaPAVwe9.mjs";
2
- import { g as sessionBindingIdentity } from "./session-binding-record-C_THntMe.mjs";
2
+ import { g as sessionBindingIdentity } from "./session-binding-record-BpWF2Sus.mjs";
3
3
  import { d as readCodexPluginConfig } from "./config-parsing-DsWSCPHO.mjs";
4
4
  import { s as assertCodexModelBackedReviewerEffectiveConfig } from "./config-options-DMFZkd3X.mjs";
5
5
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-CeyYScUC.mjs";
@@ -9,24 +9,24 @@ import { r as projectCodexUserItemText } from "./transcript-history-projection-i
9
9
  import { n as codexUpstreamBaseline, t as codexLastTerminalTurnId } from "./session-upstream-marker-D15C9NHp.mjs";
10
10
  import { r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-DRb-niJc.mjs";
11
11
  import { n as readCodexSessionMeta } from "./session-catalog-provenance-Dg9s12z-.mjs";
12
- import "./request-C6U8q2uz.mjs";
13
- import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-BfrAlTMT.mjs";
14
- import { r as resolveCodexSupervisionAppServerRuntimeOptions } from "./config-runtime-BZRizyuG.mjs";
12
+ import "./request-DTgD_jsY.mjs";
13
+ import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-BZYTxljj.mjs";
14
+ import { r as resolveCodexSupervisionAppServerRuntimeOptions } from "./config-runtime-CqCrHEAU.mjs";
15
15
  import { l as readCodexMirrorSourceFingerprint, o as fingerprintCodexMirrorSourceMessage } from "./transcript-mirror-attestation-BzUXnrvv.mjs";
16
- import { A as hasCodexAppServerLiveThread, E as claimCodexAppServerLiveThread, l as readCodexAppServerClientDesktopGenerationFingerprint } from "./shared-client-CkyTrNB8.mjs";
17
- import { f as assertCodexThreadAcceptsDirectInput, o as isCodexAppServerPrewriteRequestCancellationError, p as assertCodexThreadForkResponse } from "./client--P8jwXvA.mjs";
18
- import { d as mergeCodexThreadConfigs, i as buildCodexPluginThreadConfig, p as shouldBuildCodexPluginThreadConfig } from "./project-doc-thread-config-B0UI3f1D.mjs";
19
- import { T as fingerprintUserMcpServersConfigPatch, _ as buildDeveloperInstructions, a as buildCodexThreadConfiguration, b as codexDynamicToolsFingerprint, h as resolveCodexWebSearchPlan, w as fingerprintJsonObject } from "./thread-requests-BjawdIVV.mjs";
20
- import "./session-binding-BgsWcbdY.mjs";
21
- import "./thread-ownership-Bmk5a2Gu.mjs";
16
+ import { A as hasCodexAppServerLiveThread, E as claimCodexAppServerLiveThread, l as readCodexAppServerClientDesktopGenerationFingerprint } from "./shared-client-BelwlhWf.mjs";
17
+ import { f as assertCodexThreadAcceptsDirectInput, o as isCodexAppServerPrewriteRequestCancellationError, p as assertCodexThreadForkResponse } from "./client-Bxe8bl-K.mjs";
18
+ import { d as mergeCodexThreadConfigs, i as buildCodexPluginThreadConfig, p as shouldBuildCodexPluginThreadConfig } from "./project-doc-thread-config-Ds92xu17.mjs";
19
+ import { T as fingerprintUserMcpServersConfigPatch, _ as buildDeveloperInstructions, a as buildCodexThreadConfiguration, b as codexDynamicToolsFingerprint, h as resolveCodexWebSearchPlan, w as fingerprintJsonObject } from "./thread-requests-6Dy8hyXF.mjs";
20
+ import "./session-binding-Dg0B6Zua.mjs";
21
+ import "./thread-ownership-DxW6b6fR.mjs";
22
22
  import { i as resolveCodexNativeExecutionPolicy } from "./native-execution-policy-D09tLP-u.mjs";
23
- import { n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy } from "./thread-policy-DYtvZ5Ay.mjs";
24
- import { b as isCodexDynamicToolExcluded, f as codexNativeHookRemoteCredentialPath, i as buildCodexNativeHookRelayConfig, l as resolveCodexNativeHookRelayEvents, o as buildCodexNativeHookRelayId, r as assertCodexNativeHookRelayAllowed } from "./native-hook-relay-CocOW9YS.mjs";
25
- import { c as parseCodexNativeToolCatalog, i as checkCodexThreadAppAvailability, n as resolveCodexNativeSkillIsolation, t as applyCodexNativeSkillIsolation } from "./native-skill-isolation-DL4-PQa4.mjs";
26
- import { c as prepareCodexWorkspaceDeveloperInstructions } from "./attempt-workspace-context-GYPLawX6.mjs";
27
- import { n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-C7pYYpvh.mjs";
28
- import { n as prepareCodexSessionInitialization } from "./session-initialization-Dn3vveGv.mjs";
29
- import { createImportedCodexSession } from "./session-history-import-BwPKwcNi.mjs";
23
+ import { n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy } from "./thread-policy-j-BAwvSk.mjs";
24
+ import { b as isCodexDynamicToolExcluded, f as codexNativeHookRemoteCredentialPath, i as buildCodexNativeHookRelayConfig, l as resolveCodexNativeHookRelayEvents, o as buildCodexNativeHookRelayId, r as assertCodexNativeHookRelayAllowed } from "./native-hook-relay-COcu2b4l.mjs";
25
+ import { c as parseCodexNativeToolCatalog, i as checkCodexThreadAppAvailability, n as resolveCodexNativeSkillIsolation, t as applyCodexNativeSkillIsolation } from "./native-skill-isolation-B8cWhSFy.mjs";
26
+ import { c as prepareCodexWorkspaceDeveloperInstructions } from "./attempt-workspace-context-DxHd71bH.mjs";
27
+ import { n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-DMfkFwZi.mjs";
28
+ import { n as prepareCodexSessionInitialization } from "./session-initialization-Bztyf-sf.mjs";
29
+ import { createImportedCodexSession } from "./session-history-import-BZHN6RtG.mjs";
30
30
  import { isRecord, normalizeOptionalString, readNonBlankString } from "openclaw/plugin-sdk/string-coerce-runtime";
31
31
  import { randomUUID } from "node:crypto";
32
32
  import { isDeepStrictEqual } from "node:util";
@@ -1,7 +1,7 @@
1
1
  import { t as buildCodexAppServerUsageSnapshot } from "./rate-limits-BpfURnuy.mjs";
2
- import { t as readCodexAppServerUsage } from "./request-C6U8q2uz.mjs";
3
- import "./config-BfrAlTMT.mjs";
4
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-BZRizyuG.mjs";
2
+ import { t as readCodexAppServerUsage } from "./request-DTgD_jsY.mjs";
3
+ import "./config-BZYTxljj.mjs";
4
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-CqCrHEAU.mjs";
5
5
  import { CODEX_APP_SERVER_AUTH_MARKER } from "openclaw/plugin-sdk/agent-runtime";
6
6
  //#region extensions/codex/src/app-server/usage.ts
7
7
  /** Handles the synthetic usage credential for a Codex-backed OpenAI route. */
@@ -1,7 +1,7 @@
1
1
  import { r as isJsonObject } from "./protocol-CaPAVwe9.mjs";
2
2
  import { a as shouldRefreshCodexRateLimitsForUsageLimitMessage, i as resolveCodexUsageLimitResetAtMs, n as formatCodexUsageLimitErrorMessage } from "./rate-limits-BpfURnuy.mjs";
3
3
  import { t as CODEX_CONTROL_METHODS } from "./capabilities-DAS-JX1z.mjs";
4
- import { G as rememberCodexRateLimitsRead, U as readCodexRateLimitsRevision, W as readRecentCodexRateLimits } from "./shared-client-CkyTrNB8.mjs";
4
+ import { G as readRecentCodexRateLimits, K as rememberCodexRateLimitsRead, W as readCodexRateLimitsRevision } from "./shared-client-BelwlhWf.mjs";
5
5
  import { readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { markAuthProfileBlockedUntil } from "openclaw/plugin-sdk/agent-runtime";
7
7
  import { embeddedAgentLog, formatErrorMessage } from "openclaw/plugin-sdk/agent-harness-runtime";
@@ -1,5 +1,5 @@
1
- import { m as buildCodexNativeWebSearchThreadConfig } from "./thread-requests-BjawdIVV.mjs";
2
- import { runBoundedCodexAppServerTurn } from "./bounded-turn-BQkmyyjB.mjs";
1
+ import { m as buildCodexNativeWebSearchThreadConfig } from "./thread-requests-6Dy8hyXF.mjs";
2
+ import { runBoundedCodexAppServerTurn } from "./bounded-turn-DnxnHHZP.mjs";
3
3
  import { t as projectCodexWebSearchItem } from "./web-search-item-DHVuNSqk.mjs";
4
4
  import { readStringParam, resolveSearchTimeoutSeconds, wrapWebContent } from "openclaw/plugin-sdk/provider-web-search";
5
5
  //#region extensions/codex/src/web-search-provider.runtime.ts
@@ -1,6 +1,6 @@
1
1
  import { a as resolveCodexPrivateLauncher, n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
2
- import { n as resolveCodexAppServerSpawnEnv, r as resolveCodexAppServerSpawnInvocation } from "./transport-stdio-Bq160Dhv.mjs";
3
- import { t as resolveCodexDoctorStartOptions } from "./doctor-start-options-8uIBXIzR.mjs";
2
+ import { n as resolveCodexAppServerSpawnEnv, r as resolveCodexAppServerSpawnInvocation } from "./transport-stdio-BVeWgcK6.mjs";
3
+ import { t as resolveCodexDoctorStartOptions } from "./doctor-start-options-CpcBuzLb.mjs";
4
4
  import { runUtf8CommandWithTimeout } from "openclaw/plugin-sdk/process-runtime";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs/promises";