@openclaw/codex 2026.10.6 → 2026.10.8

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 (112) hide show
  1. package/README.md +2 -0
  2. package/dist/.setup/{account-usage-runtime-E3SrjJVn.mjs → account-usage-runtime-lUj2JqSj.mjs} +3 -3
  3. package/dist/.setup/{app-server-policy-V8zuN8q_.mjs → app-server-policy-CF-JwGUD.mjs} +1 -1
  4. package/dist/.setup/{apply-C3s-1Zxe.mjs → apply-DjTVE_db.mjs} +8 -8
  5. package/dist/.setup/{attempt-client-cleanup-BVww-ct8.mjs → attempt-client-cleanup-BmPBqnW3.mjs} +5 -5
  6. package/dist/.setup/{attempt-workspace-context-BkA0W8Jy.mjs → attempt-workspace-context-EAeScFrg.mjs} +1 -1
  7. package/dist/.setup/{auth-binding-BFTkrP_b.mjs → auth-binding-D1TJwzWf.mjs} +1 -1
  8. package/dist/.setup/{auth-cache-key-CXK7tmkb.mjs → auth-cache-key-8VTsPn2f.mjs} +3 -3
  9. package/dist/.setup/{binding-connection-C0t9TBX_.mjs → binding-connection-BIo1-hoT.mjs} +2 -2
  10. package/dist/.setup/{binding-connection.runtime-Wdm5G_bw.mjs → binding-connection.runtime-C5yDsKBQ.mjs} +1 -1
  11. package/dist/.setup/{bounded-turn-vdpL2efh.mjs → bounded-turn-DByEneJg.mjs} +11 -11
  12. package/dist/.setup/{bounded-turn-isolation-CIQJykuM.mjs → bounded-turn-isolation-BRNgfoRl.mjs} +2 -2
  13. package/dist/.setup/{build-state-DPMC9C_U.mjs → build-state-vxQdf_74.mjs} +1 -1
  14. package/dist/.setup/{client-Div-zqnz.mjs → client-BTWv2cJe.mjs} +8 -8
  15. package/dist/.setup/{client-catalog-response-Dtob_lVt.mjs → client-catalog-response-CEZTmNz3.mjs} +1 -1
  16. package/dist/.setup/{command-dispatch-ByO36LmS.mjs → command-dispatch-rxpyy4f6.mjs} +1 -1
  17. package/dist/.setup/{command-handlers-CJqo6LZS.mjs → command-handlers-D6utyBA8.mjs} +22 -22
  18. package/dist/.setup/{command-rpc-Co0UzT-T.mjs → command-rpc-CloxIlVK.mjs} +11 -11
  19. package/dist/.setup/{compact-CzNBg4cQ.mjs → compact-CIJFn4Bi.mjs} +13 -13
  20. package/dist/.setup/{computer-use-BcDrQlxi.mjs → computer-use-vLGHqSOu.mjs} +7 -7
  21. package/dist/.setup/{config-LQemoqTL.mjs → config-d0gOFYEk.mjs} +2 -2
  22. package/dist/.setup/{config-runtime-DGB1-VbB.mjs → config-runtime-BUH-IDVE.mjs} +1 -1
  23. package/dist/.setup/{conversation-binding-Dcv7_rs-.mjs → conversation-binding-BUw0IM5Z.mjs} +15 -15
  24. package/dist/.setup/{conversation-binding-data-GRGSgAro.mjs → conversation-binding-data-BqzGWkPW.mjs} +1 -1
  25. package/dist/.setup/{conversation-control-BtPxevoK.mjs → conversation-control-D5qVEey9.mjs} +3 -3
  26. package/dist/.setup/{doctor-start-options-C28ek2hD.mjs → doctor-start-options-DyLrwtq-.mjs} +3 -3
  27. package/dist/.setup/{dynamic-tool-build-DjbDZzOJ.mjs → dynamic-tool-build-OWTT0wP-.mjs} +3 -3
  28. package/dist/.setup/{dynamic-tools-75qoSOch.mjs → dynamic-tools-CygReZGj.mjs} +8 -8
  29. package/dist/.setup/{effective-mcp-catalog-Dz0J8iAj.mjs → effective-mcp-catalog-B_4Dtkdg.mjs} +6 -6
  30. package/dist/.setup/{ephemeral-turn-K_d99r9P.mjs → ephemeral-turn-B1Na_xCj.mjs} +2 -2
  31. package/dist/.setup/{inference-proxy-DSnaS-uS.mjs → inference-proxy-BZgN5W8m.mjs} +3 -3
  32. package/dist/.setup/{isolated-completion-dNt4kRLw.mjs → isolated-completion-DGCmR0Q8.mjs} +5 -5
  33. package/dist/.setup/{managed-binary-DwC9wxch.mjs → managed-binary-Boj8_lWV.mjs} +1 -1
  34. package/dist/.setup/{mcp-app-session-preparation-C7LyxbAm.mjs → mcp-app-session-preparation-DFvoViz9.mjs} +8 -8
  35. package/dist/.setup/{model-catalog-BRJ7RMXY.mjs → model-catalog-CCr0L7T4.mjs} +7 -7
  36. package/dist/.setup/{models-CusrgpiY.mjs → models-CPdqFOZS.mjs} +3 -3
  37. package/dist/.setup/native-assignment-repair-BjS4uyQr.mjs +162 -0
  38. package/dist/.setup/{native-auth-CveRfTpz.mjs → native-auth-TAGxZP-r.mjs} +3 -3
  39. package/dist/.setup/{native-hook-relay-BvwSj5bt.mjs → native-hook-relay-VHeLdZXU.mjs} +4 -4
  40. package/dist/.setup/{native-mcp-app-DDEtVQED.mjs → native-mcp-app-ly1JuStw.mjs} +5 -5
  41. package/dist/.setup/{native-skill-isolation-Cx2AkUco.mjs → native-skill-isolation--6M-3BWV.mjs} +3 -3
  42. package/dist/.setup/{native-subagent-monitor-CBYFkNsB.mjs → native-subagent-monitor-CuNglHrq.mjs} +161 -53
  43. package/dist/.setup/{native-subagent-pending-assignments-DmVhedNs.mjs → native-subagent-pending-assignments-BAOzwy85.mjs} +49 -11
  44. package/dist/.setup/{native-task-assignments-DYL9uxNe.mjs → native-task-assignments-Dap5NqiR.mjs} +4 -4
  45. package/dist/.setup/{node-cli-sessions-BxVYZNuY.mjs → node-cli-sessions-BQNAFnCa.mjs} +2 -2
  46. package/dist/.setup/{node-exec-server.runtime-8RehgPdQ.mjs → node-exec-server.runtime-B-4ogz9C.mjs} +2 -2
  47. package/dist/.setup/{plan-BKFbfVsV.mjs → plan-CqI4m0CC.mjs} +5 -5
  48. package/dist/.setup/{plugin-activation-BgfNFH2L.mjs → plugin-activation-Dbq2m2gh.mjs} +2 -2
  49. package/dist/.setup/{plugin-approval-roundtrip-CXXXhuKi.mjs → plugin-approval-roundtrip-DIE4DZ9S.mjs} +1 -1
  50. package/dist/.setup/{plugin-inventory-OhiCoyPH.mjs → plugin-inventory-CZLnMaxf.mjs} +1 -1
  51. package/dist/.setup/{project-doc-thread-config-D_sWbxFR.mjs → project-doc-thread-config-BYFXSVGk.mjs} +3 -3
  52. package/dist/.setup/{provider-BVV8SWlx.mjs → provider-CBlKf65x.mjs} +4 -4
  53. package/dist/.setup/{provider-capabilities-B-pTlDsf.mjs → provider-capabilities-BIyUe_cz.mjs} +10 -3
  54. package/dist/.setup/{request-m-H-7FMu.mjs → request-6bus8ebp.mjs} +5 -5
  55. package/dist/.setup/{run-attempt-Ch1emiZE.mjs → run-attempt-BcePYT3A.mjs} +168 -86
  56. package/dist/.setup/{runtime-artifact-CCPLKFGR.mjs → runtime-artifact-Ch7fCcgJ.mjs} +3 -3
  57. package/dist/.setup/{runtime-artifact-connection-dFoSOKy7.mjs → runtime-artifact-connection-C3ootnwd.mjs} +2 -2
  58. package/dist/.setup/{sandbox-guard-Cf9XMRrg.mjs → sandbox-guard-CwOc36_1.mjs} +1 -1
  59. package/dist/.setup/{session-binding-BDnNz-Co.mjs → session-binding-_RE7vtVN.mjs} +38 -12
  60. package/dist/.setup/{session-binding-record-C2kDBZhx.mjs → session-binding-record-O62ZRFhy.mjs} +2 -2
  61. package/dist/.setup/{session-binding-sidecars-DijNZb31.mjs → session-binding-sidecars-CAHe3enw.mjs} +1 -1
  62. package/dist/.setup/{session-catalog-adoption-Cl6fHxS5.mjs → session-catalog-adoption-DuChFASf.mjs} +5 -5
  63. package/dist/.setup/{session-catalog-archive-CUU7jEkO.mjs → session-catalog-archive-Bs5cP3zm.mjs} +5 -5
  64. package/dist/.setup/{session-catalog-events-BBV3DMG7.mjs → session-catalog-events-C8i0HBz5.mjs} +4 -4
  65. package/dist/.setup/{session-catalog-index-order-B30rjUEJ.mjs → session-catalog-index-order-CTSrDiE1.mjs} +1 -1
  66. package/dist/.setup/{session-catalog-index-B00GIRi3.mjs → session-catalog-index-zqaZhwr2.mjs} +8 -8
  67. package/dist/.setup/{session-catalog-limits-Daqt3JLk.mjs → session-catalog-limits-9Ay62KQ0.mjs} +1 -1
  68. package/dist/.setup/{session-catalog-list-request-SJyGz02j.mjs → session-catalog-list-request-uKKvUIoN.mjs} +3 -3
  69. package/dist/.setup/{session-catalog-native-projection-BJupfCyt.mjs → session-catalog-native-projection-C6KOqnIb.mjs} +4 -4
  70. package/dist/.setup/{session-catalog-node-adoption-D11N0CMr.mjs → session-catalog-node-adoption-BjYvYtAd.mjs} +2 -2
  71. package/dist/.setup/{session-catalog-node-continue-Ct62GeL1.mjs → session-catalog-node-continue-BEI9D3ev.mjs} +5 -5
  72. package/dist/.setup/{session-catalog-node-lookup-DQVe6vhs.mjs → session-catalog-node-lookup-CBomNvUN.mjs} +2 -2
  73. package/dist/.setup/{session-catalog-parsing-B4OyhylL.mjs → session-catalog-parsing-DmZmgRou.mjs} +1 -1
  74. package/dist/.setup/{session-catalog-projection-CYgFTaYm.mjs → session-catalog-projection-DD5m0grG.mjs} +4 -4
  75. package/dist/.setup/{session-catalog-source-Xt6-hNns.mjs → session-catalog-source-0x1LVwV-.mjs} +1 -1
  76. package/dist/.setup/{session-cli-BoJSZfGd.mjs → session-cli-B1f7NqXo.mjs} +1 -1
  77. package/dist/.setup/{session-history-import-DgwRu2eD.mjs → session-history-import-BhOzqhyI.mjs} +4 -4
  78. package/dist/.setup/{session-history.worker-DJQfek5p.mjs → session-history.worker-D2v5yRcB.mjs} +5 -3
  79. package/dist/.setup/{session-initialization-BjVtsTzi.mjs → session-initialization-Bwe0Bikj.mjs} +1 -1
  80. package/dist/.setup/{session-retirement-DIqF1vQ4.mjs → session-retirement-BIFmgIgn.mjs} +6 -6
  81. package/dist/.setup/{settled-turn-finalizer-dVv34G_E.mjs → settled-turn-finalizer-9WZ-Hnwo.mjs} +5 -5
  82. package/dist/.setup/{shared-client-CNGDTv68.mjs → shared-client-Bo9MCCKj.mjs} +59 -14
  83. package/dist/.setup/{side-question-D1Wa21s9.mjs → side-question-GmfBHNHK.mjs} +17 -17
  84. package/dist/.setup/{source-DyVuYlTN.mjs → source-C4Al9cJx.mjs} +4 -4
  85. package/dist/.setup/{thread-lifecycle-run-DjSfTw6v.mjs → thread-lifecycle-run-avZbRAjm.mjs} +56 -20
  86. package/dist/.setup/{thread-ownership-BBsOFzCM.mjs → thread-ownership-C5Hpc-Q1.mjs} +4 -4
  87. package/dist/.setup/{thread-policy-BEiS7ITh.mjs → thread-policy-BFLbIpIt.mjs} +3 -3
  88. package/dist/.setup/{thread-requests-DjyDmCo4.mjs → thread-requests-pX9_RXpU.mjs} +2 -2
  89. package/dist/.setup/{thread-resume-BqOca2Iy.mjs → thread-resume-LBLXiIEh.mjs} +4 -4
  90. package/dist/.setup/{transcript-mirror-DVEzdOs0.mjs → transcript-mirror-CPdcVWTn.mjs} +1 -1
  91. package/dist/.setup/{transport-stdio-lgeKKHyw.mjs → transport-stdio-BsXQmXll.mjs} +1 -1
  92. package/dist/.setup/{transport-websocket-CEBjEtFP.mjs → transport-websocket-B5mq2Iq2.mjs} +1 -1
  93. package/dist/.setup/{turn-router-DM0fRrYI.mjs → turn-router-Ba0-h2NE.mjs} +1 -1
  94. package/dist/.setup/{upstream-session-fork-CxgShpwe.mjs → upstream-session-fork-C34T_h_K.mjs} +17 -17
  95. package/dist/.setup/{usage-DV8T9Yau.mjs → usage-BHTnwsjV.mjs} +3 -3
  96. package/dist/.setup/{usage-limit-error-ryR1PGou.mjs → usage-limit-error-YNy7uINJ.mjs} +1 -1
  97. package/dist/.setup/{web-search-provider.runtime-DkciK2gS.mjs → web-search-provider.runtime-BOqY-zot.mjs} +2 -2
  98. package/dist/.setup/{workspace-write-sandbox-probe-DvfWTvuR.mjs → workspace-write-sandbox-probe-DB6Y3XLX.mjs} +2 -2
  99. package/dist/.source-module-urls/a8ffe2b9525179f031f130700992add0f356b5fe3e562c8e70b2801696da5134.json +1 -0
  100. package/dist/api.js +3 -3
  101. package/dist/catalog-page.worker.js +1 -1
  102. package/dist/cli-metadata.js +1 -1
  103. package/dist/doctor-contract-api.js +14 -5
  104. package/dist/harness.js +20 -20
  105. package/dist/index.js +68 -58
  106. package/dist/media-understanding-provider.js +2 -2
  107. package/dist/migration-provider-api.js +1 -1
  108. package/dist/provider-discovery.js +1 -1
  109. package/dist/session-history-worker-runtime.js +4 -2
  110. package/dist/session-history.worker.js +1 -1
  111. package/openclaw.plugin.json +5 -0
  112. package/package.json +5 -5
