@openclaw/acpx 2026.6.10-beta.2 → 2026.6.11-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,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-beta.2",
3
+ "version": "2026.6.11-beta.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/acpx",
9
- "version": "2026.6.10-beta.2",
9
+ "version": "2026.6.11-beta.2",
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"
@@ -701,6 +701,7 @@
701
701
  "version": "0.15.0",
702
702
  "resolved": "https://registry.npmjs.org/@zed-industries/codex-acp/-/codex-acp-0.15.0.tgz",
703
703
  "integrity": "sha512-eAv7sGBeiYrYkOulF729nrM51szS7WIhBtugRj5wWq6csRKZUhAZfoUZlF8xUWdHPtOIzd/eT6MNG6gMHu6z0w==",
704
+ "deprecated": "This package has been replaced by @agentclientprotocol/codex-acp. Please migrate to continue receiving updates.",
704
705
  "license": "Apache-2.0",
705
706
  "bin": {
706
707
  "codex-acp": "bin/codex-acp.js"
@@ -721,6 +722,7 @@
721
722
  "cpu": [
722
723
  "arm64"
723
724
  ],
725
+ "deprecated": "This package has been replaced by @agentclientprotocol/codex-acp. Please migrate to continue receiving updates.",
724
726
  "license": "Apache-2.0",
725
727
  "optional": true,
726
728
  "os": [
@@ -737,6 +739,7 @@
737
739
  "cpu": [
738
740
  "x64"
739
741
  ],
742
+ "deprecated": "This package has been replaced by @agentclientprotocol/codex-acp. Please migrate to continue receiving updates.",
740
743
  "license": "Apache-2.0",
741
744
  "optional": true,
742
745
  "os": [
@@ -753,6 +756,7 @@
753
756
  "cpu": [
754
757
  "arm64"
755
758
  ],
759
+ "deprecated": "This package has been replaced by @agentclientprotocol/codex-acp. Please migrate to continue receiving updates.",
756
760
  "license": "Apache-2.0",
757
761
  "optional": true,
758
762
  "os": [
@@ -769,6 +773,7 @@
769
773
  "cpu": [
770
774
  "x64"
771
775
  ],
776
+ "deprecated": "This package has been replaced by @agentclientprotocol/codex-acp. Please migrate to continue receiving updates.",
772
777
  "license": "Apache-2.0",
773
778
  "optional": true,
774
779
  "os": [
@@ -785,6 +790,7 @@
785
790
  "cpu": [
786
791
  "arm64"
787
792
  ],
793
+ "deprecated": "This package has been replaced by @agentclientprotocol/codex-acp. Please migrate to continue receiving updates.",
788
794
  "license": "Apache-2.0",
789
795
  "optional": true,
790
796
  "os": [
@@ -801,6 +807,7 @@
801
807
  "cpu": [
802
808
  "x64"
803
809
  ],
810
+ "deprecated": "This package has been replaced by @agentclientprotocol/codex-acp. Please migrate to continue receiving updates.",
804
811
  "license": "Apache-2.0",
805
812
  "optional": true,
806
813
  "os": [
@@ -824,15 +831,15 @@
824
831
  }
825
832
  },
826
833
  "node_modules/acpx": {
827
- "version": "0.10.0",
828
- "resolved": "https://registry.npmjs.org/acpx/-/acpx-0.10.0.tgz",
829
- "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==",
830
837
  "license": "MIT",
831
838
  "dependencies": {
832
- "@agentclientprotocol/sdk": "^0.22.1",
833
- "commander": "^14.0.3",
834
- "skillflag": "^0.1.4",
835
- "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",
836
843
  "zod": "^4.4.3"
837
844
  },
838
845
  "bin": {
@@ -842,6 +849,15 @@
842
849
  "node": ">=22.13.0"
843
850
  }
844
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
+ },
845
861
  "node_modules/ajv": {
846
862
  "version": "8.20.0",
847
863
  "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
@@ -1043,12 +1059,12 @@
1043
1059
  }
1044
1060
  },
1045
1061
  "node_modules/commander": {
1046
- "version": "14.0.3",
1047
- "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz",
1048
- "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==",
1049
1065
  "license": "MIT",
1050
1066
  "engines": {
1051
- "node": ">=20"
1067
+ "node": ">=22.12.0"
1052
1068
  }
1053
1069
  },
1054
1070
  "node_modules/content-disposition": {
@@ -2045,9 +2061,9 @@
2045
2061
  "license": "MIT"
2046
2062
  },
2047
2063
  "node_modules/skillflag": {
2048
- "version": "0.1.4",
2049
- "resolved": "https://registry.npmjs.org/skillflag/-/skillflag-0.1.4.tgz",
2050
- "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==",
2051
2067
  "license": "MIT",
2052
2068
  "dependencies": {
2053
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-beta.2",
3
+ "version": "2026.6.11-beta.2",
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-beta.2"
29
+ "pluginApi": ">=2026.6.11-beta.2"
30
30
  },
31
31
  "build": {
32
- "openclawVersion": "2026.6.10-beta.2",
32
+ "openclawVersion": "2026.6.11-beta.2",
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-beta.2"
61
+ "openclaw": ">=2026.6.11-beta.2"
62
62
  },
63
63
  "peerDependenciesMeta": {
64
64
  "openclaw": {