@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 +22 -4
- package/README.md +31 -48
- package/dist/index.js +140 -140
- package/package.json +4 -7
- package/dist/mcp.js +0 -160
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
# Changelog — @farthershore/cli
|
|
2
2
|
|
|
3
|
-
All notable changes to the `farthershore` CLI
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
205
|
+
### `farthershore backend scaffold`
|
|
213
206
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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
|
|
220
|
-
farthershore
|
|
221
|
-
farthershore
|
|
222
|
-
farthershore
|
|
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.
|
|
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
|
|
474
|
-
|
|
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.
|
|
738
|
-
|
|
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.
|
|
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] >
|
|
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.
|
|
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.
|
|
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)
|