@openclaw/acpx 2026.7.2-beta.1 → 2026.7.2-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/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- import { t as createAcpxRuntimeService } from "./register.runtime-DBqbPx5P.js";
1
+ import { t as createAcpxRuntimeService } from "./register.runtime-CysfMsSr.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
- import { decodeNodePtyResumeParams, resolveExecutableFromPathEnv, runNodePtyCommand } from "openclaw/plugin-sdk/node-host";
6
+ import { decodeNodePtyResumeParams, resolveNodeHostExecutable, runNodePtyCommand } from "openclaw/plugin-sdk/node-host";
7
7
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { createReadStream, readFileSync, statSync } from "node:fs";
9
9
  import fs$1 from "node:fs/promises";
@@ -389,7 +389,7 @@ async function readPiSessionById(threadId, env) {
389
389
  const LOCAL_HOST_ID$1 = "gateway";
390
390
  const DEFAULT_PAGE_LIMIT = 20;
391
391
  const MAX_PAGE_LIMIT$1 = 100;
392
- const MAX_SEARCH_LENGTH$1 = 500;
392
+ const MAX_SEARCH_LENGTH = 500;
393
393
  const MAX_CURSOR_LENGTH$1 = 128;
394
394
  const MAX_TRANSCRIPT_ITEM_BYTES = 512 * 1024;
395
395
  const MAX_TRANSCRIPT_PAGE_BYTES = 20 * 1024 * 1024;
@@ -483,7 +483,7 @@ function parseListParams(value) {
483
483
  "cursor"
484
484
  ].includes(key));
485
485
  if (unknown) throw new Error(`unknown Pi session list parameter: ${unknown}`);
486
- const searchTerm = optionalPiString(value.searchTerm, MAX_SEARCH_LENGTH$1);
486
+ const searchTerm = optionalPiString(value.searchTerm, MAX_SEARCH_LENGTH);
487
487
  if (value.searchTerm !== void 0 && !searchTerm) throw new Error("searchTerm is invalid");
488
488
  const cursor = optionalPiString(value.cursor, MAX_CURSOR_LENGTH$1);
489
489
  if (value.cursor !== void 0 && !cursor) throw new Error("cursor is invalid");
@@ -693,7 +693,6 @@ const LOCAL_HOST_ID = "gateway";
693
693
  const MAX_PAGE_LIMIT = 100;
694
694
  const MAX_HOSTS = 100;
695
695
  const MAX_CURSOR_LENGTH = 128;
696
- const MAX_SEARCH_LENGTH = 500;
697
696
  const NODE_TIMEOUT_MS = 2e4;
698
697
  const SESSION_ID_PATTERN = /^(?!-)[A-Za-z0-9._:-]{1,256}$/u;
