@openclaw/codex 2026.10.5 → 2026.10.7

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 (82) hide show
  1. package/dist/.setup/{account-usage-runtime-Dqpnnkst.mjs → account-usage-runtime-gzHf_Qtb.mjs} +3 -3
  2. package/dist/.setup/{app-server-policy-XTIa6h5k.mjs → app-server-policy-V8zuN8q_.mjs} +1 -1
  3. package/dist/.setup/{apply-QyZT5-na.mjs → apply-BaBl0hiG.mjs} +14 -14
  4. package/dist/.setup/{attempt-client-cleanup-TScCVTsk.mjs → attempt-client-cleanup-jWVRH043.mjs} +4 -4
  5. package/dist/.setup/{attempt-workspace-context-Cr3mI4vp.mjs → attempt-workspace-context-BkA0W8Jy.mjs} +1 -1
  6. package/dist/.setup/{auth-cache-key-DvDLHVJe.mjs → auth-cache-key-DrieYJUQ.mjs} +4 -3
  7. package/dist/.setup/{auth-profile-health-oHizqgye.mjs → auth-profile-health-B05o5BAm.mjs} +12 -5
  8. package/dist/.setup/{binding-connection-X1ZeEDz8.mjs → binding-connection-C0t9TBX_.mjs} +1 -1
  9. package/dist/.setup/{binding-connection.runtime-CZSz0g4u.mjs → binding-connection.runtime-Wdm5G_bw.mjs} +1 -1
  10. package/dist/.setup/{bounded-turn-isolation-Brj5qzz6.mjs → bounded-turn-isolation-CIQJykuM.mjs} +3 -3
  11. package/dist/.setup/{bounded-turn-BpjZixcd.mjs → bounded-turn-s9yVsxaM.mjs} +13 -12
  12. package/dist/.setup/{build-state-DfrctLQv.mjs → build-state-B5mKL-in.mjs} +1 -1
  13. package/dist/.setup/{client-BpSxNz4F.mjs → client-BM97zH3z.mjs} +19 -15
  14. package/dist/.setup/{client-catalog-response-DloWE31e.mjs → client-catalog-response-DhB266B_.mjs} +1 -1
  15. package/dist/.setup/{command-dispatch-CIdf7ZvD.mjs → command-dispatch-DsaWfzET.mjs} +1 -1
  16. package/dist/.setup/{command-handlers-C2XNDeHL.mjs → command-handlers-zgDE_J40.mjs} +16 -16
  17. package/dist/.setup/{command-rpc-DpmvEmhc.mjs → command-rpc-CAG1xrqm.mjs} +8 -8
  18. package/dist/.setup/{compact-DpCHUqU5.mjs → compact-BZK-e5zD.mjs} +10 -10
  19. package/dist/.setup/{computer-use-BgGC32hr.mjs → computer-use-CZhx4nNO.mjs} +7 -7
  20. package/dist/.setup/{config-G4IGX6bK.mjs → config-LQemoqTL.mjs} +3 -3
  21. package/dist/.setup/{config-options-nvYwVDyy.mjs → config-options-CZmH25Xq.mjs} +1 -1
  22. package/dist/.setup/{config-runtime-B8agjie6.mjs → config-runtime-DGB1-VbB.mjs} +1 -1
  23. package/dist/.setup/{config-security-D0hAOQRI.mjs → config-security-DpkGNy5T.mjs} +1 -1
  24. package/dist/.setup/{conversation-binding-BCoWi2Kn.mjs → conversation-binding-qGuQR4jw.mjs} +38 -29
  25. package/dist/.setup/{conversation-control--OHH2dHA.mjs → conversation-control-BtPxevoK.mjs} +1 -1
  26. package/dist/.setup/{doctor-start-options-DedLaoqI.mjs → doctor-start-options-C28ek2hD.mjs} +3 -3
  27. package/dist/.setup/{dynamic-tool-build-CoMf7IKx.mjs → dynamic-tool-build-Dp4v52Kl.mjs} +3 -3
  28. package/dist/.setup/{dynamic-tools-CKynHtxM.mjs → dynamic-tools-C1Egdhrx.mjs} +10 -10
  29. package/dist/.setup/{effective-mcp-catalog-DXGsGC1j.mjs → effective-mcp-catalog-BNwgItdW.mjs} +4 -4
  30. package/dist/.setup/{ephemeral-turn-C6aFeGFS.mjs → ephemeral-turn-DeppK8zz.mjs} +2 -2
  31. package/dist/.setup/{inference-proxy-BDWV0djM.mjs → inference-proxy-DSnaS-uS.mjs} +5 -4
  32. package/dist/.setup/{isolated-completion-DVDn5GU5.mjs → isolated-completion-BUS9Mqfm.mjs} +6 -6
  33. package/dist/.setup/{mcp-app-session-preparation-Cnmuh9RT.mjs → mcp-app-session-preparation-D9F1O5si.mjs} +8 -8
  34. package/dist/.setup/{model-catalog-DRbHoUhG.mjs → model-catalog-BBg4thof.mjs} +7 -7
  35. package/dist/.setup/{models-GBLXb27n.mjs → models-B65GHU4g.mjs} +3 -3
  36. package/dist/.setup/{native-auth-DWrRSl4Z.mjs → native-auth-CveRfTpz.mjs} +1 -1
  37. package/dist/.setup/{native-hook-relay-BQ9UkpeG.mjs → native-hook-relay-Ctyky2Qt.mjs} +5 -5
  38. package/dist/.setup/{native-mcp-app-DIheNk35.mjs → native-mcp-app-DprMGBqj.mjs} +4 -4
  39. package/dist/.setup/{native-skill-isolation-CxZRtiWZ.mjs → native-skill-isolation-C4XYLm33.mjs} +3 -3
  40. package/dist/.setup/{native-subagent-monitor-gqu3TQOv.mjs → native-subagent-monitor-CJaIve3h.mjs} +66 -19
  41. package/dist/.setup/{plan-DZWYASAx.mjs → plan-GqWF4XGA.mjs} +4 -4
  42. package/dist/.setup/{plugin-activation-CsW09DWl.mjs → plugin-activation-BgfNFH2L.mjs} +2 -2
  43. package/dist/.setup/{plugin-approval-roundtrip-HbFUm9Pp.mjs → plugin-approval-roundtrip-x7UI_uqk.mjs} +1 -1
  44. package/dist/.setup/{plugin-inventory-kLR7G02h.mjs → plugin-inventory-OhiCoyPH.mjs} +1 -1
  45. package/dist/.setup/{project-doc-thread-config-B2ZD23A_.mjs → project-doc-thread-config-D_sWbxFR.mjs} +5 -5
  46. package/dist/.setup/{provider-BiUzaRth.mjs → provider-Bi9QCsg1.mjs} +4 -4
  47. package/dist/.setup/{provider-capabilities-DOBUBt86.mjs → provider-capabilities-BCZeV7xZ.mjs} +1 -1
  48. package/dist/.setup/{request-DhbisYCc.mjs → request-XC1RG34l.mjs} +2 -2
  49. package/dist/.setup/{run-attempt-WbitbMr6.mjs → run-attempt-8U2CrqjW.mjs} +142 -81
  50. package/dist/.setup/{runtime-artifact-nFHy1R0x.mjs → runtime-artifact-CCPLKFGR.mjs} +1 -1
  51. package/dist/.setup/{runtime-artifact-connection-XSifLLBH.mjs → runtime-artifact-connection-dFoSOKy7.mjs} +3 -3
  52. package/dist/.setup/{session-catalog-events-IoszcO7-.mjs → session-catalog-events-CpEyDv0D.mjs} +4 -4
  53. package/dist/.setup/{session-catalog-index-_4Z5quG3.mjs → session-catalog-index-DpYCf1-8.mjs} +4 -4
  54. package/dist/.setup/{session-catalog-native-projection-imNPfB3q.mjs → session-catalog-native-projection-BYV0ICja.mjs} +1 -1
  55. package/dist/.setup/{session-catalog-projection-BFp1d3bJ.mjs → session-catalog-projection-B0IyXrHt.mjs} +1 -1
  56. package/dist/.setup/{session-catalog-source-CgWkqG43.mjs → session-catalog-source-CfIBVrbT.mjs} +1 -1
  57. package/dist/.setup/{session-permission-policy-BYI6mp5u.mjs → session-permission-policy-C7kYxPGd.mjs} +1 -1
  58. package/dist/.setup/{session-retirement-AhaR7MAp.mjs → session-retirement-CKIS7jFv.mjs} +5 -5
  59. package/dist/.setup/{settled-turn-finalizer-Blsc4VLX.mjs → settled-turn-finalizer-CnIWbqN7.mjs} +4 -4
  60. package/dist/.setup/{shared-client-wb1JBldZ.mjs → shared-client-AdQX0Tdq.mjs} +72 -17
  61. package/dist/.setup/{side-question-DNEeROvz.mjs → side-question-ZVehuPZn.mjs} +17 -17
  62. package/dist/.setup/{source-BjBw-zoV.mjs → source-BszpKEvi.mjs} +3 -3
  63. package/dist/.setup/{thread-lifecycle-run-DdwKMIae.mjs → thread-lifecycle-run-DezS4UNT.mjs} +77 -38
  64. package/dist/.setup/{thread-ownership-CTUs8Eyu.mjs → thread-ownership-OXzPB_RV.mjs} +3 -3
  65. package/dist/.setup/{thread-policy-BMRvlOi-.mjs → thread-policy-Dp4CQjdL.mjs} +3 -3
  66. package/dist/.setup/{thread-requests-BqPhA4Gs.mjs → thread-requests-DjyDmCo4.mjs} +2 -2
  67. package/dist/.setup/{thread-resume-CD48Vab8.mjs → thread-resume-8YKfRoX6.mjs} +4 -4
  68. package/dist/.setup/{transport-websocket-DOY0dJXN.mjs → transport-websocket-CEBjEtFP.mjs} +1 -1
  69. package/dist/.setup/{turn-router-DdlzuFdm.mjs → turn-router-DnfbVPvu.mjs} +1 -1
  70. package/dist/.setup/{upstream-session-fork-BF0c69x6.mjs → upstream-session-fork-BhADVCrb.mjs} +14 -14
  71. package/dist/.setup/{usage-BsMyAOaB.mjs → usage-BoTUkAoJ.mjs} +3 -3
  72. package/dist/.setup/{usage-limit-error-hLIGKewV.mjs → usage-limit-error-EoQ7Vl2A.mjs} +1 -1
  73. package/dist/.setup/{web-search-provider.runtime-BJK0lNpc.mjs → web-search-provider.runtime-Cc6vN-2C.mjs} +2 -2
  74. package/dist/.setup/{workspace-write-sandbox-probe-Cyn6cBsp.mjs → workspace-write-sandbox-probe-DvfWTvuR.mjs} +1 -1
  75. package/dist/api.js +3 -3
  76. package/dist/catalog-page.worker.js +1 -1
  77. package/dist/harness.js +18 -18
  78. package/dist/index.js +33 -33
  79. package/dist/media-understanding-provider.js +2 -2
  80. package/dist/migration-provider-api.js +1 -1
  81. package/dist/provider-discovery.js +1 -1
  82. package/package.json +5 -5
