@openclaw/codex 2026.10.1 → 2026.10.5-beta.1

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 (161) hide show
  1. package/dist/.setup/{account-usage-runtime-B7Vg4rmy.mjs → account-usage-runtime-QBZsvZS8.mjs} +8 -7
  2. package/dist/.setup/{app-server-policy-Bg4FZw1f.mjs → app-server-policy-D_zv8J7V.mjs} +3 -4
  3. package/dist/.setup/{apply-BzlIkqSz.mjs → apply-CBMV8LN0.mjs} +40 -51
  4. package/dist/.setup/{attempt-client-cleanup-HXQxfMc1.mjs → attempt-client-cleanup-t-kd_1ys.mjs} +6 -6
  5. package/dist/.setup/attempt-terminal-jO5IMj9K.mjs +2 -0
  6. package/dist/.setup/{attempt-workspace-context-BmCutoyg.mjs → attempt-workspace-context-CcwP3DA3.mjs} +21 -18
  7. package/dist/.setup/{auth-binding-BoMwpuPN.mjs → auth-binding-BaxlhaNx.mjs} +2 -2
  8. package/dist/.setup/{auth-cache-key-BCCQHWdc.mjs → auth-cache-key-DyfUvsSa.mjs} +30 -41
  9. package/dist/.setup/{binding-connection-C-08ez1w.mjs → binding-connection-B7HAAZSI.mjs} +2 -2
  10. package/dist/.setup/{binding-connection.runtime-Dn2p-fdy.mjs → binding-connection.runtime-DAXn7iFl.mjs} +6 -5
  11. package/dist/.setup/{bounded-turn-Cv4uIEzz.mjs → bounded-turn-CyQVQwGe.mjs} +21 -17
  12. package/dist/.setup/{bounded-turn-isolation-DklXNk3k.mjs → bounded-turn-isolation-BfDAo-qZ.mjs} +4 -4
  13. package/dist/.setup/{build-state-BwxNfFEB.mjs → build-state-CzLMy1S9.mjs} +1 -1
  14. package/dist/.setup/{capabilities-kQntafj_.mjs → capabilities-DbOzOglY.mjs} +1 -1
  15. package/dist/.setup/{client-catalog-response-BNFDYAKh.mjs → client-catalog-response-DsbEAtpd.mjs} +25 -32
  16. package/dist/.setup/{client-BIRVBXXb.mjs → client-y7nO6X9c.mjs} +198 -247
  17. package/dist/.setup/{command-dispatch-D3_ypl-R.mjs → command-dispatch-uA9lz2Kf.mjs} +3 -4
  18. package/dist/.setup/{command-formatters-DV3DHhdr.mjs → command-formatters-xW9KpoSZ.mjs} +16 -26
  19. package/dist/.setup/{command-handlers-KPit4G0p.mjs → command-handlers-VBaJnpZo.mjs} +270 -360
  20. package/dist/.setup/{command-rpc-CmQDOxY9.mjs → command-rpc-C9VxOLuG.mjs} +19 -18
  21. package/dist/.setup/{compact-CLLteFIY.mjs → compact-CD8xJxXS.mjs} +41 -61
  22. package/dist/.setup/{computer-use-BVxocZZc.mjs → computer-use-CiToXF5C.mjs} +109 -147
  23. package/dist/.setup/{config-0Gxk3_eq.mjs → config-C1YVVLEA.mjs} +32 -59
  24. package/dist/.setup/config-contracts.shared-D85SGEuq.mjs +4 -0
  25. package/dist/.setup/{config-options-HG_Rr3W_.mjs → config-options-DDzeNQ8m.mjs} +52 -90
  26. package/dist/.setup/{config-parsing-BQq-CHTF.mjs → config-parsing-DsWSCPHO.mjs} +19 -55
  27. package/dist/.setup/{config-runtime-cUYrqu_a.mjs → config-runtime-DWzK-k0n.mjs} +2 -2
  28. package/dist/.setup/{config-security-KAPScztc.mjs → config-security-clxAZYWX.mjs} +35 -39
  29. package/dist/.setup/config-utils-DN_YT7dE.mjs +47 -0
  30. package/dist/.setup/{context-engine-projection-CsgYSQhW.mjs → context-engine-projection-ps-yn_ci.mjs} +10 -22
  31. package/dist/.setup/{conversation-binding-DJ_288rC.mjs → conversation-binding-CTSLDM9S.mjs} +85 -119
  32. package/dist/.setup/{conversation-binding-data-DJ4ix-W5.mjs → conversation-binding-data-UgLuTSQT.mjs} +9 -8
  33. package/dist/.setup/{conversation-control-CuiZ_pDL.mjs → conversation-control-GXM3unE4.mjs} +7 -10
  34. package/dist/.setup/{cyber-failover-Bb1J6hS1.mjs → cyber-failover-D4dgNfFf.mjs} +2 -5
  35. package/dist/.setup/{cyber-failover-notice-XR03ef31.mjs → cyber-failover-notice-ljgGGL0s.mjs} +1 -1
  36. package/dist/.setup/{doctor-start-options-DPW9JxIE.mjs → doctor-start-options-JjTAl-q_.mjs} +5 -5
  37. package/dist/.setup/{dynamic-tool-build-DgWZMfAQ.mjs → dynamic-tool-build-D731PCdv.mjs} +57 -69
  38. package/dist/.setup/{dynamic-tools-Ct6GKAFr.mjs → dynamic-tools-D0pYbxHH.mjs} +689 -710
  39. package/dist/.setup/{effective-mcp-catalog-DmCSc8TS.mjs → effective-mcp-catalog-1hWFKghy.mjs} +11 -20
  40. package/dist/.setup/{elicitation-input-r9axtppm.mjs → elicitation-input-DXG_qaXr.mjs} +14 -20
  41. package/dist/.setup/{ephemeral-turn-_cBMKCFb.mjs → ephemeral-turn-Cphy5Qr_.mjs} +3 -3
  42. package/dist/.setup/{event-projector-assistant-message-C3Tpt370.mjs → event-projector-assistant-message-CLMKN4x-.mjs} +2 -2
  43. package/dist/.setup/{event-projector-usage-03R0I2dM.mjs → event-projector-usage-BpKfdoTm.mjs} +20 -33
  44. package/dist/.setup/{event-projector-values-DTqZHizf.mjs → event-projector-values-CLvG1Hil.mjs} +4 -5
  45. package/dist/.setup/history-rejection-B4nOXNXF.mjs +13 -0
  46. package/dist/.setup/{inference-context-D-9gWlTR.mjs → inference-context-DNlGwzwy.mjs} +10 -11
  47. package/dist/.setup/{inference-dispatch-B5UKEUyC.mjs → inference-dispatch-CO6tTs4q.mjs} +5 -4
  48. package/dist/.setup/{inference-metadata-CgIf7sOx.mjs → inference-metadata-DCvcG_N_.mjs} +36 -41
  49. package/dist/.setup/{inference-proxy-DUO5E2QQ.mjs → inference-proxy-BDWV0djM.mjs} +10 -14
  50. package/dist/.setup/{isolated-completion-CjrQEeke.mjs → isolated-completion-Bhqd2yBq.mjs} +8 -8
  51. package/dist/.setup/local-runtime-attribution-CZz2DJ4q.mjs +15 -0
  52. package/dist/.setup/{managed-binary-C1VFoVPf.mjs → managed-binary-BtIjV7yN.mjs} +16 -36
  53. package/dist/.setup/{mcp-app-session-preparation-D0yRoreX.mjs → mcp-app-session-preparation-DqSvxFqc.mjs} +24 -25
  54. package/dist/.setup/{mcp-tool-metadata-j10HhfTC.mjs → mcp-tool-metadata-DW41snf3.mjs} +1 -1
  55. package/dist/.setup/{model-catalog--G4arndd.mjs → model-catalog-B227ST3D.mjs} +6 -6
  56. package/dist/.setup/{models-BYbLQPnj.mjs → models-DdRyi93L.mjs} +6 -10
  57. package/dist/.setup/{native-auth-Cjb9y7IZ.mjs → native-auth-esN5MdIv.mjs} +5 -5
  58. package/dist/.setup/{native-execution-policy-ClzpdG3D.mjs → native-execution-policy-MXEe7PB3.mjs} +11 -28
  59. package/dist/.setup/native-hook-relay-BUWIOrSr.mjs +561 -0
  60. package/dist/.setup/{native-mcp-app-5i5eRCwO.mjs → native-mcp-app-CjxJQ4F7.mjs} +6 -6
  61. package/dist/.setup/native-skill-isolation-UMVoNjZz.mjs +391 -0
  62. package/dist/.setup/{native-subagent-monitor-B2C8D_N0.mjs → native-subagent-monitor-iHc8oLg5.mjs} +505 -639
  63. package/dist/.setup/{native-subagent-pending-assignments-BDqhOdJp.mjs → native-subagent-pending-assignments-DmVhedNs.mjs} +11 -23
  64. package/dist/.setup/{native-task-assignments-C6KVqiN1.mjs → native-task-assignments-DimsQ9Qa.mjs} +73 -27
  65. package/dist/.setup/{node-cli-sessions-B5oNDkUS.mjs → node-cli-sessions-CzKg2nGq.mjs} +18 -26
  66. package/dist/.setup/{node-exec-server.runtime-0xSEjKYt.mjs → node-exec-server.runtime-BWkULhBM.mjs} +5 -8
  67. package/dist/.setup/{plan-B5bDIEuQ.mjs → plan-C_F3aio0.mjs} +40 -50
  68. package/dist/.setup/{plugin-activation-BcyBv8PG.mjs → plugin-activation-D7WkJMvU.mjs} +4 -5
  69. package/dist/.setup/{plugin-app-cache-key-BW8rd98k.mjs → plugin-app-cache-key-Bg9DbDI6.mjs} +18 -23
  70. package/dist/.setup/{plugin-approval-roundtrip-C_SGp5YW.mjs → plugin-approval-roundtrip-BSV-51ig.mjs} +4 -6
  71. package/dist/.setup/{plugin-inventory-Bf0_piTw.mjs → plugin-inventory-CYgdo14P.mjs} +28 -43
  72. package/dist/.setup/{plugin-marketplace-discovery-SQPhSuic.mjs → plugin-marketplace-discovery-BblHM3DU.mjs} +7 -10
  73. package/dist/.setup/{plugin-metadata-cache-DWnB7VMj.mjs → plugin-metadata-cache-Bi8TAPwX.mjs} +5 -10
  74. package/dist/.setup/project-doc-thread-config-BVcvnps8.mjs +490 -0
  75. package/dist/.setup/{provider-BoIby-eX.mjs → provider-BJ4xhaGX.mjs} +4 -4
  76. package/dist/.setup/{provider-capabilities-B4yq6UgQ.mjs → provider-capabilities-CjRaV3bx.mjs} +1 -1
  77. package/dist/.setup/{rate-limits-CMPy24F5.mjs → rate-limits-CI8pTPqL.mjs} +15 -32
  78. package/dist/.setup/reasoning-effort-CS9kKWB9.mjs +37 -0
  79. package/dist/.setup/{request-DD3u22uv.mjs → request-Y8dmbqZ3.mjs} +28 -48
  80. package/dist/.setup/{rpc-error-hmWM21RB.mjs → rpc-error-C98SHchT.mjs} +3 -6
  81. package/dist/.setup/{run-attempt-DOVF5OON.mjs → run-attempt-Dx7a4Mfm.mjs} +927 -859
  82. package/dist/.setup/{run-attempt-lifecycle-BuZgVbDA.mjs → run-attempt-lifecycle-KN4oh-7O.mjs} +13 -4
  83. package/dist/.setup/{runtime-artifact-CUTOOnKw.mjs → runtime-artifact-C13pR7tD.mjs} +18 -22
  84. package/dist/.setup/{runtime-artifact-connection-CADz3_BY.mjs → runtime-artifact-connection-jS5DeCok.mjs} +3 -3
  85. package/dist/.setup/{sandbox-guard-WqE8yPge.mjs → sandbox-guard-DIImwCy1.mjs} +4 -6
  86. package/dist/.setup/service-tier-normalization-BPgw2Wdt.mjs +9 -0
  87. package/dist/.setup/{session-binding-Ce7BqiPN.mjs → session-binding-JEHNMPsr.mjs} +13 -40
  88. package/dist/.setup/{session-binding-record-BZB8RgcF.mjs → session-binding-record-DU_0biMD.mjs} +4 -4
  89. package/dist/.setup/{session-binding-record-codec-z4ZpDn6E.mjs → session-binding-record-codec-BpH8u_G9.mjs} +16 -39
  90. package/dist/.setup/{session-binding-sidecars-BrdV95Fg.mjs → session-binding-sidecars-DD-enC8w.mjs} +49 -54
  91. package/dist/.setup/{session-catalog-adoption-CPIP4S_y.mjs → session-catalog-adoption-Ca3OYGYM.mjs} +23 -27
  92. package/dist/.setup/{session-catalog-archive-DcgwvSbF.mjs → session-catalog-archive-Bv6gV7x9.mjs} +6 -6
  93. package/dist/.setup/{session-catalog-events-DRaivXvC.mjs → session-catalog-events-DzFlXNUe.mjs} +6 -5
  94. package/dist/.setup/{session-catalog-index-qwmgqC4t.mjs → session-catalog-index-DozvkUPd.mjs} +111 -105
  95. package/dist/.setup/{session-catalog-index-order-nhyO0wdW.mjs → session-catalog-index-order-CTfoefow.mjs} +28 -5
  96. package/dist/.setup/{session-catalog-limits-DEU36Qlo.mjs → session-catalog-limits-BynIoOYm.mjs} +1 -1
  97. package/dist/.setup/{session-catalog-list-request-tXephOB4.mjs → session-catalog-list-request-D4MYNgDB.mjs} +11 -8
  98. package/dist/.setup/{session-catalog-native-projection-z9Q608QW.mjs → session-catalog-native-projection-rCKnZud1.mjs} +5 -61
  99. package/dist/.setup/{session-catalog-node-adoption-7-WEQTB1.mjs → session-catalog-node-adoption-BdP9Zjqo.mjs} +2 -2
  100. package/dist/.setup/{session-catalog-node-continue-DLWBwAAO.mjs → session-catalog-node-continue-CNJibO4_.mjs} +27 -49
  101. package/dist/.setup/{session-catalog-node-lookup-Uufckwcm.mjs → session-catalog-node-lookup-BH_DBGa9.mjs} +3 -3
  102. package/dist/.setup/{session-catalog-parsing-B-qWJh2x.mjs → session-catalog-parsing-DkeoVn60.mjs} +9 -19
  103. package/dist/.setup/{session-catalog-projection-Cl0Nc7c6.mjs → session-catalog-projection-DDVmALHj.mjs} +8 -22
  104. package/dist/.setup/session-catalog-source-CygTGmrb.mjs +58 -0
  105. package/dist/.setup/{session-cli-kH4vuGod.mjs → session-cli-GwU0izn-.mjs} +20 -41
  106. package/dist/.setup/{session-history-BogBHKLk.mjs → session-history-BO6i_pfk.mjs} +1 -1
  107. package/dist/.setup/{session-history-import-NWKPa4ZO.mjs → session-history-import-CaO8s6ta.mjs} +4 -4
  108. package/dist/.setup/{session-history-read-CNN8zwbD.mjs → session-history-read-BI_2jRED.mjs} +4 -15
  109. package/dist/.setup/{session-history.worker-Cq_4DYgN.mjs → session-history.worker-DJQfek5p.mjs} +147 -159
  110. package/dist/.setup/{session-initialization-D6dtFQkE.mjs → session-initialization-Bi_2DKhc.mjs} +3 -5
  111. package/dist/.setup/{session-permission-policy-BxIUJ0Zd.mjs → session-permission-policy-CD2MAWU8.mjs} +12 -20
  112. package/dist/.setup/{session-retirement-Bt3b0fpe.mjs → session-retirement-IoS3zr17.mjs} +7 -7
  113. package/dist/.setup/{settled-turn-context-BZsMjkIO.mjs → settled-turn-context-BPL6D3RO.mjs} +1 -1
  114. package/dist/.setup/{settled-turn-finalizer-e_24O6HA.mjs → settled-turn-finalizer-X-Fylp-u.mjs} +12 -11
  115. package/dist/.setup/{shared-client-DeenOD8U.mjs → shared-client-ByIwuAC-.mjs} +172 -229
  116. package/dist/.setup/{side-question-BZHn_1Jm.mjs → side-question-BDUdozFy.mjs} +116 -137
  117. package/dist/.setup/{source-0ClinBHI.mjs → source-Bxbqf3S1.mjs} +37 -56
  118. package/dist/.setup/thread-archive-guard-LKdwQKyr.mjs +56 -0
  119. package/dist/.setup/{thread-lifecycle-CoqYpbpk.mjs → thread-lifecycle-run-CfP4PnEf.mjs} +348 -484
  120. package/dist/.setup/thread-model-selection-DcVebr8N.mjs +61 -0
  121. package/dist/.setup/{thread-ownership-CSDZ6mHd.mjs → thread-ownership-Be53aiaG.mjs} +5 -5
  122. package/dist/.setup/{thread-ownership-queue-Dp24d7-F.mjs → thread-ownership-queue-CeyYScUC.mjs} +5 -6
  123. package/dist/.setup/{thread-policy-DCC9lQjC.mjs → thread-policy-CHgY-KNl.mjs} +4 -4
  124. package/dist/.setup/thread-requests-BgzJwJtS.mjs +745 -0
  125. package/dist/.setup/{thread-resume--WOKWxZd.mjs → thread-resume-B2EmMcgE.mjs} +5 -5
  126. package/dist/.setup/{timeout-CXOfNoaX.mjs → timeout-D0mEWSGG.mjs} +6 -12
  127. package/dist/.setup/{transcript-history-projection-B9a7HwUV.mjs → transcript-history-projection-DfKcoZCB.mjs} +3 -4
  128. package/dist/.setup/{transcript-mirror-BfLRARNL.mjs → transcript-mirror-Bee2o6jj.mjs} +68 -68
  129. package/dist/.setup/{transcript-mirror-attestation-YSegaktH.mjs → transcript-mirror-attestation-BzUXnrvv.mjs} +5 -2
  130. package/dist/.setup/{transport-stdio-a0HDa2Mj.mjs → transport-stdio-CRWTkKOn.mjs} +67 -77
  131. package/dist/.setup/{transport-websocket-zqJ0Cmtn.mjs → transport-websocket-DIyPfkHo.mjs} +8 -16
  132. package/dist/.setup/{turn-router-BWhX_SBh.mjs → turn-router-DKDAziUW.mjs} +30 -31
  133. package/dist/.setup/upstream-prompt-provenance-Ccd9MFRJ.mjs +44 -0
  134. package/dist/.setup/{upstream-session-fork-BQvofnk7.mjs → upstream-session-fork-Djp_yssT.mjs} +50 -43
  135. package/dist/.setup/{usage-BEHcVwcZ.mjs → usage-DQA-peQC.mjs} +4 -4
  136. package/dist/.setup/{usage-limit-error-D1p3nE6n.mjs → usage-limit-error-2t3KBqiX.mjs} +12 -21
  137. package/dist/.setup/web-search-item-CvokaZOo.mjs +20 -0
  138. package/dist/.setup/{web-search-provider.runtime-CV9oiB-v.mjs → web-search-provider.runtime-BsuCMNix.mjs} +3 -3
  139. package/dist/.setup/{workspace-write-sandbox-probe-DmUHLrrl.mjs → workspace-write-sandbox-probe-BDWO2Qkh.mjs} +4 -4
  140. package/dist/api.js +15 -15
  141. package/dist/catalog-page.worker.js +1 -1
  142. package/dist/cli-metadata.js +1 -1
  143. package/dist/doctor-contract-api.js +5 -6
  144. package/dist/harness.js +32 -61
  145. package/dist/index.js +302 -416
  146. package/dist/media-understanding-provider.js +32 -43
  147. package/dist/migration-provider-api.js +1 -1
  148. package/dist/native-session-binding-api.js +1 -1
  149. package/dist/native-tool-policy.js +23 -1
  150. package/dist/provider-discovery.js +1 -1
  151. package/dist/session-history-worker-runtime.js +52 -31
  152. package/dist/session-history.worker.js +1 -1
  153. package/openclaw.plugin.json +20 -3
  154. package/package.json +7 -7
  155. package/dist/.setup/attempt-terminal-gZrxQ35N.mjs +0 -5
  156. package/dist/.setup/plugin-thread-config-deadline-CsScGgrk.mjs +0 -124
  157. package/dist/.setup/service-tier-normalization-Cei89SW6.mjs +0 -15
  158. package/dist/.setup/shell-dynamic-tools-BqGszXcq.mjs +0 -85
  159. package/dist/.setup/thread-archive-guard-C9frICzX.mjs +0 -60
  160. package/dist/.setup/thread-requests-Dwg2b4Xl.mjs +0 -2111
  161. package/dist/.setup/upstream-prompt-provenance-fXkKbPVC.mjs +0 -37
