@openclaw/codex 2026.10.5-beta.3 → 2026.10.10-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/README.md +10 -3
  2. package/dist/.setup/{account-usage-runtime-CBR8imwK.mjs → account-usage-runtime-DDCDkvtl.mjs} +15 -9
  3. package/dist/.setup/{app-server-policy-D_zv8J7V.mjs → app-server-policy-Cog6mm2i.mjs} +1 -1
  4. package/dist/.setup/{apply-CfWD3Bk6.mjs → apply-BVSXYkTV.mjs} +11 -11
  5. package/dist/.setup/{attempt-client-cleanup-D3YvP0N7.mjs → attempt-client-cleanup-6OcbMH46.mjs} +14 -8
  6. package/dist/.setup/attempt-terminal-sZutF0WY.mjs +1 -0
  7. package/dist/.setup/{attempt-workspace-context-CcwP3DA3.mjs → attempt-workspace-context-GYPLawX6.mjs} +2 -2
  8. package/dist/.setup/{auth-binding-BaxlhaNx.mjs → auth-binding-830RLAJW.mjs} +2 -2
  9. package/dist/.setup/{auth-cache-key-BzYrcgwJ.mjs → auth-cache-key-CVcYw8HD.mjs} +92 -80
  10. package/dist/.setup/{auth-profile-CgHQ8Vot.mjs → auth-profile-auwzSwwy.mjs} +14 -8
  11. package/dist/.setup/{auth-profile-health-oHizqgye.mjs → auth-profile-health-BVPZU9I8.mjs} +15 -8
  12. package/dist/.setup/{auth-profile-selection-hr8ocLtz.mjs → auth-profile-selection-Bp5PDk3W.mjs} +24 -7
  13. package/dist/.setup/{binding-connection-B7HAAZSI.mjs → binding-connection-GTgUj9pi.mjs} +2 -2
  14. package/dist/.setup/{binding-connection.runtime-DAXn7iFl.mjs → binding-connection.runtime-RcWR3vQu.mjs} +4 -3
  15. package/dist/.setup/{bounded-turn-isolation-BfDAo-qZ.mjs → bounded-turn-isolation-D8CDrAVX.mjs} +3 -3
  16. package/dist/.setup/{bounded-turn-BmChqNaK.mjs → bounded-turn-mN_ekXYW.mjs} +18 -22
  17. package/dist/.setup/{build-state-sjOWPg_o.mjs → build-state-VcujMRqP.mjs} +1 -1
  18. package/dist/.setup/{capabilities-DbOzOglY.mjs → capabilities-DAS-JX1z.mjs} +1 -1
  19. package/dist/.setup/{client-aPKNc4Ii.mjs → client-BS8X7HmG.mjs} +47 -317
  20. package/dist/.setup/{client-catalog-response-Du2GmrOV.mjs → client-catalog-response-jM38o5w1.mjs} +2 -2
  21. package/dist/.setup/client-initialize-CjgZcX61.mjs +165 -0
  22. package/dist/.setup/{command-dispatch-CF6mgl3u.mjs → command-dispatch-DzXbHqCn.mjs} +3 -3
  23. package/dist/.setup/{command-formatters-xW9KpoSZ.mjs → command-formatters-B_7-QZ1c.mjs} +2 -2
  24. package/dist/.setup/{command-handlers-DlycReQg.mjs → command-handlers-tfb5Uq-O.mjs} +539 -406
  25. package/dist/.setup/command-rpc-SXqLQukR.mjs +296 -0
  26. package/dist/.setup/compact-M-JxLcbZ.mjs +823 -0
  27. package/dist/.setup/{computer-use-C6yYfm6-.mjs → computer-use-FqQ-Flbl.mjs} +21 -68
  28. package/dist/.setup/{config-C1YVVLEA.mjs → config-BfrAlTMT.mjs} +3 -3
  29. package/dist/.setup/{config-options-DDzeNQ8m.mjs → config-options-DMFZkd3X.mjs} +1 -1
  30. package/dist/.setup/{config-runtime-DWzK-k0n.mjs → config-runtime-BZRizyuG.mjs} +2 -2
  31. package/dist/.setup/{context-engine-projection-ps-yn_ci.mjs → context-engine-projection-PIeLSnR-.mjs} +16 -30
  32. package/dist/.setup/{conversation-binding-CP_mK17t.mjs → conversation-binding-C7MZy-Cx.mjs} +228 -116
  33. package/dist/.setup/{conversation-binding-data-UgLuTSQT.mjs → conversation-binding-data-khgW0n-o.mjs} +4 -2
  34. package/dist/.setup/{conversation-control-GXM3unE4.mjs → conversation-control-B2EpVZEb.mjs} +53 -23
  35. package/dist/.setup/{cyber-failover-D4dgNfFf.mjs → cyber-failover-CqEZoQsj.mjs} +1 -1
  36. package/dist/.setup/{cyber-failover-notice-ljgGGL0s.mjs → cyber-failover-notice-poL3Advd.mjs} +1 -1
  37. package/dist/.setup/{doctor-start-options-JjTAl-q_.mjs → doctor-start-options-8uIBXIzR.mjs} +8 -5
  38. package/dist/.setup/{dynamic-tool-build-DKko0Jjw.mjs → dynamic-tool-build-BjFAIG-f.mjs} +208 -218
  39. package/dist/.setup/{dynamic-tools-8hqa1jVc.mjs → dynamic-tools-XqWsVjcC.mjs} +344 -118
  40. package/dist/.setup/{effective-mcp-catalog-uIZ4w7Nh.mjs → effective-mcp-catalog-C3ta5hHc.mjs} +11 -9
  41. package/dist/.setup/{ephemeral-turn-DAlEbytF.mjs → ephemeral-turn-1ZF17fUR.mjs} +5 -4
  42. package/dist/.setup/{event-projector-assistant-message-CLMKN4x-.mjs → event-projector-assistant-message-ChOAY7rW.mjs} +16 -11
  43. package/dist/.setup/{event-projector-usage-BpKfdoTm.mjs → event-projector-usage-CBY0Hkga.mjs} +2 -2
  44. package/dist/.setup/{event-projector-values-CLvG1Hil.mjs → event-projector-values-yf4us9Pf.mjs} +1 -1
  45. package/dist/.setup/experimental-features-uGnVDtp-.mjs +19 -0
  46. package/dist/.setup/inference-context-mv_dBpAL.mjs +209 -0
  47. package/dist/.setup/{inference-dispatch-CO6tTs4q.mjs → inference-dispatch-C2zVSnrr.mjs} +2 -2
  48. package/dist/.setup/{inference-metadata-DCvcG_N_.mjs → inference-metadata-CYFWLHVk.mjs} +3 -1
  49. package/dist/.setup/{inference-proxy-BDWV0djM.mjs → inference-proxy-yd3hr2dr.mjs} +8 -8
  50. package/dist/.setup/installed-probe-lVC1X5ve.mjs +185 -0
  51. package/dist/.setup/{isolated-completion-BWEjVHBf.mjs → isolated-completion-P-r8NRE4.mjs} +7 -7
  52. package/dist/.setup/managed-binary-DbKvGXKl.mjs +395 -0
  53. package/dist/.setup/{mcp-app-session-preparation-CJR8ib5s.mjs → mcp-app-session-preparation-fnsnCovu.mjs} +18 -14
  54. package/dist/.setup/{model-catalog-Ben3FsFp.mjs → model-catalog-Y_esgRPY.mjs} +28 -17
  55. package/dist/.setup/{models-BB0l-gUb.mjs → models-BWLEUo2E.mjs} +3 -3
  56. package/dist/.setup/{native-auth-esN5MdIv.mjs → native-auth-DpZIaY8N.mjs} +7 -4
  57. package/dist/.setup/native-execution-policy-D09tLP-u.mjs +152 -0
  58. package/dist/.setup/{native-hook-relay-DQzvuJ-W.mjs → native-hook-relay-C7aaLJaP.mjs} +45 -10
  59. package/dist/.setup/{native-mcp-app-UkwXOBfS.mjs → native-mcp-app-CsWj-v_x.mjs} +5 -5
  60. package/dist/.setup/{native-skill-isolation-DoRxgQPX.mjs → native-skill-isolation-CMimsKYy.mjs} +7 -7
  61. package/dist/.setup/{native-subagent-monitor-DC4clzAD.mjs → native-subagent-monitor-CFE7b4oC.mjs} +485 -239
  62. package/dist/.setup/{native-subagent-pending-assignments-DmVhedNs.mjs → native-subagent-pending-assignments-CTinVtjo.mjs} +1 -1
  63. package/dist/.setup/{native-task-assignments-DimsQ9Qa.mjs → native-task-assignments-YJopbaVO.mjs} +9 -5
  64. package/dist/.setup/{node-cli-sessions-CzKg2nGq.mjs → node-cli-sessions-BuJnBnEq.mjs} +7 -4
  65. package/dist/.setup/{node-exec-server.runtime-BWkULhBM.mjs → node-exec-server.runtime-CP7RC1Nd.mjs} +3 -3
  66. package/dist/.setup/{plan-DFVngccH.mjs → plan-B4cHgqNv.mjs} +7 -20
  67. package/dist/.setup/{plugin-activation-D7WkJMvU.mjs → plugin-activation-CXPWe-hl.mjs} +4 -4
  68. package/dist/.setup/{plugin-app-cache-key-Bg9DbDI6.mjs → plugin-app-cache-key-DRb-niJc.mjs} +17 -55
  69. package/dist/.setup/{plugin-approval-roundtrip-68FoMlaZ.mjs → plugin-approval-roundtrip-DIZHLbAM.mjs} +1 -1
  70. package/dist/.setup/{plugin-inventory-CYgdo14P.mjs → plugin-inventory-DE9wcaeH.mjs} +2 -2
  71. package/dist/.setup/{plugin-metadata-cache-Bi8TAPwX.mjs → plugin-metadata-cache-BqC-a6Fb.mjs} +2 -15
  72. package/dist/.setup/{project-doc-thread-config-BVcvnps8.mjs → project-doc-thread-config-B0UI3f1D.mjs} +6 -6
  73. package/dist/.setup/protocol-CaPAVwe9.mjs +12 -0
  74. package/dist/.setup/{provider-capabilities-DWH29sy3.mjs → provider-capabilities-DjcKunHS.mjs} +1 -1
  75. package/dist/.setup/{provider-BCXRBKEb.mjs → provider-wj_LFJH3.mjs} +4 -4
  76. package/dist/.setup/{rate-limits-CI8pTPqL.mjs → rate-limits-BpfURnuy.mjs} +1 -1
  77. package/dist/.setup/{request-DInueZ2q.mjs → request-ePeNJrOd.mjs} +132 -136
  78. package/dist/.setup/{responses-oauth-twnuTaAa.mjs → responses-oauth-CCV7aVYF.mjs} +6 -6
  79. package/dist/.setup/{rpc-error-C98SHchT.mjs → rpc-error-DemqqaxE.mjs} +7 -3
  80. package/dist/.setup/{run-attempt-BN-0TO0P.mjs → run-attempt-BcWArowv.mjs} +595 -426
  81. package/dist/.setup/{run-attempt-lifecycle-KN4oh-7O.mjs → run-attempt-lifecycle-DN-ATDp9.mjs} +1 -1
  82. package/dist/.setup/{runtime-artifact-C13pR7tD.mjs → runtime-artifact-CmLWeyJB.mjs} +3 -3
  83. package/dist/.setup/{runtime-artifact-connection-jS5DeCok.mjs → runtime-artifact-connection-DpWlZ02e.mjs} +3 -3
  84. package/dist/.setup/{sandbox-guard-DIImwCy1.mjs → sandbox-guard-DneAfNye.mjs} +70 -30
  85. package/dist/.setup/{session-binding-JEHNMPsr.mjs → session-binding-BgsWcbdY.mjs} +25 -23
  86. package/dist/.setup/{session-binding-record-DU_0biMD.mjs → session-binding-record-C_THntMe.mjs} +27 -12
  87. package/dist/.setup/{session-binding-record-codec-BpH8u_G9.mjs → session-binding-record-codec-DvmOI7g_.mjs} +1 -0
  88. package/dist/.setup/{session-binding-sidecars-DD-enC8w.mjs → session-binding-sidecars-BNSS6WL4.mjs} +55 -63
  89. package/dist/.setup/session-cancellation-DLBSJO5n.mjs +43 -0
  90. package/dist/.setup/{session-catalog-adoption-Ca3OYGYM.mjs → session-catalog-adoption-ppsLlVLB.mjs} +24 -38
  91. package/dist/.setup/{session-catalog-archive-Bv6gV7x9.mjs → session-catalog-archive-CqLRHJ6z.mjs} +11 -13
  92. package/dist/.setup/{session-catalog-events-DujfzcAY.mjs → session-catalog-events-DK0opVp3.mjs} +5 -5
  93. package/dist/.setup/{session-catalog-index-DQ9_sj42.mjs → session-catalog-index-BfzfdtH7.mjs} +96 -271
  94. package/dist/.setup/{session-catalog-index-order-CTfoefow.mjs → session-catalog-index-order-0Zqng2u8.mjs} +1 -1
  95. package/dist/.setup/{session-catalog-limits-BynIoOYm.mjs → session-catalog-limits-Dc6E0BZz.mjs} +1 -1
  96. package/dist/.setup/{session-catalog-list-request-D4MYNgDB.mjs → session-catalog-list-request-CAjoWjaH.mjs} +3 -4
  97. package/dist/.setup/{session-catalog-native-projection-BY2zMkMO.mjs → session-catalog-native-projection-G3lSDYYG.mjs} +5 -5
  98. package/dist/.setup/{session-catalog-node-adoption-BdP9Zjqo.mjs → session-catalog-node-adoption-e9v8mGgx.mjs} +5 -5
  99. package/dist/.setup/{session-catalog-node-continue-CNJibO4_.mjs → session-catalog-node-continue-H7nrzcUD.mjs} +5 -5
  100. package/dist/.setup/{session-catalog-node-lookup-BH_DBGa9.mjs → session-catalog-node-lookup-BrZfDkA8.mjs} +2 -2
  101. package/dist/.setup/{session-catalog-parsing-DkeoVn60.mjs → session-catalog-parsing-V6jyFg9g.mjs} +2 -2
  102. package/dist/.setup/{session-catalog-projection-BTXOyzl_.mjs → session-catalog-projection-BjWE414G.mjs} +8 -7
  103. package/dist/.setup/{session-catalog-provenance-CmsOE5mh.mjs → session-catalog-provenance-Dg9s12z-.mjs} +50 -30
  104. package/dist/.setup/{session-catalog-source-yQpy2Y6b.mjs → session-catalog-source-DqyuNxCe.mjs} +2 -6
  105. package/dist/.setup/{session-cli-GwU0izn-.mjs → session-cli-CBGKiqdv.mjs} +1 -1
  106. package/dist/.setup/{session-history-BO6i_pfk.mjs → session-history-7W0cgTXF.mjs} +11 -9
  107. package/dist/.setup/{session-history-import-CaO8s6ta.mjs → session-history-import-BwPKwcNi.mjs} +4 -4
  108. package/dist/.setup/{session-initialization-Bi_2DKhc.mjs → session-initialization-Dn3vveGv.mjs} +2 -2
  109. package/dist/.setup/{session-retirement-CIDqLMII.mjs → session-retirement-Ci_JvOfH.mjs} +8 -8
  110. package/dist/.setup/{session-history.worker-DJQfek5p.mjs → settled-turn-evidence--tRW6fSm.mjs} +2 -18
  111. package/dist/.setup/{settled-turn-finalizer-C6tjH8RJ.mjs → settled-turn-finalizer-D3-KXsbP.mjs} +8 -8
  112. package/dist/.setup/{shared-client-CCz9ldpr.mjs → shared-client-CE_uY0A1.mjs} +380 -557
  113. package/dist/.setup/side-question-OM18H9WJ.mjs +998 -0
  114. package/dist/.setup/{source-DsubBCYm.mjs → source-uGKgKWm8.mjs} +5 -5
  115. package/dist/.setup/{thread-archive-guard-LKdwQKyr.mjs → thread-archive-guard-BWjSsA92.mjs} +1 -1
  116. package/dist/.setup/{thread-lifecycle-run-CxVfnkG-.mjs → thread-lifecycle-run-mLueY6pH.mjs} +172 -75
  117. package/dist/.setup/{thread-model-selection-DcVebr8N.mjs → thread-model-selection-DxposL4X.mjs} +9 -9
  118. package/dist/.setup/{thread-ownership-_2e1sjfi.mjs → thread-ownership-t6Y9fLQS.mjs} +7 -7
  119. package/dist/.setup/{thread-policy-CLTwg3ZA.mjs → thread-policy-Cy301Or8.mjs} +6 -6
  120. package/dist/.setup/{thread-requests-BgzJwJtS.mjs → thread-requests-BjawdIVV.mjs} +14 -14
  121. package/dist/.setup/{thread-resume-C6qsk8_o.mjs → thread-resume-BUbsUfgF.mjs} +6 -6
  122. package/dist/.setup/{transcript-history-projection-DfKcoZCB.mjs → transcript-history-projection-i-FVpyha.mjs} +1 -1
  123. package/dist/.setup/{transcript-mirror-Bee2o6jj.mjs → transcript-mirror-CEQJZlF3.mjs} +6 -9
  124. package/dist/.setup/{transport-stdio-CRWTkKOn.mjs → transport-stdio-Bq160Dhv.mjs} +63 -64
  125. package/dist/.setup/{transport-websocket-DIyPfkHo.mjs → transport-websocket-0YqiI_MH.mjs} +1 -1
  126. package/dist/.setup/{turn-router-CSJl3yYQ.mjs → turn-router-Dbw17k3K.mjs} +2 -2
  127. package/dist/.setup/{upstream-session-fork-BC45E4Pe.mjs → upstream-session-fork-_LYkh0nZ.mjs} +46 -219
  128. package/dist/.setup/{usage-limit-error-CJoJ_F8V.mjs → usage-limit-error-DcOSH3J4.mjs} +4 -4
  129. package/dist/.setup/{usage-1eNaNDM2.mjs → usage-w_93wnnR.mjs} +4 -4
  130. package/dist/.setup/{web-search-item-CvokaZOo.mjs → web-search-item-DHVuNSqk.mjs} +1 -1
  131. package/dist/.setup/{web-search-provider.runtime-Qq_wUrvv.mjs → web-search-provider.runtime-DMHxve5v.mjs} +3 -3
  132. package/dist/.setup/{workspace-write-sandbox-probe-BDWO2Qkh.mjs → workspace-write-sandbox-probe-DJxOXcF3.mjs} +2 -2
  133. package/dist/api.js +7 -28
  134. package/dist/catalog-page.worker.js +1 -1
  135. package/dist/cli-metadata.js +1 -1
  136. package/dist/client-version-api.js +25 -0
  137. package/dist/doctor-contract-api.js +5 -5
  138. package/dist/harness.js +59 -36
  139. package/dist/index.js +259 -295
  140. package/dist/media-understanding-provider.js +2 -2
  141. package/dist/migration-provider-api.js +1 -2
  142. package/dist/native-session-binding-api.js +1 -2
  143. package/dist/provider-discovery.js +1 -1
  144. package/dist/session-history-worker-entrypoint.js +12 -0
  145. package/dist/session-history-worker-runtime.js +7 -18
  146. package/dist/session-history.worker.js +18 -2
  147. package/openclaw.plugin.json +1 -1
  148. package/package.json +6 -6
  149. package/dist/.setup/attempt-terminal-jO5IMj9K.mjs +0 -2
  150. package/dist/.setup/command-rpc-CUy4Bo-0.mjs +0 -247
  151. package/dist/.setup/compact-BCCjM_cb.mjs +0 -808
  152. package/dist/.setup/inference-context-DNlGwzwy.mjs +0 -91
  153. package/dist/.setup/managed-binary-BtIjV7yN.mjs +0 -175
  154. package/dist/.setup/native-execution-policy-MXEe7PB3.mjs +0 -75
  155. package/dist/.setup/protocol-CANUwXJ3.mjs +0 -17
  156. package/dist/.setup/side-question-COaYBoON.mjs +0 -826