@@ -1,8 +1,8 @@
1
1
  import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
2
2
  import { t as buildCodexAppServerUsageSnapshot } from "./rate-limits-CI8pTPqL.mjs";
3
- import { t as readCodexAppServerUsage } from "./request-DhbisYCc.mjs";
4
- import "./config-G4IGX6bK.mjs";
5
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
3
+ import { t as readCodexAppServerUsage } from "./request-XC1RG34l.mjs";
4
+ import "./config-LQemoqTL.mjs";
5
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
6
6
  import { a as resolveCodexAppServerAuthProfileStore } from "./auth-profile-CgHQ8Vot.mjs";
7
7
  import { isDeepStrictEqual } from "node:util";
8
8
  import { listAgentIds, resolveAgentDir } from "openclaw/plugin-sdk/agent-scope-runtime";
@@ -1,4 +1,4 @@
1
- import { n as canUseCodexModelBackedApprovalsReviewerForModel } from "./config-G4IGX6bK.mjs";
1
+ import { n as canUseCodexModelBackedApprovalsReviewerForModel } from "./config-LQemoqTL.mjs";
2
2
  //#region extensions/codex/src/app-server/app-server-policy.ts
3
3
  function resolveCodexAppServerForModelProvider(params) {
4
4
  return params.appServer.approvalsReviewer === "user" || canUseCodexModelBackedApprovalsReviewerForModel({
@@ -1,13 +1,13 @@
1
- import { s as resolveCodexAppServerFallbackApiKeyCacheKey } from "./auth-cache-key-DvDLHVJe.mjs";
1
+ import { s as resolveCodexAppServerFallbackApiKeyCacheKey } from "./auth-cache-key-DrieYJUQ.mjs";
2
2
  import { a as defaultCodexAppInventoryCache, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
3
- import { r as requestCodexAppServerJson } from "./request-DhbisYCc.mjs";
4
- import { r as isOpenAiCuratedMarketplaceName, u as CODEX_PLUGINS_MARKETPLACE_NAME } from "./plugin-inventory-kLR7G02h.mjs";
5
- import "./config-G4IGX6bK.mjs";
6
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
3
+ import { r as requestCodexAppServerJson } from "./request-XC1RG34l.mjs";
4
+ import { r as isOpenAiCuratedMarketplaceName, u as CODEX_PLUGINS_MARKETPLACE_NAME } from "./plugin-inventory-OhiCoyPH.mjs";
5
+ import "./config-LQemoqTL.mjs";
6
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
7
7
  import { i as resolveCodexAppServerAuthProfileIdForAgent } from "./auth-profile-CgHQ8Vot.mjs";
8
- import { c as getLeasedSharedCodexAppServerClient, h as releaseLeasedSharedCodexAppServerClient, o as clearSharedCodexAppServerClientIfCurrentAndWait, tt as resolveCodexAppServerAuthAccountCacheKey } from "./shared-client-wb1JBldZ.mjs";
9
- import { t as ensureCodexPluginActivation } from "./plugin-activation-CsW09DWl.mjs";
10
- import { CODEX_PLUGIN_CONFIG_PATH, buildCodexMigrationPlan, buildCodexPluginsConfigValue, hasCodexPluginConfigConflict, n as resolveCodexConfigPatchMode, readCodexPluginMigrationConfigEntry, t as createCodexAuthItemApplier } from "./plan-DZWYASAx.mjs";
8
+ import { c as getLeasedSharedCodexAppServerClient, h as releaseLeasedSharedCodexAppServerClient, it as resolveCodexAppServerAuthAccountCacheKey, o as clearSharedCodexAppServerClientIfCurrentAndWait } from "./shared-client-AdQX0Tdq.mjs";
9
+ import { t as ensureCodexPluginActivation } from "./plugin-activation-BgfNFH2L.mjs";
10
+ import { CODEX_PLUGIN_CONFIG_PATH, buildCodexMigrationPlan, buildCodexPluginsConfigValue, hasCodexPluginConfigConflict, n as resolveCodexConfigPatchMode, readCodexPluginMigrationConfigEntry, t as createCodexAuthItemApplier } from "./plan-GqWF4XGA.mjs";
11
11
  import { uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
12
12
  import { parseStrictNonNegativeInteger } from "openclaw/plugin-sdk/number-runtime";
13
13
  import path from "node:path";
@@ -224,21 +224,21 @@ function resolveTargetCodexAppServer(ctx) {
224
224
  }
225
225
  async function requestTargetCodexAppServerJson(params) {
226
226
  if (params.method !== "plugin/list") return await requestCodexAppServerJson(params);
227
- const deadline = Date.now() + params.timeoutMs;
227
+ const deadline = performance.now() + params.timeoutMs;
228
228
  const discoveryTimeoutMs = targetCodexMarketplaceDiscoveryTimeoutMs();
229
- const discoveryDeadline = Math.min(deadline, Date.now() + discoveryTimeoutMs);
229
+ const discoveryDeadline = Math.min(deadline, performance.now() + discoveryTimeoutMs);
230
230
  let lastResponse;
231
231
  do {
232
- const remainingMs = Math.max(1, discoveryDeadline - Date.now());
232
+ const remainingMs = Math.max(1, discoveryDeadline - performance.now());
233
233
  lastResponse = await requestCodexAppServerJson({
234
234
  ...params,
235
235
  timeoutMs: remainingMs
236
236
  });
237
237
  if (lastResponse.marketplaces.some((marketplace) => isOpenAiCuratedMarketplaceName(marketplace.name))) return lastResponse;
238
- if (Date.now() >= discoveryDeadline) return lastResponse;
239
- const waitMs = Math.min(TARGET_CODEX_MARKETPLACE_DISCOVERY_POLL_MS, discoveryDeadline - Date.now());
238
+ if (performance.now() >= discoveryDeadline) return lastResponse;
239
+ const waitMs = Math.min(TARGET_CODEX_MARKETPLACE_DISCOVERY_POLL_MS, discoveryDeadline - performance.now());
240
240
  await sleep(waitMs);
241
- } while (Date.now() < discoveryDeadline);
241
+ } while (performance.now() < discoveryDeadline);
242
242
  return lastResponse;
243
243
  }
244
244
  function targetCodexMarketplaceDiscoveryTimeoutMs(env = process.env) {
@@ -1,8 +1,8 @@
1
- import { w as retireSharedCodexAppServerClientIfCurrent } from "./auth-cache-key-DvDLHVJe.mjs";
1
+ import { w as retireSharedCodexAppServerClientIfCurrent } from "./auth-cache-key-DrieYJUQ.mjs";
2
2
  import { a as codexPrewriteRejectionCause, o as isCodexAppServerOverloadError, r as CodexAppServerRpcError } from "./rpc-error-C98SHchT.mjs";
3
- import { Y as unsubscribeCodexAppServerLiveThread, pt as isCodexAppServerStartupError, u as isCodexAppServerStartSelectionChangedError } from "./shared-client-wb1JBldZ.mjs";
4
- import { I as isCodexAppServerBrokenPipeError, c as isCodexAppServerRequestTimeoutError } from "./client-BpSxNz4F.mjs";
5
- import { n as getCodexAppServerTurnRouter } from "./turn-router-DdlzuFdm.mjs";
3
+ import { X as unsubscribeCodexAppServerLiveThread, gt as isCodexAppServerStartupError, u as isCodexAppServerStartSelectionChangedError } from "./shared-client-AdQX0Tdq.mjs";
4
+ import { I as isCodexAppServerBrokenPipeError, c as isCodexAppServerRequestTimeoutError } from "./client-BM97zH3z.mjs";
5
+ import { n as getCodexAppServerTurnRouter } from "./turn-router-DnfbVPvu.mjs";
6
6
  import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";
7
7
  import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
8
8
  import { AgentHarnessPreflightError, embeddedAgentLog } from "openclaw/plugin-sdk/agent-harness-runtime";
@@ -1,5 +1,5 @@
1
1
  import { r as flattenCodexDynamicToolFunctions } from "./protocol-CANUwXJ3.mjs";
2
- import { I as isMessageOnlyCodexSourceReply } from "./thread-requests-BqPhA4Gs.mjs";
2
+ import { I as isMessageOnlyCodexSourceReply } from "./thread-requests-DjyDmCo4.mjs";
3
3
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import path from "node:path";
5
5
  import { buildAgentWorkspaceInstructionSnapshot, buildBootstrapContextForFiles, embeddedAgentLog, prepareAgentWorkspaceContext } from "openclaw/plugin-sdk/agent-harness-runtime";
@@ -1,4 +1,4 @@
1
- import { n as defineCodexBuildState } from "./build-state-DfrctLQv.mjs";
1
+ import { n as defineCodexBuildState } from "./build-state-B5mKL-in.mjs";
2
2
  import { u as resolveMacOSDesktopCodexAppPathCandidates } from "./managed-binary-DwC9wxch.mjs";
3
3
  import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-lgeKKHyw.mjs";
4
4
  import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -10,6 +10,7 @@ import fs$1 from "node:fs/promises";
10
10
  import { extractErrorCode } from "openclaw/plugin-sdk/error-runtime";
11
11
  import { sha256File } from "openclaw/plugin-sdk/file-access-runtime";
12
12
  import { sleepWithAbort } from "openclaw/plugin-sdk/retry-runtime";
13
+ import { racePromiseWithAbortSignal } from "openclaw/plugin-sdk/time-runtime";
13
14
  import { readSecretFile } from "openclaw/plugin-sdk/secret-file";
14
15
  //#region extensions/codex/src/app-server/desktop-generation-fingerprint.ts
15
16
  const MAX_COMPUTER_USE_PLUGIN_TREE_ENTRIES = 4096;
@@ -468,7 +469,7 @@ function waitForCodexAppServerClientExit(client) {
468
469
  return exited;
469
470
  }
470
471
  /** Acquire the recorded owner atomically, or join its exit before a replacement writes. */
471
- async function retainSharedCodexAppServerClientByInstanceId(clientId) {
472
+ async function retainSharedCodexAppServerClientByInstanceId(clientId, options) {
472
473
  const id = clientId?.trim();
473
474
  if (!id) return;
474
475
  const state = getSharedCodexAppServerClientState();
@@ -476,7 +477,7 @@ async function retainSharedCodexAppServerClientByInstanceId(clientId) {
476
477
  if (client.getInstanceId() !== id) continue;
477
478
  const entry = state.entriesByClient.get(client);
478
479
  if (entry?.client !== client || entry.closeError || client.getCloseError()) {
479
- await waitForCodexAppServerClientExit(client);
480
+ await racePromiseWithAbortSignal(waitForCodexAppServerClientExit(client), options?.signal, options?.createAbortError);
480
481
  return;
481
482
  }
482
483
  const release = retainSharedClientEntry(entry);
@@ -41,12 +41,19 @@ const codexNativeProfileRecoveryHealthCheck = {
41
41
  };
42
42
  const codexNativeProfileRecoveryService = {
43
43
  id: CHECK_ID,
44
- async start(ctx) {
45
- const findings = await collectFindings(ctx.config, {
46
- ...process.env,
47
- OPENCLAW_STATE_DIR: ctx.stateDir
44
+ apiVersion: 2,
45
+ start(ctx) {
46
+ ctx.scheduler.schedule({
47
+ id: CHECK_ID,
48
+ delayMs: 0,
49
+ async run() {
50
+ const findings = await collectFindings(ctx.config, {
51
+ ...process.env,
52
+ OPENCLAW_STATE_DIR: ctx.stateDir
53
+ });
54
+ if (!ctx.scheduler.signal.aborted) for (const finding of findings) ctx.logger.warn(finding.message);
55
+ }
48
56
  });
49
- for (const finding of findings) ctx.logger.warn(finding.message);
50
57
  }
51
58
  };
52
59
  //#endregion
@@ -44,7 +44,7 @@ function requireCodexSupervisionModelSelection(binding) {
44
44
  }
45
45
  /** Registration publishes the resolver; connection policy loads only for an actual request. */
46
46
  async function resolveCodexBindingAppServerConnection(params) {
47
- return (await import("./binding-connection.runtime-CZSz0g4u.mjs")).resolveCodexBindingAppServerConnection(params, catalogHomes.tryGetRuntime());
47
+ return (await import("./binding-connection.runtime-Wdm5G_bw.mjs")).resolveCodexBindingAppServerConnection(params, catalogHomes.tryGetRuntime());
48
48
  }
49
49
  //#endregion
50
50
  export { setCodexCatalogConnectionHomeResolver as a, resolveCodexBindingAppServerConnection as i, binding_connection_exports as n, requireCodexSupervisionModelSelection as r, assertCodexSessionRuntimeOwnership as t };
@@ -1,7 +1,7 @@
1
1
  import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
2
2
  import { n as resolveCodexAppServerLocalHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
3
3
  import { t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
4
- import { n as resolveCodexAppServerRuntimeOptions, r as resolveCodexSupervisionAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
4
+ import { n as resolveCodexAppServerRuntimeOptions, r as resolveCodexSupervisionAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
5
5
  //#region extensions/codex/src/app-server/binding-connection.runtime.ts
6
6
  /** Resolves connection and auth ownership exclusively from the private thread binding. */
7
7
  async function resolveCodexBindingAppServerConnection(params, discoverHomes) {
@@ -1,8 +1,8 @@
1
1
  import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
2
2
  import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
3
- import { i as resolveCodexAppServerHomeScope } from "./config-options-nvYwVDyy.mjs";
4
- import "./config-G4IGX6bK.mjs";
5
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
3
+ import { i as resolveCodexAppServerHomeScope } from "./config-options-CZmH25Xq.mjs";
4
+ import "./config-LQemoqTL.mjs";
5
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
6
6
  //#region extensions/codex/src/app-server/bounded-turn-isolation.ts
7
7
  function resolveCodexBoundedTurnIsolation(options) {
8
8
  const pluginConfig = readCodexPluginConfig(options.pluginConfig);
@@ -1,18 +1,18 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
2
  import { a as resolveCodexPrivateLauncher, i as readCodexAppServerConfigOptions } from "./launch-args-DbFCehO7.mjs";
3
- import { d as readCodexEffectiveConfig } from "./config-options-nvYwVDyy.mjs";
3
+ import { d as readCodexEffectiveConfig } from "./config-options-CZmH25Xq.mjs";
4
4
  import { a as codexPrewriteRejectionCause } from "./rpc-error-C98SHchT.mjs";
5
- import "./config-G4IGX6bK.mjs";
6
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
7
- import { u as isCodexAppServerStartSelectionChangedError } from "./shared-client-wb1JBldZ.mjs";
8
- import { _ as assertCodexTurnStartResponse, b as readCodexErrorNotification, g as assertCodexThreadStartResponse, w as createCodexElicitationResponse } from "./client-BpSxNz4F.mjs";
9
- import { o as closeCodexStartupClientBestEffort, s as interruptCodexTurnAndWaitBestEffort, t as CODEX_APP_SERVER_INTERRUPT_TIMEOUT_MS } from "./attempt-client-cleanup-TScCVTsk.mjs";
10
- import { t as CodexEphemeralTurn } from "./ephemeral-turn-C6aFeGFS.mjs";
11
- import { i as readModelListResult } from "./models-GBLXb27n.mjs";
12
- import { d as mergeCodexThreadConfigs } from "./project-doc-thread-config-B2ZD23A_.mjs";
5
+ import "./config-LQemoqTL.mjs";
6
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
7
+ import { u as isCodexAppServerStartSelectionChangedError } from "./shared-client-AdQX0Tdq.mjs";
8
+ import { _ as assertCodexTurnStartResponse, b as readCodexErrorNotification, g as assertCodexThreadStartResponse, w as createCodexElicitationResponse } from "./client-BM97zH3z.mjs";
9
+ import { o as closeCodexStartupClientBestEffort, s as interruptCodexTurnAndWaitBestEffort, t as CODEX_APP_SERVER_INTERRUPT_TIMEOUT_MS } from "./attempt-client-cleanup-jWVRH043.mjs";
10
+ import { t as CodexEphemeralTurn } from "./ephemeral-turn-DeppK8zz.mjs";
11
+ import { i as readModelListResult } from "./models-B65GHU4g.mjs";
12
+ import { d as mergeCodexThreadConfigs } from "./project-doc-thread-config-D_sWbxFR.mjs";
13
13
  import { n as resolveCodexAppServerReasoningEffort } from "./reasoning-effort-CS9kKWB9.mjs";
14
- import { n as buildCodexRingZeroThreadConfigPatch, p as attestCodexRestrictedToolSurfaceMcpServersDisabled, r as buildCodexRuntimeThreadConfig, t as assertCodexManagedRequirementsDoNotOverrideToolPolicy, u as readCodexInheritedMcpServerNames } from "./thread-requests-BqPhA4Gs.mjs";
15
- import { a as resolveCodexPromptError } from "./usage-limit-error-hLIGKewV.mjs";
14
+ import { n as buildCodexRingZeroThreadConfigPatch, p as attestCodexRestrictedToolSurfaceMcpServersDisabled, r as buildCodexRuntimeThreadConfig, t as assertCodexManagedRequirementsDoNotOverrideToolPolicy, u as readCodexInheritedMcpServerNames } from "./thread-requests-DjyDmCo4.mjs";
15
+ import { a as resolveCodexPromptError } from "./usage-limit-error-EoQ7Vl2A.mjs";
16
16
  import { resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
17
17
  import { parse } from "smol-toml";
18
18
  import path from "node:path";
@@ -102,6 +102,7 @@ var CodexBoundedTurnTimeoutError = class extends Error {
102
102
  constructor(taskLabel, timeoutMs) {
103
103
  const bound = timeoutMs % 1e3 === 0 ? `${timeoutMs / 1e3}s` : `${timeoutMs}ms`;
104
104
  super(`codex app-server ${taskLabel} turn timed out after ${bound}`);
105
+ this.timeoutMs = timeoutMs;
105
106
  this.name = "TimeoutError";
106
107
  }
107
108
  };
@@ -146,7 +147,7 @@ async function runBoundedCodexAppServerTurnInWorkspace(params, appServer, worksp
146
147
  assertCurrent: params.assertCurrent,
147
148
  ...params.signal ? { abandonSignal: params.signal } : {}
148
149
  };
149
- const client = params.options.clientFactory ? await params.options.clientFactory(clientOptions) : await import("./shared-client-wb1JBldZ.mjs").then((n) => n.v).then(({ createIsolatedCodexAppServerClient }) => createIsolatedCodexAppServerClient({
150
+ const client = params.options.clientFactory ? await params.options.clientFactory(clientOptions) : await import("./shared-client-AdQX0Tdq.mjs").then((n) => n.v).then(({ createIsolatedCodexAppServerClient }) => createIsolatedCodexAppServerClient({
150
151
  ...clientOptions,
151
152
  authProfileStore: params.authProfileStore
152
153
  }));
@@ -1,5 +1,5 @@
1
1
  //#region extensions/codex/package.json
2
- var version = "2026.10.5";
2
+ var version = "2026.10.7";
3
3
  //#endregion
4
4
  //#region extensions/codex/src/build-state.ts
5
5
  /**
@@ -1,13 +1,13 @@
1
- import { a as readCodexCatalogDecodeRoute, c as isRpcResponse, i as listenCodexAppServerLines, n as projectCodexCatalogMessage, o as CodexAppServerMessageDecoder, r as createCodexAppServerMessageWriter, s as redactCodexAppServerLinePreview } from "./client-catalog-response-DloWE31e.mjs";
1
+ import { a as readCodexCatalogDecodeRoute, c as isRpcResponse, i as listenCodexAppServerLines, n as projectCodexCatalogMessage, o as CodexAppServerMessageDecoder, r as createCodexAppServerMessageWriter, s as redactCodexAppServerLinePreview } from "./client-catalog-response-DhB266B_.mjs";
2
2
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
3
3
  import { c as MIN_SUPPORTED_CODEX_APP_SERVER_VERSION, s as CODEX_APP_SERVER_VERSION } from "./managed-binary-DwC9wxch.mjs";
4
4
  import { a as closeCodexAppServerTransportAndWait, c as getCodexAppServerRegisteredTransportIdentity, i as closeCodexAppServerTransport, o as hasCodexAppServerNaturalExit, t as createStdioTransport } from "./transport-stdio-lgeKKHyw.mjs";
5
5
  import { i as CodexAppServerScopedRequestRejectedError, n as CodexAppServerLocalRequestCancellationError, o as isCodexAppServerOverloadError, r as CodexAppServerRpcError, t as CODEX_APP_SERVER_OVERLOADED_ERROR_CODE } from "./rpc-error-C98SHchT.mjs";
6
- import { n as codexCatalogSourceForClient, s as recordCodexCatalogResponseSource, t as closeCodexCatalogClientSource } from "./session-catalog-source-CgWkqG43.mjs";
7
- import { i as reuseCodexCatalogPreview } from "./session-catalog-native-projection-imNPfB3q.mjs";
8
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
6
+ import { n as codexCatalogSourceForClient, s as recordCodexCatalogResponseSource, t as closeCodexCatalogClientSource } from "./session-catalog-source-CfIBVrbT.mjs";
7
+ import { i as reuseCodexCatalogPreview } from "./session-catalog-native-projection-BYV0ICja.mjs";
8
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
9
9
  import { codexCatalogPageWorkerEntrypoint } from "../catalog-page-worker-entrypoint.js";
10
- import { t as createWebSocketTransport } from "./transport-websocket-DOY0dJXN.mjs";
10
+ import { t as createWebSocketTransport } from "./transport-websocket-CEBjEtFP.mjs";
11
11
  import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";
12
12
  import { isRecord, normalizeOptionalString, readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
13
13
  import { randomUUID } from "node:crypto";
@@ -444,6 +444,12 @@ function dispatchCodexRequestAttempt(attempt, options, assertTransportCurrent, w
444
444
  }
445
445
  //#endregion
446
446
  //#region extensions/codex/src/app-server/request-attempt.ts
447
+ function remainingCodexRequestTime(method, signal, deadline) {
448
+ if (signal?.aborted) throw new CodexAppServerLocalRequestCancellationError(method, "aborted", false, signal.reason);
449
+ const remainingMs = deadline === void 0 ? void 0 : deadline - performance.now();
450
+ if (remainingMs !== void 0 && remainingMs <= 0) throw new CodexAppServerLocalRequestCancellationError(method, "timed out", false);
451
+ return remainingMs;
452
+ }
447
453
  /** One caller per wire attempt; local waiter expiry need not imply a native response. */
448
454
  function createCodexRequestAttempt(params) {
449
455
  let pending = true;
@@ -3711,12 +3717,6 @@ var client_exports = /* @__PURE__ */ __exportAll({
3711
3717
  const CODEX_APP_SERVER_STDERR_TAIL_MAX = 2e3;
3712
3718
  const CODEX_APP_SERVER_OVERLOAD_MAX_RETRIES = 3;
3713
3719
  const CODEX_APP_SERVER_OVERLOAD_RETRY_BASE_MS = 50;
3714
- function remainingRequestTime(method, signal, deadline) {
3715
- if (signal?.aborted) throw new CodexAppServerLocalRequestCancellationError(method, "aborted", false, signal.reason);
3716
- const remainingMs = deadline === void 0 ? void 0 : deadline - performance.now();
3717
- if (remainingMs !== void 0 && remainingMs <= 0) throw new CodexAppServerLocalRequestCancellationError(method, "timed out", false);
3718
- return remainingMs;
3719
- }
3720
3720
  function isCodexAppServerRequestTimeoutError(error) {
3721
3721
  return error instanceof Error && "code" in error && error.code === "CODEX_APP_SERVER_LOCAL_REQUEST_CANCELLED" && "reason" in error && error.reason === "timed out";
3722
3722
  }
@@ -3847,6 +3847,10 @@ var CodexAppServerClient = class CodexAppServerClient {
3847
3847
  getInitializeDiagnostic(beforeClientClose = false) {
3848
3848
  return this.initializeDiagnostics.snapshot(this.closed, beforeClientClose);
3849
3849
  }
3850
+ /** Outstanding methods across this physical client, including peer turns; never arguments. */
3851
+ getPendingRequestMethods() {
3852
+ return [...new Set([...this.pending.values()].map(({ method }) => method))].toSorted();
3853
+ }
3850
3854
  getServerVersion() {
3851
3855
  return this.runtimeIdentity?.serverVersion;
3852
3856
  }
@@ -3949,7 +3953,7 @@ var CodexAppServerClient = class CodexAppServerClient {
3949
3953
  async requestWithOverloadRetry(method, params, options, onWriteStateChange, onResponse) {
3950
3954
  const deadline = options.timeoutMs !== void 0 && Number.isFinite(options.timeoutMs) ? performance.now() + options.timeoutMs : void 0;
3951
3955
  for (let retry = 0;; retry += 1) {
3952
- const remainingTimeoutMs = remainingRequestTime(method, options.signal, deadline);
3956
+ const remainingTimeoutMs = remainingCodexRequestTime(method, options.signal, deadline);
3953
3957
  try {
3954
3958
  return await this.requestOnce(method, params, {
3955
3959
  ...options,
@@ -3964,12 +3968,12 @@ var CodexAppServerClient = class CodexAppServerClient {
3964
3968
  }
3965
3969
  }
3966
3970
  async waitForOverloadRetry(method, backoffMs, deadline, signal) {
3967
- const remainingMs = remainingRequestTime(method, signal, deadline);
3971
+ const remainingMs = remainingCodexRequestTime(method, signal, deadline);
3968
3972
  const delayMs = remainingMs === void 0 ? backoffMs : Math.min(backoffMs, remainingMs);
3969
3973
  try {
3970
3974
  await sleepWithAbort(delayMs, signal, { ref: false });
3971
3975
  } catch (error) {
3972
- remainingRequestTime(method, signal);
3976
+ remainingCodexRequestTime(method, signal);
3973
3977
  throw error;
3974
3978
  }
3975
3979
  }
@@ -4013,7 +4017,7 @@ var CodexAppServerClient = class CodexAppServerClient {
4013
4017
  }, deadline);
4014
4018
  dispatchCodexRequestAttempt(attempt, options, () => {
4015
4019
  if (this.closed) throw this.closeError ?? /* @__PURE__ */ new Error("codex app-server client is closed");
4016
- remainingRequestTime(method, options.signal, deadline);
4020
+ remainingCodexRequestTime(method, options.signal, deadline);
4017
4021
  }, () => {
4018
4022
  this.writeMessage(message, (error) => attempt.failLocal(error), () => {
4019
4023
  attempt.markWritten();
@@ -1,5 +1,5 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
- import { n as projectCodexCatalogNativeResponse, r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-imNPfB3q.mjs";
2
+ import { n as projectCodexCatalogNativeResponse, r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-BYV0ICja.mjs";
3
3
  import { embeddedAgentLog } from "openclaw/plugin-sdk/agent-harness-registration";
4
4
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
5
5
  import { sanitizeTerminalText } from "openclaw/plugin-sdk/text-chunking";
@@ -8,7 +8,7 @@ async function handleCodexCommand(ctx, options) {
8
8
  };
9
9
  const { resolvePluginConfig, ...subcommandOptions } = options;
10
10
  try {
11
- const { handleCodexSubcommand } = await import("./command-handlers-C2XNDeHL.mjs");
11
+ const { handleCodexSubcommand } = await import("./command-handlers-zgDE_J40.mjs");
12
12
  return await handleCodexSubcommand(commandContext, {
13
13
  ...subcommandOptions,
14
14
  pluginConfig: resolvePluginConfig?.() ?? subcommandOptions.pluginConfig
@@ -1,7 +1,7 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
2
  import { m as sessionBindingIdentity, n as assertCodexBindingMayBeReplaced, r as bindingStoreKey } from "./session-binding-record-C2kDBZhx.mjs";
3
3
  import { m as isCodexFastServiceTier } from "./config-parsing-CVK2Q463.mjs";
4
- import { c as resolveCodexAppServerPreparedApiKeyCacheKey, s as resolveCodexAppServerFallbackApiKeyCacheKey } from "./auth-cache-key-DvDLHVJe.mjs";
4
+ import { c as resolveCodexAppServerPreparedApiKeyCacheKey, s as resolveCodexAppServerFallbackApiKeyCacheKey } from "./auth-cache-key-DrieYJUQ.mjs";
5
5
  import { n as withCodexConversationThreadActivity } from "./thread-ownership-queue-CeyYScUC.mjs";
6
6
  import { a as canMutateCodexHost, i as assertCodexHostOwnerCurrent, n as CODEX_HOST_INSPECTION_AUTH_ERROR, o as hasCodexAdminScope, r as CODEX_NATIVE_EXECUTION_AUTH_ERROR, t as CODEX_FULL_PERMISSIONS_AUTH_ERROR } from "./command-authorization-AikPDtcc.mjs";
7
7
  import { l as formatRelativeDuration, s as summarizeCodexAccountUsage } from "./rate-limits-CI8pTPqL.mjs";
@@ -12,26 +12,26 @@ import { t as CODEX_CONTROL_METHODS } from "./capabilities-DbOzOglY.mjs";
12
12
  import { n as filterCodexMarketplacePlugins, r as parseCodexPluginMarketplaceId, t as discoverCodexMarketplacePlugins } from "./plugin-marketplace-discovery-BNyI1zd_.mjs";
13
13
  import { o as formatCodexCliSessions } from "./node-cli-sessions-BxVYZNuY.mjs";
14
14
  import { a as defaultCodexAppInventoryCache, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
15
- import { i as resolveCodexBindingAppServerConnection } from "./binding-connection-X1ZeEDz8.mjs";
16
- import { a as withCodexAppServerJsonClient } from "./request-DhbisYCc.mjs";
17
- import { n as findCodexMarketplacePluginSummary, o as pluginReadParams, r as isOpenAiCuratedMarketplaceName, u as CODEX_PLUGINS_MARKETPLACE_NAME } from "./plugin-inventory-kLR7G02h.mjs";
18
- import "./config-G4IGX6bK.mjs";
19
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
15
+ import { i as resolveCodexBindingAppServerConnection } from "./binding-connection-C0t9TBX_.mjs";
16
+ import { a as withCodexAppServerJsonClient } from "./request-XC1RG34l.mjs";
17
+ import { n as findCodexMarketplacePluginSummary, o as pluginReadParams, r as isOpenAiCuratedMarketplaceName, u as CODEX_PLUGINS_MARKETPLACE_NAME } from "./plugin-inventory-OhiCoyPH.mjs";
18
+ import "./config-LQemoqTL.mjs";
19
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
20
20
  import { a as resolveCodexAppServerAuthProfileStore, i as resolveCodexAppServerAuthProfileIdForAgent, n as normalizeCodexAppServerBindingModelProvider } from "./auth-profile-CgHQ8Vot.mjs";
21
- import { F as consumeCodexAppServerLiveThread, R as hasCodexAppServerLiveThread, c as getLeasedSharedCodexAppServerClient, h as releaseLeasedSharedCodexAppServerClient, tt as resolveCodexAppServerAuthAccountCacheKey } from "./shared-client-wb1JBldZ.mjs";
22
- import { a as isCodexAppServerIndeterminateRequestCancellationError, h as assertCodexThreadResumeResponse, p as assertCodexThreadAcceptsDirectInput, s as isCodexAppServerPrewriteRequestCancellationError } from "./client-BpSxNz4F.mjs";
23
- import { o as closeCodexStartupClientBestEffort } from "./attempt-client-cleanup-TScCVTsk.mjs";
21
+ import { F as consumeCodexAppServerLiveThread, R as hasCodexAppServerLiveThread, c as getLeasedSharedCodexAppServerClient, h as releaseLeasedSharedCodexAppServerClient, it as resolveCodexAppServerAuthAccountCacheKey } from "./shared-client-AdQX0Tdq.mjs";
22
+ import { a as isCodexAppServerIndeterminateRequestCancellationError, h as assertCodexThreadResumeResponse, p as assertCodexThreadAcceptsDirectInput, s as isCodexAppServerPrewriteRequestCancellationError } from "./client-BM97zH3z.mjs";
23
+ import { o as closeCodexStartupClientBestEffort } from "./attempt-client-cleanup-jWVRH043.mjs";
24
24
  import { n as fingerprintCodexAppServerAuthBinding } from "./auth-binding-BFTkrP_b.mjs";
25
- import { n as listAllCodexAppServerModels } from "./models-GBLXb27n.mjs";
26
- import { n as refreshCodexAppRuntimeState, r as refreshCodexPluginRuntimeState } from "./plugin-activation-CsW09DWl.mjs";
25
+ import { n as listAllCodexAppServerModels } from "./models-B65GHU4g.mjs";
26
+ import { n as refreshCodexAppRuntimeState, r as refreshCodexPluginRuntimeState } from "./plugin-activation-BgfNFH2L.mjs";
27
27
  import { i as resolveCodexSessionBinding, n as createCodexSessionGenerationSupersededError } from "./session-binding-BDnNz-Co.mjs";
28
- import { a as rollbackCodexAppServerBindingSubscription, c as withExclusiveCodexAppServerThread, i as retireCodexConversationThreadBinding, n as releaseCodexAppServerBindingSubscription, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-CTUs8Eyu.mjs";
28
+ import { a as rollbackCodexAppServerBindingSubscription, c as withExclusiveCodexAppServerThread, i as retireCodexConversationThreadBinding, n as releaseCodexAppServerBindingSubscription, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-OXzPB_RV.mjs";
29
29
  import { n as resolveCodexNativeSandboxBlock, t as resolveCodexNativeExecutionBlock } from "./sandbox-guard-Cf9XMRrg.mjs";
30
- import { i as assertCodexSupervisionThreadLineage } from "./thread-policy-BMRvlOi-.mjs";
30
+ import { i as assertCodexSupervisionThreadLineage } from "./thread-policy-Dp4CQjdL.mjs";
31
31
  import { t as defaultCodexPluginMetadataCache } from "./plugin-metadata-cache-Bi8TAPwX.mjs";
32
- import { n as installCodexComputerUse, r as readCodexComputerUseStatus } from "./computer-use-BgGC32hr.mjs";
33
- import { a as requestOptions, i as readCodexStatusProbes, o as safeCodexControlRequest, r as prepareCodexControlSessionAuth, t as codexControlRequest } from "./command-rpc-DpmvEmhc.mjs";
34
- import { a as readCodexConversationActiveTurn, c as setCodexConversationModel, d as stopCodexConversationTurn, i as parseCodexPermissionsModeArg, l as setCodexConversationPermissions, n as formatPermissionsMode, r as parseCodexFastModeArg, s as setCodexConversationFastMode, u as steerCodexConversationTurn } from "./conversation-control--OHH2dHA.mjs";
32
+ import { n as installCodexComputerUse, r as readCodexComputerUseStatus } from "./computer-use-CZhx4nNO.mjs";
33
+ import { a as requestOptions, i as readCodexStatusProbes, o as safeCodexControlRequest, r as prepareCodexControlSessionAuth, t as codexControlRequest } from "./command-rpc-CAG1xrqm.mjs";
34
+ import { a as readCodexConversationActiveTurn, c as setCodexConversationModel, d as stopCodexConversationTurn, i as parseCodexPermissionsModeArg, l as setCodexConversationPermissions, n as formatPermissionsMode, r as parseCodexFastModeArg, s as setCodexConversationFastMode, u as steerCodexConversationTurn } from "./conversation-control-BtPxevoK.mjs";
35
35
  import { normalizeOptionalString, normalizeUniqueStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
36
36
  import crypto from "node:crypto";
37
37
  import { isDeepStrictEqual } from "node:util";
@@ -1,17 +1,17 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
2
  import { o as isCodexAppServerOverloadError, r as CodexAppServerRpcError } from "./rpc-error-C98SHchT.mjs";
3
3
  import { n as describeControlFailure, t as CODEX_CONTROL_METHODS } from "./capabilities-DbOzOglY.mjs";
4
- import { a as withCodexAppServerJsonClient, r as requestCodexAppServerJson } from "./request-DhbisYCc.mjs";
5
- import "./config-G4IGX6bK.mjs";
6
- import { n as resolveCodexAppServerRuntimeOptions, r as resolveCodexSupervisionAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
4
+ import { a as withCodexAppServerJsonClient, r as requestCodexAppServerJson } from "./request-XC1RG34l.mjs";
5
+ import "./config-LQemoqTL.mjs";
6
+ import { n as resolveCodexAppServerRuntimeOptions, r as resolveCodexSupervisionAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
7
7
  import { a as resolveCodexAppServerAuthProfileStore, r as resolveCodexAppServerAuthProfileId } from "./auth-profile-CgHQ8Vot.mjs";
8
- import { nt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-wb1JBldZ.mjs";
9
- import { a as isCodexAppServerIndeterminateRequestCancellationError, o as isCodexAppServerIndeterminateTransportError } from "./client-BpSxNz4F.mjs";
10
- import { o as closeCodexStartupClientBestEffort } from "./attempt-client-cleanup-TScCVTsk.mjs";
8
+ import { at as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-AdQX0Tdq.mjs";
9
+ import { a as isCodexAppServerIndeterminateRequestCancellationError, o as isCodexAppServerIndeterminateTransportError } from "./client-BM97zH3z.mjs";
10
+ import { o as closeCodexStartupClientBestEffort } from "./attempt-client-cleanup-jWVRH043.mjs";
11
11
  import { r as prepareCodexAppServerAuthBinding } from "./auth-binding-BFTkrP_b.mjs";
12
- import { r as listCodexAppServerModels } from "./models-GBLXb27n.mjs";
12
+ import { r as listCodexAppServerModels } from "./models-B65GHU4g.mjs";
13
13
  import { n as createCodexSessionGenerationSupersededError } from "./session-binding-BDnNz-Co.mjs";
14
- import { t as resumeCodexAppServerThread } from "./thread-resume-CD48Vab8.mjs";
14
+ import { t as resumeCodexAppServerThread } from "./thread-resume-8YKfRoX6.mjs";
15
15
  import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";
16
16
  import { resolveAgentDir, resolveSessionAgentIdsStrict } from "openclaw/plugin-sdk/agent-scope-runtime";
17
17
  import { resolveAgentWorkspaceDir } from "openclaw/plugin-sdk/agent-runtime";
@@ -1,23 +1,23 @@
1
1
  import { n as readCodexRuntimeModelId } from "./model-runtime-BdqzOMkU.mjs";
2
2
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
3
3
  import { m as sessionBindingIdentity } from "./session-binding-record-C2kDBZhx.mjs";
4
- import { E as waitForCodexAppServerClientExit, S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-DvDLHVJe.mjs";
4
+ import { E as waitForCodexAppServerClientExit, S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-DrieYJUQ.mjs";
5
5
  import { t as CODEX_APP_SERVER_BINDING_GUARDED_REQUEST_TIMEOUT_MS } from "./session-binding-meta-Lkm5Lpf4.mjs";
6
6
  import { i as CodexAppServerScopedRequestRejectedError, r as CodexAppServerRpcError } from "./rpc-error-C98SHchT.mjs";
7
- import { i as resolveCodexBindingAppServerConnection } from "./binding-connection-X1ZeEDz8.mjs";
8
- import { F as consumeCodexAppServerLiveThread, J as revertCodexAppServerLiveThreadInstructions, M as getCodexInferenceThreadQualification, W as protectCodexAppServerLiveThread, _ as retainSharedCodexAppServerClientIfCurrent, q as retainCodexAppServerLiveThread, s as createIsolatedCodexAppServerClient } from "./shared-client-wb1JBldZ.mjs";
7
+ import { i as resolveCodexBindingAppServerConnection } from "./binding-connection-C0t9TBX_.mjs";
8
+ import { F as consumeCodexAppServerLiveThread, G as protectCodexAppServerLiveThread, J as retainCodexAppServerLiveThread, M as getCodexInferenceThreadQualification, Y as revertCodexAppServerLiveThreadInstructions, _ as retainSharedCodexAppServerClientIfCurrent, s as createIsolatedCodexAppServerClient } from "./shared-client-AdQX0Tdq.mjs";
9
9
  import "./responses-oauth-twnuTaAa.mjs";
10
- import { a as isCodexAppServerIndeterminateRequestCancellationError, s as isCodexAppServerPrewriteRequestCancellationError } from "./client-BpSxNz4F.mjs";
11
- import { c as readCodexNotificationTurnId, s as readCodexNotificationThreadId } from "./turn-router-DdlzuFdm.mjs";
12
- import { c as isCodexNoActiveTurnInterruptError, f as unsubscribeCodexThreadBestEffort, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-TScCVTsk.mjs";
10
+ import { a as isCodexAppServerIndeterminateRequestCancellationError, s as isCodexAppServerPrewriteRequestCancellationError } from "./client-BM97zH3z.mjs";
11
+ import { c as readCodexNotificationTurnId, s as readCodexNotificationThreadId } from "./turn-router-DnfbVPvu.mjs";
12
+ import { c as isCodexNoActiveTurnInterruptError, f as unsubscribeCodexThreadBestEffort, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-jWVRH043.mjs";
13
13
  import { n as readCodexThreadContextSnapshot, s as readCodexNotificationItem } from "./event-projector-usage-BpKfdoTm.mjs";
14
14
  import { i as resolveCodexSessionBinding } from "./session-binding-BDnNz-Co.mjs";
15
- import { s as withCodexAppServerThreadMutationHold, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-CTUs8Eyu.mjs";
15
+ import { s as withCodexAppServerThreadMutationHold, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-OXzPB_RV.mjs";
16
16
  import { t as persistCodexContextCompactionActivity } from "./context-compaction-activity-CMla5FPJ.mjs";
17
- import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-gqu3TQOv.mjs";
17
+ import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-CJaIve3h.mjs";
18
18
  import { t as resolveCodexNativeExecutionBlock } from "./sandbox-guard-Cf9XMRrg.mjs";
19
- import { i as assertCodexSupervisionThreadLineage } from "./thread-policy-BMRvlOi-.mjs";
20
- import { t as resumeCodexAppServerThread } from "./thread-resume-CD48Vab8.mjs";
19
+ import { i as assertCodexSupervisionThreadLineage } from "./thread-policy-Dp4CQjdL.mjs";
20
+ import { t as resumeCodexAppServerThread } from "./thread-resume-8YKfRoX6.mjs";
21
21
  import { asOptionalRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
22
22
  import { coerceErrorMessage } from "openclaw/plugin-sdk/error-runtime";
23
23
  import { isIncognitoSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
@@ -1,13 +1,13 @@
1
1
  import { t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
2
- import { o as resolveCodexComputerUseConfig } from "./config-options-nvYwVDyy.mjs";
2
+ import { o as resolveCodexComputerUseConfig } from "./config-options-CZmH25Xq.mjs";
3
3
  import { d as resolveMacOSDesktopCodexBundledMarketplaceCandidates, t as isManagedCodexDesktopCommand } from "./managed-binary-DwC9wxch.mjs";
4
4
  import { n as describeControlFailure } from "./capabilities-DbOzOglY.mjs";
5
- import { n as requestCodexAppServerClientJson } from "./request-DhbisYCc.mjs";
6
- import "./config-G4IGX6bK.mjs";
7
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.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-wb1JBldZ.mjs";
9
- import { a as isCodexAppServerIndeterminateRequestCancellationError, i as isCodexAppServerConnectionClosedError, o as isCodexAppServerIndeterminateTransportError } from "./client-BpSxNz4F.mjs";
10
- import { l as retireUnsafeCodexTurnClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-TScCVTsk.mjs";
5
+ import { n as requestCodexAppServerClientJson } from "./request-XC1RG34l.mjs";
6
+ import "./config-LQemoqTL.mjs";
7
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
8
+ import { O as acquireCodexNativeConfigFence, b as withLeasedCodexAppServerClientStartSelectionRetry, c as getLeasedSharedCodexAppServerClient, ct as hasLegacyCodexComputerUseMcpPolicy, d as readCodexAppServerClientDesktopGeneration, dt as ensureCodexComputerUseSharedPluginCache, ft as assertNotSymlink, g as resolveCodexNativeConfigFenceKey, h as releaseLeasedSharedCodexAppServerClient, lt as isLegacyCodexComputerUsePluginDisabled, ot as resolveBundledComputerUseMarketplacePath, p as readCodexAppServerClientProcessIdentity, rt as reconcileCodexComputerUseStartArtifacts, st as resolveClientManagedBundledMarketplacePath, t as assertCodexAppServerClientStartSelectionCurrent, u as isCodexAppServerStartSelectionChangedError, ut as resolveManagedCodexComputerUseConfig, y as waitForCodexAppServerClientDesktopGenerationDrain } from "./shared-client-AdQX0Tdq.mjs";
9
+ import { a as isCodexAppServerIndeterminateRequestCancellationError, i as isCodexAppServerConnectionClosedError, o as isCodexAppServerIndeterminateTransportError } from "./client-BM97zH3z.mjs";
10
+ import { l as retireUnsafeCodexTurnClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-jWVRH043.mjs";
11
11
  import path from "node:path";
12
12
  import fs from "node:fs/promises";
13
13
  import { toErrorObject } from "openclaw/plugin-sdk/error-runtime";
@@ -1,8 +1,8 @@
1
- import "./config-security-D0hAOQRI.mjs";
1
+ import "./config-security-DpkGNy5T.mjs";
2
2
  import { _ as readExecSecurity, b as readRecord, g as readExecAsk } from "./config-parsing-CVK2Q463.mjs";
3
3
  import "./auth-start-options-BPIPeEX8.mjs";
4
- import { c as canUseCodexModelBackedApprovalsReviewerForModel$1 } from "./config-options-nvYwVDyy.mjs";
5
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
4
+ import { c as canUseCodexModelBackedApprovalsReviewerForModel$1 } from "./config-options-CZmH25Xq.mjs";
5
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
6
6
  import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";
7
7
  import { resolveAgentConfig } from "openclaw/plugin-sdk/agent-scope-runtime";
8
8
  import { execPolicy } from "openclaw/plugin-sdk/agent-harness-runtime";
@@ -1,5 +1,5 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
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-D0hAOQRI.mjs";
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-DpkGNy5T.mjs";
3
3
  import { a as DEFAULT_CODEX_COMPUTER_USE_PLUGIN_NAME, b as readRecord, d as readCodexPluginConfig, h as normalizeHeaders, n as DEFAULT_CODEX_COMPUTER_USE_LIVE_TEST_TIMEOUT_MS, o as DEFAULT_CODEX_COMPUTER_USE_TOOL_CALL_TIMEOUT_MS, p as hashSecretForKey, r as DEFAULT_CODEX_COMPUTER_USE_MARKETPLACE_DISCOVERY_TIMEOUT_MS, s as assertCodexAppServerCommandHasNoInlineArgs, v as readNonEmptyString, x as resolveArgs, y as readNumberEnv } from "./config-parsing-CVK2Q463.mjs";
4
4
  import { i as readCodexAppServerConfigOptions } from "./launch-args-DbFCehO7.mjs";
5
5
  import { r as resolveCodexAppServerUserHomeDir, t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
@@ -1,4 +1,4 @@
1
- import { r as createCodexAppServerConfig } from "./config-options-nvYwVDyy.mjs";
1
+ import { r as createCodexAppServerConfig } from "./config-options-CZmH25Xq.mjs";
2
2
  import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";
3
3
  import { resolveProviderIdForAuth } from "openclaw/plugin-sdk/provider-auth-aliases";
4
4
  //#region extensions/codex/src/app-server/config-runtime.ts
@@ -224,7 +224,7 @@ function hasCodexMcpToolApprovalOverrides(servers, serverNames, projectedMcpServ
224
224
  return [...modes.values()].some((mode) => mode === "auto" || mode === "prompt");
225
225
  }
226
226
  function withMcpElicitationsApprovalPolicy(policy) {
227
- if (policy === "untrusted") return policy;
227
+ if (policy === "untrusted" || policy === "on-request") return policy;
228
228
  if (typeof policy !== "string") return { granular: {
229
229
  ...policy.granular,
230
230
  mcp_elicitations: true