@openclaw/acpx 2026.6.10 → 2026.6.11

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,4 +1,4 @@
1
- import { t as createAcpxRuntimeService } from "./register.runtime-BZF2iGgh.js";
1
+ import { t as createAcpxRuntimeService } from "./register.runtime-CmYbf9SF.js";
2
2
  import { tryDispatchAcpReplyHook } from "openclaw/plugin-sdk/acp-runtime-backend";
3
3
  //#region extensions/acpx/index.ts
4
4
  /**
@@ -205,7 +205,7 @@ function createLazyAcpRuntimeProxy(resolveRuntime) {
205
205
  const ACPX_BACKEND_ID = "acpx";
206
206
  let serviceModulePromise = null;
207
207
  function loadServiceModule() {
208
- serviceModulePromise ??= import("./service-BGmpEY_0.js");
208
+ serviceModulePromise ??= import("./service-BqMIPoSJ.js");
209
209
  return serviceModulePromise;
210
210
  }
211
211
  async function startRealService(state) {
@@ -1,2 +1,2 @@
1
- import { t as createAcpxRuntimeService } from "./register.runtime-BZF2iGgh.js";
1
+ import { t as createAcpxRuntimeService } from "./register.runtime-CmYbf9SF.js";
2
2
  export { createAcpxRuntimeService };
@@ -5,7 +5,7 @@ import fs from "node:fs/promises";
5
5
  import path, { resolve } from "node:path";
6
6
  import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { AsyncLocalStorage } from "node:async_hooks";
8
- import { ACPX_BACKEND_ID, AcpxRuntime as AcpxRuntime$1, createAcpRuntime, createAgentRegistry, createFileSessionStore, decodeAcpxRuntimeHandleState, encodeAcpxRuntimeHandleState } from "acpx/runtime";
8
+ import { ACPX_BACKEND_ID, AcpxRuntime as AcpxRuntime$1, createAcpRuntime, createAgentRegistry, createFileSessionStore, decodeAcpxRuntimeHandleState, encodeAcpxRuntimeHandleState, isRequestedModelUnsupportedError } from "acpx/runtime";
9
9
  import { parseStrictPositiveInteger } from "openclaw/plugin-sdk/number-runtime";
10
10
  import { redactSensitiveText } from "openclaw/plugin-sdk/security-runtime";
11
11
  //#region extensions/acpx/src/runtime.ts
@@ -317,6 +317,20 @@ function withAcpxSessionOptions(input) {
317
317
  ...sessionOptions ? { sessionOptions } : {}
318
318
  };
319
319
  }
320
+ function isAcpModelCapabilityMissingError(error) {
321
+ return isRequestedModelUnsupportedError(error) && error.reason === "missing-capability";
322
+ }
323
+ async function ensureDelegateSessionWithModelFallback(delegate, input) {
324
+ try {
325
+ return await delegate.ensureSession(withAcpxSessionOptions(input));
326
+ } catch (error) {
327
+ if (!input.model || !isAcpModelCapabilityMissingError(error)) throw error;
328
+ return await delegate.ensureSession(withAcpxSessionOptions({
329
+ ...input,
330
+ model: void 0
331
+ }));
332
+ }
333
+ }
320
334
  function quoteShellArg(value) {
321
335
  if (/^[A-Za-z0-9_./:=@+-]+$/.test(value)) return value;
322
336
  return `'${value.replace(/'/g, "'\\''")}'`;
@@ -562,7 +576,7 @@ var AcpxRuntime = class {
562
576
  run: () => this.withCodexWrapperDiagnostics({
563
577
  command: stableLaunchCommand,
564
578
  fallbackCode: "ACP_SESSION_INIT_FAILED",
565
- run: () => delegate.ensureSession(withAcpxSessionOptions(ensureInput))
579
+ run: () => ensureDelegateSessionWithModelFallback(delegate, ensureInput)
566
580
  })
567
581
  });
568
582
  const normalizedInput = {
@@ -1,4 +1,4 @@
1
- import { n as createLazyAcpRuntimeProxy } from "./register.runtime-BZF2iGgh.js";
1
+ import { n as createLazyAcpRuntimeProxy } from "./register.runtime-CmYbf9SF.js";
2
2
  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";
3
3
  import { registerAcpRuntimeBackend, unregisterAcpRuntimeBackend } from "./runtime-api.js";
4
4
  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-Dv_iMcOo.js";
@@ -620,7 +620,13 @@ const parentWatcher =
620
620
  process.platform === "win32"
621
621
  ? undefined
622
622
  : setInterval(() => {
623
- if (process.ppid === originalParentPid || process.ppid !== 1) {
623
+ // Orphan detection: parent PID changed means our original parent died.
624
+ // The new parent could be PID 1 (init) on bare-metal hosts, OR a
625
+ // systemd user-session manager, OR a container init, OR a session
626
+ // leader — depending on environment. Previously this only triggered
627
+ // on PPID == 1, which missed all systemd-managed deployments and
628
+ // leaked codex-acp adapter trees on every gateway restart.
629
+ if (process.ppid === originalParentPid) {
624
630
  return;
625
631
  }
626
632
  if (orphanCleanupStarted) {
@@ -847,7 +853,7 @@ const SKIP_RUNTIME_PROBE_ENV = "OPENCLAW_SKIP_ACPX_RUNTIME_PROBE";
847
853
  const ACPX_BACKEND_ID = "acpx";
848
854
  let runtimeModulePromise = null;
849
855
  function loadRuntimeModule() {
850
- runtimeModulePromise ??= import("./runtime-CGigC1i5.js");
856
+ runtimeModulePromise ??= import("./runtime-B1cHS4Li.js");
851
857
  return runtimeModulePromise;
852
858
  }
853
859
  /** Convert ACPX timeout seconds into timer-safe milliseconds. */
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@openclaw/acpx",
3
- "version": "2026.6.10",
3
+ "version": "2026.6.11",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/acpx",
9
- "version": "2026.6.10",
9
+ "version": "2026.6.11",
10
10
  "dependencies": {
11
11
  "@agentclientprotocol/claude-agent-acp": "0.39.0",
12
12
  "@zed-industries/codex-acp": "0.15.0",
13
- "acpx": "0.10.0",
13
+ "acpx": "0.11.2",
14
14
  "zod": "4.4.3"
15
15
  }
