@openclaw/codex 2026.10.5 → 2026.10.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/.setup/{account-usage-runtime-Dqpnnkst.mjs → account-usage-runtime-E3SrjJVn.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-C3s-1Zxe.mjs} +14 -14
  4. package/dist/.setup/{attempt-client-cleanup-TScCVTsk.mjs → attempt-client-cleanup-BVww-ct8.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-CXK7tmkb.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-vdpL2efh.mjs} +13 -12
  12. package/dist/.setup/{build-state-DfrctLQv.mjs → build-state-DPMC9C_U.mjs} +1 -1
  13. package/dist/.setup/{client-BpSxNz4F.mjs → client-Div-zqnz.mjs} +19 -15
  14. package/dist/.setup/{client-catalog-response-DloWE31e.mjs → client-catalog-response-Dtob_lVt.mjs} +1 -1
  15. package/dist/.setup/{command-dispatch-CIdf7ZvD.mjs → command-dispatch-ByO36LmS.mjs} +1 -1
  16. package/dist/.setup/{command-handlers-C2XNDeHL.mjs → command-handlers-CJqo6LZS.mjs} +16 -16
  17. package/dist/.setup/{command-rpc-DpmvEmhc.mjs → command-rpc-Co0UzT-T.mjs} +8 -8
  18. package/dist/.setup/{compact-DpCHUqU5.mjs → compact-CzNBg4cQ.mjs} +10 -10
  19. package/dist/.setup/{computer-use-BgGC32hr.mjs → computer-use-BcDrQlxi.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-Dcv7_rs-.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-DjbDZzOJ.mjs} +3 -3
  28. package/dist/.setup/{dynamic-tools-CKynHtxM.mjs → dynamic-tools-75qoSOch.mjs} +10 -10
  29. package/dist/.setup/{effective-mcp-catalog-DXGsGC1j.mjs → effective-mcp-catalog-Dz0J8iAj.mjs} +4 -4
  30. package/dist/.setup/{ephemeral-turn-C6aFeGFS.mjs → ephemeral-turn-K_d99r9P.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-dNt4kRLw.mjs} +6 -6
  33. package/dist/.setup/{mcp-app-session-preparation-Cnmuh9RT.mjs → mcp-app-session-preparation-C7LyxbAm.mjs} +8 -8
  34. package/dist/.setup/{model-catalog-DRbHoUhG.mjs → model-catalog-BRJ7RMXY.mjs} +7 -7
  35. package/dist/.setup/{models-GBLXb27n.mjs → models-CusrgpiY.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-BvwSj5bt.mjs} +5 -5
  38. package/dist/.setup/{native-mcp-app-DIheNk35.mjs → native-mcp-app-DDEtVQED.mjs} +4 -4
  39. package/dist/.setup/{native-skill-isolation-CxZRtiWZ.mjs → native-skill-isolation-Cx2AkUco.mjs} +3 -3
  40. package/dist/.setup/{native-subagent-monitor-gqu3TQOv.mjs → native-subagent-monitor-CBYFkNsB.mjs} +66 -19
  41. package/dist/.setup/{plan-DZWYASAx.mjs → plan-BKFbfVsV.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-CXXXhuKi.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-BVV8SWlx.mjs} +4 -4
  47. package/dist/.setup/{provider-capabilities-DOBUBt86.mjs → provider-capabilities-B-pTlDsf.mjs} +1 -1
  48. package/dist/.setup/{request-DhbisYCc.mjs → request-m-H-7FMu.mjs} +2 -2
  49. package/dist/.setup/{run-attempt-WbitbMr6.mjs → run-attempt-Ch1emiZE.mjs} +104 -54
  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-BBV3DMG7.mjs} +4 -4
  53. package/dist/.setup/{session-catalog-index-_4Z5quG3.mjs → session-catalog-index-B00GIRi3.mjs} +4 -4
  54. package/dist/.setup/{session-catalog-native-projection-imNPfB3q.mjs → session-catalog-native-projection-BJupfCyt.mjs} +1 -1
  55. package/dist/.setup/{session-catalog-projection-BFp1d3bJ.mjs → session-catalog-projection-CYgFTaYm.mjs} +1 -1
  56. package/dist/.setup/{session-catalog-source-CgWkqG43.mjs → session-catalog-source-Xt6-hNns.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-DIqF1vQ4.mjs} +5 -5
  59. package/dist/.setup/{settled-turn-finalizer-Blsc4VLX.mjs → settled-turn-finalizer-dVv34G_E.mjs} +4 -4
  60. package/dist/.setup/{shared-client-wb1JBldZ.mjs → shared-client-CNGDTv68.mjs} +29 -17
  61. package/dist/.setup/{side-question-DNEeROvz.mjs → side-question-D1Wa21s9.mjs} +17 -17
  62. package/dist/.setup/{source-BjBw-zoV.mjs → source-DyVuYlTN.mjs} +3 -3
  63. package/dist/.setup/{thread-lifecycle-run-DdwKMIae.mjs → thread-lifecycle-run-DjSfTw6v.mjs} +60 -36
  64. package/dist/.setup/{thread-ownership-CTUs8Eyu.mjs → thread-ownership-BBsOFzCM.mjs} +3 -3
  65. package/dist/.setup/{thread-policy-BMRvlOi-.mjs → thread-policy-BEiS7ITh.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-BqOca2Iy.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-DM0fRrYI.mjs} +1 -1
  70. package/dist/.setup/{upstream-session-fork-BF0c69x6.mjs → upstream-session-fork-CxgShpwe.mjs} +14 -14
  71. package/dist/.setup/{usage-BsMyAOaB.mjs → usage-DV8T9Yau.mjs} +3 -3
  72. package/dist/.setup/{usage-limit-error-hLIGKewV.mjs → usage-limit-error-ryR1PGou.mjs} +1 -1
  73. package/dist/.setup/{web-search-provider.runtime-BJK0lNpc.mjs → web-search-provider.runtime-DkciK2gS.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 +4 -4
@@ -1,27 +1,27 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
2
  import { m as sessionBindingIdentity, n as assertCodexBindingMayBeReplaced } from "./session-binding-record-C2kDBZhx.mjs";
3
- import { d as readCodexRequirementsToml } from "./config-security-D0hAOQRI.mjs";
3
+ import { d as readCodexRequirementsToml } from "./config-security-DpkGNy5T.mjs";
4
4
  import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
5
- import { d as readCodexEffectiveConfig, n as codexSandboxPolicyForTurn } from "./config-options-nvYwVDyy.mjs";
6
- import { S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-DvDLHVJe.mjs";
5
+ import { d as readCodexEffectiveConfig, n as codexSandboxPolicyForTurn } from "./config-options-CZmH25Xq.mjs";
6
+ import { S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-CXK7tmkb.mjs";
7
7
  import { o as resolveCodexDefaultWorkspaceDir } from "./conversation-binding-data-GRGSgAro.mjs";
8
- import { o as isCodexAppServerOverloadError } from "./rpc-error-C98SHchT.mjs";
8
+ import { o as isCodexAppServerOverloadError, r as CodexAppServerRpcError, s as isCodexThreadReadMissingError } from "./rpc-error-C98SHchT.mjs";
9
9
  import { n as projectBoundedCodexVisibleSessionHistory } from "./transcript-history-projection-DfKcoZCB.mjs";
10
- import { n as canUseCodexModelBackedApprovalsReviewerForModel, r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-G4IGX6bK.mjs";
11
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
10
+ import { n as canUseCodexModelBackedApprovalsReviewerForModel, r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-LQemoqTL.mjs";
11
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
12
12
  import { n as normalizeCodexAppServerBindingModelProvider, t as isCodexAppServerNativeAuthProfile } from "./auth-profile-CgHQ8Vot.mjs";
13
- import { B as isCodexAppServerClientRuntimeLive, F as consumeCodexAppServerLiveThread, K as releaseCodexAppServerLiveThread, R as hasCodexAppServerLiveThread, V as isCodexAppServerLiveThreadClaimed, b as withLeasedCodexAppServerClientStartSelectionRetry, c as getLeasedSharedCodexAppServerClient, m as releaseCodexAppServerClientLease } from "./shared-client-wb1JBldZ.mjs";
14
- import { a as isCodexAppServerIndeterminateRequestCancellationError, g as assertCodexThreadStartResponse, p as assertCodexThreadAcceptsDirectInput, u as CodexThreadDirectInputError } from "./client-BpSxNz4F.mjs";
15
- import { a as isCodexNotificationForTurn, n as getCodexAppServerTurnRouter } from "./turn-router-DdlzuFdm.mjs";
16
- import { f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError, s as interruptCodexTurnAndWaitBestEffort } from "./attempt-client-cleanup-TScCVTsk.mjs";
17
- import { d as mergeCodexThreadConfigs, s as buildDisabledAppsConfigPatch, t as buildCodexProjectDocThreadConfig } from "./project-doc-thread-config-B2ZD23A_.mjs";
13
+ import { B as isCodexAppServerClientRuntimeLive, F as consumeCodexAppServerLiveThread, H as isCodexAppServerLiveThreadClaimed, R as hasCodexAppServerLiveThread, b as withLeasedCodexAppServerClientStartSelectionRetry, c as getLeasedSharedCodexAppServerClient, m as releaseCodexAppServerClientLease, q as releaseCodexAppServerLiveThread } from "./shared-client-CNGDTv68.mjs";
14
+ import { a as isCodexAppServerIndeterminateRequestCancellationError, g as assertCodexThreadStartResponse, p as assertCodexThreadAcceptsDirectInput, u as CodexThreadDirectInputError } from "./client-Div-zqnz.mjs";
15
+ import { a as isCodexNotificationForTurn, n as getCodexAppServerTurnRouter } from "./turn-router-DM0fRrYI.mjs";
16
+ import { f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, o as closeCodexStartupClientBestEffort, s as interruptCodexTurnAndWaitBestEffort } from "./attempt-client-cleanup-BVww-ct8.mjs";
17
+ import { d as mergeCodexThreadConfigs, s as buildDisabledAppsConfigPatch, t as buildCodexProjectDocThreadConfig } from "./project-doc-thread-config-D_sWbxFR.mjs";
18
18
  import "./session-binding-BDnNz-Co.mjs";
19
19
  import { r as resolveCodexAppServerRequestModelSelection, t as CODEX_NATIVE_PERSONALITY_NONE } from "./thread-model-selection-DcVebr8N.mjs";
20
- import { a as rollbackCodexAppServerBindingSubscription, c as withExclusiveCodexAppServerThread, n as releaseCodexAppServerBindingSubscription, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-CTUs8Eyu.mjs";
21
- import { t as resumeCodexAppServerThread } from "./thread-resume-CD48Vab8.mjs";
22
- import { i as resolveCodexSessionPermissionCwd, n as applyCodexSessionPermissionPolicy, t as CODEX_SESSION_PERMISSION_EXEC_MODES } from "./session-permission-policy-BYI6mp5u.mjs";
23
- import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-XTIa6h5k.mjs";
24
- import { f as trackCodexConversationActiveTurn, o as resolveThreadRequestModelProvider, t as buildCodexConversationAgentLookup } from "./conversation-control--OHH2dHA.mjs";
20
+ import { a as rollbackCodexAppServerBindingSubscription, c as withExclusiveCodexAppServerThread, n as releaseCodexAppServerBindingSubscription, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-BBsOFzCM.mjs";
21
+ import { t as resumeCodexAppServerThread } from "./thread-resume-BqOca2Iy.mjs";
22
+ import { i as resolveCodexSessionPermissionCwd, n as applyCodexSessionPermissionPolicy, t as CODEX_SESSION_PERMISSION_EXEC_MODES } from "./session-permission-policy-C7kYxPGd.mjs";
23
+ import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-V8zuN8q_.mjs";
24
+ import { f as trackCodexConversationActiveTurn, o as resolveThreadRequestModelProvider, t as buildCodexConversationAgentLookup } from "./conversation-control-BtPxevoK.mjs";
25
25
  import { asOptionalRecord, normalizeOptionalString, readNonEmptyStringPreservingWhitespace } from "openclaw/plugin-sdk/string-coerce-runtime";
26
26
  import { resolveSessionAgentIdsStrict } from "openclaw/plugin-sdk/agent-scope-runtime";
27
27
  import { resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
@@ -268,7 +268,7 @@ async function bindThread(params, threadId) {
268
268
  function assertNativeConversationApprovalPolicySupported(runtime) {
269
269
  if (runtime.approvalPolicy !== "never" && runtime.approvalsReviewer === "user") throw new Error(NATIVE_CONVERSATION_INTERACTIVE_APPROVALS_UNAVAILABLE);
270
270
  }
271
- async function prepareCodexConversationBinding(params, options = {}) {
271
+ async function prepareCodexConversationBinding(params) {
272
272
  const identity = {
273
273
  kind: "conversation",
274
274
  bindingId: params.data.bindingId
@@ -278,7 +278,7 @@ async function prepareCodexConversationBinding(params, options = {}) {
278
278
  const current = params.bindingStore.read(identity);
279
279
  if (current?.threadId !== snapshot?.threadId || current?.clientId !== snapshot?.clientId) throw new Error("Codex conversation binding changed before preparation.");
280
280
  const requested = params.data.start && current?.conversationStartId !== params.data.start.id ? params.data.start : void 0;
281
- if (current && !requested && !options.forceNew) return;
281
+ if (current && !requested) return;
282
282
  const sourceIdentity = params.data.source ? sessionBindingIdentity({
283
283
  agentId: params.data.source.agentId,
284
284
  sessionId: params.data.source.sessionId,
@@ -310,7 +310,7 @@ async function prepareCodexConversationBinding(params, options = {}) {
310
310
  agentId: params.data.source?.agentId ?? params.data.agentId
311
311
  };
312
312
  const threadId = requested?.threadId;
313
- await bindThread(bindingParams, options.forceNew ? void 0 : threadId);
313
+ await bindThread(bindingParams, threadId);
314
314
  const stored = params.bindingStore.read(identity);
315
315
  if (!stored) throw new Error("Codex conversation binding disappeared while initializing its thread.");
316
316
  if (sourceIdentity && params.data.source && !current?.conversationSourceTransferComplete) await params.bindingStore.withLease(sourceIdentity, async () => {
@@ -535,6 +535,12 @@ function readLocalMediaPath(value) {
535
535
  //#endregion
536
536
  //#region extensions/codex/src/conversation-binding.ts
537
537
  const DEFAULT_BOUND_TURN_TIMEOUT_MS = 12e5;
538
+ var CodexConversationUnloadedThreadError = class extends Error {
539
+ constructor(threadId, cause) {
540
+ super(cause.message, { cause });
541
+ this.threadId = threadId;
542
+ }
543
+ };
538
544
  async function runBoundTurn(params) {
539
545
  const agentLookup = buildCodexConversationAgentLookup({
540
546
  agentDir: params.data.agentDir,
@@ -546,6 +552,7 @@ async function runBoundTurn(params) {
546
552
  };
547
553
  const binding = params.bindingStore.read(identity);
548
554
  if (!binding?.threadId) throw new Error("bound Codex conversation has no thread binding");
555
+ if (params.resumeThreadId && binding.threadId !== params.resumeThreadId) throw new Error("Codex conversation binding changed before recovery; review it before resending.");
549
556
  return await withExclusiveCodexAppServerThread({
550
557
  bindingStore: params.bindingStore,
551
558
  identity,
@@ -576,6 +583,7 @@ async function runBoundTurn(params) {
576
583
  const permissionProfile = runtime.networkProxy?.profileName;
577
584
  const networkProxyConfigFingerprint = runtime.networkProxy?.configFingerprint;
578
585
  const networkProxyBindingChanged = binding.networkProxyProfileName !== permissionProfile || binding.networkProxyConfigFingerprint !== networkProxyConfigFingerprint;
586
+ if (params.resumeThreadId && networkProxyBindingChanged) throw new Error("Codex conversation policy changed before recovery; rebind the conversation and resend your message.");
579
587
  const serviceTier = binding.serviceTier ?? runtime.serviceTier;
580
588
  let useStickyNetworkProfile = permissionProfile !== void 0 && !networkProxyBindingChanged;
581
589
  assertNativeConversationApprovalPolicySupported(runtime);
@@ -625,7 +633,7 @@ async function runBoundTurn(params) {
625
633
  ownsNativeSubscription = true;
626
634
  }
627
635
  }
628
- if (networkProxyBindingChanged || binding.clientId !== client.getInstanceId() || isCodexAppServerClientRuntimeLive(client) && !params.incognito && !liveThreadOwnership) {
636
+ if (params.resumeThreadId || networkProxyBindingChanged || binding.clientId !== client.getInstanceId() || isCodexAppServerClientRuntimeLive(client) && !params.incognito && !liveThreadOwnership) {
629
637
  if (!networkProxyBindingChanged && binding.clientId === client.getInstanceId()) await assertResumeInputAllowed();
630
638
  const result = await withLeasedCodexAppServerClientStartSelectionRetry({
631
639
  lease: clientLease,
@@ -726,7 +734,10 @@ async function runBoundTurn(params) {
726
734
  ...modelSelection?.model ? { model: modelSelection.model } : {},
727
735
  personality: CODEX_NATIVE_PERSONALITY_NONE,
728
736
  ...serviceTier ? { serviceTier } : {}
729
- }, { timeoutMs: runtime.requestTimeoutMs })).turn.id;
737
+ }, { timeoutMs: runtime.requestTimeoutMs }).catch((error) => {
738
+ if (!params.incognito && error instanceof CodexAppServerRpcError && error.method === "turn/start" && error.code === -32600 && error.message === `thread not found: ${threadId}`) throw new CodexConversationUnloadedThreadError(threadId, error);
739
+ throw error;
740
+ })).turn.id;
730
741
  activeTurnCleanup = trackCodexConversationActiveTurn({
731
742
  identity,
732
743
  client,
@@ -740,6 +751,7 @@ async function runBoundTurn(params) {
740
751
  turnSucceeded = true;
741
752
  return { text: replyText || "Codex completed without a text reply." };
742
753
  } catch (error) {
754
+ if (params.resumeThreadId && isCodexThreadReadMissingError(error, threadId)) throw new Error("The bound Codex thread is unavailable. Your message was not submitted; rebind the conversation and resend it.", { cause: error });
743
755
  if (isCodexAppServerOverloadError(error) && error.method === "thread/resume") throw error;
744
756
  if (error instanceof CodexThreadDirectInputError) {
745
757
  if (params.incognito && ownsNativeSubscription) {
@@ -808,15 +820,12 @@ async function runBoundTurnWithMissingThreadRecovery(params) {
808
820
  try {
809
821
  return await runBoundTurn(params);
810
822
  } catch (error) {
811
- if (!isCodexThreadNotFoundError(error)) throw error;
812
- await prepareCodexConversationBinding(params, { forceNew: true });
813
- return await runBoundTurn(params);
823
+ if (!(error instanceof CodexConversationUnloadedThreadError)) throw error;
824
+ return await runBoundTurn({
825
+ ...params,
826
+ resumeThreadId: error.threadId
827
+ });
814
828
  }
815
829
  }
816
- function isCodexThreadNotFoundError(error) {
817
- if (isCodexAppServerOverloadError(error) || error instanceof CodexAppServerUnsafeSubscriptionError) return false;
818
- const message = formatErrorMessage(error);
819
- return /\bthread not found:/iu.test(message) || /\bbound Codex conversation has no thread binding\b/u.test(message);
820
- }
821
830
  //#endregion
822
831
  export { runBoundTurnWithMissingThreadRecovery };
@@ -1,7 +1,7 @@
1
1
  import { r as bindingStoreKey } from "./session-binding-record-C2kDBZhx.mjs";
2
2
  import { m as isCodexFastServiceTier } from "./config-parsing-CVK2Q463.mjs";
3
3
  import { o as formatCodexDisplayText } from "./command-formatters-xW9KpoSZ.mjs";
4
- import "./config-G4IGX6bK.mjs";
4
+ import "./config-LQemoqTL.mjs";
5
5
  import { n as normalizeCodexAppServerBindingModelProvider, t as isCodexAppServerNativeAuthProfile } from "./auth-profile-CgHQ8Vot.mjs";
6
6
  import "./session-binding-BDnNz-Co.mjs";
7
7
  import { a as resolveCodexBindingModelProviderFallback, r as resolveCodexAppServerRequestModelSelection } from "./thread-model-selection-DcVebr8N.mjs";
@@ -1,8 +1,8 @@
1
1
  import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
2
- import { a as resolveCodexAppServerStartOptionsForAgent } from "./config-options-nvYwVDyy.mjs";
2
+ import { a as resolveCodexAppServerStartOptionsForAgent } from "./config-options-CZmH25Xq.mjs";
3
3
  import { r as resolveManagedCodexAppServerStartOptions, t as isManagedCodexDesktopCommand } from "./managed-binary-DwC9wxch.mjs";
4
- import "./config-G4IGX6bK.mjs";
5
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
4
+ import "./config-LQemoqTL.mjs";
5
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
6
6
  import { listAgentIds, resolveAgentDir } from "openclaw/plugin-sdk/agent-scope-runtime";
7
7
  import { resolveDefaultModelForAgent } from "openclaw/plugin-sdk/agent-runtime";
8
8
  import { resolveEffectiveAgentRuntime } from "openclaw/plugin-sdk/command-auth-native";
@@ -1,10 +1,10 @@
1
1
  import { CODEX_NATIVE_TOOL_REQUIREMENTS } from "../native-tool-policy.js";
2
2
  import { c as isCodexPairedNodeRemoteExecPlacementSandbox, d as readCodexPluginConfig, l as isCodexRemoteExecPlacementSandbox } from "./config-parsing-CVK2Q463.mjs";
3
- import "./config-G4IGX6bK.mjs";
3
+ import "./config-LQemoqTL.mjs";
4
4
  import { a as isCodexResponsesOAuthRun } from "./responses-oauth-twnuTaAa.mjs";
5
- import { F as isForcedPrivateQaCodexRuntime, L as isSystemAgentOnlyCodexDynamicToolAllowlist, P as filterCodexDynamicTools, R as normalizeCodexDynamicToolName, h as resolveCodexWebSearchPlan } from "./thread-requests-BqPhA4Gs.mjs";
5
+ import { F as isForcedPrivateQaCodexRuntime, L as isSystemAgentOnlyCodexDynamicToolAllowlist, P as filterCodexDynamicTools, R as normalizeCodexDynamicToolName, h as resolveCodexWebSearchPlan } from "./thread-requests-DjyDmCo4.mjs";
6
6
  import { n as resolveCodexNativeExecutionPolicy, r as resolveCodexNodeExecToolOverrides } from "./native-execution-policy-MXEe7PB3.mjs";
7
- import { _ as createGatewayProcessProjection, b as isCodexDynamicToolExcluded, g as createGatewayExecProjection, v as createNodeExecAliasDynamicTool, x as placeDisabledNativeShellToolsInDirectNamespace, y as createSandboxShellProjection } from "./native-hook-relay-BQ9UkpeG.mjs";
7
+ import { _ as createGatewayProcessProjection, b as isCodexDynamicToolExcluded, g as createGatewayExecProjection, v as createNodeExecAliasDynamicTool, x as placeDisabledNativeShellToolsInDirectNamespace, y as createSandboxShellProjection } from "./native-hook-relay-BvwSj5bt.mjs";
8
8
  import path from "node:path";
9
9
  import { createStageTimingTracker, formatStageTimings } from "openclaw/plugin-sdk/time-runtime";
10
10
  import { resolveAgentDir } from "openclaw/plugin-sdk/agent-runtime";
@@ -1,21 +1,21 @@
1
1
  import { i as isJsonObject, r as flattenCodexDynamicToolFunctions, t as CODEX_OPENCLAW_DIRECT_DYNAMIC_TOOL_NAMESPACE } from "./protocol-CANUwXJ3.mjs";
2
- import { n as codexSandboxPolicyForTurn } from "./config-options-nvYwVDyy.mjs";
2
+ import { n as codexSandboxPolicyForTurn } from "./config-options-CZmH25Xq.mjs";
3
3
  import { o as formatCodexDisplayText } from "./command-formatters-xW9KpoSZ.mjs";
4
4
  import { o as readItem } from "./event-projector-values-CLvG1Hil.mjs";
5
5
  import { s as codexAppIdentityKey } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
6
- import "./config-G4IGX6bK.mjs";
6
+ import "./config-LQemoqTL.mjs";
7
7
  import { r as invalidInlineImageText } from "./session-history-read-BI_2jRED.mjs";
8
8
  import { o as neutralizeCodexExplicitMentionSigils } from "./context-engine-projection-ps-yn_ci.mjs";
9
- import { W as protectCodexAppServerLiveThread, _ as retainSharedCodexAppServerClientIfCurrent } from "./shared-client-wb1JBldZ.mjs";
10
- import { A as createFailedDynamicToolResponse, j as failedToolResult, k as resolveCodexToolAbortTerminalReason, l as CodexServerRequestResolvedError, w as createCodexElicitationResponse, x as readCodexTurnCompletedNotification } from "./client-BpSxNz4F.mjs";
9
+ import { G as protectCodexAppServerLiveThread, _ as retainSharedCodexAppServerClientIfCurrent } from "./shared-client-CNGDTv68.mjs";
10
+ import { A as createFailedDynamicToolResponse, j as failedToolResult, k as resolveCodexToolAbortTerminalReason, l as CodexServerRequestResolvedError, w as createCodexElicitationResponse, x as readCodexTurnCompletedNotification } from "./client-Div-zqnz.mjs";
11
11
  import { t as codexWebSocketDataToBuffer } from "./websocket-data-XlRvt8Ys.mjs";
12
- import { S as shouldClearTerminalPresentationForNativeItem, _ as itemName, a as isCodexNotificationForTurn, c as readCodexNotificationTurnId, d as auditNativeToolUnfinishedStatus, l as auditNativeToolName, s as readCodexNotificationThreadId, u as auditNativeToolTerminalStatus, v as itemStatus } from "./turn-router-DdlzuFdm.mjs";
12
+ import { S as shouldClearTerminalPresentationForNativeItem, _ as itemName, a as isCodexNotificationForTurn, c as readCodexNotificationTurnId, d as auditNativeToolUnfinishedStatus, l as auditNativeToolName, s as readCodexNotificationThreadId, u as auditNativeToolTerminalStatus, v as itemStatus } from "./turn-router-DM0fRrYI.mjs";
13
13
  import { n as resolveCodexAppServerReasoningEffort, t as readCodexSupportedReasoningEfforts } from "./reasoning-effort-CS9kKWB9.mjs";
14
- import { V as joinPresentSections } from "./thread-requests-BqPhA4Gs.mjs";
14
+ import { V as joinPresentSections } from "./thread-requests-DjyDmCo4.mjs";
15
15
  import { r as resolveCodexAppServerRequestModelSelection, t as CODEX_NATIVE_PERSONALITY_NONE } from "./thread-model-selection-DcVebr8N.mjs";
16
- import { a as requestPluginApprovalOutcome, c as truncateCodexApprovalDisplayText, i as requestPluginApproval, l as waitForPluginApprovalDecision, n as codexApprovalTimeoutText, o as sanitizeCodexApprovalVisibleText, r as mapExecDecisionToOutcome, s as stripDanglingCodexApprovalTerminalSequence, t as approvalRequestExplicitlyUnavailable } from "./plugin-approval-roundtrip-HbFUm9Pp.mjs";
17
- import { d as isCodexPassThroughMediaSource, f as mapCodexAppServerLocalWorkspacePath, p as mapCodexAppServerRemoteWorkspacePath } from "./dynamic-tool-build-CoMf7IKx.mjs";
18
- import { c as emitCodexNativePreToolUseFailureDiagnostic } from "./native-hook-relay-BQ9UkpeG.mjs";
16
+ import { a as requestPluginApprovalOutcome, c as truncateCodexApprovalDisplayText, i as requestPluginApproval, l as waitForPluginApprovalDecision, n as codexApprovalTimeoutText, o as sanitizeCodexApprovalVisibleText, r as mapExecDecisionToOutcome, s as stripDanglingCodexApprovalTerminalSequence, t as approvalRequestExplicitlyUnavailable } from "./plugin-approval-roundtrip-CXXXhuKi.mjs";
17
+ import { d as isCodexPassThroughMediaSource, f as mapCodexAppServerLocalWorkspacePath, p as mapCodexAppServerRemoteWorkspacePath } from "./dynamic-tool-build-DjbDZzOJ.mjs";
18
+ import { c as emitCodexNativePreToolUseFailureDiagnostic } from "./native-hook-relay-BvwSj5bt.mjs";
19
19
  import { createRequire } from "node:module";
20
20
  import { asNonArrayRecord, asOptionalRecord, filterStringEntries, isRecord, normalizeOptionalString, normalizeTrimmedStringList, readNonBlankString, readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
21
21
  import { createHash, randomUUID } from "node:crypto";
@@ -26,12 +26,12 @@ import { DEFAULT_MAX_LIVE_TOOL_RESULT_CHARS, estimateToolResultTextChars, resolv
26
26
  import path, { posix } from "node:path";
27
27
  import { coerceErrorMessage } from "openclaw/plugin-sdk/error-runtime";
28
28
  import { createBoundedRemoteFileReader, isPathStrictlyInside, root } from "openclaw/plugin-sdk/file-access-runtime";
29
+ import { raceWithTimeout } from "openclaw/plugin-sdk/time-runtime";
29
30
  import { once } from "node:events";
30
31
  import { spawn } from "node:child_process";
31
32
  import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
32
33
  import { emitTrustedDiagnosticEvent, hasPendingInternalDiagnosticEvent } from "openclaw/plugin-sdk/diagnostic-runtime";
33
34
  import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
34
- import { raceWithTimeout } from "openclaw/plugin-sdk/time-runtime";
35
35
  import { fileURLToPath, pathToFileURL } from "node:url";
36
36
  import { buildHarnessVisibleReplyGuidance, buildTemporalContextText, captureToolAuthoredSourceReply, createAgentToolResultMiddlewareRunner, createCodexAppServerToolResultExtensionRunner, embeddedAgentLog, extractMessagingToolSend, extractMessagingToolSendResult, finalizeAgentToolAvailability, finalizeToolTerminalPresentation, formatApprovalDisplayPath, formatToolExecutionErrorMessage, getBeforeToolCallFailureDisposition, getChannelAgentToolMeta, getPluginToolMeta, getPluginToolSideEffectOwnerKey, hasNativeHookRelayInvocation, invokeNativeHookRelay, isDeliveredMessageToolOnlySourceReplyResult, isDeliveredMessagingToolResult, isDeliveredMessagingToolSendToCurrentSource, isMessagingTool, isReplaySafeToolCall, isToolResultError, isToolWrappedWithBeforeToolCallHook, projectPluginMessageDeliveryFact, projectRuntimeToolInputSchema, readEmbeddedMessageDeliveryFact, readToolOperatorHint, resolveNativeHookRelayDeferredToolApproval, resolveToolExecutionErrorKind, runAgentHarnessAfterToolCallHook, sanitizeToolResult, setBeforeToolCallDiagnosticsEnabled, wrapToolWithBeforeToolCallHook } from "openclaw/plugin-sdk/agent-harness-runtime";
37
37
  import { sanitizeInlineImageDataUrl } from "openclaw/plugin-sdk/inline-image-data-url-runtime";
@@ -1,6 +1,6 @@
1
1
  import { m as sessionBindingIdentity } from "./session-binding-record-C2kDBZhx.mjs";
2
- import { S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-DvDLHVJe.mjs";
3
- import { W as protectCodexAppServerLiveThread } from "./shared-client-wb1JBldZ.mjs";
2
+ import { S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-CXK7tmkb.mjs";
3
+ import { G as protectCodexAppServerLiveThread } from "./shared-client-CNGDTv68.mjs";
4
4
  import "./session-binding-BDnNz-Co.mjs";
5
5
  import { n as projectCodexMcpToolMetadata, t as projectCodexMcpServerMetadata } from "./mcp-tool-metadata-_sawBkIh.mjs";
6
6
  import { asOptionalRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -107,7 +107,7 @@ async function acquireCodexMcpAppRuntime(params, options) {
107
107
  if (!retained && params.prepareSession) {
108
108
  const preparation = await params.prepareSession();
109
109
  params.assertCurrent();
110
- const { prepareCodexMcpAppSession } = await import("./mcp-app-session-preparation-Cnmuh9RT.mjs");
110
+ const { prepareCodexMcpAppSession } = await import("./mcp-app-session-preparation-C7LyxbAm.mjs");
111
111
  await prepareCodexMcpAppSession({
112
112
  preparation,
113
113
  bindingStore: options.bindingStore,
@@ -128,7 +128,7 @@ async function acquireCodexMcpAppRuntime(params, options) {
128
128
  };
129
129
  params.assertCurrent();
130
130
  assertBinding();
131
- const { createNativeMcpRuntime } = await import("./native-mcp-app-DIheNk35.mjs").then((n) => n.n);
131
+ const { createNativeMcpRuntime } = await import("./native-mcp-app-DDEtVQED.mjs").then((n) => n.n);
132
132
  params.assertCurrent();
133
133
  const runtime = createNativeMcpRuntime({
134
134
  client: retained.client,
@@ -1,6 +1,6 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
- import { x as readCodexTurnCompletedNotification } from "./client-BpSxNz4F.mjs";
3
- import { n as getCodexAppServerTurnRouter } from "./turn-router-DdlzuFdm.mjs";
2
+ import { x as readCodexTurnCompletedNotification } from "./client-Div-zqnz.mjs";
3
+ import { n as getCodexAppServerTurnRouter } from "./turn-router-DM0fRrYI.mjs";
4
4
  import { o as isTerminalTurnStatus, s as readCodexNotificationItem, t as CodexUsageProjection } from "./event-projector-usage-BpKfdoTm.mjs";
5
5
  import { readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { toStringifiedError } from "openclaw/plugin-sdk/error-runtime";
@@ -289,6 +289,7 @@ async function createCodexInferenceProxy(params) {
289
289
  let resident = null;
290
290
  const controller = new AbortController();
291
291
  const deadlineAtMs = Date.now() + HANDSHAKE_TIMEOUT_MS;
292
+ const deadlineAtMonotonicMs = performance.now() + HANDSHAKE_TIMEOUT_MS;
292
293
  let releasePermit = null;
293
294
  let framePending = false;
294
295
  let idleTimer;
@@ -322,7 +323,7 @@ async function createCodexInferenceProxy(params) {
322
323
  });
323
324
  };
324
325
  const close = () => finish();
325
- const failHandshake = () => finish(Date.now() >= deadlineAtMs ? 504 : 502);
326
+ const failHandshake = () => finish(performance.now() >= deadlineAtMonotonicMs ? 504 : 502);
326
327
  try {
327
328
  const { target, path } = resolveTarget(req);
328
329
  if (params.oauth) throw new Error(CODEX_INFERENCE_TRANSPORT_FAILURE);
@@ -352,12 +353,12 @@ async function createCodexInferenceProxy(params) {
352
353
  rejectBusyUpgrade(socket);
353
354
  return;
354
355
  }
355
- handshakeTimer = setTimeout(() => finish(504), Math.max(1, deadlineAtMs - Date.now()));
356
+ handshakeTimer = setTimeout(() => finish(504), Math.max(1, deadlineAtMonotonicMs - performance.now()));
356
357
  handshakeTimer.unref();
357
358
  const assertHandshakeCurrent = () => {
358
359
  assertCurrent();
359
360
  signal.throwIfAborted();
360
- if (Date.now() >= deadlineAtMs) throw new Error(CODEX_INFERENCE_TRANSPORT_FAILURE);
361
+ if (performance.now() >= deadlineAtMonotonicMs) throw new Error(CODEX_INFERENCE_TRANSPORT_FAILURE);
361
362
  };
362
363
  proxyAgent = createNodeProxyAgent({
363
364
  mode: "env",
@@ -374,7 +375,7 @@ async function createCodexInferenceProxy(params) {
374
375
  followRedirects: false,
375
376
  perMessageDeflate: false,
376
377
  maxPayload: MAX_BODY_BYTES,
377
- handshakeTimeout: Math.max(1, deadlineAtMs - Date.now()),
378
+ handshakeTimeout: Math.max(1, deadlineAtMonotonicMs - performance.now()),
378
379
  finishRequest(request) {
379
380
  let socketClosed = Promise.resolve();
380
381
  request.once("socket", (upstreamSocket) => {
@@ -1,10 +1,10 @@
1
1
  import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
2
- import { i as resolveCodexAppServerHomeScope } from "./config-options-nvYwVDyy.mjs";
3
- import "./config-G4IGX6bK.mjs";
4
- import { nt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-wb1JBldZ.mjs";
5
- import { f as assertCodexPassiveTurnItems } from "./client-BpSxNz4F.mjs";
6
- import { runBoundedCodexAppServerTurn } from "./bounded-turn-BpjZixcd.mjs";
7
- import { t as resolveCodexBoundedTurnIsolation } from "./bounded-turn-isolation-Brj5qzz6.mjs";
2
+ import { i as resolveCodexAppServerHomeScope } from "./config-options-CZmH25Xq.mjs";
3
+ import "./config-LQemoqTL.mjs";
4
+ import { rt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-CNGDTv68.mjs";
5
+ import { f as assertCodexPassiveTurnItems } from "./client-Div-zqnz.mjs";
6
+ import { runBoundedCodexAppServerTurn } from "./bounded-turn-vdpL2efh.mjs";
7
+ import { t as resolveCodexBoundedTurnIsolation } from "./bounded-turn-isolation-CIQJykuM.mjs";
8
8
  import { a as createAttributedCodexAssistantMessage } from "./event-projector-assistant-message-CLMKN4x-.mjs";
9
9
  //#region extensions/codex/src/app-server/isolated-completion.ts
10
10
  /** Runs prompt-only Codex inference on an ephemeral, ring-zero native thread. */
@@ -1,17 +1,17 @@
1
1
  import { m as sessionBindingIdentity } from "./session-binding-record-C2kDBZhx.mjs";
2
- import { d as readCodexRequirementsToml } from "./config-security-D0hAOQRI.mjs";
2
+ import { d as readCodexRequirementsToml } from "./config-security-DpkGNy5T.mjs";
3
3
  import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
4
4
  import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
5
5
  import { n as buildCodexAppServerRuntimeFingerprint, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
6
- import { i as resolveCodexBindingAppServerConnection } from "./binding-connection-X1ZeEDz8.mjs";
7
- import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-G4IGX6bK.mjs";
6
+ import { i as resolveCodexBindingAppServerConnection } from "./binding-connection-C0t9TBX_.mjs";
7
+ import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-LQemoqTL.mjs";
8
8
  import { r as resolveCodexAppServerAuthProfileId } from "./auth-profile-CgHQ8Vot.mjs";
9
- import { I as ensureCodexAppServerClientRuntime, c as getLeasedSharedCodexAppServerClient, h as releaseLeasedSharedCodexAppServerClient } from "./shared-client-wb1JBldZ.mjs";
10
- import { d as mergeCodexThreadConfigs } from "./project-doc-thread-config-B2ZD23A_.mjs";
9
+ import { I as ensureCodexAppServerClientRuntime, c as getLeasedSharedCodexAppServerClient, h as releaseLeasedSharedCodexAppServerClient } from "./shared-client-CNGDTv68.mjs";
10
+ import { d as mergeCodexThreadConfigs } from "./project-doc-thread-config-D_sWbxFR.mjs";
11
11
  import { i as resolveCodexSessionBinding } from "./session-binding-BDnNz-Co.mjs";
12
- import { a as rollbackCodexAppServerBindingSubscription, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-CTUs8Eyu.mjs";
13
- import { a as prepareCodexPluginThreadConfigStartupProvider, o as resolveCodexPluginThreadConfigStartupPolicy, t as startOrResumeThread } from "./thread-lifecycle-run-DdwKMIae.mjs";
14
- import { n as applyCodexSessionPermissionPolicy } from "./session-permission-policy-BYI6mp5u.mjs";
12
+ import { a as rollbackCodexAppServerBindingSubscription, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-BBsOFzCM.mjs";
13
+ import { a as prepareCodexPluginThreadConfigStartupProvider, o as resolveCodexPluginThreadConfigStartupPolicy, t as startOrResumeThread } from "./thread-lifecycle-run-DjSfTw6v.mjs";
14
+ import { n as applyCodexSessionPermissionPolicy } from "./session-permission-policy-C7kYxPGd.mjs";
15
15
  import { z } from "zod";
16
16
  import { loadCodexBundleMcpThreadConfig } from "openclaw/plugin-sdk/agent-harness-runtime";
17
17
  import { loadExecApprovals } from "openclaw/plugin-sdk/exec-approvals-runtime";
@@ -1,15 +1,15 @@
1
1
  import { t as buildCodexRuntimeModelParams } from "./model-runtime-BdqzOMkU.mjs";
2
2
  import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
3
3
  import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
4
- import { w as retireSharedCodexAppServerClientIfCurrent } from "./auth-cache-key-DvDLHVJe.mjs";
5
- import { a as withCodexAppServerJsonClient } from "./request-DhbisYCc.mjs";
6
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
4
+ import { w as retireSharedCodexAppServerClientIfCurrent } from "./auth-cache-key-CXK7tmkb.mjs";
5
+ import { a as withCodexAppServerJsonClient } from "./request-m-H-7FMu.mjs";
6
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
7
7
  import { a as resolveCodexAppServerAuthProfileStore, r as resolveCodexAppServerAuthProfileId } from "./auth-profile-CgHQ8Vot.mjs";
8
- import { r as captureSharedCodexAppServerCatalogLifetime } from "./shared-client-wb1JBldZ.mjs";
8
+ import { r as captureSharedCodexAppServerCatalogLifetime } from "./shared-client-CNGDTv68.mjs";
9
9
  import { i as isCodexResponsesOAuthCredential } from "./responses-oauth-twnuTaAa.mjs";
10
- import { a as isCodexAppServerIndeterminateRequestCancellationError } from "./client-BpSxNz4F.mjs";
11
- import { n as listAllCodexAppServerModels } from "./models-GBLXb27n.mjs";
12
- import { probeCodexNativeAuth } from "./native-auth-DWrRSl4Z.mjs";
10
+ import { a as isCodexAppServerIndeterminateRequestCancellationError } from "./client-Div-zqnz.mjs";
11
+ import { n as listAllCodexAppServerModels } from "./models-CusrgpiY.mjs";
12
+ import { probeCodexNativeAuth } from "./native-auth-CveRfTpz.mjs";
13
13
  //#region extensions/codex/src/app-server/model-catalog.ts
14
14
  const INPUT_TYPES = /* @__PURE__ */ new Set([
15
15
  "text",
@@ -1,4 +1,4 @@
1
- import { d as assertCodexModelListResponse } from "./client-BpSxNz4F.mjs";
1
+ import { d as assertCodexModelListResponse } from "./client-Div-zqnz.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;
@@ -29,8 +29,8 @@ async function listAllCodexAppServerModels(options = {}) {
29
29
  async function withCodexAppServerModelRequest(options, run) {
30
30
  if (options.request) return await run(options.request);
31
31
  const timeoutMs = options.timeoutMs ?? 1e4;
32
- const { getLeasedSharedCodexAppServerClient, releaseLeasedSharedCodexAppServerClient } = await import("./shared-client-wb1JBldZ.mjs").then((n) => n.v);
33
- const { requestCodexAppServerClientJson } = await import("./request-DhbisYCc.mjs").then((n) => n.i);
32
+ const { getLeasedSharedCodexAppServerClient, releaseLeasedSharedCodexAppServerClient } = await import("./shared-client-CNGDTv68.mjs").then((n) => n.v);
33
+ const { requestCodexAppServerClientJson } = await import("./request-m-H-7FMu.mjs").then((n) => n.i);
34
34
  const client = await getLeasedSharedCodexAppServerClient({
35
35
  startOptions: options.startOptions,
36
36
  timeoutMs,
@@ -2,7 +2,7 @@ import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
2
2
  import { n as isCodexAppServerProxyLaunch, t as buildCodexLoginStatusArgs } from "./launch-args-DbFCehO7.mjs";
3
3
  import { r as resolveManagedCodexAppServerStartOptions } from "./managed-binary-DwC9wxch.mjs";
4
4
  import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-lgeKKHyw.mjs";
5
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-B8agjie6.mjs";
5
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.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
@@ -1,9 +1,9 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
- import { l as fingerprintCodexPolicy } from "./config-security-D0hAOQRI.mjs";
3
- import { D as nativeHookRelayUnregisterQueue } from "./shared-client-wb1JBldZ.mjs";
4
- import { k as resolveCodexToolAbortTerminalReason } from "./client-BpSxNz4F.mjs";
5
- import { R as normalizeCodexDynamicToolName } from "./thread-requests-BqPhA4Gs.mjs";
6
- import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-gqu3TQOv.mjs";
2
+ import { l as fingerprintCodexPolicy } from "./config-security-DpkGNy5T.mjs";
3
+ import { D as nativeHookRelayUnregisterQueue } from "./shared-client-CNGDTv68.mjs";
4
+ import { k as resolveCodexToolAbortTerminalReason } from "./client-Div-zqnz.mjs";
5
+ import { R as normalizeCodexDynamicToolName } from "./thread-requests-DjyDmCo4.mjs";
6
+ import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-CBYFkNsB.mjs";
7
7
  import { createHash } from "node:crypto";
8
8
  import { addTimerTimeoutGraceMs, finiteSecondsToTimerSafeMilliseconds } from "openclaw/plugin-sdk/number-runtime";
9
9
  import { escapeRegExp } from "openclaw/plugin-sdk/text-utility-runtime";
@@ -1,7 +1,7 @@
1
- import { W as protectCodexAppServerLiveThread, _ as retainSharedCodexAppServerClientIfCurrent, n as captureCodexAppServerClientLifetime } from "./shared-client-wb1JBldZ.mjs";
2
- import { F as getCodexAppServerClientInstanceId } from "./client-BpSxNz4F.mjs";
3
- import { n as getCodexAppServerTurnRouter } from "./turn-router-DdlzuFdm.mjs";
4
- import { a as requestPluginApprovalOutcome } from "./plugin-approval-roundtrip-HbFUm9Pp.mjs";
1
+ import { G as protectCodexAppServerLiveThread, _ as retainSharedCodexAppServerClientIfCurrent, n as captureCodexAppServerClientLifetime } from "./shared-client-CNGDTv68.mjs";
2
+ import { F as getCodexAppServerClientInstanceId } from "./client-Div-zqnz.mjs";
3
+ import { n as getCodexAppServerTurnRouter } from "./turn-router-DM0fRrYI.mjs";
4
+ import { a as requestPluginApprovalOutcome } from "./plugin-approval-roundtrip-CXXXhuKi.mjs";
5
5
  import { i as readCodexMcpToolUiVisibility, n as projectCodexMcpToolMetadata, r as readCodexMcpToolConnectorId, t as projectCodexMcpServerMetadata } from "./mcp-tool-metadata-_sawBkIh.mjs";
6
6
  import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";
7
7
  import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -1,9 +1,9 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.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 { G as readCodexClientSessionMeta } from "./shared-client-wb1JBldZ.mjs";
5
- import { f as unsubscribeCodexThreadBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS } from "./attempt-client-cleanup-TScCVTsk.mjs";
6
- import { b as codexDynamicToolsFingerprint, p as attestCodexRestrictedToolSurfaceMcpServersDisabled } from "./thread-requests-BqPhA4Gs.mjs";
4
+ import { K as readCodexClientSessionMeta } from "./shared-client-CNGDTv68.mjs";
5
+ import { f as unsubscribeCodexThreadBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS } from "./attempt-client-cleanup-BVww-ct8.mjs";
6
+ import { b as codexDynamicToolsFingerprint, p as attestCodexRestrictedToolSurfaceMcpServersDisabled } from "./thread-requests-DjyDmCo4.mjs";
7
7
  import path from "node:path";
8
8
  import os from "node:os";
9
9
  import fs from "node:fs/promises";