@openclaw/acpx 2026.7.2-beta.5 → 2026.8.1-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/{config-schema-lrk5nlcV.js → config-schema-DN_uAi4R.js} +0 -2
- package/dist/doctor-contract-api.js +36 -4
- package/dist/index.js +21 -1248
- package/dist/pi-session-catalog-runtime-BiTQtT7s.js +1220 -0
- package/dist/pi-session-paths-DgYt8LUg.js +81 -0
- package/dist/{process-lease-CU1cFI4I.js → process-lease-Cwvj7WGe.js} +66 -2
- package/dist/{process-reaper-BIOtp_Ek.js → process-reaper-DzVuCxl3.js} +68 -62
- package/dist/{register.runtime-Dajn8myc.js → register.runtime-C29AY8LI.js} +75 -30
- package/dist/register.runtime.js +1 -1
- package/dist/{runtime-CN4JQkdV.js → runtime-BmzHUTK8.js} +329 -107
- package/dist/{service-DOsKw_R1.js → service-LTeZyc7q.js} +38 -45
- package/openclaw.plugin.json +5 -17
- package/package.json +7 -7
|
@@ -25,9 +25,7 @@ const AcpxPluginConfigSchema = z.strictObject({
|
|
|
25
25
|
nonInteractivePermissions: z.enum(ACPX_NON_INTERACTIVE_POLICIES, { error: `nonInteractivePermissions must be one of: ${ACPX_NON_INTERACTIVE_POLICIES.join(", ")}` }).optional(),
|
|
26
26
|
pluginToolsMcpBridge: z.boolean({ error: "pluginToolsMcpBridge must be a boolean" }).optional(),
|
|
27
27
|
openClawToolsMcpBridge: z.boolean({ error: "openClawToolsMcpBridge must be a boolean" }).optional(),
|
|
28
|
-
strictWindowsCmdWrapper: z.boolean({ error: "strictWindowsCmdWrapper must be a boolean" }).optional(),
|
|
29
28
|
timeoutSeconds: z.number({ error: "timeoutSeconds must be a number >= 0.001" }).min(.001, { error: "timeoutSeconds must be a number >= 0.001" }).default(120),
|
|
30
|
-
queueOwnerTtlSeconds: z.number({ error: "queueOwnerTtlSeconds must be a number >= 0" }).min(0, { error: "queueOwnerTtlSeconds must be a number >= 0" }).optional(),
|
|
31
29
|
piSessionCatalog: z.strictObject({ enabled: z.boolean({ error: "piSessionCatalog.enabled must be a boolean" }).default(true) }).optional(),
|
|
32
30
|
mcpServers: z.record(z.string(), McpServerConfigSchema).optional(),
|
|
33
31
|
agents: z.record(z.string(), z.strictObject({
|
|
@@ -1,8 +1,40 @@
|
|
|
1
|
-
import { c as
|
|
2
|
-
import fs from "node:fs/promises";
|
|
1
|
+
import { c as normalizeAcpxProcessLeaseFile, f as ACPX_GATEWAY_INSTANCE_KEY, g as normalizeAcpxGatewayInstanceRecord, h as ACPX_LEGACY_PROCESS_LEASE_FILE, l as openAcpxProcessLeaseStateStore, m as ACPX_LEGACY_GATEWAY_INSTANCE_FILE, p as ACPX_GATEWAY_INSTANCE_NAMESPACE, s as normalizeAcpxProcessLease } from "./process-lease-Cwvj7WGe.js";
|
|
3
2
|
import path from "node:path";
|
|
4
|
-
import
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
|
+
import { archiveLegacyStateSource, asObjectRecord } from "openclaw/plugin-sdk/runtime-doctor-migrations";
|
|
5
5
|
//#region extensions/acpx/doctor-contract-api.ts
|
|
6
|
+
const ACPX_CONFIG_PATH = [
|
|
7
|
+
"plugins",
|
|
8
|
+
"entries",
|
|
9
|
+
"acpx",
|
|
10
|
+
"config"
|
|
11
|
+
];
|
|
12
|
+
const RETIRED_ACPX_CONFIG_KEYS = ["strictWindowsCmdWrapper", "queueOwnerTtlSeconds"];
|
|
13
|
+
/** Retired ACPX config that `openclaw doctor --fix` removes before strict validation. */
|
|
14
|
+
const legacyConfigRules = RETIRED_ACPX_CONFIG_KEYS.map((key) => ({
|
|
15
|
+
path: [...ACPX_CONFIG_PATH, key],
|
|
16
|
+
message: `${[...ACPX_CONFIG_PATH, key].join(".")} is retired and ignored by the embedded ACPX runtime. Run "openclaw doctor --fix".`
|
|
17
|
+
}));
|
|
18
|
+
/** Removes retired plugin-owned config without keeping runtime compatibility keys. */
|
|
19
|
+
function normalizeCompatibilityConfig({ cfg }) {
|
|
20
|
+
const pluginConfig = asObjectRecord(asObjectRecord(cfg.plugins?.entries?.acpx)?.config);
|
|
21
|
+
const retiredKeys = RETIRED_ACPX_CONFIG_KEYS.filter((key) => Object.hasOwn(pluginConfig ?? {}, key));
|
|
22
|
+
if (!pluginConfig || retiredKeys.length === 0) return {
|
|
23
|
+
config: cfg,
|
|
24
|
+
changes: []
|
|
25
|
+
};
|
|
26
|
+
const nextConfig = structuredClone(cfg);
|
|
27
|
+
const nextPluginConfig = asObjectRecord(asObjectRecord(nextConfig.plugins?.entries?.acpx)?.config);
|
|
28
|
+
if (!nextPluginConfig) return {
|
|
29
|
+
config: cfg,
|
|
30
|
+
changes: []
|
|
31
|
+
};
|
|
32
|
+
for (const key of retiredKeys) delete nextPluginConfig[key];
|
|
33
|
+
return {
|
|
34
|
+
config: nextConfig,
|
|
35
|
+
changes: [`Removed retired ACPX plugin config: ${retiredKeys.map((key) => [...ACPX_CONFIG_PATH, key].join(".")).join(", ")}.`]
|
|
36
|
+
};
|
|
37
|
+
}
|
|
6
38
|
function resolveLegacyGatewayInstancePath(stateDir) {
|
|
7
39
|
return path.join(stateDir, ACPX_LEGACY_GATEWAY_INSTANCE_FILE);
|
|
8
40
|
}
|
|
@@ -99,4 +131,4 @@ const stateMigrations = [{
|
|
|
99
131
|
}
|
|
100
132
|
}];
|
|
101
133
|
//#endregion
|
|
102
|
-
export { stateMigrations };
|
|
134
|
+
export { legacyConfigRules, normalizeCompatibilityConfig, stateMigrations };
|