@@ -1,11 +1,10 @@
1
- import { r as bindingStoreKey } from "./session-binding-record-BZB8RgcF.mjs";
2
- import { m as isCodexFastServiceTier } from "./config-parsing-BQq-CHTF.mjs";
3
- import { o as formatCodexDisplayText } from "./command-formatters-DV3DHhdr.mjs";
4
- import "./config-0Gxk3_eq.mjs";
1
+ import { r as bindingStoreKey } from "./session-binding-record-DU_0biMD.mjs";
2
+ import { r as isCodexFastServiceTier } from "./config-utils-DN_YT7dE.mjs";
3
+ import { o as formatCodexDisplayText } from "./command-formatters-xW9KpoSZ.mjs";
4
+ import "./config-C1YVVLEA.mjs";
5
5
  import { n as normalizeCodexAppServerBindingModelProvider, t as isCodexAppServerNativeAuthProfile } from "./auth-profile-CgHQ8Vot.mjs";
6
- import { x as resolveCodexBindingModelProviderFallback, y as resolveCodexAppServerRequestModelSelection } from "./thread-requests-Dwg2b4Xl.mjs";
7
- import "./thread-lifecycle-CoqYpbpk.mjs";
8
- import "./session-binding-Ce7BqiPN.mjs";
6
+ import "./session-binding-JEHNMPsr.mjs";
7
+ import { a as resolveCodexBindingModelProviderFallback, r as resolveCodexAppServerRequestModelSelection } from "./thread-model-selection-DcVebr8N.mjs";
9
8
  import { resolveAgentDir } from "openclaw/plugin-sdk/agent-runtime";
