@mmmnt/flmnt 1.12.0 → 1.14.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.
Files changed (2) hide show
  1. package/README.md +5 -5
  2. package/package.json +9 -2
package/README.md CHANGED
@@ -42,13 +42,13 @@ A local flmnt mints credentials for a declared person, never for a default, and
42
42
 
43
43
  ```sh
44
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
45
+ flmnt whoami --json --client flmnt-cli # {"sub","workspace","client_id"} — the identity as one JSON object
46
+ flmnt logout --local # end a local session (the identity stays)
47
47
  ```
48
48
 
49
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
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.
51
+ Every command — `brief`, `gate`, `derive`, `record-*`, `workspace`, `sync`'s local side — authenticates from the keychain token stored under the server URL it resolves: `flmnt login` stores it for a hosted flmnt, `flmnt login --local` for the harness (the device grant as `flmnt-cli`, approved by the CLI itself over the broker's loopback admin listener). A server with no stored token is refused as ``not logged in to <server>: run `flmnt login --local --server-url <server>` `` (or `flmnt login` for a hosted one); nothing is substituted. The `.mcp.json` entry `flmnt setup` writes is url-only in both environments. 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, probes that server's `/health`, reports the local token on a loopback server, and probes Core/Engine/proxy only when `CORE_URL` / `ENGINE_URL` / `QUORUM_PROXY_PORT` are set.
52
52
 
53
53
  ### Which workspace a command uses
54
54
 
@@ -70,9 +70,9 @@ flmnt <command> -h # detailed help for a command
70
70
  flmnt login # authenticate via OAuth2 (browser PKCE, or --device for headless)
71
71
  flmnt login --local # a local flmnt: derive this machine's identity, no input
72
72
  flmnt logout # sign out and revoke local credentials
73
- flmnt logout --local # end the local login
73
+ flmnt logout --local # end a local session (the identity stays)
74
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
75
+ flmnt whoami --json [--client <tool>] # {"sub","workspace","client_id"?} as one JSON object
76
76
 
77
77
  # Workspaces
78
78
  flmnt workspace list # list workspaces you own or are a member of
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmmnt/flmnt",
3
- "version": "1.12.0",
3
+ "version": "1.14.0",
4
4
  "description": "flmnt CLI — installs the platform-native flmnt binary.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -31,7 +31,14 @@
31
31
  ],
32
32
  "scripts": {
33
33
  "postinstall": "node scripts/install.js",
34
- "test": "vitest run --passWithNoTests",
34
+ "test": "vitest run --coverage",
35
35
  "lint": "eslint \"**/*.{js,mjs,ts,tsx}\" --no-error-on-unmatched-pattern"
36
+ },
37
+ "devDependencies": {
38
+ "@eslint/js": "^10.0.0",
39
+ "@vitest/coverage-v8": "^4.1.8",
40
+ "eslint": "^10.0.0",
41
+ "globals": "^16.0.0",
42
+ "vitest": "^4.1.8"
36
43
  }
37
44
  }