@farthershore/cli 0.35.0 → 0.36.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 CHANGED
@@ -1,9 +1,27 @@
1
1
  # Changelog — @farthershore/cli
2
2
 
3
- All notable changes to the `farthershore` CLI and its MCP server
4
- (`farthershore-mcp`) are documented here. The CLI versions independently from
5
- the SDKs. Pre-1.0: minor versions may include breaking changes. Releases
6
- before 0.35.0 are recorded only in the git history.
3
+ All notable changes to the `farthershore` CLI are documented here. The CLI
4
+ versions independently from the SDKs. Pre-1.0: minor versions may include
5
+ breaking changes. Releases before 0.35.0 are recorded only in the git history.
6
+
7
+ ## [0.36.0] - 2026-10-13
8
+
9
+ ### Changed
10
+
11
+ - **Breaking:** `farthershore create api` is now `farthershore backend scaffold`
12
+ (same flags), so it no longer reads like `farthershore api`. The top-level
13
+ `create` group is gone, and its error codes are renamed from `CREATE_API_*`
14
+ to `BACKEND_SCAFFOLD_*` (for example `BACKEND_SCAFFOLD_EXISTS`).
15
+ - Every command calls the `@farthershore/client` operation surface directly;
16
+ command output and flags are unchanged.
17
+
18
+ ### Removed
19
+
20
+ - **Breaking:** the local stdio MCP server and its `farthershore-mcp` binary
21
+ are gone. MCP launch configurations that run `farthershore-mcp` (or
22
+ `npx -p @farthershore/cli farthershore-mcp`) stop working on upgrade. Use
23
+ `farthershore code run` or `farthershore api` from an agent until the hosted
24
+ MCP server ships.
7
25
 
8
26
  ## [0.35.0] - 2026-10-12
