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

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 (156) hide show
  1. package/README.md +10 -3
  2. package/dist/.setup/{account-usage-runtime-CoVpNIlD.mjs → account-usage-runtime-BVO-lpvn.mjs} +15 -9
  3. package/dist/.setup/{app-server-policy-D_zv8J7V.mjs → app-server-policy-Cog6mm2i.mjs} +1 -1
  4. package/dist/.setup/{apply-BXDMd05l.mjs → apply-tJl5mopa.mjs} +11 -11
  5. package/dist/.setup/{attempt-client-cleanup-zNuNTKVr.mjs → attempt-client-cleanup-DMJWXGxM.mjs} +14 -8
  6. package/dist/.setup/attempt-terminal-sZutF0WY.mjs +1 -0
  7. package/dist/.setup/{attempt-workspace-context-CcwP3DA3.mjs → attempt-workspace-context-GYPLawX6.mjs} +2 -2
  8. package/dist/.setup/{auth-binding-BaxlhaNx.mjs → auth-binding-830RLAJW.mjs} +2 -2
  9. package/dist/.setup/{auth-cache-key-f8ODJ_OX.mjs → auth-cache-key-BW1YeaIk.mjs} +92 -80
  10. package/dist/.setup/{auth-profile-CgHQ8Vot.mjs → auth-profile-auwzSwwy.mjs} +14 -8
  11. package/dist/.setup/{auth-profile-health-oHizqgye.mjs → auth-profile-health-BVPZU9I8.mjs} +15 -8
  12. package/dist/.setup/{auth-profile-selection-hr8ocLtz.mjs → auth-profile-selection-Bp5PDk3W.mjs} +24 -7
  13. package/dist/.setup/{binding-connection-B7HAAZSI.mjs → binding-connection-GTgUj9pi.mjs} +2 -2
  14. package/dist/.setup/{binding-connection.runtime-DAXn7iFl.mjs → binding-connection.runtime-RcWR3vQu.mjs} +4 -3
  15. package/dist/.setup/{bounded-turn-DfIJtRlv.mjs → bounded-turn-BQkmyyjB.mjs} +18 -22
  16. package/dist/.setup/{bounded-turn-isolation-BfDAo-qZ.mjs → bounded-turn-isolation-D8CDrAVX.mjs} +3 -3
  17. package/dist/.setup/{build-state-Ds14X10-.mjs → build-state-CjLCC0wm.mjs} +1 -1
  18. package/dist/.setup/{capabilities-DbOzOglY.mjs → capabilities-DAS-JX1z.mjs} +1 -1
  19. package/dist/.setup/{client-D93nbdB8.mjs → client--P8jwXvA.mjs} +47 -317
  20. package/dist/.setup/{client-catalog-response-CuVLp4I0.mjs → client-catalog-response-CsDxVVOZ.mjs} +2 -2
  21. package/dist/.setup/client-initialize-CjgZcX61.mjs +165 -0
  22. package/dist/.setup/{command-dispatch-DxdH5a9-.mjs → command-dispatch-DqaVBeR3.mjs} +3 -3
  23. package/dist/.setup/{command-formatters-xW9KpoSZ.mjs → command-formatters-B_7-QZ1c.mjs} +2 -2
  24. package/dist/.setup/{command-handlers-fiYvYYq0.mjs → command-handlers-i6mEjvfo.mjs} +539 -406
  25. package/dist/.setup/command-rpc-B65jEc0r.mjs +296 -0
  26. package/dist/.setup/compact-AO2H4RJe.mjs +823 -0
  27. package/dist/.setup/{computer-use-DL2v3Kxq.mjs → computer-use-YUnu0JVx.mjs} +21 -68
  28. package/dist/.setup/{config-C1YVVLEA.mjs → config-BfrAlTMT.mjs} +3 -3
  29. package/dist/.setup/{config-options-DDzeNQ8m.mjs → config-options-DMFZkd3X.mjs} +1 -1
  30. package/dist/.setup/{config-runtime-DWzK-k0n.mjs → config-runtime-BZRizyuG.mjs} +2 -2
  31. package/dist/.setup/{context-engine-projection-ps-yn_ci.mjs → context-engine-projection-PIeLSnR-.mjs} +16 -30
  32. package/dist/.setup/{conversation-binding-BieJZRRV.mjs → conversation-binding-CfnUR-IM.mjs} +228 -116
  33. package/dist/.setup/{conversation-binding-data-UgLuTSQT.mjs → conversation-binding-data-khgW0n-o.mjs} +4 -2
  34. package/dist/.setup/{conversation-control-GXM3unE4.mjs → conversation-control-B2EpVZEb.mjs} +53 -23
  35. package/dist/.setup/{cyber-failover-D4dgNfFf.mjs → cyber-failover-CqEZoQsj.mjs} +1 -1
  36. package/dist/.setup/{cyber-failover-notice-ljgGGL0s.mjs → cyber-failover-notice-poL3Advd.mjs} +1 -1
  37. package/dist/.setup/{doctor-start-options-JjTAl-q_.mjs → doctor-start-options-8uIBXIzR.mjs} +8 -5
  38. package/dist/.setup/{dynamic-tool-build-DcaPmBlE.mjs → dynamic-tool-build-DOub3CB5.mjs} +208 -218
  39. package/dist/.setup/{dynamic-tools-CnQFnNKH.mjs → dynamic-tools-Us5mvq_N.mjs} +344 -118
  40. package/dist/.setup/{effective-mcp-catalog-B5HKFZNK.mjs → effective-mcp-catalog-DfUUoeeM.mjs} +11 -9
  41. package/dist/.setup/{ephemeral-turn-De3qb8EQ.mjs → ephemeral-turn-B2z0RIeF.mjs} +5 -4
  42. package/dist/.setup/{event-projector-assistant-message-CLMKN4x-.mjs → event-projector-assistant-message-ChOAY7rW.mjs} +16 -11
  43. package/dist/.setup/{event-projector-usage-BpKfdoTm.mjs → event-projector-usage-CBY0Hkga.mjs} +2 -2
  44. package/dist/.setup/{event-projector-values-CLvG1Hil.mjs → event-projector-values-yf4us9Pf.mjs} +1 -1
  45. package/dist/.setup/experimental-features-uGnVDtp-.mjs +19 -0
  46. package/dist/.setup/inference-context-HRw3PDwn.mjs +209 -0
  47. package/dist/.setup/{inference-dispatch-CO6tTs4q.mjs → inference-dispatch-C2zVSnrr.mjs} +2 -2
  48. package/dist/.setup/{inference-metadata-DCvcG_N_.mjs → inference-metadata-CYFWLHVk.mjs} +3 -1
  49. package/dist/.setup/{inference-proxy-BDWV0djM.mjs → inference-proxy-CiLbHMLf.mjs} +8 -8
  50. package/dist/.setup/installed-probe-lVC1X5ve.mjs +185 -0
  51. package/dist/.setup/{isolated-completion-BPJdvk5F.mjs → isolated-completion-CybgD6uU.mjs} +7 -7
  52. package/dist/.setup/managed-binary-DbKvGXKl.mjs +395 -0
  53. package/dist/.setup/{mcp-app-session-preparation-Dz2GOwyE.mjs → mcp-app-session-preparation-zUgpDLWR.mjs} +18 -14
  54. package/dist/.setup/{model-catalog-ZNwltCKl.mjs → model-catalog-CWY3wo0B.mjs} +28 -17
  55. package/dist/.setup/{models-BHpbAuz8.mjs → models-CmOBxsKF.mjs} +3 -3
  56. package/dist/.setup/{native-auth-esN5MdIv.mjs → native-auth-DpZIaY8N.mjs} +7 -4
  57. package/dist/.setup/native-execution-policy-D09tLP-u.mjs +152 -0
  58. package/dist/.setup/{native-hook-relay-wq7jrNLk.mjs → native-hook-relay-CocOW9YS.mjs} +45 -10
  59. package/dist/.setup/{native-mcp-app-DX3nyTtc.mjs → native-mcp-app-DrQeLxXj.mjs} +5 -5
  60. package/dist/.setup/{native-skill-isolation-DSBeF-Yy.mjs → native-skill-isolation-DL4-PQa4.mjs} +7 -7
  61. package/dist/.setup/{native-subagent-monitor-DOLEIf9r.mjs → native-subagent-monitor-C3CIIaZG.mjs} +485 -239
  62. package/dist/.setup/{native-subagent-pending-assignments-DmVhedNs.mjs → native-subagent-pending-assignments-CTinVtjo.mjs} +1 -1
  63. package/dist/.setup/{native-task-assignments-DimsQ9Qa.mjs → native-task-assignments-YJopbaVO.mjs} +9 -5
  64. package/dist/.setup/{node-cli-sessions-CzKg2nGq.mjs → node-cli-sessions-BuJnBnEq.mjs} +7 -4
  65. package/dist/.setup/{node-exec-server.runtime-BWkULhBM.mjs → node-exec-server.runtime-CP7RC1Nd.mjs} +3 -3
  66. package/dist/.setup/{plan-41-YOBMq.mjs → plan-Bqj6VQvQ.mjs} +7 -20
  67. package/dist/.setup/{plugin-activation-D7WkJMvU.mjs → plugin-activation-CXPWe-hl.mjs} +4 -4
  68. package/dist/.setup/{plugin-app-cache-key-Bg9DbDI6.mjs → plugin-app-cache-key-DRb-niJc.mjs} +17 -55
  69. package/dist/.setup/{plugin-approval-roundtrip-CD88q3yx.mjs → plugin-approval-roundtrip-CGEiG7hG.mjs} +1 -1
  70. package/dist/.setup/{plugin-inventory-CYgdo14P.mjs → plugin-inventory-DE9wcaeH.mjs} +2 -2
  71. package/dist/.setup/{plugin-metadata-cache-Bi8TAPwX.mjs → plugin-metadata-cache-BqC-a6Fb.mjs} +2 -15
  72. package/dist/.setup/{project-doc-thread-config-BVcvnps8.mjs → project-doc-thread-config-B0UI3f1D.mjs} +6 -6
  73. package/dist/.setup/protocol-CaPAVwe9.mjs +12 -0
  74. package/dist/.setup/{provider-LWKll6dV.mjs → provider-C_1fMsyD.mjs} +4 -4
  75. package/dist/.setup/{provider-capabilities-Dn2WwH4P.mjs → provider-capabilities-C7pYYpvh.mjs} +1 -1
  76. package/dist/.setup/{rate-limits-CI8pTPqL.mjs → rate-limits-BpfURnuy.mjs} +1 -1
  77. package/dist/.setup/{request-Bo0kKABI.mjs → request-C6U8q2uz.mjs} +132 -136
  78. package/dist/.setup/{responses-oauth-twnuTaAa.mjs → responses-oauth-CCV7aVYF.mjs} +6 -6
  79. package/dist/.setup/{rpc-error-C98SHchT.mjs → rpc-error-DemqqaxE.mjs} +7 -3
  80. package/dist/.setup/{run-attempt-ClU8MxhZ.mjs → run-attempt-BhuXanLv.mjs} +595 -426
  81. package/dist/.setup/{run-attempt-lifecycle-KN4oh-7O.mjs → run-attempt-lifecycle-DN-ATDp9.mjs} +1 -1
  82. package/dist/.setup/{runtime-artifact-C13pR7tD.mjs → runtime-artifact-CmLWeyJB.mjs} +3 -3
  83. package/dist/.setup/{runtime-artifact-connection-jS5DeCok.mjs → runtime-artifact-connection-DpWlZ02e.mjs} +3 -3
  84. package/dist/.setup/{sandbox-guard-DIImwCy1.mjs → sandbox-guard-DneAfNye.mjs} +70 -30
  85. package/dist/.setup/{session-binding-JEHNMPsr.mjs → session-binding-BgsWcbdY.mjs} +25 -23
  86. package/dist/.setup/{session-binding-record-DU_0biMD.mjs → session-binding-record-C_THntMe.mjs} +27 -12
  87. package/dist/.setup/{session-binding-record-codec-BpH8u_G9.mjs → session-binding-record-codec-DvmOI7g_.mjs} +1 -0
  88. package/dist/.setup/{session-binding-sidecars-DD-enC8w.mjs → session-binding-sidecars-BNSS6WL4.mjs} +55 -63
  89. package/dist/.setup/session-cancellation-DCN1FcBZ.mjs +43 -0
  90. package/dist/.setup/{session-catalog-adoption-Ca3OYGYM.mjs → session-catalog-adoption-ppsLlVLB.mjs} +24 -38
  91. package/dist/.setup/{session-catalog-archive-Bv6gV7x9.mjs → session-catalog-archive-CqLRHJ6z.mjs} +11 -13
  92. package/dist/.setup/{session-catalog-events-kR2Ot6nX.mjs → session-catalog-events-CEi6SuLQ.mjs} +5 -5
  93. package/dist/.setup/{session-catalog-index-order-CTfoefow.mjs → session-catalog-index-order-0Zqng2u8.mjs} +1 -1
  94. package/dist/.setup/{session-catalog-index-CrnfVEnT.mjs → session-catalog-index-qt4UWBua.mjs} +96 -271
  95. package/dist/.setup/{session-catalog-limits-BynIoOYm.mjs → session-catalog-limits-Dc6E0BZz.mjs} +1 -1
  96. package/dist/.setup/{session-catalog-list-request-D4MYNgDB.mjs → session-catalog-list-request-CAjoWjaH.mjs} +3 -4
  97. package/dist/.setup/{session-catalog-native-projection-CWqCU1I_.mjs → session-catalog-native-projection-BqBYi6kV.mjs} +5 -5
  98. package/dist/.setup/{session-catalog-node-adoption-BdP9Zjqo.mjs → session-catalog-node-adoption-e9v8mGgx.mjs} +5 -5
  99. package/dist/.setup/{session-catalog-node-continue-CNJibO4_.mjs → session-catalog-node-continue-H7nrzcUD.mjs} +5 -5
  100. package/dist/.setup/{session-catalog-node-lookup-BH_DBGa9.mjs → session-catalog-node-lookup-BrZfDkA8.mjs} +2 -2
  101. package/dist/.setup/{session-catalog-parsing-DkeoVn60.mjs → session-catalog-parsing-V6jyFg9g.mjs} +2 -2
  102. package/dist/.setup/{session-catalog-projection-BzHiV818.mjs → session-catalog-projection-CNyhjZze.mjs} +8 -7
  103. package/dist/.setup/{session-catalog-provenance-CmsOE5mh.mjs → session-catalog-provenance-Dg9s12z-.mjs} +50 -30
  104. package/dist/.setup/{session-catalog-source-DGuRdGvM.mjs → session-catalog-source-z_mNyQdX.mjs} +2 -6
  105. package/dist/.setup/{session-cli-GwU0izn-.mjs → session-cli-CBGKiqdv.mjs} +1 -1
  106. package/dist/.setup/{session-history-BO6i_pfk.mjs → session-history-7W0cgTXF.mjs} +11 -9
  107. package/dist/.setup/{session-history-import-CaO8s6ta.mjs → session-history-import-BwPKwcNi.mjs} +4 -4
  108. package/dist/.setup/{session-initialization-Bi_2DKhc.mjs → session-initialization-Dn3vveGv.mjs} +2 -2
  109. package/dist/.setup/{session-retirement-B3U5hpGJ.mjs → session-retirement-RZStisKb.mjs} +8 -8
  110. package/dist/.setup/{session-history.worker-DJQfek5p.mjs → settled-turn-evidence--tRW6fSm.mjs} +2 -18
  111. package/dist/.setup/{settled-turn-finalizer-CYCVpTv2.mjs → settled-turn-finalizer-gioXygEX.mjs} +8 -8
  112. package/dist/.setup/{shared-client-BCx1wbyA.mjs → shared-client-CkyTrNB8.mjs} +380 -557
  113. package/dist/.setup/side-question-DHPWKgO3.mjs +998 -0
  114. package/dist/.setup/{source-DipMO9hL.mjs → source-63MLSmLJ.mjs} +5 -5
  115. package/dist/.setup/{thread-archive-guard-LKdwQKyr.mjs → thread-archive-guard-BWjSsA92.mjs} +1 -1
  116. package/dist/.setup/{thread-lifecycle-run-C_aYiYqk.mjs → thread-lifecycle-run-zCXYFW8W.mjs} +172 -75
  117. package/dist/.setup/{thread-model-selection-DcVebr8N.mjs → thread-model-selection-DxposL4X.mjs} +9 -9
  118. package/dist/.setup/{thread-ownership-BoUd0i6L.mjs → thread-ownership-Bmk5a2Gu.mjs} +7 -7
  119. package/dist/.setup/{thread-policy-B3wBRNph.mjs → thread-policy-DYtvZ5Ay.mjs} +6 -6
  120. package/dist/.setup/{thread-requests-BgzJwJtS.mjs → thread-requests-BjawdIVV.mjs} +14 -14
  121. package/dist/.setup/{thread-resume-D-3bsr1j.mjs → thread-resume-vBShG3-o.mjs} +6 -6
  122. package/dist/.setup/{transcript-history-projection-DfKcoZCB.mjs → transcript-history-projection-i-FVpyha.mjs} +1 -1
  123. package/dist/.setup/{transcript-mirror-Bee2o6jj.mjs → transcript-mirror-CEQJZlF3.mjs} +6 -9
  124. package/dist/.setup/{transport-stdio-CRWTkKOn.mjs → transport-stdio-Bq160Dhv.mjs} +63 -64
  125. package/dist/.setup/{transport-websocket-DIyPfkHo.mjs → transport-websocket-0YqiI_MH.mjs} +1 -1
  126. package/dist/.setup/{turn-router-DBVMToGo.mjs → turn-router-BGj67FMK.mjs} +2 -2
  127. package/dist/.setup/{upstream-session-fork-p5fwKi7w.mjs → upstream-session-fork-CWKjpdtW.mjs} +46 -219
  128. package/dist/.setup/{usage-C2Kq7oej.mjs → usage-AhrLFxZP.mjs} +4 -4
  129. package/dist/.setup/{usage-limit-error-BQX8RHAd.mjs → usage-limit-error-BdNbGJC3.mjs} +4 -4
  130. package/dist/.setup/{web-search-item-CvokaZOo.mjs → web-search-item-DHVuNSqk.mjs} +1 -1
  131. package/dist/.setup/{web-search-provider.runtime-D89djc7e.mjs → web-search-provider.runtime-Yk6lnJBG.mjs} +3 -3
  132. package/dist/.setup/{workspace-write-sandbox-probe-BDWO2Qkh.mjs → workspace-write-sandbox-probe-DJxOXcF3.mjs} +2 -2
  133. package/dist/api.js +7 -28
  134. package/dist/catalog-page.worker.js +1 -1
  135. package/dist/cli-metadata.js +1 -1
  136. package/dist/client-version-api.js +25 -0
  137. package/dist/doctor-contract-api.js +5 -5
  138. package/dist/harness.js +59 -36
  139. package/dist/index.js +259 -295
  140. package/dist/media-understanding-provider.js +2 -2
  141. package/dist/migration-provider-api.js +1 -2
  142. package/dist/native-session-binding-api.js +1 -2
  143. package/dist/provider-discovery.js +1 -1
  144. package/dist/session-history-worker-entrypoint.js +12 -0
  145. package/dist/session-history-worker-runtime.js +7 -18
  146. package/dist/session-history.worker.js +18 -2
  147. package/openclaw.plugin.json +1 -1
  148. package/package.json +6 -6
  149. package/dist/.setup/attempt-terminal-jO5IMj9K.mjs +0 -2
  150. package/dist/.setup/command-rpc-HIvsy3wS.mjs +0 -247
  151. package/dist/.setup/compact-ClZ7Ar7L.mjs +0 -808
  152. package/dist/.setup/inference-context-DNlGwzwy.mjs +0 -91
  153. package/dist/.setup/managed-binary-BtIjV7yN.mjs +0 -175
  154. package/dist/.setup/native-execution-policy-MXEe7PB3.mjs +0 -75
  155. package/dist/.setup/protocol-CANUwXJ3.mjs +0 -17
  156. package/dist/.setup/side-question-Bz2UQW0l.mjs +0 -826
