@wirecat/cli-template 0.7.0 → 0.8.0
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/CHANGELOG.md +15 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +2 -3
- package/dist/commands/mcp.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/commands.md +0 -1
- package/docs/dev/skills/release/fresh-audit.md +3 -3
- package/docs/dev/test-matrix.md +2 -3
- package/docs/usage.md +1 -2
- package/package.json +1 -1
- package/scripts/test-matrix-untested.ts +1 -1
- package/src/commands/mcp.ts +10 -19
- package/src/mcp-http.test.ts +0 -6
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,21 @@ Notable changes to `@wirecat/cli-template`. One section per version, newest firs
|
|
|
5
5
|
|
|
6
6
|
<!-- cspell:words katex smol whatsapp -->
|
|
7
7
|
|
|
8
|
+
## 0.8.0 — 27.10.2026
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- The fresh-audit prompt lets the auditor read the cli-base workflow files the CLI's workflows pin (WC-CI-8), as
|
|
13
|
+
the handbook's New CLI page now says.
|
|
14
|
+
|
|
15
|
+
### Removed
|
|
16
|
+
|
|
17
|
+
- **`mcp --permission` is gone.** cli-core 0.449.0 checks a `--permission` key against the messenger's names
|
|
18
|
+
(`messages`, `drafts`, `chats` and the like), so in a CLI made from this template it refused every value, its own
|
|
19
|
+
command paths included. It returns when cli-core can check a CLI's own permission names. Until then the profile's
|
|
20
|
+
`permissions` are the way to make the MCP server stricter. `mcp server start` still shows a `--permission` option,
|
|
21
|
+
which cli-core adds; the server it starts refuses it.
|
|
22
|
+
|
|
8
23
|
## 0.7.0 — 27.10.2026
|
|
9
24
|
|
|
10
25
|
### Changed — may break callers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBnC,eAAO,MAAM,UAAU,QAAO,OAyExB,CAAA"}
|
package/dist/commands/mcp.js
CHANGED
|
@@ -11,15 +11,14 @@ const settingsOf = (command) => {
|
|
|
11
11
|
const { profile } = configuration.resolveSettings(flags, { env });
|
|
12
12
|
return { flags, env, profile, tokenFile: httpTokenFile(IDENTITY, profile, env) };
|
|
13
13
|
};
|
|
14
|
-
const
|
|
15
|
-
export const mcpCommand = () => withPermission(annotate(new Command("mcp"), {
|
|
14
|
+
export const mcpCommand = () => annotate(new Command("mcp"), {
|
|
16
15
|
effects: REMOTE_WRITE,
|
|
17
16
|
lifetime: "persistent",
|
|
18
17
|
mcp: false,
|
|
19
18
|
examples: [`${IDENTITY.command} personal mcp`],
|
|
20
19
|
})
|
|
21
20
|
.summary("serve this profile's commands to an AI agent")
|
|
22
|
-
.description(`serve this profile's commands to an agent over MCP, on stdin and stdout, writes included; the profile's permissions decide — \`claude mcp add ${IDENTITY.command} -- ${IDENTITY.command} personal mcp\``)
|
|
21
|
+
.description(`serve this profile's commands to an agent over MCP, on stdin and stdout, writes included; the profile's permissions decide — \`claude mcp add ${IDENTITY.command} -- ${IDENTITY.command} personal mcp\``)
|
|
23
22
|
.option("--http", "serve over HTTP on 127.0.0.1 for ChatGPT and Claude in the browser, behind your tunnel; the profile's permissions decide")
|
|
24
23
|
.option("--port <port>", `the local port for --http (default ${MCP_HTTP_DEFAULT_PORT})`)
|
|
25
24
|
.option("--public-url <url>", "the tunnel's https address the browser apps use, e.g. https://<name>.ts.net")
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EACL,kBAAkB,EAClB,aAAa,EAEb,aAAa,EACb,MAAM,EACN,qBAAqB,EACrB,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,MAAM,GACP,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AASzC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,EAAY,CAAA;IACjD,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAA;IACrD,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IACjE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAA;AAClF,CAAC,CAAA;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.8.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "0.
|
|
1
|
+
export const VERSION = "0.8.0";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/docs/commands.md
CHANGED
|
@@ -130,7 +130,6 @@ clidev mcp [options]
|
|
|
130
130
|
|
|
131
131
|
| Option | What it does |
|
|
132
132
|
|---|---|
|
|
133
|
-
| `--permission <key=level>` | make a permission stricter for this server only, like messages.send=deny; it never loosens the profile; repeat for more keys. |
|
|
134
133
|
| `--http` | serve over HTTP on 127.0.0.1 for ChatGPT and Claude in the browser, behind your tunnel; the profile's permissions decide. |
|
|
135
134
|
| `--port <port>` | the local port for --http (default 8765). |
|
|
136
135
|
| `--public-url <url>` | the tunnel's https address the browser apps use, e.g. https://<name>.ts.net. |
|
|
@@ -5,9 +5,9 @@ agent's context. Give it as written.
|
|
|
5
5
|
|
|
6
6
|
## Prompt
|
|
7
7
|
|
|
8
|
-
You audit a WireCat CLI repository, in the current folder. Use only
|
|
9
|
-
`node_modules/@wirecat/cli-base/docs/standards/README.md`,
|
|
10
|
-
or earlier reviews. Run `pnpm install` first if `node_modules` is missing.
|
|
8
|
+
You audit a WireCat CLI repository, in the current folder. Use only three sources: the handbook, starting at
|
|
9
|
+
`node_modules/@wirecat/cli-base/docs/standards/README.md`, the repository itself, and the cli-base workflow files its
|
|
10
|
+
own workflows pin (WC-CI-8). Do not read plans, journals or earlier reviews. Run `pnpm install` first if `node_modules` is missing.
|
|
11
11
|
|
|
12
12
|
Check the repository against every handbook page that applies to it: the code, the docs, the configs and the
|
|
13
13
|
workflows. You may run the package scripts. Change nothing.
|
package/docs/dev/test-matrix.md
CHANGED
|
@@ -7,7 +7,7 @@ ran it · ⛔ not tested offline, with the reason and where it is checked instea
|
|
|
7
7
|
Measured from the test run (`coverage/argv.jsonl`), not searched for — see
|
|
8
8
|
[TESTING.md](TESTING.md) for how, and for the states and failures that cut across commands.
|
|
9
9
|
|
|
10
|
-
**
|
|
10
|
+
**50 ✅ · 7 ⛔ · 0 ❌** — 18 commands, 39 options.
|
|
11
11
|
|
|
12
12
|
| Command | Option | | Note |
|
|
13
13
|
|---|---|---|---|
|
|
@@ -20,7 +20,6 @@ Measured from the test run (`coverage/argv.jsonl`), not searched for — see
|
|
|
20
20
|
| `skill install` | `--for` | ✅ | |
|
|
21
21
|
| `skill status` | | ✅ | |
|
|
22
22
|
| `mcp` | | ✅ | |
|
|
23
|
-
| `mcp` | `--permission` | ✅ | |
|
|
24
23
|
| `mcp` | `--http` | ✅ | |
|
|
25
24
|
| `mcp` | `--port` | ✅ | |
|
|
26
25
|
| `mcp` | `--public-url` | ✅ | |
|
|
@@ -28,7 +27,7 @@ Measured from the test run (`coverage/argv.jsonl`), not searched for — see
|
|
|
28
27
|
| `mcp server start` | | ⛔ | starts a detached `mcp --http` from the built entry; cli-core tests mcpServerCommand, and the background run was checked by hand against dist/ |
|
|
29
28
|
| `mcp server start` | `--port` | ⛔ | starts a detached `mcp --http` from the built entry; cli-core tests mcpServerCommand, and the background run was checked by hand against dist/ |
|
|
30
29
|
| `mcp server start` | `--public-url` | ⛔ | starts a detached `mcp --http` from the built entry; cli-core tests mcpServerCommand, and the background run was checked by hand against dist/ |
|
|
31
|
-
| `mcp server start` | `--permission` | ⛔ |
|
|
30
|
+
| `mcp server start` | `--permission` | ⛔ | cli-core adds it and passes it to `mcp --http`, which no longer takes it, so the started server refuses it; checked by hand against dist/ |
|
|
32
31
|
| `mcp server stop` | | ⛔ | starts a detached `mcp --http` from the built entry; cli-core tests mcpServerCommand, and the background run was checked by hand against dist/ |
|
|
33
32
|
| `mcp server status` | | ✅ | |
|
|
34
33
|
| `upgrade` | | ✅ | |
|
package/docs/usage.md
CHANGED
|
@@ -29,8 +29,7 @@ claude mcp add clidev -- clidev personal mcp
|
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
The server offers every command, the ones that write included. The profile's permissions decide what runs; see
|
|
32
|
-
[settings](configuration.md#permissions).
|
|
33
|
-
only; it never loosens the profile.
|
|
32
|
+
[settings](configuration.md#permissions).
|
|
34
33
|
|
|
35
34
|
For ChatGPT and Claude in the browser, `clidev personal mcp --http --public-url https://laptop.example.ts.net` serves on
|
|
36
35
|
`127.0.0.1` (port 8765, or `--port`) behind your own tunnel. A browser app logs in with a one-time code that the
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirecat/cli-template",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Start a new WireCat CLI: a working skeleton on cli-base and cli-core, copied by new and kept current by upgrade",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Viacheslav Ptsarev",
|
|
@@ -30,7 +30,7 @@ export const UNTESTED: { command: string; option?: string; reason: string }[] =
|
|
|
30
30
|
command: "mcp server start",
|
|
31
31
|
option: "--permission",
|
|
32
32
|
reason:
|
|
33
|
-
"
|
|
33
|
+
"cli-core adds it and passes it to `mcp --http`, which no longer takes it, so the started server refuses it; checked by hand against dist/",
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
command: "mcp server stop",
|
package/src/commands/mcp.ts
CHANGED
|
@@ -33,26 +33,17 @@ const settingsOf = (command: Command) => {
|
|
|
33
33
|
return { flags, env, profile, tokenFile: httpTokenFile(IDENTITY, profile, env) }
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
const withPermission = (command: Command) =>
|
|
37
|
-
command.option(
|
|
38
|
-
"--permission <key=level>",
|
|
39
|
-
"make a permission stricter for this server only, like messages.send=deny; it never loosens the profile; repeat for more keys",
|
|
40
|
-
(value: string, previous: string[] = []) => [...previous, value],
|
|
41
|
-
)
|
|
42
|
-
|
|
43
36
|
export const mcpCommand = (): Command =>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
.
|
|
53
|
-
|
|
54
|
-
),
|
|
55
|
-
)
|
|
37
|
+
annotate(new Command("mcp"), {
|
|
38
|
+
effects: REMOTE_WRITE,
|
|
39
|
+
lifetime: "persistent",
|
|
40
|
+
mcp: false,
|
|
41
|
+
examples: [`${IDENTITY.command} personal mcp`],
|
|
42
|
+
})
|
|
43
|
+
.summary("serve this profile's commands to an AI agent")
|
|
44
|
+
.description(
|
|
45
|
+
`serve this profile's commands to an agent over MCP, on stdin and stdout, writes included; the profile's permissions decide — \`claude mcp add ${IDENTITY.command} -- ${IDENTITY.command} personal mcp\``,
|
|
46
|
+
)
|
|
56
47
|
.option(
|
|
57
48
|
"--http",
|
|
58
49
|
"serve over HTTP on 127.0.0.1 for ChatGPT and Claude in the browser, behind your tunnel; the profile's permissions decide",
|
package/src/mcp-http.test.ts
CHANGED
|
@@ -131,12 +131,6 @@ it("forgets every browser login on --revoke", async () => {
|
|
|
131
131
|
expect(await answer(["personal", "mcp", "--revoke", "--json"])).toEqual({ revoked: true, profile: "personal" })
|
|
132
132
|
})
|
|
133
133
|
|
|
134
|
-
it("reads --permission through the profile's settings, refusing one that is not a command path and level", async () => {
|
|
135
|
-
const one = started(["personal", "mcp", "--permission", "messages.send", "--json"])
|
|
136
|
-
expect(await one.code).toBe(2)
|
|
137
|
-
expect(one.err.join("\n")).toContain("--permission takes a command path and level")
|
|
138
|
-
})
|
|
139
|
-
|
|
140
134
|
it("keeps the login code out of a background server's log, and refuses a port in use", async () => {
|
|
141
135
|
const port = await freePort()
|
|
142
136
|
const url = `http://127.0.0.1:${port}`
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "0.
|
|
1
|
+
export const VERSION = "0.8.0"
|