@@ -1,7 +1,7 @@
1
- import { m as sessionBindingIdentity } from "./session-binding-record-C2kDBZhx.mjs";
2
- import { S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-CXK7tmkb.mjs";
3
- import { G as protectCodexAppServerLiveThread } from "./shared-client-CNGDTv68.mjs";
4
- import "./session-binding-BDnNz-Co.mjs";
1
+ import { m as sessionBindingIdentity } from "./session-binding-record-O62ZRFhy.mjs";
2
+ import { S as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-8VTsPn2f.mjs";
3
+ import { G as protectCodexAppServerLiveThread } from "./shared-client-Bo9MCCKj.mjs";
4
+ import "./session-binding-_RE7vtVN.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";
7
7
  import { assignMcpCatalogSafeServerNames } from "openclaw/plugin-sdk/agent-harness-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-C7LyxbAm.mjs");
110
+ const { prepareCodexMcpAppSession } = await import("./mcp-app-session-preparation-DFvoViz9.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-DDEtVQED.mjs").then((n) => n.n);
131
+ const { createNativeMcpRuntime } = await import("./native-mcp-app-ly1JuStw.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-Div-zqnz.mjs";
3
- import { n as getCodexAppServerTurnRouter } from "./turn-router-DM0fRrYI.mjs";
2
+ import { x as readCodexTurnCompletedNotification } from "./client-BTWv2cJe.mjs";
3
+ import { n as getCodexAppServerTurnRouter } from "./turn-router-Ba0-h2NE.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";
@@ -1,7 +1,7 @@
1
1
  import { t as codexWebSocketDataToBuffer } from "./websocket-data-XlRvt8Ys.mjs";
2
2
  import { CODEX_INFERENCE_TRANSPORT_FAILURE, authorizationFailure, createCodexInferenceDispatch, isTerminalResponse, n as createUploadAdmission, readProxyBody, t as MAX_BODY_BYTES } from "./inference-dispatch-CO6tTs4q.mjs";
3
3
  import { t as createCodexInferenceContext } from "./inference-context-DNlGwzwy.mjs";
4
- import { createDeferred, createPermitPool } from "openclaw/plugin-sdk/concurrency-runtime";
4
+ import { createDeferred, createPermitPool, runInDetachedAsyncContext } from "openclaw/plugin-sdk/concurrency-runtime";
5
5
  import { Writable } from "node:stream";
6
6
  import { WebSocket, WebSocketServer, rejectWebSocketUpgrade } from "openclaw/plugin-sdk/websocket-runtime";
7
7
  import { createServer } from "node:http";
@@ -181,7 +181,7 @@ async function createCodexInferenceProxy(params) {
181
181
  const abort = () => controller.abort();
182
182
  req.once("aborted", abort);
183
183
  res.once("close", abort);
184
- (async () => {
184
+ runInDetachedAsyncContext(async () => {
185
185
  try {
186
186
  const { target, path } = resolveTarget(req);
187
187
  if (req.method !== "POST") throw new Error(CODEX_INFERENCE_TRANSPORT_FAILURE);
@@ -274,7 +274,7 @@ async function createCodexInferenceProxy(params) {
274
274
  upload?.releaseModelExecution();
275
275
  resident?.finish();
276
276
  }
277
- })();
277
+ });
278
278
  });
279
279
  server.maxConnections = 128;
280
280
  server.requestTimeout = REQUEST_TIMEOUT_MS;
@@ -1,10 +1,10 @@
1
1
  import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
2
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";
3
+ import "./config-d0gOFYEk.mjs";
4
+ import { at as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-Bo9MCCKj.mjs";
5
+ import { f as assertCodexPassiveTurnItems } from "./client-BTWv2cJe.mjs";
6
+ import { runBoundedCodexAppServerTurn } from "./bounded-turn-DByEneJg.mjs";
7
+ import { t as resolveCodexBoundedTurnIsolation } from "./bounded-turn-isolation-BRNgfoRl.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,4 +1,4 @@
1
- import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";
1
+ import { t as __exportAll } from "./session-binding-sidecars-CAHe3enw.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
4
4
  import { constants, existsSync, realpathSync } from "node:fs";
@@ -1,16 +1,16 @@
1
- import { m as sessionBindingIdentity } from "./session-binding-record-C2kDBZhx.mjs";
1
+ import { m as sessionBindingIdentity } from "./session-binding-record-O62ZRFhy.mjs";
2
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-C0t9TBX_.mjs";
7
- import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-LQemoqTL.mjs";
6
+ import { i as resolveCodexBindingAppServerConnection } from "./binding-connection-BIo1-hoT.mjs";
7
+ import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-d0gOFYEk.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-CNGDTv68.mjs";
10
- import { d as mergeCodexThreadConfigs } from "./project-doc-thread-config-D_sWbxFR.mjs";
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-BBsOFzCM.mjs";
13
- import { a as prepareCodexPluginThreadConfigStartupProvider, o as resolveCodexPluginThreadConfigStartupPolicy, t as startOrResumeThread } from "./thread-lifecycle-run-DjSfTw6v.mjs";
9
+ import { I as ensureCodexAppServerClientRuntime, c as getLeasedSharedCodexAppServerClient, h as releaseLeasedSharedCodexAppServerClient } from "./shared-client-Bo9MCCKj.mjs";
10
+ import { d as mergeCodexThreadConfigs } from "./project-doc-thread-config-BYFXSVGk.mjs";
11
+ import { i as resolveCodexSessionBinding } from "./session-binding-_RE7vtVN.mjs";
12
+ import { a as rollbackCodexAppServerBindingSubscription, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-C5Hpc-Q1.mjs";
13
+ import { a as prepareCodexPluginThreadConfigStartupProvider, o as resolveCodexPluginThreadConfigStartupPolicy, t as startOrResumeThread } from "./thread-lifecycle-run-avZbRAjm.mjs";
14
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";
@@ -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-CXK7tmkb.mjs";
5
- import { a as withCodexAppServerJsonClient } from "./request-m-H-7FMu.mjs";
6
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
4
+ import { w as retireSharedCodexAppServerClientIfCurrent } from "./auth-cache-key-8VTsPn2f.mjs";
5
+ import { a as withCodexAppServerJsonClient } from "./request-6bus8ebp.mjs";
6
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-BUH-IDVE.mjs";
7
7
  import { a as resolveCodexAppServerAuthProfileStore, r as resolveCodexAppServerAuthProfileId } from "./auth-profile-CgHQ8Vot.mjs";
8
- import { r as captureSharedCodexAppServerCatalogLifetime } from "./shared-client-CNGDTv68.mjs";
8
+ import { r as captureSharedCodexAppServerCatalogLifetime } from "./shared-client-Bo9MCCKj.mjs";
9
9
  import { i as isCodexResponsesOAuthCredential } from "./responses-oauth-twnuTaAa.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";
10
+ import { a as isCodexAppServerIndeterminateRequestCancellationError } from "./client-BTWv2cJe.mjs";
11
+ import { n as listAllCodexAppServerModels } from "./models-CPdqFOZS.mjs";
12
+ import { probeCodexNativeAuth } from "./native-auth-TAGxZP-r.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-Div-zqnz.mjs";
1
+ import { d as assertCodexModelListResponse } from "./client-BTWv2cJe.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-CNGDTv68.mjs").then((n) => n.v);
33
- const { requestCodexAppServerClientJson } = await import("./request-m-H-7FMu.mjs").then((n) => n.i);
32
+ const { getLeasedSharedCodexAppServerClient, releaseLeasedSharedCodexAppServerClient } = await import("./shared-client-Bo9MCCKj.mjs").then((n) => n.v);
33
+ const { requestCodexAppServerClientJson } = await import("./request-6bus8ebp.mjs").then((n) => n.i);
34
34
  const client = await getLeasedSharedCodexAppServerClient({
35
35
  startOptions: options.startOptions,
36
36
  timeoutMs,
@@ -0,0 +1,162 @@
1
+ import { c as readCodexNativeSubagentSubmissions, g as codexNativeSubagentHistoryConnectionFingerprint, l as codexNativeSubagentRunId, r as normalizeNativePendingAssignments } from "./native-subagent-pending-assignments-BAOzwy85.mjs";
2
+ import { a as readStoredCodexAppServerBinding } from "./session-binding-record-codec-CWQXr9os.mjs";
3
+ import { i as CODEX_APP_SERVER_BINDING_NAMESPACE } from "./session-binding-meta-Lkm5Lpf4.mjs";
4
+ import { asOptionalRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
5
+ import { isDeepStrictEqual } from "node:util";
6
+ //#region extensions/codex/src/migration/native-assignment-repair.ts
7
+ async function normalizeRow(entry, params, warnings) {
8
+ const raw = asOptionalRecord(entry.value);
9
+ if (raw?.nativeSubagentAssignments === void 0) return;
10
+ const stored = readStoredCodexAppServerBinding(raw);
11
+ if (!stored) {
12
+ warnings.push(`Preserved Codex native assignments in ${entry.key}; the binding could not be decoded. Inspect it before retrying Doctor.`);
13
+ return;
14
+ }
15
+ if (stored.state !== "active") return;
16
+ let inventory;
17
+ try {
18
+ inventory = normalizeNativePendingAssignments(raw.nativeSubagentAssignments);
19
+ } catch {
20
+ warnings.push(`Preserved malformed Codex native assignments in ${entry.key}; inspect the binding before retrying Doctor.`);
21
+ return;
22
+ }
23
+ let assignments = inventory?.assignments ?? [];
24
+ const originalAssignments = assignments;
25
+ const identity = /^(session-key|session):([a-z0-9][a-z0-9_-]{0,63}):(.+)$/u.exec(entry.key);
26
+ const binding = asOptionalRecord(raw.binding);
27
+ const fingerprint = codexNativeSubagentHistoryConnectionFingerprint(stored.binding);
28
+ if (assignments.length > 0 && identity && stored.sessionId && binding && raw.retired === void 0 && (identity[1] === "session-key" ? /^[A-Za-z0-9_-]{43}$/u.test(identity[3]) : identity[3] === stored.sessionId) && binding.connectionScope === void 0 && binding.supervisionSourceThreadId === void 0 && binding.pendingSupervisionBranch === void 0 && (binding.authProfileId === void 0 || typeof binding.authProfileId === "string") && fingerprint && params.context.readSessionIdentityEvidenceBatch) try {
29
+ const agentId = identity[2];
30
+ const [evidence] = await params.context.readSessionIdentityEvidenceBatch([{
31
+ agentId,
32
+ sessionId: stored.sessionId
33
+ }]);
34
+ if (evidence?.state === "absent") assignments = [];
35
+ else if (evidence?.state === "current") {
36
+ const { getSessionEntryByIdAsync, resolveStorePath } = await import("openclaw/plugin-sdk/session-store-runtime");
37
+ const { bindingStoreKey } = await import("./session-binding-record-O62ZRFhy.mjs").then((n) => n.h);
38
+ const current = await getSessionEntryByIdAsync({
39
+ agentId,
40
+ sessionId: stored.sessionId,
41
+ env: params.env,
42
+ storePath: resolveStorePath(params.config.session?.store, {
43
+ agentId,
44
+ env: params.env
45
+ }),
46
+ readConsistency: "latest"
47
+ });
48
+ if (!current || current.entry.sessionId !== stored.sessionId || current.sessionKey !== evidence.sessionKey) throw new Error("Requester ownership is unresolved");
49
+ const currentKey = bindingStoreKey({
50
+ kind: "session",
51
+ agentId,
52
+ sessionId: current.entry.sessionId,
53
+ ...identity[1] === "session-key" ? { sessionKey: current.sessionKey } : {}
54
+ });
55
+ let unknownLifecycle = false;
56
+ assignments = assignments.filter((assignment) => {
57
+ if (currentKey !== entry.key || assignment.owner.sessionId !== current.entry.sessionId || assignment.owner.connectionFingerprint !== fingerprint) return false;
58
+ if (!assignment.owner.lifecycleRevision || !current.entry.lifecycleRevision) {
59
+ unknownLifecycle = true;
60
+ return true;
61
+ }
62
+ return assignment.owner.lifecycleRevision === current.entry.lifecycleRevision;
63
+ });
64
+ if (unknownLifecycle) warnings.push(`Preserved Codex assignments with unknown lifecycle evidence in ${entry.key}.`);
65
+ } else warnings.push(`Preserved Codex assignments with unknown requester evidence in ${entry.key}.`);
66
+ } catch {
67
+ warnings.push(`Could not establish requester ownership for Codex native assignments in ${entry.key}; preserved them for a later Doctor repair.`);
68
+ }
69
+ else if (assignments.length > 0) warnings.push(`Preserved Codex native assignments in ${entry.key}; ownership inspection prerequisites are incomplete. Inspect the binding before retrying Doctor.`);
70
+ const next = assignments.length ? {
71
+ version: 1,
72
+ assignments
73
+ } : void 0;
74
+ if (isDeepStrictEqual(next, raw.nativeSubagentAssignments)) return;
75
+ const { nativeSubagentAssignments: _previous, ...value } = raw;
76
+ const retired = originalAssignments.filter((assignment) => !assignments.includes(assignment));
77
+ if (retired.length) try {
78
+ const submissions = readCodexNativeSubagentSubmissions(raw.nativeSubagentSubmissions);
79
+ if (submissions) {
80
+ const receipts = submissions.receipts.filter((receipt) => !retired.some((assignment) => isDeepStrictEqual(submissions.owner, assignment.owner) && submissions.owner.parentThreadId === assignment.nativeParentThreadId && receipt.childThreadId === assignment.childThreadId && (receipt.submissionId === assignment.nativeTurnId || codexNativeSubagentRunId(receipt.childThreadId, receipt.submissionId) === assignment.runId) && (!assignment.submission || isDeepStrictEqual(receipt, assignment.submission))));
81
+ if (receipts.length !== submissions.receipts.length) {
82
+ delete value.nativeSubagentSubmissions;
83
+ if (receipts.length) value.nativeSubagentSubmissions = {
84
+ ...submissions,
85
+ receipts
86
+ };
87
+ }
88
+ }
89
+ } catch {
90
+ warnings.push(`Preserved uncertain native submission receipts in ${entry.key}; inspect them before retrying Doctor.`);
91
+ }
92
+ return {
93
+ entry,
94
+ value: {
95
+ ...value,
96
+ ...next ? { nativeSubagentAssignments: next } : {}
97
+ }
98
+ };
99
+ }
100
+ async function* inspect(params) {
101
+ const read = params.context.readPluginStateEntriesInKeyRange;
102
+ if (!read) return;
103
+ let after;
104
+ while (true) {
105
+ const rows = read(CODEX_APP_SERVER_BINDING_NAMESPACE, {
106
+ prefix: "",
107
+ after,
108
+ limit: 512
109
+ });
110
+ const replacements = [];
111
+ const warnings = [];
112
+ for (const entry of rows) {
113
+ const replacement = await normalizeRow(entry, params, warnings);
114
+ if (replacement) replacements.push(replacement);
115
+ }
116
+ if (replacements.length || warnings.length) yield {
117
+ replacements,
118
+ warnings
119
+ };
120
+ if (rows.length < 512) return;
121
+ after = rows.at(-1)?.key;
122
+ }
123
+ }
124
+ const codexNativeAssignmentRepair = {
125
+ id: "codex-native-assignment-repair",
126
+ label: "Codex native pending assignment repair",
127
+ doctorOnly: true,
128
+ phase: "after-session-repair",
129
+ collectBackupResources: () => [],
130
+ async detectLegacyState(params) {
131
+ for await (const _ of inspect(params)) return { preview: ["- Repair duplicate or obsolete Codex native pending assignments"] };
132
+ return null;
133
+ },
134
+ async migrateLegacyState(params) {
135
+ const changes = [];
136
+ const warnings = [];
137
+ const repair = params.context.repairPluginStateEntries;
138
+ if (!repair) return {
139
+ changes,
140
+ warnings: ["Codex native assignment repair requires locked SQLite maintenance ownership"],
141
+ warningDisposition: "recoverable"
142
+ };
143
+ for await (const inspected of inspect(params)) {
144
+ warnings.push(...inspected.warnings);
145
+ if (!inspected.replacements.length) continue;
146
+ try {
147
+ const result = await repair(CODEX_APP_SERVER_BINDING_NAMESPACE, inspected.replacements);
148
+ changes.push(...result.changes, `Repaired native pending assignments in ${inspected.replacements.length} Codex binding(s)`);
149
+ warnings.push(...result.warnings);
150
+ } catch {
151
+ warnings.push("Codex native assignment bindings could not be repaired; preserved them for a later openclaw doctor --fix pass.");
152
+ }
153
+ }
154
+ return {
155
+ changes,
156
+ warnings,
157
+ ...warnings.length ? { warningDisposition: "recoverable" } : {}
158
+ };
159
+ }
160
+ };
161
+ //#endregion
162
+ export { codexNativeAssignmentRepair };
@@ -1,8 +1,8 @@
1
1
  import { d as readCodexPluginConfig } from "./config-parsing-CVK2Q463.mjs";
2
2
  import { n as isCodexAppServerProxyLaunch, t as buildCodexLoginStatusArgs } from "./launch-args-DbFCehO7.mjs";
3
- import { r as resolveManagedCodexAppServerStartOptions } from "./managed-binary-DwC9wxch.mjs";
4
- import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-lgeKKHyw.mjs";
5
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-DGB1-VbB.mjs";
3
+ import { r as resolveManagedCodexAppServerStartOptions } from "./managed-binary-Boj8_lWV.mjs";
4
+ import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-BsXQmXll.mjs";
5
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-BUH-IDVE.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
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";
3
+ import { D as nativeHookRelayUnregisterQueue } from "./shared-client-Bo9MCCKj.mjs";
4
+ import { k as resolveCodexToolAbortTerminalReason } from "./client-BTWv2cJe.mjs";
5
+ import { R as normalizeCodexDynamicToolName } from "./thread-requests-pX9_RXpU.mjs";
6
+ import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-CuNglHrq.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,9 +1,9 @@
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";
1
+ import { G as protectCodexAppServerLiveThread, _ as retainSharedCodexAppServerClientIfCurrent, n as captureCodexAppServerClientLifetime } from "./shared-client-Bo9MCCKj.mjs";
2
+ import { F as getCodexAppServerClientInstanceId } from "./client-BTWv2cJe.mjs";
3
+ import { n as getCodexAppServerTurnRouter } from "./turn-router-Ba0-h2NE.mjs";
4
+ import { a as requestPluginApprovalOutcome } from "./plugin-approval-roundtrip-DIE4DZ9S.mjs";
5
5
  import { i as readCodexMcpToolUiVisibility, n as projectCodexMcpToolMetadata, r as readCodexMcpToolConnectorId, t as projectCodexMcpServerMetadata } from "./mcp-tool-metadata-_sawBkIh.mjs";
6
- import { t as __exportAll } from "./session-binding-sidecars-DijNZb31.mjs";
6
+ import { t as __exportAll } from "./session-binding-sidecars-CAHe3enw.mjs";
7
7
  import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { z } from "zod";
9
9
  import { loadAgentHarnessMcpConfig, prepareHarnessNativeMcpAppPreview } from "openclaw/plugin-sdk/agent-harness-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 { 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";
4
+ import { K as readCodexClientSessionMeta } from "./shared-client-Bo9MCCKj.mjs";
5
+ import { f as unsubscribeCodexThreadBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS } from "./attempt-client-cleanup-BmPBqnW3.mjs";
6
+ import { b as codexDynamicToolsFingerprint, p as attestCodexRestrictedToolSurfaceMcpServersDisabled } from "./thread-requests-pX9_RXpU.mjs";
7
7
  import path from "node:path";
8
8
  import os from "node:os";
9
9
  import fs from "node:fs/promises";