@mmmnt/flmnt 1.11.0 → 1.12.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/README.md +21 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,7 +32,23 @@ flmnt setup --server-url <flmnt-url> --project <name> # wire this repo to a wo
|
|
|
32
32
|
|
|
33
33
|
`--project` names the workspace **this repo** records into, by name — you do not need its id. It is required, and it pins the repo: every hook targets that workspace regardless of what the CLI is pointed at elsewhere.
|
|
34
34
|
|
|
35
|
-
`flmnt setup` writes a project-local `.mcp.json` pointing at the local proxy plus a `.claude/` hook map and slash commands; `flmnt proxy` then injects your bearer token on outbound MCP requests — so Claude Code talks to a live, authenticated flmnt MCP without you handling tokens by hand. `setup` is idempotent.
|
|
35
|
+
`flmnt setup` writes a project-local `.mcp.json` pointing at the local proxy plus a `.claude/` hook map and slash commands; `flmnt proxy` then injects your bearer token on outbound MCP requests — so Claude Code talks to a live, authenticated flmnt MCP without you handling tokens by hand. `setup` is idempotent, and it always rewrites the `flmnt` entry of `.mcp.json` to what it is asked for; other servers in that file stay as they are.
|
|
36
|
+
|
|
37
|
+
### Local flmnt (the compose harness)
|
|
38
|
+
|
|
39
|
+
A checkout can run against a local flmnt instead of the hosted one. The CLI tells the two apart by the server URL it resolves (`--server-url` / `QUORUM_SERVER_URL` / `.quorum.json` / the login config): a loopback host such as `http://localhost:8000/mcp` is local, anything else is hosted. The hosted path is unchanged — credentials come from the keychain `flmnt login` filled.
|
|
40
|
+
|
|
41
|
+
A local flmnt mints credentials for a declared person, never for a default, and asks for nothing:
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
flmnt login --local # once per machine and OS user — no input, no email
|
|
45
|
+
flmnt whoami --json --client flmnt-cli # {"sub","workspace","client_id"} — what a headers-helper asks
|
|
46
|
+
flmnt logout --local # end the local login
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`login --local` derives the identity from a marker the machine already carries (macOS `IOPlatformUUID`, Linux `/etc/machine-id`, Windows `MachineGuid`) and the OS user: `sub = "local_" + UUIDv5(marker + OS user)`, and per tool `client_id = "local_" + UUIDv5(sub, tool)`. Only the digest is kept (`~/.filament/local-identity.json`); the same machine and user give the same sub forever, and two people or two machines never collide. No login, on either side, prints nothing on stdout, one reason on stderr, and exits 1.
|
|
50
|
+
|
|
51
|
+
On a loopback server every command — `brief`, `gate`, `derive`, `record-*`, `whoami`, `workspace`, `sync`'s local side — authenticates through the checkout's own headers-helper (the `headersHelper` of the `flmnt` entry in `.mcp.json`, the same command Claude Code runs), with `--client flmnt-cli` appended so its writes are attributed to the CLI. A helper that refuses is "not configured": its reason is shown verbatim, nothing is substituted. The GraphQL endpoint of a local server comes from `local_graphql_endpoint` in the checkout's `.quorum.json` (`FILAMENT_GRAPHQL_ENDPOINT` overrides it); `flmnt setup` carries that field through. `flmnt health` names the environment it resolved and probes that server's `/health`, plus Core/Engine/proxy only when `CORE_URL` / `ENGINE_URL` / `QUORUM_PROXY_PORT` are set.
|
|
36
52
|
|
|
37
53
|
### Which workspace a command uses
|
|
38
54
|
|
|
@@ -52,8 +68,11 @@ flmnt <command> -h # detailed help for a command
|
|
|
52
68
|
|
|
53
69
|
# Authentication
|
|
54
70
|
flmnt login # authenticate via OAuth2 (browser PKCE, or --device for headless)
|
|
71
|
+
flmnt login --local # a local flmnt: derive this machine's identity, no input
|
|
55
72
|
flmnt logout # sign out and revoke local credentials
|
|
73
|
+
flmnt logout --local # end the local login
|
|
56
74
|
flmnt whoami # show your identity and which workspace is in force here
|
|
75
|
+
flmnt whoami --json [--client <tool>] # {"sub","workspace","client_id"?} for a headers-helper
|
|
57
76
|
|
|
58
77
|
# Workspaces
|
|
59
78
|
flmnt workspace list # list workspaces you own or are a member of
|
|
@@ -87,7 +106,7 @@ flmnt corpus --out training # render the DOC-NODE documents in
|
|
|
87
106
|
flmnt corpus --hook --project platform # SessionStart refresh; wired by setup --corpus-project
|
|
88
107
|
|
|
89
108
|
# Utilities
|
|
90
|
-
flmnt health #
|
|
109
|
+
flmnt health # the resolved environment + the server's /health (Core/Engine/proxy when declared)
|
|
91
110
|
flmnt gate # keyframe-recency check for the UserPromptSubmit hook
|
|
92
111
|
flmnt dashboard # open the dashboard in a browser
|
|
93
112
|
flmnt version # print the version
|