@thenavidm/slipway 0.1.18 → 0.1.19
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 +4 -0
- package/README.md +1 -1
- package/dist/cli/run.js +10 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
What changed in Slipway, newest first.
|
|
4
4
|
|
|
5
|
+
## 0.1.19, 2026-10-05: what Lemon Squeezy needed
|
|
6
|
+
|
|
7
|
+
- **`which` answers with a command's help when one fits well ahead of the rest.** An agent asked `which` for the command and then read that command's `--help`, and each request carries the whole conversation. On Lemon Squeezy, `which cancel subscription` and then `cancel-subscription --help` cost Codex a median of 83,076 input tokens, where its 2.x CLI guessed the command's name and read its help in two requests for 61,541. When the first answer scores at least half again as much as the second, its help now follows the list, and three runs took 61,903, 61,913 and 61,908 in two requests. A close second gets the list alone: Gumroad's `which refund` fits refunding a sale and its refund policy alike, and the help shown would be a guess between them.
|
|
8
|
+
|
|
5
9
|
## 0.1.18, 2026-10-05: what Wistia and Testimonial.to needed
|
|
6
10
|
|
|
7
11
|
- **A command's help never lists `--confirm` as the only required flag.** Wistia's import takes its URL as a flag or inside `--payload`, so no flag is required, and its help showed a Required section holding only `--confirm`. That reads as if nothing else were needed: every Codex run then read the command's schema as well, and finding the command and its flags cost a median of 105,140 input tokens, where Wistia's own 2.x CLI cost 86,365. Alone, `--confirm` now closes the options, where 2.x listed it, and the usage line still ends with it; two runs then took 83,069 and 82,817.
|
package/README.md
CHANGED
|
@@ -390,7 +390,7 @@ Override any operation's name or risk with `names` and `risk`, keep a subset wit
|
|
|
390
390
|
| `<cli>` | Every command, grouped by toolset, writes marked |
|
|
391
391
|
| `<cli> <command> [flags]` | Run one tool |
|
|
392
392
|
| `<cli> <command> --help` | Its flags, choices, defaults, examples and risk |
|
|
393
|
-
| `<cli> which <words>` | Find the command for a task, by what it does. An app's `synonyms` add the words its users type: `{ picture: ["image"] }` |
|
|
393
|
+
| `<cli> which <words>` | Find the command for a task, by what it does, with its help when one fits well ahead of the rest. An app's `synonyms` add the words its users type: `{ picture: ["image"] }` |
|
|
394
394
|
| `<cli> schema <command>` | The JSON Schema an MCP client receives. `--output` for the result's |
|
|
395
395
|
| `<cli> agent-context` | Commands, flags, risk, examples, exit codes and settings as JSON. `--brief` for just the commands, which ones write or need `--confirm`, and the exit codes |
|
|
396
396
|
| `<cli> doctor` | Check the setup. `--network` also calls the service, which an app with `doctorNetwork` does every time |
|
package/dist/cli/run.js
CHANGED
|
@@ -257,7 +257,16 @@ async function runBuiltin(app, io, command, rest, globals) {
|
|
|
257
257
|
}
|
|
258
258
|
if (!matches.length)
|
|
259
259
|
return print(io, `No command matches '${query}'. Run \`${app.bins.cli}\` to see them all.`);
|
|
260
|
-
|
|
260
|
+
const list = matches.map(({ tool }) => toolLine(tool)).join("\n");
|
|
261
|
+
// One command well ahead of the rest comes with its help, so finding a command and its flags is
|
|
262
|
+
// one step: on Lemon Squeezy, `which cancel subscription` and then `cancel-subscription --help`
|
|
263
|
+
// cost Codex a request its 2.x CLI had saved by guessing the name, and each request carries the
|
|
264
|
+
// whole conversation. A close second gets the list alone: Gumroad's `which refund` fits refunding
|
|
265
|
+
// a sale and its refund policy alike, and the help shown would be a guess between them.
|
|
266
|
+
const [first, second] = matches;
|
|
267
|
+
if (first && (!second || first.score >= second.score * 1.5))
|
|
268
|
+
return print(io, `${list}\n${renderToolHelp(first.tool, io.bin, app.definition.flagAliases)}`);
|
|
269
|
+
return print(io, list);
|
|
261
270
|
}
|
|
262
271
|
case "doctor":
|
|
263
272
|
return runDoctor(app, io, { network: rest.includes("--network"), json: globals.format !== "auto" });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thenavidm/slipway",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.19",
|
|
4
4
|
"description": "Slipway, the TypeScript framework for MCP servers and agent-native CLIs. One tool definition ships an MCP server and a CLI, with write safety, typed results and release checks built in.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|