@openclaw/codex 2026.10.5-beta.4 → 2026.10.10-beta.2
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.
- package/README.md +10 -3
- package/dist/.setup/{account-usage-runtime-CoVpNIlD.mjs → account-usage-runtime-BVO-lpvn.mjs} +15 -9
- package/dist/.setup/{app-server-policy-D_zv8J7V.mjs → app-server-policy-Cog6mm2i.mjs} +1 -1
- package/dist/.setup/{apply-BXDMd05l.mjs → apply-tJl5mopa.mjs} +11 -11
- package/dist/.setup/{attempt-client-cleanup-zNuNTKVr.mjs → attempt-client-cleanup-DMJWXGxM.mjs} +14 -8
- package/dist/.setup/attempt-terminal-sZutF0WY.mjs +1 -0
- package/dist/.setup/{attempt-workspace-context-CcwP3DA3.mjs → attempt-workspace-context-GYPLawX6.mjs} +2 -2
- package/dist/.setup/{auth-binding-BaxlhaNx.mjs → auth-binding-830RLAJW.mjs} +2 -2
- package/dist/.setup/{auth-cache-key-f8ODJ_OX.mjs → auth-cache-key-BW1YeaIk.mjs} +92 -80
- package/dist/.setup/{auth-profile-CgHQ8Vot.mjs → auth-profile-auwzSwwy.mjs} +14 -8
- package/dist/.setup/{auth-profile-health-oHizqgye.mjs → auth-profile-health-BVPZU9I8.mjs} +15 -8
- package/dist/.setup/{auth-profile-selection-hr8ocLtz.mjs → auth-profile-selection-Bp5PDk3W.mjs} +24 -7
- package/dist/.setup/{binding-connection-B7HAAZSI.mjs → binding-connection-GTgUj9pi.mjs} +2 -2
- package/dist/.setup/{binding-connection.runtime-DAXn7iFl.mjs → binding-connection.runtime-RcWR3vQu.mjs} +4 -3
- package/dist/.setup/{bounded-turn-DfIJtRlv.mjs → bounded-turn-BQkmyyjB.mjs} +18 -22
- package/dist/.setup/{bounded-turn-isolation-BfDAo-qZ.mjs → bounded-turn-isolation-D8CDrAVX.mjs} +3 -3
- package/dist/.setup/{build-state-Ds14X10-.mjs → build-state-CjLCC0wm.mjs} +1 -1
- package/dist/.setup/{capabilities-DbOzOglY.mjs → capabilities-DAS-JX1z.mjs} +1 -1
- package/dist/.setup/{client-D93nbdB8.mjs → client--P8jwXvA.mjs} +47 -317
- package/dist/.setup/{client-catalog-response-CuVLp4I0.mjs → client-catalog-response-CsDxVVOZ.mjs} +2 -2
- package/dist/.setup/client-initialize-CjgZcX61.mjs +165 -0
- package/dist/.setup/{command-dispatch-DxdH5a9-.mjs → command-dispatch-DqaVBeR3.mjs} +3 -3
- package/dist/.setup/{command-formatters-xW9KpoSZ.mjs → command-formatters-B_7-QZ1c.mjs} +2 -2
- package/dist/.setup/{command-handlers-fiYvYYq0.mjs → command-handlers-i6mEjvfo.mjs} +539 -406
- package/dist/.setup/command-rpc-B65jEc0r.mjs +296 -0
- package/dist/.setup/compact-AO2H4RJe.mjs +823 -0
- package/dist/.setup/{computer-use-DL2v3Kxq.mjs → computer-use-YUnu0JVx.mjs} +21 -68
- package/dist/.setup/{config-C1YVVLEA.mjs → config-BfrAlTMT.mjs} +3 -3
- package/dist/.setup/{config-options-DDzeNQ8m.mjs → config-options-DMFZkd3X.mjs} +1 -1
- package/dist/.setup/{config-runtime-DWzK-k0n.mjs → config-runtime-BZRizyuG.mjs} +2 -2
- package/dist/.setup/{context-engine-projection-ps-yn_ci.mjs → context-engine-projection-PIeLSnR-.mjs} +16 -30
- package/dist/.setup/{conversation-binding-BieJZRRV.mjs → conversation-binding-CfnUR-IM.mjs} +228 -116
- package/dist/.setup/{conversation-binding-data-UgLuTSQT.mjs → conversation-binding-data-khgW0n-o.mjs} +4 -2
- package/dist/.setup/{conversation-control-GXM3unE4.mjs → conversation-control-B2EpVZEb.mjs} +53 -23
- package/dist/.setup/{cyber-failover-D4dgNfFf.mjs → cyber-failover-CqEZoQsj.mjs} +1 -1
- package/dist/.setup/{cyber-failover-notice-ljgGGL0s.mjs → cyber-failover-notice-poL3Advd.mjs} +1 -1
- package/dist/.setup/{doctor-start-options-JjTAl-q_.mjs → doctor-start-options-8uIBXIzR.mjs} +8 -5
- package/dist/.setup/{dynamic-tool-build-DcaPmBlE.mjs → dynamic-tool-build-DOub3CB5.mjs} +208 -218
- package/dist/.setup/{dynamic-tools-CnQFnNKH.mjs → dynamic-tools-Us5mvq_N.mjs} +344 -118
- package/dist/.setup/{effective-mcp-catalog-B5HKFZNK.mjs → effective-mcp-catalog-DfUUoeeM.mjs} +11 -9
- package/dist/.setup/{ephemeral-turn-De3qb8EQ.mjs → ephemeral-turn-B2z0RIeF.mjs} +5 -4
- package/dist/.setup/{event-projector-assistant-message-CLMKN4x-.mjs → event-projector-assistant-message-ChOAY7rW.mjs} +16 -11
- package/dist/.setup/{event-projector-usage-BpKfdoTm.mjs → event-projector-usage-CBY0Hkga.mjs} +2 -2
- package/dist/.setup/{event-projector-values-CLvG1Hil.mjs → event-projector-values-yf4us9Pf.mjs} +1 -1
- package/dist/.setup/experimental-features-uGnVDtp-.mjs +19 -0
- package/dist/.setup/inference-context-HRw3PDwn.mjs +209 -0
- package/dist/.setup/{inference-dispatch-CO6tTs4q.mjs → inference-dispatch-C2zVSnrr.mjs} +2 -2
- package/dist/.setup/{inference-metadata-DCvcG_N_.mjs → inference-metadata-CYFWLHVk.mjs} +3 -1
- package/dist/.setup/{inference-proxy-BDWV0djM.mjs → inference-proxy-CiLbHMLf.mjs} +8 -8
- package/dist/.setup/installed-probe-lVC1X5ve.mjs +185 -0
- package/dist/.setup/{isolated-completion-BPJdvk5F.mjs → isolated-completion-CybgD6uU.mjs} +7 -7
- package/dist/.setup/managed-binary-DbKvGXKl.mjs +395 -0
- package/dist/.setup/{mcp-app-session-preparation-Dz2GOwyE.mjs → mcp-app-session-preparation-zUgpDLWR.mjs} +18 -14
- package/dist/.setup/{model-catalog-ZNwltCKl.mjs → model-catalog-CWY3wo0B.mjs} +28 -17
- package/dist/.setup/{models-BHpbAuz8.mjs → models-CmOBxsKF.mjs} +3 -3
- package/dist/.setup/{native-auth-esN5MdIv.mjs → native-auth-DpZIaY8N.mjs} +7 -4
- package/dist/.setup/native-execution-policy-D09tLP-u.mjs +152 -0
- package/dist/.setup/{native-hook-relay-wq7jrNLk.mjs → native-hook-relay-CocOW9YS.mjs} +45 -10
- package/dist/.setup/{native-mcp-app-DX3nyTtc.mjs → native-mcp-app-DrQeLxXj.mjs} +5 -5
- package/dist/.setup/{native-skill-isolation-DSBeF-Yy.mjs → native-skill-isolation-DL4-PQa4.mjs} +7 -7
- package/dist/.setup/{native-subagent-monitor-DOLEIf9r.mjs → native-subagent-monitor-C3CIIaZG.mjs} +485 -239
- package/dist/.setup/{native-subagent-pending-assignments-DmVhedNs.mjs → native-subagent-pending-assignments-CTinVtjo.mjs} +1 -1
- package/dist/.setup/{native-task-assignments-DimsQ9Qa.mjs → native-task-assignments-YJopbaVO.mjs} +9 -5
- package/dist/.setup/{node-cli-sessions-CzKg2nGq.mjs → node-cli-sessions-BuJnBnEq.mjs} +7 -4
- package/dist/.setup/{node-exec-server.runtime-BWkULhBM.mjs → node-exec-server.runtime-CP7RC1Nd.mjs} +3 -3
- package/dist/.setup/{plan-41-YOBMq.mjs → plan-Bqj6VQvQ.mjs} +7 -20
- package/dist/.setup/{plugin-activation-D7WkJMvU.mjs → plugin-activation-CXPWe-hl.mjs} +4 -4
- package/dist/.setup/{plugin-app-cache-key-Bg9DbDI6.mjs → plugin-app-cache-key-DRb-niJc.mjs} +17 -55
- package/dist/.setup/{plugin-approval-roundtrip-CD88q3yx.mjs → plugin-approval-roundtrip-CGEiG7hG.mjs} +1 -1
- package/dist/.setup/{plugin-inventory-CYgdo14P.mjs → plugin-inventory-DE9wcaeH.mjs} +2 -2
- package/dist/.setup/{plugin-metadata-cache-Bi8TAPwX.mjs → plugin-metadata-cache-BqC-a6Fb.mjs} +2 -15
- package/dist/.setup/{project-doc-thread-config-BVcvnps8.mjs → project-doc-thread-config-B0UI3f1D.mjs} +6 -6
- package/dist/.setup/protocol-CaPAVwe9.mjs +12 -0
- package/dist/.setup/{provider-LWKll6dV.mjs → provider-C_1fMsyD.mjs} +4 -4
- package/dist/.setup/{provider-capabilities-Dn2WwH4P.mjs → provider-capabilities-C7pYYpvh.mjs} +1 -1
- package/dist/.setup/{rate-limits-CI8pTPqL.mjs → rate-limits-BpfURnuy.mjs} +1 -1
- package/dist/.setup/{request-Bo0kKABI.mjs → request-C6U8q2uz.mjs} +132 -136
- package/dist/.setup/{responses-oauth-twnuTaAa.mjs → responses-oauth-CCV7aVYF.mjs} +6 -6
- package/dist/.setup/{rpc-error-C98SHchT.mjs → rpc-error-DemqqaxE.mjs} +7 -3
- package/dist/.setup/{run-attempt-ClU8MxhZ.mjs → run-attempt-BhuXanLv.mjs} +595 -426
- package/dist/.setup/{run-attempt-lifecycle-KN4oh-7O.mjs → run-attempt-lifecycle-DN-ATDp9.mjs} +1 -1
- package/dist/.setup/{runtime-artifact-C13pR7tD.mjs → runtime-artifact-CmLWeyJB.mjs} +3 -3
- package/dist/.setup/{runtime-artifact-connection-jS5DeCok.mjs → runtime-artifact-connection-DpWlZ02e.mjs} +3 -3
- package/dist/.setup/{sandbox-guard-DIImwCy1.mjs → sandbox-guard-DneAfNye.mjs} +70 -30
- package/dist/.setup/{session-binding-JEHNMPsr.mjs → session-binding-BgsWcbdY.mjs} +25 -23
- package/dist/.setup/{session-binding-record-DU_0biMD.mjs → session-binding-record-C_THntMe.mjs} +27 -12
- package/dist/.setup/{session-binding-record-codec-BpH8u_G9.mjs → session-binding-record-codec-DvmOI7g_.mjs} +1 -0
- package/dist/.setup/{session-binding-sidecars-DD-enC8w.mjs → session-binding-sidecars-BNSS6WL4.mjs} +55 -63
- package/dist/.setup/session-cancellation-DCN1FcBZ.mjs +43 -0
- package/dist/.setup/{session-catalog-adoption-Ca3OYGYM.mjs → session-catalog-adoption-ppsLlVLB.mjs} +24 -38
- package/dist/.setup/{session-catalog-archive-Bv6gV7x9.mjs → session-catalog-archive-CqLRHJ6z.mjs} +11 -13
- package/dist/.setup/{session-catalog-events-kR2Ot6nX.mjs → session-catalog-events-CEi6SuLQ.mjs} +5 -5
- package/dist/.setup/{session-catalog-index-order-CTfoefow.mjs → session-catalog-index-order-0Zqng2u8.mjs} +1 -1
- package/dist/.setup/{session-catalog-index-CrnfVEnT.mjs → session-catalog-index-qt4UWBua.mjs} +96 -271
- package/dist/.setup/{session-catalog-limits-BynIoOYm.mjs → session-catalog-limits-Dc6E0BZz.mjs} +1 -1
- package/dist/.setup/{session-catalog-list-request-D4MYNgDB.mjs → session-catalog-list-request-CAjoWjaH.mjs} +3 -4
- package/dist/.setup/{session-catalog-native-projection-CWqCU1I_.mjs → session-catalog-native-projection-BqBYi6kV.mjs} +5 -5
- package/dist/.setup/{session-catalog-node-adoption-BdP9Zjqo.mjs → session-catalog-node-adoption-e9v8mGgx.mjs} +5 -5
- package/dist/.setup/{session-catalog-node-continue-CNJibO4_.mjs → session-catalog-node-continue-H7nrzcUD.mjs} +5 -5
- package/dist/.setup/{session-catalog-node-lookup-BH_DBGa9.mjs → session-catalog-node-lookup-BrZfDkA8.mjs} +2 -2
- package/dist/.setup/{session-catalog-parsing-DkeoVn60.mjs → session-catalog-parsing-V6jyFg9g.mjs} +2 -2
- package/dist/.setup/{session-catalog-projection-BzHiV818.mjs → session-catalog-projection-CNyhjZze.mjs} +8 -7
- package/dist/.setup/{session-catalog-provenance-CmsOE5mh.mjs → session-catalog-provenance-Dg9s12z-.mjs} +50 -30
- package/dist/.setup/{session-catalog-source-DGuRdGvM.mjs → session-catalog-source-z_mNyQdX.mjs} +2 -6
- package/dist/.setup/{session-cli-GwU0izn-.mjs → session-cli-CBGKiqdv.mjs} +1 -1
- package/dist/.setup/{session-history-BO6i_pfk.mjs → session-history-7W0cgTXF.mjs} +11 -9
- package/dist/.setup/{session-history-import-CaO8s6ta.mjs → session-history-import-BwPKwcNi.mjs} +4 -4
- package/dist/.setup/{session-initialization-Bi_2DKhc.mjs → session-initialization-Dn3vveGv.mjs} +2 -2
- package/dist/.setup/{session-retirement-B3U5hpGJ.mjs → session-retirement-RZStisKb.mjs} +8 -8
- package/dist/.setup/{session-history.worker-DJQfek5p.mjs → settled-turn-evidence--tRW6fSm.mjs} +2 -18
- package/dist/.setup/{settled-turn-finalizer-CYCVpTv2.mjs → settled-turn-finalizer-gioXygEX.mjs} +8 -8
- package/dist/.setup/{shared-client-BCx1wbyA.mjs → shared-client-CkyTrNB8.mjs} +380 -557
- package/dist/.setup/side-question-DHPWKgO3.mjs +998 -0
- package/dist/.setup/{source-DipMO9hL.mjs → source-63MLSmLJ.mjs} +5 -5
- package/dist/.setup/{thread-archive-guard-LKdwQKyr.mjs → thread-archive-guard-BWjSsA92.mjs} +1 -1
- package/dist/.setup/{thread-lifecycle-run-C_aYiYqk.mjs → thread-lifecycle-run-zCXYFW8W.mjs} +172 -75
- package/dist/.setup/{thread-model-selection-DcVebr8N.mjs → thread-model-selection-DxposL4X.mjs} +9 -9
- package/dist/.setup/{thread-ownership-BoUd0i6L.mjs → thread-ownership-Bmk5a2Gu.mjs} +7 -7
- package/dist/.setup/{thread-policy-B3wBRNph.mjs → thread-policy-DYtvZ5Ay.mjs} +6 -6
- package/dist/.setup/{thread-requests-BgzJwJtS.mjs → thread-requests-BjawdIVV.mjs} +14 -14
- package/dist/.setup/{thread-resume-D-3bsr1j.mjs → thread-resume-vBShG3-o.mjs} +6 -6
- package/dist/.setup/{transcript-history-projection-DfKcoZCB.mjs → transcript-history-projection-i-FVpyha.mjs} +1 -1
- package/dist/.setup/{transcript-mirror-Bee2o6jj.mjs → transcript-mirror-CEQJZlF3.mjs} +6 -9
- package/dist/.setup/{transport-stdio-CRWTkKOn.mjs → transport-stdio-Bq160Dhv.mjs} +63 -64
- package/dist/.setup/{transport-websocket-DIyPfkHo.mjs → transport-websocket-0YqiI_MH.mjs} +1 -1
- package/dist/.setup/{turn-router-DBVMToGo.mjs → turn-router-BGj67FMK.mjs} +2 -2
- package/dist/.setup/{upstream-session-fork-p5fwKi7w.mjs → upstream-session-fork-CWKjpdtW.mjs} +46 -219
- package/dist/.setup/{usage-C2Kq7oej.mjs → usage-AhrLFxZP.mjs} +4 -4
- package/dist/.setup/{usage-limit-error-BQX8RHAd.mjs → usage-limit-error-BdNbGJC3.mjs} +4 -4
- package/dist/.setup/{web-search-item-CvokaZOo.mjs → web-search-item-DHVuNSqk.mjs} +1 -1
- package/dist/.setup/{web-search-provider.runtime-D89djc7e.mjs → web-search-provider.runtime-Yk6lnJBG.mjs} +3 -3
- package/dist/.setup/{workspace-write-sandbox-probe-BDWO2Qkh.mjs → workspace-write-sandbox-probe-DJxOXcF3.mjs} +2 -2
- package/dist/api.js +7 -28
- package/dist/catalog-page.worker.js +1 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/client-version-api.js +25 -0
- package/dist/doctor-contract-api.js +5 -5
- package/dist/harness.js +59 -36
- package/dist/index.js +259 -295
- package/dist/media-understanding-provider.js +2 -2
- package/dist/migration-provider-api.js +1 -2
- package/dist/native-session-binding-api.js +1 -2
- package/dist/provider-discovery.js +1 -1
- package/dist/session-history-worker-entrypoint.js +12 -0
- package/dist/session-history-worker-runtime.js +7 -18
- package/dist/session-history.worker.js +18 -2
- package/openclaw.plugin.json +1 -1
- package/package.json +6 -6
- package/dist/.setup/attempt-terminal-jO5IMj9K.mjs +0 -2
- package/dist/.setup/command-rpc-HIvsy3wS.mjs +0 -247
- package/dist/.setup/compact-ClZ7Ar7L.mjs +0 -808
- package/dist/.setup/inference-context-DNlGwzwy.mjs +0 -91
- package/dist/.setup/managed-binary-BtIjV7yN.mjs +0 -175
- package/dist/.setup/native-execution-policy-MXEe7PB3.mjs +0 -75
- package/dist/.setup/protocol-CANUwXJ3.mjs +0 -17
- package/dist/.setup/side-question-Bz2UQW0l.mjs +0 -826
|
@@ -33,7 +33,7 @@ async function describeCodexImages(req, options) {
|
|
|
33
33
|
const model = req.model.trim();
|
|
34
34
|
if (!model) throw new Error("Codex image understanding requires model id.");
|
|
35
35
|
req.signal?.throwIfAborted();
|
|
36
|
-
const { runBoundedCodexAppServerTurn } = await import("./.setup/bounded-turn-
|
|
36
|
+
const { runBoundedCodexAppServerTurn } = await import("./.setup/bounded-turn-BQkmyyjB.mjs");
|
|
37
37
|
req.signal?.throwIfAborted();
|
|
38
38
|
const { text } = await runBoundedCodexAppServerTurn({
|
|
39
39
|
config: req.cfg,
|
|
@@ -73,7 +73,7 @@ async function extractCodexStructured(req, options) {
|
|
|
73
73
|
if (req.input.length === 0) throw new Error("Codex structured extraction requires at least one input.");
|
|
74
74
|
if (!req.input.some((entry) => entry.type === "image")) throw new Error("Codex structured extraction requires at least one image input.");
|
|
75
75
|
req.signal?.throwIfAborted();
|
|
76
|
-
const { runBoundedCodexAppServerTurn } = await import("./.setup/bounded-turn-
|
|
76
|
+
const { runBoundedCodexAppServerTurn } = await import("./.setup/bounded-turn-BQkmyyjB.mjs");
|
|
77
77
|
req.signal?.throwIfAborted();
|
|
78
78
|
const { text } = await runBoundedCodexAppServerTurn({
|
|
79
79
|
config: req.cfg,
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { buildCodexMigrationProvider as buildMigrationProvider };
|
|
1
|
+
export { t as buildMigrationProvider } from "./.setup/provider-C_1fMsyD.mjs";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { readStoredCodexAppServerBinding as readNativeSessionBindingRecord };
|
|
1
|
+
export { a as readNativeSessionBindingRecord } from "./.setup/session-binding-record-codec-DvmOI7g_.mjs";
|
|
@@ -5,7 +5,7 @@ const codexProviderDiscovery = {
|
|
|
5
5
|
auth: [],
|
|
6
6
|
prepareSyntheticAuth: async ({ config, provider, env, signal, pluginRoot }) => {
|
|
7
7
|
if (provider !== "codex") return;
|
|
8
|
-
const { probeCodexNativeAuth } = await import("./.setup/native-auth-
|
|
8
|
+
const { probeCodexNativeAuth } = await import("./.setup/native-auth-DpZIaY8N.mjs");
|
|
9
9
|
return await probeCodexNativeAuth({
|
|
10
10
|
config,
|
|
11
11
|
env,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region extensions/codex/session-history-worker-entrypoint.ts
|
|
2
|
+
const codexHistoryWorkerEntrypoint = {
|
|
3
|
+
currentModuleUrl: import.meta.url,
|
|
4
|
+
sourceWorkerName: "session-history.worker",
|
|
5
|
+
distWorkerPath: "extensions/codex/session-history.worker.js",
|
|
6
|
+
package: {
|
|
7
|
+
name: "@openclaw/codex",
|
|
8
|
+
distWorkerPath: "session-history.worker.js"
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { codexHistoryWorkerEntrypoint };
|
|
@@ -1,21 +1,12 @@
|
|
|
1
|
+
import { codexHistoryWorkerEntrypoint } from "./session-history-worker-entrypoint.js";
|
|
1
2
|
import { n as codexHistoryRejectionReason } from "./.setup/history-rejection-B4nOXNXF.mjs";
|
|
2
3
|
import { t as consumeCodexHistory } from "./.setup/session-history-read-BI_2jRED.mjs";
|
|
3
|
-
import { n as
|
|
4
|
-
import {
|
|
4
|
+
import { n as resolveCodexHistoryTarget } from "./.setup/session-history-7W0cgTXF.mjs";
|
|
5
|
+
import { t as projectVerifiedSettledCodexMessages } from "./.setup/settled-turn-evidence--tRW6fSm.mjs";
|
|
5
6
|
import { WorkerTaskPool, resolveRuntimeWorkerArgv, resolveRuntimeWorkerUrl } from "openclaw/plugin-sdk/process-runtime";
|
|
6
|
-
import { isIncognitoSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import { SessionTranscriptReadFenceError, captureCodexSessionContextReader, readCodexSessionContextProjection } from "openclaw/plugin-sdk/codex-session-transcript-runtime";
|
|
9
9
|
//#region extensions/codex/session-history-worker-runtime.ts
|
|
10
|
-
const codexHistoryWorkerEntrypoint = {
|
|
11
|
-
currentModuleUrl: import.meta.url,
|
|
12
|
-
sourceWorkerName: "session-history.worker",
|
|
13
|
-
distWorkerPath: "extensions/codex/session-history.worker.js",
|
|
14
|
-
package: {
|
|
15
|
-
name: "@openclaw/codex",
|
|
16
|
-
distWorkerPath: "session-history.worker.js"
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
10
|
const sourceWorkerUrl = resolveRuntimeWorkerUrl(codexHistoryWorkerEntrypoint);
|
|
20
11
|
const sourceNeedsBuiltFallback = /\.[cm]?ts$/u.test(sourceWorkerUrl.pathname) && (typeof process.versions.bun === "string" || resolveRuntimeWorkerArgv(sourceWorkerUrl).length === 1);
|
|
21
12
|
const historyReads = new WorkerTaskPool({
|
|
@@ -23,14 +14,12 @@ const historyReads = new WorkerTaskPool({
|
|
|
23
14
|
...codexHistoryWorkerEntrypoint,
|
|
24
15
|
root: fileURLToPath(new URL("../..", import.meta.url))
|
|
25
16
|
}) : sourceWorkerUrl,
|
|
26
|
-
workerClass: "reader"
|
|
27
|
-
maxWorkers: 1
|
|
17
|
+
workerClass: "reader"
|
|
28
18
|
});
|
|
29
19
|
async function projectCodexSettledHistoryInWorker(target, signal, contextReader) {
|
|
30
20
|
signal?.throwIfAborted();
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
const reader = contextReader ?? (target.sessionTarget && resolved.kind === "sqlite" ? captureCodexSessionContextReader({
|
|
21
|
+
const resolved = await resolveCodexHistoryTarget(target);
|
|
22
|
+
const reader = contextReader ?? (resolved.kind === "sqlite" ? captureCodexSessionContextReader({
|
|
34
23
|
...target.sessionTarget,
|
|
35
24
|
...resolved.target
|
|
36
25
|
}, signal) : void 0);
|
|
@@ -79,7 +68,7 @@ async function projectCodexSettledHistoryInWorker(target, signal, contextReader)
|
|
|
79
68
|
physicalSource,
|
|
80
69
|
evidence
|
|
81
70
|
};
|
|
82
|
-
const result =
|
|
71
|
+
const result = await historyReads.run(input, {
|
|
83
72
|
timeoutMs: 6e4,
|
|
84
73
|
signal
|
|
85
74
|
});
|
|
@@ -1,2 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { n as readCodexNativeHistory } from "./.setup/session-history-read-BI_2jRED.mjs";
|
|
2
|
+
import { t as projectVerifiedSettledCodexMessages } from "./.setup/settled-turn-evidence--tRW6fSm.mjs";
|
|
3
|
+
import { serveWorkerTasks } from "openclaw/plugin-sdk/worker-task-server";
|
|
4
|
+
//#region extensions/codex/session-history.worker.ts
|
|
5
|
+
async function runCodexHistoryWorkerInput(input) {
|
|
6
|
+
const request = input;
|
|
7
|
+
let version;
|
|
8
|
+
const onSnapshot = (value) => {
|
|
9
|
+
version = value;
|
|
10
|
+
};
|
|
11
|
+
return {
|
|
12
|
+
result: await readCodexNativeHistory(request.target, request.sessionId, (messages) => projectVerifiedSettledCodexMessages(messages, request.evidence), request.admission, onSnapshot, request.physicalSource),
|
|
13
|
+
version
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
serveWorkerTasks(runCodexHistoryWorkerInput);
|
|
17
|
+
//#endregion
|
|
18
|
+
export {};
|
package/openclaw.plugin.json
CHANGED
|
@@ -753,7 +753,7 @@
|
|
|
753
753
|
},
|
|
754
754
|
"sessionCatalog.homes": {
|
|
755
755
|
"label": "Additional Codex Homes",
|
|
756
|
-
"help": "Existing local Codex home directories to include in native session discovery. String paths use the
|
|
756
|
+
"help": "Existing local Codex home directories to include in native session discovery. String paths use the last directory name of the resolved path as their label; object entries can override it with label. Paths are resolved and duplicates are removed. Requires appServer.transport=stdio and a Gateway restart.",
|
|
757
757
|
"advanced": true
|
|
758
758
|
},
|
|
759
759
|
"codexDynamicToolsLoading": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/codex",
|
|
3
|
-
"version": "2026.10.
|
|
3
|
+
"version": "2026.10.10-beta.2",
|
|
4
4
|
"description": "OpenClaw Codex app-server harness and native session supervision plugin.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"type": "module",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@openai/codex": "0.160.0",
|
|
12
|
-
"@openclaw/fs-safe": "0.
|
|
12
|
+
"@openclaw/fs-safe": "0.26.5",
|
|
13
13
|
"semver": "7.8.5",
|
|
14
14
|
"smol-toml": "1.9.0",
|
|
15
|
-
"typebox": "1.3.
|
|
15
|
+
"typebox": "1.3.35",
|
|
16
16
|
"ws": "8.22.0",
|
|
17
17
|
"zod": "4.6.5"
|
|
18
18
|
},
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
]
|
|
39
39
|
},
|
|
40
40
|
"compat": {
|
|
41
|
-
"pluginApi": ">=2026.10.
|
|
41
|
+
"pluginApi": ">=2026.10.10-beta.2"
|
|
42
42
|
},
|
|
43
43
|
"build": {
|
|
44
|
-
"openclawVersion": "2026.10.
|
|
44
|
+
"openclawVersion": "2026.10.10-beta.2",
|
|
45
45
|
"workerEntries": [
|
|
46
46
|
"./catalog-page.worker.ts"
|
|
47
47
|
]
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"assets/activity.svg"
|
|
67
67
|
],
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"openclaw": ">=2026.10.
|
|
69
|
+
"openclaw": ">=2026.10.10-beta.2"
|
|
70
70
|
},
|
|
71
71
|
"peerDependenciesMeta": {
|
|
72
72
|
"openclaw": {
|
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
|
|
2
|
-
import { o as isCodexAppServerOverloadError, r as CodexAppServerRpcError } from "./rpc-error-C98SHchT.mjs";
|
|
3
|
-
import { n as describeControlFailure, t as CODEX_CONTROL_METHODS } from "./capabilities-DbOzOglY.mjs";
|
|
4
|
-
import { a as withCodexAppServerJsonClient, r as requestCodexAppServerJson } from "./request-Bo0kKABI.mjs";
|
|
5
|
-
import "./config-C1YVVLEA.mjs";
|
|
6
|
-
import { n as resolveCodexAppServerRuntimeOptions, r as resolveCodexSupervisionAppServerRuntimeOptions } from "./config-runtime-DWzK-k0n.mjs";
|
|
7
|
-
import { a as resolveCodexAppServerAuthProfileStore, r as resolveCodexAppServerAuthProfileId } from "./auth-profile-CgHQ8Vot.mjs";
|
|
8
|
-
import { nt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-BCx1wbyA.mjs";
|
|
9
|
-
import { a as isCodexAppServerIndeterminateRequestCancellationError, o as isCodexAppServerIndeterminateTransportError } from "./client-D93nbdB8.mjs";
|
|
10
|
-
import { o as closeCodexStartupClientBestEffort } from "./attempt-client-cleanup-zNuNTKVr.mjs";
|
|
11
|
-
import { r as prepareCodexAppServerAuthBinding } from "./auth-binding-BaxlhaNx.mjs";
|
|
12
|
-
import { r as listCodexAppServerModels } from "./models-BHpbAuz8.mjs";
|
|
13
|
-
import { n as createCodexSessionGenerationSupersededError } from "./session-binding-JEHNMPsr.mjs";
|
|
14
|
-
import { t as resumeCodexAppServerThread } from "./thread-resume-D-3bsr1j.mjs";
|
|
15
|
-
import { t as __exportAll } from "./session-binding-sidecars-DD-enC8w.mjs";
|
|
16
|
-
import { resolveAgentDir, resolveSessionAgentIdsStrict } from "openclaw/plugin-sdk/agent-scope-runtime";
|
|
17
|
-
import { resolveAgentWorkspaceDir } from "openclaw/plugin-sdk/agent-runtime";
|
|
18
|
-
import { prepareAgentRuntimeAuth } from "openclaw/plugin-sdk/agent-harness-runtime";
|
|
19
|
-
import { getSessionEntry, resolveStorePath } from "openclaw/plugin-sdk/session-store-runtime";
|
|
20
|
-
import { resolveSessionModelRef } from "openclaw/plugin-sdk/model-session-runtime";
|
|
21
|
-
import { resolveApiKeyForProvider } from "openclaw/plugin-sdk/provider-auth-runtime";
|
|
22
|
-
//#region extensions/codex/src/command-rpc.ts
|
|
23
|
-
var command_rpc_exports = /* @__PURE__ */ __exportAll({
|
|
24
|
-
codexControlRequest: () => codexControlRequest,
|
|
25
|
-
prepareCodexControlSessionAuth: () => prepareCodexControlSessionAuth,
|
|
26
|
-
readCodexStatusProbes: () => readCodexStatusProbes,
|
|
27
|
-
requestOptions: () => requestOptions,
|
|
28
|
-
safeCodexControlRequest: () => safeCodexControlRequest
|
|
29
|
-
});
|
|
30
|
-
/** Selects the same prepared auth partition as an admitted session turn. */
|
|
31
|
-
async function prepareCodexControlSessionAuth(options, startOptions) {
|
|
32
|
-
if (!options.config || !options.sessionKey || !options.sessionId) {
|
|
33
|
-
if (options.onResponse) throw new Error("Codex control subscription requires admitted session authority.");
|
|
34
|
-
return {
|
|
35
|
-
authProfileId: options.authProfileId ?? void 0,
|
|
36
|
-
clientOptions: { authProfileId: options.authProfileId }
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
const config = options.config;
|
|
40
|
-
const { sessionAgentId } = resolveSessionAgentIdsStrict({
|
|
41
|
-
config,
|
|
42
|
-
sessionKey: options.sessionKey,
|
|
43
|
-
agentId: options.agentId
|
|
44
|
-
});
|
|
45
|
-
const agentDir = options.agentDir ?? resolveAgentDir(config, sessionAgentId);
|
|
46
|
-
const workspaceDir = resolveAgentWorkspaceDir(config, sessionAgentId);
|
|
47
|
-
const entry = getSessionEntry({
|
|
48
|
-
agentId: sessionAgentId,
|
|
49
|
-
storePath: options.storePath?.trim() || resolveStorePath(config.session?.store, { agentId: sessionAgentId }),
|
|
50
|
-
sessionKey: options.sessionKey,
|
|
51
|
-
hydrateSkillPromptRefs: false,
|
|
52
|
-
readConsistency: "latest"
|
|
53
|
-
});
|
|
54
|
-
if (entry?.sessionId !== options.sessionId) throw createCodexSessionGenerationSupersededError(options.sessionId);
|
|
55
|
-
if (options.authProfileId === null || startOptions.homeScope === "user") return {
|
|
56
|
-
authProfileId: options.authProfileId ?? void 0,
|
|
57
|
-
clientOptions: { authProfileId: options.authProfileId }
|
|
58
|
-
};
|
|
59
|
-
const model = resolveSessionModelRef(config, entry, sessionAgentId);
|
|
60
|
-
const authProfileId = entry?.authProfileOverride ?? options.authProfileId;
|
|
61
|
-
const store = resolveCodexAppServerAuthProfileStore({
|
|
62
|
-
agentDir,
|
|
63
|
-
config,
|
|
64
|
-
authProfileId
|
|
65
|
-
});
|
|
66
|
-
const { plan, attempts } = prepareAgentRuntimeAuth({
|
|
67
|
-
provider: model.provider,
|
|
68
|
-
modelId: model.model,
|
|
69
|
-
config,
|
|
70
|
-
agentDir,
|
|
71
|
-
workspaceDir,
|
|
72
|
-
authProfileStore: store,
|
|
73
|
-
sessionAuthProfileId: authProfileId,
|
|
74
|
-
sessionAuthProfileSource: entry?.authProfileOverrideSource,
|
|
75
|
-
harnessId: "codex",
|
|
76
|
-
harnessAuthBootstrap: "harness"
|
|
77
|
-
});
|
|
78
|
-
const route = plan.modelRoute;
|
|
79
|
-
const resolvedAuth = route ? await resolveApiKeyForProvider({
|
|
80
|
-
provider: route.provider,
|
|
81
|
-
modelId: route.modelId,
|
|
82
|
-
modelApi: route.api,
|
|
83
|
-
cfg: config,
|
|
84
|
-
agentDir,
|
|
85
|
-
workspaceDir,
|
|
86
|
-
store,
|
|
87
|
-
profileId: attempts[0]?.profileId,
|
|
88
|
-
lockedProfile: plan.forwardedAuthProfileSource === "user",
|
|
89
|
-
allowAuthProfileFallback: attempts[0]?.allowAuthProfileFallback,
|
|
90
|
-
skipSetupProviderFallback: true
|
|
91
|
-
}) : void 0;
|
|
92
|
-
const handoff = await resolveCodexAppServerPreparedAuthHandoff({
|
|
93
|
-
authRequirement: route?.authRequirement,
|
|
94
|
-
resolvedApiKey: resolvedAuth?.apiKey,
|
|
95
|
-
authProfileId: route ? plan.forwardedAuthProfileId : resolveCodexAppServerAuthProfileId({
|
|
96
|
-
authProfileId: plan.forwardedAuthProfileId,
|
|
97
|
-
store,
|
|
98
|
-
config
|
|
99
|
-
}),
|
|
100
|
-
authProfileStore: store,
|
|
101
|
-
agentDir,
|
|
102
|
-
homeScope: startOptions.homeScope ?? "agent",
|
|
103
|
-
config,
|
|
104
|
-
subscriptionProfileRequiredError: "Prepared Codex subscription route requires a forwarded OpenAI OAuth or token profile.",
|
|
105
|
-
subscriptionProfileUnusableError: "Prepared Codex subscription auth profile is unusable."
|
|
106
|
-
});
|
|
107
|
-
const binding = handoff.authProfileId ? await prepareCodexAppServerAuthBinding({
|
|
108
|
-
authProfileId: handoff.authProfileId,
|
|
109
|
-
authProfileStore: store,
|
|
110
|
-
agentDir,
|
|
111
|
-
config
|
|
112
|
-
}) : void 0;
|
|
113
|
-
return {
|
|
114
|
-
authProfileId: handoff.authProfileId,
|
|
115
|
-
clientOptions: {
|
|
116
|
-
...handoff.preparedAuth ? { preparedAuth: handoff.preparedAuth } : { authProfileId: handoff.authProfileId },
|
|
117
|
-
authRequirement: route?.authRequirement,
|
|
118
|
-
authProfileStore: binding?.authProfileStore ?? store,
|
|
119
|
-
authBindingFingerprint: binding?.fingerprint,
|
|
120
|
-
agentDir
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
function requestOptions(pluginConfig, limit, config, agentDir) {
|
|
125
|
-
const runtime = resolveCodexAppServerRuntimeOptions({ pluginConfig });
|
|
126
|
-
return {
|
|
127
|
-
limit,
|
|
128
|
-
timeoutMs: runtime.requestTimeoutMs,
|
|
129
|
-
startOptions: runtime.start,
|
|
130
|
-
config,
|
|
131
|
-
agentDir
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
async function codexControlRequest(pluginConfig, method, requestParams, inputOptions = {}) {
|
|
135
|
-
const options = { ...inputOptions };
|
|
136
|
-
try {
|
|
137
|
-
options.controlObservation?.phase("prepare");
|
|
138
|
-
} catch {}
|
|
139
|
-
const runtime = options.startOptions ? resolveCodexSupervisionAppServerRuntimeOptions({ pluginConfig }) : resolveCodexAppServerRuntimeOptions({ pluginConfig });
|
|
140
|
-
const startOptions = options.startOptions ?? runtime.start;
|
|
141
|
-
const nativeAuthFork = method === "thread/fork" && options.startOptions !== void 0 && options.authProfileId === null;
|
|
142
|
-
const auth = options.onResponse && !nativeAuthFork ? await prepareCodexControlSessionAuth(options, startOptions) : {
|
|
143
|
-
authProfileId: options.authProfileId ?? void 0,
|
|
144
|
-
clientOptions: { authProfileId: options.authProfileId }
|
|
145
|
-
};
|
|
146
|
-
const controlRequestOptions = {
|
|
147
|
-
timeoutMs: options.timeoutMs ?? runtime.requestTimeoutMs,
|
|
148
|
-
assertCurrent: options.assertCurrent,
|
|
149
|
-
startOptions,
|
|
150
|
-
config: options.config,
|
|
151
|
-
sessionKey: options.sessionKey,
|
|
152
|
-
sessionId: options.sessionId,
|
|
153
|
-
agentDir: options.agentDir,
|
|
154
|
-
isolated: options.isolated,
|
|
155
|
-
...options.catalogPreview ? {
|
|
156
|
-
catalogPreview: true,
|
|
157
|
-
catalogPreviewCache: options.catalogPreviewCache,
|
|
158
|
-
catalogRows: options.catalogRows
|
|
159
|
-
} : {},
|
|
160
|
-
...options.controlObservation ? { controlObservation: options.controlObservation } : {},
|
|
161
|
-
...auth.clientOptions
|
|
162
|
-
};
|
|
163
|
-
if (options.onResponse || options.beforeRequest) return await withCodexAppServerJsonClient(controlRequestOptions, async (request, client, scope) => {
|
|
164
|
-
await options.beforeRequest?.(request, client, scope);
|
|
165
|
-
scope.assertCurrent();
|
|
166
|
-
let response;
|
|
167
|
-
if (method === "thread/resume") {
|
|
168
|
-
if (!isJsonObject(requestParams) || typeof requestParams.threadId !== "string") throw new Error("Codex thread/resume requires a thread id.");
|
|
169
|
-
response = await resumeCodexAppServerThread({
|
|
170
|
-
client,
|
|
171
|
-
request: {
|
|
172
|
-
...requestParams,
|
|
173
|
-
threadId: requestParams.threadId
|
|
174
|
-
},
|
|
175
|
-
requestResume: () => request({
|
|
176
|
-
method,
|
|
177
|
-
requestParams,
|
|
178
|
-
assertCurrent: options.assertOwnerCurrent
|
|
179
|
-
}),
|
|
180
|
-
abandonClient: () => closeCodexStartupClientBestEffort(client)
|
|
181
|
-
});
|
|
182
|
-
} else try {
|
|
183
|
-
response = await request({
|
|
184
|
-
method,
|
|
185
|
-
requestParams,
|
|
186
|
-
assertCurrent: options.assertOwnerCurrent
|
|
187
|
-
});
|
|
188
|
-
} catch (error) {
|
|
189
|
-
if (nativeAuthFork && (isCodexAppServerIndeterminateRequestCancellationError(error) || isCodexAppServerIndeterminateTransportError(error) || error instanceof CodexAppServerRpcError && !isCodexAppServerOverloadError(error))) await closeCodexStartupClientBestEffort(client);
|
|
190
|
-
throw error;
|
|
191
|
-
}
|
|
192
|
-
if (options.onResponse) await options.onResponse(response, client, {
|
|
193
|
-
authProfileId: auth.authProfileId,
|
|
194
|
-
assertCurrent: scope.assertCurrent
|
|
195
|
-
});
|
|
196
|
-
else scope.assertCurrent();
|
|
197
|
-
return response;
|
|
198
|
-
});
|
|
199
|
-
return await requestCodexAppServerJson({
|
|
200
|
-
method,
|
|
201
|
-
requestParams,
|
|
202
|
-
...controlRequestOptions,
|
|
203
|
-
...options.assertOwnerCurrent ? { assertCurrent: () => {
|
|
204
|
-
options.assertOwnerCurrent?.();
|
|
205
|
-
options.assertCurrent?.();
|
|
206
|
-
} } : {}
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
async function safeCodexControlRequest(pluginConfig, method, requestParams, options = {}) {
|
|
210
|
-
return await safeValue(async () => await codexControlRequest(pluginConfig, method, requestParams, options));
|
|
211
|
-
}
|
|
212
|
-
async function readCodexStatusProbes(pluginConfig, config, agentDir) {
|
|
213
|
-
const options = {
|
|
214
|
-
config,
|
|
215
|
-
agentDir
|
|
216
|
-
};
|
|
217
|
-
const probe = (method, params) => safeCodexControlRequest(pluginConfig, method, params, options);
|
|
218
|
-
const [models, account, limits, mcps, skills] = await Promise.all([
|
|
219
|
-
safeValue(() => listCodexAppServerModels(requestOptions(pluginConfig, 20, config, agentDir))),
|
|
220
|
-
probe(CODEX_CONTROL_METHODS.account, { refreshToken: false }),
|
|
221
|
-
probe(CODEX_CONTROL_METHODS.rateLimits, void 0),
|
|
222
|
-
probe(CODEX_CONTROL_METHODS.listMcpServers, { limit: 100 }),
|
|
223
|
-
probe(CODEX_CONTROL_METHODS.listSkills, {})
|
|
224
|
-
]);
|
|
225
|
-
return {
|
|
226
|
-
models,
|
|
227
|
-
account,
|
|
228
|
-
limits,
|
|
229
|
-
mcps,
|
|
230
|
-
skills
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
async function safeValue(read) {
|
|
234
|
-
try {
|
|
235
|
-
return {
|
|
236
|
-
ok: true,
|
|
237
|
-
value: await read()
|
|
238
|
-
};
|
|
239
|
-
} catch (error) {
|
|
240
|
-
return {
|
|
241
|
-
ok: false,
|
|
242
|
-
error: describeControlFailure(error)
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
//#endregion
|
|
247
|
-
export { requestOptions as a, readCodexStatusProbes as i, command_rpc_exports as n, safeCodexControlRequest as o, prepareCodexControlSessionAuth as r, codexControlRequest as t };
|