@openclaw/codex 2026.10.5-beta.4 → 2026.10.6

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 (122) hide show
  1. package/dist/.setup/{account-usage-runtime-CoVpNIlD.mjs → account-usage-runtime-E3SrjJVn.mjs} +3 -3
  2. package/dist/.setup/{app-server-policy-D_zv8J7V.mjs → app-server-policy-V8zuN8q_.mjs} +1 -1
  3. package/dist/.setup/{apply-BXDMd05l.mjs → apply-C3s-1Zxe.mjs} +14 -14
  4. package/dist/.setup/{attempt-client-cleanup-zNuNTKVr.mjs → attempt-client-cleanup-BVww-ct8.mjs} +5 -5
  5. package/dist/.setup/attempt-terminal-sZutF0WY.mjs +1 -0
  6. package/dist/.setup/{attempt-workspace-context-CcwP3DA3.mjs → attempt-workspace-context-BkA0W8Jy.mjs} +1 -1
  7. package/dist/.setup/{auth-binding-BaxlhaNx.mjs → auth-binding-BFTkrP_b.mjs} +1 -1
  8. package/dist/.setup/{auth-cache-key-f8ODJ_OX.mjs → auth-cache-key-CXK7tmkb.mjs} +6 -5
  9. package/dist/.setup/{auth-profile-health-oHizqgye.mjs → auth-profile-health-B05o5BAm.mjs} +12 -5
  10. package/dist/.setup/{binding-connection-B7HAAZSI.mjs → binding-connection-C0t9TBX_.mjs} +2 -2
  11. package/dist/.setup/{binding-connection.runtime-DAXn7iFl.mjs → binding-connection.runtime-Wdm5G_bw.mjs} +2 -2
  12. package/dist/.setup/{bounded-turn-isolation-BfDAo-qZ.mjs → bounded-turn-isolation-CIQJykuM.mjs} +4 -4
  13. package/dist/.setup/{bounded-turn-DfIJtRlv.mjs → bounded-turn-vdpL2efh.mjs} +13 -12
  14. package/dist/.setup/{build-state-Ds14X10-.mjs → build-state-DPMC9C_U.mjs} +1 -1
  15. package/dist/.setup/{client-D93nbdB8.mjs → client-Div-zqnz.mjs} +22 -18
  16. package/dist/.setup/{client-catalog-response-CuVLp4I0.mjs → client-catalog-response-Dtob_lVt.mjs} +1 -1
  17. package/dist/.setup/{command-dispatch-DxdH5a9-.mjs → command-dispatch-ByO36LmS.mjs} +1 -1
  18. package/dist/.setup/{command-handlers-fiYvYYq0.mjs → command-handlers-CJqo6LZS.mjs} +24 -24
  19. package/dist/.setup/{command-rpc-HIvsy3wS.mjs → command-rpc-Co0UzT-T.mjs} +11 -11
  20. package/dist/.setup/{compact-ClZ7Ar7L.mjs → compact-CzNBg4cQ.mjs} +13 -13
  21. package/dist/.setup/{computer-use-DL2v3Kxq.mjs → computer-use-BcDrQlxi.mjs} +8 -8
  22. package/dist/.setup/{config-C1YVVLEA.mjs → config-LQemoqTL.mjs} +5 -6
  23. package/dist/.setup/{config-options-DDzeNQ8m.mjs → config-options-CZmH25Xq.mjs} +2 -3
  24. package/dist/.setup/{config-parsing-DsWSCPHO.mjs → config-parsing-CVK2Q463.mjs} +44 -6
  25. package/dist/.setup/{config-runtime-DWzK-k0n.mjs → config-runtime-DGB1-VbB.mjs} +2 -2
  26. package/dist/.setup/{config-security-clxAZYWX.mjs → config-security-DpkGNy5T.mjs} +2 -3
  27. package/dist/.setup/{conversation-binding-BieJZRRV.mjs → conversation-binding-Dcv7_rs-.mjs} +42 -33
  28. package/dist/.setup/{conversation-binding-data-UgLuTSQT.mjs → conversation-binding-data-GRGSgAro.mjs} +1 -1
  29. package/dist/.setup/{conversation-control-GXM3unE4.mjs → conversation-control-BtPxevoK.mjs} +4 -4
  30. package/dist/.setup/{cyber-failover-D4dgNfFf.mjs → cyber-failover-B-q6oT01.mjs} +2 -2
  31. package/dist/.setup/{cyber-failover-notice-ljgGGL0s.mjs → cyber-failover-notice-poL3Advd.mjs} +1 -1
  32. package/dist/.setup/{doctor-start-options-JjTAl-q_.mjs → doctor-start-options-C28ek2hD.mjs} +5 -5
  33. package/dist/.setup/{dynamic-tool-build-DcaPmBlE.mjs → dynamic-tool-build-DjbDZzOJ.mjs} +5 -5
  34. package/dist/.setup/{dynamic-tools-CnQFnNKH.mjs → dynamic-tools-75qoSOch.mjs} +10 -10
  35. package/dist/.setup/{effective-mcp-catalog-B5HKFZNK.mjs → effective-mcp-catalog-Dz0J8iAj.mjs} +7 -7
  36. package/dist/.setup/{ephemeral-turn-De3qb8EQ.mjs → ephemeral-turn-K_d99r9P.mjs} +2 -2
  37. package/dist/.setup/{inference-proxy-BDWV0djM.mjs → inference-proxy-DSnaS-uS.mjs} +5 -4
  38. package/dist/.setup/{isolated-completion-BPJdvk5F.mjs → isolated-completion-dNt4kRLw.mjs} +7 -7
  39. package/dist/.setup/{managed-binary-BtIjV7yN.mjs → managed-binary-DwC9wxch.mjs} +1 -1
  40. package/dist/.setup/{mcp-app-session-preparation-Dz2GOwyE.mjs → mcp-app-session-preparation-C7LyxbAm.mjs} +12 -17
  41. package/dist/.setup/{mcp-tool-metadata-DW41snf3.mjs → mcp-tool-metadata-_sawBkIh.mjs} +1 -1
  42. package/dist/.setup/{model-catalog-ZNwltCKl.mjs → model-catalog-BRJ7RMXY.mjs} +8 -8
  43. package/dist/.setup/{models-BHpbAuz8.mjs → models-CusrgpiY.mjs} +3 -3
  44. package/dist/.setup/{native-auth-esN5MdIv.mjs → native-auth-CveRfTpz.mjs} +4 -4
  45. package/dist/.setup/{native-hook-relay-wq7jrNLk.mjs → native-hook-relay-BvwSj5bt.mjs} +5 -5
  46. package/dist/.setup/{native-mcp-app-DX3nyTtc.mjs → native-mcp-app-DDEtVQED.mjs} +6 -6
  47. package/dist/.setup/{native-skill-isolation-DSBeF-Yy.mjs → native-skill-isolation-Cx2AkUco.mjs} +3 -3
  48. package/dist/.setup/{native-subagent-monitor-DOLEIf9r.mjs → native-subagent-monitor-CBYFkNsB.mjs} +67 -20
  49. package/dist/.setup/{native-task-assignments-DimsQ9Qa.mjs → native-task-assignments-DYL9uxNe.mjs} +3 -3
  50. package/dist/.setup/{node-cli-sessions-CzKg2nGq.mjs → node-cli-sessions-BxVYZNuY.mjs} +2 -2
  51. package/dist/.setup/{node-exec-server.runtime-BWkULhBM.mjs → node-exec-server.runtime-8RehgPdQ.mjs} +2 -2
  52. package/dist/.setup/{plan-41-YOBMq.mjs → plan-BKFbfVsV.mjs} +5 -5
  53. package/dist/.setup/{plugin-activation-D7WkJMvU.mjs → plugin-activation-BgfNFH2L.mjs} +2 -2
  54. package/dist/.setup/{plugin-approval-roundtrip-CD88q3yx.mjs → plugin-approval-roundtrip-CXXXhuKi.mjs} +1 -1
  55. package/dist/.setup/{plugin-inventory-CYgdo14P.mjs → plugin-inventory-OhiCoyPH.mjs} +1 -1
  56. package/dist/.setup/{plugin-marketplace-discovery-BblHM3DU.mjs → plugin-marketplace-discovery-BNyI1zd_.mjs} +1 -1
  57. package/dist/.setup/{project-doc-thread-config-BVcvnps8.mjs → project-doc-thread-config-D_sWbxFR.mjs} +6 -6
  58. package/dist/.setup/{provider-LWKll6dV.mjs → provider-BVV8SWlx.mjs} +4 -4
  59. package/dist/.setup/{provider-capabilities-Dn2WwH4P.mjs → provider-capabilities-B-pTlDsf.mjs} +1 -1
  60. package/dist/.setup/{request-Bo0kKABI.mjs → request-m-H-7FMu.mjs} +6 -6
  61. package/dist/.setup/{run-attempt-ClU8MxhZ.mjs → run-attempt-Ch1emiZE.mjs} +113 -74
  62. package/dist/.setup/{run-attempt-lifecycle-KN4oh-7O.mjs → run-attempt-lifecycle-DN-ATDp9.mjs} +1 -1
  63. package/dist/.setup/{runtime-artifact-C13pR7tD.mjs → runtime-artifact-CCPLKFGR.mjs} +3 -3
  64. package/dist/.setup/{runtime-artifact-connection-jS5DeCok.mjs → runtime-artifact-connection-dFoSOKy7.mjs} +3 -3
  65. package/dist/.setup/{sandbox-guard-DIImwCy1.mjs → sandbox-guard-Cf9XMRrg.mjs} +2 -2
  66. package/dist/.setup/{service-tier-normalization-BPgw2Wdt.mjs → service-tier-normalization-C2OVdF6E.mjs} +4 -1
  67. package/dist/.setup/{session-binding-JEHNMPsr.mjs → session-binding-BDnNz-Co.mjs} +3 -3
  68. package/dist/.setup/{session-binding-record-DU_0biMD.mjs → session-binding-record-C2kDBZhx.mjs} +2 -2
  69. package/dist/.setup/{session-binding-record-codec-BpH8u_G9.mjs → session-binding-record-codec-CWQXr9os.mjs} +1 -2
  70. package/dist/.setup/{session-binding-sidecars-DD-enC8w.mjs → session-binding-sidecars-DijNZb31.mjs} +1 -1
  71. package/dist/.setup/{session-catalog-adoption-Ca3OYGYM.mjs → session-catalog-adoption-Cl6fHxS5.mjs} +5 -5
  72. package/dist/.setup/{session-catalog-archive-Bv6gV7x9.mjs → session-catalog-archive-CUU7jEkO.mjs} +5 -5
  73. package/dist/.setup/{session-catalog-events-kR2Ot6nX.mjs → session-catalog-events-BBV3DMG7.mjs} +5 -5
  74. package/dist/.setup/{session-catalog-index-CrnfVEnT.mjs → session-catalog-index-B00GIRi3.mjs} +8 -8
  75. package/dist/.setup/{session-catalog-index-order-CTfoefow.mjs → session-catalog-index-order-B30rjUEJ.mjs} +1 -1
  76. package/dist/.setup/{session-catalog-limits-BynIoOYm.mjs → session-catalog-limits-Daqt3JLk.mjs} +1 -1
  77. package/dist/.setup/{session-catalog-list-request-D4MYNgDB.mjs → session-catalog-list-request-SJyGz02j.mjs} +3 -3
  78. package/dist/.setup/{session-catalog-native-projection-CWqCU1I_.mjs → session-catalog-native-projection-BJupfCyt.mjs} +4 -4
  79. package/dist/.setup/{session-catalog-node-adoption-BdP9Zjqo.mjs → session-catalog-node-adoption-D11N0CMr.mjs} +2 -2
  80. package/dist/.setup/{session-catalog-node-continue-CNJibO4_.mjs → session-catalog-node-continue-Ct62GeL1.mjs} +5 -5
  81. package/dist/.setup/{session-catalog-node-lookup-BH_DBGa9.mjs → session-catalog-node-lookup-DQVe6vhs.mjs} +2 -2
  82. package/dist/.setup/{session-catalog-parsing-DkeoVn60.mjs → session-catalog-parsing-B4OyhylL.mjs} +1 -1
  83. package/dist/.setup/{session-catalog-projection-BzHiV818.mjs → session-catalog-projection-CYgFTaYm.mjs} +4 -4
  84. package/dist/.setup/{session-catalog-source-DGuRdGvM.mjs → session-catalog-source-Xt6-hNns.mjs} +1 -1
  85. package/dist/.setup/{session-cli-GwU0izn-.mjs → session-cli-BoJSZfGd.mjs} +1 -1
  86. package/dist/.setup/{session-history-import-CaO8s6ta.mjs → session-history-import-DgwRu2eD.mjs} +4 -4
  87. package/dist/.setup/{session-initialization-Bi_2DKhc.mjs → session-initialization-BjVtsTzi.mjs} +2 -2
  88. package/dist/.setup/{session-permission-policy-CD2MAWU8.mjs → session-permission-policy-C7kYxPGd.mjs} +1 -1
  89. package/dist/.setup/{session-retirement-B3U5hpGJ.mjs → session-retirement-DIqF1vQ4.mjs} +6 -6
  90. package/dist/.setup/{settled-turn-finalizer-CYCVpTv2.mjs → settled-turn-finalizer-dVv34G_E.mjs} +5 -5
  91. package/dist/.setup/{shared-client-BCx1wbyA.mjs → shared-client-CNGDTv68.mjs} +32 -20
  92. package/dist/.setup/{side-question-Bz2UQW0l.mjs → side-question-D1Wa21s9.mjs} +22 -22
  93. package/dist/.setup/{source-DipMO9hL.mjs → source-DyVuYlTN.mjs} +4 -4
  94. package/dist/.setup/{thread-lifecycle-run-C_aYiYqk.mjs → thread-lifecycle-run-DjSfTw6v.mjs} +66 -42
  95. package/dist/.setup/{thread-ownership-BoUd0i6L.mjs → thread-ownership-BBsOFzCM.mjs} +4 -4
  96. package/dist/.setup/{thread-policy-B3wBRNph.mjs → thread-policy-BEiS7ITh.mjs} +3 -3
  97. package/dist/.setup/{thread-requests-BgzJwJtS.mjs → thread-requests-DjyDmCo4.mjs} +11 -32
  98. package/dist/.setup/{thread-resume-D-3bsr1j.mjs → thread-resume-BqOca2Iy.mjs} +4 -4
  99. package/dist/.setup/{transcript-mirror-Bee2o6jj.mjs → transcript-mirror-DVEzdOs0.mjs} +1 -1
  100. package/dist/.setup/{transport-stdio-CRWTkKOn.mjs → transport-stdio-lgeKKHyw.mjs} +2 -17
  101. package/dist/.setup/{transport-websocket-DIyPfkHo.mjs → transport-websocket-CEBjEtFP.mjs} +1 -1
  102. package/dist/.setup/{turn-router-DBVMToGo.mjs → turn-router-DM0fRrYI.mjs} +1 -1
  103. package/dist/.setup/{upstream-session-fork-p5fwKi7w.mjs → upstream-session-fork-CxgShpwe.mjs} +19 -19
  104. package/dist/.setup/{usage-C2Kq7oej.mjs → usage-DV8T9Yau.mjs} +3 -3
  105. package/dist/.setup/{usage-limit-error-BQX8RHAd.mjs → usage-limit-error-ryR1PGou.mjs} +1 -1
  106. package/dist/.setup/{web-search-provider.runtime-D89djc7e.mjs → web-search-provider.runtime-DkciK2gS.mjs} +2 -2
  107. package/dist/.setup/{workspace-write-sandbox-probe-BDWO2Qkh.mjs → workspace-write-sandbox-probe-DvfWTvuR.mjs} +2 -2
  108. package/dist/api.js +4 -4
  109. package/dist/catalog-page.worker.js +1 -1
  110. package/dist/cli-metadata.js +1 -1
  111. package/dist/doctor-contract-api.js +5 -5
  112. package/dist/harness.js +22 -22
  113. package/dist/index.js +56 -56
  114. package/dist/media-understanding-provider.js +2 -2
  115. package/dist/migration-provider-api.js +1 -2
  116. package/dist/native-session-binding-api.js +1 -2
  117. package/dist/provider-discovery.js +1 -1
  118. package/dist/session-history.worker.js +1 -2
  119. package/package.json +4 -4
  120. package/dist/.setup/attempt-terminal-jO5IMj9K.mjs +0 -2
  121. package/dist/.setup/config-contracts.shared-D85SGEuq.mjs +0 -4
  122. package/dist/.setup/config-utils-DN_YT7dE.mjs +0 -47