@@ -0,0 +1,43 @@
1
+ import { T as retainSharedCodexAppServerClientByInstanceId } from "./auth-cache-key-CVcYw8HD.mjs";
2
+ import "./shared-client-CE_uY0A1.mjs";
3
+ import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-t6Y9fLQS.mjs";
4
+ import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-CFE7b4oC.mjs";
5
+ //#region extensions/codex/src/app-server/session-cancellation.ts
6
+ /** Stop owns admitted descendants, without retiring the session or its native history. */
7
+ async function withCodexSessionDescendantCancellation(bindingStore, params, run) {
8
+ const identity = {
9
+ kind: "session",
10
+ agentId: params.agentId,
11
+ sessionKey: params.sessionKey,
12
+ sessionId: params.sessionId
13
+ };
14
+ params.assertCurrent();
15
+ const binding = await bindingStore.readAsync(identity);
16
+ params.assertCurrent();
17
+ if (!binding?.clientId) return run(async () => ({
18
+ killed: 0,
19
+ cancelledRequesters: []
20
+ }));
21
+ const lease = await retainSharedCodexAppServerClientByInstanceId(binding.clientId, { waitForExit: false });
22
+ const assertCurrent = () => {
23
+ params.assertCurrent();
24
+ const current = bindingStore.read(identity);
25
+ if (!current || !isSameCodexAppServerThreadOwner(current, binding)) throw new Error("Codex descendant cancellation binding changed");
26
+ };
27
+ try {
28
+ assertCurrent();
29
+ if (!lease) return run(async () => ({
30
+ killed: 0,
31
+ cancelledRequesters: []
32
+ }));
33
+ return await codexNativeSubagentMonitorRuntime.withDescendantCancellation(lease.client, {
34
+ ...params,
35
+ parentThreadId: binding.threadId,
36
+ assertCurrent
37
+ }, run);
38
+ } finally {
39
+ await lease?.release();
40
+ }
41
+ }
42
+ //#endregion
43
+ export { withCodexSessionDescendantCancellation };
@@ -1,8 +1,8 @@
1
- import { T as requireBoundThread, d as boundedCatalogString, o as CatalogParamsError } from "./session-catalog-parsing-DkeoVn60.mjs";
2
- import { m as sessionBindingIdentity } from "./session-binding-record-DU_0biMD.mjs";
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";
3
3
  import { n as codexUpstreamBaseline, t as codexLastTerminalTurnId } from "./session-upstream-marker-D15C9NHp.mjs";