16
16
  },
@@ -196,9 +196,9 @@
196
196
  }
197
197
  },
198
198
  "node_modules/@clack/core": {
199
- "version": "1.4.1",
200
- "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.4.1.tgz",
201
- "integrity": "sha512-FILJa1gGKEFTGZAJE9RpVhrjKz3c3h4ar60dSv6cGuDqufQ84YEIS3GAGvZiN+H6yaLbbvTFNejjCC4tXpZEuw==",
199
+ "version": "1.3.1",
200
+ "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.3.1.tgz",
201
+ "integrity": "sha512-fT1qHVGAag4IEkrupZ6lRRbNCs1vS9P01KB/sG8zKgvUztbYtFBtQpjSITNwooDZ83tpsPzP0mRNs1/KVszCRA==",
202
202
  "license": "MIT",
203
203
  "dependencies": {
204
204
  "fast-wrap-ansi": "^0.2.0",
@@ -209,12 +209,12 @@
209
209
  }
210
210
  },
211
211
  "node_modules/@clack/prompts": {
212
- "version": "1.5.1",
213
- "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.5.1.tgz",
214
- "integrity": "sha512-zccHj2z2oCCO4yrDiRSlFOxWerGqRiysP7a5jPK6uoI9URKAquwY42Dd/iUP8JWHxEzdRe4TlbvZCo8z1/mhrw==",
212
+ "version": "1.4.0",
213
+ "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.4.0.tgz",
214
+ "integrity": "sha512-S0My7XPGIgpRWMDG8uRqalbgT+a6FmCUdOW+HaIOVVpUPHOb7RrpvjTjiODadKp06fsrVDJZlIzc6yCTp4AnxA==",
215
215
  "license": "MIT",
216
216
  "dependencies": {
217
- "@clack/core": "1.4.1",
217
+ "@clack/core": "1.3.1",
218
218
  "fast-string-width": "^3.0.2",
219
219
  "fast-wrap-ansi": "^0.2.0",
220
220
  "sisteransi": "^1.0.5"
@@ -831,15 +831,15 @@
831
831
  }
832
832
  },