699
698
  const TRANSCRIPT_ITEM_TYPES = /* @__PURE__ */ new Set([
@@ -762,15 +761,23 @@ function createPiSessionNodeHostCommands() {
762
761
  isAvailable: ({ config, env }) => storeAvailable({
763
762
  config,
764
763
  env
765
- }) && Boolean(resolveExecutableFromPathEnv("pi", env.PATH ?? "")),
764
+ }) && Boolean(resolveNodeHostExecutable("pi", {
765
+ env,
766
+ pathEnv: env.PATH ?? env.Path ?? "",
767
+ strategy: "direct"
768
+ })),
766
769
  handle: async (paramsJSON, io) => {
767
770
  if (!io) throw new Error("Pi terminal command requires duplex transport");
768
771
  const params = decodeNodePtyResumeParams(paramsJSON, validatePiThreadId);
769
772
  const record = await requireLocalPiSession(params.threadId);
770
- const file = resolveExecutableFromPathEnv("pi", process$1.env.PATH ?? "");
771
- if (!file) throw new Error("Pi CLI is unavailable");
773
+ const resolution = resolveNodeHostExecutable("pi", {
774
+ env: process$1.env,
775
+ pathEnv: process$1.env.PATH ?? process$1.env.Path ?? "",
776
+ strategy: "direct"
777
+ });
778
+ if (!resolution) throw new Error("Pi CLI is unavailable");
772
779
  return JSON.stringify(await runNodePtyCommand({
773
- file,
780
+ file: resolution.executable,
774
781
  args: ["--session", params.threadId],
775
782
  cwd: record.cwd,
776
783
  cols: params.cols,
@@ -828,7 +835,7 @@ async function listPiNodeHost(runtime, query, node) {
828
835
  command: PI_SESSIONS_LIST_COMMAND,
829
836
  params: {
830
837
  ...query.limitPerHost ? { limit: query.limitPerHost } : {},
831
- ...query.search?.trim() ? { searchTerm: query.search.trim().slice(0, MAX_SEARCH_LENGTH) } : {},
838
+ ...query.search ? { searchTerm: query.search } : {},
832
839
  ...query.cursors?.[hostId] ? { cursor: query.cursors[hostId] } : {}
833
840
  },
834
841
  timeoutMs: NODE_TIMEOUT_MS,
@@ -874,7 +881,6 @@ function parseNodeTranscriptPage(value, threadId) {
874
881
  }
875
882
  async function listPiHosts(runtime, query) {
876
883
  const requested = query.hostIds ? new Set(query.hostIds) : void 0;
877
- const searchTerm = query.search?.trim().slice(0, MAX_SEARCH_LENGTH) || void 0;
878
884
  const hosts = [];
879
885
  if ((!requested || requested.has(LOCAL_HOST_ID)) && piSessionStoreAvailable(process$1.env)) try {
880
886
  hosts.push({
@@ -884,9 +890,13 @@ async function listPiHosts(runtime, query) {
884
890
  connected: true,
885
891
  ...await listLocalPiSessionPage({
886
892
  limit: query.limitPerHost,
887
- ...searchTerm ? { searchTerm } : {},
893
+ ...query.search ? { searchTerm: query.search } : {},
888
894
  cursor: query.cursors?.[LOCAL_HOST_ID]
889
- }).then((page) => setTerminalCapability(page, resolveExecutableFromPathEnv("pi", process$1.env.PATH ?? "") !== void 0))
895
+ }).then((page) => setTerminalCapability(page, resolveNodeHostExecutable("pi", {
896
+ env: process$1.env,
897
+ pathEnv: process$1.env.PATH ?? "",
898
+ strategy: "fallback"
899
+ }) !== void 0))
890
900
  });
891
901
  } catch {
892
902
  hosts.push({
@@ -937,16 +947,21 @@ async function openPiTerminal(params) {
937
947
  const title = `pi --session ${params.threadId.slice(0, 12)}…`;
938
948
  if (params.hostId === LOCAL_HOST_ID) {
939
949
  const record = await requireLocalPiSession(params.threadId);
940
- const executable = resolveExecutableFromPathEnv("pi", process$1.env.PATH ?? "");
941
- if (!executable) throw new Error("Pi CLI is unavailable");
950
+ const resolution = resolveNodeHostExecutable("pi", {
951
+ env: process$1.env,
952
+ pathEnv: process$1.env.PATH ?? "",
953
+ strategy: "fallback"
954
+ });
955
+ if (!resolution) throw new Error("Pi CLI is unavailable");
942
956
  return {
943
957
  kind: "local",
944
958
  argv: [
945
- executable,
959
+ resolution.executable,
946
960
  "--session",
947
961
  params.threadId
948
962
  ],
949
963
  ...record.cwd ? { cwd: record.cwd } : {},
964
+ ...resolution.pathEnv ? { pathEnv: resolution.pathEnv } : {},
950
965
  title
951
966
  };
952
967
  }
@@ -7,6 +7,12 @@ import fs from "node:fs";
7
7
  import path from "node:path";
8
8
  import { runExec } from "openclaw/plugin-sdk/process-runtime";
9
9
  import { fileURLToPath } from "node:url";
10
+ //#region extensions/acpx/src/codex-adapter.ts
11
+ const CODEX_ACP_PACKAGE = "@agentclientprotocol/codex-acp";
12
+ const CODEX_ACP_BIN = "codex-acp";
13
+ const LEGACY_CODEX_ACP_PACKAGE = "@zed-industries/codex-acp";
14
+ const OPENCLAW_CODEX_CONFIG_ARG = "--openclaw-codex-config";
15
+ //#endregion
10
16
  //#region extensions/acpx/src/command-line.ts
11
17
  /**
12
18
  * Small shell-command helpers for ACPX-launched processes. Splitting supports
@@ -248,8 +254,10 @@ function resolveAcpxPluginConfig(params) {
248
254
  const requireFromHere = createRequire(import.meta.url);
249
255
  const GENERATED_WRAPPER_BASENAMES = /* @__PURE__ */ new Set(["codex-acp-wrapper.mjs", "claude-agent-acp-wrapper.mjs"]);
250
256
  const OPENCLAW_PLUGIN_DEPS_MARKER = "/plugin-runtime-deps/";
257
+ const ACPX_PROCESS_LIST_TIMEOUT_MS = 2e3;
251
258
  const OWNED_ACP_PACKAGE_NAMES = [
252
- "@zed-industries/codex-acp",
259
+ CODEX_ACP_PACKAGE,
260
+ LEGACY_CODEX_ACP_PACKAGE,
253
261
  "@zed-industries/codex-acp-darwin-arm64",
254
262
  "@zed-industries/codex-acp-darwin-x64",
255
263
  "@zed-industries/codex-acp-linux-arm64",
@@ -259,7 +267,20 @@ const OWNED_ACP_PACKAGE_NAMES = [
259
267
  "@agentclientprotocol/claude-agent-acp",
260
268
  "acpx"
261
269
  ];
262
- const ACP_PACKAGE_MARKERS = [...OWNED_ACP_PACKAGE_NAMES.map((packageName) => `/node_modules/${packageName}/`), "/acpx/dist/"];
270
+ const PLUGIN_DEPS_CODEX_PACKAGE_NAMES = [
271
+ "@openai/codex",
272
+ "@openai/codex-darwin-arm64",
273
+ "@openai/codex-darwin-x64",
274
+ "@openai/codex-linux-arm64",
275
+ "@openai/codex-linux-x64",
276
+ "@openai/codex-win32-arm64",
277
+ "@openai/codex-win32-x64"
278
+ ];
279
+ const ACP_PACKAGE_MARKERS = [
280
+ ...OWNED_ACP_PACKAGE_NAMES.map((packageName) => `/node_modules/${packageName}/`),
281
+ ...PLUGIN_DEPS_CODEX_PACKAGE_NAMES.map((packageName) => `/node_modules/${packageName}/`),
282
+ "/acpx/dist/"
283
+ ];
263
284
  function normalizePathLike(value) {
264
285
  return value.replaceAll("\\", "/");
265
286
  }
@@ -354,7 +375,8 @@ async function listPlatformProcesses() {
354
375
  if (process.platform === "win32") return [];
355
376
  const { stdout } = await runExec("ps", ["-axo", "pid=,ppid=,command="], {
356
377
  logOutput: false,
357
- maxBuffer: 8 * 1024 * 1024
378
+ maxBuffer: 8 * 1024 * 1024,
379
+ timeoutMs: ACPX_PROCESS_LIST_TIMEOUT_MS
358
380
  });
359
381
  return parseProcessList(stdout);
360
382
  }
@@ -488,4 +510,4 @@ async function reapStaleOpenClawOwnedAcpxOrphans(params) {
488
510
  };
489
511
  }
490
512
  //#endregion
491
- export { resolveAcpxPluginRoot as a, splitCommandParts as c, resolveAcpxPluginConfig as i, isOpenClawLeaseAwareAcpxProcessCommand as n, toAcpMcpServers as o, reapStaleOpenClawOwnedAcpxOrphans as r, quoteCommandPart as s, cleanupOpenClawOwnedAcpxProcessTree as t };
513
+ export { resolveAcpxPluginRoot as a, splitCommandParts as c, LEGACY_CODEX_ACP_PACKAGE as d, OPENCLAW_CODEX_CONFIG_ARG as f, resolveAcpxPluginConfig as i, CODEX_ACP_BIN as l, isOpenClawLeaseAwareAcpxProcessCommand as n, toAcpMcpServers as o, reapStaleOpenClawOwnedAcpxOrphans as r, quoteCommandPart as s, cleanupOpenClawOwnedAcpxProcessTree as t, CODEX_ACP_PACKAGE as u };
@@ -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-Dm8hpy-C.js"));
203
+ const loadServiceModule = createLazyRuntimeModule(() => import("./service-DJchyiuU.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");
@@ -1,2 +1,2 @@
1
- import { t as createAcpxRuntimeService } from "./register.runtime-DBqbPx5P.js";
1
+ import { t as createAcpxRuntimeService } from "./register.runtime-CysfMsSr.js";
2
2
  export { createAcpxRuntimeService };
@@ -1,6 +1,6 @@
1
1
  import { i as createAcpxProcessLeaseId, o as hashAcpxProcessCommand, u as withAcpxLeaseEnvironment } from "./process-lease-DiKkFj6F.js";
2
2
  import { AcpRuntimeError } from "./runtime-api.js";
3
- import { c as splitCommandParts, n as isOpenClawLeaseAwareAcpxProcessCommand, t as cleanupOpenClawOwnedAcpxProcessTree } from "./process-reaper-B29BzBk4.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-CoGRyMJ_.js";
4
4
  import { parseStrictPositiveInteger } from "openclaw/plugin-sdk/number-runtime";
5
5
  import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import fs from "node:fs/promises";
@@ -14,6 +14,7 @@ import { sliceUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
14
14
  * OpenClaw ACPX runtime adapter. It wraps the upstream acpx runtime with
15
15
  * OpenClaw session metadata, lease tracking, model scoping, and cleanup policy.
16
16
  */
17
+ const ACPX_PLUGIN_TOOLS_MCP_SERVER_NAME = "openclaw-plugin-tools";
17
18
  const ACPX_OPENCLAW_TOOLS_MCP_SERVER_NAME = "openclaw-tools";
18
19
  const OPENCLAW_TOOLS_MCP_AGENT_SESSION_KEY_ENV = "OPENCLAW_TOOLS_MCP_AGENT_SESSION_KEY";
19
20
  function withOpenClawManagedTurnTimeout(input) {
@@ -256,7 +257,7 @@ function isOpenClawBridgeCommand(command) {
256
257
  }
257
258
  function isCodexAcpCommand(command) {
258
259
  return isAcpCommand(command, {
259
- packageName: "@zed-industries/codex-acp",
260
+ packageName: CODEX_ACP_PACKAGE,
260
261
  executableName: "codex-acp"
261
262
  });
262
263
  }
@@ -303,10 +304,6 @@ function normalizeCodexAcpModelOverride(rawModel, rawThinking) {
303
304
  ...reasoningEffort ? { reasoningEffort } : {}
304
305
  };
305
306
  }
306
- function codexAcpSessionModelId(override) {
307
- if (!override.model) return "";
308
- return override.reasoningEffort ? `${override.model}/${override.reasoningEffort}` : override.model;
309
- }
310
307
  function normalizeClaudeAcpModelOverride(rawModel) {
311
308
  const raw = rawModel?.trim();
312
309
  if (!raw) return;
@@ -344,10 +341,12 @@ function quoteShellArg(value) {
344
341
  return `'${value.replace(/'/g, "'\\''")}'`;
345
342
  }
346
343
  function appendCodexAcpConfigOverrides(command, override) {
347
- const configArgs = override.model ? [`model=${override.model}`] : [];
348
- if (override.reasoningEffort) configArgs.push(`model_reasoning_effort=${override.reasoningEffort}`);
349
- if (configArgs.length === 0) return command;
350
- return `${command} ${configArgs.map((arg) => `-c ${quoteShellArg(arg)}`).join(" ")}`;
344
+ const config = {
345
+ ...override.model ? { model: override.model } : {},
346
+ ...override.reasoningEffort ? { model_reasoning_effort: override.reasoningEffort } : {}
347
+ };
348
+ if (Object.keys(config).length === 0) return command;
349
+ return `${command} ${OPENCLAW_CODEX_CONFIG_ARG} ${quoteShellArg(JSON.stringify(config))}`;
351
350
  }
352
351
  function createModelScopedAgentRegistry(params) {
353
352
  return {
@@ -375,12 +374,14 @@ function shouldUseDistinctBridgeDelegate(options) {
375
374
  const { mcpServers } = options;
376
375
  return Array.isArray(mcpServers) && mcpServers.length > 0;
377
376
  }
378
- function withOpenClawToolsMcpSessionEnv(params) {
377
+ function withManagedToolsMcpSessionEnv(params) {
379
378
  const sessionKey = params.sessionKey.trim();
380
- if (!params.enabled || !sessionKey || !params.mcpServers?.length) return params.mcpServers;
379
+ if (!params.pluginToolsEnabled && !params.openclawToolsEnabled || !sessionKey || !params.mcpServers?.length) return params.mcpServers;
381
380
  let changed = false;
382
381
  const nextServers = params.mcpServers.map((server) => {
383
- if (server.name !== ACPX_OPENCLAW_TOOLS_MCP_SERVER_NAME || !("command" in server)) return server;
382
+ const isManagedPluginTools = params.pluginToolsEnabled && server.name === ACPX_PLUGIN_TOOLS_MCP_SERVER_NAME;
383
+ const isManagedOpenClawTools = params.openclawToolsEnabled && server.name === ACPX_OPENCLAW_TOOLS_MCP_SERVER_NAME;
384
+ if (!isManagedPluginTools && !isManagedOpenClawTools || !("command" in server)) return server;
384
385
  changed = true;
385
386
  const env = [...server.env.filter((entry) => entry.name !== OPENCLAW_TOOLS_MCP_AGENT_SESSION_KEY_ENV), {
386
387
  name: OPENCLAW_TOOLS_MCP_AGENT_SESSION_KEY_ENV,
@@ -397,14 +398,16 @@ function withOpenClawToolsMcpSessionEnv(params) {
397
398
  var AcpxRuntime = class {
398
399
  constructor(options, testOptions) {
399
400
  this.codexAcpModelOverrideScope = new AsyncLocalStorage();
400
- this.openclawToolsSessionDelegates = /* @__PURE__ */ new Map();
401
+ this.managedToolsSessionDelegates = /* @__PURE__ */ new Map();
401
402
  this.launchLeaseScope = new AsyncLocalStorage();
402
403
  const { openclawProcessCleanup, ...delegateTestOptions } = testOptions ?? {};
403
404
  this.processCleanupDeps = openclawProcessCleanup;
404
405
  this.wrapperRoot = options.openclawWrapperRoot;
405
406
  this.gatewayInstanceId = options.openclawGatewayInstanceId;
406
407
  this.processLeaseStore = options.openclawProcessLeaseStore;
408
+ this.pluginToolsMcpBridgeEnabled = options.pluginToolsMcpBridgeEnabled === true;
407
409
  this.openclawToolsMcpBridgeEnabled = options.openclawToolsMcpBridgeEnabled === true;
410
+ this.managedToolsMcpBridgeEnabled = this.pluginToolsMcpBridgeEnabled || this.openclawToolsMcpBridgeEnabled;
408
411
  this.cwd = options.cwd;
409
412
  this.sessionStore = createResetAwareSessionStore(options.sessionStore, {
410
413
  gatewayInstanceId: this.gatewayInstanceId,
@@ -433,35 +436,36 @@ var AcpxRuntime = class {
433
436
  agentName: normalizeAgentName(options.probeAgent) ?? "codex",
434
437
  agentRegistry: this.agentRegistry
435
438
  });
436
- const useBridgeSafeProbe = this.openclawToolsMcpBridgeEnabled || shouldUseBridgeSafeDelegateForCommand(probeCommand);
439
+ const useBridgeSafeProbe = this.managedToolsMcpBridgeEnabled || shouldUseBridgeSafeDelegateForCommand(probeCommand);
437
440
  this.probeDelegate = useBridgeSafeProbe ? this.bridgeSafeDelegate : this.delegate;
438
441
  }
439
442
  resolveDelegateForSession(params) {
440
443
  if (shouldUseBridgeSafeDelegateForCommand(params.command)) return this.bridgeSafeDelegate;
441
- return this.resolveOpenClawToolsDelegateForSession(params.sessionKey);
444
+ return this.resolveManagedToolsDelegateForSession(params.sessionKey);
442
445
  }
443
- resolveOpenClawToolsDelegateForSession(sessionKey) {
444
- if (!this.openclawToolsMcpBridgeEnabled) return this.delegate;
446
+ resolveManagedToolsDelegateForSession(sessionKey) {
447
+ if (!this.managedToolsMcpBridgeEnabled) return this.delegate;
445
448
  const normalizedSessionKey = sessionKey.trim();
446
449
  if (!normalizedSessionKey) return this.delegate;
447
- const cached = this.openclawToolsSessionDelegates.get(normalizedSessionKey);
450
+ const cached = this.managedToolsSessionDelegates.get(normalizedSessionKey);
448
451
  if (cached) return cached;
449
452
  const delegate = new AcpxRuntime$1({
450
453
  ...this.delegateOptions,
451
- mcpServers: withOpenClawToolsMcpSessionEnv({
452
- enabled: this.openclawToolsMcpBridgeEnabled,
454
+ mcpServers: withManagedToolsMcpSessionEnv({
455
+ pluginToolsEnabled: this.pluginToolsMcpBridgeEnabled,
456
+ openclawToolsEnabled: this.openclawToolsMcpBridgeEnabled,
453
457
  mcpServers: this.delegateOptions.mcpServers,
454
458
  sessionKey: normalizedSessionKey
455
459
  })
456
460
  }, this.delegateTestOptions);
457
- this.openclawToolsSessionDelegates.set(normalizedSessionKey, delegate);
461
+ this.managedToolsSessionDelegates.set(normalizedSessionKey, delegate);
458
462
  return delegate;
459
463
  }
460
- releaseOpenClawToolsDelegateForSession(sessionKey) {
461
- if (!this.openclawToolsMcpBridgeEnabled) return;
464
+ releaseManagedToolsDelegateForSession(sessionKey) {
465
+ if (!this.managedToolsMcpBridgeEnabled) return;
462
466
  const normalizedSessionKey = sessionKey.trim();
463
467
  if (!normalizedSessionKey) return;
464
- this.openclawToolsSessionDelegates.delete(normalizedSessionKey);
468
+ this.managedToolsSessionDelegates.delete(normalizedSessionKey);
465
469
  }
466
470
  async resolveDelegateForHandle(handle) {
467
471
  const record = await this.sessionStore.load(handle.acpxRecordId ?? handle.sessionKey);
@@ -639,7 +643,7 @@ var AcpxRuntime = class {
639
643
  });
640
644
  const normalizedInput = {
641
645
  ...ensureInput,
642
- ...codexAcpSessionModelId(codexModelOverride) ? { model: codexAcpSessionModelId(codexModelOverride) } : {}
646
+ ...codexModelOverride.model ? { model: codexModelOverride.model } : {}
643
647
  };
644
648
  return await this.runWithLaunchLease({
645
649
  sessionKey: input.sessionKey,
@@ -751,8 +755,8 @@ var AcpxRuntime = class {
751
755
  }
752
756
  };
753
757
  }
754
- getCapabilities() {
755
- return this.delegate.getCapabilities();
758
+ getCapabilities(input) {
759
+ return this.delegate.getCapabilities(input);
756
760
  }
757
761
  async getStatus(input) {
758
762
  return (await this.resolveDelegateForHandle(input.handle)).getStatus(input);
@@ -815,7 +819,7 @@ var AcpxRuntime = class {
815
819
  } finally {
816
820
  await this.cleanupProcessTreeForRecord(input.handle, record);
817
821
  }
818
- if (closeSucceeded) this.releaseOpenClawToolsDelegateForSession(input.handle.sessionKey);
822
+ if (closeSucceeded) this.releaseManagedToolsDelegateForSession(input.handle.sessionKey);
819
823
  if (closeSucceeded && input.discardPersistentState) this.sessionStore.markFresh(input.handle.sessionKey);
820
824
  }
821
825
  };
@@ -823,7 +827,6 @@ var AcpxRuntime = class {
823
827
  const testing = {
824
828
  appendCodexAcpConfigOverrides,
825
829
  assertSupportedRuntimeSessionMode,
826
- codexAcpSessionModelId,
827
830
  isClaudeAcpCommand,
828
831
  isCodexAcpCommand,
829
832
  normalizeClaudeAcpModelOverride,
@@ -1,8 +1,8 @@
1
- import { n as createLazyAcpRuntimeProxy } from "./register.runtime-DBqbPx5P.js";
1
+ import { n as createLazyAcpRuntimeProxy } from "./register.runtime-CysfMsSr.js";
2
2
  import "./config-schema-lrk5nlcV.js";
3
3
  import { a as createAcpxProcessLeaseStore, d as ACPX_GATEWAY_INSTANCE_KEY, f as ACPX_GATEWAY_INSTANCE_NAMESPACE, h as normalizeAcpxGatewayInstanceRecord, l as openAcpxProcessLeaseStateStore, n as OPENCLAW_ACPX_LEASE_ID_ENV, r as OPENCLAW_GATEWAY_INSTANCE_ID_ARG, t as OPENCLAW_ACPX_LEASE_ID_ARG } from "./process-lease-DiKkFj6F.js";
4
4
  import { registerAcpRuntimeBackend, unregisterAcpRuntimeBackend } from "./runtime-api.js";
5
- import { a as resolveAcpxPluginRoot, c as splitCommandParts, i as resolveAcpxPluginConfig, o as toAcpMcpServers, r as reapStaleOpenClawOwnedAcpxOrphans, s as quoteCommandPart, t as cleanupOpenClawOwnedAcpxProcessTree } from "./process-reaper-B29BzBk4.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-CoGRyMJ_.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";
@@ -15,6 +15,7 @@ import { randomUUID } from "node:crypto";
15
15
  import { inspect } from "node:util";
16
16
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
17
17
  import { readJsonFileWithFallback } from "openclaw/plugin-sdk/json-store";
18
+ import { parse, stringify } from "smol-toml";
18
19
  //#region extensions/acpx/src/codex-trust-config.ts
19
20
  /**
20
21
  * Builds isolated Codex config for ACPX sessions. It preserves safe inherited
@@ -225,8 +226,6 @@ function renderIsolatedCodexConfig(params) {
225
226
  * Prepares isolated Codex and Claude ACP wrapper commands for ACPX. The bridge
226
227
  * copies safe auth/config state into plugin-owned homes and redacts diagnostics.
227
228
  */
228
- const CODEX_ACP_PACKAGE = "@zed-industries/codex-acp";
229
- const CODEX_ACP_BIN = "codex-acp";
230
229
  const CLAUDE_ACP_PACKAGE = "@agentclientprotocol/claude-agent-acp";
231
230
  const CLAUDE_ACP_BIN = "claude-agent-acp";
232
231
  const RUN_CONFIGURED_COMMAND_SENTINEL = "--openclaw-run-configured";
@@ -382,7 +381,7 @@ function renderDiagnosticRedactionRuleSpecs() {
382
381
  }
383
382
  function buildAdapterWrapperScript(params) {
384
383
  return `#!/usr/bin/env node
385
- import { appendFileSync, existsSync, readFileSync, writeFileSync } from "node:fs";
384
+ import { appendFileSync, existsSync, readFileSync, rmSync, writeFileSync } from "node:fs";
386
385
  import path from "node:path";
387
386
  import { spawn } from "node:child_process";
388
387
  import { StringDecoder } from "node:string_decoder";
@@ -395,6 +394,7 @@ const stderrLogMaxChars = 256 * 1024;
395
394
  const openClawWrapperArgs = new Set([
396
395
  ${quoteCommandPart(OPENCLAW_ACPX_LEASE_ID_ARG)},
397
396
  ${quoteCommandPart(OPENCLAW_GATEWAY_INSTANCE_ID_ARG)},
397
+ ${(params.openClawWrapperArgs ?? []).map(quoteCommandPart).join(",\n ")}
398
398
  ]);
399
399
 
400
400
  function readOpenClawWrapperArg(args, name) {
@@ -406,6 +406,21 @@ function readOpenClawWrapperArg(args, name) {
406
406
  return typeof value === "string" && value.trim() ? value.trim() : undefined;
407
407
  }
408
408
 
409
+ function readOpenClawWrapperArgs(args, name) {
410
+ const values = [];
411
+ for (let index = 0; index < args.length; index += 1) {
412
+ if (args[index] !== name) {
413
+ continue;
414
+ }
415
+ const value = args[index + 1];
416
+ if (typeof value === "string" && value.trim()) {
417
+ values.push(value.trim());
418
+ }
419
+ index += 1;
420
+ }
421
+ return values;
422
+ }
423
+
409
424
  function safeDiagnosticFilePart(value) {
410
425
  const sanitized = String(value || "").replace(/[^A-Za-z0-9._-]/g, "_").slice(0, 120);
411
426
  return sanitized || "pid-" + process.pid;
@@ -550,14 +565,14 @@ function stripOpenClawWrapperArgs(args) {
550
565
  }
551
566
 
552
567
  const rawConfiguredArgs = process.argv.slice(2);
568
+ ${params.envConfigSetup ?? ""}
553
569
  const stderrLogPath = resolveStderrLogPath(rawConfiguredArgs);
554
-
555
- try {
556
- if (stderrLogPath) {
557
- writeFileSync(stderrLogPath, "", "utf8");
570
+ if (stderrLogPath) {
571
+ try {
572
+ rmSync(stderrLogPath, { force: true });
573
+ } catch {
574
+ // Diagnostic cleanup must never prevent the adapter from starting.
558
575
  }
559
- } catch {
560
- // Stderr capture is diagnostic-only; never break the ACP adapter.
561
576
  }
562
577
 
563
578
  const configuredArgs = stripOpenClawWrapperArgs(rawConfiguredArgs);
@@ -706,6 +721,7 @@ function buildCodexAcpWrapperScript(installedBinPath) {
706
721
  binName: CODEX_ACP_BIN,
707
722
  installedBinPath,
708
723
  stderrLogFileNamePrefix: "codex-acp-wrapper.stderr",
724
+ openClawWrapperArgs: [OPENCLAW_CODEX_CONFIG_ARG],
709
725
  envSetup: `const codexHome = fileURLToPath(new URL("./codex-home/", import.meta.url));
710
726
  const codexAuthPath = fileURLToPath(new URL("./codex-home/auth.json", import.meta.url));
711
727
  const codexApiKey = (process.env.CODEX_API_KEY || process.env.OPENAI_API_KEY || "").trim();
@@ -739,7 +755,59 @@ if (shouldWriteCodexApiKeyAuth) {
739
755
  const env = {
740
756
  ...process.env,
741
757
  CODEX_HOME: codexHome,
742
- };`
758
+ };`,
759
+ envConfigSetup: `function isCodexConfigObject(value) {
760
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
761
+ }
762
+
763
+ function mergeCodexConfig(base, override) {
764
+ const merged = Object.assign(Object.create(null), base);
765
+ for (const [key, value] of Object.entries(override)) {
766
+ const existing = merged[key];
767
+ merged[key] =
768
+ isCodexConfigObject(existing) && isCodexConfigObject(value)
769
+ ? mergeCodexConfig(existing, value)
770
+ : value;
771
+ }
772
+ return merged;
773
+ }
774
+
775
+ const openClawCodexConfigs = readOpenClawWrapperArgs(
776
+ rawConfiguredArgs,
777
+ ${quoteCommandPart(OPENCLAW_CODEX_CONFIG_ARG)},
778
+ );
779
+ if (openClawCodexConfigs.length > 0) {
780
+ let existingCodexConfig = {};
781
+ if (typeof env.CODEX_CONFIG === "string" && env.CODEX_CONFIG.trim()) {
782
+ try {
783
+ const parsedCodexConfig = JSON.parse(env.CODEX_CONFIG);
784
+ if (!parsedCodexConfig || typeof parsedCodexConfig !== "object" || Array.isArray(parsedCodexConfig)) {
785
+ throw new Error("CODEX_CONFIG must be a JSON object");
786
+ }
787
+ existingCodexConfig = parsedCodexConfig;
788
+ } catch {
789
+ console.error("[openclaw] CODEX_CONFIG must be a valid JSON object");
790
+ process.exit(1);
791
+ }
792
+ }
793
+ for (const openClawCodexConfig of openClawCodexConfigs) {
794
+ try {
795
+ const parsedOpenClawCodexConfig = JSON.parse(openClawCodexConfig);
796
+ if (
797
+ !parsedOpenClawCodexConfig ||
798
+ typeof parsedOpenClawCodexConfig !== "object" ||
799
+ Array.isArray(parsedOpenClawCodexConfig)
800
+ ) {
801
+ throw new Error("invalid OpenClaw Codex config");
802
+ }
803
+ existingCodexConfig = mergeCodexConfig(existingCodexConfig, parsedOpenClawCodexConfig);
804
+ } catch {
805
+ console.error("[openclaw] invalid generated Codex ACP startup config");
806
+ process.exit(1);
807
+ }
808
+ }
809
+ env.CODEX_CONFIG = JSON.stringify(existingCodexConfig);
810
+ }`
743
811
  });
744
812
  }
745
813
  function buildClaudeAcpWrapperScript(installedBinPath) {
@@ -826,15 +894,94 @@ function extractConfiguredAdapterArgs(params) {
826
894
  if (isAcpBinName(parts[0] ?? "", params.binName)) return parts.slice(1);
827
895
  if (basename(parts[0] ?? "") === "node" && isAcpBinName(parts[1] ?? "", params.binName)) return parts.slice(2);
828
896
  }
829
- function buildCodexAcpWrapperCommand(wrapperPath, configuredCommand) {
830
- const configuredAdapterArgs = extractConfiguredAdapterArgs({
897
+ function isConfigRecord(value) {
898
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
899
+ }
900
+ function mergeConfigRecords(base, override) {
901
+ const merged = { ...base };
902
+ for (const [key, value] of Object.entries(override)) {
903
+ const existing = merged[key];
904
+ const nextValue = isConfigRecord(existing) && isConfigRecord(value) ? mergeConfigRecords(existing, value) : value;
905
+ Object.defineProperty(merged, key, {
906
+ value: nextValue,
907
+ configurable: true,
908
+ enumerable: true,
909
+ writable: true
910
+ });
911
+ }
912
+ return merged;
913
+ }
914
+ function parseLegacyCodexConfigAssignment(assignment) {
915
+ const separator = assignment.indexOf("=");
916
+ if (separator <= 0) throw new Error(`Invalid legacy Codex ACP config override: ${assignment}`);
917
+ const rawKey = assignment.slice(0, separator).trim();
918
+ const key = rawKey === "use_legacy_landlock" ? "features.use_legacy_landlock" : rawKey;
919
+ const rawValue = assignment.slice(separator + 1).trim();
920
+ try {
921
+ return parse(`${key} = ${rawValue}`);
922
+ } catch {
923
+ const literal = rawValue.replace(/^["']+|["']+$/g, "");
924
+ return parse(`${key} = ${JSON.stringify(literal)}`);
925
+ }
926
+ }
927
+ function migrateLegacyCodexArgs(args) {
928
+ let config = {};
929
+ const forwardedArgs = [];
930
+ let hadOverrides = false;
931
+ for (let index = 0; index < args.length; index += 1) {
932
+ const arg = args[index] ?? "";
933
+ let assignment;
934
+ if (arg === "-c" || arg === "--config") assignment = args[index += 1];
935
+ else if (arg.startsWith("--config=")) assignment = arg.slice(9);
936
+ else if (arg.startsWith("-c=")) assignment = arg.slice(3);
937
+ else if (arg.startsWith("-c") && arg.length > 2) assignment = arg.slice(2);
938
+ else {
939
+ forwardedArgs.push(arg);
940
+ continue;
941
+ }
942
+ if (!assignment) throw new Error(`Missing value for legacy Codex ACP option ${arg}`);
943
+ hadOverrides = true;
944
+ config = mergeConfigRecords(config, parseLegacyCodexConfigAssignment(assignment));
945
+ }
946
+ return {
947
+ config,
948
+ forwardedArgs,
949
+ hadOverrides
950
+ };
951
+ }
952
+ function resolveCodexAdapterLaunch(configuredCommand) {
953
+ const legacyAdapterArgs = extractConfiguredAdapterArgs({
954
+ configuredCommand,
955
+ packageName: LEGACY_CODEX_ACP_PACKAGE,
956
+ binName: CODEX_ACP_BIN
957
+ });
958
+ if (legacyAdapterArgs) {
959
+ const migration = migrateLegacyCodexArgs(legacyAdapterArgs);
960
+ return {
961
+ args: [...migration.hadOverrides ? [OPENCLAW_CODEX_CONFIG_ARG, JSON.stringify(migration.config)] : [], ...migration.forwardedArgs],
962
+ ...migration.hadOverrides ? { migratedConfig: migration.config } : {}
963
+ };
964
+ }
965
+ const maintainedAdapterArgs = extractConfiguredAdapterArgs({
831
966
  configuredCommand,
832
967
  packageName: CODEX_ACP_PACKAGE,
833
968
  binName: CODEX_ACP_BIN
834
969
  });
835
- if (configuredAdapterArgs) return buildWrapperCommand(wrapperPath, configuredAdapterArgs);
970
+ if (!maintainedAdapterArgs) return;
971
+ return { args: maintainedAdapterArgs };
972
+ }
973
+ function buildCodexAcpWrapperCommand(wrapperPath, configuredCommand) {
974
+ const launch = resolveCodexAdapterLaunch(configuredCommand);
975
+ if (launch) return buildWrapperCommand(wrapperPath, launch.args);
836
976
  return buildWrapperCommand(wrapperPath, [RUN_CONFIGURED_COMMAND_SENTINEL, ...splitCommandParts(configuredCommand?.trim() ?? "")]);
837
977
  }
978
+ async function persistMigratedCodexMcpConfig(params) {
979
+ const mcpServers = params.migratedConfig?.mcp_servers;
980
+ if (!isConfigRecord(mcpServers)) return;
981
+ const configPath = path.join(params.codexHome, "config.toml");
982
+ const merged = mergeConfigRecords(parse(await fs$1.readFile(configPath, "utf8")), { mcp_servers: mcpServers });
983
+ await fs$1.writeFile(configPath, stringify(merged), "utf8");
984
+ }
838
985
  function buildClaudeAcpWrapperCommand(wrapperPath, configuredCommand) {
839
986
  const configuredAdapterArgs = extractConfiguredAdapterArgs({
840
987
  configuredCommand,
@@ -848,16 +995,20 @@ function buildClaudeAcpWrapperCommand(wrapperPath, configuredCommand) {
848
995
  async function prepareAcpxCodexAuthConfig(params) {
849
996
  params.logger;
850
997
  const codexBaseDir = path.join(params.stateDir, "acpx");
851
- await prepareIsolatedCodexHome({
852
- baseDir: codexBaseDir,
853
- workspaceDir: params.pluginConfig.cwd
998
+ const configuredCodexCommand = params.pluginConfig.agents.codex;
999
+ const configuredClaudeCommand = params.pluginConfig.agents.claude;
1000
+ const codexLaunch = resolveCodexAdapterLaunch(configuredCodexCommand);
1001
+ await persistMigratedCodexMcpConfig({
1002
+ codexHome: await prepareIsolatedCodexHome({
1003
+ baseDir: codexBaseDir,
1004
+ workspaceDir: params.pluginConfig.cwd
1005
+ }),
1006
+ migratedConfig: codexLaunch?.migratedConfig
854
1007
  });
855
1008
  const installedCodexBinPath = await (params.resolveInstalledCodexAcpBinPath ?? resolveInstalledCodexAcpBinPath)();
856
1009
  const installedClaudeBinPath = await (params.resolveInstalledClaudeAcpBinPath ?? resolveInstalledClaudeAcpBinPath)();
857
1010
  const wrapperPath = await writeCodexAcpWrapper(codexBaseDir, installedCodexBinPath);
858
1011
  const claudeWrapperPath = await writeClaudeAcpWrapper(codexBaseDir, installedClaudeBinPath);
859
- const configuredCodexCommand = params.pluginConfig.agents.codex;
860
- const configuredClaudeCommand = params.pluginConfig.agents.claude;
861
1012
  return {
862
1013
  ...params.pluginConfig,
863
1014
  agents: {
@@ -876,7 +1027,7 @@ async function prepareAcpxCodexAuthConfig(params) {
876
1027
  const ENABLE_STARTUP_PROBE_ENV = "OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE";
877
1028
  const SKIP_RUNTIME_PROBE_ENV = "OPENCLAW_SKIP_ACPX_RUNTIME_PROBE";
878
1029
  const ACPX_BACKEND_ID = "acpx";
879
- const loadRuntimeModule = createLazyRuntimeModule(() => import("./runtime-D_fW1HnP.js"));
1030
+ const loadRuntimeModule = createLazyRuntimeModule(() => import("./runtime-BEOGc4Ik.js"));
880
1031
  /** Convert ACPX timeout seconds into timer-safe milliseconds. */
881
1032
  function resolveAcpxTimerTimeoutMs(timeoutSeconds) {
882
1033
  if (timeoutSeconds === void 0) return;
@@ -897,6 +1048,7 @@ function createLazyDefaultRuntime(params) {
897
1048
  agentRegistry: module.createAgentRegistry({ overrides: params.pluginConfig.agents }),
898
1049
  probeAgent: params.pluginConfig.probeAgent,
899
1050
  mcpServers: toAcpMcpServers(params.pluginConfig.mcpServers),
1051
+ pluginToolsMcpBridgeEnabled: params.pluginConfig.pluginToolsMcpBridge,
900
1052
  openclawToolsMcpBridgeEnabled: params.pluginConfig.openClawToolsMcpBridge,
901
1053
  permissionMode: params.pluginConfig.permissionMode,
902
1054
  nonInteractivePermissions: params.pluginConfig.nonInteractivePermissions,
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@openclaw/acpx",
3
- "version": "2026.7.2-beta.1",
3
+ "version": "2026.7.2-beta.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/acpx",
9
- "version": "2026.7.2-beta.1",
9
+ "version": "2026.7.2-beta.2",
10
10
  "dependencies": {
11
11
  "@agentclientprotocol/claude-agent-acp": "0.55.0",
12
- "@zed-industries/codex-acp": "0.16.0",
12
+ "@agentclientprotocol/codex-acp": "1.1.2",
13
13
  "acpx": "0.11.2",
14
+ "smol-toml": "1.7.0",
14
15
  "zod": "4.4.3"
15
16
  }
16
17
  },
@@ -31,6 +32,32 @@
31
32
  "node": ">=22"
32
33
  }
33
34
  },
35
+ "node_modules/@agentclientprotocol/codex-acp": {
36
+ "version": "1.1.2",
37
+ "resolved": "https://registry.npmjs.org/@agentclientprotocol/codex-acp/-/codex-acp-1.1.2.tgz",
38
+ "integrity": "sha512-qE/R1WdqJJ9OFHsHGvbmVmS2j9iCMZzpWT3g2XIViXrGHu1fLOALLINBIlW+WzKDllCh131aB6cqcIWSt0otbw==",
39
+ "license": "Apache-2.0",
40
+ "dependencies": {
41
+ "@agentclientprotocol/sdk": "^1.2.1",
42
+ "@openai/codex": "^0.144.0",
43
+ "diff": "^9.0.0",
44
+ "open": "^11.0.0",
45
+ "vscode-jsonrpc": "^9.0.1",
46
+ "zod": "^4.0.0"
47
+ },
48
+ "bin": {
49
+ "codex-acp": "dist/index.js"
50
+ }
51
+ },
52
+ "node_modules/@agentclientprotocol/codex-acp/node_modules/@agentclientprotocol/sdk": {
53
+ "version": "1.2.1",
54
+ "resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.2.1.tgz",
55
+ "integrity": "sha512-jwYUdOQR7tc+Zfch53VL4JJyUNK/46q03uUTYb+PjECsmnNl94XFXOfYLJ8RBpMNidXd1rpOAVgb0vqD98xImA==",
56
+ "license": "Apache-2.0",
57
+ "peerDependencies": {
58
+ "zod": "^3.25.0 || ^4.0.0"
59
+ }
60
+ },
34
61
  "node_modules/@agentclientprotocol/sdk": {
35
62
  "version": "1.1.0",
36
63
  "resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.1.0.tgz",
@@ -694,33 +721,31 @@
694
721
  }
695
722
  }
696
723
  },
697
- "node_modules/@stablelib/base64": {
698
- "version": "1.0.1",
699
- "resolved": "https://registry.npmjs.org/@stablelib/base64/-/base64-1.0.1.tgz",
700
- "integrity": "sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==",
701
- "license": "MIT"
702
- },
703
- "node_modules/@zed-industries/codex-acp": {
704
- "version": "0.16.0",
705
- "resolved": "https://registry.npmjs.org/@zed-industries/codex-acp/-/codex-acp-0.16.0.tgz",
706
- "integrity": "sha512-XKzqztT5R8Wg1BVFnk6/U4JVx5GNUaZgxpf9gP2Cw6BsknvJWh3aefcAGZQljgdMivRqczjNKYL4F6H65dc5vA==",
724
+ "node_modules/@openai/codex": {
725
+ "version": "0.144.4",
726
+ "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.4.tgz",
727
+ "integrity": "sha512-DTHzYatlKq9dw55E0/HsbK4tRCEKabuJ10ybbqpsG8gVv/kvwEdg3Z4OI3cvLXKa21xkIa4lkGlZoO/HmqmFFw==",
707
728
  "license": "Apache-2.0",
708
729
  "bin": {
709
- "codex-acp": "bin/codex-acp.js"
730
+ "codex": "bin/codex.js"
731
+ },
732
+ "engines": {
733
+ "node": ">=16"
710
734
  },
711
735
  "optionalDependencies": {
712
- "@zed-industries/codex-acp-darwin-arm64": "0.16.0",
713
- "@zed-industries/codex-acp-darwin-x64": "0.16.0",
714
- "@zed-industries/codex-acp-linux-arm64": "0.16.0",
715
- "@zed-industries/codex-acp-linux-x64": "0.16.0",
716
- "@zed-industries/codex-acp-win32-arm64": "0.16.0",
717
- "@zed-industries/codex-acp-win32-x64": "0.16.0"
718
- }
719
- },
720
- "node_modules/@zed-industries/codex-acp-darwin-arm64": {
721
- "version": "0.16.0",
722
- "resolved": "https://registry.npmjs.org/@zed-industries/codex-acp-darwin-arm64/-/codex-acp-darwin-arm64-0.16.0.tgz",
723
- "integrity": "sha512-2AmbWsc/+Mpn6U8UOIlPLvgwGsGOr/LFpgcvrnjcCT9V1yY92MLrqzjMX82+VjTrRLRuXvc25SB5Z1++4Pw29g==",
736
+ "@openai/codex-darwin-arm64": "npm:@openai/codex@0.144.4-darwin-arm64",
737
+ "@openai/codex-darwin-x64": "npm:@openai/codex@0.144.4-darwin-x64",
738
+ "@openai/codex-linux-arm64": "npm:@openai/codex@0.144.4-linux-arm64",
739
+ "@openai/codex-linux-x64": "npm:@openai/codex@0.144.4-linux-x64",
740
+ "@openai/codex-win32-arm64": "npm:@openai/codex@0.144.4-win32-arm64",
741
+ "@openai/codex-win32-x64": "npm:@openai/codex@0.144.4-win32-x64"
742
+ }
743
+ },
744
+ "node_modules/@openai/codex-darwin-arm64": {
745
+ "name": "@openai/codex",
746
+ "version": "0.144.4-darwin-arm64",
747
+ "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.4-darwin-arm64.tgz",
748
+ "integrity": "sha512-6J3g498cM2oA7vYIJhpuGJlnIi/M5JdYmjB5BZ1Of5HQ0ziIlplFSvH801oVy9J5TQFp642ODzOu/ZEokDUXsg==",
724
749
  "cpu": [
725
750
  "arm64"
726
751
  ],
@@ -729,14 +754,15 @@
729
754
  "os": [
730
755
  "darwin"
731
756
  ],
732
- "bin": {
733
- "codex-acp-darwin-arm64": "bin/codex-acp"
757
+ "engines": {
758
+ "node": ">=16"
734
759
  }
735
760
  },
736
- "node_modules/@zed-industries/codex-acp-darwin-x64": {
737
- "version": "0.16.0",
738
- "resolved": "https://registry.npmjs.org/@zed-industries/codex-acp-darwin-x64/-/codex-acp-darwin-x64-0.16.0.tgz",
739
- "integrity": "sha512-QCWggk0s4GTPLCR7eznyx29Dls4gzUKvp4MjZ4nzPX5gDL/02PGY+oCV1WsQOsnzWRK0RxM+GlK19rG1qzqplw==",
761
+ "node_modules/@openai/codex-darwin-x64": {
762
+ "name": "@openai/codex",
763
+ "version": "0.144.4-darwin-x64",
764
+ "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.4-darwin-x64.tgz",
765
+ "integrity": "sha512-k1HC8gdbAy+VmMbekYkhM+r+QE2Xfgd67n1VSp94tjz7aXVKoalHcDkdKNM/uUQ8o2tvbiwhHSUftJF8Sm9/Lw==",
740
766
  "cpu": [
741
767
  "x64"
742
768
  ],
@@ -745,14 +771,15 @@
745
771
  "os": [
746
772
  "darwin"
747
773
  ],
748
- "bin": {
749
- "codex-acp-darwin-x64": "bin/codex-acp"
774
+ "engines": {
775
+ "node": ">=16"
750
776
  }
751
777
  },
752
- "node_modules/@zed-industries/codex-acp-linux-arm64": {
753
- "version": "0.16.0",
754
- "resolved": "https://registry.npmjs.org/@zed-industries/codex-acp-linux-arm64/-/codex-acp-linux-arm64-0.16.0.tgz",
755
- "integrity": "sha512-8HaZGWVPVs1N6yqImLCKlnlcYTYc9BMCEhaVJk0ON9lyofhK9mOBBAHQndKC4Scqq5JLUHQIOyb8+jwHUe3hSQ==",
778
+ "node_modules/@openai/codex-linux-arm64": {
779
+ "name": "@openai/codex",
780
+ "version": "0.144.4-linux-arm64",
781
+ "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.4-linux-arm64.tgz",
782
+ "integrity": "sha512-OlKx65579OwIzech9Tt3OUH9+hFZfFrCBP1hL2MudnMIoNr1+cFZjB5YIj5MWMRoBD+K5W3wdBIpQSH855b5Sg==",
756
783
  "cpu": [
757
784
  "arm64"
758
785
  ],
@@ -761,14 +788,15 @@
761
788
  "os": [
762
789
  "linux"
763
790
  ],
764
- "bin": {
765
- "codex-acp-linux-arm64": "bin/codex-acp"
791
+ "engines": {
792
+ "node": ">=16"
766
793
  }
767
794
  },
768
- "node_modules/@zed-industries/codex-acp-linux-x64": {
769
- "version": "0.16.0",
770
- "resolved": "https://registry.npmjs.org/@zed-industries/codex-acp-linux-x64/-/codex-acp-linux-x64-0.16.0.tgz",
771
- "integrity": "sha512-xs5zZBLpJuciEbZNx6ZSNL0qCa9h3i/zWpj40sp6QtF+L4Ow/7qzHdBzboGhHdcz1jrLedfZeRFDA2Elj8TLMA==",
795
+ "node_modules/@openai/codex-linux-x64": {
796
+ "name": "@openai/codex",
797
+ "version": "0.144.4-linux-x64",
798
+ "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.4-linux-x64.tgz",
799
+ "integrity": "sha512-2jxrmV6+/7eBNdg5uhhmOEPFu2o28eYY/ClLzWhSBHH8uo3f2KA1z9JQcVtwlbToW03nEPlEzYNYfCF1UBqsVQ==",
772
800
  "cpu": [
773
801
  "x64"
774
802
  ],
@@ -777,14 +805,15 @@
777
805
  "os": [
778
806
  "linux"
779
807
  ],
780
- "bin": {
781
- "codex-acp-linux-x64": "bin/codex-acp"
808
+ "engines": {
809
+ "node": ">=16"
782
810
  }
783
811
  },
784
- "node_modules/@zed-industries/codex-acp-win32-arm64": {
785
- "version": "0.16.0",
786
- "resolved": "https://registry.npmjs.org/@zed-industries/codex-acp-win32-arm64/-/codex-acp-win32-arm64-0.16.0.tgz",
787
- "integrity": "sha512-4V3pDJvEyNkgVqWqlm0bLYEZ8liGXXp8InuHzCy5cgr+SFur6BuasA29tisN8NUrLus/ZvMhXCrOsNKurYAWQw==",
812
+ "node_modules/@openai/codex-win32-arm64": {
813
+ "name": "@openai/codex",
814
+ "version": "0.144.4-win32-arm64",
815
+ "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.4-win32-arm64.tgz",
816
+ "integrity": "sha512-CCgfI1smFhHZTIpTuBwDJwBr/AR40RTqaFxbBWVabu0RMeYDteRuPiDfdTlktf3C43Y1q10VZXhVGYtCokDg2w==",
788
817
  "cpu": [
789
818
  "arm64"
790
819
  ],
@@ -793,14 +822,15 @@
793
822
  "os": [
794
823
  "win32"
795
824
  ],
796
- "bin": {
797
- "codex-acp-win32-arm64": "bin/codex-acp.exe"
825
+ "engines": {
826
+ "node": ">=16"
798
827
  }
799
828
  },
800
- "node_modules/@zed-industries/codex-acp-win32-x64": {
801
- "version": "0.16.0",
802
- "resolved": "https://registry.npmjs.org/@zed-industries/codex-acp-win32-x64/-/codex-acp-win32-x64-0.16.0.tgz",
803
- "integrity": "sha512-ZriI/ay5E3DCg8s22LZykIRI2XzQL6sZg/t81K+6qc86ldscaSWQSOT6KSnRcv31QJCMfBlFxMj22pZiGSVjQA==",
829
+ "node_modules/@openai/codex-win32-x64": {
830
+ "name": "@openai/codex",
831
+ "version": "0.144.4-win32-x64",
832
+ "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.144.4-win32-x64.tgz",
833
+ "integrity": "sha512-iL1ky0ERgdQJOKzom/Ms1fhpwkSmpsA9eVrzAqURFlYGS8z7JqwEgm33+nLGCsY7y25d8Xs/LJ91Oiqz3yXcUg==",
804
834
  "cpu": [
805
835
  "x64"
806
836
  ],
@@ -809,10 +839,16 @@
809
839
  "os": [
810
840
  "win32"
811
841
  ],
812
- "bin": {
813
- "codex-acp-win32-x64": "bin/codex-acp.exe"
842
+ "engines": {
843
+ "node": ">=16"
814
844
  }
815
845
  },
846
+ "node_modules/@stablelib/base64": {
847
+ "version": "1.0.1",
848
+ "resolved": "https://registry.npmjs.org/@stablelib/base64/-/base64-1.0.1.tgz",
849
+ "integrity": "sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==",
850
+ "license": "MIT"
851
+ },
816
852
  "node_modules/accepts": {
817
853
  "version": "2.0.0",
818
854
  "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
@@ -1030,6 +1066,21 @@
1030
1066
  "url": "https://opencollective.com/express"
1031
1067
  }
1032
1068
  },
1069
+ "node_modules/bundle-name": {
1070
+ "version": "4.1.0",
1071
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
1072
+ "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
1073
+ "license": "MIT",
1074
+ "dependencies": {
1075
+ "run-applescript": "^7.0.0"
1076
+ },
1077
+ "engines": {
1078
+ "node": ">=18"
1079
+ },
1080
+ "funding": {
1081
+ "url": "https://github.com/sponsors/sindresorhus"
1082
+ }
1083
+ },
1033
1084
  "node_modules/bytes": {
1034
1085
  "version": "3.1.2",
1035
1086
  "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@@ -1165,6 +1216,46 @@
1165
1216
  }
1166
1217
  }
1167
1218
  },
1219
+ "node_modules/default-browser": {
1220
+ "version": "5.5.0",
1221
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz",
1222
+ "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==",
1223
+ "license": "MIT",
1224
+ "dependencies": {
1225
+ "bundle-name": "^4.1.0",
1226
+ "default-browser-id": "^5.0.0"
1227
+ },
1228
+ "engines": {
1229
+ "node": ">=18"
1230
+ },
1231
+ "funding": {
1232
+ "url": "https://github.com/sponsors/sindresorhus"
1233
+ }
1234
+ },
1235
+ "node_modules/default-browser-id": {
1236
+ "version": "5.0.1",
1237
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
1238
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
1239
+ "license": "MIT",
1240
+ "engines": {
1241
+ "node": ">=18"
1242
+ },
1243
+ "funding": {
1244
+ "url": "https://github.com/sponsors/sindresorhus"
1245
+ }
1246
+ },
1247
+ "node_modules/define-lazy-prop": {
1248
+ "version": "3.0.0",
1249
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
1250
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
1251
+ "license": "MIT",
1252
+ "engines": {
1253
+ "node": ">=12"
1254
+ },
1255
+ "funding": {
1256
+ "url": "https://github.com/sponsors/sindresorhus"
1257
+ }
1258
+ },
1168
1259
  "node_modules/depd": {
1169
1260
  "version": "2.0.0",
1170
1261
  "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -1174,6 +1265,15 @@
1174
1265
  "node": ">= 0.8"
1175
1266
  }
1176
1267
  },
1268
+ "node_modules/diff": {
1269
+ "version": "9.0.0",
1270
+ "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz",
1271
+ "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==",
1272
+ "license": "BSD-3-Clause",
1273
+ "engines": {
1274
+ "node": ">=0.3.1"
1275
+ }
1276
+ },
1177
1277
  "node_modules/dunder-proto": {
1178
1278
  "version": "1.0.1",
1179
1279
  "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -1642,12 +1742,72 @@
1642
1742
  "node": ">= 0.10"
1643
1743
  }
1644
1744
  },
1745
+ "node_modules/is-docker": {
1746
+ "version": "3.0.0",
1747
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
1748
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
1749
+ "license": "MIT",
1750
+ "bin": {
1751
+ "is-docker": "cli.js"
1752
+ },
1753
+ "engines": {
1754
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1755
+ },
1756
+ "funding": {
1757
+ "url": "https://github.com/sponsors/sindresorhus"
1758
+ }
1759
+ },
1760
+ "node_modules/is-in-ssh": {
1761
+ "version": "1.0.0",
1762
+ "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz",
1763
+ "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==",
1764
+ "license": "MIT",
1765
+ "engines": {
1766
+ "node": ">=20"
1767
+ },
1768
+ "funding": {
1769
+ "url": "https://github.com/sponsors/sindresorhus"
1770
+ }
1771
+ },
1772
+ "node_modules/is-inside-container": {
1773
+ "version": "1.0.0",
1774
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
1775
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
1776
+ "license": "MIT",
1777
+ "dependencies": {
1778
+ "is-docker": "^3.0.0"
1779
+ },
1780
+ "bin": {
1781
+ "is-inside-container": "cli.js"
1782
+ },
1783
+ "engines": {
1784
+ "node": ">=14.16"
1785
+ },
1786
+ "funding": {
1787
+ "url": "https://github.com/sponsors/sindresorhus"
1788
+ }
1789
+ },
1645
1790
  "node_modules/is-promise": {
1646
1791
  "version": "4.0.0",
1647
1792
  "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
1648
1793
  "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
1649
1794
  "license": "MIT"
1650
1795
  },
1796
+ "node_modules/is-wsl": {
1797
+ "version": "3.1.1",
1798
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
1799
+ "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
1800
+ "license": "MIT",
1801
+ "dependencies": {
1802
+ "is-inside-container": "^1.0.0"
1803
+ },
1804
+ "engines": {
1805
+ "node": ">=16"
1806
+ },
1807
+ "funding": {
1808
+ "url": "https://github.com/sponsors/sindresorhus"
1809
+ }
1810
+ },
1651
1811
  "node_modules/isexe": {
1652
1812
  "version": "2.0.0",
1653
1813
  "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -1800,6 +1960,26 @@
1800
1960
  "wrappy": "1"
1801
1961
  }
1802
1962
  },
1963
+ "node_modules/open": {
1964
+ "version": "11.0.0",
1965
+ "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz",
1966
+ "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==",
1967
+ "license": "MIT",
1968
+ "dependencies": {
1969
+ "default-browser": "^5.4.0",
1970
+ "define-lazy-prop": "^3.0.0",
1971
+ "is-in-ssh": "^1.0.0",
1972
+ "is-inside-container": "^1.0.0",
1973
+ "powershell-utils": "^0.1.0",
1974
+ "wsl-utils": "^0.3.0"
1975
+ },
1976
+ "engines": {
1977
+ "node": ">=20"
1978
+ },
1979
+ "funding": {
1980
+ "url": "https://github.com/sponsors/sindresorhus"
1981
+ }
1982
+ },
1803
1983
  "node_modules/parseurl": {
1804
1984
  "version": "1.3.3",
1805
1985
  "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -1837,6 +2017,18 @@
1837
2017
  "node": ">=16.20.0"
1838
2018
  }
1839
2019
  },
2020
+ "node_modules/powershell-utils": {
2021
+ "version": "0.1.0",
2022
+ "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz",
2023
+ "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==",
2024
+ "license": "MIT",
2025
+ "engines": {
2026
+ "node": ">=20"
2027
+ },
2028
+ "funding": {
2029
+ "url": "https://github.com/sponsors/sindresorhus"
2030
+ }
2031
+ },
1840
2032
  "node_modules/proxy-addr": {
1841
2033
  "version": "2.0.7",
1842
2034
  "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -1918,6 +2110,18 @@
1918
2110
  "node": ">= 18"
1919
2111
  }
1920
2112
  },
2113
+ "node_modules/run-applescript": {
2114
+ "version": "7.1.0",
2115
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
2116
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
2117
+ "license": "MIT",
2118
+ "engines": {
2119
+ "node": ">=18"
2120
+ },
2121
+ "funding": {
2122
+ "url": "https://github.com/sponsors/sindresorhus"
2123
+ }
2124
+ },
1921
2125
  "node_modules/safer-buffer": {
1922
2126
  "version": "2.1.2",
1923
2127
  "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -2091,6 +2295,18 @@
2091
2295
  "node": ">=18"
2092
2296
  }
2093
2297
  },
2298
+ "node_modules/smol-toml": {
2299
+ "version": "1.7.0",
2300
+ "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.7.0.tgz",
2301
+ "integrity": "sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==",
2302
+ "license": "BSD-3-Clause",
2303
+ "engines": {
2304
+ "node": ">= 18"
2305
+ },
2306
+ "funding": {
2307
+ "url": "https://github.com/sponsors/cyyynthia"
2308
+ }
2309
+ },
2094
2310
  "node_modules/standardwebhooks": {
2095
2311
  "version": "1.0.0",
2096
2312
  "resolved": "https://registry.npmjs.org/standardwebhooks/-/standardwebhooks-1.0.0.tgz",
@@ -2233,6 +2449,15 @@
2233
2449
  "node": ">= 0.8"
2234
2450
  }
2235
2451
  },
2452
+ "node_modules/vscode-jsonrpc": {
2453
+ "version": "9.0.1",
2454
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.1.tgz",
2455
+ "integrity": "sha512-rfuA6T75H6m5EkbhtEPzre9pT0HPcDI2MMy4+nPFIBks5J8JBAUHD4tRYSgaBOijIEC7SRkC1kKyXTLqbmh9jw==",
2456
+ "license": "MIT",
2457
+ "engines": {
2458
+ "node": ">=14.0.0"
2459
+ }
2460
+ },
2236
2461
  "node_modules/which": {
2237
2462
  "version": "2.0.2",
2238
2463
  "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -2254,6 +2479,22 @@
2254
2479
  "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
2255
2480
  "license": "ISC"
2256
2481
  },
2482
+ "node_modules/wsl-utils": {
2483
+ "version": "0.3.1",
2484
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz",
2485
+ "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==",
2486
+ "license": "MIT",
2487
+ "dependencies": {
2488
+ "is-wsl": "^3.1.0",
2489
+ "powershell-utils": "^0.1.0"
2490
+ },
2491
+ "engines": {
2492
+ "node": ">=20"
2493
+ },
2494
+ "funding": {
2495
+ "url": "https://github.com/sponsors/sindresorhus"
2496
+ }
2497
+ },
2257
2498
  "node_modules/zod": {
2258
2499
  "version": "4.4.3",
2259
2500
  "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/acpx",
3
- "version": "2026.7.2-beta.1",
3
+ "version": "2026.7.2-beta.2",
4
4
  "description": "OpenClaw ACP runtime backend with plugin-owned session and transport management.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,8 +9,9 @@
9
9
  "type": "module",
10
10
  "dependencies": {
11
11
  "@agentclientprotocol/claude-agent-acp": "0.55.0",
12
- "@zed-industries/codex-acp": "0.16.0",
12
+ "@agentclientprotocol/codex-acp": "1.1.2",
13
13
  "acpx": "0.11.2",
14
+ "smol-toml": "1.7.0",
14
15
  "zod": "4.4.3"
15
16
  },
16
17
  "devDependencies": {
@@ -26,10 +27,10 @@
26
27
  "minHostVersion": ">=2026.4.25"
27
28
  },
28
29
  "compat": {
29
- "pluginApi": ">=2026.7.2-beta.1"
30
+ "pluginApi": ">=2026.7.2-beta.2"
30
31
  },
31
32
  "build": {
32
- "openclawVersion": "2026.7.2-beta.1",
33
+ "openclawVersion": "2026.7.2-beta.2",
33
34
  "staticAssets": [
34
35
  {
35
36
  "source": "./src/runtime-internals/mcp-proxy.mjs",
@@ -58,7 +59,7 @@
58
59
  "skills/**"
59
60
  ],
60
61
  "peerDependencies": {
61
- "openclaw": ">=2026.7.2-beta.1"
62
+ "openclaw": ">=2026.7.2-beta.2"
62
63
  },
63
64
  "peerDependenciesMeta": {
64
65
  "openclaw": {
@@ -210,7 +210,7 @@ Defaults are:
210
210
 
211
211
  - `openclaw -> openclaw acp`
212
212
  - `claude -> bundled @agentclientprotocol/claude-agent-acp@0.55.0`
213
- - `codex -> bundled @zed-industries/codex-acp@0.16.0 through OpenClaw's isolated CODEX_HOME wrapper`
213
+ - `codex -> bundled @agentclientprotocol/codex-acp@1.1.2 through OpenClaw's isolated CODEX_HOME wrapper`
214
214
  - `copilot -> copilot --acp --stdio`
215
215
  - `cursor -> cursor-agent acp`
216
216
  - `droid -> droid exec --output-format acp`