@@ -1,11 +1,11 @@
1
1
  import { i as isJsonObject, r as flattenCodexDynamicToolFunctions } from "./protocol-CANUwXJ3.mjs";
2
- import { n as matchesPendingSupervisionBranch } from "./session-binding-record-codec-BpH8u_G9.mjs";
3
- import { m as sessionBindingIdentity, n as assertCodexBindingMayBeReplaced } from "./session-binding-record-DU_0biMD.mjs";
4
- import { l as fingerprintCodexPolicy } from "./config-security-clxAZYWX.mjs";
5
- import { f as resolveCodexPluginsPolicy } from "./config-parsing-DsWSCPHO.mjs";
2
+ import { n as matchesPendingSupervisionBranch } from "./session-binding-record-codec-CWQXr9os.mjs";
3
+ import { m as sessionBindingIdentity, n as assertCodexBindingMayBeReplaced } from "./session-binding-record-C2kDBZhx.mjs";
4
+ import { l as fingerprintCodexPolicy } from "./config-security-DpkGNy5T.mjs";
5
+ import { f as resolveCodexPluginsPolicy } from "./config-parsing-CVK2Q463.mjs";
6
6
  import { n as resolveCodexAppServerLocalHomeDir, t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
7
- import { d as readCodexEffectiveConfig, s as assertCodexModelBackedReviewerEffectiveConfig, u as CODEX_SESSION_OVERRIDABLE_LAYER_TYPES } from "./config-options-DDzeNQ8m.mjs";
8
- import { S as retainSharedCodexAppServerClientByInstanceId, d as getCurrentSharedClientEntry } from "./auth-cache-key-f8ODJ_OX.mjs";
7
+ import { d as readCodexEffectiveConfig, s as assertCodexModelBackedReviewerEffectiveConfig, u as CODEX_SESSION_OVERRIDABLE_LAYER_TYPES } from "./config-options-CZmH25Xq.mjs";
8
+ import { S as retainSharedCodexAppServerClientByInstanceId, d as getCurrentSharedClientEntry } from "./auth-cache-key-CXK7tmkb.mjs";
9
9
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-CeyYScUC.mjs";
10
10
  import { o as isCodexAppServerOverloadError, r as CodexAppServerRpcError, s as isCodexThreadReadMissingError } from "./rpc-error-C98SHchT.mjs";
11
11
  import { t as codexCatalogHomeId } from "./session-catalog-home-id-vlih0B_g.mjs";
@@ -13,34 +13,34 @@ import { r as withAbortableTimeout } from "./timeout-D0mEWSGG.mjs";
13
13
  import { t as projectBoundedCodexThreadHistory } from "./transcript-history-projection-DfKcoZCB.mjs";
14
14
  import { a as defaultCodexAppInventoryCache, t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
15
15
  import { n as readCodexSessionMeta } from "./session-catalog-provenance-CmsOE5mh.mjs";
16
- import { t as assertCodexSessionRuntimeOwnership } from "./binding-connection-B7HAAZSI.mjs";
17
- import { c as resolveRecoverableCodexPluginConfigKeys } from "./plugin-inventory-CYgdo14P.mjs";
18
- import "./config-C1YVVLEA.mjs";
16
+ import { t as assertCodexSessionRuntimeOwnership } from "./binding-connection-C0t9TBX_.mjs";
17
+ import { c as resolveRecoverableCodexPluginConfigKeys } from "./plugin-inventory-OhiCoyPH.mjs";
18
+ import "./config-LQemoqTL.mjs";
19
19
  import { c as resolveCodexContextEngineProjectionMaxChars } from "./context-engine-projection-ps-yn_ci.mjs";
20
20
  import { n as normalizeCodexAppServerBindingModelProvider } from "./auth-profile-CgHQ8Vot.mjs";
21
- import { $ as createCodexEphemeralThreadPolicy, A as bindCodexInferenceThread, B as isCodexAppServerClientRuntimeLive, C as CodexThreadBindingConflictError, F as consumeCodexAppServerLiveThread, H as isCodexAppServerLiveThreadProtected, K as releaseCodexAppServerLiveThread, M as getCodexInferenceThreadQualification, N as prepareCodexInferenceThreadConfig, S as CodexAdoptedThreadActiveError, T as CodexThreadStartRequestError, V as isCodexAppServerLiveThreadClaimed, Y as unsubscribeCodexAppServerLiveThread, j as getCodexInferenceThread, k as assertCodexInferenceRouteConfig, n as captureCodexAppServerClientLifetime, w as CodexThreadClientReplacementError, z as hasCodexAppServerSiblingThreadWork } from "./shared-client-BCx1wbyA.mjs";
22
- import { C as resolveCodexThreadRolloutPath, F as getCodexAppServerClientInstanceId, L as resolveCodexAppServerClientInstanceId, S as readSupervisionResponseThreadId, c as isCodexAppServerRequestTimeoutError, g as assertCodexThreadStartResponse, m as assertCodexThreadForkResponse, p as assertCodexThreadAcceptsDirectInput, v as assertExactSupervisionModelSelection } from "./client-D93nbdB8.mjs";
23
- import { r as hasCodexAppServerSiblingRouteWork } from "./turn-router-DBVMToGo.mjs";
24
- 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-zNuNTKVr.mjs";
25
- 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-BVcvnps8.mjs";
26
- 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-BgzJwJtS.mjs";
27
- import { i as resolveCodexSessionBinding, o as hashCodexAppServerBindingFingerprint } from "./session-binding-JEHNMPsr.mjs";
21
+ import { A as bindCodexInferenceThread, B as isCodexAppServerClientRuntimeLive, C as CodexThreadBindingConflictError, F as consumeCodexAppServerLiveThread, H as isCodexAppServerLiveThreadClaimed, M as getCodexInferenceThreadQualification, N as prepareCodexInferenceThreadConfig, S as CodexAdoptedThreadActiveError, T as CodexThreadStartRequestError, U as isCodexAppServerLiveThreadProtected, V as isCodexAppServerLiveThreadBackgroundOnly, X as unsubscribeCodexAppServerLiveThread, et as createCodexEphemeralThreadPolicy, j as getCodexInferenceThread, k as assertCodexInferenceRouteConfig, n as captureCodexAppServerClientLifetime, q as releaseCodexAppServerLiveThread, w as CodexThreadClientReplacementError, z as hasCodexAppServerSiblingThreadWork } from "./shared-client-CNGDTv68.mjs";
22
+ import { C as resolveCodexThreadRolloutPath, F as getCodexAppServerClientInstanceId, L as resolveCodexAppServerClientInstanceId, S as readSupervisionResponseThreadId, c as isCodexAppServerRequestTimeoutError, g as assertCodexThreadStartResponse, m as assertCodexThreadForkResponse, p as assertCodexThreadAcceptsDirectInput, v as assertExactSupervisionModelSelection } from "./client-Div-zqnz.mjs";
23
+ import { r as hasCodexAppServerSiblingRouteWork } from "./turn-router-DM0fRrYI.mjs";
24
+ 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-BVww-ct8.mjs";
25
+ 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-D_sWbxFR.mjs";
26
+ 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-DjyDmCo4.mjs";
27
+ import { i as resolveCodexSessionBinding, o as hashCodexAppServerBindingFingerprint } from "./session-binding-BDnNz-Co.mjs";
28
28
  import { i as resolveCodexAppServerThreadModelSelection, n as resolveCodexAppServerModelProvider } from "./thread-model-selection-DcVebr8N.mjs";
29
- import { c as withExclusiveCodexAppServerThread, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-BoUd0i6L.mjs";
30
- import { a as refreshCodexThreadInstructions, i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy, r as assertAdoptedCodexThreadResumeAllowed, t as CodexIncognitoPolicyChangeError } from "./thread-policy-B3wBRNph.mjs";
31
- import { t as resumeCodexAppServerThread } from "./thread-resume-D-3bsr1j.mjs";
32
- import { r as readCodexMcpToolConnectorId } from "./mcp-tool-metadata-DW41snf3.mjs";
33
- import { n as disableCodexPluginThreadConfig } from "./dynamic-tool-build-DcaPmBlE.mjs";
34
- import { n as CodexManagedHooksOnlyError, r as assertCodexNativeHookRelayAllowed } from "./native-hook-relay-wq7jrNLk.mjs";
29
+ import { c as withExclusiveCodexAppServerThread, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-BBsOFzCM.mjs";
30
+ import { a as refreshCodexThreadInstructions, i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy, r as assertAdoptedCodexThreadResumeAllowed, t as CodexIncognitoPolicyChangeError } from "./thread-policy-BEiS7ITh.mjs";
31
+ import { t as resumeCodexAppServerThread } from "./thread-resume-BqOca2Iy.mjs";
32
+ import { r as readCodexMcpToolConnectorId } from "./mcp-tool-metadata-_sawBkIh.mjs";
33
+ import { n as disableCodexPluginThreadConfig } from "./dynamic-tool-build-DjbDZzOJ.mjs";
34
+ import { n as CodexManagedHooksOnlyError, r as assertCodexNativeHookRelayAllowed } from "./native-hook-relay-BvwSj5bt.mjs";
35
35
  import { t as defaultCodexPluginMetadataCache } from "./plugin-metadata-cache-Bi8TAPwX.mjs";
36
- 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-DSBeF-Yy.mjs";
36
+ 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-Cx2AkUco.mjs";
37
37
  import { asOptionalRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
38
38
  import crypto from "node:crypto";
39
39
  import { isDeepStrictEqual } from "node:util";
40
40
  import { resolveSessionAgentIdsStrict } from "openclaw/plugin-sdk/agent-scope-runtime";
41
41
  import path from "node:path";
42
- import { isIncognitoSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
43
42
  import { createStageTimingTracker, formatStageTimings, racePromiseWithAbortSignal } from "openclaw/plugin-sdk/time-runtime";
43
+ import { isIncognitoSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
44
44
  import { resolveAgentDir as resolveAgentDir$1 } from "openclaw/plugin-sdk/agent-runtime";
45
45
  import { AgentHarnessPreflightError, embeddedAgentLog, formatErrorMessage, isActiveHarnessContextEngine, isHostScopedAgentToolActive } from "openclaw/plugin-sdk/agent-harness-runtime";
46
46
  import { buildCodexUserMcpServersThreadConfigPatchForRun } from "openclaw/plugin-sdk/codex-mcp-projection";
@@ -825,7 +825,7 @@ async function prepareCodexThreadLifecyclePreflight(params) {
825
825
  if (restrictedToolSurface && params.nativeCodeModeEnabled !== false) throw new Error("Codex restricted tool surfaces require native code mode to be disabled");
826
826
  if (!effectiveConfig) effectiveConfig = await lifecycleTiming.measure("effective-config-read", () => readCodexEffectiveConfig(params.client, params.cwd, { signal: params.signal }));
827
827
  params.config = mergeCodexNativeProjectDocThreadConfig(params.config, effectiveConfig);
828
- if (params.shellEnvironment || params.shellGitConfigParameters) params.config = mergeCodexNativeShellEnvironment(params.config, effectiveConfig.config.shell_environment_policy);
828
+ if (params.shellEnvironment) params.config = mergeCodexNativeShellEnvironment(params.config, effectiveConfig.config.shell_environment_policy);
829
829
  const restrictedToolSurfaceInheritedMcpServerNames = restrictedToolSurface ? await lifecycleTiming.measure("restricted-tool-surface-mcp-policy", () => readCodexInheritedMcpServerNames(params.client, params.cwd, params.signal, effectiveConfig)) : [];
830
830
  if (restrictedToolSurface || imageGenerationDenied || params.nativeCodeModeEnabled !== false) await lifecycleTiming.measure("tool-policy-config-requirements-read", () => assertCodexManagedRequirementsDoNotOverrideToolPolicy(params.client, {
831
831
  restrictedToolSurface,
@@ -1216,7 +1216,10 @@ async function releaseCodexRetainedLiveThread(options) {
1216
1216
  /** Release follows the physical owner across connection rotation, never a copied thread id. */
1217
1217
  async function releaseCodexBoundLiveThread(options) {
1218
1218
  const changedClient = options.ownerClientId && options.ownerClientId !== options.clientId;
1219
- const previous = changedClient ? await retainSharedCodexAppServerClientByInstanceId(options.ownerClientId) : void 0;
1219
+ const previous = changedClient ? await retainSharedCodexAppServerClientByInstanceId(options.ownerClientId, {
1220
+ signal: options.signal,
1221
+ createAbortError: codexThreadLifecycleAbortError
1222
+ }) : void 0;
1220
1223
  if (changedClient && !previous) return false;
1221
1224
  const client = previous?.client ?? options.client;
1222
1225
  try {
@@ -1580,6 +1583,16 @@ function observeCodexThreadConfiguration(params, thread, assertCurrent) {
1580
1583
  };
1581
1584
  }
1582
1585
  //#endregion
1586
+ //#region extensions/codex/src/app-server/thread-lifecycle-projection.ts
1587
+ /** Projection identity omits persistent instructions: qualify using warm reuse's full policy. */
1588
+ async function canRetainCodexProjectionBackgroundWork(params, binding, context, pluginThreadConfig) {
1589
+ const finalConfig = await prepareCodexThreadFinalConfigPatch(params, context.nativeModelInputTools, binding);
1590
+ const pluginConfig = pluginThreadConfig?.configPatch ?? (params.pluginThreadConfig?.enabled && binding.pluginAppPolicyContext ? buildCodexPluginAppsConfigPatchFromPolicyContext(binding.pluginAppPolicyContext) : void 0);
1591
+ const authProfileId = binding.connectionScope === "supervision" ? void 0 : params.params.authProfileId ?? binding.authProfileId;
1592
+ const resumeParams = context.buildResumeParams(binding, authProfileId, buildCodexThreadRequestConfig(params, context, pluginConfig, finalConfig.configPatch));
1593
+ return isCodexAppServerLiveThreadBackgroundOnly(params.client, binding.threadId, fingerprintCodexThreadConfig(resumeParams, authProfileId, context.dynamicToolsFingerprint, binding));
1594
+ }
1595
+ //#endregion
1583
1596
  //#region extensions/codex/src/app-server/thread-supervision-cleanup.ts
1584
1597
  function withPendingSupervisionCleanup(pending, cleanupThreadIds) {
1585
1598
  return {
@@ -1917,6 +1930,7 @@ async function startOrResumeThread(input) {
1917
1930
  const preflight = await prepareCodexThreadLifecyclePreflight(params);
1918
1931
  const callerConfig = params.config;
1919
1932
  const { contextEngineBinding, dynamicToolsContainDeferred, dynamicToolsFingerprint, hostSystemAgentActive, legacyDynamicToolsFingerprint, legacyUserMcpServersFingerprint, lifecycleTiming, nativeSkillIsolationFingerprint, networkProxyConfigFingerprint, ringZeroActive, ringZeroClientInstanceId, ringZeroConfigFingerprint, restrictedToolSurface, restrictedToolSurfaceInheritedMcpServerNames, userMcpServersFingerprint, webSearchThreadConfigFingerprint } = preflight;
1933
+ let retainBackgroundPredecessor = false;
1920
1934
  let replacementPredecessor;
1921
1935
  const initialBoundThreadId = binding?.threadId;
1922
1936
  const initialBoundClientId = binding?.clientId;
@@ -2101,21 +2115,6 @@ async function startOrResumeThread(input) {
2101
2115
  embeddedAgentLog.debug("codex app-server delegation restricted for turn; starting transient thread", { threadId: binding.threadId });
2102
2116
  binding = void 0;
2103
2117
  }
2104
- if (binding?.threadId && (binding.contextEngine || contextEngineBinding)) {
2105
- if (!contextEngineBinding || !isContextEngineBindingCompatible(binding.contextEngine, contextEngineBinding)) {
2106
- rotateStaleBinding(binding, "context-engine binding", {
2107
- engineId: contextEngineBinding?.engineId,
2108
- previousEngineId: binding.contextEngine?.engineId,
2109
- epoch: contextEngineBinding?.projection?.epoch,
2110
- previousEpoch: binding.contextEngine?.projection?.epoch,
2111
- fingerprint: contextEngineBinding?.projection?.fingerprint,
2112
- previousFingerprint: binding.contextEngine?.projection?.fingerprint,
2113
- policyFingerprint: contextEngineBinding?.policyFingerprint,
2114
- previousPolicyFingerprint: binding.contextEngine?.policyFingerprint
2115
- });
2116
- rotatedContextEngineBinding = true;
2117
- }
2118
- }
2119
2118
  if (binding?.threadId) {
2120
2119
  if (!areUserMcpServersFingerprintsCompatible({
2121
2120
  previous: binding.userMcpServersFingerprint,
@@ -2132,6 +2131,31 @@ async function startOrResumeThread(input) {
2132
2131
  })) rotateStaleBinding(binding, "plugin app config");
2133
2132
  else if (binding.dynamicToolsFingerprint && params.dynamicTools.length > 0 && binding.dynamicToolsContainDeferred !== dynamicToolsContainDeferred && (binding.dynamicToolsContainDeferred !== void 0 || !dynamicToolsContainDeferred)) rotateStaleBinding(binding, "dynamic tool loading");
2134
2133
  }
2134
+ if (binding?.threadId && (binding.contextEngine || contextEngineBinding)) {
2135
+ if (!contextEngineBinding || !isContextEngineBindingCompatible(binding.contextEngine, contextEngineBinding)) {
2136
+ retainBackgroundPredecessor = initialBoundClientId === clientId && binding.contextEngine?.engineId === contextEngineBinding?.engineId && binding.contextEngine?.policyFingerprint === contextEngineBinding?.policyFingerprint && Boolean(contextEngineBinding) && (!binding.dynamicToolsFingerprint || areCodexDynamicToolFingerprintsCompatible({
2137
+ previous: binding.dynamicToolsFingerprint,
2138
+ next: dynamicToolsFingerprint,
2139
+ nextLegacy: legacyDynamicToolsFingerprint
2140
+ })) && isCodexAppServerLiveThreadBackgroundOnly(params.client, binding.threadId);
2141
+ if (retainBackgroundPredecessor) {
2142
+ const currentPluginConfig = await buildLoadedPluginThreadConfig(binding);
2143
+ if (currentPluginConfig && currentPluginConfig.fingerprint !== binding.pluginAppsFingerprint) retainBackgroundPredecessor = false;
2144
+ }
2145
+ if (retainBackgroundPredecessor) retainBackgroundPredecessor = await canRetainCodexProjectionBackgroundWork(params, binding, await prepareRequestContext(), prebuiltPluginThreadConfig);
2146
+ rotateStaleBinding(binding, "context-engine binding", {
2147
+ engineId: contextEngineBinding?.engineId,
2148
+ previousEngineId: binding.contextEngine?.engineId,
2149
+ epoch: contextEngineBinding?.projection?.epoch,
2150
+ previousEpoch: binding.contextEngine?.projection?.epoch,
2151
+ fingerprint: contextEngineBinding?.projection?.fingerprint,
2152
+ previousFingerprint: binding.contextEngine?.projection?.fingerprint,
2153
+ policyFingerprint: contextEngineBinding?.policyFingerprint,
2154
+ previousPolicyFingerprint: binding.contextEngine?.policyFingerprint
2155
+ });
2156
+ rotatedContextEngineBinding = true;
2157
+ }
2158
+ }
2135
2159
  if (binding?.threadId) {
2136
2160
  if (binding.dynamicToolsFingerprint && !areCodexDynamicToolFingerprintsCompatible({
2137
2161
  previous: binding.dynamicToolsFingerprint,
@@ -2181,7 +2205,7 @@ async function startOrResumeThread(input) {
2181
2205
  }
2182
2206
  assertCodexBindingMayBeReplaced(binding, "starting a fresh native thread", expectedOwnership);
2183
2207
  const requestContext = await prepareRequestContext();
2184
- if (initialBoundThreadId && !preserveExistingBinding && !configuredMcpOwnershipChanged) await releaseRetainedThread(initialBoundThreadId);
2208
+ if (initialBoundThreadId && !preserveExistingBinding && !configuredMcpOwnershipChanged && !(retainBackgroundPredecessor && isCodexAppServerLiveThreadBackgroundOnly(params.client, initialBoundThreadId))) await releaseRetainedThread(initialBoundThreadId);
2185
2209
  const started = await startFreshCodexThread(params, {
2186
2210
  ...requestContext,
2187
2211
  prebuiltPluginThreadConfig,
@@ -1,8 +1,8 @@
1
- import { S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-f8ODJ_OX.mjs";
1
+ import { S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-CXK7tmkb.mjs";
2
2
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-CeyYScUC.mjs";
3
- import { K as releaseCodexAppServerLiveThread, V as isCodexAppServerLiveThreadClaimed, q as retainCodexAppServerLiveThread } from "./shared-client-BCx1wbyA.mjs";
4
- import { f as unsubscribeCodexThreadBestEffort, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-zNuNTKVr.mjs";
5
- import { t as __exportAll } from "./session-binding-sidecars-DD-enC8w.mjs";
3
+ import { H as isCodexAppServerLiveThreadClaimed, J as retainCodexAppServerLiveThread, q as releaseCodexAppServerLiveThread } from "./shared-client-CNGDTv68.mjs";
4
+ import { f as unsubscribeCodexThreadBestEffort, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-BVww-ct8.mjs";
5
+ import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.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-C98SHchT.mjs";
2
- import { n as requestCodexAppServerClientJson } from "./request-Bo0kKABI.mjs";
3
- import { S as CodexAdoptedThreadActiveError } from "./shared-client-BCx1wbyA.mjs";
4
- import { p as assertCodexThreadAcceptsDirectInput, s as isCodexAppServerPrewriteRequestCancellationError } from "./client-D93nbdB8.mjs";
2
+ import { n as requestCodexAppServerClientJson } from "./request-m-H-7FMu.mjs";
3
+ import { S as CodexAdoptedThreadActiveError } from "./shared-client-CNGDTv68.mjs";
4
+ import { p as assertCodexThreadAcceptsDirectInput, s as isCodexAppServerPrewriteRequestCancellationError } from "./client-Div-zqnz.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. */
@@ -1,13 +1,11 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
- import { t as appendCodexGitConfigParameters } from "./config-utils-DN_YT7dE.mjs";
3
- import { d as readCodexEffectiveConfig, u as CODEX_SESSION_OVERRIDABLE_LAYER_TYPES } from "./config-options-DDzeNQ8m.mjs";
2
+ import { d as readCodexEffectiveConfig, u as CODEX_SESSION_OVERRIDABLE_LAYER_TYPES } from "./config-options-CZmH25Xq.mjs";
4
3
  import { a as isCodexResponsesOAuthRun } from "./responses-oauth-twnuTaAa.mjs";
5
- import { d as mergeCodexThreadConfigs, t as buildCodexProjectDocThreadConfig } from "./project-doc-thread-config-BVcvnps8.mjs";
6
- import { o as hashCodexAppServerBindingFingerprint } from "./session-binding-JEHNMPsr.mjs";
4
+ import { d as mergeCodexThreadConfigs, t as buildCodexProjectDocThreadConfig } from "./project-doc-thread-config-D_sWbxFR.mjs";
5
+ import { o as hashCodexAppServerBindingFingerprint } from "./session-binding-BDnNz-Co.mjs";
7
6
  import { n as resolveCodexAppServerModelProvider, r as resolveCodexAppServerRequestModelSelection, t as CODEX_NATIVE_PERSONALITY_NONE } from "./thread-model-selection-DcVebr8N.mjs";
8
7
  import { normalizeOptionalString, normalizeUniqueStringEntries, normalizeUniqueTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
9
- import * as crypto$1 from "node:crypto";
10
- import crypto from "node:crypto";
8
+ import crypto, * as crypto$1 from "node:crypto";
11
9
  import path from "node:path";
12
10
  import { isIncognitoSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
13
11
  import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
@@ -278,41 +276,20 @@ function buildDeveloperInstructions(params, options = {}) {
278
276
  }
279
277
  //#endregion
280
278
  //#region extensions/codex/src/app-server/thread-shell-environment.ts
281
- const GIT_CONFIG_PARAMETERS = "GIT_CONFIG_PARAMETERS";
282
- function matchesGitConfigParameters(pattern) {
283
- const escaped = pattern.replace(/[.+^${}()|[\]\\]/gu, "\\$&");
284
- return new RegExp(`^${escaped.replaceAll("*", ".*").replaceAll("?", ".")}$`, "iu").test(GIT_CONFIG_PARAMETERS);
285
- }
286
279
  /** Retain native policy beneath request overrides before applying host-owned values. */
287
280
  function mergeCodexNativeShellEnvironment(config, nativePolicy) {
288
281
  return isJsonObject(nativePolicy) ? mergeCodexThreadConfigs({ shell_environment_policy: Object.fromEntries(Object.entries(nativePolicy).filter(([, value]) => value !== null)) }, config) : config;
289
282
  }
290
283
  /** Applies host-selected values and any required login-shell restriction last. */
291
- function applyCodexManagedShellEnvironment(config, environment, disableLoginShell = false, pathPrepend, gitConfigParameters) {
292
- const hasEnvironment = environment !== void 0 && Object.keys(environment).length > 0;
293
- if (!hasEnvironment && !gitConfigParameters) return disableLoginShell ? {
284
+ function applyCodexManagedShellEnvironment(config, environment, disableLoginShell = false, pathPrepend) {
285
+ if (!environment || Object.keys(environment).length === 0) return disableLoginShell ? {
294
286
  ...config,
295
287
  allow_login_shell: false
296
288
  } : config;
297
289
  const current = isJsonObject(config.shell_environment_policy) ? config.shell_environment_policy : {};
298
290
  const currentSet = isJsonObject(current.set) ? current.set : {};
299
291
  const managedEnvironment = { ...environment };
300
- const includeOnly = Array.isArray(current.include_only) ? current.include_only.filter((entry) => typeof entry === "string") : [];
301
- const filters = isJsonObject(current.filters) ? current.filters : void 0;
302
- if (gitConfigParameters) {
303
- const include = filters ? Object.keys(filters).filter((pattern) => filters[pattern] === "include") : includeOnly;
304
- const exclude = filters ? Object.keys(filters).filter((pattern) => filters[pattern] === "exclude") : Array.isArray(current.exclude) ? current.exclude.filter((entry) => typeof entry === "string") : [];
305
- const aliases = Object.keys(currentSet).filter((key) => key === GIT_CONFIG_PARAMETERS || process.platform === "win32" && key.toUpperCase() === GIT_CONFIG_PARAMETERS);
306
- const authoredKey = aliases.includes(GIT_CONFIG_PARAMETERS) ? GIT_CONFIG_PARAMETERS : aliases[0];
307
- const includesParameters = include.length === 0 || include.some(matchesGitConfigParameters);
308
- const inheritsParameters = current.inherit !== "none" && current.inherit !== "core" && !exclude.some(matchesGitConfigParameters) && includesParameters;
309
- if (authoredKey !== void 0 || !inheritsParameters) {
310
- const base = authoredKey !== void 0 && includesParameters ? currentSet[authoredKey] : void 0;
311
- const composed = appendCodexGitConfigParameters(typeof base === "string" ? base : void 0, gitConfigParameters);
312
- for (const name of [GIT_CONFIG_PARAMETERS, ...aliases]) managedEnvironment[name] = composed;
313
- }
314
- }
315
- if (pathPrepend?.length) for (const key of Object.keys(environment ?? {})) {
292
+ if (pathPrepend?.length) for (const key of Object.keys(environment)) {
316
293
  if (key.toUpperCase() !== "PATH") continue;
317
294
  const aliases = Object.keys(currentSet).filter((name) => name === key || process.platform === "win32" && name.toUpperCase() === "PATH");
318
295
  const authoredKey = aliases.includes(key) ? key : aliases[0];
@@ -322,13 +299,15 @@ function applyCodexManagedShellEnvironment(config, environment, disableLoginShel
322
299
  }
323
300
  }
324
301
  const names = Object.keys(managedEnvironment).toSorted();
302
+ const includeOnly = Array.isArray(current.include_only) ? current.include_only.filter((entry) => typeof entry === "string") : [];
303
+ const filters = isJsonObject(current.filters) ? current.filters : void 0;
325
304
  const hasIncludeFilter = filters && Object.values(filters).includes("include");
326
305
  const managedFilterNames = new Set(names.map((name) => name.toLowerCase()));
327
306
  const managedConfig = {
328
307
  ...config,
329
308
  shell_environment_policy: {
330
309
  ...current,
331
- ...hasEnvironment ? { experimental_use_profile: false } : {},
310
+ experimental_use_profile: false,
332
311
  set: {
333
312
  ...currentSet,
334
313
  ...managedEnvironment
@@ -635,7 +614,7 @@ function buildCodexRuntimeThreadConfigForRun(params, config, options = {}) {
635
614
  "skills.bundled.enabled": false
636
615
  } : void 0, params.pluginHarnessToolPolicySafeDeniedTools?.includes("image_generate") ? { "features.image_generation": false } : void 0, shouldDisableCodexToolSearchForModel(params.modelId) ? { "features.multi_agent": false } : void 0, messageOnlySourceReply || params.pluginHarnessToolPolicyRestricted === true || params.requireWorkspaceOnly === true ? buildRestrictedToolConfigPatch(restrictedToolSurfaceMcpServerNames, Boolean(params.scheduledRuntimeAuthority) && !isCodexResponsesOAuthRun(params) && params.requireWorkspaceOnly !== true) : buildCodexRingZeroThreadConfigPatch(params, options.hostSystemAgentActive, restrictedToolSurfaceMcpServerNames), restrictedTurnDisablesProjectDocs ? CODEX_NO_PROJECT_DOCS_CONFIG : void 0, params.authoredContextTokenCap === void 0 ? void 0 : { model_context_window: params.authoredContextTokenCap }) ?? baseConfig,
637
616
  ...params.bootstrapContextMode === "lightweight" ? CODEX_NO_PROJECT_DOCS_CONFIG : {}
638
- }, options.shellEnvironment, options.disableLoginShell, options.shellPathPrepend, options.shellGitConfigParameters);
617
+ }, options.shellEnvironment, options.disableLoginShell, options.shellPathPrepend);
639
618
  }
640
619
  function buildCodexRingZeroThreadConfigPatch(params, hostSystemAgentActive = isHostScopedAgentToolActive("openclaw"), inheritedMcpServerNames = []) {
641
620
  if (!hostSystemAgentActive || !isSystemAgentOnlyCodexDynamicToolAllowlist(params.toolsAllow)) return;
@@ -1,8 +1,8 @@
1
1
  import { i as CodexAppServerScopedRequestRejectedError, o as isCodexAppServerOverloadError, r as CodexAppServerRpcError } from "./rpc-error-C98SHchT.mjs";
2
- import { r as publishCodexCatalogResume } from "./session-catalog-events-kR2Ot6nX.mjs";
3
- import { L as forgetCodexWorkspaceReferences, pt as isCodexAppServerStartupError, u as isCodexAppServerStartSelectionChangedError } from "./shared-client-BCx1wbyA.mjs";
4
- import { h as assertCodexThreadResumeResponse, s as isCodexAppServerPrewriteRequestCancellationError } from "./client-D93nbdB8.mjs";
5
- import { f as unsubscribeCodexThreadBestEffort, i as assertCodexThreadResumeSubscription, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-zNuNTKVr.mjs";
2
+ import { r as publishCodexCatalogResume } from "./session-catalog-events-BBV3DMG7.mjs";
3
+ import { L as forgetCodexWorkspaceReferences, mt as isCodexAppServerStartupError, u as isCodexAppServerStartSelectionChangedError } from "./shared-client-CNGDTv68.mjs";
4
+ import { h as assertCodexThreadResumeResponse, s as isCodexAppServerPrewriteRequestCancellationError } from "./client-Div-zqnz.mjs";
5
+ import { f as unsubscribeCodexThreadBestEffort, i as assertCodexThreadResumeSubscription, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-BVww-ct8.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-DfKcoZCB.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-DD-enC8w.mjs";
5
+ import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.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,5 @@
1
- import { t as appendCodexGitConfigParameters } from "./config-utils-DN_YT7dE.mjs";
2
1
  import { r as normalizeCodexAppServerArgs } from "./launch-args-DbFCehO7.mjs";
3
- import { i as resolveManagedCodexNativeCommand } from "./managed-binary-BtIjV7yN.mjs";
2
+ import { i as resolveManagedCodexNativeCommand } from "./managed-binary-DwC9wxch.mjs";
4
3
  import { i as recordCodexAppServerSpawnFailure, r as getCodexAppServerSpawnFailure } from "./spawn-error-CL3n6MAa.mjs";
5
4
  import { createHash, randomUUID } from "node:crypto";
6
5
  import { stripVTControlCharacters } from "node:util";
@@ -864,20 +863,6 @@ function resolveCodexAppServerSpawnEnv(options, baseEnv = process.env, platform
864
863
  }
865
864
  return env;
866
865
  }
867
- /** Keep inherited Git settings in the private process environment, outside thread config. */
868
- function withCodexAppServerGitConfig(options, parameters) {
869
- const env = resolveCodexAppServerSpawnEnv(options);
870
- const key = process.platform === "win32" ? Object.keys(env).toSorted().find((name) => name.toUpperCase() === "GIT_CONFIG_PARAMETERS") : "GIT_CONFIG_PARAMETERS";
871
- const inherited = key === void 0 ? void 0 : env[key];
872
- return {
873
- ...options,
874
- env: {
875
- ...options.env,
876
- GIT_CONFIG_PARAMETERS: appendCodexGitConfigParameters(inherited, parameters)
877
- },
878
- ...options.clearEnv ? { clearEnv: options.clearEnv.filter((name) => (process.platform === "win32" ? name.trim().toUpperCase() : name.trim()) !== "GIT_CONFIG_PARAMETERS") } : {}
879
- };
880
- }
881
866
  /** Spawns the Codex app-server process and returns the shared transport interface. */
882
867
  async function createStdioTransport(options, baseEnv = process.env, assertCurrent, onSpawn) {
883
868
  const isHostedGateway = baseEnv.OPENCLAW_GATEWAY_HOST_LIFELINE?.trim() === "stdin";
@@ -932,4 +917,4 @@ async function createStdioTransport(options, baseEnv = process.env, assertCurren
932
917
  }
933
918
  }
934
919
  //#endregion
935
- export { closeCodexAppServerTransport as a, createCodexAppServerProcessReaperService as c, withCodexAppServerGitConfig as i, getCodexAppServerRegisteredTransportIdentity as l, resolveCodexAppServerSpawnEnv as n, closeCodexAppServerTransportAndWait as o, resolveCodexAppServerSpawnInvocation as r, hasCodexAppServerNaturalExit as s, createStdioTransport as t };
920
+ export { closeCodexAppServerTransportAndWait as a, getCodexAppServerRegisteredTransportIdentity as c, closeCodexAppServerTransport as i, resolveCodexAppServerSpawnEnv as n, hasCodexAppServerNaturalExit as o, resolveCodexAppServerSpawnInvocation as r, createCodexAppServerProcessReaperService as s, createStdioTransport as t };
@@ -1,5 +1,5 @@
1
1
  import { r as resolveCodexAppServerUserHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
2
- import "./config-C1YVVLEA.mjs";
2
+ import "./config-LQemoqTL.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 { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
2
  import { n as waitForPromiseOrAbort, t as abortReason } from "./timeout-D0mEWSGG.mjs";
3
- import { x as readCodexTurnCompletedNotification } from "./client-D93nbdB8.mjs";
3
+ import { x as readCodexTurnCompletedNotification } from "./client-Div-zqnz.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,7 +1,7 @@
1
1
  import { i as isJsonObject, r as flattenCodexDynamicToolFunctions } from "./protocol-CANUwXJ3.mjs";
2
- import { m as sessionBindingIdentity } from "./session-binding-record-DU_0biMD.mjs";
3
- import { d as readCodexPluginConfig } from "./config-parsing-DsWSCPHO.mjs";
4
- import { s as assertCodexModelBackedReviewerEffectiveConfig } from "./config-options-DDzeNQ8m.mjs";
2
+ import { m as sessionBindingIdentity } from "./session-binding-record-C2kDBZhx.mjs";
3
+ import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
4
+ import { s as assertCodexModelBackedReviewerEffectiveConfig } from "./config-options-CZmH25Xq.mjs";
5
5
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-CeyYScUC.mjs";
6
6
  import { i as CodexAppServerScopedRequestRejectedError, o as isCodexAppServerOverloadError } from "./rpc-error-C98SHchT.mjs";
7
7
  import { a as readUpstreamUserText, i as readMirrorIdentity } from "./upstream-prompt-provenance-Ccd9MFRJ.mjs";
@@ -9,24 +9,24 @@ import { r as projectCodexUserItemText } from "./transcript-history-projection-D
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-Bg9DbDI6.mjs";
11
11
  import { n as readCodexSessionMeta } from "./session-catalog-provenance-CmsOE5mh.mjs";
12
- import "./request-Bo0kKABI.mjs";
13
- import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-C1YVVLEA.mjs";
14
- import { r as resolveCodexSupervisionAppServerRuntimeOptions } from "./config-runtime-DWzK-k0n.mjs";
12
+ import "./request-m-H-7FMu.mjs";
13
+ import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-LQemoqTL.mjs";
14
+ import { r as resolveCodexSupervisionAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
15
15
  import { l as readCodexMirrorSourceFingerprint, o as fingerprintCodexMirrorSourceMessage } from "./transcript-mirror-attestation-BzUXnrvv.mjs";
16
- import { P as claimCodexAppServerLiveThread, R as hasCodexAppServerLiveThread, f as readCodexAppServerClientDesktopGenerationFingerprint } from "./shared-client-BCx1wbyA.mjs";
17
- import { m as assertCodexThreadForkResponse, p as assertCodexThreadAcceptsDirectInput, s as isCodexAppServerPrewriteRequestCancellationError } from "./client-D93nbdB8.mjs";
18
- import { d as mergeCodexThreadConfigs, i as buildCodexPluginThreadConfig, p as shouldBuildCodexPluginThreadConfig } from "./project-doc-thread-config-BVcvnps8.mjs";
19
- import { T as fingerprintUserMcpServersConfigPatch, _ as buildDeveloperInstructions, a as buildCodexThreadConfiguration, b as codexDynamicToolsFingerprint, h as resolveCodexWebSearchPlan, w as fingerprintJsonObject } from "./thread-requests-BgzJwJtS.mjs";
20
- import "./session-binding-JEHNMPsr.mjs";
21
- import "./thread-ownership-BoUd0i6L.mjs";
16
+ import { P as claimCodexAppServerLiveThread, R as hasCodexAppServerLiveThread, f as readCodexAppServerClientDesktopGenerationFingerprint } from "./shared-client-CNGDTv68.mjs";
17
+ import { m as assertCodexThreadForkResponse, p as assertCodexThreadAcceptsDirectInput, s as isCodexAppServerPrewriteRequestCancellationError } from "./client-Div-zqnz.mjs";
18
+ import { d as mergeCodexThreadConfigs, i as buildCodexPluginThreadConfig, p as shouldBuildCodexPluginThreadConfig } from "./project-doc-thread-config-D_sWbxFR.mjs";
19
+ import { T as fingerprintUserMcpServersConfigPatch, _ as buildDeveloperInstructions, a as buildCodexThreadConfiguration, b as codexDynamicToolsFingerprint, h as resolveCodexWebSearchPlan, w as fingerprintJsonObject } from "./thread-requests-DjyDmCo4.mjs";
20
+ import "./session-binding-BDnNz-Co.mjs";
21
+ import "./thread-ownership-BBsOFzCM.mjs";
22
22
  import { n as resolveCodexNativeExecutionPolicy } from "./native-execution-policy-MXEe7PB3.mjs";
23
- import { n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy } from "./thread-policy-B3wBRNph.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-wq7jrNLk.mjs";
25
- import { c as parseCodexNativeToolCatalog, i as checkCodexThreadAppAvailability, n as resolveCodexNativeSkillIsolation, t as applyCodexNativeSkillIsolation } from "./native-skill-isolation-DSBeF-Yy.mjs";
26
- import { c as prepareCodexWorkspaceDeveloperInstructions } from "./attempt-workspace-context-CcwP3DA3.mjs";
27
- import { n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-Dn2WwH4P.mjs";
28
- import { n as prepareCodexSessionInitialization } from "./session-initialization-Bi_2DKhc.mjs";
29
- import { createImportedCodexSession } from "./session-history-import-CaO8s6ta.mjs";
23
+ import { n as CodexThreadPolicyHandoffError, o as refreshCodexThreadPolicy } from "./thread-policy-BEiS7ITh.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-BvwSj5bt.mjs";
25
+ import { c as parseCodexNativeToolCatalog, i as checkCodexThreadAppAvailability, n as resolveCodexNativeSkillIsolation, t as applyCodexNativeSkillIsolation } from "./native-skill-isolation-Cx2AkUco.mjs";
26
+ import { c as prepareCodexWorkspaceDeveloperInstructions } from "./attempt-workspace-context-BkA0W8Jy.mjs";
27
+ import { n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-B-pTlDsf.mjs";
28
+ import { n as prepareCodexSessionInitialization } from "./session-initialization-BjVtsTzi.mjs";
29
+ import { createImportedCodexSession } from "./session-history-import-DgwRu2eD.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-CI8pTPqL.mjs";
2
- import { t as readCodexAppServerUsage } from "./request-Bo0kKABI.mjs";
3
- import "./config-C1YVVLEA.mjs";
4
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DWzK-k0n.mjs";
2
+ import { t as readCodexAppServerUsage } from "./request-m-H-7FMu.mjs";
3
+ import "./config-LQemoqTL.mjs";
4
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.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 { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
2
  import { a as shouldRefreshCodexRateLimitsForUsageLimitMessage, i as resolveCodexUsageLimitResetAtMs, n as formatCodexUsageLimitErrorMessage } from "./rate-limits-CI8pTPqL.mjs";
3
3
  import { t as CODEX_CONTROL_METHODS } from "./capabilities-DbOzOglY.mjs";
4
- import { Q as rememberCodexRateLimitsRead, X as readCodexRateLimitsRevision, Z as readRecentCodexRateLimits } from "./shared-client-BCx1wbyA.mjs";
4
+ import { $ as rememberCodexRateLimitsRead, Q as readRecentCodexRateLimits, Z as readCodexRateLimitsRevision } from "./shared-client-CNGDTv68.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-BgzJwJtS.mjs";
2
- import { runBoundedCodexAppServerTurn } from "./bounded-turn-DfIJtRlv.mjs";
1
+ import { m as buildCodexNativeWebSearchThreadConfig } from "./thread-requests-DjyDmCo4.mjs";
2
+ import { runBoundedCodexAppServerTurn } from "./bounded-turn-vdpL2efh.mjs";
3
3
  import { t as projectCodexWebSearchItem } from "./web-search-item-CvokaZOo.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-CRWTkKOn.mjs";
3
- import { t as resolveCodexDoctorStartOptions } from "./doctor-start-options-JjTAl-q_.mjs";
2
+ import { n as resolveCodexAppServerSpawnEnv, r as resolveCodexAppServerSpawnInvocation } from "./transport-stdio-lgeKKHyw.mjs";
3
+ import { t as resolveCodexDoctorStartOptions } from "./doctor-start-options-C28ek2hD.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";
package/dist/api.js CHANGED
@@ -1,7 +1,7 @@
1
- import { i as resolveManagedCodexNativeCommand, s as CODEX_APP_SERVER_VERSION } from "./.setup/managed-binary-BtIjV7yN.mjs";
2
- import { t as codexNativeProfileRecoveryHealthCheck } from "./.setup/auth-profile-health-oHizqgye.mjs";
1
+ import { i as resolveManagedCodexNativeCommand, s as CODEX_APP_SERVER_VERSION } from "./.setup/managed-binary-DwC9wxch.mjs";
2
+ import { t as codexNativeProfileRecoveryHealthCheck } from "./.setup/auth-profile-health-B05o5BAm.mjs";
3
3
  import { n as findCodexAppServerSpawnError, t as describeCodexSpawnError } from "./.setup/spawn-error-CL3n6MAa.mjs";
4
- import { t as resolveCodexDoctorStartOptions } from "./.setup/doctor-start-options-JjTAl-q_.mjs";
4
+ import { t as resolveCodexDoctorStartOptions } from "./.setup/doctor-start-options-C28ek2hD.mjs";
5
5
  import { runUtf8CommandWithTimeout } from "openclaw/plugin-sdk/process-runtime";
6
6
  import path from "node:path";
7
7
  import { coerceErrorMessage } from "openclaw/plugin-sdk/error-runtime";
@@ -115,7 +115,7 @@ function registerCodexManagedAppServerDoctorChecks$1(host, deps) {
115
115
  const CODEX_PLUGIN_ROOT = path.dirname(fileURLToPath(import.meta.url));
116
116
  async function probeCodexWorkspaceWriteSandbox(params) {
117
117
  try {
118
- const { probeCodexWorkspaceWriteSandbox: probe } = await import("./.setup/workspace-write-sandbox-probe-BDWO2Qkh.mjs");
118
+ const { probeCodexWorkspaceWriteSandbox: probe } = await import("./.setup/workspace-write-sandbox-probe-DvfWTvuR.mjs");
119
119
  return await probe({
120
120
  ...params,
121
121
  pluginRoot: CODEX_PLUGIN_ROOT
@@ -1,4 +1,4 @@
1
- import { t as createCodexCatalogDecoder } from "./.setup/client-catalog-response-CuVLp4I0.mjs";
1
+ import { t as createCodexCatalogDecoder } from "./.setup/client-catalog-response-Dtob_lVt.mjs";
2
2
  import { serveWorkerTasks } from "openclaw/plugin-sdk/worker-task-server";
3
3
  //#region extensions/codex/catalog-page.worker.ts
4
4
  const decode = createCodexCatalogDecoder();
@@ -2,7 +2,7 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
2
2
  //#region extensions/codex/cli-metadata.ts
3
3
  function registerCodexCliMetadata(api) {
4
4
  api.registerCli(async ({ program }) => {
5
- const { registerCodexSessionCli } = await import("./.setup/session-cli-GwU0izn-.mjs");
5
+ const { registerCodexSessionCli } = await import("./.setup/session-cli-BoJSZfGd.mjs");
6
6
  registerCodexSessionCli(program);
7
7
  }, { descriptors: [{
8
8
  name: "codex",
@@ -248,15 +248,15 @@ const stateMigrations = [
248
248
  {
249
249
  id: "codex-app-server-sidecars-to-plugin-state",
250
250
  label: "Codex app-server thread bindings",
251
- detectLegacyState: async (params) => (await import("./.setup/session-binding-sidecars-DD-enC8w.mjs")).detectLegacySessionBindingSidecars(params),
252
- migrateLegacyState: async (params) => (await import("./.setup/session-binding-sidecars-DD-enC8w.mjs")).migrateLegacySessionBindingSidecars(params)
251
+ detectLegacyState: async (params) => (await import("./.setup/session-binding-sidecars-DijNZb31.mjs")).detectLegacySessionBindingSidecars(params),
252
+ migrateLegacyState: async (params) => (await import("./.setup/session-binding-sidecars-DijNZb31.mjs")).migrateLegacySessionBindingSidecars(params)
253
253
  },
254
254
  {
255
255
  id: "codex-native-task-assignments",
256
256
  label: "Codex native pending assignments",
257
- collectBackupResources: async (params) => (await import("./.setup/native-task-assignments-DimsQ9Qa.mjs")).codexNativeTaskAssignmentMigration.collectBackupResources(params),
258
- detectLegacyState: async (params) => (await import("./.setup/native-task-assignments-DimsQ9Qa.mjs")).codexNativeTaskAssignmentMigration.detectLegacyState(params),
259
- migrateLegacyState: async (params) => (await import("./.setup/native-task-assignments-DimsQ9Qa.mjs")).codexNativeTaskAssignmentMigration.migrateLegacyState(params)
257
+ collectBackupResources: async (params) => (await import("./.setup/native-task-assignments-DYL9uxNe.mjs")).codexNativeTaskAssignmentMigration.collectBackupResources(params),
258
+ detectLegacyState: async (params) => (await import("./.setup/native-task-assignments-DYL9uxNe.mjs")).codexNativeTaskAssignmentMigration.detectLegacyState(params),
259
+ migrateLegacyState: async (params) => (await import("./.setup/native-task-assignments-DYL9uxNe.mjs")).codexNativeTaskAssignmentMigration.migrateLegacyState(params)
260
260
  },
261
261
  codexOrphanedSessionBindingMigration
262
262
  ];