9
27
 
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Create and operate [FartherShore](https://farthershore.com) software businesses
4
4
  from the terminal.
5
5
 
6
- **Status: `0.35.0`.** Pre-1.0 — the command surface is stable but may still
6
+ **Status: `0.36.0`.** Pre-1.0 — the command surface is stable but may still
7
7
  change between minor versions. Pin an exact version in CI.
8
8
 
9
9
  FartherShore lets you define a software business as code, then sells, meters,
@@ -15,25 +15,18 @@ This CLI is the tool layer around that repo: provision a managed business repo,
15
15
  validate it locally before you push, inspect publication state, and run
16
16
  day-to-day operations (consumers, secrets, backends, webhooks, promo codes,
17
17
  usage). It is designed to be safe for both humans and agents — every command
18
- takes `--format json` for non-interactive scripting, and the MCP server exposes
19
- the explicitly agent-operable subset of the CLI surface.
18
+ takes `--format json` for non-interactive scripting.
20
19
 
21
20
  ## Install
22
21
 
23
22
  ```bash
24
- npm install -g @farthershore/cli@0.35.0
23
+ npm install -g @farthershore/cli@0.36.0
25
24
  ```
26
25
 
27
26
  Or run it directly with npx:
28
27
 
29
28
  ```bash
30
- npx -p @farthershore/cli@0.35.0 farthershore --help
31
- ```
32
-
33
- The package also ships an MCP stdio server for agents:
34
-
35
- ```bash
36
- npx -p @farthershore/cli@0.35.0 farthershore-mcp
29
+ npx -p @farthershore/cli@0.36.0 farthershore --help
37
30
  ```
38
31
 
39
32
  ## Authentication
@@ -209,17 +202,17 @@ before pagination; the CLI does not sort or filter a partial page locally.
209
202
  Each command rejects fields outside its endpoint-specific allowlist shown by
210
203
  `--help`.
211
204
 
212
- ### `farthershore create`
205
+ ### `farthershore backend scaffold`
213
206
 
214
- Create local project components inside a managed builder repo. `create api`
215
- scaffolds a starter backend into `api/` by downloading the public Node template
216
- tarball, then patches the repo root `.gitignore`.
207
+ Scaffold a starter backend into `api/` inside a managed builder repo, by
208
+ downloading the public Node template tarball, then patch the repo root
209
+ `.gitignore`. It runs locally and needs no login.
217
210
 
218
211
  ```bash
219
- farthershore create api
220
- farthershore create api --path ../weather-api
221
- farthershore create api --force
222
- farthershore create api --node --ref v0.1.0 --format json
212
+ farthershore backend scaffold
213
+ farthershore backend scaffold --path ../weather-api
214
+ farthershore backend scaffold --force
215
+ farthershore backend scaffold --node --ref v0.1.0 --format json
223
216
  ```
224
217
 
225
218
  `--node` is the default language today: Node (TypeScript + Express). `--ref`
@@ -385,8 +378,7 @@ default, and `--org <id>` overrides it for one command.
385
378
 
386
379
  Create and administer organization-owned MakerTokens. These commands require a
387
380
  signed-in user CLI session (`farthershore login`); an existing MakerToken cannot
388
- list, mint, approve, rotate, revoke, or otherwise administer credentials. The
389
- entire group is CLI-only and is deliberately absent from `farthershore-mcp`.
381
+ list, mint, approve, rotate, revoke, or otherwise administer credentials.
390
382
 
391
383
  ```bash
392
384
  # Exact permissions a human may delegate — read this before choosing --permissions.
@@ -470,8 +462,8 @@ never print `plaintext`. ACTIVE creates
470
462
  and rotations print the one-time key once. If one of these commands times out,
471
463
  run `service-account list` before trying again.
472
464
 
473
- This group is direct CLI-only and deliberately has no MCP projection: the MCP
474
- operation registry carries builder principals, not portal consumer sessions.
465
+ This group is registered directly rather than through the operation registry:
466
+ that registry carries builder principals, not portal consumer sessions.
475
467
 
476
468
  ### `farthershore limit`
477
469
 
@@ -522,8 +514,17 @@ portal renders locally exactly as it serves in production. Pass `--mock` to
522
514
  inject `{ mock: true }` instead of Core/Clerk config for local page inspection
523
515
  with placeholder data and auth bypassed.
524
516
 
517
+ A build is published only when its output ships the SDK's managed sign-in.
518
+ A refused build never replaces what is live; `frontend status` shows the
519
+ reason, and `builds[].diagnostics[].code` is `FRONTEND_SIGN_IN_MISSING` (mount
520
+ `<FartherShoreRoot>` and render `<FsSignIn />`) or `FRONTEND_SDK_TOO_OLD`
521
+ (upgrade `@farthershore/farthershore-js`). `--wait` exits `BUILD_FAILED` with
522
+ that code in `details.reasonCode`. Mock mode is for this local preview only: a
523
+ hosted portal ignores it, and always uses the platform's sign-in.
524
+
525
525
  ```bash
526
526
  farthershore frontend status weather-api --format json
527
+ farthershore frontend status weather-api --wait --ref <commitSha> --format json
527
528
  farthershore frontend rollback weather-api --release-id <hash> --yes --format json
528
529
 
529
530
  # Local preview (shells out to vite; needs a frontend/ project)
@@ -734,8 +735,8 @@ farthershore webhook listen weather-api --forward-to localhost:3000/webhooks \
734
735
  ```
735
736
 
736
737
  `listen` needs `cloudflared` — bundled as an optional
737
- `@farthershore/cloudflared-<platform>` dependency, or on your PATH. It has no
738
- MCP tool (long-running, process-owning). A listener killed hard leaves an
738
+ `@farthershore/cloudflared-<platform>` dependency, or on your PATH. A listener
739
+ killed hard leaves an
739
740
  endpoint with a `*.trycloudflare.com` URL; `webhook delete --yes` removes it.
740
741
 
741
742
  ### `farthershore promo-code`
@@ -763,18 +764,18 @@ Use `--all-plans` to clear plan scoping.
763
764
  Install or refresh the platform-verified skills bundle together. The platform
764
765
  pins this immutable release, and CI plus a daily repository check compare it to
765
766
  GitHub's latest stable release so the guidance cannot silently drift.
766
- This command requires `@farthershore/cli` 0.35.0 or newer.
767
+ This command requires `@farthershore/cli` 0.36.0 or newer.
767
768
 
768
769
  ```bash
769
770
  set -euo pipefail
770
771
  CLI_VERSION=$(farthershore --version)
771
- printf '%s' "$CLI_VERSION" | node -e 'let v=""; process.stdin.on("data", c => v += c).on("end", () => { const m = /^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:\+[0-9A-Za-z.-]+)?$/.exec(v.trim()); if (!m || !(+m[1] > 0 || +m[2] > 35 || (+m[2] === 35 && +m[3] >= 0))) { console.error("Stop: CLI 0.35.0 or newer is required; ask the human to upgrade."); process.exitCode = 1; } })'
772
+ printf '%s' "$CLI_VERSION" | node -e 'let v=""; process.stdin.on("data", c => v += c).on("end", () => { const m = /^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:\+[0-9A-Za-z.-]+)?$/.exec(v.trim()); if (!m || !(+m[1] > 0 || +m[2] > 36 || (+m[2] === 36 && +m[3] >= 0))) { console.error("Stop: CLI 0.36.0 or newer is required; ask the human to upgrade."); process.exitCode = 1; } })'
772
773
  farthershore skills install --help
773
774
  farthershore skills install
774
775
  ```
775
776
 
776
777
  If either prerequisite fails, stop and ask the human to run
777
- `npm install -g @farthershore/cli@0.35.0`, then repeat the checks.
778
+ `npm install -g @farthershore/cli@0.36.0`, then repeat the checks.
778
779
  Do not install or upgrade global tooling autonomously.
779
780
 
780
781
  The Farther Shore CLI downloads the exact installer archive and verifies this
@@ -904,7 +905,8 @@ until, deadlineMs })`, `console`, `setTimeout` / `clearTimeout` and
904
905
  One-time secrets (minted or rotated credentials) come back to the script as
905
906
  `{ redacted: true, last4 }` unless you pass `--reveal-secrets`; a redacted
906
907
  secret cannot be shown again, so rotate with `--reveal-secrets` when you need
907
- the value. Other results pass the same credential masking as the MCP server.
908
+ the value. In every other result, credential-shaped strings (tokens, API keys,
909
+ JWTs) and known secret fields are masked before the script sees them.
908
910
 
909
911
  **Budgets:** `--max-calls` (200), `--max-writes` (20), `--timeout` (60s; `60`,
910
912
  `60s`, `500ms`, `2m`) and at most 4 calls in flight. Exceeding one stops the
@@ -973,25 +975,6 @@ MakerToken through `FARTHERSHORE_TOKEN`. Device login waits for human approval;
973
975
  `farthershore validate --local-only` need no network or auth and are safe to
974
976
  run in CI.
975
977
 
976
- ## MCP server
977
-
978
- The MCP server (`farthershore-mcp`) projects its tools from the same operation
979
- registry that defines the CLI commands. Every MCP tool has a CLI sibling, but
980
- not every CLI command is exposed through MCP. Tool names use the `fs_*` prefix
981
- and cover only operations explicitly marked agent-operable in that registry.
982
- Organization, role, member, invitation, and org MakerToken administration
983
- requires a live-user CLI session and is not projected into MCP; audit logs,
984
- notifications, and apply timelines are also CLI-only.
985
-
986
- The server resolves its target exactly as the CLI does: the stored login,
987
- `FARTHERSHORE_API_URL` (else the configured API URL), and the organization
988
- linked to its working directory, else the one chosen with
989
- `farthershore auth organization use`.
990
-
991
- ```bash
992
- farthershore-mcp
993
- ```
994
-
995
978
  ## Learn more
996
979
 
997
980
  - Platform documentation: [farthershore.com](https://farthershore.com)