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

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 (113) hide show
  1. package/dist/.setup/{account-usage-runtime-BVO-lpvn.mjs → account-usage-runtime-CO_i9_7B.mjs} +3 -3
  2. package/dist/.setup/{app-server-policy-Cog6mm2i.mjs → app-server-policy-CFCEWj0w.mjs} +1 -1
  3. package/dist/.setup/{apply-tJl5mopa.mjs → apply-DvEtGGBB.mjs} +8 -8
  4. package/dist/.setup/{attempt-client-cleanup-DMJWXGxM.mjs → attempt-client-cleanup-Bj4T3tcX.mjs} +5 -5
  5. package/dist/.setup/{attempt-workspace-context-GYPLawX6.mjs → attempt-workspace-context-DxHd71bH.mjs} +1 -1
  6. package/dist/.setup/{auth-binding-830RLAJW.mjs → auth-binding-BY7Fm501.mjs} +1 -1
  7. package/dist/.setup/{auth-cache-key-BW1YeaIk.mjs → auth-cache-key-Do2ZQrNP.mjs} +3 -3
  8. package/dist/.setup/{binding-connection-GTgUj9pi.mjs → binding-connection-hJD5mFkM.mjs} +2 -2
  9. package/dist/.setup/{binding-connection.runtime-RcWR3vQu.mjs → binding-connection.runtime-Dap4qmsz.mjs} +1 -1
  10. package/dist/.setup/{bounded-turn-BQkmyyjB.mjs → bounded-turn-DnxnHHZP.mjs} +10 -10
  11. package/dist/.setup/{bounded-turn-isolation-D8CDrAVX.mjs → bounded-turn-isolation-Iz8EsqFg.mjs} +2 -2
  12. package/dist/.setup/{build-state-CjLCC0wm.mjs → build-state-CpGXWSN4.mjs} +1 -1
  13. package/dist/.setup/{client--P8jwXvA.mjs → client-Bxe8bl-K.mjs} +8 -8
  14. package/dist/.setup/{client-catalog-response-CsDxVVOZ.mjs → client-catalog-response-D-dEl0Ac.mjs} +1 -1
  15. package/dist/.setup/{client-initialize-CjgZcX61.mjs → client-initialize-CPNmLwhL.mjs} +1 -1
  16. package/dist/.setup/{command-dispatch-DqaVBeR3.mjs → command-dispatch-BD9-WK7I.mjs} +1 -1
  17. package/dist/.setup/{command-handlers-i6mEjvfo.mjs → command-handlers-g046iNsp.mjs} +22 -22
  18. package/dist/.setup/{command-rpc-B65jEc0r.mjs → command-rpc-CwpCTOrX.mjs} +11 -11
  19. package/dist/.setup/{compact-AO2H4RJe.mjs → compact-B-qCn3BG.mjs} +13 -13
  20. package/dist/.setup/{computer-use-YUnu0JVx.mjs → computer-use-C0qJq1rh.mjs} +6 -6
  21. package/dist/.setup/{config-BfrAlTMT.mjs → config-BZYTxljj.mjs} +2 -2
  22. package/dist/.setup/{config-runtime-BZRizyuG.mjs → config-runtime-CqCrHEAU.mjs} +1 -1
  23. package/dist/.setup/{conversation-binding-CfnUR-IM.mjs → conversation-binding-CXGGbblk.mjs} +38 -29
  24. package/dist/.setup/{conversation-binding-data-khgW0n-o.mjs → conversation-binding-data-CAKQCqTL.mjs} +1 -1
  25. package/dist/.setup/{conversation-control-B2EpVZEb.mjs → conversation-control-CTZTP_rE.mjs} +3 -3
  26. package/dist/.setup/{doctor-start-options-8uIBXIzR.mjs → doctor-start-options-CpcBuzLb.mjs} +3 -3
  27. package/dist/.setup/{dynamic-tool-build-DOub3CB5.mjs → dynamic-tool-build-BzTaCmlT.mjs} +3 -3
  28. package/dist/.setup/{dynamic-tools-Us5mvq_N.mjs → dynamic-tools-BALvjDwR.mjs} +8 -8
  29. package/dist/.setup/{effective-mcp-catalog-DfUUoeeM.mjs → effective-mcp-catalog-CQbEkKv_.mjs} +6 -6
  30. package/dist/.setup/{ephemeral-turn-B2z0RIeF.mjs → ephemeral-turn-CNm9tN72.mjs} +2 -2
  31. package/dist/.setup/{inference-context-HRw3PDwn.mjs → inference-context-DYpvCEF3.mjs} +1 -1
  32. package/dist/.setup/{inference-proxy-CiLbHMLf.mjs → inference-proxy-e1Rg8kr_.mjs} +1 -1
  33. package/dist/.setup/{installed-probe-lVC1X5ve.mjs → installed-probe-yc_w-vom.mjs} +3 -3
  34. package/dist/.setup/{isolated-completion-CybgD6uU.mjs → isolated-completion-B1mlyhKu.mjs} +5 -5
  35. package/dist/.setup/{managed-binary-DbKvGXKl.mjs → managed-binary-BwzkwiGo.mjs} +2 -2
  36. package/dist/.setup/{mcp-app-session-preparation-zUgpDLWR.mjs → mcp-app-session-preparation-CFbTbxia.mjs} +9 -9
  37. package/dist/.setup/{model-catalog-CWY3wo0B.mjs → model-catalog-BNSZklNP.mjs} +7 -7
  38. package/dist/.setup/{models-CmOBxsKF.mjs → models-HgvyBseb.mjs} +3 -3
  39. package/dist/.setup/native-assignment-repair-BsWKjUjZ.mjs +162 -0
  40. package/dist/.setup/{native-auth-DpZIaY8N.mjs → native-auth-o_vw8KWa.mjs} +3 -3
  41. package/dist/.setup/{native-hook-relay-CocOW9YS.mjs → native-hook-relay-COcu2b4l.mjs} +4 -4
  42. package/dist/.setup/{native-mcp-app-DrQeLxXj.mjs → native-mcp-app-CFyl3R2g.mjs} +5 -5
  43. package/dist/.setup/{native-skill-isolation-DL4-PQa4.mjs → native-skill-isolation-B8cWhSFy.mjs} +3 -3
  44. package/dist/.setup/{native-subagent-monitor-C3CIIaZG.mjs → native-subagent-monitor-LJd5_D5F.mjs} +153 -47
  45. package/dist/.setup/{native-subagent-pending-assignments-CTinVtjo.mjs → native-subagent-pending-assignments-CX-LtYDX.mjs} +49 -11
  46. package/dist/.setup/{native-task-assignments-YJopbaVO.mjs → native-task-assignments-CMd-JiUS.mjs} +4 -4
  47. package/dist/.setup/{node-cli-sessions-BuJnBnEq.mjs → node-cli-sessions-C59CAyDh.mjs} +2 -2
  48. package/dist/.setup/{node-exec-server.runtime-CP7RC1Nd.mjs → node-exec-server.runtime-DvRSh5Oi.mjs} +2 -2
  49. package/dist/.setup/{plan-Bqj6VQvQ.mjs → plan-C3H9W_2P.mjs} +5 -5
  50. package/dist/.setup/{plugin-activation-CXPWe-hl.mjs → plugin-activation-Cj2k3W9n.mjs} +2 -2
  51. package/dist/.setup/{plugin-approval-roundtrip-CGEiG7hG.mjs → plugin-approval-roundtrip-DEbTgtVQ.mjs} +1 -1
  52. package/dist/.setup/{plugin-inventory-DE9wcaeH.mjs → plugin-inventory-BVP15PmN.mjs} +1 -1
  53. package/dist/.setup/{project-doc-thread-config-B0UI3f1D.mjs → project-doc-thread-config-Ds92xu17.mjs} +3 -3
  54. package/dist/.setup/{provider-C_1fMsyD.mjs → provider-C1GuStnr.mjs} +4 -4
  55. package/dist/.setup/{provider-capabilities-C7pYYpvh.mjs → provider-capabilities-DMfkFwZi.mjs} +1 -1
  56. package/dist/.setup/{request-C6U8q2uz.mjs → request-DTgD_jsY.mjs} +5 -5
  57. package/dist/.setup/{run-attempt-BhuXanLv.mjs → run-attempt-DB4AY6QP.mjs} +127 -72
  58. package/dist/.setup/{runtime-artifact-CmLWeyJB.mjs → runtime-artifact-Bn_GvxjU.mjs} +3 -3
  59. package/dist/.setup/{runtime-artifact-connection-DpWlZ02e.mjs → runtime-artifact-connection-DCwh9tgV.mjs} +2 -2
  60. package/dist/.setup/{sandbox-guard-DneAfNye.mjs → sandbox-guard-CrzVgQUn.mjs} +1 -1
  61. package/dist/.setup/{session-binding-BgsWcbdY.mjs → session-binding-Dg0B6Zua.mjs} +38 -12
  62. package/dist/.setup/{session-binding-record-C_THntMe.mjs → session-binding-record-BpWF2Sus.mjs} +2 -2
  63. package/dist/.setup/{session-binding-sidecars-BNSS6WL4.mjs → session-binding-sidecars-C9uEGpDX.mjs} +1 -1
  64. package/dist/.setup/{session-cancellation-DCN1FcBZ.mjs → session-cancellation-Bg94rN6N.mjs} +4 -4
  65. package/dist/.setup/{session-catalog-adoption-ppsLlVLB.mjs → session-catalog-adoption-D6pqS43M.mjs} +5 -5
  66. package/dist/.setup/{session-catalog-archive-CqLRHJ6z.mjs → session-catalog-archive-B-ZpAiiK.mjs} +5 -5
  67. package/dist/.setup/{session-catalog-events-CEi6SuLQ.mjs → session-catalog-events-BmhPYZGw.mjs} +4 -4
  68. package/dist/.setup/{session-catalog-index-qt4UWBua.mjs → session-catalog-index-D7fccO1r.mjs} +8 -8
  69. package/dist/.setup/{session-catalog-index-order-0Zqng2u8.mjs → session-catalog-index-order-DyCNai_t.mjs} +1 -1
  70. package/dist/.setup/{session-catalog-limits-Dc6E0BZz.mjs → session-catalog-limits-CGjAZOTM.mjs} +1 -1
  71. package/dist/.setup/{session-catalog-list-request-CAjoWjaH.mjs → session-catalog-list-request-DGn9LMJY.mjs} +3 -3
  72. package/dist/.setup/{session-catalog-native-projection-BqBYi6kV.mjs → session-catalog-native-projection-HAmuA2-G.mjs} +4 -4
  73. package/dist/.setup/{session-catalog-node-adoption-e9v8mGgx.mjs → session-catalog-node-adoption-C_41f1dK.mjs} +2 -2
  74. package/dist/.setup/{session-catalog-node-continue-H7nrzcUD.mjs → session-catalog-node-continue-FuNSGUYz.mjs} +5 -5
  75. package/dist/.setup/{session-catalog-node-lookup-BrZfDkA8.mjs → session-catalog-node-lookup-BfHfknjz.mjs} +2 -2
  76. package/dist/.setup/{session-catalog-parsing-V6jyFg9g.mjs → session-catalog-parsing-ktmfo9oa.mjs} +1 -1
  77. package/dist/.setup/{session-catalog-projection-CNyhjZze.mjs → session-catalog-projection-C_w9yRCz.mjs} +4 -4
  78. package/dist/.setup/{session-catalog-source-z_mNyQdX.mjs → session-catalog-source-BW46oF7X.mjs} +1 -1
  79. package/dist/.setup/{session-cli-CBGKiqdv.mjs → session-cli-COjTO3Dy.mjs} +1 -1
  80. package/dist/.setup/{session-history-import-BwPKwcNi.mjs → session-history-import-BZHN6RtG.mjs} +4 -4
  81. package/dist/.setup/{session-initialization-Dn3vveGv.mjs → session-initialization-Bztyf-sf.mjs} +1 -1
  82. package/dist/.setup/{session-retirement-RZStisKb.mjs → session-retirement-BHMs5nFf.mjs} +6 -6
  83. package/dist/.setup/{settled-turn-finalizer-gioXygEX.mjs → settled-turn-finalizer-C3OEC7ED.mjs} +5 -5
  84. package/dist/.setup/{shared-client-CkyTrNB8.mjs → shared-client-BelwlhWf.mjs} +84 -33
  85. package/dist/.setup/{side-question-DHPWKgO3.mjs → side-question-Bt2vXr-h.mjs} +21 -21
  86. package/dist/.setup/{source-63MLSmLJ.mjs → source-DQN8P65G.mjs} +4 -4
  87. package/dist/.setup/{thread-lifecycle-run-zCXYFW8W.mjs → thread-lifecycle-run-aBfXzIGf.mjs} +79 -38
  88. package/dist/.setup/{thread-ownership-Bmk5a2Gu.mjs → thread-ownership-DxW6b6fR.mjs} +4 -4
  89. package/dist/.setup/{thread-policy-DYtvZ5Ay.mjs → thread-policy-j-BAwvSk.mjs} +3 -3
  90. package/dist/.setup/{thread-requests-BjawdIVV.mjs → thread-requests-6Dy8hyXF.mjs} +2 -2
  91. package/dist/.setup/{thread-resume-vBShG3-o.mjs → thread-resume-CZxguYjc.mjs} +4 -4
  92. package/dist/.setup/{transcript-mirror-CEQJZlF3.mjs → transcript-mirror-5w4Hx1kt.mjs} +1 -1
  93. package/dist/.setup/{transport-stdio-Bq160Dhv.mjs → transport-stdio-BVeWgcK6.mjs} +1 -1
  94. package/dist/.setup/{transport-websocket-0YqiI_MH.mjs → transport-websocket-2Y-cL8kD.mjs} +1 -1
  95. package/dist/.setup/{turn-router-BGj67FMK.mjs → turn-router-B62dF4CM.mjs} +1 -1
  96. package/dist/.setup/{upstream-session-fork-CWKjpdtW.mjs → upstream-session-fork-5d_7cWPF.mjs} +17 -17
  97. package/dist/.setup/{usage-AhrLFxZP.mjs → usage-DSIlxJrx.mjs} +3 -3
  98. package/dist/.setup/{usage-limit-error-BdNbGJC3.mjs → usage-limit-error-A0XP58jR.mjs} +1 -1
  99. package/dist/.setup/{web-search-provider.runtime-Yk6lnJBG.mjs → web-search-provider.runtime-B-m9u2M1.mjs} +2 -2
  100. package/dist/.setup/{workspace-write-sandbox-probe-DJxOXcF3.mjs → workspace-write-sandbox-probe-D5OfU42L.mjs} +2 -2
  101. package/dist/.source-module-urls/6c41bd629a7a55e13b9ba84558fce30100391f4f229cc77b7c54b07fb0bfe9cf.json +1 -0
  102. package/dist/api.js +3 -3
  103. package/dist/catalog-page.worker.js +1 -1
  104. package/dist/cli-metadata.js +1 -1
  105. package/dist/client-version-api.js +3 -3
  106. package/dist/doctor-contract-api.js +14 -5
  107. package/dist/harness.js +21 -21
  108. package/dist/index.js +68 -58
  109. package/dist/media-understanding-provider.js +2 -2
  110. package/dist/migration-provider-api.js +1 -1
  111. package/dist/provider-discovery.js +1 -1
  112. package/openclaw.plugin.json +5 -0
  113. package/package.json +4 -4
