@marxbiotech/openclaw 2026.4.26-beta.1 → 2026.4.26-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/.buildstamp +1 -1
- package/dist/build-info.json +3 -3
- package/dist/cli/run-main.js +4 -4
- package/dist/cli-startup-metadata.json +2 -2
- package/dist/{command-registry-atFbEzqL.js → command-registry-BjB3JJOT.js} +2 -2
- package/dist/{command-registry-core-BA1eNzD8.js → command-registry-core-CbsTEcDZ.js} +3 -3
- package/dist/{command-registry-CbS470t6.js → command-registry-uqzVhY4d.js} +2 -2
- package/dist/{completion-cli-QP3ktXg3.js → completion-cli-DdscKhJ2.js} +2 -2
- package/dist/{config-cli-C0D2OS7f.js → config-cli-CyHcmGBo.js} +1 -1
- package/dist/crestodian/crestodian.js +1 -1
- package/dist/crestodian/rescue-message.js +1 -1
- package/dist/{crestodian-CadM7MpG.js → crestodian-DguTd1Um.js} +3 -3
- package/dist/{dialogue-z087DjNT.js → dialogue-BoCe4MGd.js} +1 -1
- package/dist/{gateway-cli-ByVEiNel.js → gateway-cli-D5bTIFXi.js} +1 -1
- package/dist/{node-cli-CDQg6kiF.js → node-cli-BTZZoSGQ.js} +54 -1
- package/dist/{operations-yq1SCZM3.js → operations-c1a5PRG1.js} +2 -2
- package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
- package/dist/postinstall-inventory.json +23 -23
- package/dist/{program-D8aa0tVo.js → program-CpN9oagb.js} +1 -1
- package/dist/{register.crestodian-BfKok0Yf.js → register.crestodian-D7DA8qsL.js} +1 -1
- package/dist/{register.subclis-C8DZ1O1X.js → register.subclis-BwEnO8L0.js} +2 -2
- package/dist/register.subclis-CWhhUBbx.js +3 -0
- package/dist/{register.subclis-core--ByeFuRG.js → register.subclis-core-Bim47wmF.js} +2 -2
- package/dist/{route-DGponWBG.js → route-DhFwlFW2.js} +1 -1
- package/dist/{runtime-schema-Bb6sS9hM.js → runtime-schema-DSlBwPEK.js} +1 -1
- package/dist/{server-CUvDbK55.js → server-C_O-RFTQ.js} +1 -1
- package/dist/{server-methods-IWodMdy9.js → server-methods-C5o-c72_.js} +1 -1
- package/dist/{server-plugin-bootstrap-BbBr88vJ.js → server-plugin-bootstrap-CsneMI8o.js} +1 -1
- package/dist/{server-plugin-bootstrap-Cr52LITH.js → server-plugin-bootstrap-Dg5fGabb.js} +1 -1
- package/dist/{server.impl-DMCxLp-C.js → server.impl-D1MMbSyX.js} +3 -3
- package/dist/{tui-backend-CdUGg-rG.js → tui-backend-Bzef31xK.js} +2 -2
- package/docs/plugins/building-plugins.md +1 -1
- package/docs/plugins/sdk-migration.md +34 -0
- package/package.json +1 -1
- package/dist/register.subclis-u-USmYtD.js +0 -3
package/dist/.buildstamp
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"builtAt":
|
|
1
|
+
{"builtAt":1777791276224,"head":"2752d07258cbe54eaec13ac3e7223b7822ac0f0e"}
|
package/dist/build-info.json
CHANGED
package/dist/cli/run-main.js
CHANGED
|
@@ -180,7 +180,7 @@ async function runCli(argv = process$1.argv) {
|
|
|
180
180
|
});
|
|
181
181
|
await ensureCliEnvProxyDispatcher();
|
|
182
182
|
maybeWarnAboutDebugProxyCoverage();
|
|
183
|
-
const { tryRouteCli } = await import("../route-
|
|
183
|
+
const { tryRouteCli } = await import("../route-DhFwlFW2.js");
|
|
184
184
|
if (await tryRouteCli(normalizedArgv)) return;
|
|
185
185
|
const { createCliProgress } = await import("../progress-DvLtPNBN.js");
|
|
186
186
|
const startupProgress = createCliProgress({
|
|
@@ -199,7 +199,7 @@ async function runCli(argv = process$1.argv) {
|
|
|
199
199
|
const { enableConsoleCapture } = await import("../logging-C25axvWf.js");
|
|
200
200
|
enableConsoleCapture();
|
|
201
201
|
const [{ buildProgram }, { formatUncaughtError }, { runFatalErrorHooks }, { installUnhandledRejectionHandler, isUncaughtExceptionHandled }, { restoreTerminalState }] = await Promise.all([
|
|
202
|
-
import("../program-
|
|
202
|
+
import("../program-CpN9oagb.js"),
|
|
203
203
|
import("../infra/errors.js"),
|
|
204
204
|
import("../fatal-error-hooks-DxqbkWSf.js"),
|
|
205
205
|
import("../unhandled-rejections-B3UaKfQC.js"),
|
|
@@ -223,10 +223,10 @@ async function runCli(argv = process$1.argv) {
|
|
|
223
223
|
const { getProgramContext } = await import("../program-context-CyWIZgDg.js");
|
|
224
224
|
const ctx = getProgramContext(program);
|
|
225
225
|
if (ctx) {
|
|
226
|
-
const { registerCoreCliByName } = await import("../command-registry-
|
|
226
|
+
const { registerCoreCliByName } = await import("../command-registry-BjB3JJOT.js");
|
|
227
227
|
await registerCoreCliByName(program, ctx, primary, parseArgv);
|
|
228
228
|
}
|
|
229
|
-
const { registerSubCliByName } = await import("../register.subclis-
|
|
229
|
+
const { registerSubCliByName } = await import("../register.subclis-CWhhUBbx.js");
|
|
230
230
|
await registerSubCliByName(program, primary);
|
|
231
231
|
}
|
|
232
232
|
if (!shouldSkipPluginCommandRegistration({
|
|
@@ -28,6 +28,6 @@
|
|
|
28
28
|
"channelCatalogSignature": "b92f4099294199b00113965c16db7d3d7fd10312",
|
|
29
29
|
"rootHelpBundleSignature": "0f1caad720a73c50034511d8e645a8181a86a234",
|
|
30
30
|
"browserHelpSourceSignature": "56c4202114c558f595db265da52e81a54c140752",
|
|
31
|
-
"browserHelpText": "\n🦞 OpenClaw 2026.4.26-beta.
|
|
32
|
-
"rootHelpText": "\n🦞 OpenClaw 2026.4.26-beta.
|
|
31
|
+
"browserHelpText": "\n🦞 OpenClaw 2026.4.26-beta.2 (2752d07) — Shell yeah—I'm here to pinch the toil and leave you the glory.\n\nUsage: openclaw browser [options] [command]\n\nManage OpenClaw's dedicated browser (Chrome/Chromium)\n\nOptions:\n --browser-profile <name> Browser profile name (default from config)\n --expect-final Wait for final response (agent) (default: false)\n -h, --help Display help for command\n --json Output machine-readable JSON (default: false)\n --timeout <ms> Timeout in ms (default: \"30000\")\n --token <token> Gateway token (if required)\n --url <url> Gateway WebSocket URL (defaults to\n gateway.remote.url when configured)\n\nCommands:\n click Click an element by ref from snapshot\n click-coords Click viewport coordinates\n close Close a tab (target id optional)\n console Get recent console messages\n cookies Read/write cookies\n create-profile Create a new browser profile\n delete-profile Delete a browser profile\n dialog Arm the next modal dialog (alert/confirm/prompt)\n doctor Check browser plugin readiness\n download Click a ref and save the resulting download\n drag Drag from one ref to another\n errors Get recent page errors\n evaluate Evaluate a function against the page or a ref\n fill Fill a form with JSON field descriptors\n focus Focus a tab by target id, tab id, label, or unique\n target id prefix\n highlight Highlight an element by ref\n hover Hover an element by ai ref\n navigate Navigate the current tab to a URL\n open Open a URL in a new tab\n pdf Save page as PDF\n press Press a key\n profiles List all browser profiles\n requests Get recent network requests (best-effort)\n reset-profile Reset browser profile (moves it to Trash)\n resize Resize the viewport\n responsebody Wait for a network response and return its body\n screenshot Capture a screenshot (MEDIA:<path>)\n scrollintoview Scroll an element into view by ref from snapshot\n select Select option(s) in a select element\n set Browser environment settings\n snapshot Capture a snapshot (default: ai; aria is the\n accessibility tree)\n start Start the browser (no-op if already running)\n status Show browser status\n stop Stop the browser (best-effort)\n storage Read/write localStorage/sessionStorage\n tab Tab shortcuts (index-based)\n tabs List open tabs\n trace Record a Playwright trace\n type Type into an element by ref from snapshot\n upload Arm file upload for the next file chooser\n wait Wait for time, selector, URL, load state, or JS\n conditions\n waitfordownload Wait for the next download (and save it)\n\nExamples:\n openclaw browser status\n openclaw browser start\n openclaw browser start --headless\n openclaw browser stop\n openclaw browser tabs\n openclaw browser open https://example.com\n openclaw browser focus abcd1234\n openclaw browser close abcd1234\n openclaw browser screenshot\n openclaw browser screenshot --full-page\n openclaw browser screenshot --ref 12\n openclaw browser snapshot\n openclaw browser snapshot --format aria --limit 200\n openclaw browser snapshot --efficient\n openclaw browser snapshot --labels\n openclaw browser navigate https://example.com\n openclaw browser resize 1280 720\n openclaw browser click 12 --double\n openclaw browser click-coords 120 340\n openclaw browser type 23 \"hello\" --submit\n openclaw browser press Enter\n openclaw browser hover 44\n openclaw browser drag 10 11\n openclaw browser select 9 OptionA OptionB\n openclaw browser upload /tmp/openclaw/uploads/file.pdf\n openclaw browser fill --fields '[{\"ref\":\"1\",\"value\":\"Ada\"}]'\n openclaw browser dialog --accept\n openclaw browser wait --text \"Done\"\n openclaw browser evaluate --fn '(el) => el.textContent' --ref 7\n openclaw browser console --level error\n openclaw browser pdf\n\nDocs: https://docs.openclaw.ai/cli/browser\n\n",
|
|
32
|
+
"rootHelpText": "\n🦞 OpenClaw 2026.4.26-beta.2 (2752d07) — I've seen your commit messages. We'll work on that together.\n\nUsage: openclaw [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env OPENCLAW_CONTAINER)\n --dev Dev profile: isolate state under ~/.openclaw-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under\n ~/.openclaw-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for OpenClaw\n state\n capability * Run provider-backed inference commands (fallback alias:\n infer)\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n chat Open a local terminal UI (alias for tui --local)\n clawbot * Legacy clawbot command aliases\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n crestodian Open the ring-zero setup and repair helper\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live OpenClaw docs\n doctor Health checks + quick fixes for the gateway and channels\n exec-policy * Show or synchronize requested exec policy with host\n approvals\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed inference commands\n logs Tail gateway file logs via RPC\n mcp * Manage OpenClaw MCP config and channel bridge\n memory Search, inspect, and reindex memory files\n message * Send, read, and manage messages\n migrate * Import state from another agent system\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage OpenClaw plugins\n proxy * Run the OpenClaw debug proxy and inspect captured traffic\n qr Generate mobile pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tasks * Inspect durable background task state\n terminal Open a local terminal UI (alias for tui --local)\n tui Open a terminal UI connected to the Gateway\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update OpenClaw and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n openclaw models --help\n Show detailed help for the models command.\n openclaw channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n openclaw message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n openclaw gateway --port 18789\n Run the WebSocket Gateway locally.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway --force\n Kill anything bound to the default gateway port, then start it.\n openclaw gateway ...\n Gateway control via WebSocket.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n openclaw message send --channel telegram --target @mychat --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.openclaw.ai/cli\n\n"
|
|
33
33
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import "./argv-Dv3v7-1X.js";
|
|
2
|
-
import { n as registerCoreCliByName } from "./command-registry-core-
|
|
3
|
-
import "./command-registry-
|
|
2
|
+
import { n as registerCoreCliByName } from "./command-registry-core-CbsTEcDZ.js";
|
|
3
|
+
import "./command-registry-uqzVhY4d.js";
|
|
4
4
|
export { registerCoreCliByName };
|
|
@@ -2,7 +2,7 @@ import { _ as getCoreCliCommandDescriptors, v as getCoreCliCommandNames$1 } from
|
|
|
2
2
|
import { t as resolveCliArgvInvocation } from "./argv-invocation-DFksfGwx.js";
|
|
3
3
|
import { n as shouldRegisterPrimaryCommandOnly } from "./command-registration-policy-RZ17Et0T.js";
|
|
4
4
|
import { i as registerCommandGroups, r as registerCommandGroupByName } from "./register-command-groups-DwMgA8L2.js";
|
|
5
|
-
import { a as defineImportedCommandGroupSpec, i as buildCommandGroupEntries, o as defineImportedProgramCommandGroupSpecs } from "./register.subclis-core
|
|
5
|
+
import { a as defineImportedCommandGroupSpec, i as buildCommandGroupEntries, o as defineImportedProgramCommandGroupSpecs } from "./register.subclis-core-Bim47wmF.js";
|
|
6
6
|
//#region src/cli/program/command-registry-core.ts
|
|
7
7
|
function withProgramOnlySpecs(specs) {
|
|
8
8
|
return specs.map((spec) => ({
|
|
@@ -16,7 +16,7 @@ const coreEntrySpecs = [
|
|
|
16
16
|
...withProgramOnlySpecs(defineImportedProgramCommandGroupSpecs([
|
|
17
17
|
{
|
|
18
18
|
commandNames: ["crestodian"],
|
|
19
|
-
loadModule: () => import("./register.crestodian-
|
|
19
|
+
loadModule: () => import("./register.crestodian-D7DA8qsL.js"),
|
|
20
20
|
exportName: "registerCrestodianCommand"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
@@ -36,7 +36,7 @@ const coreEntrySpecs = [
|
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
commandNames: ["config"],
|
|
39
|
-
loadModule: () => import("./config-cli-
|
|
39
|
+
loadModule: () => import("./config-cli-CyHcmGBo.js"),
|
|
40
40
|
exportName: "registerConfigCli"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as registerCoreCliCommands } from "./command-registry-core-
|
|
2
|
-
import { n as registerSubCliCommands } from "./register.subclis-
|
|
1
|
+
import { r as registerCoreCliCommands } from "./command-registry-core-CbsTEcDZ.js";
|
|
2
|
+
import { n as registerSubCliCommands } from "./register.subclis-BwEnO8L0.js";
|
|
3
3
|
//#region src/cli/program/command-registry.ts
|
|
4
4
|
function registerProgramCommands(program, ctx, argv = process.argv) {
|
|
5
5
|
registerCoreCliCommands(program, ctx, argv);
|
|
@@ -2,8 +2,8 @@ import { t as formatDocsLink } from "./links-BszRQhGa.js";
|
|
|
2
2
|
import { r as theme } from "./theme-B128avno.js";
|
|
3
3
|
import { a as routeLogsToStderr } from "./console-BKRcTTHL.js";
|
|
4
4
|
import { c as resolveShellFromEnv, i as installCompletion, o as isCompletionShell, s as resolveCompletionCachePath, t as COMPLETION_SHELLS } from "./completion-runtime-DHsTjREm.js";
|
|
5
|
-
import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-core
|
|
6
|
-
import { n as registerCoreCliByName, t as getCoreCliCommandNames } from "./command-registry-core-
|
|
5
|
+
import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-core-Bim47wmF.js";
|
|
6
|
+
import { n as registerCoreCliByName, t as getCoreCliCommandNames } from "./command-registry-core-CbsTEcDZ.js";
|
|
7
7
|
import { t as getProgramContext } from "./program-context-_Yj_WUHq.js";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import fs from "node:fs/promises";
|
|
@@ -16,7 +16,7 @@ import { n as discoverConfigSecretTargets, s as resolveConfigSecretTargetByPath
|
|
|
16
16
|
import { r as replaceConfigFile } from "./config-CBQSm0hf.js";
|
|
17
17
|
import { a as normalizeConfigIssues, n as formatConfigIssueLines } from "./issue-format-DUq-EpQO.js";
|
|
18
18
|
import { n as redactConfigObject } from "./redact-snapshot-Ddp6QQs-.js";
|
|
19
|
-
import { n as readBestEffortRuntimeConfigSchema } from "./runtime-schema-
|
|
19
|
+
import { n as readBestEffortRuntimeConfigSchema } from "./runtime-schema-DSlBwPEK.js";
|
|
20
20
|
import { n as setCommandJsonMode } from "./json-mode-DvMTNuI6.js";
|
|
21
21
|
import fs from "node:fs";
|
|
22
22
|
import JSON5 from "json5";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as runCrestodian } from "../crestodian-
|
|
1
|
+
import { t as runCrestodian } from "../crestodian-DguTd1Um.js";
|
|
2
2
|
export { runCrestodian };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ as resolveStateDir } from "../paths-B2cMK-wd.js";
|
|
2
2
|
import { c as normalizeAgentId } from "../session-key-hxP9B3Or.js";
|
|
3
|
-
import { a as parseCrestodianOperation, i as isPersistentCrestodianOperation, n as executeCrestodianOperation, r as formatCrestodianPersistentPlan } from "../operations-
|
|
3
|
+
import { a as parseCrestodianOperation, i as isPersistentCrestodianOperation, n as executeCrestodianOperation, r as formatCrestodianPersistentPlan } from "../operations-c1a5PRG1.js";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import fs from "node:fs/promises";
|
|
6
6
|
import { createHash, randomUUID } from "node:crypto";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as defaultRuntime, r as writeRuntimeJson } from "./runtime-izpjJukX.js";
|
|
2
2
|
import { n as withProgress } from "./progress-CmC4nq1O.js";
|
|
3
|
-
import { i as isPersistentCrestodianOperation, n as executeCrestodianOperation } from "./operations-
|
|
3
|
+
import { i as isPersistentCrestodianOperation, n as executeCrestodianOperation } from "./operations-c1a5PRG1.js";
|
|
4
4
|
import { r as loadCrestodianOverview, t as formatCrestodianOverview } from "./overview-DyvQ1yhh.js";
|
|
5
|
-
import { r as resolveCrestodianOperation } from "./dialogue-
|
|
5
|
+
import { r as resolveCrestodianOperation } from "./dialogue-BoCe4MGd.js";
|
|
6
6
|
import { stdin, stdout } from "node:process";
|
|
7
7
|
//#region src/crestodian/crestodian.ts
|
|
8
8
|
function crestodianCommandDepsFromOptions(opts) {
|
|
@@ -46,7 +46,7 @@ async function runCrestodian(opts = {}, runtime = defaultRuntime) {
|
|
|
46
46
|
runtime.error("Crestodian needs an interactive TTY. Use --message for one command.");
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
|
-
const runInteractiveTui = opts.runInteractiveTui ?? (await import("./tui-backend-
|
|
49
|
+
const runInteractiveTui = opts.runInteractiveTui ?? (await import("./tui-backend-Bzef31xK.js")).runCrestodianTui;
|
|
50
50
|
opts.onReady?.();
|
|
51
51
|
await runInteractiveTui(opts, runtime);
|
|
52
52
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as parseCrestodianOperation, t as describeCrestodianPersistentOperation } from "./operations-
|
|
1
|
+
import { a as parseCrestodianOperation, t as describeCrestodianPersistentOperation } from "./operations-c1a5PRG1.js";
|
|
2
2
|
import { r as loadCrestodianOverview } from "./overview-DyvQ1yhh.js";
|
|
3
3
|
//#region src/crestodian/dialogue.ts
|
|
4
4
|
function approvalQuestion(operation) {
|
|
@@ -842,7 +842,7 @@ async function runGatewayCommand$1(opts) {
|
|
|
842
842
|
const { startGatewayServer } = await startupTrace.measure("cli.server-import", () => withProgress({
|
|
843
843
|
label: "Loading gateway modules…",
|
|
844
844
|
indeterminate: true
|
|
845
|
-
}, async () => import("./server-
|
|
845
|
+
}, async () => import("./server-C_O-RFTQ.js")));
|
|
846
846
|
setConsoleTimestampPrefix(true);
|
|
847
847
|
if (devMode) await startupTrace.measure("cli.dev-config", () => ensureDevGatewayConfig({ reset: Boolean(opts.reset) }));
|
|
848
848
|
gatewayLog.info("loading configuration…");
|
|
@@ -66,6 +66,56 @@ function asRecord(value) {
|
|
|
66
66
|
function asString(value) {
|
|
67
67
|
return typeof value === "string" ? value.trim() : "";
|
|
68
68
|
}
|
|
69
|
+
function asConfigOptionsRecord(value) {
|
|
70
|
+
const rec = asRecord(value);
|
|
71
|
+
if (!rec) return {};
|
|
72
|
+
const out = {};
|
|
73
|
+
for (const [key, raw] of Object.entries(rec)) if (typeof raw === "string" && raw.length > 0) out[key] = raw;
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
function configOptionsToAcpxArgs(options) {
|
|
77
|
+
const args = [];
|
|
78
|
+
let approvalOverride = null;
|
|
79
|
+
for (const [rawKey, value] of Object.entries(options)) switch (rawKey.toLowerCase()) {
|
|
80
|
+
case "model":
|
|
81
|
+
args.push("--model", value);
|
|
82
|
+
break;
|
|
83
|
+
case "timeout":
|
|
84
|
+
args.push("--timeout", value);
|
|
85
|
+
break;
|
|
86
|
+
case "max_turns":
|
|
87
|
+
args.push("--max-turns", value);
|
|
88
|
+
break;
|
|
89
|
+
case "system_prompt":
|
|
90
|
+
args.push("--system-prompt", value);
|
|
91
|
+
break;
|
|
92
|
+
case "append_system_prompt":
|
|
93
|
+
args.push("--append-system-prompt", value);
|
|
94
|
+
break;
|
|
95
|
+
case "allowed_tools":
|
|
96
|
+
args.push("--allowed-tools", value);
|
|
97
|
+
break;
|
|
98
|
+
case "auth_policy":
|
|
99
|
+
args.push("--auth-policy", value);
|
|
100
|
+
break;
|
|
101
|
+
case "approval_policy":
|
|
102
|
+
approvalOverride = value;
|
|
103
|
+
break;
|
|
104
|
+
default: break;
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
args,
|
|
108
|
+
approvalOverride
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function approvalPolicyToArgs(policy) {
|
|
112
|
+
switch (policy) {
|
|
113
|
+
case "approve-all": return ["--approve-all"];
|
|
114
|
+
case "deny-all": return ["--deny-all"];
|
|
115
|
+
case "approve-reads": return ["--approve-reads"];
|
|
116
|
+
default: return [];
|
|
117
|
+
}
|
|
118
|
+
}
|
|
69
119
|
async function sendNodeEvent$1(client, event, payload) {
|
|
70
120
|
try {
|
|
71
121
|
await client.request("node.event", {
|
|
@@ -141,6 +191,7 @@ async function handleTurn(payload, client) {
|
|
|
141
191
|
const permissionMode = asString(payload.permissionMode) || "approve-all";
|
|
142
192
|
const agentCommand = asString(payload.agentCommand) || "acpx";
|
|
143
193
|
const mode = asString(payload.mode) || "prompt";
|
|
194
|
+
const configOptions = asConfigOptionsRecord(payload.configOptions);
|
|
144
195
|
if (!text) {
|
|
145
196
|
await sendNodeEvent$1(client, "acp.error", {
|
|
146
197
|
acpSessionId,
|
|
@@ -154,15 +205,17 @@ async function handleTurn(payload, client) {
|
|
|
154
205
|
existing.readline.close();
|
|
155
206
|
activeTurns.delete(acpSessionId);
|
|
156
207
|
}
|
|
208
|
+
const { args: configArgs, approvalOverride } = configOptionsToAcpxArgs(configOptions);
|
|
157
209
|
const args = [
|
|
158
210
|
"--format",
|
|
159
211
|
"json",
|
|
160
212
|
"--json-strict",
|
|
161
213
|
"--cwd",
|
|
162
214
|
cwd,
|
|
163
|
-
...
|
|
215
|
+
...approvalPolicyToArgs(approvalOverride ?? permissionMode),
|
|
164
216
|
"--non-interactive-permissions",
|
|
165
217
|
"deny",
|
|
218
|
+
...configArgs,
|
|
166
219
|
agent,
|
|
167
220
|
mode,
|
|
168
221
|
"--session",
|
|
@@ -387,7 +387,7 @@ async function executeCrestodianOperation(operation, runtime, opts = {}) {
|
|
|
387
387
|
const { readConfigFileSnapshot } = await import("./config/config.js");
|
|
388
388
|
const before = await readConfigFileSnapshot();
|
|
389
389
|
await (opts.deps?.runConfigSet ?? (async (setOpts) => {
|
|
390
|
-
const { runConfigSet: importedRunConfigSet } = await import("./config-cli-
|
|
390
|
+
const { runConfigSet: importedRunConfigSet } = await import("./config-cli-CyHcmGBo.js");
|
|
391
391
|
await importedRunConfigSet({
|
|
392
392
|
...setOpts,
|
|
393
393
|
runtime: createNoExitRuntime(runtime)
|
|
@@ -425,7 +425,7 @@ async function executeCrestodianOperation(operation, runtime, opts = {}) {
|
|
|
425
425
|
const { readConfigFileSnapshot } = await import("./config/config.js");
|
|
426
426
|
const before = await readConfigFileSnapshot();
|
|
427
427
|
await (opts.deps?.runConfigSet ?? (async (setOpts) => {
|
|
428
|
-
const { runConfigSet: importedRunConfigSet } = await import("./config-cli-
|
|
428
|
+
const { runConfigSet: importedRunConfigSet } = await import("./config-cli-CyHcmGBo.js");
|
|
429
429
|
await importedRunConfigSet({
|
|
430
430
|
...setOpts,
|
|
431
431
|
runtime: createNoExitRuntime(runtime)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
2026-05-
|
|
1
|
+
2026-05-03T06:54:47.664Z
|
|
@@ -506,9 +506,9 @@
|
|
|
506
506
|
"dist/command-queue-DKneO39E.js",
|
|
507
507
|
"dist/command-registration-nL5Vtgzj.js",
|
|
508
508
|
"dist/command-registration-policy-RZ17Et0T.js",
|
|
509
|
-
"dist/command-registry-
|
|
510
|
-
"dist/command-registry-
|
|
511
|
-
"dist/command-registry-
|
|
509
|
+
"dist/command-registry-BjB3JJOT.js",
|
|
510
|
+
"dist/command-registry-core-CbsTEcDZ.js",
|
|
511
|
+
"dist/command-registry-uqzVhY4d.js",
|
|
512
512
|
"dist/command-secret-gateway-D2Mh8_oo.js",
|
|
513
513
|
"dist/command-secret-targets-BlgtGIaa.js",
|
|
514
514
|
"dist/command-secret-targets-COvqyPrL.js",
|
|
@@ -557,7 +557,7 @@
|
|
|
557
557
|
"dist/compaction-BeIRyjrG.js",
|
|
558
558
|
"dist/compaction-runtime-context-DKVjVf22.js",
|
|
559
559
|
"dist/compaction-successor-transcript-heAM-EJw.js",
|
|
560
|
-
"dist/completion-cli-
|
|
560
|
+
"dist/completion-cli-DdscKhJ2.js",
|
|
561
561
|
"dist/completion-runtime-DHsTjREm.js",
|
|
562
562
|
"dist/config-api-B8D26eSy.js",
|
|
563
563
|
"dist/config-api-BM9FTrtG.js",
|
|
@@ -571,7 +571,7 @@
|
|
|
571
571
|
"dist/config-C2YuLmdM.js",
|
|
572
572
|
"dist/config-CBQSm0hf.js",
|
|
573
573
|
"dist/config-CBXHzpYX.js",
|
|
574
|
-
"dist/config-cli-
|
|
574
|
+
"dist/config-cli-CyHcmGBo.js",
|
|
575
575
|
"dist/config-compat-BhI_7B_M.js",
|
|
576
576
|
"dist/config-compat-D4d1YiPt.js",
|
|
577
577
|
"dist/config-compat-E0mfv6Fy.js",
|
|
@@ -689,7 +689,7 @@
|
|
|
689
689
|
"dist/credential-planner-DT5dEiCa.js",
|
|
690
690
|
"dist/credentials-CbE6PbFU.js",
|
|
691
691
|
"dist/credentials-secret-inputs-CxY27nwo.js",
|
|
692
|
-
"dist/crestodian-
|
|
692
|
+
"dist/crestodian-DguTd1Um.js",
|
|
693
693
|
"dist/crestodian/crestodian.js",
|
|
694
694
|
"dist/crestodian/rescue-message.js",
|
|
695
695
|
"dist/cron-cli-DHf46eps.js",
|
|
@@ -769,7 +769,7 @@
|
|
|
769
769
|
"dist/diagnostics-BuHbfbMb.js",
|
|
770
770
|
"dist/diagnostics-D_i4GduU.js",
|
|
771
771
|
"dist/diagnostics-D0Q9NVFX.js",
|
|
772
|
-
"dist/dialogue-
|
|
772
|
+
"dist/dialogue-BoCe4MGd.js",
|
|
773
773
|
"dist/direct-dm-access-BXDiOFL6.js",
|
|
774
774
|
"dist/direct-dm-D3rFJPx2.js",
|
|
775
775
|
"dist/direct-dm-guard-policy-DIpIptUA.js",
|
|
@@ -2620,7 +2620,7 @@
|
|
|
2620
2620
|
"dist/gateway-auth-bypass-BE5VdXE3.js",
|
|
2621
2621
|
"dist/gateway-bindings-Ckjy42-e.js",
|
|
2622
2622
|
"dist/gateway-BwgZEozv.js",
|
|
2623
|
-
"dist/gateway-cli-
|
|
2623
|
+
"dist/gateway-cli-D5bTIFXi.js",
|
|
2624
2624
|
"dist/gateway-control-ui-origins-DpuxXpK4.js",
|
|
2625
2625
|
"dist/gateway-discovery-targets-CMAzwL_v.js",
|
|
2626
2626
|
"dist/gateway-DZtpahIn.js",
|
|
@@ -3115,7 +3115,7 @@
|
|
|
3115
3115
|
"dist/net-BBCaEpfz.js",
|
|
3116
3116
|
"dist/network-discovery-display-DqVTbCC2.js",
|
|
3117
3117
|
"dist/network-mode-BBME8S32.js",
|
|
3118
|
-
"dist/node-cli-
|
|
3118
|
+
"dist/node-cli-BTZZoSGQ.js",
|
|
3119
3119
|
"dist/node-command-policy-DAH3o17h.js",
|
|
3120
3120
|
"dist/node-commands-B4nHy6sJ.js",
|
|
3121
3121
|
"dist/node-pairing-authz-BTHqePMo.js",
|
|
@@ -3211,7 +3211,7 @@
|
|
|
3211
3211
|
"dist/openclaw-tools.runtime.js",
|
|
3212
3212
|
"dist/opencode-3HwL8J4M.js",
|
|
3213
3213
|
"dist/openresponses-http-Bevy3xHz.js",
|
|
3214
|
-
"dist/operations-
|
|
3214
|
+
"dist/operations-c1a5PRG1.js",
|
|
3215
3215
|
"dist/operator-approvals-client-RuXC7eOx.js",
|
|
3216
3216
|
"dist/order-CsN0u9-Z.js",
|
|
3217
3217
|
"dist/origin-routing-BobkolwG.js",
|
|
@@ -7381,7 +7381,7 @@
|
|
|
7381
7381
|
"dist/profiles-Dzv16FRt.js",
|
|
7382
7382
|
"dist/program-context-_Yj_WUHq.js",
|
|
7383
7383
|
"dist/program-context-CyWIZgDg.js",
|
|
7384
|
-
"dist/program-
|
|
7384
|
+
"dist/program-CpN9oagb.js",
|
|
7385
7385
|
"dist/progress-CmC4nq1O.js",
|
|
7386
7386
|
"dist/progress-DvLtPNBN.js",
|
|
7387
7387
|
"dist/progress-line-BLlwPNs4.js",
|
|
@@ -7586,16 +7586,16 @@
|
|
|
7586
7586
|
"dist/register.agent-DhF7BpXW.js",
|
|
7587
7587
|
"dist/register.backup-hdhEjj80.js",
|
|
7588
7588
|
"dist/register.configure-BC7vLVv8.js",
|
|
7589
|
-
"dist/register.crestodian-
|
|
7589
|
+
"dist/register.crestodian-D7DA8qsL.js",
|
|
7590
7590
|
"dist/register.maintenance-ByXMHm1a.js",
|
|
7591
7591
|
"dist/register.message-CCqWnIW_.js",
|
|
7592
7592
|
"dist/register.migrate-oxRl_0G8.js",
|
|
7593
7593
|
"dist/register.onboard-CIQTp1U9.js",
|
|
7594
7594
|
"dist/register.setup-DXVE85BO.js",
|
|
7595
7595
|
"dist/register.status-health-sessions-wuy8qzJ2.js",
|
|
7596
|
-
"dist/register.subclis-
|
|
7597
|
-
"dist/register.subclis-core
|
|
7598
|
-
"dist/register.subclis-
|
|
7596
|
+
"dist/register.subclis-BwEnO8L0.js",
|
|
7597
|
+
"dist/register.subclis-core-Bim47wmF.js",
|
|
7598
|
+
"dist/register.subclis-CWhhUBbx.js",
|
|
7599
7599
|
"dist/registry-C0FSoFN6.js",
|
|
7600
7600
|
"dist/registry-CxHJEYyr.js",
|
|
7601
7601
|
"dist/registry-D-ZIoZaU.js",
|
|
@@ -7661,7 +7661,7 @@
|
|
|
7661
7661
|
"dist/root-help-WpeQlzF_.js",
|
|
7662
7662
|
"dist/root-memory-files-C1geB1Vs.js",
|
|
7663
7663
|
"dist/route-auth-trHq3W9q.js",
|
|
7664
|
-
"dist/route-
|
|
7664
|
+
"dist/route-DhFwlFW2.js",
|
|
7665
7665
|
"dist/route-reply-CkyRXpMQ.js",
|
|
7666
7666
|
"dist/route-reply.runtime-YP1ccDS2.js",
|
|
7667
7667
|
"dist/route-reply.runtime.js",
|
|
@@ -7771,7 +7771,7 @@
|
|
|
7771
7771
|
"dist/runtime-q4nQLcug.js",
|
|
7772
7772
|
"dist/runtime-registry-loader-CDMmQvJW.js",
|
|
7773
7773
|
"dist/runtime-registry-loader-lt2jAzvT.js",
|
|
7774
|
-
"dist/runtime-schema-
|
|
7774
|
+
"dist/runtime-schema-DSlBwPEK.js",
|
|
7775
7775
|
"dist/runtime-shared-CZd7iny8.js",
|
|
7776
7776
|
"dist/runtime-shared-DPvHwujJ.js",
|
|
7777
7777
|
"dist/runtime-snapshot-DLisEE8Y.js",
|
|
@@ -7847,26 +7847,26 @@
|
|
|
7847
7847
|
"dist/send-policy-BLL-6Ghv.js",
|
|
7848
7848
|
"dist/send.runtime-uLwaNWKg.js",
|
|
7849
7849
|
"dist/send.runtime.js",
|
|
7850
|
+
"dist/server-C_O-RFTQ.js",
|
|
7850
7851
|
"dist/server-chat-BXlFwn_o.js",
|
|
7851
7852
|
"dist/server-constants-BAmlkdh0.js",
|
|
7852
7853
|
"dist/server-context-CwTQL2Fn.js",
|
|
7853
7854
|
"dist/server-context-CXYnIH_C.js",
|
|
7854
|
-
"dist/server-CUvDbK55.js",
|
|
7855
7855
|
"dist/server-gbWilXOG.js",
|
|
7856
7856
|
"dist/server-json-BlL8F72f.js",
|
|
7857
|
-
"dist/server-methods-
|
|
7857
|
+
"dist/server-methods-C5o-c72_.js",
|
|
7858
7858
|
"dist/server-middleware-BAP_39Gt.js",
|
|
7859
7859
|
"dist/server-model-catalog-B4t3Rjip.js",
|
|
7860
7860
|
"dist/server-node-events-DyVs_lPY.js",
|
|
7861
|
-
"dist/server-plugin-bootstrap-
|
|
7862
|
-
"dist/server-plugin-bootstrap-
|
|
7861
|
+
"dist/server-plugin-bootstrap-CsneMI8o.js",
|
|
7862
|
+
"dist/server-plugin-bootstrap-Dg5fGabb.js",
|
|
7863
7863
|
"dist/server-restart-sentinel-B23kbkrZ.js",
|
|
7864
7864
|
"dist/server-restart-sentinel-gMgn7e79.js",
|
|
7865
7865
|
"dist/server-session-events-4QRPwQcy.js",
|
|
7866
7866
|
"dist/server-startup-log-BfEu1u9U.js",
|
|
7867
7867
|
"dist/server-startup-memory-DY9WG9oy.js",
|
|
7868
7868
|
"dist/server-tailscale-C0bPFqky.js",
|
|
7869
|
-
"dist/server.impl-
|
|
7869
|
+
"dist/server.impl-D1MMbSyX.js",
|
|
7870
7870
|
"dist/service-audit-BAEysvOC.js",
|
|
7871
7871
|
"dist/service-audit-BY0mRRCX.js",
|
|
7872
7872
|
"dist/service-BBC9G_8v.js",
|
|
@@ -8325,7 +8325,7 @@
|
|
|
8325
8325
|
"dist/tts.runtime-BxO4PBqX.js",
|
|
8326
8326
|
"dist/tts.runtime-CCbx1T3T.js",
|
|
8327
8327
|
"dist/tts.runtime.js",
|
|
8328
|
-
"dist/tui-backend-
|
|
8328
|
+
"dist/tui-backend-Bzef31xK.js",
|
|
8329
8329
|
"dist/tui-BVZend4P.js",
|
|
8330
8330
|
"dist/tui-C5Agrcus.js",
|
|
8331
8331
|
"dist/tui-cli-BJK2j0q7.js",
|
|
@@ -9,7 +9,7 @@ import { n as setProgramContext } from "./program-context-_Yj_WUHq.js";
|
|
|
9
9
|
import { t as isCommandJsonOutputMode } from "./json-mode-DvMTNuI6.js";
|
|
10
10
|
import { t as forceFreePort } from "./ports-qxgpe-5L.js";
|
|
11
11
|
import { n as resolvePluginInstallPreactionRequest, t as resolvePluginInstallInvalidConfigPolicy } from "./plugin-install-config-policy-5XJgmVhS.js";
|
|
12
|
-
import { t as registerProgramCommands } from "./command-registry-
|
|
12
|
+
import { t as registerProgramCommands } from "./command-registry-uqzVhY4d.js";
|
|
13
13
|
import { t as configureProgramHelp } from "./help-C3Axk22z.js";
|
|
14
14
|
import { i as shouldBypassConfigGuardForCommandPath, n as ensureCliExecutionBootstrap, r as resolveCliExecutionStartupContext, t as applyCliExecutionStartupPresentation } from "./command-execution-startup-DoNKy6PD.js";
|
|
15
15
|
import process$1 from "node:process";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as theme } from "./theme-B128avno.js";
|
|
2
2
|
import { n as defaultRuntime } from "./runtime-izpjJukX.js";
|
|
3
|
-
import { t as runCrestodian } from "./crestodian-
|
|
3
|
+
import { t as runCrestodian } from "./crestodian-DguTd1Um.js";
|
|
4
4
|
import { n as runCommandWithRuntime } from "./cli-utils-B5kHzE_k.js";
|
|
5
5
|
import { t as formatHelpExamples } from "./help-format-B4U-8oVO.js";
|
|
6
6
|
//#region src/cli/program/register.crestodian.ts
|
|
@@ -2,11 +2,11 @@ import { h as getSubCliEntries } from "./argv-Dv3v7-1X.js";
|
|
|
2
2
|
import { t as resolveCliArgvInvocation } from "./argv-invocation-DFksfGwx.js";
|
|
3
3
|
import { r as shouldRegisterPrimarySubcommandOnly, t as shouldEagerRegisterSubcommands } from "./command-registration-policy-RZ17Et0T.js";
|
|
4
4
|
import { i as registerCommandGroups, r as registerCommandGroupByName } from "./register-command-groups-DwMgA8L2.js";
|
|
5
|
-
import { i as buildCommandGroupEntries, n as registerSubCliByName$1, o as defineImportedProgramCommandGroupSpecs, r as registerSubCliCommands$1 } from "./register.subclis-core
|
|
5
|
+
import { i as buildCommandGroupEntries, n as registerSubCliByName$1, o as defineImportedProgramCommandGroupSpecs, r as registerSubCliCommands$1 } from "./register.subclis-core-Bim47wmF.js";
|
|
6
6
|
//#region src/cli/program/register.subclis.ts
|
|
7
7
|
const entrySpecs = [...defineImportedProgramCommandGroupSpecs([{
|
|
8
8
|
commandNames: ["completion"],
|
|
9
|
-
loadModule: () => import("./completion-cli-
|
|
9
|
+
loadModule: () => import("./completion-cli-DdscKhJ2.js"),
|
|
10
10
|
exportName: "registerCompletionCli"
|
|
11
11
|
}])];
|
|
12
12
|
function resolveSubCliCommandGroups() {
|
|
@@ -61,7 +61,7 @@ const entrySpecs = [
|
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
commandNames: ["gateway"],
|
|
64
|
-
loadModule: () => import("./gateway-cli-
|
|
64
|
+
loadModule: () => import("./gateway-cli-D5bTIFXi.js"),
|
|
65
65
|
exportName: "registerGatewayCli"
|
|
66
66
|
},
|
|
67
67
|
{
|
|
@@ -111,7 +111,7 @@ const entrySpecs = [
|
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
commandNames: ["node"],
|
|
114
|
-
loadModule: () => import("./node-cli-
|
|
114
|
+
loadModule: () => import("./node-cli-BTZZoSGQ.js"),
|
|
115
115
|
exportName: "registerNodeCli"
|
|
116
116
|
},
|
|
117
117
|
{
|
|
@@ -232,7 +232,7 @@ let configCliPromise;
|
|
|
232
232
|
let modelsListCommandPromise;
|
|
233
233
|
let modelsStatusCommandPromise;
|
|
234
234
|
function loadConfigCli() {
|
|
235
|
-
configCliPromise ??= import("./config-cli-
|
|
235
|
+
configCliPromise ??= import("./config-cli-CyHcmGBo.js");
|
|
236
236
|
return configCliPromise;
|
|
237
237
|
}
|
|
238
238
|
function loadModelsListCommand() {
|
|
@@ -26458,7 +26458,7 @@ const GENERATED_BASE_CONFIG_SCHEMA = {
|
|
|
26458
26458
|
] },
|
|
26459
26459
|
"mcp.servers.*.url": { tags: ["advanced", "url-secret"] }
|
|
26460
26460
|
},
|
|
26461
|
-
version: "2026.4.26-beta.
|
|
26461
|
+
version: "2026.4.26-beta.2",
|
|
26462
26462
|
generatedAt: "2026-03-22T21:17:33.302Z"
|
|
26463
26463
|
};
|
|
26464
26464
|
//#endregion
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as truncateCloseReason } from "./close-reason-XIQpMIQF.js";
|
|
2
2
|
//#region src/gateway/server.ts
|
|
3
3
|
async function loadServerImpl() {
|
|
4
|
-
return await import("./server.impl-
|
|
4
|
+
return await import("./server.impl-D1MMbSyX.js");
|
|
5
5
|
}
|
|
6
6
|
async function startGatewayServer(...args) {
|
|
7
7
|
return await (await loadServerImpl()).startGatewayServer(...args);
|
|
@@ -156,7 +156,7 @@ import { n as buildAuthHealthSummary, r as formatRemainingShort } from "./auth-h
|
|
|
156
156
|
import { a as performGatewaySessionReset } from "./session-reset-service-pEv6rln5.js";
|
|
157
157
|
import { t as buildChannelUiCatalog } from "./catalog-DFT_-bmf.js";
|
|
158
158
|
import { a as removeBackfillDiaryEntries, c as writeBackfillDiaryEntries, n as dedupeDreamDiaryEntries, o as removeGroundedShortTermCandidates, r as previewGroundedRemMarkdown, s as repairDreamingArtifacts } from "./memory-core-bundled-runtime-D7dnkmnj.js";
|
|
159
|
-
import { r as lookupConfigSchema, t as loadGatewayRuntimeConfigSchema } from "./runtime-schema-
|
|
159
|
+
import { r as lookupConfigSchema, t as loadGatewayRuntimeConfigSchema } from "./runtime-schema-DSlBwPEK.js";
|
|
160
160
|
import { t as detectRespawnSupervisor } from "./supervisor-markers-D7ighPVz.js";
|
|
161
161
|
import { t as readConfiguredLogTail } from "./log-tail-BjGJqXEj.js";
|
|
162
162
|
import { n as purgeAgentSessionStoreEntries } from "./agents.command-shared-CP_t0lkc.js";
|
|
@@ -283,7 +283,7 @@ async function dispatchGatewayMethod(method, params, options) {
|
|
|
283
283
|
const isWebchatConnect = scope?.isWebchatConnect ?? (() => false);
|
|
284
284
|
if (!context) throw new Error(`Plugin subagent dispatch requires a gateway request scope (method: ${method}). No scope set and no fallback context available.`);
|
|
285
285
|
let result;
|
|
286
|
-
const { handleGatewayRequest } = await import("./server-methods-
|
|
286
|
+
const { handleGatewayRequest } = await import("./server-methods-C5o-c72_.js");
|
|
287
287
|
const pluginRuntimeOwnerId = typeof options?.pluginRuntimeOwnerId === "string" && options.pluginRuntimeOwnerId.trim() ? options.pluginRuntimeOwnerId.trim() : void 0;
|
|
288
288
|
const syntheticClient = createSyntheticOperatorClient({
|
|
289
289
|
allowModelOverride: options?.allowSyntheticModelOverride === true,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as reloadDeferredGatewayPlugins } from "./server-plugin-bootstrap-
|
|
1
|
+
import { r as reloadDeferredGatewayPlugins } from "./server-plugin-bootstrap-CsneMI8o.js";
|
|
2
2
|
export { reloadDeferredGatewayPlugins };
|
|
@@ -147,7 +147,7 @@ import { D as pruneStaleControlPlaneBuckets, T as roleCanSkipDeviceIdentity, _ a
|
|
|
147
147
|
import { a as resolveApnsAuthConfigFromEnv, c as sendApnsExecApprovalAlert, d as resolveApnsRelayConfigFromEnv, l as sendApnsExecApprovalResolvedWake, n as loadApnsRegistration, t as clearApnsRegistrationIfCurrent, u as shouldClearStoredApnsRegistration } from "./push-apns-BApBMbFr.js";
|
|
148
148
|
import { i as normalizeCanvasScopedUrl, n as buildCanvasScopedHostUrl, r as mintCanvasCapabilityToken, t as CANVAS_CAPABILITY_TTL_MS } from "./canvas-capability-BHUkwcsp.js";
|
|
149
149
|
import { n as runHeartbeatOnce, r as startHeartbeatRunner } from "./heartbeat-runner-C5rRTaXu.js";
|
|
150
|
-
import { a as loadPluginLookUpTable, i as setFallbackGatewayContextResolver, o as mergeActivationSectionsIntoRuntimeConfig, t as loadGatewayStartupPlugins } from "./server-plugin-bootstrap-
|
|
150
|
+
import { a as loadPluginLookUpTable, i as setFallbackGatewayContextResolver, o as mergeActivationSectionsIntoRuntimeConfig, t as loadGatewayStartupPlugins } from "./server-plugin-bootstrap-CsneMI8o.js";
|
|
151
151
|
import { n as stopGmailWatcher, t as startGmailWatcherWithLogs } from "./gmail-watcher-lifecycle-CzGbQanT.js";
|
|
152
152
|
import { a as resolvePluginRoutePathContext, i as isProtectedPluginRoutePathFromContext, n as shouldEnforceGatewayAuthForPluginPath } from "./route-auth-trHq3W9q.js";
|
|
153
153
|
import "./paths-I9kOlbyG.js";
|
|
@@ -10205,7 +10205,7 @@ function attachGatewayWsMessageHandler(params) {
|
|
|
10205
10205
|
});
|
|
10206
10206
|
};
|
|
10207
10207
|
(async () => {
|
|
10208
|
-
const { handleGatewayRequest } = await import("./server-methods-
|
|
10208
|
+
const { handleGatewayRequest } = await import("./server-methods-C5o-c72_.js");
|
|
10209
10209
|
await handleGatewayRequest({
|
|
10210
10210
|
req,
|
|
10211
10211
|
respond,
|
|
@@ -11120,7 +11120,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
|
|
|
11120
11120
|
setFallbackGatewayContextResolver(() => gatewayRequestContext);
|
|
11121
11121
|
if (!minimalTestGateway) {
|
|
11122
11122
|
if (deferredConfiguredChannelPluginIds.length > 0) {
|
|
11123
|
-
const { reloadDeferredGatewayPlugins } = await import("./server-plugin-bootstrap-
|
|
11123
|
+
const { reloadDeferredGatewayPlugins } = await import("./server-plugin-bootstrap-Dg5fGabb.js");
|
|
11124
11124
|
({pluginRegistry, gatewayMethods: baseGatewayMethods} = reloadDeferredGatewayPlugins({
|
|
11125
11125
|
cfg: gatewayPluginConfigAtStart,
|
|
11126
11126
|
activationSourceConfig: startupActivationSourceConfig,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as buildAgentMainSessionKey } from "./session-key-hxP9B3Or.js";
|
|
2
|
-
import { i as isPersistentCrestodianOperation, n as executeCrestodianOperation } from "./operations-
|
|
2
|
+
import { i as isPersistentCrestodianOperation, n as executeCrestodianOperation } from "./operations-c1a5PRG1.js";
|
|
3
3
|
import { n as formatCrestodianStartupMessage, r as loadCrestodianOverview } from "./overview-DyvQ1yhh.js";
|
|
4
|
-
import { n as isYes, r as resolveCrestodianOperation, t as approvalQuestion } from "./dialogue-
|
|
4
|
+
import { n as isYes, r as resolveCrestodianOperation, t as approvalQuestion } from "./dialogue-BoCe4MGd.js";
|
|
5
5
|
import { f as runTui } from "./tui-BVZend4P.js";
|
|
6
6
|
import { randomUUID } from "node:crypto";
|
|
7
7
|
//#region src/crestodian/tui-backend.ts
|
|
@@ -95,7 +95,7 @@ and provider plugins have dedicated guides linked above.
|
|
|
95
95
|
```typescript
|
|
96
96
|
// index.ts
|
|
97
97
|
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
|
98
|
-
import { Type } from "
|
|
98
|
+
import { Type } from "typebox";
|
|
99
99
|
|
|
100
100
|
export default definePluginEntry({
|
|
101
101
|
id: "my-plugin",
|
|
@@ -699,6 +699,40 @@ canonical replacement.
|
|
|
699
699
|
```
|
|
700
700
|
|
|
701
701
|
</Accordion>
|
|
702
|
+
|
|
703
|
+
<Accordion title="@sinclair/typebox → typebox">
|
|
704
|
+
The TypeBox package was renamed and republished as `typebox` (1.x).
|
|
705
|
+
OpenClaw and every bundled plugin track `typebox` 1.1.33 directly.
|
|
706
|
+
Plugins that still import `@sinclair/typebox` will fail to load against
|
|
707
|
+
the new ecosystem because the host node_modules no longer carries that
|
|
708
|
+
package name.
|
|
709
|
+
|
|
710
|
+
```typescript
|
|
711
|
+
// Before
|
|
712
|
+
import { Type } from "@sinclair/typebox";
|
|
713
|
+
|
|
714
|
+
// After
|
|
715
|
+
import { Type } from "typebox";
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
Update both your imports and the package dependency:
|
|
719
|
+
|
|
720
|
+
```jsonc
|
|
721
|
+
// package.json
|
|
722
|
+
{
|
|
723
|
+
"dependencies": {
|
|
724
|
+
"typebox": "1.1.33"
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
The 1.x release reorganized subpath exports (`typebox/type`,
|
|
730
|
+
`typebox/value`, `typebox/compile`, `typebox/schema`, etc.). If your
|
|
731
|
+
plugin imported from `@sinclair/typebox/value` or
|
|
732
|
+
`@sinclair/typebox/compile`, recheck the new subpath surface before
|
|
733
|
+
porting — the entry points moved, not just the package name.
|
|
734
|
+
|
|
735
|
+
</Accordion>
|
|
702
736
|
</AccordionGroup>
|
|
703
737
|
|
|
704
738
|
<Note>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marxbiotech/openclaw",
|
|
3
|
-
"version": "2026.4.26-beta.
|
|
3
|
+
"version": "2026.4.26-beta.2",
|
|
4
4
|
"description": "Multi-channel AI gateway with extensible messaging integrations",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"homepage": "https://github.com/marxbiotech/openclaw#readme",
|