@wirecat/cli-base 0.50.0 → 0.50.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/CHANGELOG.md +9 -0
- package/dist/commands/index.d.ts +3 -2
- package/dist/commands/index.js +4 -3
- package/dist/skill/index.js +4 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,15 @@ Versions before 0.8.0 are in the [git tags](https://github.com/WireCatLabs/cli-b
|
|
|
8
8
|
Every entry says what changed as a caller sees it, why, and what to watch for — the rules are
|
|
9
9
|
[`docs/dev/CONVENTIONS.md`](docs/dev/CONVENTIONS.md#the-changelog).
|
|
10
10
|
|
|
11
|
+
## 0.50.1 — 23.10.2026
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- **Joined-path hints can retain a profile.** `refuseJoinedPath` accepts an optional display prefix so hosts can preserve the caller's profile in the corrected invocation. Existing two-argument calls stay valid.
|
|
16
|
+
- **Skill commands have concise summaries.** Detailed installation paths remain in their descriptions, while help and discovery show short task names.
|
|
17
|
+
|
|
18
|
+
- **Secret checks follow the checked revision.** Shared CI, security and release checks scan its complete reachable history. An unrelated fetched branch can no longer fail a clean pull request.
|
|
19
|
+
|
|
11
20
|
## 0.50.0 — 22.10.2026
|
|
12
21
|
|
|
13
22
|
### Changed — may break callers
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export * from "./registry.js";
|
|
|
16
16
|
/**
|
|
17
17
|
* Refuses a command path that arrived as one argument — `"projects add" --help`, what a zsh loop over
|
|
18
18
|
* `$c` passes. Commander settles `--help` for an unknown word before any hook runs and prints the root
|
|
19
|
-
* help, so the words are checked before parsing. Pass the words after a leading profile, if any
|
|
19
|
+
* help, so the words are checked before parsing. Pass the words after a leading profile, if any;
|
|
20
|
+
* `prefix` keeps those caller-supplied words between the tool name and path in the hint.
|
|
20
21
|
*/
|
|
21
|
-
export declare const refuseJoinedPath: (root: Command, args: readonly string[]) => void;
|
|
22
|
+
export declare const refuseJoinedPath: (root: Command, args: readonly string[], prefix?: readonly string[]) => void;
|
package/dist/commands/index.js
CHANGED
|
@@ -5,9 +5,10 @@ export * from "./registry.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Refuses a command path that arrived as one argument — `"projects add" --help`, what a zsh loop over
|
|
7
7
|
* `$c` passes. Commander settles `--help` for an unknown word before any hook runs and prints the root
|
|
8
|
-
* help, so the words are checked before parsing. Pass the words after a leading profile, if any
|
|
8
|
+
* help, so the words are checked before parsing. Pass the words after a leading profile, if any;
|
|
9
|
+
* `prefix` keeps those caller-supplied words between the tool name and path in the hint.
|
|
9
10
|
*/
|
|
10
|
-
export const refuseJoinedPath = (root, args) => {
|
|
11
|
+
export const refuseJoinedPath = (root, args, prefix = []) => {
|
|
11
12
|
let command = root;
|
|
12
13
|
const path = [];
|
|
13
14
|
for (const arg of args) {
|
|
@@ -18,7 +19,7 @@ export const refuseJoinedPath = (root, args) => {
|
|
|
18
19
|
if (next === undefined)
|
|
19
20
|
return;
|
|
20
21
|
if (rest.length > 0)
|
|
21
|
-
throw new CliError("validation_error", `"${arg}" was given as one argument; run: ${[root.name(), ...path, first, ...rest].join(" ")}`);
|
|
22
|
+
throw new CliError("validation_error", `"${arg}" was given as one argument; run: ${[root.name(), ...prefix, ...path, first, ...rest].join(" ")}`);
|
|
22
23
|
path.push(first);
|
|
23
24
|
command = next;
|
|
24
25
|
}
|
package/dist/skill/index.js
CHANGED
|
@@ -100,7 +100,9 @@ export const skillCommand = (app, skill, environment, more = {}) => {
|
|
|
100
100
|
return json === true || jsonl === true;
|
|
101
101
|
};
|
|
102
102
|
const named = Object.keys(more);
|
|
103
|
-
const show = annotate(command.command("show"), { effects: { remote: "none", local: "read" } })
|
|
103
|
+
const show = annotate(command.command("show"), { effects: { remote: "none", local: "read" } })
|
|
104
|
+
.summary("print the tool's instructions for AI agents")
|
|
105
|
+
.description(`print SKILL.md — \`${app.command} skill install\` puts it where Claude Code, Codex and Gemini CLI look for it`);
|
|
104
106
|
if (named.length > 0)
|
|
105
107
|
show.argument("[name]", `one of the skills shipped for a task: ${named.join(", ")}`);
|
|
106
108
|
show.action(function (given) {
|
|
@@ -122,6 +124,7 @@ export const skillCommand = (app, skill, environment, more = {}) => {
|
|
|
122
124
|
streams.data(content);
|
|
123
125
|
});
|
|
124
126
|
annotate(command.command("install"), { effects: { remote: "none", local: "write" } })
|
|
127
|
+
.summary("install the tool's instructions for AI agents")
|
|
125
128
|
.description(`write SKILL.md to ~/.claude/skills/${app.appName}/ (Claude Code) and ~/.agents/skills/${app.appName}/ (Codex, Gemini CLI)`)
|
|
126
129
|
.addOption(new Option("--for <agents>", "which agents to install for").choices(["claude", "agents", "all"]).default("all"))
|
|
127
130
|
.action(function ({ for: chosen }) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirecat/cli-base",
|
|
3
|
-
"version": "0.50.
|
|
3
|
+
"version": "0.50.1",
|
|
4
4
|
"description": "The parts every command line tool needs: output modes, terminal rendering, error model, exit codes, credentials, clocks",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Viacheslav Ptsarev",
|