@@ -1,7 +1,7 @@
1
- import { T as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-BW1YeaIk.mjs";
2
- import "./shared-client-CkyTrNB8.mjs";
3
- import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-Bmk5a2Gu.mjs";
4
- import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-C3CIIaZG.mjs";
1
+ import { T as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-Do2ZQrNP.mjs";
2
+ import "./shared-client-BelwlhWf.mjs";
3
+ import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-DxW6b6fR.mjs";
4
+ import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-LJd5_D5F.mjs";
5
5
  //#region extensions/codex/src/app-server/session-cancellation.ts
6
6
  /** Stop owns admitted descendants, without retiring the session or its native history. */
7
7
  async function withCodexSessionDescendantCancellation(bindingStore, params, run) {
@@ -1,8 +1,8 @@
1
- import { T as requireBoundThread, d as boundedCatalogString, o as CatalogParamsError } from "./session-catalog-parsing-V6jyFg9g.mjs";
2
- import { g as sessionBindingIdentity } from "./session-binding-record-C_THntMe.mjs";
1
+ import { T as requireBoundThread, d as boundedCatalogString, o as CatalogParamsError } from "./session-catalog-parsing-ktmfo9oa.mjs";
2
+ import { g as sessionBindingIdentity } from "./session-binding-record-BpWF2Sus.mjs";
3
3
  import { n as codexUpstreamBaseline, t as codexLastTerminalTurnId } from "./session-upstream-marker-D15C9NHp.mjs";
4
- import { r as reclaimCurrentCodexSessionGeneration } from "./session-binding-BgsWcbdY.mjs";
5
- import { adoptionSessionKeyRest, catalogSessionActions } from "./session-catalog-node-adoption-e9v8mGgx.mjs";
4
+ import { r as reclaimCurrentCodexSessionGeneration } from "./session-binding-Dg0B6Zua.mjs";
5
+ import { adoptionSessionKeyRest, catalogSessionActions } from "./session-catalog-node-adoption-C_41f1dK.mjs";
6
6
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { listSessionCatalogEntries, sessionCatalogAdoptedSessionKey, sessionCatalogAdoptedSourceKey } from "openclaw/plugin-sdk/session-catalog";
8
8
  //#region extensions/codex/src/session-catalog-adoption.ts
@@ -150,7 +150,7 @@ async function createOrReuseAdoptedSession(params) {
150
150
  sourceThreadId: params.sourceThread.id,
151
151
  ...params.sourceHomeId ? { sourceHomeId: params.sourceHomeId } : {}
152
152
  };
153
- const { createImportedCodexSession } = await import("./session-history-import-BwPKwcNi.mjs");
153
+ const { createImportedCodexSession } = await import("./session-history-import-BZHN6RtG.mjs");
154
154
  const created = await createImportedCodexSession({
155
155
  runtime: params.api.runtime,
156
156
  bindingStore: params.bindingStore,
@@ -1,9 +1,9 @@
1
- import { o as CatalogParamsError } from "./session-catalog-parsing-V6jyFg9g.mjs";
2
- import { g as sessionBindingIdentity } from "./session-binding-record-C_THntMe.mjs";
1
+ import { o as CatalogParamsError } from "./session-catalog-parsing-ktmfo9oa.mjs";
2
+ import { g as sessionBindingIdentity } from "./session-binding-record-BpWF2Sus.mjs";
3
3
  import { t as assertCodexArchiveDescendantsUnowned } from "./thread-archive-guard-BWjSsA92.mjs";
4
- import "./session-binding-BgsWcbdY.mjs";
5
- import { catalogSessionActions } from "./session-catalog-node-adoption-e9v8mGgx.mjs";
6
- import { isAdoptionSessionKeyForThread, requireIdleThread } from "./session-catalog-adoption-ppsLlVLB.mjs";
4
+ import "./session-binding-Dg0B6Zua.mjs";
5
+ import { catalogSessionActions } from "./session-catalog-node-adoption-C_41f1dK.mjs";
6
+ import { isAdoptionSessionKeyForThread, requireIdleThread } from "./session-catalog-adoption-D6pqS43M.mjs";
7
7
  import { listAgentIds } from "openclaw/plugin-sdk/agent-scope-runtime";
8
8
  import { sessionCatalogAdoptedSourceKey } from "openclaw/plugin-sdk/session-catalog";
9
9
  //#region extensions/codex/src/session-catalog-archive.ts
@@ -1,11 +1,11 @@
1
- import { c as MAX_CWD_LENGTH, d as boundedCatalogString } from "./session-catalog-parsing-V6jyFg9g.mjs";
2
- import { n as defineCodexBuildState } from "./build-state-CjLCC0wm.mjs";
1
+ import { c as MAX_CWD_LENGTH, d as boundedCatalogString } from "./session-catalog-parsing-ktmfo9oa.mjs";
2
+ import { n as defineCodexBuildState } from "./build-state-CpGXWSN4.mjs";
3
3
  import { r as inferCodexAppServerConnectionClass } from "./config-security-clxAZYWX.mjs";
4
4
  import { n as resolveCodexAppServerLocalHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
5
5
  import { n as codexCatalogHomeIdFromCanonicalPath } from "./session-catalog-home-id-vlih0B_g.mjs";
6
6
  import { t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-DRb-niJc.mjs";
7
- import { a as observeCodexCatalogEphemeralThreads, n as codexCatalogSourceForClient } from "./session-catalog-source-z_mNyQdX.mjs";
8
- import { r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-BqBYi6kV.mjs";
7
+ import { a as observeCodexCatalogEphemeralThreads, n as codexCatalogSourceForClient } from "./session-catalog-source-BW46oF7X.mjs";
8
+ import { r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-HAmuA2-G.mjs";
9
9
  import { createHash } from "node:crypto";
10
10
  import { embeddedAgentLog } from "openclaw/plugin-sdk/agent-harness-registration";
11
11
  import path from "node:path";
@@ -1,12 +1,12 @@
1
- import { S as readControlCursor, _ as normalizeLimit, c as MAX_CWD_LENGTH, d as boundedCatalogString, h as filterCatalogPageByTitle, m as codexCatalogThreadStatus, o as CatalogParamsError, p as codexCatalogThreadName } from "./session-catalog-parsing-V6jyFg9g.mjs";
2
- import { n as detachCodexCatalogString, t as CODEX_CATALOG_MAX_ROWS } from "./session-catalog-limits-Dc6E0BZz.mjs";
3
- import { i as retainCodexCatalogRow, n as codexCatalogRowRecency, r as compareCodexCatalogRows, t as CodexCatalogOrdering } from "./session-catalog-index-order-0Zqng2u8.mjs";
4
- import { c as CodexCatalogPersistence, i as CodexCatalogAvailability, l as codexCatalogMetadataPage, r as withCodexCatalogListRequest } from "./session-catalog-list-request-CAjoWjaH.mjs";
5
- import { i as getCodexCatalogSource, s as setCodexCatalogSource } from "./session-catalog-source-z_mNyQdX.mjs";
6
- import { r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-BqBYi6kV.mjs";
7
- import { i as subscribeCodexCatalogEvents } from "./session-catalog-events-CEi6SuLQ.mjs";
1
+ import { S as readControlCursor, _ as normalizeLimit, c as MAX_CWD_LENGTH, d as boundedCatalogString, h as filterCatalogPageByTitle, m as codexCatalogThreadStatus, o as CatalogParamsError, p as codexCatalogThreadName } from "./session-catalog-parsing-ktmfo9oa.mjs";
2
+ import { n as detachCodexCatalogString, t as CODEX_CATALOG_MAX_ROWS } from "./session-catalog-limits-CGjAZOTM.mjs";
3
+ import { i as retainCodexCatalogRow, n as codexCatalogRowRecency, r as compareCodexCatalogRows, t as CodexCatalogOrdering } from "./session-catalog-index-order-DyCNai_t.mjs";
4
+ import { c as CodexCatalogPersistence, i as CodexCatalogAvailability, l as codexCatalogMetadataPage, r as withCodexCatalogListRequest } from "./session-catalog-list-request-DGn9LMJY.mjs";
5
+ import { i as getCodexCatalogSource, s as setCodexCatalogSource } from "./session-catalog-source-BW46oF7X.mjs";
6
+ import { r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-HAmuA2-G.mjs";
7
+ import { i as subscribeCodexCatalogEvents } from "./session-catalog-events-BmhPYZGw.mjs";
8
8
  import { a as reportCodexCatalogSpawnFailure, n as findCodexAppServerSpawnError } from "./spawn-error-CL3n6MAa.mjs";
9
- import { CodexCatalogProjectionCapacityError, CodexCatalogProjections, mergeCodexCatalogRolloutRow, n as readCodexCatalogRollout, projectCodexCatalogPage, r as resolveCodexCatalogRolloutFingerprint, t as codexCatalogRolloutLogicalPath } from "./session-catalog-projection-CNyhjZze.mjs";
9
+ import { CodexCatalogProjectionCapacityError, CodexCatalogProjections, mergeCodexCatalogRolloutRow, n as readCodexCatalogRollout, projectCodexCatalogPage, r as resolveCodexCatalogRolloutFingerprint, t as codexCatalogRolloutLogicalPath } from "./session-catalog-projection-C_w9yRCz.mjs";
10
10
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
11
11
  import { createHash } from "node:crypto";
12
12
  import { isDeepStrictEqual } from "node:util";
@@ -1,4 +1,4 @@
1
- import { t as CODEX_CATALOG_MAX_ROWS } from "./session-catalog-limits-Dc6E0BZz.mjs";
1
+ import { t as CODEX_CATALOG_MAX_ROWS } from "./session-catalog-limits-CGjAZOTM.mjs";
2
2
  //#region extensions/codex/src/session-catalog-index-order.ts
3
3
  function codexCatalogRowRecency(row) {
4
4
  return row.recencyAt ?? row.updatedAt ?? 0;
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./session-binding-sidecars-BNSS6WL4.mjs";
1
+ import { t as __exportAll } from "./session-binding-sidecars-C9uEGpDX.mjs";
2
2
  //#region extensions/codex/src/session-catalog-limits.ts
3
3
  var session_catalog_limits_exports = /* @__PURE__ */ __exportAll({
4
4
  CODEX_CATALOG_MAX_ROWS: () => CODEX_CATALOG_MAX_ROWS,
@@ -1,6 +1,6 @@
1
- import { o as CatalogParamsError, v as parseCatalogPage } from "./session-catalog-parsing-V6jyFg9g.mjs";
2
- import { n as detachCodexCatalogString } from "./session-catalog-limits-Dc6E0BZz.mjs";
3
- import { i as retainCodexCatalogRow, r as compareCodexCatalogRows } from "./session-catalog-index-order-0Zqng2u8.mjs";
1
+ import { o as CatalogParamsError, v as parseCatalogPage } from "./session-catalog-parsing-ktmfo9oa.mjs";
2
+ import { n as detachCodexCatalogString } from "./session-catalog-limits-CGjAZOTM.mjs";
3
+ import { i as retainCodexCatalogRow, r as compareCodexCatalogRows } from "./session-catalog-index-order-DyCNai_t.mjs";
4
4
  import { i as withTimeout } from "./timeout-D0mEWSGG.mjs";
5
5
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { createHash } from "node:crypto";
@@ -1,8 +1,8 @@
1
- import { D as selectCodexCatalogPreviewInput, c as MAX_CWD_LENGTH, d as boundedCatalogString, k as truncateCodexCatalogPreview } from "./session-catalog-parsing-V6jyFg9g.mjs";
1
+ import { D as selectCodexCatalogPreviewInput, c as MAX_CWD_LENGTH, d as boundedCatalogString, k as truncateCodexCatalogPreview } from "./session-catalog-parsing-ktmfo9oa.mjs";
2
2
  import { r as isJsonObject } from "./protocol-CaPAVwe9.mjs";
3
- import { n as detachCodexCatalogString } from "./session-catalog-limits-Dc6E0BZz.mjs";
4
- import { r as copyCodexCatalogSource } from "./session-catalog-source-z_mNyQdX.mjs";
5
- import { t as __exportAll } from "./session-binding-sidecars-BNSS6WL4.mjs";
3
+ import { n as detachCodexCatalogString } from "./session-catalog-limits-CGjAZOTM.mjs";
4
+ import { r as copyCodexCatalogSource } from "./session-catalog-source-BW46oF7X.mjs";
5
+ import { t as __exportAll } from "./session-binding-sidecars-C9uEGpDX.mjs";
6
6
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
7
7
  //#region extensions/codex/src/session-catalog-native-projection.ts
8
8
  var session_catalog_native_projection_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- import { o as CatalogParamsError } from "./session-catalog-parsing-V6jyFg9g.mjs";
1
+ import { o as CatalogParamsError } from "./session-catalog-parsing-ktmfo9oa.mjs";
2
2
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
4
4
  import { parseAgentSessionKey } from "openclaw/plugin-sdk/routing";
@@ -156,7 +156,7 @@ async function createOrReuseNodeAdoptedSession(params) {
156
156
  },
157
157
  afterCreate: async (entry) => {
158
158
  const storePath = resolveStorePath(params.config.session?.store, { agentId: entry.agentId });
159
- const { importCodexThreadHistoryToTranscript } = await import("./transcript-mirror-CEQJZlF3.mjs").then((n) => n.a);
159
+ const { importCodexThreadHistoryToTranscript } = await import("./transcript-mirror-5w4Hx1kt.mjs").then((n) => n.a);
160
160
  await importCodexThreadHistoryToTranscript({
161
161
  thread: params.history.thread,
162
162
  throughTurnId: params.history.throughTurnId,
@@ -1,10 +1,10 @@
1
- import { A as unwrapNodeInvokePayload, b as parseTranscriptPage, d as boundedCatalogString, f as catalogError, g as isInteractiveThreadSource, h as filterCatalogPageByTitle, n as CODEX_APP_SERVER_THREADS_LIST_COMMAND, o as CatalogParamsError, r as CODEX_APP_SERVER_THREAD_TURNS_LIST_COMMAND, u as NODE_INVOKE_TIMEOUT_MS, v as parseCatalogPage } from "./session-catalog-parsing-V6jyFg9g.mjs";
2
- import { n as createCodexCliNodeConversationBindingData } from "./conversation-binding-data-khgW0n-o.mjs";
3
- import { r as CODEX_CLI_SESSION_SOURCE_UPGRADE_MESSAGE, t as CODEX_CLI_SESSION_RESUME_COMMAND } from "./node-cli-sessions-BuJnBnEq.mjs";
1
+ import { A as unwrapNodeInvokePayload, b as parseTranscriptPage, d as boundedCatalogString, f as catalogError, g as isInteractiveThreadSource, h as filterCatalogPageByTitle, n as CODEX_APP_SERVER_THREADS_LIST_COMMAND, o as CatalogParamsError, r as CODEX_APP_SERVER_THREAD_TURNS_LIST_COMMAND, u as NODE_INVOKE_TIMEOUT_MS, v as parseCatalogPage } from "./session-catalog-parsing-ktmfo9oa.mjs";
2
+ import { n as createCodexCliNodeConversationBindingData } from "./conversation-binding-data-CAKQCqTL.mjs";
3
+ import { r as CODEX_CLI_SESSION_SOURCE_UPGRADE_MESSAGE, t as CODEX_CLI_SESSION_RESUME_COMMAND } from "./node-cli-sessions-C59CAyDh.mjs";
4
4
  import { i as withTimeout } from "./timeout-D0mEWSGG.mjs";
5
- import { t as lookupNodeCodexCatalogRecord } from "./session-catalog-node-lookup-BrZfDkA8.mjs";
5
+ import { t as lookupNodeCodexCatalogRecord } from "./session-catalog-node-lookup-BfHfknjz.mjs";
6
6
  import { t as codexLastTerminalTurnId } from "./session-upstream-marker-D15C9NHp.mjs";
7
- import { catalogSessionActions, createOrReuseNodeAdoptedSession, finalizeNodeAdoptedSession, findNodeAdoptedSessionEntry, nodeAdoptedSourceKey, nodeSessionMarker } from "./session-catalog-node-adoption-e9v8mGgx.mjs";
7
+ import { catalogSessionActions, createOrReuseNodeAdoptedSession, finalizeNodeAdoptedSession, findNodeAdoptedSessionEntry, nodeAdoptedSourceKey, nodeSessionMarker } from "./session-catalog-node-adoption-C_41f1dK.mjs";
8
8
  import { resolveSessionAgentIdsStrict } from "openclaw/plugin-sdk/agent-scope-runtime";
9
9
  import { createSessionCatalogAdoptionCoordinator, publishSessionCatalogHost, sessionCatalogAdoptedSourceKey } from "openclaw/plugin-sdk/session-catalog";
10
10
  //#region extensions/codex/src/session-catalog-node-continue.ts
@@ -1,5 +1,5 @@
1
- import { A as unwrapNodeInvokePayload, n as CODEX_APP_SERVER_THREADS_LIST_COMMAND, o as CatalogParamsError, u as NODE_INVOKE_TIMEOUT_MS, v as parseCatalogPage } from "./session-catalog-parsing-V6jyFg9g.mjs";
2
- import "./session-catalog-limits-Dc6E0BZz.mjs";
1
+ import { A as unwrapNodeInvokePayload, n as CODEX_APP_SERVER_THREADS_LIST_COMMAND, o as CatalogParamsError, u as NODE_INVOKE_TIMEOUT_MS, v as parseCatalogPage } from "./session-catalog-parsing-ktmfo9oa.mjs";
2
+ import "./session-catalog-limits-CGjAZOTM.mjs";
3
3
  import { i as withTimeout } from "./timeout-D0mEWSGG.mjs";
4
4
  //#region extensions/codex/src/session-catalog-node-lookup.ts
5
5
  async function lookupNodeCodexCatalogRecord(params) {
@@ -1,5 +1,5 @@
1
1
  import "./protocol-CaPAVwe9.mjs";
2
- import { n as detachCodexCatalogString } from "./session-catalog-limits-Dc6E0BZz.mjs";
2
+ import { n as detachCodexCatalogString } from "./session-catalog-limits-CGjAZOTM.mjs";
3
3
  import { asFiniteNumber, isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
5
5
  //#region extensions/codex/src/app-server/protocol-session-source.ts
@@ -1,8 +1,8 @@
1
- import { D as selectCodexCatalogPreviewInput, O as toCatalogSession, S as readControlCursor, d as boundedCatalogString, k as truncateCodexCatalogPreview } from "./session-catalog-parsing-V6jyFg9g.mjs";
2
- import { n as detachCodexCatalogString } from "./session-catalog-limits-Dc6E0BZz.mjs";
3
- import { n as codexCatalogRowRecency } from "./session-catalog-index-order-0Zqng2u8.mjs";
1
+ import { D as selectCodexCatalogPreviewInput, O as toCatalogSession, S as readControlCursor, d as boundedCatalogString, k as truncateCodexCatalogPreview } from "./session-catalog-parsing-ktmfo9oa.mjs";
2
+ import { n as detachCodexCatalogString } from "./session-catalog-limits-CGjAZOTM.mjs";
3
+ import { n as codexCatalogRowRecency } from "./session-catalog-index-order-DyCNai_t.mjs";
4
4
  import { t as isOpenClawManagedCodexThread } from "./session-catalog-provenance-Dg9s12z-.mjs";
5
- import { i as getCodexCatalogSource, r as copyCodexCatalogSource, s as setCodexCatalogSource } from "./session-catalog-source-z_mNyQdX.mjs";
5
+ import { i as getCodexCatalogSource, r as copyCodexCatalogSource, s as setCodexCatalogSource } from "./session-catalog-source-BW46oF7X.mjs";
6
6
  import { asFiniteNumber, isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { n as defineCodexBuildState } from "./build-state-CjLCC0wm.mjs";
1
+ import { n as defineCodexBuildState } from "./build-state-CpGXWSN4.mjs";
2
2
  //#region extensions/codex/src/session-catalog-source.ts
3
3
  const getSources = defineCodexBuildState("openclaw.codexCatalogSources", () => ({
4
4
  clients: /* @__PURE__ */ new WeakMap(),
@@ -1,4 +1,4 @@
1
- import "./session-catalog-parsing-V6jyFg9g.mjs";
1
+ import "./session-catalog-parsing-ktmfo9oa.mjs";
2
2
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
4
4
  import { normalizeAgentId } from "openclaw/plugin-sdk/routing";
@@ -1,7 +1,7 @@
1
- import { g as sessionBindingIdentity } from "./session-binding-record-C_THntMe.mjs";
2
- import "./session-binding-BgsWcbdY.mjs";
3
- import { r as importCodexThreadHistoryToTranscript } from "./transcript-mirror-CEQJZlF3.mjs";
4
- import { n as prepareCodexSessionInitialization } from "./session-initialization-Dn3vveGv.mjs";
1
+ import { g as sessionBindingIdentity } from "./session-binding-record-BpWF2Sus.mjs";
2
+ import "./session-binding-Dg0B6Zua.mjs";
3
+ import { r as importCodexThreadHistoryToTranscript } from "./transcript-mirror-5w4Hx1kt.mjs";
4
+ import { n as prepareCodexSessionInitialization } from "./session-initialization-Bztyf-sf.mjs";
5
5
  import { resolveStorePath } from "openclaw/plugin-sdk/session-store-runtime";
6
6
  //#region extensions/codex/src/app-server/session-history-import.ts
7
7
  /** Creates a session whose transcript is derived from one verified Codex thread snapshot. */
@@ -1,5 +1,5 @@
1
1
  import { s as validateBindingForWrite } from "./session-binding-record-codec-DvmOI7g_.mjs";
2
- import "./session-binding-BgsWcbdY.mjs";
2
+ import "./session-binding-Dg0B6Zua.mjs";
3
3
  import { createNativeSessionInitializationOwner } from "openclaw/plugin-sdk/agent-harness-session-runtime";
4
4
  //#region extensions/codex/src/app-server/session-initialization.ts
5
5
  const { prepare: prepareCodexSessionInitialization, getRollback: getCodexSessionInitializationRollback } = createNativeSessionInitializationOwner({
@@ -1,10 +1,10 @@
1
- import { T as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-BW1YeaIk.mjs";
1
+ import { T as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-Do2ZQrNP.mjs";
2
2
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-CeyYScUC.mjs";
3
- import { A as hasCodexAppServerLiveThread, N as isCodexAppServerLiveThreadClaimed, z as releaseCodexAppServerLiveThread } from "./shared-client-CkyTrNB8.mjs";
4
- import { f as unsubscribeCodexThreadBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-DMJWXGxM.mjs";
5
- import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-Bmk5a2Gu.mjs";
6
- import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-C3CIIaZG.mjs";
7
- import { t as getCodexSessionInitializationRollback } from "./session-initialization-Dn3vveGv.mjs";
3
+ import { A as hasCodexAppServerLiveThread, B as releaseCodexAppServerLiveThread, N as isCodexAppServerLiveThreadClaimed } from "./shared-client-BelwlhWf.mjs";
4
+ import { f as unsubscribeCodexThreadBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-Bj4T3tcX.mjs";
5
+ import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-DxW6b6fR.mjs";
6
+ import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-LJd5_D5F.mjs";
7
+ import { t as getCodexSessionInitializationRollback } from "./session-initialization-Bztyf-sf.mjs";
8
8
  import { isIncognitoSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
9
9
  import { isNativeSessionDeletionUnresolved, wrapNativeSessionDeletionMutation } from "openclaw/plugin-sdk/agent-harness-session-runtime";
10
10
  //#region extensions/codex/src/app-server/session-retirement.ts
@@ -1,12 +1,12 @@
1
1
  import { i as readMirrorIdentity, n as attachCodexMirrorIdentity } from "./upstream-prompt-provenance-Ccd9MFRJ.mjs";
2
2
  import { l as readCodexMirrorSourceFingerprint, o as fingerprintCodexMirrorSourceMessage } from "./transcript-mirror-attestation-BzUXnrvv.mjs";
3
- import { Q as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-CkyTrNB8.mjs";
4
- import { d as assertCodexPassiveTurnItems } from "./client--P8jwXvA.mjs";
5
- import { runBoundedCodexAppServerTurn } from "./bounded-turn-BQkmyyjB.mjs";
3
+ import { tt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-BelwlhWf.mjs";
4
+ import { d as assertCodexPassiveTurnItems } from "./client-Bxe8bl-K.mjs";
5
+ import { runBoundedCodexAppServerTurn } from "./bounded-turn-DnxnHHZP.mjs";
6
6
  import { t as resolveCodexLocalRuntimeAttribution } from "./local-runtime-attribution-CZz2DJ4q.mjs";
7
- import { t as resolveCodexBoundedTurnIsolation } from "./bounded-turn-isolation-D8CDrAVX.mjs";
7
+ import { t as resolveCodexBoundedTurnIsolation } from "./bounded-turn-isolation-Iz8EsqFg.mjs";
8
8
  import { a as createAttributedCodexAssistantMessage } from "./event-projector-assistant-message-ChOAY7rW.mjs";
9
- import { t as codexTranscriptMirrorRuntime } from "./transcript-mirror-CEQJZlF3.mjs";
9
+ import { t as codexTranscriptMirrorRuntime } from "./transcript-mirror-5w4Hx1kt.mjs";
10
10
  import { t as CodexSettledTurnContext } from "./settled-turn-context-BPL6D3RO.mjs";
11
11
  import { createNativeSessionBindingScope } from "openclaw/plugin-sdk/agent-harness-session-runtime";
12
12
  import { isSilentReplyText } from "openclaw/plugin-sdk/reply-runtime";
@@ -1,24 +1,24 @@
1
1
  import { r as isJsonObject } from "./protocol-CaPAVwe9.mjs";
2
- import { n as defineCodexBuildState, t as codexBuildSymbol } from "./build-state-CjLCC0wm.mjs";
2
+ import { n as defineCodexBuildState, t as codexBuildSymbol } from "./build-state-CpGXWSN4.mjs";
3
3
  import { t as CODEX_APP_SERVER_AUTH_PROVIDER } from "./auth-profile-selection-Bp5PDk3W.mjs";
4
4
  import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
5
5
  import { a as withEphemeralCodexAuthStore, i as withClearedEnvironmentVariables, n as resolveCodexAppServerLocalHomeDir, t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
6
6
  import { a as resolveCodexAppServerStartOptionsForAgent, d as readCodexEffectiveConfig, o as resolveCodexComputerUseConfig, t as codexAppServerStartOptionsKey, u as CODEX_SESSION_OVERRIDABLE_LAYER_TYPES } from "./config-options-DMFZkd3X.mjs";
7
- import { a as isManagedCodexDesktopCommand, b as resolveMacOSDesktopCodexBundledMarketplaceCandidates, c as readInstalledCodexAppServerStatus, f as resolveManagedCodexNativeCommand, i as assertInstalledCodexAppServerVersion, l as rejectInstalledCodexAppServer, r as INSTALLED_CODEX_START_TIMEOUT_MS, u as resolveManagedCodexAppServerStartOptions, v as resolveFirstExistingMacOSDesktopCodexBundledMarketplacePath, x as resolveMacOSDesktopCodexComputerUseServiceAppCandidates, y as resolveMacOSDesktopCodexAppPathCandidates } from "./managed-binary-DbKvGXKl.mjs";
8
- import { A as waitForUnclaimedSharedClientStartup, C as releaseSharedClientEntry, D as retireSharedCodexAppServerClientIfCurrent, E as retirePendingSharedClientEntryIfUnclaimed, M as waitForCodexDesktopGeneration, N as readCodexDesktopArtifactTreeFingerprint, S as rekeySharedClientEntry, _ as observeAcquire, a as readCodexCliAuthFileApiKey, b as recordSharedClientAcquireBoundary, c as resolveCodexAppServerPreparedApiKeyCacheKey, d as createCodexAppServerStartupLifetime, f as getCurrentSharedClientEntry, g as isSharedCodexFallbackJoinError, i as fingerprintTokenAuthProfileCacheKey, l as SharedCodexFallbackJoinError, m as getSharedCodexAppServerClientState, n as CODEX_AUTH_JSON_FILENAME, o as readFirstNonEmptyEnv, p as getOrCreateSharedClientEntry, r as fingerprintApiKeyAuthProfileCacheKey, s as resolveCodexAppServerFallbackApiKeyCacheKey, t as CODEX_APP_SERVER_API_KEY_ENV_VARS, u as closeSharedClientEntryIfUnclaimed, v as observeSharedClientAcquire, w as retainSharedClientEntry, x as refreshSharedClientIdleRetirement, y as ownCodexStartup } from "./auth-cache-key-BW1YeaIk.mjs";
9
- import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-Bq160Dhv.mjs";
7
+ import { a as isManagedCodexDesktopCommand, b as resolveMacOSDesktopCodexBundledMarketplaceCandidates, c as readInstalledCodexAppServerStatus, f as resolveManagedCodexNativeCommand, i as assertInstalledCodexAppServerVersion, l as rejectInstalledCodexAppServer, r as INSTALLED_CODEX_START_TIMEOUT_MS, u as resolveManagedCodexAppServerStartOptions, v as resolveFirstExistingMacOSDesktopCodexBundledMarketplacePath, x as resolveMacOSDesktopCodexComputerUseServiceAppCandidates, y as resolveMacOSDesktopCodexAppPathCandidates } from "./managed-binary-BwzkwiGo.mjs";
8
+ import { A as waitForUnclaimedSharedClientStartup, C as releaseSharedClientEntry, D as retireSharedCodexAppServerClientIfCurrent, E as retirePendingSharedClientEntryIfUnclaimed, M as waitForCodexDesktopGeneration, N as readCodexDesktopArtifactTreeFingerprint, S as rekeySharedClientEntry, _ as observeAcquire, a as readCodexCliAuthFileApiKey, b as recordSharedClientAcquireBoundary, c as resolveCodexAppServerPreparedApiKeyCacheKey, d as createCodexAppServerStartupLifetime, f as getCurrentSharedClientEntry, g as isSharedCodexFallbackJoinError, i as fingerprintTokenAuthProfileCacheKey, l as SharedCodexFallbackJoinError, m as getSharedCodexAppServerClientState, n as CODEX_AUTH_JSON_FILENAME, o as readFirstNonEmptyEnv, p as getOrCreateSharedClientEntry, r as fingerprintApiKeyAuthProfileCacheKey, s as resolveCodexAppServerFallbackApiKeyCacheKey, t as CODEX_APP_SERVER_API_KEY_ENV_VARS, u as closeSharedClientEntryIfUnclaimed, v as observeSharedClientAcquire, w as retainSharedClientEntry, x as refreshSharedClientIdleRetirement, y as ownCodexStartup } from "./auth-cache-key-Do2ZQrNP.mjs";
9
+ import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-BVeWgcK6.mjs";
10
10
  import { n as CodexAppServerAuthProfileUnavailableError, r as formatCodexAuthProfileUnavailableMessage } from "./auth-profile-recovery-BREezV0L.mjs";
11
11
  import { a as codexPrewriteRejectionCause } from "./rpc-error-DemqqaxE.mjs";
12
12
  import { i as withTimeout } from "./timeout-D0mEWSGG.mjs";
13
13
  import { n as readCodexSessionMeta } from "./session-catalog-provenance-Dg9s12z-.mjs";
14
- import { n as observeCodexCatalogClient } from "./session-catalog-events-CEi6SuLQ.mjs";
15
- import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-BZRizyuG.mjs";
14
+ import { n as observeCodexCatalogClient } from "./session-catalog-events-BmhPYZGw.mjs";
15
+ import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-CqCrHEAU.mjs";
16
16
  import { a as resolveCodexAppServerAuthProfileStore, i as resolveCodexAppServerAuthProfileIdForAgent, r as resolveCodexAppServerAuthProfileId, t as isCodexAppServerNativeAuthProfile } from "./auth-profile-auwzSwwy.mjs";
17
17
  import { i as isCodexResponsesOAuthCredential, n as createCodexResponsesOAuth, o as resolveCodexResponsesOAuthProfileFingerprint, r as isCodexResponsesOAuth, t as CODEX_RESPONSES_OAUTH_PROVIDER } from "./responses-oauth-CCV7aVYF.mjs";
18
- import { t as CodexAppServerClient } from "./client--P8jwXvA.mjs";
19
- import { a as isUnsupportedCodexAppServerVersionError } from "./client-initialize-CjgZcX61.mjs";
20
- import { n as isCodexWebSocketOpenFailure } from "./transport-websocket-0YqiI_MH.mjs";
21
- import { t as __exportAll } from "./session-binding-sidecars-BNSS6WL4.mjs";
18
+ import { t as CodexAppServerClient } from "./client-Bxe8bl-K.mjs";
19
+ import { a as isUnsupportedCodexAppServerVersionError } from "./client-initialize-CPNmLwhL.mjs";
20
+ import { n as isCodexWebSocketOpenFailure } from "./transport-websocket-2Y-cL8kD.mjs";
21
+ import { t as __exportAll } from "./session-binding-sidecars-C9uEGpDX.mjs";
22
22
  import { asOptionalRecord, isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
23
23
  import { createHash, randomUUID } from "node:crypto";
24
24
  import { isDeepStrictEqual } from "node:util";
@@ -1507,9 +1507,63 @@ function requireCodexThreadForkSettings(client, threadId) {
1507
1507
  };
1508
1508
  }
1509
1509
  //#endregion
1510
+ //#region extensions/codex/src/app-server/client-runtime-limits.ts
1511
+ /** Match Codex's native grace window without retaining inactive conversations indefinitely. */
1512
+ const LIVE_THREAD_IDLE_TIMEOUT_MS = 18e5;
1513
+ /** Return a deterministic error before Codex cancels its ten-second external-auth request. */
1514
+ const EXTERNAL_AUTH_REFRESH_TIMEOUT_MS = 9e3;
1515
+ //#endregion
1516
+ //#region extensions/codex/src/app-server/client-thread-closure.ts
1517
+ const MAX_CLOSED_THREAD_RECEIPTS = 256;
1518
+ const closureState = defineCodexBuildState("openclaw.codexAppServerClosedThreads", () => ({
1519
+ closedThreadsByClient: /* @__PURE__ */ new WeakMap(),
1520
+ observedClients: /* @__PURE__ */ new WeakSet()
1521
+ }))();
1522
+ function recordCodexAppServerThreadClosed(client, threadId) {
1523
+ const receipts = closureState.closedThreadsByClient.get(client) ?? /* @__PURE__ */ new Set();
1524
+ receipts.delete(threadId);
1525
+ receipts.add(threadId);
1526
+ while (receipts.size > MAX_CLOSED_THREAD_RECEIPTS) {
1527
+ const oldest = receipts.values().next();
1528
+ if (oldest.done) break;
1529
+ receipts.delete(oldest.value);
1530
+ }
1531
+ closureState.closedThreadsByClient.set(client, receipts);
1532
+ }
1533
+ function ensureCodexAppServerThreadClosureTracking(client) {
1534
+ if (closureState.observedClients.has(client)) return;
1535
+ closureState.observedClients.add(client);
1536
+ client.addNotificationHandler((notification) => {
1537
+ const params = notification.params;
1538
+ const threadId = typeof params === "object" && params !== null && "threadId" in params ? params.threadId : void 0;
1539
+ if (notification.method === "thread/closed" && typeof threadId === "string") recordCodexAppServerThreadClosed(client, threadId);
1540
+ });
1541
+ client.addCloseHandler(() => closureState.closedThreadsByClient.delete(client));
1542
+ }
1543
+ function clearCodexAppServerThreadClosed(client, threadId) {
1544
+ closureState.closedThreadsByClient.get(client)?.delete(threadId);
1545
+ }
1546
+ function wasCodexAppServerThreadClosed(client, threadId) {
1547
+ return closureState.closedThreadsByClient.get(client)?.has(threadId) === true;
1548
+ }
1549
+ //#endregion
1510
1550
  //#region extensions/codex/src/app-server/client-thread-owner.ts
1511
- function createThreadOwnerToken(threadId, onInvalidated) {
1551
+ /** Background custody can survive projection replacement only under its creation policy. */
1552
+ function isThreadBackgroundOnly(runtime, threadId, configFingerprint) {
1553
+ if (!runtime || runtime.closed || !runtime.protectedThreads.has(threadId)) return false;
1554
+ const claim = runtime.claimedThreads.get(threadId);
1555
+ const policy = claim?.configFingerprint ?? runtime.retainedThreads.get(threadId)?.configFingerprint;
1556
+ return (!claim || claim.releaseAfterProtection !== void 0) && (configFingerprint === void 0 || policy === configFingerprint);
1557
+ }
1558
+ function isThreadClaimed(runtime, threadId) {
1559
+ return Boolean(runtime && !runtime.closed && runtime.claimedThreads.has(threadId));
1560
+ }
1561
+ function isThreadProtected(runtime, threadId) {
1562
+ return Boolean(runtime && !runtime.closed && runtime.protectedThreads.has(threadId));
1563
+ }
1564
+ function createThreadOwnerToken(threadId, onInvalidated, configFingerprint) {
1512
1565
  const owner = {
1566
+ configFingerprint,
1513
1567
  invalidated: false,
1514
1568
  invalidate: () => {
1515
1569
  if (owner.invalidated) return;
@@ -1744,12 +1798,6 @@ function defaultThreadRelease(client) {
1744
1798
  await unsubscribeCodexAppServerLiveThread(client, threadId, 5e3, assertCurrent, withCurrent);
1745
1799
  };
1746
1800
  }
1747
- /** Match Codex's native grace window without retaining inactive conversations indefinitely. */
1748
- const CODEX_APP_SERVER_LIVE_THREAD_IDLE_TIMEOUT_MS = 18e5;
1749
- /** Native-child parents are active ownership, so only otherwise-idle threads count against this cap. */
1750
- const CODEX_APP_SERVER_LIVE_THREAD_MAX_IDLE = 64;
1751
- /** Return a deterministic error before Codex cancels its ten-second external-auth request. */
1752
- const CODEX_EXTERNAL_AUTH_REFRESH_TIMEOUT_MS = 9e3;
1753
1801
  const { configuredClients, physicalThreadReleases, claimedThreadReleaseTokens } = defineCodexBuildState("openclaw.codexAppServerClientRuntime", () => ({
1754
1802
  configuredClients: /* @__PURE__ */ new WeakMap(),
1755
1803
  physicalThreadReleases: /* @__PURE__ */ new WeakMap(),
@@ -1774,7 +1822,7 @@ function prepareCodexWorkspaceReferences(client, threadId, reference) {
1774
1822
  }
1775
1823
  /** Immutable declarations are data owned by this physical client, never retained executors. */
1776
1824
  async function readCodexClientSessionMeta(client, sessionsRoot, boundRolloutPath, threadId) {
1777
- return readCodexWorkspaceSessionMeta(client, configuredClients.get(client), sessionsRoot, boundRolloutPath, threadId, CODEX_APP_SERVER_LIVE_THREAD_MAX_IDLE);
1825
+ return readCodexWorkspaceSessionMeta(client, configuredClients.get(client), sessionsRoot, boundRolloutPath, threadId, 64);
1778
1826
  }
1779
1827
  /** Installs one auth-refresh handler and one rate-limit observer per physical client. */
1780
1828
  function ensureCodexAppServerClientRuntime(client, context, onThreadOwnershipChange) {
@@ -1799,6 +1847,7 @@ function ensureCodexAppServerClientRuntime(client, context, onThreadOwnershipCha
1799
1847
  workspaceReferences: /* @__PURE__ */ new Map()
1800
1848
  };
1801
1849
  configuredClients.set(client, runtime);
1850
+ ensureCodexAppServerThreadClosureTracking(client);
1802
1851
  initializeCodexClientForkSettings(client);
1803
1852
  client.addCloseHandler(() => {
1804
1853
  runtime.closed = true;
@@ -1828,7 +1877,7 @@ function ensureCodexAppServerClientRuntime(client, context, onThreadOwnershipCha
1828
1877
  ...previousAccountId ? { previousAccountId } : {},
1829
1878
  ...runtime.context.authProfileStore ? { authProfileStore: runtime.context.authProfileStore } : {},
1830
1879
  config: runtime.context.config
1831
- }), CODEX_EXTERNAL_AUTH_REFRESH_TIMEOUT_MS, "Codex app-server ChatGPT token refresh timed out before its external-auth deadline. Retry the request; if it persists, sign in again with OpenClaw.");
1880
+ }), EXTERNAL_AUTH_REFRESH_TIMEOUT_MS, "Codex app-server ChatGPT token refresh timed out before its external-auth deadline. Retry the request; if it persists, sign in again with OpenClaw.");
1832
1881
  if (runtime.closed) throw new Error("Codex app-server client closed during ChatGPT token refresh.");
1833
1882
  runtime.authHandoff = {
1834
1883
  accessFingerprint: fingerprintTokenAuthProfileCacheKey(tokens.accessToken),
@@ -1908,7 +1957,7 @@ async function releaseRetainedThread(client, runtime, threadId, assertCurrent, w
1908
1957
  return true;
1909
1958
  } catch (error) {
1910
1959
  if (!runtime.closed && !transition.invalidated && runtime.releasingThreads.get(threadId) === transition && !runtime.retainedThreads.has(threadId) && !runtime.claimedThreads.has(threadId)) {
1911
- if (retained.ephemeralPolicy === void 0) retained.expiresAt = performance.now() + CODEX_APP_SERVER_LIVE_THREAD_IDLE_TIMEOUT_MS;
1960
+ if (retained.ephemeralPolicy === void 0) retained.expiresAt = performance.now() + LIVE_THREAD_IDLE_TIMEOUT_MS;
1912
1961
  runtime.retainedThreads.set(threadId, retained);
1913
1962
  }
1914
1963
  throw error;
@@ -1925,7 +1974,7 @@ async function evictExpiredRetainedThreads(client, runtime) {
1925
1974
  async function evictExcessIdleThreads(client, runtime) {
1926
1975
  const idleThreads = () => [...runtime.retainedThreads].filter(([threadId, thread]) => thread.ephemeralPolicy === void 0 && !runtime.protectedThreads.has(threadId));
1927
1976
  let idleThreadIds = idleThreads();
1928
- while (idleThreadIds.length > CODEX_APP_SERVER_LIVE_THREAD_MAX_IDLE) {
1977
+ while (idleThreadIds.length > 64) {
1929
1978
  await releaseRetainedThread(client, runtime, idleThreadIds[0][0]);
1930
1979
  idleThreadIds = idleThreads();
1931
1980
  }
@@ -1943,13 +1992,14 @@ async function retainCodexAppServerLiveThread(client, threadId, releaseThread, c
1943
1992
  return false;
1944
1993
  }
1945
1994
  const previousOwner = runtime.retainedThreads.get(threadId)?.ownerToken;
1995
+ clearCodexAppServerThreadClosed(client, threadId);
1946
1996
  runtime.retainedThreads.delete(threadId);
1947
1997
  const retained = {
1948
1998
  ownerToken,
1949
1999
  configFingerprint,
1950
2000
  ephemeralPolicy,
1951
2001
  serviceTier,
1952
- expiresAt: ephemeralPolicy === void 0 ? performance.now() + CODEX_APP_SERVER_LIVE_THREAD_IDLE_TIMEOUT_MS : Number.POSITIVE_INFINITY,
2002
+ expiresAt: ephemeralPolicy === void 0 ? performance.now() + LIVE_THREAD_IDLE_TIMEOUT_MS : Number.POSITIVE_INFINITY,
1953
2003
  release: (releaseThread ? physicalThreadReleases.get(releaseThread) ?? releaseThread : void 0) ?? defaultThreadRelease(client)
1954
2004
  };
1955
2005
  runtime.retainedThreads.set(threadId, retained);
@@ -1996,14 +2046,14 @@ async function claimCodexAppServerLiveThread(client, threadId, onInvalidated) {
1996
2046
  return;
1997
2047
  }
1998
2048
  return claimCodexAppServerThreadOwnership(client, runtime, threadId, runtime.retainedThreads.get(threadId) ?? {
1999
- expiresAt: performance.now() + CODEX_APP_SERVER_LIVE_THREAD_IDLE_TIMEOUT_MS,
2049
+ expiresAt: performance.now() + 18e5,
2000
2050
  release: defaultThreadRelease(client)
2001
2051
  }, onInvalidated);
2002
2052
  }
2003
2053
  function claimCodexAppServerThreadOwnership(client, runtime, threadId, retained, onInvalidated) {
2004
2054
  const previousClaim = runtime.claimedThreads.get(threadId);
2005
2055
  runtime.retainedThreads.delete(threadId);
2006
- const claimed = createThreadOwnerToken(threadId, onInvalidated);
2056
+ const claimed = createThreadOwnerToken(threadId, onInvalidated, retained.configFingerprint);
2007
2057
  runtime.claimedThreads.set(threadId, claimed);
2008
2058
  previousClaim?.invalidate();
2009
2059
  retained.ownerToken?.invalidate();
@@ -2088,13 +2138,14 @@ function hasCodexAppServerLiveThread(client, threadId) {
2088
2138
  return hasThreadOwnership(configuredClients.get(client), threadId);
2089
2139
  }
2090
2140
  function isCodexAppServerLiveThreadClaimed(client, threadId) {
2091
- const runtime = configuredClients.get(client);
2092
- return runtime !== void 0 && !runtime.closed && runtime.claimedThreads.has(threadId);
2141
+ return isThreadClaimed(configuredClients.get(client), threadId);
2142
+ }
2143
+ function readCodexAppServerThreadOwnershipState(client) {
2144
+ return configuredClients.get(client);
2093
2145
  }
2094
2146
  /** Native commands and children can still need an otherwise-idle subscription. */
2095
2147
  function isCodexAppServerLiveThreadProtected(client, threadId) {
2096
- const runtime = configuredClients.get(client);
2097
- return runtime !== void 0 && !runtime.closed && runtime.protectedThreads.has(threadId);
2148
+ return isThreadProtected(configuredClients.get(client), threadId);
2098
2149
  }
2099
2150
  function hasCodexAppServerSiblingThreadWork(client, threadId) {
2100
2151
  return hasSiblingThreadWork(configuredClients.get(client), threadId);
@@ -2172,7 +2223,7 @@ function protectCodexAppServerLiveThread(client, threadId) {
2172
2223
  if (releaseThreadProtection(runtime, threadId)) {
2173
2224
  const retained = runtime.retainedThreads.get(threadId);
2174
2225
  if (retained) {
2175
- if (retained.ephemeralPolicy === void 0) retained.expiresAt = performance.now() + CODEX_APP_SERVER_LIVE_THREAD_IDLE_TIMEOUT_MS;
2226
+ if (retained.ephemeralPolicy === void 0) retained.expiresAt = performance.now() + LIVE_THREAD_IDLE_TIMEOUT_MS;
2176
2227
  runtime.retainedThreads.delete(threadId);
2177
2228
  runtime.retainedThreads.set(threadId, retained);
2178
2229
  }
@@ -2444,8 +2495,8 @@ async function prepareCodexInferenceRoute(params) {
2444
2495
  throw new Error("Codex inference route limit reached; start a fresh managed native connection before retrying.");
2445
2496
  }
2446
2497
  pending = Promise.all([
2447
- import("./inference-proxy-CiLbHMLf.mjs"),
2448
- import("./native-subagent-monitor-C3CIIaZG.mjs").then((n) => n.n),
2498
+ import("./inference-proxy-e1Rg8kr_.mjs"),
2499
+ import("./native-subagent-monitor-LJd5_D5F.mjs").then((n) => n.n),
2449
2500
  import("./inference-dispatch-C2zVSnrr.mjs")
2450
2501
  ]).then(([{ createCodexInferenceProxy }, native, { createCodexInferenceModelBinding }]) => {
2451
2502
  assertClient();
@@ -3192,7 +3243,7 @@ async function startInitializedCodexAppServerClientOnce(params) {
3192
3243
  }
3193
3244
  throw error;
3194
3245
  }
3195
- const runtimeArtifactModule = params.runtimeArtifactMode ? await import("./runtime-artifact-CmLWeyJB.mjs") : void 0;
3246
+ const runtimeArtifactModule = params.runtimeArtifactMode ? await import("./runtime-artifact-Bn_GvxjU.mjs") : void 0;
3196
3247
  const runtimeArtifactBeforeStart = runtimeArtifactModule ? await runtimeArtifactModule.captureCodexAppServerRuntimeArtifactBeforeStart({
3197
3248
  startOptions,
3198
3249
  spawnIdentity: resolveCodexAppServerSpawnIdentity(startOptions),
@@ -3378,4 +3429,4 @@ function clearSharedCodexAppServerClientIfCurrentAndUnclaimed(client) {
3378
3429
  };
3379
3430
  }
3380
3431
  //#endregion
3381
- export { resolveBundledComputerUseMarketplacePath as $, hasCodexAppServerLiveThread as A, retainCodexAppServerLiveThread as B, getCodexInferenceThread as C, consumeCodexAppServerLiveThread as D, claimCodexAppServerLiveThread as E, prepareCodexWorkspaceReferences as F, rememberCodexRateLimitsRead as G, unsubscribeCodexAppServerLiveThread as H, protectCodexAppServerLiveThread as I, recordCodexTurnForkSettings as J, createCodexEphemeralThreadPolicy as K, readCodexClientSessionMeta as L, isCodexAppServerClientRuntimeLive as M, isCodexAppServerLiveThreadClaimed as N, ensureCodexAppServerClientRuntime as O, isCodexAppServerLiveThreadProtected as P, resolveCodexAppServerPreparedAuthHandoff as Q, readCodexLiveThreadEphemeralPolicy as R, bindCodexInferenceThread as S, prepareCodexInferenceThreadConfig as T, readCodexRateLimitsRevision as U, revertCodexAppServerLiveThreadInstructions as V, readRecentCodexRateLimits as W, reconcileCodexComputerUseStartArtifacts as X, requireCodexThreadForkSettings as Y, resolveCodexAppServerAuthAccountCacheKey as Z, CodexThreadBindingConflictError as _, createIsolatedCodexAppServerClient as a, assertNotSymlink as at, nativeHookRelayUnregisterQueue as b, readCodexAppServerClientDesktopGeneration as c, TURN_TERMINAL_SETTLEMENT_TIMEOUT_MS as ct, releaseCodexAppServerClientLease as d, resolveCodexStartupTimeoutMs as dt, resolveClientManagedBundledMarketplacePath as et, releaseLeasedSharedCodexAppServerClient as f, withCodexStartupTimeout as ft, CodexAdoptedThreadActiveError as g, withCodexAppServerClientRequestScope as h, clearSharedCodexAppServerClientIfCurrentAndWait as i, ensureCodexComputerUseSharedPluginCache as it, hasCodexAppServerSiblingThreadWork as j, forgetCodexWorkspaceReferences as k, readCodexAppServerClientDesktopGenerationFingerprint as l, isCodexAppServerStartupError as lt, shared_client_exports as m, captureSharedCodexAppServerCatalogLifetime as n, isLegacyCodexComputerUsePluginDisabled as nt, getLeasedSharedCodexAppServerClient as o, CodexAppServerStartupError as ot, retainSharedCodexAppServerClientIfCurrent as p, recordCodexThreadForkSettings as q, clearSharedCodexAppServerClientIfCurrentAndUnclaimed as r, resolveManagedCodexComputerUseConfig as rt, getSharedCodexAppServerClient as s, TURN_FINALIZE_DRAIN_ABORT_GRACE_MS as st, captureCodexAppServerClientLifetime as t, hasLegacyCodexComputerUseMcpPolicy as tt, readCodexAppServerClientProcessIdentity as u, resolveCodexGatewayTimeoutWithGraceMs as ut, CodexThreadClientReplacementError as v, getCodexInferenceThreadQualification as w, assertCodexInferenceRouteConfig as x, CodexThreadStartRequestError as y, releaseCodexAppServerLiveThread as z };
3432
+ export { reconcileCodexComputerUseStartArtifacts as $, hasCodexAppServerLiveThread as A, releaseCodexAppServerLiveThread as B, getCodexInferenceThread as C, consumeCodexAppServerLiveThread as D, claimCodexAppServerLiveThread as E, prepareCodexWorkspaceReferences as F, readRecentCodexRateLimits as G, revertCodexAppServerLiveThreadInstructions as H, protectCodexAppServerLiveThread as I, isThreadBackgroundOnly as J, rememberCodexRateLimitsRead as K, readCodexAppServerThreadOwnershipState as L, isCodexAppServerClientRuntimeLive as M, isCodexAppServerLiveThreadClaimed as N, ensureCodexAppServerClientRuntime as O, isCodexAppServerLiveThreadProtected as P, requireCodexThreadForkSettings as Q, readCodexClientSessionMeta as R, bindCodexInferenceThread as S, prepareCodexInferenceThreadConfig as T, unsubscribeCodexAppServerLiveThread as U, retainCodexAppServerLiveThread as V, readCodexRateLimitsRevision as W, recordCodexThreadForkSettings as X, wasCodexAppServerThreadClosed as Y, recordCodexTurnForkSettings as Z, CodexThreadBindingConflictError as _, createIsolatedCodexAppServerClient as a, isLegacyCodexComputerUsePluginDisabled as at, nativeHookRelayUnregisterQueue as b, readCodexAppServerClientDesktopGeneration as c, assertNotSymlink as ct, releaseCodexAppServerClientLease as d, TURN_TERMINAL_SETTLEMENT_TIMEOUT_MS as dt, resolveCodexAppServerAuthAccountCacheKey as et, releaseLeasedSharedCodexAppServerClient as f, isCodexAppServerStartupError as ft, CodexAdoptedThreadActiveError as g, withCodexAppServerClientRequestScope as h, withCodexStartupTimeout as ht, clearSharedCodexAppServerClientIfCurrentAndWait as i, hasLegacyCodexComputerUseMcpPolicy as it, hasCodexAppServerSiblingThreadWork as j, forgetCodexWorkspaceReferences as k, readCodexAppServerClientDesktopGenerationFingerprint as l, CodexAppServerStartupError as lt, shared_client_exports as m, resolveCodexStartupTimeoutMs as mt, captureSharedCodexAppServerCatalogLifetime as n, resolveBundledComputerUseMarketplacePath as nt, getLeasedSharedCodexAppServerClient as o, resolveManagedCodexComputerUseConfig as ot, retainSharedCodexAppServerClientIfCurrent as p, resolveCodexGatewayTimeoutWithGraceMs as pt, createCodexEphemeralThreadPolicy as q, clearSharedCodexAppServerClientIfCurrentAndUnclaimed as r, resolveClientManagedBundledMarketplacePath as rt, getSharedCodexAppServerClient as s, ensureCodexComputerUseSharedPluginCache as st, captureCodexAppServerClientLifetime as t, resolveCodexAppServerPreparedAuthHandoff as tt, readCodexAppServerClientProcessIdentity as u, TURN_FINALIZE_DRAIN_ABORT_GRACE_MS as ut, CodexThreadClientReplacementError as v, getCodexInferenceThreadQualification as w, assertCodexInferenceRouteConfig as x, CodexThreadStartRequestError as y, readCodexLiveThreadEphemeralPolicy as z };