@thenavidm/slipway 0.1.0 → 0.1.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 CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  What changed in Slipway, newest first.
4
4
 
5
+ ## 0.1.1, 2026-10-04: a safer install check
6
+
7
+ - **No stranger's package through npx.** An unrelated npm package owns the bare name `slipway`, so a bare `npx slipway` with nothing installed fetched and ran it. SKILL.md now checks the install with `npm ls @thenavidm/slipway`, and every command that may run before an install names the package: `npx -p @thenavidm/slipway slipway <command>`.
8
+
5
9
  ## 0.1.0, 2026-10-04: the first release
6
10
 
7
11
  - **One definition, two surfaces.** `defineTool` describes a tool once; `slipway()` ships it as an MCP server tool and a CLI command under the same name. Both surfaces send every call through one function, so validation, the write guard, timeouts, cancellation and redaction cannot differ between them.
package/README.md CHANGED
@@ -459,9 +459,11 @@ A server with a hundred tools costs a client that loads every definition up fron
459
459
  `slipway check` runs against your built app and its real MCP server:
460
460
 
461
461
  ```bash
462
- slipway check dist/app.js --bin dist/index.js --docs README.md,SKILL.md
462
+ npx slipway check dist/app.js --bin dist/index.js --docs README.md,SKILL.md
463
463
  ```
464
464
 
465
+ Run it in a project that has `@thenavidm/slipway` installed, where npx uses that copy. Anywhere else, name the package: `npx -p @thenavidm/slipway slipway openapi spec.json`. A bare `npx slipway` with nothing installed fetches an unrelated npm package of the same name.
466
+
465
467
  | Check | What fails |
466
468
  |---|---|
467
469
  | Names | A tool that takes a built-in command's name |
@@ -519,6 +521,7 @@ const mcp = await connect(app, { era: "modern", elicit: () => ({ action: "accept
519
521
  | Codex shows the server as failed at startup | The first npx download outlasted 10 seconds | `install codex` sets `startup_timeout_sec = 60`; add it by hand to an older entry |
520
522
  | `slipway check` warns about schema size | One tool's schema is large or repeats its definitions | Send the body schema once, or advertise a short one and validate the full one in the handler |
521
523
  | `slipway check` cannot load the app | The module starts the server when imported | Export the app from `app.ts` and call `app.main()` only in `index.ts` |
524
+ | `npx slipway` prints something unexpected | Slipway is not installed in this folder, so npx fetched an unrelated package called `slipway` | Run `npm install @thenavidm/slipway`, or `npx -p @thenavidm/slipway slipway <command>` |
522
525
 
523
526
  ## Environment variables
524
527
 
package/SKILL.md CHANGED
@@ -5,7 +5,7 @@ metadata:
5
5
  install:
6
6
  package: "@thenavidm/slipway"
7
7
  node: ">=22"
8
- check: "npx slipway --version"
8
+ check: "npm ls @thenavidm/slipway"
9
9
  ---
10
10
 
11
11
  # Building with Slipway
@@ -14,7 +14,7 @@ Slipway turns one list of tool definitions into an MCP server and a CLI. Both su
14
14
 
15
15
  ## Install gate
16
16
 
17
- Run `npx slipway --version` in the repo. If it does not print a version, STOP: the package is missing. Install it with `npm install @thenavidm/slipway`, then check again.
17
+ Run `npm ls @thenavidm/slipway` in the repo. If it does not list a version, STOP: the package is missing. Install it with `npm install @thenavidm/slipway`, then check again. Never test with a bare `npx slipway` before it is installed: an unrelated package on npm is called `slipway`, and npx would fetch and run that one.
18
18
 
19
19
  ## The three files
20
20
 
@@ -93,7 +93,7 @@ tools: fromOpenAPI(spec, {
93
93
  }),
94
94
  ```
95
95
 
96
- Run `npx slipway openapi openapi.json` first: it lists every tool the document becomes, what it skips and why, the schemas too large for a model, and the hash to pin. Fix a misleading method with `risk: { searchProducts: "read" }`, and rename with `names`.
96
+ Run `npx -p @thenavidm/slipway slipway openapi openapi.json` first: it lists every tool the document becomes, what it skips and why, the schemas too large for a model, and the hash to pin. Fix a misleading method with `risk: { searchProducts: "read" }`, and rename with `names`.
97
97
 
98
98
  ## Shipping it to clients
99
99
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thenavidm/slipway",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
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",