@openclaw/acpx 2026.7.2-beta.2 → 2026.7.2-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.
- package/dist/doctor-contract-api.js +1 -1
- package/dist/index.js +43 -24
- package/dist/{process-lease-DiKkFj6F.js → process-lease-CU1cFI4I.js} +4 -14
- package/dist/{process-reaper-CoGRyMJ_.js → process-reaper-BIOtp_Ek.js} +1 -1
- package/dist/{register.runtime-CysfMsSr.js → register.runtime-Dajn8myc.js} +1 -1
- package/dist/register.runtime.js +1 -1
- package/dist/{runtime-BEOGc4Ik.js → runtime-CN4JQkdV.js} +89 -49
- package/dist/{service-DJchyiuU.js → service-DOsKw_R1.js} +4 -5
- package/npm-shrinkwrap.json +123 -151
- package/package.json +24 -8
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as
|
|
1
|
+
import { c as openAcpxProcessLeaseStateStore, d as ACPX_GATEWAY_INSTANCE_NAMESPACE, f as ACPX_LEGACY_GATEWAY_INSTANCE_FILE, m as normalizeAcpxGatewayInstanceRecord, o as normalizeAcpxProcessLease, p as ACPX_LEGACY_PROCESS_LEASE_FILE, s as normalizeAcpxProcessLeaseFile, u as ACPX_GATEWAY_INSTANCE_KEY } from "./process-lease-CU1cFI4I.js";
|
|
2
2
|
import fs from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { archiveLegacyStateSource } from "openclaw/plugin-sdk/runtime-doctor";
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { t as createAcpxRuntimeService } from "./register.runtime-
|
|
1
|
+
import { t as createAcpxRuntimeService } from "./register.runtime-Dajn8myc.js";
|
|
2
2
|
import "./config-schema-lrk5nlcV.js";
|
|
3
3
|
import { tryDispatchAcpReplyHook } from "openclaw/plugin-sdk/acp-runtime-backend";
|
|
4
4
|
import { finiteSecondsToTimerSafeMilliseconds } from "openclaw/plugin-sdk/number-runtime";
|
|
5
5
|
import process$1 from "node:process";
|
|
6
6
|
import { decodeNodePtyResumeParams, resolveNodeHostExecutable, runNodePtyCommand } from "openclaw/plugin-sdk/node-host";
|
|
7
7
|
import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
|
+
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
8
9
|
import { createReadStream, readFileSync, statSync } from "node:fs";
|
|
9
10
|
import fs$1 from "node:fs/promises";
|
|
10
11
|
import path from "node:path";
|
|
@@ -390,7 +391,7 @@ const LOCAL_HOST_ID$1 = "gateway";
|
|
|
390
391
|
const DEFAULT_PAGE_LIMIT = 20;
|
|
391
392
|
const MAX_PAGE_LIMIT$1 = 100;
|
|
392
393
|
const MAX_SEARCH_LENGTH = 500;
|
|
393
|
-
const MAX_CURSOR_LENGTH
|
|
394
|
+
const MAX_CURSOR_LENGTH = 128;
|
|
394
395
|
const MAX_TRANSCRIPT_ITEM_BYTES = 512 * 1024;
|
|
395
396
|
const MAX_TRANSCRIPT_PAGE_BYTES = 20 * 1024 * 1024;
|
|
396
397
|
const SESSION_ID_PATTERN$1 = /^(?!-)[A-Za-z0-9._:-]{1,256}$/u;
|
|
@@ -407,18 +408,35 @@ function boundedLimit(value, fallback = DEFAULT_PAGE_LIMIT) {
|
|
|
407
408
|
function encodeCursor(offset) {
|
|
408
409
|
return Buffer.from(JSON.stringify({ offset }), "utf8").toString("base64url");
|
|
409
410
|
}
|
|
411
|
+
function optionalRawCursor(value) {
|
|
412
|
+
if (value === void 0) return;
|
|
413
|
+
if (typeof value !== "string" || value.length === 0 || value.length > MAX_CURSOR_LENGTH) throw new Error("cursor is invalid");
|
|
414
|
+
return value;
|
|
415
|
+
}
|
|
410
416
|
function decodeCursor(value) {
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
if (!cursor) throw new Error("cursor is invalid");
|
|
417
|
+
const cursor = optionalRawCursor(value);
|
|
418
|
+
if (cursor === void 0) return 0;
|
|
414
419
|
try {
|
|
415
|
-
const
|
|
416
|
-
if (
|
|
417
|
-
|
|
420
|
+
const bytes = Buffer.from(cursor, "base64url");
|
|
421
|
+
if (bytes.toString("base64url") !== cursor) throw new Error("non-canonical base64url");
|
|
422
|
+
const parsed = JSON.parse(bytes.toString("utf8"));
|
|
423
|
+
if (!isRecord(parsed) || !Number.isSafeInteger(parsed.offset) || Number(parsed.offset) < 0) throw new Error("invalid offset");
|
|
424
|
+
const offset = Number(parsed.offset);
|
|
425
|
+
if (encodeCursor(offset) !== cursor) throw new Error("non-canonical cursor payload");
|
|
426
|
+
return offset;
|
|
418
427
|
} catch (error) {
|
|
419
428
|
throw new Error("cursor is invalid", { cause: error });
|
|
420
429
|
}
|
|
421
430
|
}
|
|
431
|
+
function isExactPiSessionCursor(value) {
|
|
432
|
+
if (typeof value !== "string") return false;
|
|
433
|
+
try {
|
|
434
|
+
decodeCursor(value);
|
|
435
|
+
return true;
|
|
436
|
+
} catch {
|
|
437
|
+
return false;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
422
440
|
function truncateUtf8(text, maxBytes) {
|
|
423
441
|
if (Buffer.byteLength(text, "utf8") <= maxBytes) return text;
|
|
424
442
|
let low = 0;
|
|
@@ -485,8 +503,7 @@ function parseListParams(value) {
|
|
|
485
503
|
if (unknown) throw new Error(`unknown Pi session list parameter: ${unknown}`);
|
|
486
504
|
const searchTerm = optionalPiString(value.searchTerm, MAX_SEARCH_LENGTH);
|
|
487
505
|
if (value.searchTerm !== void 0 && !searchTerm) throw new Error("searchTerm is invalid");
|
|
488
|
-
const cursor =
|
|
489
|
-
if (value.cursor !== void 0 && !cursor) throw new Error("cursor is invalid");
|
|
506
|
+
const cursor = optionalRawCursor(value.cursor);
|
|
490
507
|
return {
|
|
491
508
|
limit: boundedLimit(value.limit),
|
|
492
509
|
...searchTerm ? { searchTerm } : {},
|
|
@@ -503,8 +520,7 @@ function parseReadParams(value) {
|
|
|
503
520
|
if (unknown) throw new Error(`unknown Pi session read parameter: ${unknown}`);
|
|
504
521
|
const threadId = optionalPiString(value.threadId, 256);
|
|
505
522
|
if (!threadId || !SESSION_ID_PATTERN$1.test(threadId)) throw new Error("threadId is invalid");
|
|
506
|
-
const cursor =
|
|
507
|
-
if (value.cursor !== void 0 && !cursor) throw new Error("cursor is invalid");
|
|
523
|
+
const cursor = optionalRawCursor(value.cursor);
|
|
508
524
|
return {
|
|
509
525
|
threadId,
|
|
510
526
|
limit: boundedLimit(value.limit),
|
|
@@ -534,7 +550,7 @@ function isoTimestamp(message, entry) {
|
|
|
534
550
|
function jsonText(value, maxLength = 2e4) {
|
|
535
551
|
try {
|
|
536
552
|
const text = JSON.stringify(value);
|
|
537
|
-
return text.length > maxLength ? `${text
|
|
553
|
+
return text.length > maxLength ? `${truncateUtf16Safe(text, maxLength)}…` : text;
|
|
538
554
|
} catch {
|
|
539
555
|
return;
|
|
540
556
|
}
|
|
@@ -692,7 +708,6 @@ const CAPABILITY = "pi-sessions";
|
|
|
692
708
|
const LOCAL_HOST_ID = "gateway";
|
|
693
709
|
const MAX_PAGE_LIMIT = 100;
|
|
694
710
|
const MAX_HOSTS = 100;
|
|
695
|
-
const MAX_CURSOR_LENGTH = 128;
|
|
696
711
|
const NODE_TIMEOUT_MS = 2e4;
|
|
697
712
|
const SESSION_ID_PATTERN = /^(?!-)[A-Za-z0-9._:-]{1,256}$/u;
|
|
698
713
|
const TRANSCRIPT_ITEM_TYPES = /* @__PURE__ */ new Set([
|
|
@@ -714,7 +729,7 @@ function isOptionalNumber(value) {
|
|
|
714
729
|
return value === void 0 || typeof value === "number";
|
|
715
730
|
}
|
|
716
731
|
function isNodeSession(value) {
|
|
717
|
-
return isRecord(value) && typeof value.threadId === "string" && SESSION_ID_PATTERN.test(value.threadId) && typeof value.status === "string" && value.status.length > 0 && typeof value.archived === "boolean" && typeof value.canContinue === "boolean" && typeof value.canArchive === "boolean" && isOptionalString(value.name) && isOptionalString(value.cwd) && isOptionalString(value.source) && isOptionalString(value.modelProvider) && isOptionalString(value.cliVersion) && isOptionalString(value.gitBranch) && isOptionalString(value.
|
|
732
|
+
return isRecord(value) && typeof value.threadId === "string" && SESSION_ID_PATTERN.test(value.threadId) && typeof value.status === "string" && value.status.length > 0 && typeof value.archived === "boolean" && typeof value.canContinue === "boolean" && typeof value.canArchive === "boolean" && isOptionalString(value.name) && isOptionalString(value.cwd) && isOptionalString(value.source) && isOptionalString(value.modelProvider) && isOptionalString(value.cliVersion) && isOptionalString(value.gitBranch) && isOptionalString(value.sessionKey) && isOptionalNumber(value.createdAt) && isOptionalNumber(value.updatedAt) && isOptionalNumber(value.recencyAt);
|
|
718
733
|
}
|
|
719
734
|
function isNodeTranscriptItem(value) {
|
|
720
735
|
return isRecord(value) && typeof value.type === "string" && TRANSCRIPT_ITEM_TYPES.has(value.type) && isOptionalString(value.id) && isOptionalString(value.text) && isOptionalString(value.timestamp) && isOptionalString(value.model) && (value.truncated === void 0 || typeof value.truncated === "boolean");
|
|
@@ -830,13 +845,15 @@ async function listPiNodeHost(runtime, query, node) {
|
|
|
830
845
|
}
|
|
831
846
|
};
|
|
832
847
|
try {
|
|
848
|
+
const cursor = query.cursors?.[hostId];
|
|
849
|
+
if (cursor !== void 0 && !isExactPiSessionCursor(cursor)) throw new Error("cursor is invalid");
|
|
833
850
|
const page = parseNodeSessionPage(unwrapNodePayload(await runtime.nodes.invoke({
|
|
834
851
|
nodeId: node.nodeId,
|
|
835
852
|
command: PI_SESSIONS_LIST_COMMAND,
|
|
836
853
|
params: {
|
|
837
854
|
...query.limitPerHost ? { limit: query.limitPerHost } : {},
|
|
838
855
|
...query.search ? { searchTerm: query.search } : {},
|
|
839
|
-
...
|
|
856
|
+
...cursor !== void 0 ? { cursor } : {}
|
|
840
857
|
},
|
|
841
858
|
timeoutMs: NODE_TIMEOUT_MS,
|
|
842
859
|
scopes: ["operator.write"]
|
|
@@ -861,22 +878,22 @@ function parseNodeSessionPage(value) {
|
|
|
861
878
|
if (!isRecord(value) || !Array.isArray(value.sessions) || value.sessions.length > MAX_PAGE_LIMIT) throw new Error("Pi node returned an invalid session page");
|
|
862
879
|
if (!value.sessions.every(isNodeSession)) throw new Error("Pi node returned an invalid session page");
|
|
863
880
|
const sessions = value.sessions;
|
|
864
|
-
const nextCursor =
|
|
865
|
-
if (
|
|
881
|
+
const nextCursor = value.nextCursor;
|
|
882
|
+
if (nextCursor !== void 0 && !isExactPiSessionCursor(nextCursor)) throw new Error("Pi node returned an invalid cursor");
|
|
866
883
|
return {
|
|
867
884
|
sessions,
|
|
868
|
-
...nextCursor ? { nextCursor } : {}
|
|
885
|
+
...nextCursor !== void 0 ? { nextCursor } : {}
|
|
869
886
|
};
|
|
870
887
|
}
|
|
871
888
|
function parseNodeTranscriptPage(value, threadId) {
|
|
872
889
|
if (!isRecord(value) || value.threadId !== threadId || !Array.isArray(value.items) || value.items.length > MAX_PAGE_LIMIT || !value.items.every(isNodeTranscriptItem)) throw new Error("Pi node returned an invalid transcript page");
|
|
873
|
-
const nextCursor =
|
|
874
|
-
if (
|
|
890
|
+
const nextCursor = value.nextCursor;
|
|
891
|
+
if (nextCursor !== void 0 && !isExactPiSessionCursor(nextCursor)) throw new Error("Pi node returned an invalid cursor");
|
|
875
892
|
return {
|
|
876
893
|
hostId: LOCAL_HOST_ID,
|
|
877
894
|
threadId,
|
|
878
895
|
items: value.items,
|
|
879
|
-
...nextCursor ? { nextCursor } : {}
|
|
896
|
+
...nextCursor !== void 0 ? { nextCursor } : {}
|
|
880
897
|
};
|
|
881
898
|
}
|
|
882
899
|
async function listPiHosts(runtime, query) {
|
|
@@ -986,10 +1003,12 @@ async function openPiTerminal(params) {
|
|
|
986
1003
|
};
|
|
987
1004
|
}
|
|
988
1005
|
async function readPiTranscript(runtime, request) {
|
|
1006
|
+
const cursor = request.cursor;
|
|
1007
|
+
if (cursor !== void 0 && !isExactPiSessionCursor(cursor)) throw new Error("cursor is invalid");
|
|
989
1008
|
if (request.hostId === LOCAL_HOST_ID) return await readLocalPiTranscriptPage({
|
|
990
1009
|
threadId: request.threadId,
|
|
991
1010
|
...request.limit ? { limit: request.limit } : {},
|
|
992
|
-
...
|
|
1011
|
+
...cursor !== void 0 ? { cursor } : {}
|
|
993
1012
|
});
|
|
994
1013
|
if (!request.hostId.startsWith("node:")) throw new Error("hostId is invalid");
|
|
995
1014
|
const nodeId = request.hostId.slice(5);
|
|
@@ -1002,7 +1021,7 @@ async function readPiTranscript(runtime, request) {
|
|
|
1002
1021
|
params: {
|
|
1003
1022
|
threadId: request.threadId,
|
|
1004
1023
|
...request.limit ? { limit: request.limit } : {},
|
|
1005
|
-
...
|
|
1024
|
+
...cursor !== void 0 ? { cursor } : {}
|
|
1006
1025
|
},
|
|
1007
1026
|
timeoutMs: NODE_TIMEOUT_MS,
|
|
1008
1027
|
scopes: ["operator.write"]
|
|
@@ -22,11 +22,7 @@ function normalizeAcpxGatewayInstanceRecord(value) {
|
|
|
22
22
|
* Persistent lease store for ACPX wrapper processes. Leases let OpenClaw attach
|
|
23
23
|
* gateway/session identity to spawned ACP processes and clean them up later.
|
|
24
24
|
*/
|
|
25
|
-
/**
|
|
26
|
-
const OPENCLAW_ACPX_LEASE_ID_ENV = "OPENCLAW_ACPX_LEASE_ID";
|
|
27
|
-
/** Environment variable carrying the owning gateway instance id. */
|
|
28
|
-
const OPENCLAW_GATEWAY_INSTANCE_ID_ENV = "OPENCLAW_GATEWAY_INSTANCE_ID";
|
|
29
|
-
/** CLI argument carrying the ACPX process lease id for platforms without env wrapping. */
|
|
25
|
+
/** CLI argument carrying the ACPX process lease id. */
|
|
30
26
|
const OPENCLAW_ACPX_LEASE_ID_ARG = "--openclaw-acpx-lease-id";
|
|
31
27
|
/** CLI argument carrying the owning gateway instance id. */
|
|
32
28
|
const OPENCLAW_GATEWAY_INSTANCE_ID_ARG = "--openclaw-gateway-instance-id";
|
|
@@ -127,15 +123,9 @@ function appendAcpxLeaseArgs(params) {
|
|
|
127
123
|
quoteEnvValue(params.gatewayInstanceId)
|
|
128
124
|
].join(" ");
|
|
129
125
|
}
|
|
130
|
-
/** Add ACPX lease identity to a command through
|
|
126
|
+
/** Add ACPX lease identity to a command through portable wrapper arguments. */
|
|
131
127
|
function withAcpxLeaseEnvironment(params) {
|
|
132
|
-
|
|
133
|
-
return [
|
|
134
|
-
"env",
|
|
135
|
-
`${OPENCLAW_ACPX_LEASE_ID_ENV}=${quoteEnvValue(params.leaseId)}`,
|
|
136
|
-
`${OPENCLAW_GATEWAY_INSTANCE_ID_ENV}=${quoteEnvValue(params.gatewayInstanceId)}`,
|
|
137
|
-
appendAcpxLeaseArgs(params)
|
|
138
|
-
].join(" ");
|
|
128
|
+
return appendAcpxLeaseArgs(params);
|
|
139
129
|
}
|
|
140
130
|
//#endregion
|
|
141
|
-
export {
|
|
131
|
+
export { hashAcpxProcessCommand as a, openAcpxProcessLeaseStateStore as c, ACPX_GATEWAY_INSTANCE_NAMESPACE as d, ACPX_LEGACY_GATEWAY_INSTANCE_FILE as f, createAcpxProcessLeaseStore as i, withAcpxLeaseEnvironment as l, normalizeAcpxGatewayInstanceRecord as m, OPENCLAW_GATEWAY_INSTANCE_ID_ARG as n, normalizeAcpxProcessLease as o, ACPX_LEGACY_PROCESS_LEASE_FILE as p, createAcpxProcessLeaseId as r, normalizeAcpxProcessLeaseFile as s, OPENCLAW_ACPX_LEASE_ID_ARG as t, ACPX_GATEWAY_INSTANCE_KEY as u };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as AcpxPluginConfigSchema } from "./config-schema-lrk5nlcV.js";
|
|
2
|
-
import "./process-lease-
|
|
2
|
+
import "./process-lease-CU1cFI4I.js";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import { formatPluginConfigIssue } from "openclaw/plugin-sdk/extension-shared";
|
|
5
5
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -200,7 +200,7 @@ function createLazyAcpRuntimeProxy(resolveRuntime) {
|
|
|
200
200
|
* immediately, then imports the heavier service only when a session needs it.
|
|
201
201
|
*/
|
|
202
202
|
const ACPX_BACKEND_ID = "acpx";
|
|
203
|
-
const loadServiceModule = createLazyRuntimeModule(() => import("./service-
|
|
203
|
+
const loadServiceModule = createLazyRuntimeModule(() => import("./service-DOsKw_R1.js"));
|
|
204
204
|
async function startRealService(state) {
|
|
205
205
|
if (state.realRuntime) return state.realRuntime;
|
|
206
206
|
if (!state.ctx) throw new Error("ACPX runtime service is not started");
|
package/dist/register.runtime.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as createAcpxRuntimeService } from "./register.runtime-
|
|
1
|
+
import { t as createAcpxRuntimeService } from "./register.runtime-Dajn8myc.js";
|
|
2
2
|
export { createAcpxRuntimeService };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as hashAcpxProcessCommand, l as withAcpxLeaseEnvironment, r as createAcpxProcessLeaseId } from "./process-lease-CU1cFI4I.js";
|
|
2
2
|
import { AcpRuntimeError } from "./runtime-api.js";
|
|
3
|
-
import { c as splitCommandParts, f as OPENCLAW_CODEX_CONFIG_ARG, n as isOpenClawLeaseAwareAcpxProcessCommand, t as cleanupOpenClawOwnedAcpxProcessTree, u as CODEX_ACP_PACKAGE } from "./process-reaper-
|
|
3
|
+
import { c as splitCommandParts, f as OPENCLAW_CODEX_CONFIG_ARG, n as isOpenClawLeaseAwareAcpxProcessCommand, t as cleanupOpenClawOwnedAcpxProcessTree, u as CODEX_ACP_PACKAGE } from "./process-reaper-BIOtp_Ek.js";
|
|
4
4
|
import { parseStrictPositiveInteger } from "openclaw/plugin-sdk/number-runtime";
|
|
5
5
|
import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
|
+
import { sliceUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
6
7
|
import fs from "node:fs/promises";
|
|
7
8
|
import path, { resolve } from "node:path";
|
|
8
9
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
9
10
|
import { ACPX_BACKEND_ID, AcpxRuntime as AcpxRuntime$1, createAcpRuntime, createAgentRegistry, createFileSessionStore, decodeAcpxRuntimeHandleState, encodeAcpxRuntimeHandleState, isRequestedModelUnsupportedError } from "acpx/runtime";
|
|
10
11
|
import { redactSensitiveText } from "openclaw/plugin-sdk/security-runtime";
|
|
11
|
-
import { sliceUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
12
12
|
//#region extensions/acpx/src/runtime.ts
|
|
13
13
|
/**
|
|
14
14
|
* OpenClaw ACPX runtime adapter. It wraps the upstream acpx runtime with
|
|
@@ -166,12 +166,6 @@ const OPENCLAW_BRIDGE_SUBCOMMAND = "acp";
|
|
|
166
166
|
const CODEX_ACP_AGENT_ID = "codex";
|
|
167
167
|
const CODEX_ACP_OPENCLAW_PREFIX = "openai/";
|
|
168
168
|
const CLAUDE_ACP_OPENCLAW_PREFIX = "anthropic/";
|
|
169
|
-
const CODEX_ACP_REASONING_EFFORTS = /* @__PURE__ */ new Set([
|
|
170
|
-
"low",
|
|
171
|
-
"medium",
|
|
172
|
-
"high",
|
|
173
|
-
"xhigh"
|
|
174
|
-
]);
|
|
175
169
|
const CODEX_ACP_THINKING_ALIASES = /* @__PURE__ */ new Map([
|
|
176
170
|
["off", void 0],
|
|
177
171
|
["minimal", "low"],
|
|
@@ -286,24 +280,51 @@ function normalizeCodexAcpReasoningEffort(rawThinking) {
|
|
|
286
280
|
if (!CODEX_ACP_THINKING_ALIASES.has(normalized)) failUnsupportedCodexAcpThinking(rawThinking ?? "");
|
|
287
281
|
return CODEX_ACP_THINKING_ALIASES.get(normalized);
|
|
288
282
|
}
|
|
289
|
-
function
|
|
283
|
+
function isCodexAcpReasoningEffortAlias(value) {
|
|
284
|
+
const normalized = value?.trim().toLowerCase();
|
|
285
|
+
return Boolean(normalized && CODEX_ACP_THINKING_ALIASES.has(normalized));
|
|
286
|
+
}
|
|
287
|
+
function classifyCodexAcpModelRequest(rawModel, rawThinking) {
|
|
290
288
|
const raw = rawModel?.trim();
|
|
291
289
|
const thinkingReasoningEffort = normalizeCodexAcpReasoningEffort(rawThinking);
|
|
292
|
-
|
|
290
|
+
const thinkingOnlyOverride = thinkingReasoningEffort ? { reasoningEffort: thinkingReasoningEffort } : void 0;
|
|
291
|
+
if (!raw) return {
|
|
292
|
+
kind: "override",
|
|
293
|
+
override: thinkingOnlyOverride ?? {}
|
|
294
|
+
};
|
|
293
295
|
let value = raw;
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
296
|
+
let hadOpenAiQualifier = false;
|
|
297
|
+
if (value.toLowerCase().startsWith(CODEX_ACP_OPENCLAW_PREFIX)) {
|
|
298
|
+
value = value.slice(7);
|
|
299
|
+
hadOpenAiQualifier = true;
|
|
300
|
+
}
|
|
301
|
+
let model = value.trim();
|
|
302
|
+
let modelReasoningEffort;
|
|
303
|
+
const slashIndex = value.lastIndexOf("/");
|
|
304
|
+
if (slashIndex >= 0 && isCodexAcpReasoningEffortAlias(value.slice(slashIndex + 1))) {
|
|
305
|
+
modelReasoningEffort = normalizeCodexAcpReasoningEffort(value.slice(slashIndex + 1));
|
|
306
|
+
model = value.slice(0, slashIndex).trim();
|
|
307
|
+
}
|
|
308
|
+
if (hadOpenAiQualifier && (!model || model.includes("/"))) failUnsupportedCodexAcpModel(raw, `Codex ACP model "${raw}" is not supported. Use openai/<model> or <model>/<reasoning-effort>.`);
|
|
309
|
+
if (!model || model.includes("/")) return thinkingOnlyOverride ? {
|
|
310
|
+
kind: "unsupported",
|
|
311
|
+
thinkingOverride: thinkingOnlyOverride
|
|
312
|
+
} : { kind: "unsupported" };
|
|
300
313
|
const reasoningEffort = thinkingReasoningEffort ?? modelReasoningEffort;
|
|
301
|
-
if (reasoningEffort && !CODEX_ACP_REASONING_EFFORTS.has(reasoningEffort)) failUnsupportedCodexAcpThinking(reasoningEffort);
|
|
302
314
|
return {
|
|
303
|
-
|
|
304
|
-
|
|
315
|
+
kind: "override",
|
|
316
|
+
override: {
|
|
317
|
+
model,
|
|
318
|
+
...reasoningEffort ? { reasoningEffort } : {}
|
|
319
|
+
}
|
|
305
320
|
};
|
|
306
321
|
}
|
|
322
|
+
function withCodexSessionModel(input, override) {
|
|
323
|
+
const next = { ...input };
|
|
324
|
+
if (override?.model) next.model = override.model;
|
|
325
|
+
else delete next.model;
|
|
326
|
+
return next;
|
|
327
|
+
}
|
|
307
328
|
function normalizeClaudeAcpModelOverride(rawModel) {
|
|
308
329
|
const raw = rawModel?.trim();
|
|
309
330
|
if (!raw) return;
|
|
@@ -317,8 +338,9 @@ function withAcpxSessionOptions(input) {
|
|
|
317
338
|
...existingOptions,
|
|
318
339
|
model
|
|
319
340
|
} : existingOptions;
|
|
341
|
+
const { modelExplicit: _modelExplicit, ...rest } = input;
|
|
320
342
|
return {
|
|
321
|
-
...
|
|
343
|
+
...rest,
|
|
322
344
|
...sessionOptions ? { sessionOptions } : {}
|
|
323
345
|
};
|
|
324
346
|
}
|
|
@@ -617,9 +639,18 @@ var AcpxRuntime = class {
|
|
|
617
639
|
command,
|
|
618
640
|
sessionKey: input.sessionKey
|
|
619
641
|
});
|
|
642
|
+
const isCodexAcp = normalizeAgentName(input.agent) === CODEX_ACP_AGENT_ID && isCodexAcpCommand(command);
|
|
620
643
|
const claudeModelOverride = isClaudeAcpCommand(command) ? normalizeClaudeAcpModelOverride(input.model) : void 0;
|
|
621
|
-
const
|
|
622
|
-
|
|
644
|
+
const codexClassification = isCodexAcp ? classifyCodexAcpModelRequest(input.model, input.thinking) : void 0;
|
|
645
|
+
if (codexClassification?.kind === "unsupported" && input.modelExplicit) failUnsupportedCodexAcpModel(input.model ?? "");
|
|
646
|
+
const classifiedCodexOverride = codexClassification?.kind === "override" ? codexClassification.override : codexClassification?.thinkingOverride;
|
|
647
|
+
const codexModelOverride = classifiedCodexOverride && Object.keys(classifiedCodexOverride).length > 0 ? classifiedCodexOverride : void 0;
|
|
648
|
+
const requestedModel = input.model?.trim();
|
|
649
|
+
const appliedModel = isCodexAcp && requestedModel ? codexModelOverride?.model ? {
|
|
650
|
+
kind: "applied",
|
|
651
|
+
model: requestedModel
|
|
652
|
+
} : { kind: "dropped" } : void 0;
|
|
653
|
+
const ensureInput = isCodexAcp ? withCodexSessionModel(input, codexModelOverride) : claudeModelOverride ? {
|
|
623
654
|
...input,
|
|
624
655
|
model: claudeModelOverride
|
|
625
656
|
} : input;
|
|
@@ -631,7 +662,7 @@ var AcpxRuntime = class {
|
|
|
631
662
|
command: stableLaunchCommand,
|
|
632
663
|
resumeSessionId: input.resumeSessionId
|
|
633
664
|
});
|
|
634
|
-
|
|
665
|
+
const handle = !codexModelOverride ? await this.runWithLaunchLease({
|
|
635
666
|
sessionKey: ensureInput.sessionKey,
|
|
636
667
|
command: stableLaunchCommand,
|
|
637
668
|
enabled: shouldStartWithLease,
|
|
@@ -640,21 +671,20 @@ var AcpxRuntime = class {
|
|
|
640
671
|
fallbackCode: "ACP_SESSION_INIT_FAILED",
|
|
641
672
|
run: () => ensureDelegateSessionWithModelFallback(delegate, ensureInput)
|
|
642
673
|
})
|
|
643
|
-
})
|
|
644
|
-
const normalizedInput = {
|
|
645
|
-
...ensureInput,
|
|
646
|
-
...codexModelOverride.model ? { model: codexModelOverride.model } : {}
|
|
647
|
-
};
|
|
648
|
-
return await this.runWithLaunchLease({
|
|
674
|
+
}) : await this.runWithLaunchLease({
|
|
649
675
|
sessionKey: input.sessionKey,
|
|
650
676
|
command: stableLaunchCommand,
|
|
651
677
|
enabled: shouldStartWithLease,
|
|
652
678
|
run: () => this.codexAcpModelOverrideScope.run(codexModelOverride, () => this.withCodexWrapperDiagnostics({
|
|
653
679
|
command: stableLaunchCommand,
|
|
654
680
|
fallbackCode: "ACP_SESSION_INIT_FAILED",
|
|
655
|
-
run: () => delegate.ensureSession(withAcpxSessionOptions(
|
|
681
|
+
run: () => delegate.ensureSession(withAcpxSessionOptions(ensureInput))
|
|
656
682
|
}))
|
|
657
683
|
});
|
|
684
|
+
return appliedModel ? {
|
|
685
|
+
...handle,
|
|
686
|
+
appliedModel
|
|
687
|
+
} : handle;
|
|
658
688
|
}
|
|
659
689
|
async *runTurn(input) {
|
|
660
690
|
const command = await this.resolveCommandForHandle(input.handle);
|
|
@@ -771,22 +801,32 @@ var AcpxRuntime = class {
|
|
|
771
801
|
const isCodexAcp = isCodexAcpCommand(command);
|
|
772
802
|
if (WIRE_TIMEOUT_CONFIG_KEYS.has(key) && (isCodexAcp || isClaudeAcpCommand(command))) return;
|
|
773
803
|
if (isCodexAcp) {
|
|
774
|
-
if (key === "model"
|
|
775
|
-
const
|
|
776
|
-
if (
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
804
|
+
if (key === "model") {
|
|
805
|
+
const classification = classifyCodexAcpModelRequest(input.value);
|
|
806
|
+
if (classification.kind === "unsupported") failUnsupportedCodexAcpModel(input.value);
|
|
807
|
+
const { override } = classification;
|
|
808
|
+
if (override.model) await delegate.setConfigOption({
|
|
809
|
+
...input,
|
|
810
|
+
key: "model",
|
|
811
|
+
value: override.model
|
|
812
|
+
});
|
|
813
|
+
if (override.reasoningEffort) await delegate.setConfigOption({
|
|
814
|
+
...input,
|
|
815
|
+
key: "reasoning_effort",
|
|
816
|
+
value: override.reasoningEffort
|
|
817
|
+
});
|
|
818
|
+
return;
|
|
819
|
+
}
|
|
820
|
+
if (key === "thinking" || key === "thought_level" || key === "reasoning_effort") {
|
|
821
|
+
const classification = classifyCodexAcpModelRequest(void 0, input.value);
|
|
822
|
+
const reasoningEffort = classification.kind === "override" ? classification.override.reasoningEffort : void 0;
|
|
823
|
+
if (!reasoningEffort) return;
|
|
824
|
+
await delegate.setConfigOption({
|
|
825
|
+
...input,
|
|
826
|
+
key: "reasoning_effort",
|
|
827
|
+
value: reasoningEffort
|
|
828
|
+
});
|
|
829
|
+
return;
|
|
790
830
|
}
|
|
791
831
|
}
|
|
792
832
|
if (isClaudeAcpCommand(command) && key === "model") {
|
|
@@ -827,10 +867,10 @@ var AcpxRuntime = class {
|
|
|
827
867
|
const testing = {
|
|
828
868
|
appendCodexAcpConfigOverrides,
|
|
829
869
|
assertSupportedRuntimeSessionMode,
|
|
870
|
+
classifyCodexAcpModelRequest,
|
|
830
871
|
isClaudeAcpCommand,
|
|
831
872
|
isCodexAcpCommand,
|
|
832
|
-
normalizeClaudeAcpModelOverride
|
|
833
|
-
normalizeCodexAcpModelOverride
|
|
873
|
+
normalizeClaudeAcpModelOverride
|
|
834
874
|
};
|
|
835
875
|
//#endregion
|
|
836
876
|
export { ACPX_BACKEND_ID, AcpxRuntime, testing as __testing, testing, createAcpRuntime, createAgentRegistry, createFileSessionStore, decodeAcpxRuntimeHandleState, encodeAcpxRuntimeHandleState };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as createLazyAcpRuntimeProxy } from "./register.runtime-
|
|
1
|
+
import { n as createLazyAcpRuntimeProxy } from "./register.runtime-Dajn8myc.js";
|
|
2
2
|
import "./config-schema-lrk5nlcV.js";
|
|
3
|
-
import {
|
|
3
|
+
import { c as openAcpxProcessLeaseStateStore, d as ACPX_GATEWAY_INSTANCE_NAMESPACE, i as createAcpxProcessLeaseStore, m as normalizeAcpxGatewayInstanceRecord, n as OPENCLAW_GATEWAY_INSTANCE_ID_ARG, t as OPENCLAW_ACPX_LEASE_ID_ARG, u as ACPX_GATEWAY_INSTANCE_KEY } from "./process-lease-CU1cFI4I.js";
|
|
4
4
|
import { registerAcpRuntimeBackend, unregisterAcpRuntimeBackend } from "./runtime-api.js";
|
|
5
|
-
import { a as resolveAcpxPluginRoot, c as splitCommandParts, d as LEGACY_CODEX_ACP_PACKAGE, f as OPENCLAW_CODEX_CONFIG_ARG, i as resolveAcpxPluginConfig, l as CODEX_ACP_BIN, o as toAcpMcpServers, r as reapStaleOpenClawOwnedAcpxOrphans, s as quoteCommandPart, t as cleanupOpenClawOwnedAcpxProcessTree, u as CODEX_ACP_PACKAGE } from "./process-reaper-
|
|
5
|
+
import { a as resolveAcpxPluginRoot, c as splitCommandParts, d as LEGACY_CODEX_ACP_PACKAGE, f as OPENCLAW_CODEX_CONFIG_ARG, i as resolveAcpxPluginConfig, l as CODEX_ACP_BIN, o as toAcpMcpServers, r as reapStaleOpenClawOwnedAcpxOrphans, s as quoteCommandPart, t as cleanupOpenClawOwnedAcpxProcessTree, u as CODEX_ACP_PACKAGE } from "./process-reaper-BIOtp_Ek.js";
|
|
6
6
|
import { createRequire } from "node:module";
|
|
7
7
|
import { finiteSecondsToTimerSafeMilliseconds } from "openclaw/plugin-sdk/number-runtime";
|
|
8
8
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
@@ -431,7 +431,6 @@ function resolveStderrLogPath(args) {
|
|
|
431
431
|
return undefined;
|
|
432
432
|
}
|
|
433
433
|
const leaseId =
|
|
434
|
-
process.env[${JSON.stringify(OPENCLAW_ACPX_LEASE_ID_ENV)}] ||
|
|
435
434
|
readOpenClawWrapperArg(args, ${quoteCommandPart(OPENCLAW_ACPX_LEASE_ID_ARG)}) ||
|
|
436
435
|
"pid-" + process.pid;
|
|
437
436
|
const fileName = stderrLogFileNamePrefix + "." + safeDiagnosticFilePart(leaseId) + ".log";
|
|
@@ -1027,7 +1026,7 @@ async function prepareAcpxCodexAuthConfig(params) {
|
|
|
1027
1026
|
const ENABLE_STARTUP_PROBE_ENV = "OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE";
|
|
1028
1027
|
const SKIP_RUNTIME_PROBE_ENV = "OPENCLAW_SKIP_ACPX_RUNTIME_PROBE";
|
|
1029
1028
|
const ACPX_BACKEND_ID = "acpx";
|
|
1030
|
-
const loadRuntimeModule = createLazyRuntimeModule(() => import("./runtime-
|
|
1029
|
+
const loadRuntimeModule = createLazyRuntimeModule(() => import("./runtime-CN4JQkdV.js"));
|
|
1031
1030
|
/** Convert ACPX timeout seconds into timer-safe milliseconds. */
|
|
1032
1031
|
function resolveAcpxTimerTimeoutMs(timeoutSeconds) {
|
|
1033
1032
|
if (timeoutSeconds === void 0) return;
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/acpx",
|
|
3
|
-
"version": "2026.7.2-beta.
|
|
3
|
+
"version": "2026.7.2-beta.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@openclaw/acpx",
|
|
9
|
-
"version": "2026.7.2-beta.
|
|
9
|
+
"version": "2026.7.2-beta.4",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@agentclientprotocol/claude-agent-acp": "0.
|
|
12
|
-
"@agentclientprotocol/codex-acp": "1.1.
|
|
13
|
-
"acpx": "0.
|
|
11
|
+
"@agentclientprotocol/claude-agent-acp": "0.59.0",
|
|
12
|
+
"@agentclientprotocol/codex-acp": "1.1.4",
|
|
13
|
+
"acpx": "0.12.0",
|
|
14
14
|
"smol-toml": "1.7.0",
|
|
15
15
|
"zod": "4.4.3"
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"node_modules/@agentclientprotocol/claude-agent-acp": {
|
|
19
|
-
"version": "0.
|
|
20
|
-
"resolved": "https://registry.npmjs.org/@agentclientprotocol/claude-agent-acp/-/claude-agent-acp-0.
|
|
21
|
-
"integrity": "sha512-
|
|
19
|
+
"version": "0.59.0",
|
|
20
|
+
"resolved": "https://registry.npmjs.org/@agentclientprotocol/claude-agent-acp/-/claude-agent-acp-0.59.0.tgz",
|
|
21
|
+
"integrity": "sha512-GejLH5qxsI5IoSDfhyOVDEsRNxqi6y0Rcj5FstVeOwMACSht/bUXII0HILbzOQNoA5qlyZle3FRvf+CAjD7Rpg==",
|
|
22
22
|
"license": "Apache-2.0",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@agentclientprotocol/sdk": "1.1
|
|
25
|
-
"@anthropic-ai/claude-agent-sdk": "0.3.
|
|
24
|
+
"@agentclientprotocol/sdk": "1.2.1",
|
|
25
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.207",
|
|
26
26
|
"zod": "^3.25.0 || ^4.0.0"
|
|
27
27
|
},
|
|
28
28
|
"bin": {
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"node_modules/@agentclientprotocol/codex-acp": {
|
|
36
|
-
"version": "1.1.
|
|
37
|
-
"resolved": "https://registry.npmjs.org/@agentclientprotocol/codex-acp/-/codex-acp-1.1.
|
|
38
|
-
"integrity": "sha512-
|
|
36
|
+
"version": "1.1.4",
|
|
37
|
+
"resolved": "https://registry.npmjs.org/@agentclientprotocol/codex-acp/-/codex-acp-1.1.4.tgz",
|
|
38
|
+
"integrity": "sha512-DzusIpGwlQwMWuHgJhU8FWMsyQvzjenB93IEzQATkdbNulo5Rd9GKOz8+B+/C9iWWxmyXgtgmjzaL+iRFyDryQ==",
|
|
39
39
|
"license": "Apache-2.0",
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@agentclientprotocol/sdk": "^1.2.1",
|
|
42
|
-
"@openai/codex": "^0.144.
|
|
42
|
+
"@openai/codex": "^0.144.4",
|
|
43
43
|
"diff": "^9.0.0",
|
|
44
44
|
"open": "^11.0.0",
|
|
45
45
|
"vscode-jsonrpc": "^9.0.1",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"codex-acp": "dist/index.js"
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
|
-
"node_modules/@agentclientprotocol/
|
|
52
|
+
"node_modules/@agentclientprotocol/sdk": {
|
|
53
53
|
"version": "1.2.1",
|
|
54
54
|
"resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.2.1.tgz",
|
|
55
55
|
"integrity": "sha512-jwYUdOQR7tc+Zfch53VL4JJyUNK/46q03uUTYb+PjECsmnNl94XFXOfYLJ8RBpMNidXd1rpOAVgb0vqD98xImA==",
|
|
@@ -58,32 +58,23 @@
|
|
|
58
58
|
"zod": "^3.25.0 || ^4.0.0"
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
|
-
"node_modules/@agentclientprotocol/sdk": {
|
|
62
|
-
"version": "1.1.0",
|
|
63
|
-
"resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.1.0.tgz",
|
|
64
|
-
"integrity": "sha512-NT2KqphUJ3w6EksUL51ZhJgIYgq/ZLGcBPkyMKgRSO5PMVwe9DnKKX+Htnvk6KHh6dUuh34UHK4gKp+4te1Mdg==",
|
|
65
|
-
"license": "Apache-2.0",
|
|
66
|
-
"peerDependencies": {
|
|
67
|
-
"zod": "^3.25.0 || ^4.0.0"
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
61
|
"node_modules/@anthropic-ai/claude-agent-sdk": {
|
|
71
|
-
"version": "0.3.
|
|
72
|
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.3.
|
|
73
|
-
"integrity": "sha512-
|
|
62
|
+
"version": "0.3.207",
|
|
63
|
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.3.207.tgz",
|
|
64
|
+
"integrity": "sha512-y0PkQRmQBi96MHiN5Xzfq+GaddxCZCqI/cXEQBLYBLXGa4i1nDSlulQqkMBj2RorrrSGQJ6Wdw+uhu6OfHNPzA==",
|
|
74
65
|
"license": "SEE LICENSE IN README.md",
|
|
75
66
|
"engines": {
|
|
76
67
|
"node": ">=18.0.0"
|
|
77
68
|
},
|
|
78
69
|
"optionalDependencies": {
|
|
79
|
-
"@anthropic-ai/claude-agent-sdk-darwin-arm64": "0.3.
|
|
80
|
-
"@anthropic-ai/claude-agent-sdk-darwin-x64": "0.3.
|
|
81
|
-
"@anthropic-ai/claude-agent-sdk-linux-arm64": "0.3.
|
|
82
|
-
"@anthropic-ai/claude-agent-sdk-linux-arm64-musl": "0.3.
|
|
83
|
-
"@anthropic-ai/claude-agent-sdk-linux-x64": "0.3.
|
|
84
|
-
"@anthropic-ai/claude-agent-sdk-linux-x64-musl": "0.3.
|
|
85
|
-
"@anthropic-ai/claude-agent-sdk-win32-arm64": "0.3.
|
|
86
|
-
"@anthropic-ai/claude-agent-sdk-win32-x64": "0.3.
|
|
70
|
+
"@anthropic-ai/claude-agent-sdk-darwin-arm64": "0.3.207",
|
|
71
|
+
"@anthropic-ai/claude-agent-sdk-darwin-x64": "0.3.207",
|
|
72
|
+
"@anthropic-ai/claude-agent-sdk-linux-arm64": "0.3.207",
|
|
73
|
+
"@anthropic-ai/claude-agent-sdk-linux-arm64-musl": "0.3.207",
|
|
74
|
+
"@anthropic-ai/claude-agent-sdk-linux-x64": "0.3.207",
|
|
75
|
+
"@anthropic-ai/claude-agent-sdk-linux-x64-musl": "0.3.207",
|
|
76
|
+
"@anthropic-ai/claude-agent-sdk-win32-arm64": "0.3.207",
|
|
77
|
+
"@anthropic-ai/claude-agent-sdk-win32-x64": "0.3.207"
|
|
87
78
|
},
|
|
88
79
|
"peerDependencies": {
|
|
89
80
|
"@anthropic-ai/sdk": ">=0.93.0",
|
|
@@ -92,9 +83,9 @@
|
|
|
92
83
|
}
|
|
93
84
|
},
|
|
94
85
|
"node_modules/@anthropic-ai/claude-agent-sdk-darwin-arm64": {
|
|
95
|
-
"version": "0.3.
|
|
96
|
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-darwin-arm64/-/claude-agent-sdk-darwin-arm64-0.3.
|
|
97
|
-
"integrity": "sha512-
|
|
86
|
+
"version": "0.3.207",
|
|
87
|
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-darwin-arm64/-/claude-agent-sdk-darwin-arm64-0.3.207.tgz",
|
|
88
|
+
"integrity": "sha512-08xSo1FDx8h0aLhL5tvcRxa2SMmcUV3aDWeZiEJVTclyiDAs61BgTjAxCg+SZcu1CndjJO8cfO0yM5dhamxz3g==",
|
|
98
89
|
"cpu": [
|
|
99
90
|
"arm64"
|
|
100
91
|
],
|
|
@@ -105,9 +96,9 @@
|
|
|
105
96
|
]
|
|
106
97
|
},
|
|
107
98
|
"node_modules/@anthropic-ai/claude-agent-sdk-darwin-x64": {
|
|
108
|
-
"version": "0.3.
|
|
109
|
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-darwin-x64/-/claude-agent-sdk-darwin-x64-0.3.
|
|
110
|
-
"integrity": "sha512-
|
|
99
|
+
"version": "0.3.207",
|
|
100
|
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-darwin-x64/-/claude-agent-sdk-darwin-x64-0.3.207.tgz",
|
|
101
|
+
"integrity": "sha512-1o7K4EYqyCixZ/oeOZSh7AzSy6TM86xoOuf4VuORjPSS31hBnoqY0NGZd27+2VDs9LGtsdksmsTqcNGx9xd1hA==",
|
|
111
102
|
"cpu": [
|
|
112
103
|
"x64"
|
|
113
104
|
],
|
|
@@ -118,9 +109,9 @@
|
|
|
118
109
|
]
|
|
119
110
|
},
|
|
120
111
|
"node_modules/@anthropic-ai/claude-agent-sdk-linux-arm64": {
|
|
121
|
-
"version": "0.3.
|
|
122
|
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-linux-arm64/-/claude-agent-sdk-linux-arm64-0.3.
|
|
123
|
-
"integrity": "sha512-
|
|
112
|
+
"version": "0.3.207",
|
|
113
|
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-linux-arm64/-/claude-agent-sdk-linux-arm64-0.3.207.tgz",
|
|
114
|
+
"integrity": "sha512-X4uezYOifDiNTTmmugfRCdg3nNamrr1LFRY9hg30vWYTShL+bbN+nfC3KaFfSYCl4GTtsEEUbYdOTC2F3bBpcA==",
|
|
124
115
|
"cpu": [
|
|
125
116
|
"arm64"
|
|
126
117
|
],
|
|
@@ -131,9 +122,9 @@
|
|
|
131
122
|
]
|
|
132
123
|
},
|
|
133
124
|
"node_modules/@anthropic-ai/claude-agent-sdk-linux-arm64-musl": {
|
|
134
|
-
"version": "0.3.
|
|
135
|
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-linux-arm64-musl/-/claude-agent-sdk-linux-arm64-musl-0.3.
|
|
136
|
-
"integrity": "sha512-
|
|
125
|
+
"version": "0.3.207",
|
|
126
|
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-linux-arm64-musl/-/claude-agent-sdk-linux-arm64-musl-0.3.207.tgz",
|
|
127
|
+
"integrity": "sha512-oPj+g2DslhH4Y9nCTs7al4t9wZv78FZwLFQwOCg99BXuz1o0ZOpKmxyvR7J9eBR+GPszeMMS8gYplQTiZC9o2w==",
|
|
137
128
|
"cpu": [
|
|
138
129
|
"arm64"
|
|
139
130
|
],
|
|
@@ -144,9 +135,9 @@
|
|
|
144
135
|
]
|
|
145
136
|
},
|
|
146
137
|
"node_modules/@anthropic-ai/claude-agent-sdk-linux-x64": {
|
|
147
|
-
"version": "0.3.
|
|
148
|
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-linux-x64/-/claude-agent-sdk-linux-x64-0.3.
|
|
149
|
-
"integrity": "sha512-
|
|
138
|
+
"version": "0.3.207",
|
|
139
|
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-linux-x64/-/claude-agent-sdk-linux-x64-0.3.207.tgz",
|
|
140
|
+
"integrity": "sha512-Kg6BPH8Ee0ny/oEUWJmvT1jCRBne4jVpRSOMsJcYp1Fav1rMEgpU219oJJs+LWwx4ifuuLtNWedqJNnVw7mnKg==",
|
|
150
141
|
"cpu": [
|
|
151
142
|
"x64"
|
|
152
143
|
],
|
|
@@ -157,9 +148,9 @@
|
|
|
157
148
|
]
|
|
158
149
|
},
|
|
159
150
|
"node_modules/@anthropic-ai/claude-agent-sdk-linux-x64-musl": {
|
|
160
|
-
"version": "0.3.
|
|
161
|
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-linux-x64-musl/-/claude-agent-sdk-linux-x64-musl-0.3.
|
|
162
|
-
"integrity": "sha512-
|
|
151
|
+
"version": "0.3.207",
|
|
152
|
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-linux-x64-musl/-/claude-agent-sdk-linux-x64-musl-0.3.207.tgz",
|
|
153
|
+
"integrity": "sha512-uRv+D5oG/7EYr41FAJ9IPo2pZYBe2ZMaA6nSHCeizsgPxCSMtl5bNppmU21+jZJvo4hivObEgkGFERAhdGqygg==",
|
|
163
154
|
"cpu": [
|
|
164
155
|
"x64"
|
|
165
156
|
],
|
|
@@ -170,9 +161,9 @@
|
|
|
170
161
|
]
|
|
171
162
|
},
|
|
172
163
|
"node_modules/@anthropic-ai/claude-agent-sdk-win32-arm64": {
|
|
173
|
-
"version": "0.3.
|
|
174
|
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-win32-arm64/-/claude-agent-sdk-win32-arm64-0.3.
|
|
175
|
-
"integrity": "sha512-
|
|
164
|
+
"version": "0.3.207",
|
|
165
|
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-win32-arm64/-/claude-agent-sdk-win32-arm64-0.3.207.tgz",
|
|
166
|
+
"integrity": "sha512-9fWpUzfkXlPAg2tf8JpQe7w9avFaomAUbfAwyAmykQgSIf66LwaJjvI5hNqhNqczRKyfsXPn3ei2S5HKlmFP+Q==",
|
|
176
167
|
"cpu": [
|
|
177
168
|
"arm64"
|
|
178
169
|
],
|
|
@@ -183,9 +174,9 @@
|
|
|
183
174
|
]
|
|
184
175
|
},
|
|
185
176
|
"node_modules/@anthropic-ai/claude-agent-sdk-win32-x64": {
|
|
186
|
-
"version": "0.3.
|
|
187
|
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-win32-x64/-/claude-agent-sdk-win32-x64-0.3.
|
|
188
|
-
"integrity": "sha512-
|
|
177
|
+
"version": "0.3.207",
|
|
178
|
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk-win32-x64/-/claude-agent-sdk-win32-x64-0.3.207.tgz",
|
|
179
|
+
"integrity": "sha512-YPjVT0q6aXEM2MgN4CI6/9fqiTXwETji+4NoPOzCYuqAkhXZqp30Jsk7/NHqYGNNSfURKrsuAoliKB0rsbpbjg==",
|
|
189
180
|
"cpu": [
|
|
190
181
|
"x64"
|
|
191
182
|
],
|
|
@@ -196,9 +187,9 @@
|
|
|
196
187
|
]
|
|
197
188
|
},
|
|
198
189
|
"node_modules/@anthropic-ai/sdk": {
|
|
199
|
-
"version": "0.
|
|
200
|
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.
|
|
201
|
-
"integrity": "sha512-
|
|
190
|
+
"version": "0.112.3",
|
|
191
|
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.112.3.tgz",
|
|
192
|
+
"integrity": "sha512-wjcozJlitVIuBEw9cj/xBuRznwkhcLmXmNzlFoeHbh4AvrDG3HGZrdvEOTTmobcbhjGkfOpKbmDTCQ4s9LQvCg==",
|
|
202
193
|
"license": "MIT",
|
|
203
194
|
"dependencies": {
|
|
204
195
|
"json-schema-to-ts": "^3.1.1",
|
|
@@ -226,9 +217,9 @@
|
|
|
226
217
|
}
|
|
227
218
|
},
|
|
228
219
|
"node_modules/@clack/core": {
|
|
229
|
-
"version": "1.4.
|
|
230
|
-
"resolved": "https://registry.npmjs.org/@clack/core/-/core-1.4.
|
|
231
|
-
"integrity": "sha512
|
|
220
|
+
"version": "1.4.3",
|
|
221
|
+
"resolved": "https://registry.npmjs.org/@clack/core/-/core-1.4.3.tgz",
|
|
222
|
+
"integrity": "sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==",
|
|
232
223
|
"license": "MIT",
|
|
233
224
|
"dependencies": {
|
|
234
225
|
"fast-wrap-ansi": "^0.2.0",
|
|
@@ -239,12 +230,12 @@
|
|
|
239
230
|
}
|
|
240
231
|
},
|
|
241
232
|
"node_modules/@clack/prompts": {
|
|
242
|
-
"version": "1.
|
|
243
|
-
"resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.
|
|
244
|
-
"integrity": "sha512-
|
|
233
|
+
"version": "1.7.0",
|
|
234
|
+
"resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.7.0.tgz",
|
|
235
|
+
"integrity": "sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==",
|
|
245
236
|
"license": "MIT",
|
|
246
237
|
"dependencies": {
|
|
247
|
-
"@clack/core": "1.4.
|
|
238
|
+
"@clack/core": "1.4.3",
|
|
248
239
|
"fast-string-width": "^3.0.2",
|
|
249
240
|
"fast-wrap-ansi": "^0.2.0",
|
|
250
241
|
"sisteransi": "^1.0.5"
|
|
@@ -722,9 +713,9 @@
|
|
|
722
713
|
}
|
|
723
714
|
},
|
|
724
715
|
"node_modules/@openai/codex": {
|
|
725
|
-
"version": "0.144.
|
|
726
|
-
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.
|
|
727
|
-
"integrity": "sha512-
|
|
716
|
+
"version": "0.144.6",
|
|
717
|
+
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.6.tgz",
|
|
718
|
+
"integrity": "sha512-wk+2CWiBNXiJLBoN2D08N9RceWkSBnlgk5g2K1a4CXrP/C0gdlHyRUG7RFzm9y41DCK/7tvCct233JVxyFmznw==",
|
|
728
719
|
"license": "Apache-2.0",
|
|
729
720
|
"bin": {
|
|
730
721
|
"codex": "bin/codex.js"
|
|
@@ -733,19 +724,19 @@
|
|
|
733
724
|
"node": ">=16"
|
|
734
725
|
},
|
|
735
726
|
"optionalDependencies": {
|
|
736
|
-
"@openai/codex-darwin-arm64": "npm:@openai/codex@0.144.
|
|
737
|
-
"@openai/codex-darwin-x64": "npm:@openai/codex@0.144.
|
|
738
|
-
"@openai/codex-linux-arm64": "npm:@openai/codex@0.144.
|
|
739
|
-
"@openai/codex-linux-x64": "npm:@openai/codex@0.144.
|
|
740
|
-
"@openai/codex-win32-arm64": "npm:@openai/codex@0.144.
|
|
741
|
-
"@openai/codex-win32-x64": "npm:@openai/codex@0.144.
|
|
727
|
+
"@openai/codex-darwin-arm64": "npm:@openai/codex@0.144.6-darwin-arm64",
|
|
728
|
+
"@openai/codex-darwin-x64": "npm:@openai/codex@0.144.6-darwin-x64",
|
|
729
|
+
"@openai/codex-linux-arm64": "npm:@openai/codex@0.144.6-linux-arm64",
|
|
730
|
+
"@openai/codex-linux-x64": "npm:@openai/codex@0.144.6-linux-x64",
|
|
731
|
+
"@openai/codex-win32-arm64": "npm:@openai/codex@0.144.6-win32-arm64",
|
|
732
|
+
"@openai/codex-win32-x64": "npm:@openai/codex@0.144.6-win32-x64"
|
|
742
733
|
}
|
|
743
734
|
},
|
|
744
735
|
"node_modules/@openai/codex-darwin-arm64": {
|
|
745
736
|
"name": "@openai/codex",
|
|
746
|
-
"version": "0.144.
|
|
747
|
-
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.
|
|
748
|
-
"integrity": "sha512-
|
|
737
|
+
"version": "0.144.6-darwin-arm64",
|
|
738
|
+
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.6-darwin-arm64.tgz",
|
|
739
|
+
"integrity": "sha512-6zgvh70MzBNSeT17HEhSOrmmGGZGAKzSC7x6JAq+edkJkdPYA9P0I1tG7aJ49GlBkBxuC+MKBH1qm6+2Cghcww==",
|
|
749
740
|
"cpu": [
|
|
750
741
|
"arm64"
|
|
751
742
|
],
|
|
@@ -760,9 +751,9 @@
|
|
|
760
751
|
},
|
|
761
752
|
"node_modules/@openai/codex-darwin-x64": {
|
|
762
753
|
"name": "@openai/codex",
|
|
763
|
-
"version": "0.144.
|
|
764
|
-
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.
|
|
765
|
-
"integrity": "sha512-
|
|
754
|
+
"version": "0.144.6-darwin-x64",
|
|
755
|
+
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.6-darwin-x64.tgz",
|
|
756
|
+
"integrity": "sha512-THRyPG0zSU6M8NQAge1LHEHsJDnoH4BpKsfJHB/qe3Fm+Wf6zqAmWJFlOKzBm27m0K2Hq3za4Ac2I5p5i4yp/A==",
|
|
766
757
|
"cpu": [
|
|
767
758
|
"x64"
|
|
768
759
|
],
|
|
@@ -777,9 +768,9 @@
|
|
|
777
768
|
},
|
|
778
769
|
"node_modules/@openai/codex-linux-arm64": {
|
|
779
770
|
"name": "@openai/codex",
|
|
780
|
-
"version": "0.144.
|
|
781
|
-
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.
|
|
782
|
-
"integrity": "sha512-
|
|
771
|
+
"version": "0.144.6-linux-arm64",
|
|
772
|
+
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.6-linux-arm64.tgz",
|
|
773
|
+
"integrity": "sha512-PGiLXMN+2IQRkf7tOLi64dMInjU1pRLbz0Rwfj/yt2Y97SZQqAjFQoi2wmswmqtqMDnfwCPTC1DRXVQkvU6T6Q==",
|
|
783
774
|
"cpu": [
|
|
784
775
|
"arm64"
|
|
785
776
|
],
|
|
@@ -794,9 +785,9 @@
|
|
|
794
785
|
},
|
|
795
786
|
"node_modules/@openai/codex-linux-x64": {
|
|
796
787
|
"name": "@openai/codex",
|
|
797
|
-
"version": "0.144.
|
|
798
|
-
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.
|
|
799
|
-
"integrity": "sha512-
|
|
788
|
+
"version": "0.144.6-linux-x64",
|
|
789
|
+
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.6-linux-x64.tgz",
|
|
790
|
+
"integrity": "sha512-4E7EnzCg0OnBxCyYnwJ+qnZwWHYe0YScr5ucKWbngE9u4+0XrpWELqq2Kn9jl5GZK8MDjU7PrJwFIwusHOHjuw==",
|
|
800
791
|
"cpu": [
|
|
801
792
|
"x64"
|
|
802
793
|
],
|
|
@@ -811,9 +802,9 @@
|
|
|
811
802
|
},
|
|
812
803
|
"node_modules/@openai/codex-win32-arm64": {
|
|
813
804
|
"name": "@openai/codex",
|
|
814
|
-
"version": "0.144.
|
|
815
|
-
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.
|
|
816
|
-
"integrity": "sha512-
|
|
805
|
+
"version": "0.144.6-win32-arm64",
|
|
806
|
+
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.6-win32-arm64.tgz",
|
|
807
|
+
"integrity": "sha512-SpMjXJLW43JzMP0K62mVcYfmFcpk0BK4AOgYmWSfyZHs3iRtHMd0UYw7605n/9lwkT2EqbwQLT2omZFeKJFzwA==",
|
|
817
808
|
"cpu": [
|
|
818
809
|
"arm64"
|
|
819
810
|
],
|
|
@@ -828,9 +819,9 @@
|
|
|
828
819
|
},
|
|
829
820
|
"node_modules/@openai/codex-win32-x64": {
|
|
830
821
|
"name": "@openai/codex",
|
|
831
|
-
"version": "0.144.
|
|
832
|
-
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.
|
|
833
|
-
"integrity": "sha512-
|
|
822
|
+
"version": "0.144.6-win32-x64",
|
|
823
|
+
"resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.6-win32-x64.tgz",
|
|
824
|
+
"integrity": "sha512-dN39VnjEthKz5io1RNWwZDtErdSn07nW3pGUgvlA6DMxgm/nuGaIAZO/sG/Hgxq/x5j9HteAENfrFgVkpZ0lFg==",
|
|
834
825
|
"cpu": [
|
|
835
826
|
"x64"
|
|
836
827
|
],
|
|
@@ -863,15 +854,15 @@
|
|
|
863
854
|
}
|
|
864
855
|
},
|
|
865
856
|
"node_modules/acpx": {
|
|
866
|
-
"version": "0.
|
|
867
|
-
"resolved": "https://registry.npmjs.org/acpx/-/acpx-0.
|
|
868
|
-
"integrity": "sha512-
|
|
857
|
+
"version": "0.12.0",
|
|
858
|
+
"resolved": "https://registry.npmjs.org/acpx/-/acpx-0.12.0.tgz",
|
|
859
|
+
"integrity": "sha512-APYpN04XFWrCGuSBvM4HTKWWFH8uSIuzc+qI7aCGeVdP9o4euZeBosFEkmNUHvBOop0XBemg6d8RsNvzXN3Mgw==",
|
|
869
860
|
"license": "MIT",
|
|
870
861
|
"dependencies": {
|
|
871
|
-
"@agentclientprotocol/sdk": "^
|
|
862
|
+
"@agentclientprotocol/sdk": "^1.1.0",
|
|
872
863
|
"commander": "^15.0.0",
|
|
873
864
|
"skillflag": "^0.2.0",
|
|
874
|
-
"tsx": "^4.
|
|
865
|
+
"tsx": "^4.23.0",
|
|
875
866
|
"zod": "^4.4.3"
|
|
876
867
|
},
|
|
877
868
|
"bin": {
|
|
@@ -881,15 +872,6 @@
|
|
|
881
872
|
"node": ">=22.13.0"
|
|
882
873
|
}
|
|
883
874
|
},
|
|
884
|
-
"node_modules/acpx/node_modules/@agentclientprotocol/sdk": {
|
|
885
|
-
"version": "0.28.1",
|
|
886
|
-
"resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-0.28.1.tgz",
|
|
887
|
-
"integrity": "sha512-Z2Frs6YtPhnZZ+XwFXyQkRDXY0fn8FjCalEs0W4yUhQnY4TztmNq0/RnfzWdFN3vqT3h0jTz5klzYbZHGxCDyQ==",
|
|
888
|
-
"license": "Apache-2.0",
|
|
889
|
-
"peerDependencies": {
|
|
890
|
-
"zod": "^3.25.0 || ^4.0.0"
|
|
891
|
-
}
|
|
892
|
-
},
|
|
893
875
|
"node_modules/ajv": {
|
|
894
876
|
"version": "8.20.0",
|
|
895
877
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
|
|
@@ -952,9 +934,9 @@
|
|
|
952
934
|
}
|
|
953
935
|
},
|
|
954
936
|
"node_modules/bare-fs": {
|
|
955
|
-
"version": "4.7.
|
|
956
|
-
"resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.
|
|
957
|
-
"integrity": "sha512-
|
|
937
|
+
"version": "4.7.4",
|
|
938
|
+
"resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.4.tgz",
|
|
939
|
+
"integrity": "sha512-y1kC+ffIx/tPLdTE693uNjHfzTfr+ravR5tvWlMXe25nELbkqV400S71qHDwbkAQ1FVEZobB1NFRzFbCCcyBCQ==",
|
|
958
940
|
"license": "Apache-2.0",
|
|
959
941
|
"dependencies": {
|
|
960
942
|
"bare-events": "^2.5.4",
|
|
@@ -975,23 +957,11 @@
|
|
|
975
957
|
}
|
|
976
958
|
}
|
|
977
959
|
},
|
|
978
|
-
"node_modules/bare-os": {
|
|
979
|
-
"version": "3.9.3",
|
|
980
|
-
"resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.9.3.tgz",
|
|
981
|
-
"integrity": "sha512-fF4Q7QsyKVF5Rj0qvI8BgUNjqzC2JvQlpTaPLjVJVxYVUX5Zr9un+y3w1HmA4nNKdFmRBT8z/WmrjvXzXVerKQ==",
|
|
982
|
-
"license": "Apache-2.0",
|
|
983
|
-
"engines": {
|
|
984
|
-
"bare": ">=1.14.0"
|
|
985
|
-
}
|
|
986
|
-
},
|
|
987
960
|
"node_modules/bare-path": {
|
|
988
|
-
"version": "3.
|
|
989
|
-
"resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.
|
|
990
|
-
"integrity": "sha512-
|
|
991
|
-
"license": "Apache-2.0"
|
|
992
|
-
"dependencies": {
|
|
993
|
-
"bare-os": "^3.0.1"
|
|
994
|
-
}
|
|
961
|
+
"version": "3.1.1",
|
|
962
|
+
"resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.1.1.tgz",
|
|
963
|
+
"integrity": "sha512-JprUlveX3QjApC1cTpsUOiscADftCGVWkzitbHsRqv84hzYwYHw2mbluddsq5TvI8mH/8Ov1f4BiMAdcB0oYnQ==",
|
|
964
|
+
"license": "Apache-2.0"
|
|
995
965
|
},
|
|
996
966
|
"node_modules/bare-stream": {
|
|
997
967
|
"version": "2.13.3",
|
|
@@ -1463,11 +1433,12 @@
|
|
|
1463
1433
|
}
|
|
1464
1434
|
},
|
|
1465
1435
|
"node_modules/express-rate-limit": {
|
|
1466
|
-
"version": "8.
|
|
1467
|
-
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.
|
|
1468
|
-
"integrity": "sha512-
|
|
1436
|
+
"version": "8.6.0",
|
|
1437
|
+
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.6.0.tgz",
|
|
1438
|
+
"integrity": "sha512-XKJXDsASUOo0LLtFwW5hCcQGH0N4WQc/Rn8/Pvoia+TJFOkkFPvrtW9lZOeeNcxQJspvOIERMwiRLsVFlhHEkA==",
|
|
1469
1439
|
"license": "MIT",
|
|
1470
1440
|
"dependencies": {
|
|
1441
|
+
"debug": "^4.4.3",
|
|
1471
1442
|
"ip-address": "^10.2.0"
|
|
1472
1443
|
},
|
|
1473
1444
|
"engines": {
|
|
@@ -1514,9 +1485,9 @@
|
|
|
1514
1485
|
}
|
|
1515
1486
|
},
|
|
1516
1487
|
"node_modules/fast-uri": {
|
|
1517
|
-
"version": "3.1.
|
|
1518
|
-
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.
|
|
1519
|
-
"integrity": "sha512-
|
|
1488
|
+
"version": "3.1.4",
|
|
1489
|
+
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz",
|
|
1490
|
+
"integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==",
|
|
1520
1491
|
"funding": [
|
|
1521
1492
|
{
|
|
1522
1493
|
"type": "github",
|
|
@@ -1674,9 +1645,9 @@
|
|
|
1674
1645
|
}
|
|
1675
1646
|
},
|
|
1676
1647
|
"node_modules/hono": {
|
|
1677
|
-
"version": "4.12.
|
|
1678
|
-
"resolved": "https://registry.npmjs.org/hono/-/hono-4.12.
|
|
1679
|
-
"integrity": "sha512-
|
|
1648
|
+
"version": "4.12.31",
|
|
1649
|
+
"resolved": "https://registry.npmjs.org/hono/-/hono-4.12.31.tgz",
|
|
1650
|
+
"integrity": "sha512-zJIHFrl6bq3RDd2YusFNCDlM8qUprxKswyi/OPzPyzKDdyBXDqWx8bZlZ7R+saTdSTatUmb3O7K4SspGPaEOQg==",
|
|
1680
1651
|
"license": "MIT",
|
|
1681
1652
|
"engines": {
|
|
1682
1653
|
"node": ">=16.9.0"
|
|
@@ -1703,9 +1674,9 @@
|
|
|
1703
1674
|
}
|
|
1704
1675
|
},
|
|
1705
1676
|
"node_modules/iconv-lite": {
|
|
1706
|
-
"version": "0.7.
|
|
1707
|
-
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.
|
|
1708
|
-
"integrity": "sha512-
|
|
1677
|
+
"version": "0.7.3",
|
|
1678
|
+
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz",
|
|
1679
|
+
"integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==",
|
|
1709
1680
|
"license": "MIT",
|
|
1710
1681
|
"dependencies": {
|
|
1711
1682
|
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
|
@@ -1999,9 +1970,9 @@
|
|
|
1999
1970
|
}
|
|
2000
1971
|
},
|
|
2001
1972
|
"node_modules/path-to-regexp": {
|
|
2002
|
-
"version": "8.4.
|
|
2003
|
-
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.
|
|
2004
|
-
"integrity": "sha512-
|
|
1973
|
+
"version": "8.4.2",
|
|
1974
|
+
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz",
|
|
1975
|
+
"integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==",
|
|
2005
1976
|
"license": "MIT",
|
|
2006
1977
|
"funding": {
|
|
2007
1978
|
"type": "opencollective",
|
|
@@ -2043,12 +2014,13 @@
|
|
|
2043
2014
|
}
|
|
2044
2015
|
},
|
|
2045
2016
|
"node_modules/qs": {
|
|
2046
|
-
"version": "6.15.
|
|
2047
|
-
"resolved": "https://registry.npmjs.org/qs/-/qs-6.15.
|
|
2048
|
-
"integrity": "sha512-
|
|
2017
|
+
"version": "6.15.3",
|
|
2018
|
+
"resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz",
|
|
2019
|
+
"integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==",
|
|
2049
2020
|
"license": "BSD-3-Clause",
|
|
2050
2021
|
"dependencies": {
|
|
2051
|
-
"
|
|
2022
|
+
"es-define-property": "^1.0.1",
|
|
2023
|
+
"side-channel": "^1.1.1"
|
|
2052
2024
|
},
|
|
2053
2025
|
"engines": {
|
|
2054
2026
|
"node": ">=0.6"
|
|
@@ -2383,9 +2355,9 @@
|
|
|
2383
2355
|
"license": "MIT"
|
|
2384
2356
|
},
|
|
2385
2357
|
"node_modules/tsx": {
|
|
2386
|
-
"version": "4.
|
|
2387
|
-
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.
|
|
2388
|
-
"integrity": "sha512-
|
|
2358
|
+
"version": "4.23.1",
|
|
2359
|
+
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.1.tgz",
|
|
2360
|
+
"integrity": "sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ==",
|
|
2389
2361
|
"license": "MIT",
|
|
2390
2362
|
"dependencies": {
|
|
2391
2363
|
"esbuild": "~0.28.0"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/acpx",
|
|
3
|
-
"version": "2026.7.2-beta.
|
|
3
|
+
"version": "2026.7.2-beta.4",
|
|
4
4
|
"description": "OpenClaw ACP runtime backend with plugin-owned session and transport management.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
},
|
|
9
9
|
"type": "module",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@agentclientprotocol/claude-agent-acp": "0.
|
|
12
|
-
"@agentclientprotocol/codex-acp": "1.1.
|
|
13
|
-
"acpx": "0.
|
|
11
|
+
"@agentclientprotocol/claude-agent-acp": "0.59.0",
|
|
12
|
+
"@agentclientprotocol/codex-acp": "1.1.4",
|
|
13
|
+
"acpx": "0.12.0",
|
|
14
14
|
"smol-toml": "1.7.0",
|
|
15
15
|
"zod": "4.4.3"
|
|
16
16
|
},
|
|
@@ -24,13 +24,29 @@
|
|
|
24
24
|
"install": {
|
|
25
25
|
"npmSpec": "@openclaw/acpx",
|
|
26
26
|
"defaultChoice": "npm",
|
|
27
|
-
"minHostVersion": ">=2026.4.25"
|
|
27
|
+
"minHostVersion": ">=2026.4.25",
|
|
28
|
+
"requiredPlatformPackages": [
|
|
29
|
+
"@anthropic-ai/claude-agent-sdk-linux-x64",
|
|
30
|
+
"@anthropic-ai/claude-agent-sdk-linux-arm64",
|
|
31
|
+
"@anthropic-ai/claude-agent-sdk-linux-x64-musl",
|
|
32
|
+
"@anthropic-ai/claude-agent-sdk-linux-arm64-musl",
|
|
33
|
+
"@anthropic-ai/claude-agent-sdk-darwin-x64",
|
|
34
|
+
"@anthropic-ai/claude-agent-sdk-darwin-arm64",
|
|
35
|
+
"@anthropic-ai/claude-agent-sdk-win32-x64",
|
|
36
|
+
"@anthropic-ai/claude-agent-sdk-win32-arm64",
|
|
37
|
+
"@openai/codex-linux-x64",
|
|
38
|
+
"@openai/codex-linux-arm64",
|
|
39
|
+
"@openai/codex-darwin-x64",
|
|
40
|
+
"@openai/codex-darwin-arm64",
|
|
41
|
+
"@openai/codex-win32-x64",
|
|
42
|
+
"@openai/codex-win32-arm64"
|
|
43
|
+
]
|
|
28
44
|
},
|
|
29
45
|
"compat": {
|
|
30
|
-
"pluginApi": ">=2026.7.2-beta.
|
|
46
|
+
"pluginApi": ">=2026.7.2-beta.4"
|
|
31
47
|
},
|
|
32
48
|
"build": {
|
|
33
|
-
"openclawVersion": "2026.7.2-beta.
|
|
49
|
+
"openclawVersion": "2026.7.2-beta.4",
|
|
34
50
|
"staticAssets": [
|
|
35
51
|
{
|
|
36
52
|
"source": "./src/runtime-internals/mcp-proxy.mjs",
|
|
@@ -59,7 +75,7 @@
|
|
|
59
75
|
"skills/**"
|
|
60
76
|
],
|
|
61
77
|
"peerDependencies": {
|
|
62
|
-
"openclaw": ">=2026.7.2-beta.
|
|
78
|
+
"openclaw": ">=2026.7.2-beta.4"
|
|
63
79
|
},
|
|
64
80
|
"peerDependenciesMeta": {
|
|
65
81
|
"openclaw": {
|