@@ -1,13 +1,12 @@
1
1
  import { t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
2
- import { o as resolveCodexComputerUseConfig } from "./config-options-DDzeNQ8m.mjs";
3
- import { d as resolveMacOSDesktopCodexBundledMarketplaceCandidates, t as isManagedCodexDesktopCommand } from "./managed-binary-BtIjV7yN.mjs";
4
- import { n as describeControlFailure } from "./capabilities-DbOzOglY.mjs";
5
- import { n as requestCodexAppServerClientJson } from "./request-Bo0kKABI.mjs";
6
- import "./config-C1YVVLEA.mjs";
7
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DWzK-k0n.mjs";
8
- import { O as acquireCodexNativeConfigFence, at as hasLegacyCodexComputerUseMcpPolicy, b as withLeasedCodexAppServerClientStartSelectionRetry, c as getLeasedSharedCodexAppServerClient, ct as ensureCodexComputerUseSharedPluginCache, d as readCodexAppServerClientDesktopGeneration, et as reconcileCodexComputerUseStartArtifacts, g as resolveCodexNativeConfigFenceKey, h as releaseLeasedSharedCodexAppServerClient, it as resolveClientManagedBundledMarketplacePath, lt as assertNotSymlink, ot as isLegacyCodexComputerUsePluginDisabled, p as readCodexAppServerClientProcessIdentity, rt as resolveBundledComputerUseMarketplacePath, st as resolveManagedCodexComputerUseConfig, t as assertCodexAppServerClientStartSelectionCurrent, u as isCodexAppServerStartSelectionChangedError, y as waitForCodexAppServerClientDesktopGenerationDrain } from "./shared-client-BCx1wbyA.mjs";
9
- import { a as isCodexAppServerIndeterminateRequestCancellationError, i as isCodexAppServerConnectionClosedError, o as isCodexAppServerIndeterminateTransportError } from "./client-D93nbdB8.mjs";
10
- import { l as retireUnsafeCodexTurnClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-zNuNTKVr.mjs";
2
+ import { o as resolveCodexComputerUseConfig } from "./config-options-DMFZkd3X.mjs";
3
+ import { a as isManagedCodexDesktopCommand, b as resolveMacOSDesktopCodexBundledMarketplaceCandidates } from "./managed-binary-DbKvGXKl.mjs";
4
+ import { n as describeControlFailure } from "./capabilities-DAS-JX1z.mjs";
5
+ import { n as requestCodexAppServerClientJson } from "./request-C6U8q2uz.mjs";
6
+ import "./config-BfrAlTMT.mjs";
7
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-BZRizyuG.mjs";
8
+ import { $ as resolveBundledComputerUseMarketplacePath, X as reconcileCodexComputerUseStartArtifacts, at as assertNotSymlink, c as readCodexAppServerClientDesktopGeneration, et as resolveClientManagedBundledMarketplacePath, f as releaseLeasedSharedCodexAppServerClient, h as withCodexAppServerClientRequestScope, it as ensureCodexComputerUseSharedPluginCache, nt as isLegacyCodexComputerUsePluginDisabled, o as getLeasedSharedCodexAppServerClient, rt as resolveManagedCodexComputerUseConfig, tt as hasLegacyCodexComputerUseMcpPolicy, u as readCodexAppServerClientProcessIdentity } from "./shared-client-CkyTrNB8.mjs";
9
+ import { l as retireUnsafeCodexTurnClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-DMJWXGxM.mjs";
11
10
  import path from "node:path";
12
11
  import fs from "node:fs/promises";
13
12
  import { toErrorObject } from "openclaw/plugin-sdk/error-runtime";
@@ -85,7 +84,7 @@ async function runCodexComputerUseLiveTest(params) {
85
84
  } catch (error) {
86
85
  cleanupError = toErrorObject(error, "Computer Use readiness cleanup failed");
87
86
  }
88
- if ("error" in outcome && (params.signal?.aborted || isCodexAppServerStartSelectionChangedError(outcome.error))) throw toErrorObject(outcome.error, "Computer Use live test failed");
87
+ if ("error" in outcome && params.signal?.aborted) throw toErrorObject(outcome.error, "Computer Use live test failed");
89
88
  if (cleanupError) throw cleanupError;
90
89
  if ("liveTest" in outcome) return {
91
90
  liveTest: outcome.liveTest,
@@ -280,7 +279,7 @@ async function inspectCodexComputerUse(params) {
280
279
  }
281
280
  if (params.installMode === "none" && !params.refreshSharedCache) {
282
281
  if (!lease.client) return await inspectCodexComputerUseWithoutFence(params);
283
- return await withLeasedCodexAppServerClientStartSelectionRetry({
282
+ return await withCodexAppServerClientRequestScope({
284
283
  lease,
285
284
  options: {
286
285
  ...clientOptions,
@@ -316,48 +315,12 @@ async function inspectCodexComputerUse(params) {
316
315
  ...params,
317
316
  client
318
317
  }) : void 0;
319
- if (explicitManagedInstall) {
320
- await waitForCodexAppServerClientDesktopGenerationDrain({
321
- client: explicitManagedInstall.client,
322
- timeoutMs: remainingTimeoutMs(),
323
- ...params.signal ? { signal: params.signal } : {}
324
- });
325
- assertCodexAppServerClientStartSelectionCurrent({ client: explicitManagedInstall.client });
326
- }
327
- const inspectionParams = {
318
+ return await inspectCodexComputerUseWithoutFence({
328
319
  ...params,
329
320
  ...client ? { client } : {},
330
321
  timeoutMs: remainingTimeoutMs(),
331
322
  ...explicitManagedInstall ? { explicitManagedInstall } : {}
332
- };
333
- const fenceKey = resolveCodexNativeConfigFenceKey({
334
- client,
335
- startOptions: resolvedRuntime.start,
336
- agentDir: params.agentDir,
337
- config: params.config
338
323
  });
339
- if (!fenceKey) return await inspectCodexComputerUseWithoutFence(inspectionParams);
340
- const release = await acquireCodexNativeConfigFence(fenceKey, {
341
- signal: params.signal,
342
- timeoutMs: remainingTimeoutMs(),
343
- timeoutMessage: "Codex Computer Use install timed out waiting for native config",
344
- abortMessage: "Codex Computer Use install aborted waiting for native config"
345
- });
346
- let releaseFenceOnReturn = true;
347
- try {
348
- return await inspectCodexComputerUseWithoutFence({
349
- ...inspectionParams,
350
- releaseNativeConfigFence: release
351
- });
352
- } catch (error) {
353
- if (client && (isCodexAppServerIndeterminateRequestCancellationError(error) || isCodexAppServerIndeterminateTransportError(error) || isCodexAppServerConnectionClosedError(error))) {
354
- releaseFenceOnReturn = false;
355
- await client.closeAndRunAfterExit(release, "Computer Use config mutation");
356
- }
357
- throw error;
358
- } finally {
359
- if (releaseFenceOnReturn) release();
360
- }
361
324
  } finally {
362
325
  if (lease.client) releaseLeasedSharedCodexAppServerClient(lease.client);
363
326
  }
@@ -388,19 +351,13 @@ async function inspectCodexComputerUseWithoutFence(params) {
388
351
  if (!marketplace.marketplace) return unavailableStatus(computerUseConfig, "marketplace_missing", marketplace.message ?? `No Codex marketplace containing ${computerUseConfig.pluginName} is registered. Configure computerUse.marketplaceSource or computerUse.marketplacePath, then run /codex computer-use install.`);
389
352
  const pluginInspection = await ensureComputerUsePlugin(marketplace.marketplace, params.installMode !== "none");
390
353
  if ("status" in pluginInspection) return pluginInspection.status;
391
- if (params.refreshSharedCache && computerUseConfig !== params.computerUseConfig && managedCodexHome && managedMarketplacePath && params.agentDir && params.client) {
392
- const client = params.client;
393
- await ensureCodexComputerUseSharedPluginCache({
394
- codexHome: managedCodexHome,
395
- ownershipRoot: params.agentDir,
396
- bundledMarketplacePath: managedMarketplacePath,
397
- config: computerUseConfig,
398
- assertCurrent: () => {
399
- params.assertCurrent?.();
400
- assertCodexAppServerClientStartSelectionCurrent({ client });
401
- }
402
- });
403
- }
354
+ if (params.refreshSharedCache && computerUseConfig !== params.computerUseConfig && managedCodexHome && managedMarketplacePath && params.agentDir && params.client) await ensureCodexComputerUseSharedPluginCache({
355
+ codexHome: managedCodexHome,
356
+ ownershipRoot: params.agentDir,
357
+ bundledMarketplacePath: managedMarketplacePath,
358
+ config: computerUseConfig,
359
+ assertCurrent: params.assertCurrent
360
+ });
404
361
  return await readComputerUseTools(pluginInspection.plugin, params.installMode !== "none");
405
362
  async function ensureComputerUsePlugin(source, installPlugin) {
406
363
  let plugin = await readComputerUsePlugin(request, source, computerUseConfig.pluginName);
@@ -423,7 +380,7 @@ async function inspectCodexComputerUseWithoutFence(params) {
423
380
  return { plugin };
424
381
  }
425
382
  async function readComputerUseTools(plugin, installPlugin) {
426
- const { client, signal, runLiveTest, releaseNativeConfigFence } = params;
383
+ const { client, signal, runLiveTest } = params;
427
384
  let server = await readMcpServerStatus(request, computerUseConfig.mcpServerName);
428
385
  let tools = Object.keys(server?.tools ?? {}).toSorted();
429
386
  if ((!server || tools.length === 0) && installPlugin) {
@@ -446,7 +403,6 @@ async function inspectCodexComputerUseWithoutFence(params) {
446
403
  message: "Computer Use is ready."
447
404
  });
448
405
  if (!runLiveTest) return status;
449
- releaseNativeConfigFence?.();
450
406
  const { liveTest, repair } = await runCodexComputerUseLiveTest({
451
407
  request,
452
408
  client,
@@ -464,7 +420,7 @@ async function inspectCodexComputerUseWithoutFence(params) {
464
420
  warnings: [
465
421
  ...status.warnings,
466
422
  ...repair?.warnings ?? [],
467
- ...compatibilityStartupAllowed ? ["Computer Use live test failed, but compatibility startup remains enabled; set computerUse.strictReadiness to true to fail closed."] : []
423
+ ...compatibilityStartupAllowed ? ["Computer Use live test failed, but compatibility startup remains enabled; set computerUse.strictReadiness to true to block startup after a failed live test."] : []
468
424
  ],
469
425
  message: liveTest.ok ? "Computer Use is ready." : compatibilityStartupAllowed ? `${liveTest.message} Startup is allowed because computerUse.strictReadiness is false.` : liveTest.message
470
426
  };
@@ -490,10 +446,7 @@ async function prepareExplicitManagedComputerUseInstall(params) {
490
446
  ownsIsolatedCodexHome: true,
491
447
  desktopGeneration: context.desktopGeneration,
492
448
  forceCacheRefresh: true,
493
- assertCurrent: () => {
494
- params.assertCurrent?.();
495
- assertCodexAppServerClientStartSelectionCurrent({ client: context.client });
496
- }
449
+ assertCurrent: params.assertCurrent
497
450
  });
498
451
  }
499
452
  async function resolveExplicitManagedComputerUseInstallContext(params) {
@@ -2,9 +2,9 @@ import "./config-security-clxAZYWX.mjs";
2
2
  import { a as readExecAsk, l as readRecord, o as readExecSecurity } from "./config-utils-DN_YT7dE.mjs";
3
3
  import "./config-parsing-DsWSCPHO.mjs";
4
4
  import "./auth-start-options-BPIPeEX8.mjs";
5
- import { c as canUseCodexModelBackedApprovalsReviewerForModel$1 } from "./config-options-DDzeNQ8m.mjs";
6
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DWzK-k0n.mjs";
7
- import { t as __exportAll } from "./session-binding-sidecars-DD-enC8w.mjs";
5
+ import { c as canUseCodexModelBackedApprovalsReviewerForModel$1 } from "./config-options-DMFZkd3X.mjs";
6
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-BZRizyuG.mjs";
7
+ import { t as __exportAll } from "./session-binding-sidecars-BNSS6WL4.mjs";
8
8
  import { resolveAgentConfig } from "openclaw/plugin-sdk/agent-scope-runtime";
9
9
  import { execPolicy } from "openclaw/plugin-sdk/agent-harness-runtime";
10
10
  import { resolveExecApprovalsFromFile } from "openclaw/plugin-sdk/exec-approvals-runtime";
@@ -1,4 +1,4 @@
1
- import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
1
+ import { r as isJsonObject } from "./protocol-CaPAVwe9.mjs";
2
2
  import { _ as resolveCodexPolicyModeForOpenClawExecMode, a as resolveDefaultCodexAppServerPolicy, b as selectForcedDangerFullAccessSandbox, d as readCodexRequirementsToml, g as resolveApprovalPolicy, h as assertCodexAppServerAllowedForOpenClawExecMode, i as resolveCodexAppServerNetworkProxy, o as resolvePolicyMode, r as inferCodexAppServerConnectionClass, t as assertCodexAppServerConnectionSecurity, u as parseCodexRequirementsPolicy, v as resolveEffectiveOpenClawExecModeForCodexAppServer, x as selectForcedPromptingSandbox, y as resolveSandbox } from "./config-security-clxAZYWX.mjs";
3
3
  import { c as readNumberEnv, i as normalizeHeaders, l as readRecord, n as hashSecretForKey, s as readNonEmptyString, u as resolveArgs } from "./config-utils-DN_YT7dE.mjs";
4
4
  import { a as DEFAULT_CODEX_COMPUTER_USE_PLUGIN_NAME, d as readCodexPluginConfig, n as DEFAULT_CODEX_COMPUTER_USE_LIVE_TEST_TIMEOUT_MS, o as DEFAULT_CODEX_COMPUTER_USE_TOOL_CALL_TIMEOUT_MS, r as DEFAULT_CODEX_COMPUTER_USE_MARKETPLACE_DISCOVERY_TIMEOUT_MS, s as assertCodexAppServerCommandHasNoInlineArgs } from "./config-parsing-DsWSCPHO.mjs";
@@ -1,5 +1,5 @@
1
- import { r as createCodexAppServerConfig } from "./config-options-DDzeNQ8m.mjs";
2
- import { t as __exportAll } from "./session-binding-sidecars-DD-enC8w.mjs";
1
+ import { r as createCodexAppServerConfig } from "./config-options-DMFZkd3X.mjs";
2
+ import { t as __exportAll } from "./session-binding-sidecars-BNSS6WL4.mjs";
3
3
  import { resolveProviderIdForAuth } from "openclaw/plugin-sdk/provider-auth-aliases";
4
4
  //#region extensions/codex/src/app-server/config-runtime.ts
5
5
  var config_runtime_exports = /* @__PURE__ */ __exportAll({
@@ -1,13 +1,8 @@
1
- import { asFiniteNumber } from "openclaw/plugin-sdk/string-coerce-runtime";
1
+ import { asFiniteNumber, asOptionalObjectRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
2
2
  import { sliceUtf16Safe, truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
3
3
  import { isOpenClawRuntimeContextCustomMessage } from "openclaw/plugin-sdk/agent-harness-runtime";
4
4
  import { IMAGE_BLOCK_TOKENS } from "openclaw/plugin-sdk/agent-core";
5
- import { redactSensitiveFieldValue, redactToolPayloadText } from "openclaw/plugin-sdk/logging-core";
6
5
  //#region extensions/codex/src/app-server/context-engine-projection.ts
7
- /**
8
- * Projects OpenClaw context-engine assemblies into Codex prompt text while
9
- * preserving safety boundaries and redacting tool payloads.
10
- */
11
6
  /** Attachment preparation must not degrade to a prompt that silently loses the saved input. */
12
7
  var CodexContextAttachmentError = class extends Error {};
13
8
  const CONTEXT_HEADER = "OpenClaw assembled context for this turn:";
@@ -25,25 +20,18 @@ const DEFAULT_CODEX_PROJECTION_RESERVE_TOKENS = 2e4;
25
20
  const MIN_PROMPT_BUDGET_RATIO = .5;
26
21
  const MIN_PROMPT_BUDGET_TOKENS = 8e3;
27
22
  const CODEX_CONTEXT_SENDER_FIELD_MAX_CHARS = 256;
28
- /**
29
- * This projection has no access to agent-core's private compaction helper, but
30
- * must keep the same attribution contract: a stable ID is identity; display
31
- * labels are optional metadata, never provenance on their own.
32
- */
33
23
  function formatCodexContextSenderSuffix(message) {
34
24
  if (message.role !== "user") return "";
35
- const metadata = Reflect.get(message, "__openclaw");
36
- if (!metadata || typeof metadata !== "object") return "";
25
+ const metadata = asOptionalObjectRecord(Reflect.get(message, "__openclaw"));
37
26
  const normalize = (value) => {
38
27
  if (typeof value !== "string") return;
39
28
  const normalized = value.replaceAll("\0", "").trim();
40
29
  return normalized ? truncateUtf16Safe(normalized, CODEX_CONTEXT_SENDER_FIELD_MAX_CHARS) : void 0;
41
30
  };
42
- const record = metadata;
43
- const id = normalize(record.senderId);
31
+ const id = normalize(metadata?.senderId);
44
32
  if (!id) return "";
45
- const name = normalize(record.senderName);
46
- const username = normalize(record.senderUsername);
33
+ const name = normalize(metadata?.senderName);
34
+ const username = normalize(metadata?.senderUsername);
47
35
  return ` sender=${JSON.stringify({
48
36
  id,
49
37
  ...name ? { name } : {},
@@ -74,8 +62,10 @@ async function projectContextEngineAssemblyForCodex(params) {
74
62
  "",
75
63
  CONTEXT_OPEN
76
64
  ].join("\n") + "\n" : void 0;
77
- const promptSuffix = boundedContext ? `\n${CONTEXT_CLOSE}\n\n${REQUEST_HEADER}\n${prompt}` : "";
78
- const promptText = boundedContext ? `${promptPrefix}${boundedContext}${promptSuffix}` : prompt;
65
+ const currentUserSenderSuffix = params.currentUserMessage ? formatCodexContextSenderSuffix(params.currentUserMessage) : "";
66
+ const currentRequest = currentUserSenderSuffix ? `${neutralizeCodexExplicitMentionSigils(`[user${currentUserSenderSuffix}]`)}\n${prompt}` : prompt;
67
+ const promptSuffix = boundedContext ? `\n${CONTEXT_CLOSE}\n\n${REQUEST_HEADER}\n${currentRequest}` : "";
68
+ const promptText = boundedContext ? `${promptPrefix}${boundedContext}${promptSuffix}` : currentRequest;
79
69
  const promptContextRange = promptPrefix && boundedContext ? {
80
70
  start: promptPrefix.length,
81
71
  end: promptPrefix.length + boundedContext.length
@@ -261,7 +251,7 @@ function renderMessageBody(message, options) {
261
251
  const toolResultLabel = toolResult && message.toolCallId ? `tool result: ${message.toolCallId}` : "tool result";
262
252
  if (toolResult && options.toolPayloadMode === "elide") return `${toolResultLabel} [content omitted]`;
263
253
  const body = typeof message.content === "string" ? message.content.trim() : Array.isArray(message.content) ? message.content.map((part) => renderMessagePart(part, options, toolResult)).filter((value) => value.length > 0).join("\n").trim() : "[non-text content omitted]";
264
- return toolResult ? redactToolPayloadText(`${toolResultLabel}${message.toolName ? ` (${message.toolName})` : ""}\n${body}`) : body;
254
+ return toolResult ? `${toolResultLabel}${message.toolName ? ` (${message.toolName})` : ""}\n${body}` : body;
265
255
  }
266
256
  function renderMessagePart(part, options, toolResultBody) {
267
257
  if (!part || typeof part !== "object") return "";
@@ -290,7 +280,7 @@ function renderToolCallPayload(record) {
290
280
  function renderToolResultPayload(record) {
291
281
  return {
292
282
  ...pickToolPayloadMetadata(record),
293
- ...Object.fromEntries(Object.entries(record).filter(([key]) => !TOOL_PAYLOAD_METADATA_KEYS.has(key)).map(([key, value]) => [key, projectToolPayloadValue(value, "content", key)]))
283
+ ...Object.fromEntries(Object.entries(record).filter(([key]) => !TOOL_PAYLOAD_METADATA_KEYS.has(key)).map(([key, value]) => [key, projectToolPayloadValue(value, "content")]))
294
284
  };
295
285
  }
296
286
  const TOOL_PAYLOAD_METADATA_KEYS = /* @__PURE__ */ new Set([
@@ -305,22 +295,18 @@ function pickToolPayloadMetadata(record) {
305
295
  const payload = {};
306
296
  for (const key of TOOL_PAYLOAD_METADATA_KEYS) {
307
297
  const value = record[key];
308
- if (typeof value === "string" && value.trim()) payload[key] = redactSensitiveFieldValue(key, value);
298
+ if (typeof value === "string" && value.trim()) payload[key] = value;
309
299
  }
310
300
  return payload;
311
301
  }
312
- function projectToolPayloadValue(value, mode, key = "", seen = /* @__PURE__ */ new WeakSet()) {
313
- if (mode === "content" && (typeof value === "string" || typeof value === "number" || typeof value === "boolean")) {
314
- const text = String(value);
315
- const redacted = redactSensitiveFieldValue(key, redactToolPayloadText(text));
316
- return redacted === text ? value : redacted;
317
- }
302
+ function projectToolPayloadValue(value, mode, seen = /* @__PURE__ */ new WeakSet()) {
303
+ if (mode === "content" && (typeof value === "string" || typeof value === "number" || typeof value === "boolean")) return value;
318
304
  if (value === null || mode === "content" && value === void 0) return value;
319
305
  if (value && typeof value === "object") {
320
306
  if (seen.has(value)) return "[Circular]";
321
307
  seen.add(value);
322
- if (Array.isArray(value)) return value.map((entry) => projectToolPayloadValue(entry, mode, key, seen));
323
- return Object.fromEntries(Object.entries(value).map(([childKey, child]) => [childKey, projectToolPayloadValue(child, mode, childKey, seen)]));
308
+ if (Array.isArray(value)) return value.map((entry) => projectToolPayloadValue(entry, mode, seen));
309
+ return Object.fromEntries(Object.entries(value).map(([childKey, child]) => [childKey, projectToolPayloadValue(child, mode, seen)]));
324
310
  }
325
311
  return `[${typeof value}]`;
326
312
  }