@openclaw/codex 2026.10.1-beta.2 → 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-DGqFpAud.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-CXTudl9p.mjs → apply-CBMV8LN0.mjs} +40 -51
  4. package/dist/.setup/{attempt-client-cleanup-BH0hW2xU.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-BY0jprWJ.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-CGm0UJOr.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-pGsfXcmH.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-CqQnsg7T.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-Bqp7WG51.mjs → client-catalog-response-DsbEAtpd.mjs} +25 -32
  16. package/dist/.setup/{client-C8lgBOoO.mjs → client-y7nO6X9c.mjs} +198 -247
  17. package/dist/.setup/{command-dispatch-DhBbFIQ5.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-ztOOzm6O.mjs → command-handlers-VBaJnpZo.mjs} +270 -360
  20. package/dist/.setup/{command-rpc-CuC5fPom.mjs → command-rpc-C9VxOLuG.mjs} +19 -18
  21. package/dist/.setup/{compact-tUb9AYfH.mjs → compact-CD8xJxXS.mjs} +41 -61
  22. package/dist/.setup/{computer-use-BBN9y326.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-B3MNMVzb.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-CYsMlCuE.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-C8xGEXmR.mjs → dynamic-tool-build-D731PCdv.mjs} +57 -69
  38. package/dist/.setup/{dynamic-tools-DyERJnR6.mjs → dynamic-tools-D0pYbxHH.mjs} +689 -710
  39. package/dist/.setup/{effective-mcp-catalog-C26Mio5l.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-D8VcDTNo.mjs → ephemeral-turn-Cphy5Qr_.mjs} +3 -3
  42. package/dist/.setup/{event-projector-assistant-message-BN7CNUB5.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-C0jrcplS.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-BxN0_CYe.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-DZyNeDKG.mjs → model-catalog-B227ST3D.mjs} +6 -6
  56. package/dist/.setup/{models-DSseKSMg.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-CqcPVmhH.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-BUYOUp9X.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-BJ37d2Og.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-CuahdPLC.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-BnwHVD_z.mjs → provider-BJ4xhaGX.mjs} +4 -4
  76. package/dist/.setup/{provider-capabilities-D68Whix6.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-jSbhc1sg.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-BLDZeYLD.mjs → run-attempt-Dx7a4Mfm.mjs} +927 -849
  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-Bdjw9HEn.mjs → session-catalog-events-DzFlXNUe.mjs} +6 -5
  94. package/dist/.setup/{session-catalog-index-DufISKJ6.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-D6IiLtMb.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-8aHNwzWD.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-Czbchv_O.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-DjZsIwbZ.mjs → settled-turn-finalizer-X-Fylp-u.mjs} +12 -11
  115. package/dist/.setup/{shared-client-qhyYWbew.mjs → shared-client-ByIwuAC-.mjs} +172 -229
  116. package/dist/.setup/{side-question-D3NJlgbl.mjs → side-question-BDUdozFy.mjs} +116 -137
  117. package/dist/.setup/{source-BYu0T780.mjs → source-Bxbqf3S1.mjs} +37 -56
  118. package/dist/.setup/thread-archive-guard-LKdwQKyr.mjs +56 -0
  119. package/dist/.setup/{thread-lifecycle-Cbz_7ySv.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-DwuSrt3s.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-DoNxbhqt.mjs → thread-policy-CHgY-KNl.mjs} +4 -4
  124. package/dist/.setup/thread-requests-BgzJwJtS.mjs +745 -0
  125. package/dist/.setup/{thread-resume-BT6NHMkM.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-sS69wYnI.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-ChSld66u.mjs → upstream-session-fork-Djp_yssT.mjs} +50 -43
  135. package/dist/.setup/{usage-D8e8Xiqf.mjs → usage-DQA-peQC.mjs} +4 -4
  136. package/dist/.setup/{usage-limit-error-GbT-5NcW.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-dL2GD1Kl.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-B8LGaZNW.mjs +0 -124
  157. package/dist/.setup/service-tier-normalization-Cei89SW6.mjs +0 -15
  158. package/dist/.setup/shell-dynamic-tools-D3Brj3g9.mjs +0 -85
  159. package/dist/.setup/thread-archive-guard-C9frICzX.mjs +0 -60
  160. package/dist/.setup/thread-requests-CL1e8Wmx.mjs +0 -2111
  161. package/dist/.setup/upstream-prompt-provenance-fXkKbPVC.mjs +0 -37
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./session-binding-sidecars-BrdV95Fg.mjs";
1
+ import { t as __exportAll } from "./session-binding-sidecars-DD-enC8w.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
4
4
  import { constants, existsSync, realpathSync } from "node:fs";
@@ -20,7 +20,7 @@ const MACOS_DESKTOP_CODEX_APP_PATH_CANDIDATES = ["ChatGPT.app", "Codex.app"].fla
20
20
  };