833
833
  "node_modules/acpx": {
834
- "version": "0.10.0",
835
- "resolved": "https://registry.npmjs.org/acpx/-/acpx-0.10.0.tgz",
836
- "integrity": "sha512-hd48XV03gG3sd409T1lDrOKJTTz1ap4g0wrndXjxQ590tN85pBYlvfNLyerybvGRrtUGsZjNdt99r1jpIt6ukA==",
834
+ "version": "0.11.2",
835
+ "resolved": "https://registry.npmjs.org/acpx/-/acpx-0.11.2.tgz",
836
+ "integrity": "sha512-ksTmfJDVqUAJJXsNDamEno03AMZ/aAZzXk/h5nt61VsLc/jcpoDMfCVpErzuYNJjwCd0V6Zm5o6F8OoqxsjQWA==",
837
837
  "license": "MIT",
838
838
  "dependencies": {
839
- "@agentclientprotocol/sdk": "^0.22.1",
840
- "commander": "^14.0.3",
841
- "skillflag": "^0.1.4",
842
- "tsx": "^4.22.0",
839
+ "@agentclientprotocol/sdk": "^0.28.1",
840
+ "commander": "^15.0.0",
841
+ "skillflag": "^0.2.0",
842
+ "tsx": "^4.22.4",
843
843
  "zod": "^4.4.3"
844
844
  },
845
845
  "bin": {
@@ -849,6 +849,15 @@
849
849
  "node": ">=22.13.0"
850
850
  }
851
851
  },
852
+ "node_modules/acpx/node_modules/@agentclientprotocol/sdk": {
853
+ "version": "0.28.1",
854
+ "resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-0.28.1.tgz",
855
+ "integrity": "sha512-Z2Frs6YtPhnZZ+XwFXyQkRDXY0fn8FjCalEs0W4yUhQnY4TztmNq0/RnfzWdFN3vqT3h0jTz5klzYbZHGxCDyQ==",
856
+ "license": "Apache-2.0",
857
+ "peerDependencies": {
858
+ "zod": "^3.25.0 || ^4.0.0"
859
+ }
860
+ },
852
861
  "node_modules/ajv": {
853
862
  "version": "8.20.0",
854
863
  "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
@@ -1050,12 +1059,12 @@
1050
1059
  }
1051
1060
  },
1052
1061
  "node_modules/commander": {
1053
- "version": "14.0.3",
1054
- "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz",
1055
- "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==",
1062
+ "version": "15.0.0",
1063
+ "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz",
1064
+ "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==",
1056
1065
  "license": "MIT",
1057
1066
  "engines": {
1058
- "node": ">=20"
1067
+ "node": ">=22.12.0"
1059
1068
  }
1060
1069
  },
1061
1070
  "node_modules/content-disposition": {
@@ -2052,9 +2061,9 @@
2052
2061
  "license": "MIT"
2053
2062
  },
2054
2063
  "node_modules/skillflag": {
2055
- "version": "0.1.4",
2056
- "resolved": "https://registry.npmjs.org/skillflag/-/skillflag-0.1.4.tgz",
2057
- "integrity": "sha512-egFg+XCF5sloOWdtzxZivTX7n4UDj5pxQoY33wbT8h+YSDjMQJ76MZUg2rXQIBXmIDtlZhLgirS1g/3R5/qaHA==",
2064
+ "version": "0.2.0",
2065
+ "resolved": "https://registry.npmjs.org/skillflag/-/skillflag-0.2.0.tgz",
2066
+ "integrity": "sha512-7ZmEpBeEoPLc+hqZ/StAnCO/hulgEPANzPyZgOM/CZ5zc3b0ApSp3URavY5POM/OKyi5d9+UC/Q21OoiYC2kJw==",
2058
2067
  "license": "MIT",
2059
2068
  "dependencies": {
2060
2069
  "@clack/prompts": "^1.0.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/acpx",
3
- "version": "2026.6.10",
3
+ "version": "2026.6.11",
4
4
  "description": "OpenClaw ACP runtime backend with plugin-owned session and transport management.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,7 +10,7 @@
10
10
  "dependencies": {
11
11
  "@agentclientprotocol/claude-agent-acp": "0.39.0",
12
12
  "@zed-industries/codex-acp": "0.15.0",
13
- "acpx": "0.10.0",
13
+ "acpx": "0.11.2",
14
14
  "zod": "4.4.3"
15
15
  },
16
16
  "devDependencies": {
@@ -26,10 +26,10 @@
26
26
  "minHostVersion": ">=2026.4.25"
27
27
  },
28
28
  "compat": {
29
- "pluginApi": ">=2026.6.10"
29
+ "pluginApi": ">=2026.6.11"
30
30
  },
31
31
  "build": {
32
- "openclawVersion": "2026.6.10",
32
+ "openclawVersion": "2026.6.11",
33
33
  "staticAssets": [
34
34
  {
35
35
  "source": "./src/runtime-internals/mcp-proxy.mjs",
@@ -58,7 +58,7 @@
58
58
  "skills/**"
59
59
  ],
60
60
  "peerDependencies": {
61
- "openclaw": ">=2026.6.10"
61
+ "openclaw": ">=2026.6.11"
62
62
  },
63
63
  "peerDependenciesMeta": {
64
64
  "openclaw": {