4
- import { r as reclaimCurrentCodexSessionGeneration } from "./session-binding-JEHNMPsr.mjs";
5
- import { adoptionSessionKeyRest, catalogSessionActions } from "./session-catalog-node-adoption-BdP9Zjqo.mjs";
4
+ import { r as reclaimCurrentCodexSessionGeneration } from "./session-binding-BgsWcbdY.mjs";
5
+ import { adoptionSessionKeyRest, catalogSessionActions } from "./session-catalog-node-adoption-e9v8mGgx.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
@@ -60,17 +60,23 @@ async function listAdoptedSessionEntries(params) {
60
60
  };
61
61
  }
62
62
  }
63
- const collect = async (selected, readBinding = async (identity) => {
64
- const bindings = params.bindingStore.readMany([identity]);
65
- try {
66
- return (await bindings.next()).value;
67
- } finally {
68
- await bindings.return(void 0);
69
- }
70
- }) => {
63
+ const revision = params.sessionEntries?.revision;
64
+ const cached = revision ? adoptionCandidatesByRevision.get(revision) : void 0;
65
+ let prepared;
66
+ if (cached && cached.config === params.config && cached.agentId === params.agentId) prepared = cached.candidates;
67
+ else {
68
+ prepared = [...candidates()];
69
+ if (revision) adoptionCandidatesByRevision.set(revision, {
70
+ config: params.config,
71
+ agentId: params.agentId,
72
+ candidates: prepared
73
+ });
74
+ }
75
+ const bindings = params.bindingStore.readMany(prepared.map(({ identity }) => identity));
76
+ try {
71
77
  const adopted = /* @__PURE__ */ new Map();
72
- for (const { agentId, sessionKey, sessionKeyRest, sessionId, marker, identity } of selected) {
73
- const binding = await readBinding(identity);
78
+ for (const { agentId, sessionKey, sessionKeyRest, sessionId, marker } of prepared) {
79
+ const binding = (await bindings.next()).value;
74
80
  const sourceThreadId = binding?.supervisionSourceThreadId?.trim();
75
81
  const boundThreadId = binding?.threadId.trim();
76
82
  if (binding?.connectionScope !== "supervision" || !sourceThreadId || !boundThreadId || sessionKeyRest !== adoptionSessionKey(sourceThreadId, marker.sourceHomeId)) continue;
@@ -84,26 +90,6 @@ async function listAdoptedSessionEntries(params) {
84
90
  });
85
91
  }
86
92
  return adopted;
87
- };
88
- const revision = params.sessionEntries?.revision;
89
- const cached = revision ? adoptionCandidatesByRevision.get(revision) : void 0;
90
- let prepared;
91
- try {
92
- if (cached && cached.config === params.config && cached.agentId === params.agentId) prepared = cached.candidates;
93
- else {
94
- prepared = [...candidates()];
95
- if (revision) adoptionCandidatesByRevision.set(revision, {
96
- config: params.config,
97
- agentId: params.agentId,
98
- candidates: prepared
99
- });
100
- }
101
- } catch {
102
- return collect(candidates());
103
- }
104
- const bindings = params.bindingStore.readMany(prepared.map(({ identity }) => identity));
105
- try {
106
- return await collect(prepared, async () => (await bindings.next()).value);
107
93
  } finally {
108
94
  await bindings.return(void 0);
109
95
  }
@@ -130,7 +116,7 @@ async function ensurePendingAdoptionBinding(params) {
130
116
  });