21
21
  return [{
22
22
  ...candidate,
23
- appServerCommandPath: path.join(appBundlePath, "Contents", "Resources", "codex-cli", "CodexCLI.app", "Contents", "MacOS", "codex")
23
+ appServerCommandPath: path.join(resources, "codex-cli", "CodexCLI.app", "Contents", "MacOS", "codex")
24
24
  }, candidate];
25
25
  });
26
26
  function resolveMacOSDesktopCodexAppPathCandidates(platform = process.platform) {
@@ -36,8 +36,7 @@ function resolveMacOSDesktopCodexComputerUseServiceAppCandidates(platform = proc
36
36
  if (platform !== "darwin") return [];
37
37
  const candidates = resolveMacOSDesktopCodexAppPathCandidates(platform);
38
38
  const matchingCandidate = appServerCommand ? candidates.find((candidate) => path.resolve(candidate.appServerCommandPath) === path.resolve(appServerCommand)) : void 0;
39
- const orderedCandidates = matchingCandidate ? [matchingCandidate, ...candidates.filter((candidate) => candidate !== matchingCandidate)] : candidates;
40
- return [...new Set(orderedCandidates.flatMap((candidate) => candidate.computerUseServiceAppPaths))];
39
+ return [.../* @__PURE__ */ new Set([...matchingCandidate?.computerUseServiceAppPaths ?? [], ...candidates.flatMap((candidate) => candidate.computerUseServiceAppPaths)])];
41
40
  }
42
41
  function resolveFirstExistingMacOSDesktopCodexBundledMarketplacePath(params = {}) {
43
42
  const candidates = params.candidates ?? resolveMacOSDesktopCodexBundledMarketplaceCandidates(params.platform);
@@ -65,12 +64,19 @@ var managed_binary_exports = /* @__PURE__ */ __exportAll({
65
64
  resolvePackagedCodexNativeCommand: () => resolvePackagedCodexNativeCommand,
66
65
  setManagedCodexPluginRoot: () => setManagedCodexPluginRoot
67
66
  });
67
+ const NATIVE_TARGET_TRIPLES = /* @__PURE__ */ new Map([
68
+ ["linux-x64", "x86_64-unknown-linux-musl"],
69
+ ["linux-arm64", "aarch64-unknown-linux-musl"],
70
+ ["darwin-x64", "x86_64-apple-darwin"],
71
+ ["darwin-arm64", "aarch64-apple-darwin"],
72
+ ["win32-x64", "x86_64-pc-windows-msvc"],
73
+ ["win32-arm64", "aarch64-pc-windows-msvc"]
74
+ ]);
68
75
  const registeredCodexPlugin = resolveGlobalSingleton(Symbol.for("openclaw.codexManagedPluginRoot"), () => ({}));
69
76
  /** Records the process-stable plugin root prepared by OpenClaw's plugin loader. */
70
77
  function setManagedCodexPluginRoot(pluginRoot) {
71
78
  registeredCodexPlugin.root = pluginRoot;
72
79
  }
73
- /** Rewrites managed stdio start options to point at an executable Codex binary path. */
74
80
  async function resolveManagedCodexAppServerStartOptions(startOptions, options = {}) {
75
81
  if (startOptions.transport !== "stdio" || startOptions.commandSource !== "managed") return startOptions;
76
82
  const pluginRoot = options.pluginRoot ?? registeredCodexPlugin.root;
@@ -97,15 +103,16 @@ async function resolveManagedCodexAppServerStartOptions(startOptions, options =
97
103
  function resolveManagedCodexNativeCommand(command, options = {}) {
98
104
  const platform = options.platform ?? process.platform;
99
105
  if (isManagedCodexDesktopCommand(command, platform)) return command;
100
- const target = resolveCodexNativeTarget(platform, options.arch ?? process.arch);
101
- if (!target) return;
106
+ const target = `${platform === "android" ? "linux" : platform}-${options.arch ?? process.arch}`;
107
+ const triple = NATIVE_TARGET_TRIPLES.get(target);
108
+ if (!triple) return;
102
109
  const packageRoot = resolveManagedCodexPackageRootForCommand(command, platform);
103
110
  if (!packageRoot) return;
104
111
  const resolvePackageJson = options.resolvePackageJson ?? resolvePackageJsonFromRoot;
105
112
  const pathExists = options.pathExists ?? existsSync;
106
- const packageJsonPath = resolvePackageJson(target.packageName, packageRoot) ?? resolvePackageJson("@openai/codex", packageRoot);
113
+ const packageJsonPath = resolvePackageJson(`@openai/codex-${target}`, packageRoot) ?? resolvePackageJson("@openai/codex", packageRoot);
107
114
  if (!packageJsonPath) return;
108
- const candidate = path.join(path.dirname(packageJsonPath), "vendor", target.triple, "bin", platform === "win32" ? "codex.exe" : "codex");
115
+ const candidate = path.join(path.dirname(packageJsonPath), "vendor", triple, "bin", platform === "win32" ? "codex.exe" : "codex");
109
116
  return pathExists(candidate) ? candidate : void 0;
110
117
  }
111
118
  /** Recognizes only the official npm entrypoint, not arbitrary configured wrappers. */
@@ -114,7 +121,6 @@ function resolvePackagedCodexNativeCommand(entrypoint) {
114
121
  if (path.basename(packageRoot) !== "codex" || path.basename(path.dirname(packageRoot)) !== "@openai" || path.relative(packageRoot, entrypoint) !== path.join("bin", "codex.js")) return;
115
122
  return resolveManagedCodexNativeCommand(entrypoint);
116
123
  }
117
- /** Returns whether a command is one of the standard macOS desktop app executables. */
118
124
  function isManagedCodexDesktopCommand(command, platform = process.platform) {
119
125
  return platform === "darwin" && resolveMacOSDesktopCodexAppServerCommandCandidates(platform).includes(command);
120
126
  }
@@ -135,32 +141,6 @@ function resolveManagedCodexPackageRootForCommand(command, platform) {
135
141
  }
136
142
  }
137
143
  }
138
- function resolveCodexNativeTarget(platform, arch) {
139
- if ((platform === "linux" || platform === "android") && arch === "x64") return {
140
- packageName: "@openai/codex-linux-x64",
141
- triple: "x86_64-unknown-linux-musl"
142
- };
143
- if ((platform === "linux" || platform === "android") && arch === "arm64") return {
144
- packageName: "@openai/codex-linux-arm64",
145
- triple: "aarch64-unknown-linux-musl"
146
- };
147
- if (platform === "darwin" && arch === "x64") return {
148
- packageName: "@openai/codex-darwin-x64",
149
- triple: "x86_64-apple-darwin"
150
- };
151
- if (platform === "darwin" && arch === "arm64") return {
152
- packageName: "@openai/codex-darwin-arm64",
153
- triple: "aarch64-apple-darwin"
154
- };
155
- if (platform === "win32" && arch === "x64") return {
156
- packageName: "@openai/codex-win32-x64",
157
- triple: "x86_64-pc-windows-msvc"
158
- };
159
- if (platform === "win32" && arch === "arm64") return {
160
- packageName: "@openai/codex-win32-arm64",
161
- triple: "aarch64-pc-windows-msvc"
162
- };
163
- }
164
144
  function resolvePackageJsonFromRoot(packageName, root) {
165
145
  try {
166
146
  const manifestPath = realpathSync(path.join(root, "package.json"));
@@ -1,18 +1,18 @@
1
- import { m as sessionBindingIdentity } from "./session-binding-record-BZB8RgcF.mjs";
2
- import { f as readCodexRequirementsToml } from "./config-security-KAPScztc.mjs";
3
- import { d as readCodexPluginConfig } from "./config-parsing-BQq-CHTF.mjs";
1
+ import { m as sessionBindingIdentity } from "./session-binding-record-DU_0biMD.mjs";
2
+ import { d as readCodexRequirementsToml } from "./config-security-clxAZYWX.mjs";
3
+ import { d as readCodexPluginConfig } from "./config-parsing-DsWSCPHO.mjs";
4
4
  import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
5
- import { n as buildCodexAppServerRuntimeFingerprint, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-BW8rd98k.mjs";
6
- import { i as resolveCodexBindingAppServerConnection } from "./binding-connection-C-08ez1w.mjs";
7
- import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-0Gxk3_eq.mjs";
5
+ import { i as withCodexAppServerGitConfig } from "./transport-stdio-CRWTkKOn.mjs";
6
+ import { n as buildCodexAppServerRuntimeFingerprint, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
7
+ import { i as resolveCodexBindingAppServerConnection } from "./binding-connection-B7HAAZSI.mjs";
8
+ import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-C1YVVLEA.mjs";
8
9
  import { r as resolveCodexAppServerAuthProfileId } from "./auth-profile-CgHQ8Vot.mjs";
9
- import { I as ensureCodexAppServerClientRuntime, c as getLeasedSharedCodexAppServerClient, h as releaseLeasedSharedCodexAppServerClient } from "./shared-client-qhyYWbew.mjs";
10
- import { Ct as mergeCodexThreadConfigs, _t as buildCodexPluginThreadConfigInputFingerprint } from "./thread-requests-CL1e8Wmx.mjs";
11
- import { s as startOrResumeThread } from "./thread-lifecycle-Cbz_7ySv.mjs";
12
- import { r as resolveCodexSessionBinding } from "./session-binding-Ce7BqiPN.mjs";
13
- import { a as rollbackCodexAppServerBindingSubscription, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-DwuSrt3s.mjs";
14
- import { n as resolveCodexPluginThreadConfigStartupPolicy, t as createCodexPluginThreadConfigStartupProvider } from "./plugin-thread-config-deadline-B8LGaZNW.mjs";
15
- import { n as applyCodexSessionPermissionPolicy } from "./session-permission-policy-BxIUJ0Zd.mjs";
10
+ import { I as ensureCodexAppServerClientRuntime, c as getLeasedSharedCodexAppServerClient, h as releaseLeasedSharedCodexAppServerClient } from "./shared-client-ByIwuAC-.mjs";
11
+ import { d as mergeCodexThreadConfigs } from "./project-doc-thread-config-BVcvnps8.mjs";
12
+ import { i as resolveCodexSessionBinding } from "./session-binding-JEHNMPsr.mjs";
13
+ import { a as rollbackCodexAppServerBindingSubscription, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-Be53aiaG.mjs";
14
+ import { a as prepareCodexPluginThreadConfigStartupProvider, o as resolveCodexPluginThreadConfigStartupPolicy, t as startOrResumeThread } from "./thread-lifecycle-run-CfP4PnEf.mjs";
15
+ import { n as applyCodexSessionPermissionPolicy } from "./session-permission-policy-CD2MAWU8.mjs";
16
16
  import { z } from "zod";
17
17
  import { loadCodexBundleMcpThreadConfig } from "openclaw/plugin-sdk/agent-harness-runtime";
18
18
  import { loadExecApprovals } from "openclaw/plugin-sdk/exec-approvals-runtime";
@@ -76,7 +76,8 @@ async function prepareCodexMcpAppSession(params) {
76
76
  canUseAutoReview: false
77
77
  });
78
78
  const environment = input.hostCapabilities.preparedEnvironment?.();
79
- const startOptions = appServer.start.transport === "stdio" && !isCodexAppServerProxyLaunch(appServer.start.args) ? {
79
+ const ownedLocalProcess = appServer.start.transport === "stdio" && !isCodexAppServerProxyLaunch(appServer.start.args) && !appServer.remoteWorkspaceRoot;
80
+ const baseStartOptions = appServer.start.transport === "stdio" && !isCodexAppServerProxyLaunch(appServer.start.args) ? {
80
81
  ...appServer.start,
81
82
  env: {
82
83
  ...appServer.start.env,
@@ -85,6 +86,8 @@ async function prepareCodexMcpAppSession(params) {
85
86
  ...environment?.localProcessEnv
86
87
  }
87
88
  } : appServer.start;
89
+ const shellGitConfigParameters = ownedLocalProcess ? environment?.localGitConfigParameters : void 0;
90
+ const startOptions = shellGitConfigParameters ? withCodexAppServerGitConfig(baseStartOptions, shellGitConfigParameters) : baseStartOptions;
88
91
  const authProfileId = resolveCodexAppServerAuthProfileId({
89
92
  authProfileId: input.authProfileId ?? admitted.binding?.authProfileId,
90
93
  store: input.authProfileStore,
@@ -121,20 +124,15 @@ async function prepareCodexMcpAppSession(params) {
121
124
  appServerVersion: client.getServerVersion(),
122
125
  runtimeIdentity: client.getRuntimeIdentity()
123
126
  });
124
- const pluginThreadConfig = pluginPolicy.pluginThreadConfigRequired ? createCodexPluginThreadConfigStartupProvider({
125
- inputFingerprint: buildCodexPluginThreadConfigInputFingerprint({
126
- pluginConfig: pluginPolicy.pluginThreadConfigPluginConfig,
127
- appCacheKey
128
- }),
129
- enabledPluginConfigKeys: pluginPolicy.enabledPluginConfigKeys,
130
- policy: pluginPolicy.resolvedPluginPolicy,
127
+ const pluginThreadConfig = prepareCodexPluginThreadConfigStartupProvider({
128
+ startupPolicy: pluginPolicy,
129
+ appCacheKey
130
+ })?.({
131
131
  requestTimeoutMs: appServer.requestTimeoutMs,
132
132
  signal: input.abortSignal ?? new AbortController().signal,
133
- pluginConfig: pluginPolicy.pluginThreadConfigPluginConfig,
134
133
  client,
135
- configCwd: input.workspaceDir,
136
- appCacheKey
137
- }) : void 0;
134
+ configCwd: input.workspaceDir
135
+ });
138
136
  const bundle = await loadCodexBundleMcpThreadConfig({
139
137
  workspaceDir: input.workspaceDir,
140
138
  agentId: input.agentId,
@@ -170,6 +168,7 @@ async function prepareCodexMcpAppSession(params) {
170
168
  agentDir: input.agentDir,
171
169
  cwd: input.workspaceDir,
172
170
  appServer,
171
+ shellGitConfigParameters,
173
172
  dynamicTools: [],
174
173
  nativeCodeModeEnabled: false,
175
174
  webSearchAllowed: false,
@@ -1,4 +1,4 @@
1
- import { r as parseCodexPluginMarketplaceId } from "./plugin-marketplace-discovery-SQPhSuic.mjs";
1
+ import { r as parseCodexPluginMarketplaceId } from "./plugin-marketplace-discovery-BblHM3DU.mjs";
2
2
  import { asOptionalRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { normalizeMcpCodexToolAnnotations, readMcpAppIcons, readMcpAppSettingsCapability, readMcpAppToolExtensions } from "openclaw/plugin-sdk/codex-mcp-projection";
4
4
  //#region extensions/codex/src/app-server/mcp-tool-metadata.ts
@@ -1,13 +1,13 @@
1
1
  import { t as buildCodexRuntimeModelParams } from "./model-runtime-BdqzOMkU.mjs";
2
- import { d as readCodexPluginConfig } from "./config-parsing-BQq-CHTF.mjs";
2
+ import { d as readCodexPluginConfig } from "./config-parsing-DsWSCPHO.mjs";
3
3
  import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
4
- import { a as withCodexAppServerJsonClient } from "./request-jSbhc1sg.mjs";
5
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-cUYrqu_a.mjs";
4
+ import { a as withCodexAppServerJsonClient } from "./request-Y8dmbqZ3.mjs";
5
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DWzK-k0n.mjs";
6
6
  import { a as resolveCodexAppServerAuthProfileStore, r as resolveCodexAppServerAuthProfileId } from "./auth-profile-CgHQ8Vot.mjs";
7
- import { r as captureSharedCodexAppServerCatalogLifetime } from "./shared-client-qhyYWbew.mjs";
7
+ import { r as captureSharedCodexAppServerCatalogLifetime } from "./shared-client-ByIwuAC-.mjs";
8
8
  import { i as isCodexResponsesOAuthCredential } from "./responses-oauth-twnuTaAa.mjs";
9
- import { n as listAllCodexAppServerModels } from "./models-DSseKSMg.mjs";
10
- import { probeCodexNativeAuth } from "./native-auth-Cjb9y7IZ.mjs";
9
+ import { n as listAllCodexAppServerModels } from "./models-DdRyi93L.mjs";
10
+ import { probeCodexNativeAuth } from "./native-auth-esN5MdIv.mjs";
11
11
  //#region extensions/codex/src/app-server/model-catalog.ts
12
12
  const INPUT_TYPES = /* @__PURE__ */ new Set([
13
13
  "text",
@@ -1,4 +1,4 @@
1
- import { d as assertCodexModelListResponse } from "./client-C8lgBOoO.mjs";
1
+ import { d as assertCodexModelListResponse } from "./client-y7nO6X9c.mjs";
2
2
  import { normalizeOptionalString, normalizeUniqueTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  //#region extensions/codex/src/app-server/models.ts
4
4
  const DEFAULT_MODEL_DISCOVERY_TIMEOUT_MS = 1e4;
@@ -9,17 +9,15 @@ async function listAllCodexAppServerModels(options = {}) {
9
9
  const maxPages = normalizeMaxPages(options.maxPages);
10
10
  return await withCodexAppServerModelRequest(options, async (request) => {
11
11
  const models = [];
12
- let cursor = options.cursor;
13
12
  let nextCursor;
14
13
  for (let page = 0; page < maxPages; page += 1) {
15
14
  const result = await requestModelListPage(request, {
16
15
  ...options,
17
- cursor
16
+ cursor: page === 0 ? options.cursor : nextCursor
18
17
  });
19
18
  models.push(...result.models);
20
19
  nextCursor = result.nextCursor;
21
20
  if (!nextCursor) return { models };
22
- cursor = nextCursor;
23
21
  }
24
22
  return {
25
23
  models,
@@ -31,10 +29,9 @@ async function listAllCodexAppServerModels(options = {}) {
31
29
  async function withCodexAppServerModelRequest(options, run) {
32
30
  if (options.request) return await run(options.request);
33
31
  const timeoutMs = options.timeoutMs ?? 1e4;
34
- const useSharedClient = options.sharedClient !== false;
35
- const { createIsolatedCodexAppServerClient, getLeasedSharedCodexAppServerClient, releaseLeasedSharedCodexAppServerClient } = await import("./shared-client-qhyYWbew.mjs").then((n) => n.v);
36
- const { requestCodexAppServerClientJson } = await import("./request-jSbhc1sg.mjs").then((n) => n.i);
37
- const client = await (useSharedClient ? getLeasedSharedCodexAppServerClient : createIsolatedCodexAppServerClient)({
32
+ const { getLeasedSharedCodexAppServerClient, releaseLeasedSharedCodexAppServerClient } = await import("./shared-client-ByIwuAC-.mjs").then((n) => n.v);
33
+ const { requestCodexAppServerClientJson } = await import("./request-Y8dmbqZ3.mjs").then((n) => n.i);
34
+ const client = await getLeasedSharedCodexAppServerClient({
38
35
  startOptions: options.startOptions,
39
36
  timeoutMs,
40
37
  authProfileId: options.authProfileId,
@@ -50,8 +47,7 @@ async function withCodexAppServerModelRequest(options, run) {
50
47
  config: options.config
51
48
  }));
52
49
  } finally {
53
- if (useSharedClient) releaseLeasedSharedCodexAppServerClient(client);
54
- else await client.closeAndWait();
50
+ releaseLeasedSharedCodexAppServerClient(client);
55
51
  }
56
52
  }
57
53
  async function requestModelListPage(request, options) {
@@ -1,8 +1,8 @@
1
- import { d as readCodexPluginConfig } from "./config-parsing-BQq-CHTF.mjs";
1
+ import { d as readCodexPluginConfig } from "./config-parsing-DsWSCPHO.mjs";
2
2
  import { n as isCodexAppServerProxyLaunch, t as buildCodexLoginStatusArgs } from "./launch-args-DbFCehO7.mjs";
3
- import { r as resolveManagedCodexAppServerStartOptions } from "./managed-binary-C1VFoVPf.mjs";
4
- import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-a0HDa2Mj.mjs";
5
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-cUYrqu_a.mjs";
3
+ import { r as resolveManagedCodexAppServerStartOptions } from "./managed-binary-BtIjV7yN.mjs";
4
+ import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-CRWTkKOn.mjs";
5
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DWzK-k0n.mjs";
6
6
  import { materializeWindowsSpawnProgram, resolveWindowsSpawnProgram } from "openclaw/plugin-sdk/windows-spawn";
7
7
  import { runUtf8CommandWithTimeout } from "openclaw/plugin-sdk/process-runtime";
8
8
  //#region extensions/codex/src/app-server/native-auth.ts
@@ -37,7 +37,7 @@ async function probeCodexNativeAuth(params) {
37
37
  params.signal?.throwIfAborted();
38
38
  if (result.termination !== "exit" || result.code !== 0) return;
39
39
  const line = `${result.stdout}\n${result.stderr}`.split("\n").map((value) => value.trim()).find((value) => value.startsWith("Logged in using "));
40
- const mode = line?.startsWith("Logged in using an API key - ") ? "api-key" : line ? OPENAI_LOGIN_MODES[line] : void 0;
40
+ const mode = line && (line.startsWith("Logged in using an API key - ") ? "api-key" : OPENAI_LOGIN_MODES[line]);
41
41
  return mode ? {
42
42
  apiKey: "codex-app-server",
43
43
  source: "Codex native login",
@@ -17,15 +17,17 @@ function resolveCodexNativeExecutionPolicy(params) {
17
17
  const config = params.config ?? {};
18
18
  const sessionKey = params.sessionKey?.trim() || params.sessionId?.trim() || void 0;
19
19
  const agentId = normalizeAgentIdOrDefault(params.agentId) ?? parseAgentIdFromSessionKey(sessionKey) ?? tryResolveDefaultAgentId(config);
20
- const canReadSessionEntry = Boolean(agentId) && params.readRuntimeSessionEntry && shouldReadRuntimeSessionEntry({
21
- config,
22
- sessionKey,
23
- agentId
24
- });
25
- const sessionEntry = params.sessionEntry ?? (canReadSessionEntry && sessionKey && agentId ? readRuntimeSessionEntryBestEffort({
26
- sessionKey,
27
- agentId
28
- }) : void 0);
20
+ const canReadSessionEntry = agentId && sessionKey && params.readRuntimeSessionEntry && (parseAgentIdFromSessionKey(sessionKey) ?? tryResolveDefaultAgentId(config)) === agentId;
21
+ let sessionEntry = params.sessionEntry ?? void 0;
22
+ if (sessionEntry === void 0 && canReadSessionEntry && sessionKey && agentId) try {
23
+ sessionEntry = getSessionEntry({
24
+ sessionKey,
25
+ agentId,
26
+ hydrateSkillPromptRefs: false
27
+ });
28
+ } catch {
29
+ sessionEntry = void 0;
30
+ }
29
31
  const sandboxAgentId = parseAgentSessionKey(sessionKey)?.agentId ?? agentId;
30
32
  const sandboxAvailable = params.sandboxAvailable ?? (sessionKey && sandboxAgentId ? resolveSandboxRuntimeStatus({
31
33
  cfg: config,
@@ -61,14 +63,6 @@ function parseAgentIdFromSessionKey(sessionKey) {
61
63
  if (parts.length < 3 || parts[0] !== "agent" || !parts[2]) return;
62
64
  return normalizeAgentIdOrDefault(parts[1]);
63
65
  }
64
- function shouldReadRuntimeSessionEntry(params) {
65
- if (!params.sessionKey) return false;
66
- const explicitAgentId = normalizeAgentIdOrDefault(params.agentId);
67
- if (!explicitAgentId) return true;
68
- const sessionAgentId = parseAgentIdFromSessionKey(params.sessionKey);
69
- if (!sessionAgentId) return normalizeAgentId(explicitAgentId) === tryResolveDefaultAgentId(params.config);
70
- return sessionAgentId === explicitAgentId;
71
- }
72
66
  function normalizeAgentIdOrDefault(value) {
73
67
  const normalized = normalizeAgentId(value);
74
68
  return normalized === "main" && !(value ?? "").trim() ? void 0 : normalized;
@@ -77,16 +71,5 @@ function normalizeExecTarget(value) {
77
71
  const normalized = value?.trim().toLowerCase();
78
72
  if (normalized === "auto" || normalized === "sandbox" || normalized === "gateway" || normalized === "node") return normalized;
79
73
  }
80
- function readRuntimeSessionEntryBestEffort(params) {
81
- try {
82
- return getSessionEntry({
83
- sessionKey: params.sessionKey,
84
- agentId: params.agentId,
85
- hydrateSkillPromptRefs: false
86
- });
87
- } catch {
88
- return;
89
- }
90
- }
91
74
  //#endregion
92
75
  export { resolveCodexNativeExecutionPolicy as n, resolveCodexNodeExecToolOverrides as r, formatCodexNativeNodeExecBlock as t };