10
9
  import { getSessionEntry, patchSessionEntry, resolveStorePath } from "openclaw/plugin-sdk/session-store-runtime";
11
10
  import { ModelSelectionLockedError, applyModelOverrideWithAuthProfileCompatibility } from "openclaw/plugin-sdk/model-session-runtime";
@@ -189,13 +188,11 @@ async function setCodexConversationPermissions(params) {
189
188
  }
190
189
  function parseCodexFastModeArg(arg) {
191
190
  const normalized = arg?.trim().toLowerCase();
192
- if (!normalized || normalized === "status") return;
193
191
  if (normalized === "on" || normalized === "true" || normalized === "fast") return true;
194
192
  if (normalized === "off" || normalized === "false" || normalized === "flex") return false;
195
193
  }
196
194
  function parseCodexPermissionsModeArg(arg) {
197
- const normalized = arg?.trim().toLowerCase();
198
- if (!normalized || normalized === "status") return;
195
+ const normalized = arg?.trim().toLowerCase() ?? "";
199
196
  if (normalized === "yolo" || normalized === "full" || normalized === "full-access") return "yolo";
200
197
  if ([
201
198
  "default",
@@ -1,5 +1,5 @@
1
- import { d as readCodexPluginConfig } from "./config-parsing-BQq-CHTF.mjs";
2
- import { t as attemptTerminal } from "./attempt-terminal-gZrxQ35N.mjs";
1
+ import { d as readCodexPluginConfig } from "./config-parsing-DsWSCPHO.mjs";
2
+ import { t as attemptTerminal } from "./attempt-terminal-jO5IMj9K.mjs";
3
3
  //#region extensions/codex/src/app-server/cyber-failover.ts
4
4
  /**
5
5
  * Automatic Daybreak escalation for OpenAI cyber-policy refusals.
@@ -50,7 +50,6 @@ function reserveCodexCyberProbe(params) {
50
50
  inFlightProbes.delete(key);
51
51
  };
52
52
  }
53
- /** Remembers that this workspace cannot use the target for `cooloffMs`. */
54
53
  function recordCodexCyberTargetUnavailable(params) {
55
54
  if (params.cooloffMs <= 0) return;
56
55
  const now = params.now ?? Date.now();
@@ -62,7 +61,6 @@ function recordCodexCyberTargetUnavailable(params) {
62
61
  }
63
62
  unavailableTargets.set(targetKey(params.model, params.workspace), now + params.cooloffMs);
64
63
  }
65
- /** Decides whether a refused turn may be retried on Daybreak. */
66
64
  function planCodexCyberEscalation(params) {
67
65
  const { config } = params;
68
66
  if (config.mode !== "auto") return {
@@ -99,7 +97,6 @@ function planCodexCyberEscalation(params) {
99
97
  };
100
98
  }
101
99
  const AUTHORIZATION_FAILURE_RE = /\b(401|403)\b|unauthorized|not authorized|forbidden/i;
102
- /** Everything the escalation decision needs from one attempt outcome. */
103
100
  function readCodexCyberAttemptVerdict(result) {
104
101
  const message = result?.currentAttemptAssistant;
105
102
  const refusals = message?.role === "assistant" ? message.diagnostics ?? [] : [];
@@ -1,4 +1,4 @@
1
- import { t as emitCodexAppServerEvent } from "./run-attempt-lifecycle-BuZgVbDA.mjs";
1
+ import { t as emitCodexAppServerEvent } from "./run-attempt-lifecycle-KN4oh-7O.mjs";
2
2
  //#region extensions/codex/src/app-server/cyber-failover-notice.ts
3
3
  async function emitCodexCyberNotice(params, notice) {
4
4
  await emitCodexAppServerEvent(params, {
@@ -1,8 +1,8 @@
1
- import { d as readCodexPluginConfig } from "./config-parsing-BQq-CHTF.mjs";
2
- import { a as resolveCodexAppServerStartOptionsForAgent } from "./config-options-HG_Rr3W_.mjs";
3
- import { r as resolveManagedCodexAppServerStartOptions, t as isManagedCodexDesktopCommand } from "./managed-binary-C1VFoVPf.mjs";
4
- import "./config-0Gxk3_eq.mjs";
5
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-cUYrqu_a.mjs";
1
+ import { d as readCodexPluginConfig } from "./config-parsing-DsWSCPHO.mjs";
2
+ import { a as resolveCodexAppServerStartOptionsForAgent } from "./config-options-DDzeNQ8m.mjs";
3
+ import { r as resolveManagedCodexAppServerStartOptions, t as isManagedCodexDesktopCommand } from "./managed-binary-BtIjV7yN.mjs";
4
+ import "./config-C1YVVLEA.mjs";
5
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DWzK-k0n.mjs";
6
6
  import { listAgentIds, resolveAgentDir } from "openclaw/plugin-sdk/agent-scope-runtime";
7
7
  import { resolveDefaultModelForAgent } from "openclaw/plugin-sdk/agent-runtime";
8
8
  import { resolveEffectiveAgentRuntime } from "openclaw/plugin-sdk/command-auth-native";
@@ -1,17 +1,31 @@
1
1
  import { CODEX_NATIVE_TOOL_REQUIREMENTS } from "../native-tool-policy.js";
2
- import { c as isCodexPairedNodeRemoteExecPlacementSandbox, d as readCodexPluginConfig, l as isCodexRemoteExecPlacementSandbox } from "./config-parsing-BQq-CHTF.mjs";
3
- import "./config-0Gxk3_eq.mjs";
2
+ import { c as isCodexPairedNodeRemoteExecPlacementSandbox, d as readCodexPluginConfig, l as isCodexRemoteExecPlacementSandbox } from "./config-parsing-DsWSCPHO.mjs";
3
+ import "./config-C1YVVLEA.mjs";
4
4
  import { a as isCodexResponsesOAuthRun } from "./responses-oauth-twnuTaAa.mjs";
5
- import { ct as filterCodexDynamicToolsForDisabledNativeSurface, dt as isSystemAgentOnlyCodexDynamicToolAllowlist, ft as normalizeCodexDynamicToolName, lt as isForcedPrivateQaCodexRuntime, m as resolveCodexWebSearchPlan, st as filterCodexDynamicTools } from "./thread-requests-Dwg2b4Xl.mjs";
6
- import { n as resolveCodexNativeExecutionPolicy, r as resolveCodexNodeExecToolOverrides } from "./native-execution-policy-ClzpdG3D.mjs";
7
- import { a as createGatewayProcessProjection, c as createSandboxProcessProjection, i as createGatewayExecProjection, l as isCodexDynamicToolExcluded, o as createNodeExecAliasDynamicTool, s as createSandboxExecProjection, u as placeDisabledNativeShellToolsInDirectNamespace } from "./shell-dynamic-tools-BqGszXcq.mjs";
5
+ import { F as isForcedPrivateQaCodexRuntime, L as isSystemAgentOnlyCodexDynamicToolAllowlist, P as filterCodexDynamicTools, R as normalizeCodexDynamicToolName, h as resolveCodexWebSearchPlan } from "./thread-requests-BgzJwJtS.mjs";
6
+ import { n as resolveCodexNativeExecutionPolicy, r as resolveCodexNodeExecToolOverrides } from "./native-execution-policy-MXEe7PB3.mjs";
7
+ import { _ as createGatewayProcessProjection, b as isCodexDynamicToolExcluded, g as createGatewayExecProjection, v as createNodeExecAliasDynamicTool, x as placeDisabledNativeShellToolsInDirectNamespace, y as createSandboxShellProjection } from "./native-hook-relay-BUWIOrSr.mjs";
8
8
  import path from "node:path";
9
9
  import { createStageTimingTracker, formatStageTimings } from "openclaw/plugin-sdk/time-runtime";
10
+ import { resolveAgentDir } from "openclaw/plugin-sdk/agent-runtime";
10
11
  import { applyEmbeddedAttemptToolsAllow, buildAgentHookContextChannelFields, buildEmbeddedAttemptToolRunContext, embeddedAgentLog, filterProviderNormalizableTools, getPluginToolMeta, isHostScopedAgentToolActive, isSubagentSessionKey, normalizeAgentRuntimeTools, resolveAttemptSpawnWorkspaceDir, resolveModelAuthMode, supportsModelTools } from "openclaw/plugin-sdk/agent-harness-runtime";
11
- import { resolveAgentDir as resolveAgentDir$1 } from "openclaw/plugin-sdk/agent-runtime";
12
- import { resolveCodexScheduledToolProjectionFactory, runWithCronCreatorAuthorityCapabilityResolver } from "openclaw/plugin-sdk/codex-mcp-projection";
13
12
  import { isToolAllowed } from "openclaw/plugin-sdk/sandbox";
13
+ import { resolveCodexScheduledToolProjectionFactory, runWithCronCreatorAuthorityCapabilityResolver } from "openclaw/plugin-sdk/codex-mcp-projection";
14
14
  //#region extensions/codex/src/app-server/dynamic-tool-construction-plan.ts
15
+ /** Constructs through the live host while preserving the originating cron authority scope. */
16
+ function createCodexHostToolSurface(params, options, bindingOptions, resolveCronCreatorToolAuthority) {
17
+ const construct = () => {
18
+ const createToolSurfaceAsync = params.hostCapabilities.createToolSurfaceAsync;
19
+ if (!createToolSurfaceAsync) throw new Error("Codex tool construction requires a current host capability");
20
+ return createToolSurfaceAsync(options, bindingOptions);
21
+ };
22
+ return resolveCronCreatorToolAuthority ? runWithCronCreatorAuthorityCapabilityResolver({
23
+ capability: params.cronCreatorAuthorityCapability,
24
+ runId: params.runId,
25
+ resolve: resolveCronCreatorToolAuthority,
26
+ run: construct
27
+ }) : construct();
28
+ }
15
29
  /** Keeps node filesystem and process ownership on its native exec-server. */
16
30
  function resolveCodexToolConstructionPlan(sandbox, nativeToolSurfaceEnabled, requireWorkspaceOnly) {
17
31
  const nodeExecution = isCodexPairedNodeRemoteExecPlacementSandbox(sandbox) && sandbox?.backendId === "node";
@@ -37,7 +51,8 @@ function mapCodexAppServerRemoteWorkspacePath(params) {
37
51
  if (normalizedValue === localRoot) return remoteRoot;
38
52
  const prefix = localRoot.endsWith("/") ? localRoot : `${localRoot}/`;
39
53
  if (!normalizedValue.startsWith(prefix)) throw new Error(`Codex remoteWorkspaceRoot is configured but cwd ${params.value} is outside OpenClaw workspace root ${params.localWorkspaceRoot}; refusing to send a gateway-local cwd to the remote Codex app-server.`);
40
- return joinRemoteWorkspacePath(remoteRoot, normalizedValue.slice(prefix.length));
54
+ const suffix = normalizedValue.slice(prefix.length);
55
+ return `${remoteRoot}${remoteRoot.endsWith("/") ? "" : "/"}${suffix}`;
41
56
  }
42
57
  /** Maps a remote workspace artifact back into the corresponding gateway workspace. */
43
58
  function mapCodexAppServerLocalWorkspacePath(params) {
@@ -55,7 +70,7 @@ function mapCodexAppServerLocalWorkspacePath(params) {
55
70
  const isRemoteWorkspacePath = matchValue.startsWith(prefix);
56
71
  if (!isRemoteWorkspacePath && isAbsoluteWorkspacePath(normalizedValue)) throw new Error(`Codex remote workspace artifact ${params.value} is outside ${params.remoteWorkspaceRoot}.`);
57
72
  const suffixSegments = (isRemoteWorkspacePath ? normalizedValue.slice(prefix.length) : normalizedValue).split("/");
58
- if (suffixSegments.some((segment) => segment === "..")) throw new Error(`Codex remote workspace artifact ${params.value} must stay inside ${params.remoteWorkspaceRoot}.`);
73
+ if (suffixSegments.includes("..")) throw new Error(`Codex remote workspace artifact ${params.value} must stay inside ${params.remoteWorkspaceRoot}.`);
59
74
  return path.join(params.localWorkspaceRoot, ...suffixSegments.filter((segment) => segment !== "."));
60
75
  }
61
76
  function normalizeWorkspaceMatchPath(value) {
@@ -68,10 +83,7 @@ function isCodexPassThroughMediaSource(value) {
68
83
  return /^(?:https?|mxc|buffer|media):\/\//iu.test(value) || /^data:/iu.test(value);
69
84
  }
70
85
  function isAbsoluteWorkspacePath(value) {
71
- return value.startsWith("/") || /^[a-z]:\//iu.test(value) || /^[a-z][a-z0-9+.-]*:/iu.test(value);
72
- }
73
- function joinRemoteWorkspacePath(remoteRoot, suffix) {
74
- return remoteRoot.endsWith("/") ? `${remoteRoot}${suffix}` : `${remoteRoot}/${suffix}`;
86
+ return value.startsWith("/") || /^[a-z][a-z0-9+.-]*:/iu.test(value);
75
87
  }
76
88
  //#endregion
77
89
  //#region extensions/codex/src/app-server/vision-tools.ts
@@ -80,17 +92,11 @@ function joinRemoteWorkspacePath(remoteRoot, suffix) {
80
92
  * OpenClaw's view_image tool only when that surface or model vision is unavailable.
81
93
  */
82
94
  function filterCodexVisionTools(tools, params) {
83
- if (!params.modelHasVision || !params.nativeImageInspectionEnabled) return tools;
84
- return tools.filter((tool) => tool.name !== "view_image");
95
+ return !params.modelHasVision || !params.nativeImageInspectionEnabled ? tools : tools.filter((tool) => tool.name !== "view_image");
85
96
  }
86
97
  //#endregion
87
98
  //#region extensions/codex/src/app-server/dynamic-tool-build.ts
88
99
  const CODEX_MEMORY_FLUSH_DYNAMIC_TOOL_ALLOW = /* @__PURE__ */ new Set(["read", "write"]);
89
- function preserveRingZeroSystemAgentTool(allTools, filteredTools) {
90
- const openclaw = allTools.find((tool) => tool.name === "openclaw" && tool.catalogMode === "direct-only");
91
- if (!openclaw) return filteredTools;
92
- return [openclaw, ...filteredTools.filter((tool) => tool.name !== "openclaw")];
93
- }
94
100
  function resolveCodexMessageToolProvider(params) {
95
101
  return params.messageChannel ?? params.messageProvider;
96
102
  }
@@ -131,7 +137,7 @@ async function buildDynamicTools(input) {
131
137
  }
132
138
  const toolBuildStages = createStageTimingTracker();
133
139
  const modelHasVision = params.model.input?.includes("image") ?? false;
134
- const agentDir = params.agentDir ?? resolveAgentDir$1(params.config ?? {}, input.sessionAgentId);
140
+ const agentDir = params.agentDir ?? resolveAgentDir(params.config ?? {}, input.sessionAgentId);
135
141
  const nativeExecutionPolicy = resolveCodexNativeExecutionPolicyForRun(params, {
136
142
  agentId: input.policyAgentId,
137
143
  runtimeSessionKey: input.sandboxSessionKey,
@@ -233,26 +239,16 @@ async function buildDynamicTools(input) {
233
239
  cronCreatorAuthorityUnavailableReason: input.cronCreatorAuthorityUnavailableReason
234
240
  };
235
241
  input.onMessageToolTargetResolved?.(options.requireExplicitMessageTarget === true);
236
- const buildOpenClawCodingTools = () => {
237
- const bindingOptions = { cwd: input.effectiveCwd ?? input.effectiveWorkspace };
238
- const createToolSurface = params.hostCapabilities.createToolSurface;
239
- if (!createToolSurface) throw new Error("Codex tool construction requires a current host capability");
240
- return createToolSurface(options, bindingOptions);
241
- };
242
- const allTools = input.resolveCronCreatorToolAuthority ? runWithCronCreatorAuthorityCapabilityResolver({
243
- capability: params.cronCreatorAuthorityCapability,
244
- runId: params.runId,
245
- resolve: input.resolveCronCreatorToolAuthority,
246
- run: buildOpenClawCodingTools
247
- }) : buildOpenClawCodingTools();
242
+ const allTools = await createCodexHostToolSurface(params, options, { cwd: input.effectiveCwd ?? input.effectiveWorkspace }, input.resolveCronCreatorToolAuthority);
248
243
  toolBuildStages.mark("create-openclaw-coding-tools");
249
244
  const preNormalizationDiagnostics = [];
250
245
  const readableAllToolProjection = filterProviderNormalizableTools(allTools);
251
246
  preNormalizationDiagnostics.push(...readableAllToolProjection.diagnostics);
252
247
  const readableAllTools = [...readableAllToolProjection.tools];
253
- const normallyProfiledTools = input.nativeToolSurfaceEnabled === false ? filterCodexDynamicToolsForDisabledNativeSurface(readableAllTools, input.pluginConfig, { preserveShell: shouldKeepOpenClawShellDynamicTools(input, nativeExecutionPolicy) }) : filterCodexDynamicTools(readableAllTools, input.pluginConfig);
254
- const profileFilteredTools = (input.isHostScopedToolActive?.("openclaw") ?? isHostScopedAgentToolActive("openclaw")) && isSystemAgentOnlyCodexDynamicToolAllowlist(params.toolsAllow) ? preserveRingZeroSystemAgentTool(readableAllTools, normallyProfiledTools) : normallyProfiledTools;
255
- const codexFilteredTools = await addShellDynamicTools(isCodexMemoryFlushRun(params) ? filterCodexMemoryFlushDynamicTools(readableAllTools) : profileFilteredTools, readableAllTools, input, nativeExecutionPolicy);
248
+ const normallyProfiledTools = filterCodexDynamicTools(readableAllTools, input.pluginConfig, { disabledNativeSurface: input.nativeToolSurfaceEnabled === false ? { preserveShell: !isCodexMemoryFlushRun(params) && input.sandbox?.enabled !== true && nativeExecutionPolicy.effectiveExecHost !== "node" } : void 0 });
249
+ const systemAgentTool = (input.isHostScopedToolActive?.("openclaw") ?? isHostScopedAgentToolActive("openclaw")) && isSystemAgentOnlyCodexDynamicToolAllowlist(params.toolsAllow) && readableAllTools.find((tool) => tool.name === "openclaw" && tool.catalogMode === "direct-only");
250
+ const profileFilteredTools = systemAgentTool ? [systemAgentTool, ...normallyProfiledTools.filter((tool) => tool.name !== "openclaw")] : normallyProfiledTools;
251
+ const codexFilteredTools = await addShellDynamicTools(isCodexMemoryFlushRun(params) ? readableAllTools.filter((tool) => CODEX_MEMORY_FLUSH_DYNAMIC_TOOL_ALLOW.has(normalizeCodexDynamicToolName(tool.name))) : profileFilteredTools, readableAllTools, input, nativeExecutionPolicy);
256
252
  toolBuildStages.mark("codex-filtering");
257
253
  const visionFilteredTools = filterCodexVisionTools(codexFilteredTools, {
258
254
  modelHasVision,
@@ -260,15 +256,22 @@ async function buildDynamicTools(input) {
260
256
  });
261
257
  toolBuildStages.mark("vision-filtering");
262
258
  const webSearchPresent = visionFilteredTools.some((tool) => tool.name === "web_search");
263
- const persistentCodexWebSearchSurface = params.config?.tools?.web?.search?.enabled !== false && !(input.pluginConfig.codexDynamicToolsExclude ?? []).some((name) => normalizeCodexDynamicToolName(name) === "web_search");
259
+ const persistentCodexWebSearchSurface = params.config?.tools?.web?.search?.enabled !== false && !isCodexDynamicToolExcluded(input.pluginConfig, ["web_search"]);
260
+ const persistentHostedWebSearchEligible = resolveCodexWebSearchPlan({
261
+ config: params.config,
262
+ nativeProviderWebSearchSupport: input.nativeProviderWebSearchSupport
263
+ }).kind === "native-hosted";
264
+ let nativeWebSearchAllowed = false;
264
265
  let persistentWebSearchAllowed = webSearchPresent;
265
- if (input.onPersistentWebSearchPolicyResolved && !webSearchPresent && persistentCodexWebSearchSurface) {
266
+ if ((input.onPersistentWebSearchPolicyResolved || webSearchPlan.kind === "native-hosted" && (input.onWebSearchPolicyResolved || webSearchPlan.webFetchHostnameAllowlist)) && !webSearchPresent && persistentCodexWebSearchSurface) {
266
267
  const webSearchPolicy = (await import("openclaw/plugin-sdk/agent-harness")).resolveWebSearchToolPolicy({
267
268
  config: params.config,
268
269
  modelProvider: params.model.provider,
269
270
  modelId: params.modelId,
270
271
  agentId: input.policyAgentId,
271
272
  sessionKey: input.sandboxSessionKey,
273
+ sessionId: params.sessionId,
274
+ ...persistentHostedWebSearchEligible ? { runtimeToolAllowlist: toolRunContext.runtimeToolAllowlist } : {},
272
275
  sandboxToolPolicy: input.sandbox?.tools,
273
276
  messageProvider: messageToolProvider,
274
277
  agentAccountId: params.agentAccountId,
@@ -284,10 +287,17 @@ async function buildDynamicTools(input) {
284
287
  trustedInternalHandoff: params.trustedInternalHandoff,
285
288
  scheduledToolPolicy: params.scheduledToolPolicy
286
289
  });
287
- persistentWebSearchAllowed = webSearchPolicy.persistentAllowed && (!webSearchPolicy.allowed || isCodexMemoryFlushRun(params));
290
+ persistentWebSearchAllowed = webSearchPolicy.persistentAllowed && (persistentHostedWebSearchEligible || !webSearchPolicy.allowed || isCodexMemoryFlushRun(params));
291
+ nativeWebSearchAllowed = webSearchPlan.kind === "native-hosted" && webSearchPolicy.allowed && !isCodexMemoryFlushRun(params);
288
292
  }
289
293
  input.onPersistentWebSearchPolicyResolved?.(persistentWebSearchAllowed);
290
- const filteredTools = filterCodexDynamicToolsForAllowlist(visionFilteredTools, toolRunContext.runtimeToolAllowlist);
294
+ const filteredTools = applyEmbeddedAttemptToolsAllow(visionFilteredTools, toolRunContext.runtimeToolAllowlist, {
295
+ toolMeta: getPluginToolMeta,
296
+ toolAliases: (tool) => {
297
+ const normalized = normalizeCodexDynamicToolName(tool.name);
298
+ return normalized === "sandbox_exec" || normalized === "gateway_exec" || normalized === "node_exec" ? ["exec"] : normalized === "sandbox_process" || normalized === "gateway_process" ? ["exec", "process"] : [];
299
+ }
300
+ });
291
301
  toolBuildStages.mark("allowlist-filter");
292
302
  const normalizedTools = normalizeAgentRuntimeTools({
293
303
  runtimePlan: input.ignoreRuntimePlan ? void 0 : params.runtimePlan,
@@ -303,7 +313,7 @@ async function buildDynamicTools(input) {
303
313
  onPreNormalizationSchemaDiagnostics: (diagnostics) => preNormalizationDiagnostics.push(...diagnostics)
304
314
  });
305
315
  toolBuildStages.mark("runtime-normalization");
306
- const webSearchAllowed = normalizedTools.some((tool) => tool.name === "web_search");
316
+ const webSearchAllowed = nativeWebSearchAllowed || normalizedTools.some((tool) => tool.name === "web_search");
307
317
  webFetchHostnameAllowlistRef.value = webSearchAllowed ? webSearchPlan.webFetchHostnameAllowlist : void 0;
308
318
  input.onWebSearchPolicyResolved?.(webSearchAllowed);
309
319
  const webSearchFilteredTools = webSearchPlan.suppressManagedWebSearch ? normalizedTools.filter((tool) => tool.name !== "web_search") : normalizedTools;
@@ -367,9 +377,6 @@ function canCodexAppServerNativeToolSurfaceHonorSandbox(sandbox, options = {}) {
367
377
  function isCodexMemoryFlushRun(params) {
368
378
  return params?.trigger === "memory" && Boolean(params.memoryFlushWritePath?.trim());
369
379
  }
370
- function filterCodexMemoryFlushDynamicTools(tools) {
371
- return tools.filter((tool) => CODEX_MEMORY_FLUSH_DYNAMIC_TOOL_ALLOW.has(normalizeCodexDynamicToolName(tool.name)));
372
- }
373
380
  /** Requires a Codex sandbox environment only when native tools must run inside OpenClaw sandboxing. */
374
381
  function shouldRequireCodexSandboxExecServerEnvironment(params) {
375
382
  return Boolean(isCodexRemoteExecPlacementSandbox(params.sandbox) || params.sandbox?.enabled && params.nativeToolSurfaceEnabled && params.sandboxExecServerEnabled);
@@ -385,20 +392,14 @@ function resolveCodexAppServerExecutionCwd(params) {
385
392
  });
386
393
  }
387
394
  function resolveCodexExternalSandboxPolicyForOpenClawSandbox(sandbox) {
395
+ const backendId = sandbox?.backendId.trim().toLowerCase();
396
+ const dockerNetwork = backendId === "docker" || backendId === "podman";
397
+ const network = dockerNetwork ? sandbox?.docker?.network?.trim().toLowerCase() : void 0;
388
398
  return {
389
399
  type: "externalSandbox",
390
- networkAccess: codexNetworkAccessForOpenClawSandbox(sandbox) ? "enabled" : "restricted"
400
+ networkAccess: !dockerNetwork || network && network !== "none" ? "enabled" : "restricted"
391
401
  };
392
402
  }
393
- function usesDockerNetworkConfig(sandbox) {
394
- const backendId = sandbox?.backendId.trim().toLowerCase();
395
- return backendId === "docker" || backendId === "podman";
396
- }
397
- function codexNetworkAccessForOpenClawSandbox(sandbox) {
398
- if (!usesDockerNetworkConfig(sandbox)) return true;
399
- const network = sandbox?.docker?.network?.trim().toLowerCase();
400
- return Boolean(network && network !== "none");
401
- }
402
403
  function disableCodexPluginThreadConfig(pluginConfig) {
403
404
  const config = readCodexPluginConfig(pluginConfig);
404
405
  return {
@@ -423,8 +424,8 @@ async function addShellDynamicTools(filteredTools, allTools, input, executionPol
423
424
  "process",
424
425
  "sandbox_process"
425
426
  ])) {
426
- additions.push(createSandboxExecProjection(execTool));
427
- if (processTool) additions.push(createSandboxProcessProjection(processTool));
427
+ additions.push(createSandboxShellProjection(execTool, "exec"));
428
+ if (processTool) additions.push(createSandboxShellProjection(processTool, "process"));
428
429
  }
429
430
  if (input.nativeToolSurfaceEnabled === true && input.sandbox?.enabled !== true && executionPolicy.nativeToolSurfaceAllowed && executionPolicy.effectiveExecHost === "gateway" && !isCodexDynamicToolExcluded(input.pluginConfig, ["exec", "gateway_exec"]) && !existingNames.has("gateway_exec")) {
430
431
  const processAliasAvailable = Boolean(processTool && !isCodexDynamicToolExcluded(input.pluginConfig, ["process", "gateway_process"]) && !existingNames.has("gateway_process"));
@@ -443,19 +444,6 @@ async function addShellDynamicTools(filteredTools, allTools, input, executionPol
443
444
  }
444
445
  return additions.length ? [...filteredTools, ...additions] : filteredTools;
445
446
  }
446
- function shouldKeepOpenClawShellDynamicTools(input, nodePolicy) {
447
- return !isCodexMemoryFlushRun(input.params) && input.nativeToolSurfaceEnabled === false && input.sandbox?.enabled !== true && nodePolicy.effectiveExecHost !== "node";
448
- }
449
- /** Applies a normalized tool allowlist while preserving shell aliases for exec/process. */
450
- function filterCodexDynamicToolsForAllowlist(tools, toolsAllow) {
451
- return applyEmbeddedAttemptToolsAllow(tools, toolsAllow, {
452
- toolMeta: getPluginToolMeta,
453
- toolAliases: (tool) => {
454
- const normalized = normalizeCodexDynamicToolName(tool.name);
455
- return normalized === "sandbox_exec" || normalized === "gateway_exec" || normalized === "node_exec" ? ["exec"] : normalized === "sandbox_process" || normalized === "gateway_process" ? ["exec", "process"] : [];
456
- }
457
- });
458
- }
459
447
  function shouldForceMessageTool(params) {
460
448
  return params.disableMessageTool !== true && params.sourceReplyDeliveryMode === "message_tool_only";
461
449
  }