131
117
  params.initialization.assertCurrent();
132
118
  if (!ownsGeneration) throw new Error(`failed to claim the OpenClaw session generation for ${params.sourceThreadId}`);
133
- const existing = params.bindingStore.read(params.identity);
119
+ const existing = await params.bindingStore.readAsync(params.identity);
134
120
  params.initialization.assertCurrent();
135
121
  if (existing) {
136
122
  if (matchesPendingAdoptionBinding(existing, params)) return;
@@ -164,7 +150,7 @@ async function createOrReuseAdoptedSession(params) {
164
150
  sourceThreadId: params.sourceThread.id,
165
151
  ...params.sourceHomeId ? { sourceHomeId: params.sourceHomeId } : {}
166
152
  };
167
- const { createImportedCodexSession } = await import("./session-history-import-CaO8s6ta.mjs");
153
+ const { createImportedCodexSession } = await import("./session-history-import-BwPKwcNi.mjs");
168
154
  const created = await createImportedCodexSession({
169
155
  runtime: params.api.runtime,
170
156
  bindingStore: params.bindingStore,
@@ -229,11 +215,11 @@ async function continueLocalCodexSessionInner(params) {
229
215
  const boundThread = await params.control.readThread(boundThreadId, true);
230
216
  if (boundThread.id !== boundThreadId) throw new Error("Codex app-server returned a different thread than requested");
231
217
  const changedError = () => new CatalogParamsError("Codex OpenClaw session changed before it could be opened. Retry.");
232
- if (!await params.api.runtime.agent.session.patchSessionEntry({
218
+ if (!await params.api.runtime.agent.session.prepareSessionEntryPatch({
233
219
  sessionKey: existing.key,
234
220
  readConsistency: "latest",
235
221
  preserveActivity: true,
236
- update: (entry) => {
222
+ prepare: (entry) => {
237
223
  if (entry.sessionId?.trim() !== existing.sessionId || entry.initializationPending === true || entry.agentHarnessId !== "codex" || entry.modelSelectionLocked !== true) throw changedError();
238
224
  return {
239
225
  archivedAt: void 0,
@@ -1,22 +1,20 @@
1
- import { o as CatalogParamsError } from "./session-catalog-parsing-DkeoVn60.mjs";
2
- import { m as sessionBindingIdentity } from "./session-binding-record-DU_0biMD.mjs";
3
- import { t as assertCodexArchiveDescendantsUnowned } from "./thread-archive-guard-LKdwQKyr.mjs";
4
- import "./session-binding-JEHNMPsr.mjs";
5
- import { catalogSessionActions } from "./session-catalog-node-adoption-BdP9Zjqo.mjs";
6
- import { isAdoptionSessionKeyForThread, requireIdleThread } from "./session-catalog-adoption-Ca3OYGYM.mjs";
1
+ import { o as CatalogParamsError } from "./session-catalog-parsing-V6jyFg9g.mjs";
2
+ import { g as sessionBindingIdentity } from "./session-binding-record-C_THntMe.mjs";
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";
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
10
- function assertNoPendingSupervisionBranch(params) {
11
- const adoptedEntries = [params.agentId, ...listAgentIds(params.config).filter((agentId) => agentId !== params.agentId)].flatMap((agentId) => params.runtime.agent.session.listSessionEntries({
12
- agentId,
13
- readOnly: true
14
- })).filter((candidate) => isAdoptionSessionKeyForThread(candidate.sessionKey, params.threadId, params.sourceHomeId) || params.sourceHomeId !== void 0 && params.allowLegacy === true && isAdoptionSessionKeyForThread(candidate.sessionKey, params.threadId));
10
+ async function assertNoPendingSupervisionBranch(params) {
11
+ const agentIds = [params.agentId, ...listAgentIds(params.config).filter((agentId) => agentId !== params.agentId)];
12
+ const adoptedEntries = (await Promise.all(agentIds.map((agentId) => params.runtime.agent.session.listSessionEntriesAsync({ agentId })))).flat().filter((candidate) => isAdoptionSessionKeyForThread(candidate.sessionKey, params.threadId, params.sourceHomeId) || params.sourceHomeId !== void 0 && params.allowLegacy === true && isAdoptionSessionKeyForThread(candidate.sessionKey, params.threadId));
15
13
  for (const adopted of adoptedEntries) {
16
14
  if (adopted.entry.initializationPending === true) throw new CatalogParamsError("Codex session cannot be archived while its OpenClaw branch is initializing");
17
15
  const sessionId = adopted.entry.sessionId?.trim();
18
16
  if (!sessionId) continue;
19
- const binding = params.bindingStore.read(sessionBindingIdentity({
17
+ const binding = await params.bindingStore.readAsync(sessionBindingIdentity({
20
18
  sessionId,
21
19
  sessionKey: adopted.sessionKey,
22
20
  config: params.config
@@ -27,7 +25,7 @@ function assertNoPendingSupervisionBranch(params) {
27
25
  /** Archives one inactive Gateway-local Codex thread after a fresh status read. */
28
26
  async function archiveLocalCodexSession(params) {
29
27
  return await catalogSessionActions.enqueue(sessionCatalogAdoptedSourceKey(params.hostId ?? "gateway:local", params.threadId), () => params.bindingStore.withThreadArchiveFence(() => params.control.withPinnedConnection(async (control) => {
30
- assertNoPendingSupervisionBranch(params);
28
+ await assertNoPendingSupervisionBranch(params);
31
29
  await control.requireEligibleThread(params.threadId);
32
30
  const thread = await control.readThread(params.threadId, false);
33
31
  if (thread.id !== params.threadId) throw new Error("Codex app-server returned a different thread than requested");
@@ -1,11 +1,11 @@
1
- import { c as MAX_CWD_LENGTH, d as boundedCatalogString } from "./session-catalog-parsing-DkeoVn60.mjs";
2
- import { n as defineCodexBuildState } from "./build-state-sjOWPg_o.mjs";
1
+ import { c as MAX_CWD_LENGTH, d as boundedCatalogString } from "./session-catalog-parsing-V6jyFg9g.mjs";
2
+ import { n as defineCodexBuildState } from "./build-state-VcujMRqP.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
- import { t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
7
- import { n as codexCatalogSourceForClient, o as observeCodexCatalogEphemeralThreads } from "./session-catalog-source-yQpy2Y6b.mjs";
8
- import { r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-BY2zMkMO.mjs";
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-DqyuNxCe.mjs";
8
+ import { r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-G3lSDYYG.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";