@clawops/cli 2.2.0 → 2.2.1
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/README.md +14 -1
- package/dist/{chunk-66R52R7K.js → chunk-T6OCPTTR.js} +1 -1
- package/dist/{chunk-CQOYUWR7.js → chunk-Y3N63PDS.js} +3 -3
- package/dist/cli.js +8 -8
- package/dist/{generate-4YYNW3IU.js → generate-4JWTMOLQ.js} +1 -1
- package/dist/{mcp-wire-BXF4DJFT.js → mcp-wire-7MGEAMZH.js} +2 -2
- package/dist/{package-HYGHRX35.js → package-ESYPCIES.js} +1 -1
- package/dist/{server-E3YA32ND.js → server-Y2EDRUDL.js} +2 -2
- package/package.json +1 -1
- package/spec/openclaw-2.0.config.schema.json +1 -1
package/README.md
CHANGED
|
@@ -576,7 +576,7 @@ pnpm dev doctor # verify toolchain
|
|
|
576
576
|
```bash
|
|
577
577
|
pnpm dev # run CLI from src/ via tsx
|
|
578
578
|
pnpm build # tsup → dist/
|
|
579
|
-
pnpm test # vitest (
|
|
579
|
+
pnpm test # vitest (2091 tests, ~13s)
|
|
580
580
|
pnpm test:changed # vitest --changed (fast edit loop)
|
|
581
581
|
pnpm test:integration # Docker-based SSH integration tests
|
|
582
582
|
pnpm test:e2e:local # builds, then bootstrap, the host-touching MCP tools and a 1.x migration, in systemd containers
|
|
@@ -638,6 +638,7 @@ Use `pnpm changeset` to record a release note before merging a `feat` or `fix`.
|
|
|
638
638
|
## What's new in 2.2
|
|
639
639
|
|
|
640
640
|
Recovery is a flag, agents can reach every command they need, and SSH failures say what failed.
|
|
641
|
+
2.2.1 follows with the fix below it.
|
|
641
642
|
|
|
642
643
|
### Restore puts a backup into service
|
|
643
644
|
|
|
@@ -707,6 +708,18 @@ clawops 1.7.9, and AWS. That found defects the unit tests could not, several in
|
|
|
707
708
|
`E2E_MCP=1 pnpm test:cloud <cloud>` backs up and restores over MCP on a real cloud host.
|
|
708
709
|
- clawops.fyi carries structured data, an `/llms.txt`, a FAQ and a comparison page.
|
|
709
710
|
|
|
711
|
+
### 2.2.1
|
|
712
|
+
|
|
713
|
+
- **`clawops config validate` and `config set` check against the schema the pinned OpenClaw
|
|
714
|
+
release (2026.9.2) really has.** The schema clawops shipped had been captured from a different
|
|
715
|
+
build, and the weekly check that compares them found the drift every week and then failed to
|
|
716
|
+
report it, on a missing issue label. It reports now. In practice: `messages.suppressToolErrors`
|
|
717
|
+
is refused, as the gateway refuses it, and `transcripts.autoStart[].whenOccupied` is accepted.
|
|
718
|
+
- **On OpenClaw 2026.9.2, agents can read each other's sessions by default.** Cross-agent session
|
|
719
|
+
access (`tools.agentToAgent`) and collector-mode subagents (`tools.swarm`) are on unless turned
|
|
720
|
+
off. If agents on one gateway should not see each other's sessions:
|
|
721
|
+
`clawops config set tools.agentToAgent.enabled false`, or give it an `allow` list.
|
|
722
|
+
|
|
710
723
|
---
|
|
711
724
|
|
|
712
725
|
## What's new in 2.1
|
|
@@ -74,7 +74,7 @@ async function generatePlan(intent, _opts) {
|
|
|
74
74
|
"plan/apply is not supported for the local provider. Use `clawops up` directly."
|
|
75
75
|
);
|
|
76
76
|
}
|
|
77
|
-
const { version } = await import("./package-
|
|
77
|
+
const { version } = await import("./package-ESYPCIES.js");
|
|
78
78
|
const config = getConfig();
|
|
79
79
|
const instanceType = await resolveInstanceType(intent);
|
|
80
80
|
const { guardOpenclawVersion, defaultOpenclawVersion } = await import("./version-guard-XVYW5WFJ.js");
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
} from "./chunk-27335SIH.js";
|
|
34
34
|
import {
|
|
35
35
|
generatePlan
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-T6OCPTTR.js";
|
|
37
37
|
import {
|
|
38
38
|
extractBaseOutputs
|
|
39
39
|
} from "./chunk-3QJBNAHW.js";
|
|
@@ -1178,7 +1178,7 @@ async function handleUp(input, server) {
|
|
|
1178
1178
|
const progressToken = void 0;
|
|
1179
1179
|
const emit = makeProgressEmitter(server, progressToken);
|
|
1180
1180
|
startTask(taskId, `clawops_up stack=${ctx.stackName}`);
|
|
1181
|
-
const { generatePlan: generatePlan2 } = await import("./generate-
|
|
1181
|
+
const { generatePlan: generatePlan2 } = await import("./generate-4JWTMOLQ.js");
|
|
1182
1182
|
const { applyPlan: applyPlan2 } = await import("./apply-F5SQ2ZOS.js");
|
|
1183
1183
|
const { resolveNetworkFlags } = await import("./network-args-PYJRJBYO.js");
|
|
1184
1184
|
const { detectEgressIp } = await import("./firewall-5VKZ4WBH.js");
|
|
@@ -2232,7 +2232,7 @@ function bearerFrom(header) {
|
|
|
2232
2232
|
return match?.[1]?.trim();
|
|
2233
2233
|
}
|
|
2234
2234
|
async function serveMcp(opts) {
|
|
2235
|
-
const { version } = await import("./package-
|
|
2235
|
+
const { version } = await import("./package-ESYPCIES.js");
|
|
2236
2236
|
const makeServer = () => {
|
|
2237
2237
|
const server = new McpServer({ name: "clawops", version });
|
|
2238
2238
|
registerTools(server, opts);
|
package/dist/cli.js
CHANGED
|
@@ -256,7 +256,7 @@ var up_default = defineCommand2({
|
|
|
256
256
|
}
|
|
257
257
|
return;
|
|
258
258
|
}
|
|
259
|
-
const { generatePlan } = await import("./generate-
|
|
259
|
+
const { generatePlan } = await import("./generate-4JWTMOLQ.js");
|
|
260
260
|
const { applyPlan } = await import("./apply-F5SQ2ZOS.js");
|
|
261
261
|
const { resolveNetworkFlags } = await import("./network-args-PYJRJBYO.js");
|
|
262
262
|
const { detectEgressIp } = await import("./firewall-5VKZ4WBH.js");
|
|
@@ -552,7 +552,7 @@ var plan_default = defineCommand5({
|
|
|
552
552
|
},
|
|
553
553
|
async run({ args }) {
|
|
554
554
|
const { buildContext } = await import("./context-EHSLWKSH.js");
|
|
555
|
-
const { generatePlan } = await import("./generate-
|
|
555
|
+
const { generatePlan } = await import("./generate-4JWTMOLQ.js");
|
|
556
556
|
const { resolveNetworkFlags } = await import("./network-args-PYJRJBYO.js");
|
|
557
557
|
const { detectEgressIp } = await import("./firewall-5VKZ4WBH.js");
|
|
558
558
|
const ctx = buildContext(args);
|
|
@@ -1887,7 +1887,7 @@ var serveCmd = defineCommand18({
|
|
|
1887
1887
|
inspector: { type: "boolean", description: "Enable MCP inspector" }
|
|
1888
1888
|
},
|
|
1889
1889
|
async run({ args }) {
|
|
1890
|
-
const { serveMcp } = await import("./server-
|
|
1890
|
+
const { serveMcp } = await import("./server-Y2EDRUDL.js");
|
|
1891
1891
|
await serveMcp({
|
|
1892
1892
|
port: args.http ? Number(args.http) : void 0,
|
|
1893
1893
|
bind: args.bind,
|
|
@@ -1968,8 +1968,8 @@ var wireCmd = defineCommand18({
|
|
|
1968
1968
|
const { buildContext } = await import("./context-EHSLWKSH.js");
|
|
1969
1969
|
const { acquireSession, drainPool } = await import("./pool-NT4XBSUT.js");
|
|
1970
1970
|
const { extractBaseOutputs } = await import("./outputs-DJHBY7EE.js");
|
|
1971
|
-
const { wireGatewayMcp } = await import("./mcp-wire-
|
|
1972
|
-
const { MCP_HTTP_PORT } = await import("./server-
|
|
1971
|
+
const { wireGatewayMcp } = await import("./mcp-wire-7MGEAMZH.js");
|
|
1972
|
+
const { MCP_HTTP_PORT } = await import("./server-Y2EDRUDL.js");
|
|
1973
1973
|
const ac = new AbortController();
|
|
1974
1974
|
process20.on("SIGINT", () => {
|
|
1975
1975
|
ac.abort();
|
|
@@ -3073,7 +3073,7 @@ async function maybeWireGatewayMcp(opts) {
|
|
|
3073
3073
|
if (!wireGateway) return;
|
|
3074
3074
|
const { connect } = await import("./ssh-HOM7GF3M.js");
|
|
3075
3075
|
const { getConfigDir: getConfigDir2 } = await import("./store-YOLQYXMB.js");
|
|
3076
|
-
const { wireGatewayMcp } = await import("./mcp-wire-
|
|
3076
|
+
const { wireGatewayMcp } = await import("./mcp-wire-7MGEAMZH.js");
|
|
3077
3077
|
const knownHostsPath = path2.join(getConfigDir2(), "known_hosts");
|
|
3078
3078
|
const spin = spinner("Wiring gateway MCP client...");
|
|
3079
3079
|
const session = await connect({
|
|
@@ -3641,7 +3641,7 @@ import { accessSync, constants } from "fs";
|
|
|
3641
3641
|
import { execSync as execSync2 } from "child_process";
|
|
3642
3642
|
var ISSUES_URL = `${REPO_URL}/issues/new`;
|
|
3643
3643
|
var BODY_CAP = 2e3;
|
|
3644
|
-
var VERSION = true ? "2.2.
|
|
3644
|
+
var VERSION = true ? "2.2.1" : "dev";
|
|
3645
3645
|
async function collectContext() {
|
|
3646
3646
|
const nodeVersion = process23.version;
|
|
3647
3647
|
const os2 = `${process23.platform} ${process23.arch}`;
|
|
@@ -3928,7 +3928,7 @@ function resolveArgv(argv2, stdinIsTty) {
|
|
|
3928
3928
|
}
|
|
3929
3929
|
|
|
3930
3930
|
// src/cli/index.ts
|
|
3931
|
-
var CLI_VERSION = true ? "2.2.
|
|
3931
|
+
var CLI_VERSION = true ? "2.2.1" : "dev";
|
|
3932
3932
|
var main = defineCommand24({
|
|
3933
3933
|
meta: {
|
|
3934
3934
|
name: "clawops",
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
MCP_HTTP_PORT
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-Y3N63PDS.js";
|
|
5
5
|
import "./chunk-E6BRQK67.js";
|
|
6
6
|
import "./chunk-PCSX6Y3U.js";
|
|
7
7
|
import "./chunk-LV7UO5CG.js";
|
|
8
8
|
import "./chunk-AX65JMDZ.js";
|
|
9
9
|
import "./chunk-SX75L2T3.js";
|
|
10
10
|
import "./chunk-27335SIH.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-T6OCPTTR.js";
|
|
12
12
|
import "./chunk-POYS3EVQ.js";
|
|
13
13
|
import "./chunk-BOPSG2LI.js";
|
|
14
14
|
import "./chunk-3QJBNAHW.js";
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
bearerFrom,
|
|
6
6
|
isLoopbackBind,
|
|
7
7
|
serveMcp
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-Y3N63PDS.js";
|
|
9
9
|
import "./chunk-E6BRQK67.js";
|
|
10
10
|
import "./chunk-PCSX6Y3U.js";
|
|
11
11
|
import "./chunk-LV7UO5CG.js";
|
|
12
12
|
import "./chunk-AX65JMDZ.js";
|
|
13
13
|
import "./chunk-SX75L2T3.js";
|
|
14
14
|
import "./chunk-27335SIH.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-T6OCPTTR.js";
|
|
16
16
|
import "./chunk-POYS3EVQ.js";
|
|
17
17
|
import "./chunk-BOPSG2LI.js";
|
|
18
18
|
import "./chunk-3QJBNAHW.js";
|