@mnemonik/cli 7.131.1 → 7.132.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 (49) hide show
  1. package/dist/auth/claudeCodeSignIn.d.ts +16 -25
  2. package/dist/auth/claudeCodeSignIn.d.ts.map +1 -1
  3. package/dist/auth/claudeCodeSignIn.js +31 -29
  4. package/dist/auth/claudeCodeSignIn.js.map +1 -1
  5. package/dist/auth/codexAuthorization.d.ts +47 -0
  6. package/dist/auth/codexAuthorization.d.ts.map +1 -0
  7. package/dist/auth/codexAuthorization.js +882 -0
  8. package/dist/auth/codexAuthorization.js.map +1 -0
  9. package/dist/auth/cursorAuthorization.d.ts +47 -0
  10. package/dist/auth/cursorAuthorization.d.ts.map +1 -0
  11. package/dist/auth/cursorAuthorization.js +116 -0
  12. package/dist/auth/cursorAuthorization.js.map +1 -0
  13. package/dist/auth/status.d.ts +62 -26
  14. package/dist/auth/status.d.ts.map +1 -1
  15. package/dist/auth/status.js +37 -23
  16. package/dist/auth/status.js.map +1 -1
  17. package/dist/auth/storedAuthorization.d.ts +50 -0
  18. package/dist/auth/storedAuthorization.d.ts.map +1 -0
  19. package/dist/auth/storedAuthorization.js +24 -0
  20. package/dist/auth/storedAuthorization.js.map +1 -0
  21. package/dist/authorizationWords.d.ts +69 -0
  22. package/dist/authorizationWords.d.ts.map +1 -0
  23. package/dist/authorizationWords.js +5275 -0
  24. package/dist/authorizationWords.js.map +1 -0
  25. package/dist/digests.json +47 -31
  26. package/dist/humanReason.js +6 -6
  27. package/dist/humanReason.js.map +1 -1
  28. package/dist/install/hosts.d.ts.map +1 -1
  29. package/dist/install/hosts.js +2 -1
  30. package/dist/install/hosts.js.map +1 -1
  31. package/dist/installation.d.ts +2 -0
  32. package/dist/installation.d.ts.map +1 -1
  33. package/dist/installation.js +12 -0
  34. package/dist/installation.js.map +1 -1
  35. package/dist/output.d.ts +5 -2
  36. package/dist/output.d.ts.map +1 -1
  37. package/dist/output.js +7 -3
  38. package/dist/output.js.map +1 -1
  39. package/dist/router.d.ts +10 -10
  40. package/dist/router.d.ts.map +1 -1
  41. package/dist/router.js +137 -109
  42. package/dist/router.js.map +1 -1
  43. package/dist/sbom.json +21 -21
  44. package/dist/scanner-release.json +18 -18
  45. package/dist/status.d.ts +67 -35
  46. package/dist/status.d.ts.map +1 -1
  47. package/dist/status.js +140 -39
  48. package/dist/status.js.map +1 -1
  49. package/package.json +31 -31
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexAuthorization.js","sourceRoot":"","sources":["../../src/auth/codexAuthorization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { type StoredAuthorization } from './storedAuthorization.js';
2
+ /**
3
+ * What Cursor itself holds for Mnemonik's MCP server on this computer.
4
+ *
5
+ * Observed on 2026-10-13 with Cursor 3.21.16 on macOS (Cursor Settings,
6
+ * Customize, MCPs; Local, Authenticate and Logout), and read from its
7
+ * McpOAuthStoreMainService and cursor-mcp extension:
8
+ *
9
+ * - Cursor keeps MCP authorizations in its own settings database,
10
+ * <user data>/User/globalStorage/state.vscdb (SQLite, table ItemTable), not in
11
+ * ~/.cursor and not as Keychain items of their own. Each token set is one row,
12
+ * `mcpOAuth.secret.` + base64url(`[<identifier>] mcp_tokens`), whose value is
13
+ * encrypted with the key in the "Cursor Safe Storage" Keychain item. Authorize
14
+ * adds the row; Logout deletes it; the Keychain does not change.
15
+ * - For ~/.cursor/mcp.json the identifier is `user-mnemonik`, scoped as
16
+ * `user-mnemonik::mcpScope:profile:<base64url of the profile name>`. Cursor also
17
+ * knows `identifier:v1:`/`raw-identifier:v1:` forms of the same identifier, a
18
+ * `url:<base64url of the server URL>` form shared by URL, and an older copy in
19
+ * its extension's secret storage (`secret://` and a JSON key naming the same row).
20
+ * - The expiry is inside the encrypted value. Decrypting it would mean reading
21
+ * the Cursor Safe Storage key from the Keychain, which can prompt, so only the
22
+ * presence of the row is read: a row means Cursor holds an authorization it
23
+ * renews with its refresh token, and the server's record says whether that
24
+ * authorization is still valid.
25
+ * - Cursor holds the database open in WAL mode while it runs; it is opened read
26
+ * only, and immutable when no write-ahead log exists (Cursor is closed), so
27
+ * nothing is ever written beside it (databaseKeys).
28
+ * - When Cursor opens this computer over SSH, its authorization lives on the
29
+ * computer Cursor runs on, and this computer has none of its settings.
30
+ */
31
+ export interface CursorStoreOptions {
32
+ home: string;
33
+ platform?: NodeJS.Platform;
34
+ env?: NodeJS.ProcessEnv;
35
+ /** Lists the database's MCP authorization key names; node:sqlite, read only, by default. */
36
+ listKeys?: (database: string) => Promise<string[]>;
37
+ }
38
+ /** Cursor's own user-data folder for this platform (Electron's appData plus "Cursor"). */
39
+ export declare function cursorUserData(home: string, platform: NodeJS.Platform, env: NodeJS.ProcessEnv): string;
40
+ /** Whether one storage key name holds Mnemonik's tokens for this declaration. */
41
+ export declare function isMnemonikTokens(name: string, url: string): boolean;
42
+ /**
43
+ * Cursor's stored Mnemonik authorization on this computer, or undefined when
44
+ * Cursor has no Mnemonik HTTP declaration that authorizes with OAuth here.
45
+ */
46
+ export declare function cursorStoredAuthorization(options: CursorStoreOptions): Promise<StoredAuthorization | undefined>;
47
+ //# sourceMappingURL=cursorAuthorization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursorAuthorization.d.ts","sourceRoot":"","sources":["../../src/auth/cursorAuthorization.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACpD;AAKD,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,UAI7F;AAiBD,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAUnE;AAoED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAqC1C"}
@@ -0,0 +1,116 @@
1
+ import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
+
3
+ // packages/cli/src/auth/cursorAuthorization.ts
4
+ import { readFile, stat } from "node:fs/promises";
5
+ import { join } from "node:path";
6
+ import { pathToFileURL } from "node:url";
7
+ import {
8
+ object,
9
+ parseObject,
10
+ unreadable
11
+ } from "./storedAuthorization.js";
12
+ var IDENTIFIER = "user-mnemonik";
13
+ var TOKENS = "] mcp_tokens";
14
+ function cursorUserData(home, platform, env) {
15
+ if (platform === "darwin") return join(home, "Library", "Application Support", "Cursor");
16
+ if (platform === "win32") return join(env.APPDATA || join(home, "AppData", "Roaming"), "Cursor");
17
+ return join(env.XDG_CONFIG_HOME || join(home, ".config"), "Cursor");
18
+ }
19
+ var base64url = (text) => Buffer.from(text, "base64url").toString("utf8");
20
+ function sameServer(left, right) {
21
+ const normal = (value) => {
22
+ try {
23
+ const url = new URL(value);
24
+ return `${url.protocol}//${url.host}${url.pathname.replace(/\/+$/u, "")}${url.search}`;
25
+ } catch {
26
+ return value.replace(/\/+$/u, "");
27
+ }
28
+ };
29
+ return normal(left) === normal(right);
30
+ }
31
+ function isMnemonikTokens(name, url) {
32
+ const bare = name.replace(/^\[profile:[^\]]+\] /u, "");
33
+ if (!bare.startsWith("[") || !bare.endsWith(TOKENS)) return false;
34
+ let id = bare.slice(1, -TOKENS.length);
35
+ if (id.startsWith("identifier:v1:")) id = base64url(id.slice("identifier:v1:".length));
36
+ else if (id.startsWith("raw-identifier:v1:"))
37
+ id = base64url(id.slice("raw-identifier:v1:".length));
38
+ if (id.startsWith("url:")) return sameServer(base64url(id.slice("url:".length)), url);
39
+ return id === IDENTIFIER || id.startsWith(`${IDENTIFIER}::`);
40
+ }
41
+ function keyName(row) {
42
+ if (row.startsWith("mcpOAuth.secret.")) return base64url(row.slice("mcpOAuth.secret.".length));
43
+ if (row.startsWith("secret://")) {
44
+ const parsed = parseObject(row.slice("secret://".length));
45
+ return typeof parsed?.key === "string" ? parsed.key : void 0;
46
+ }
47
+ return void 0;
48
+ }
49
+ var SQLITE = "node:sqlite";
50
+ async function sqlite() {
51
+ const emit = process.emitWarning;
52
+ process.emitWarning = ((warning, ...rest) => {
53
+ const text = typeof warning === "string" ? warning : warning.message;
54
+ if (/sqlite/iu.test(text)) return;
55
+ emit.call(process, warning, ...rest);
56
+ });
57
+ try {
58
+ return await import(SQLITE);
59
+ } finally {
60
+ process.emitWarning = emit;
61
+ }
62
+ }
63
+ var exists = (path) => stat(path).then(
64
+ () => true,
65
+ () => false
66
+ );
67
+ async function databaseKeys(database) {
68
+ const { DatabaseSync } = await sqlite();
69
+ const url = pathToFileURL(database);
70
+ url.searchParams.set("mode", "ro");
71
+ if (!await exists(`${database}-wal`)) url.searchParams.set("immutable", "1");
72
+ const db = new DatabaseSync(url, { readOnly: true });
73
+ try {
74
+ return db.prepare(
75
+ "SELECT key FROM ItemTable WHERE key LIKE 'mcpOAuth.secret.%' OR key LIKE 'secret://%'"
76
+ ).all().map((row) => String(row.key));
77
+ } finally {
78
+ db.close();
79
+ }
80
+ }
81
+ async function cursorStoredAuthorization(options) {
82
+ const env = options.env ?? process.env;
83
+ const platform = options.platform ?? process.platform;
84
+ const raw = await readFile(join(options.home, ".cursor", "mcp.json"), "utf8").catch(
85
+ () => void 0
86
+ );
87
+ const config = raw === void 0 ? void 0 : parseObject(raw);
88
+ const declaration = object(config?.mcpServers) ? config.mcpServers.mnemonik : void 0;
89
+ if (!object(declaration) || typeof declaration.url !== "string") return void 0;
90
+ if (object(declaration.headers) && Object.keys(declaration.headers).some((name) => name.toLowerCase() === "authorization"))
91
+ return void 0;
92
+ const userData = cursorUserData(options.home, platform, env);
93
+ const database = join(userData, "User", "globalStorage", "state.vscdb");
94
+ if (!await exists(database)) {
95
+ if (await exists(userData)) return { state: "missing", expiresAt: null };
96
+ return unreadable(
97
+ await exists(join(options.home, ".cursor-server")) ? "remote" : "not_on_this_computer"
98
+ );
99
+ }
100
+ let rows;
101
+ try {
102
+ rows = await (options.listKeys ?? databaseKeys)(database);
103
+ } catch {
104
+ return unreadable("database_unreadable");
105
+ }
106
+ const url = declaration.url;
107
+ return rows.some((row) => {
108
+ const name = keyName(row);
109
+ return name !== void 0 && isMnemonikTokens(name, url);
110
+ }) ? { state: "authorized", expiresAt: null } : { state: "missing", expiresAt: null };
111
+ }
112
+ export {
113
+ cursorStoredAuthorization,
114
+ cursorUserData,
115
+ isMnemonikTokens
116
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursorAuthorization.js","sourceRoot":"","sources":["../../src/auth/cursorAuthorization.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { HostName } from '@mnemonik/shared';
2
- import type { StoredSignIn } from './claudeCodeSignIn.js';
2
+ import type { StoredAuthorization } from './storedAuthorization.js';
3
3
  export interface AccountGrant {
4
4
  deviceInstallationId?: string | null;
5
5
  id: string;
@@ -43,44 +43,80 @@ export declare const validGrant: (grant: AccountGrant) => boolean;
43
43
  * rule). How long ago it was used says nothing about whether it is valid.
44
44
  */
45
45
  export declare function signedInElsewhere(status: GrantStatus, host: HostName): boolean;
46
- export type CodingToolSignInState = 'signed_in' | 'signed_in_elsewhere' | 'signed_out' | 'not_set_up';
47
46
  /**
48
- * One coding tool's sign-in on this machine, from the server's listing of this
49
- * installation's sign-ins (`?installation=current`, revoked ones included).
50
- * Signed out only when it had sign-ins here and none of them is valid; never
51
- * because of idle time. `everywhere`, the account-wide listing, is read only
52
- * for editors that can sign in on another machine.
47
+ * A coding tool's MCP authorization on this machine as the server records it.
48
+ * `authorized_elsewhere`: valid on another of the account's computers, for the
49
+ * tools that can run there while their hooks run here (Cursor over SSH).
53
50
  */
54
- export declare function codingToolSignIn(host: HostName, here: GrantStatus, everywhere?: GrantStatus): {
55
- state: CodingToolSignInState;
51
+ export type ServerAuthorizationState = 'authorized' | 'authorized_elsewhere' | 'revoked_or_expired' | 'never_authorized';
52
+ /**
53
+ * One coding tool's MCP authorization on this machine, from the server's
54
+ * listing of this installation's grants (`?installation=current`, revoked ones
55
+ * included). Revoked or expired only when it had grants here and none of them
56
+ * is valid; never because of idle time. `everywhere`, the account-wide
57
+ * listing, is read only for tools that can run on another machine.
58
+ */
59
+ export declare function serverAuthorization(host: HostName, here: GrantStatus, everywhere?: GrantStatus): {
60
+ state: ServerAuthorizationState;
56
61
  lastUsedAt: string | null;
57
62
  };
58
- export type CodingToolSignInResult = {
59
- state: CodingToolSignInState;
63
+ /** Why the server's record could not be asked: the CLI's own sign-in (absent, or locked in the macOS Keychain), or the network. */
64
+ export type ServerProblem = 'cli_not_signed_in' | 'cli_locked' | 'unreachable';
65
+ /**
66
+ * A coding tool's MCP authorization on this computer, from both sides:
67
+ *
68
+ * - `authorized`: the server holds a valid grant and the tool's own store holds
69
+ * a usable token (or the tool keeps nothing Mnemonik reads).
70
+ * - `authorized_elsewhere`: valid on the computer the tool runs on (Cursor over SSH).
71
+ * - `not_authorized`: nothing usable here; `reason` says which side decided.
72
+ * - `store_unchecked`: the server holds a valid grant; the tool's store on this
73
+ * computer could not be read (`stored.reason` says why).
74
+ * - `server_unchecked`: the tool's store holds a usable token; the server could
75
+ * not be asked (`serverProblem` says why).
76
+ * - `unchecked`: neither side could be read.
77
+ */
78
+ export type McpState = 'authorized' | 'authorized_elsewhere' | 'not_authorized' | 'store_unchecked' | 'server_unchecked' | 'unchecked';
79
+ /**
80
+ * Why a tool is not authorized: its grant here was revoked or expired; the
81
+ * server holds a valid grant the tool no longer has (2026-10-12); or it was
82
+ * never authorized on this computer.
83
+ */
84
+ export type NotAuthorizedReason = 'revoked_or_expired' | 'not_held' | 'never_authorized';
85
+ export interface McpAuthorization {
86
+ state: McpState;
87
+ reason?: NotAuthorizedReason;
88
+ /** The server's record; `unknown` when it could not be asked. */
89
+ server: ServerAuthorizationState | 'unknown';
90
+ serverProblem?: ServerProblem;
91
+ /** What the tool itself stores here; absent when it keeps nothing Mnemonik reads. */
92
+ stored?: StoredAuthorization;
93
+ /** When the tool last renewed its grant; dates use, never decides it. */
60
94
  lastUsedAt: string | null;
61
- /** What the coding tool itself holds here; read for Claude Code only. */
62
- stored?: StoredSignIn;
63
- };
95
+ }
64
96
  /**
65
- * Claude Code's sign-in on this machine: the server's verdict, held to what
66
- * Claude Code itself stores (2026-10-12 outage). The server decides signed out
67
- * (revoked or expired grants); only the stored credential can say signed in.
68
- * Holding nothing it can use, Claude Code is signed out where the server knows
69
- * a sign-in here, otherwise not set up; holding something, it is what the server
70
- * says. A store that cannot be read, or a server that cannot, vouches for
71
- * nothing: no claim, unless the server alone already decides signed out.
97
+ * The server decides revoked or expired; only the tool's own store can say the
98
+ * tool still holds what the server lists (2026-10-12 outage). A store that
99
+ * cannot be read, or a server that cannot be asked, vouches for nothing, and
100
+ * the state says which side was not checked.
72
101
  */
73
- export declare function withStoredSignIn(server: CodingToolSignInResult | undefined, stored: StoredSignIn | undefined): CodingToolSignInResult | undefined;
102
+ export declare function mcpAuthorization(server: {
103
+ state: ServerAuthorizationState;
104
+ lastUsedAt: string | null;
105
+ } | undefined, stored: StoredAuthorization | undefined, serverProblem?: ServerProblem): McpAuthorization;
74
106
  /** "just now", "5 minutes ago", "1 hour ago", "3 days ago", or "never". */
75
107
  export declare function relativeTime(time: number | null, now: number): string;
108
+ /** The CLI's own grants carry this client name; their rows are sign-ins, not authorizations. */
109
+ export declare const CLI_CLIENT_NAME = "Mnemonik CLI";
76
110
  /**
77
- * One line per host for plain `auth status`: editors first, then the rest,
78
- * each by most recent use. Grant ids, dates and scopes are for --json.
79
- * `onThisComputer` rewrites a host's summary with what the tool itself stores here.
111
+ * One row per part for plain `auth status`, across all of the account's
112
+ * computers: coding tools' MCP connections first ("Claude Code MCP"), then the
113
+ * rest, each by most recent use; the CLI's own grants are sign-ins ("CLI").
114
+ * Grant ids, dates and scopes are for --json. `onThisComputer` adds what the
115
+ * tool itself stores on this computer to its row.
80
116
  */
81
117
  export declare function grantSummaryLines(grants: readonly (AccountGrant & {
82
118
  host: string;
83
- })[], editors: Readonly<Record<string, string>>, now?: number, onThisComputer?: Readonly<Record<string, (summary: string) => string>>): string[];
119
+ })[], tools: Readonly<Record<string, string>>, now?: number, onThisComputer?: Readonly<Record<string, (summary: string) => string>>): string[];
84
120
  export declare function grantTransport(getBearer: () => Promise<string>, fetcher?: typeof fetch): {
85
121
  /** Every machine's unrevoked sign-ins, or with `here` every sign-in on this one. */
86
122
  list(options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/auth/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/auth/status.ts"],"names":[],"mappings":"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"}
@@ -5180,27 +5180,38 @@ var elsewhereGrants = (status, host) => {
5180
5180
  function signedInElsewhere(status, host) {
5181
5181
  return elsewhereGrants(status, host).length > 0;
5182
5182
  }
5183
- function codingToolSignIn(host, here, everywhere) {
5183
+ function serverAuthorization(host, here, everywhere) {
5184
5184
  const mine = here.grants.filter(
5185
5185
  (grant) => grantHost(grant) === host && (!here.deviceInstallationId || grant.deviceInstallationId === here.deviceInstallationId)
5186
5186
  );
5187
5187
  const valid = mine.filter(validGrant);
5188
- if (valid.length) return { state: "signed_in", lastUsedAt: newest(valid) };
5188
+ if (valid.length) return { state: "authorized", lastUsedAt: newest(valid) };
5189
5189
  const remote = everywhere ? elsewhereGrants(everywhere, host) : [];
5190
- if (remote.length) return { state: "signed_in_elsewhere", lastUsedAt: newest(remote) };
5191
- return mine.some((grant) => grant.status !== "incomplete" && grant.activatedAt !== null) ? { state: "signed_out", lastUsedAt: null } : { state: "not_set_up", lastUsedAt: null };
5190
+ if (remote.length) return { state: "authorized_elsewhere", lastUsedAt: newest(remote) };
5191
+ return mine.some((grant) => grant.status !== "incomplete" && grant.activatedAt !== null) ? { state: "revoked_or_expired", lastUsedAt: null } : { state: "never_authorized", lastUsedAt: null };
5192
5192
  }
5193
- function withStoredSignIn(server, stored) {
5194
- if (!stored) return server;
5195
- if (stored.state === "missing")
5196
- return {
5197
- state: server?.state === "signed_in" || server?.state === "signed_out" ? "signed_out" : "not_set_up",
5198
- lastUsedAt: null,
5199
- stored
5200
- };
5201
- if (!server) return void 0;
5202
- if (stored.state === "unreadable" && server.state === "signed_in") return void 0;
5203
- return { ...server, stored };
5193
+ var usable = (stored) => stored?.state === "authorized" || stored?.state === "renewable";
5194
+ function mcpAuthorization(server, stored, serverProblem = "unreachable") {
5195
+ const evidence = {
5196
+ server: server?.state ?? "unknown",
5197
+ ...server ? {} : { serverProblem },
5198
+ ...stored ? { stored } : {},
5199
+ lastUsedAt: server?.lastUsedAt ?? null
5200
+ };
5201
+ const not = (reason) => ({
5202
+ state: "not_authorized",
5203
+ reason,
5204
+ ...evidence,
5205
+ lastUsedAt: null
5206
+ });
5207
+ if (server?.state === "revoked_or_expired") return not("revoked_or_expired");
5208
+ if (server?.state === "never_authorized") return not("never_authorized");
5209
+ if (stored?.state === "missing")
5210
+ return not(server?.state === "authorized" ? "not_held" : "never_authorized");
5211
+ if (!server) return { state: usable(stored) ? "server_unchecked" : "unchecked", ...evidence };
5212
+ if (server.state === "authorized_elsewhere")
5213
+ return { state: usable(stored) ? "authorized" : "authorized_elsewhere", ...evidence };
5214
+ return { state: stored?.state === "unreadable" ? "store_unchecked" : "authorized", ...evidence };
5204
5215
  }
5205
5216
  function relativeTime(time, now) {
5206
5217
  if (time === null) return "never";
@@ -5209,13 +5220,14 @@ function relativeTime(time, now) {
5209
5220
  const [count, unit] = minutes < 60 ? [minutes, "minute"] : minutes < 1440 ? [Math.floor(minutes / 60), "hour"] : [Math.floor(minutes / 1440), "day"];
5210
5221
  return `${count} ${unit}${count === 1 ? "" : "s"} ago`;
5211
5222
  }
5212
- function grantSummaryLines(grants, editors, now = Date.now(), onThisComputer = {}) {
5223
+ var CLI_CLIENT_NAME = "Mnemonik CLI";
5224
+ function grantSummaryLines(grants, tools, now = Date.now(), onThisComputer = {}) {
5213
5225
  const rows = /* @__PURE__ */ new Map();
5214
5226
  for (const grant of grants) {
5215
5227
  const row = rows.get(grant.host) ?? {
5216
5228
  host: grant.host,
5217
- name: editors[grant.host] ?? grant.host,
5218
- editor: grant.host in editors,
5229
+ name: grant.host in tools ? `${tools[grant.host]} MCP` : grant.host === CLI_CLIENT_NAME ? "CLI" : grant.host,
5230
+ tool: grant.host in tools,
5219
5231
  last: null,
5220
5232
  count: 0
5221
5233
  };
@@ -5225,11 +5237,12 @@ function grantSummaryLines(grants, editors, now = Date.now(), onThisComputer = {
5225
5237
  rows.set(grant.host, row);
5226
5238
  }
5227
5239
  const ordered = [...rows.values()].sort(
5228
- (a, b) => Number(b.editor) - Number(a.editor) || (b.last ?? 0) - (a.last ?? 0)
5240
+ (a, b) => Number(b.tool) - Number(a.tool) || (b.last ?? 0) - (a.last ?? 0)
5229
5241
  );
5230
5242
  const width = Math.max(...ordered.map((row) => row.name.length)) + 2;
5231
5243
  return ordered.map((row) => {
5232
- const summary = `signed in, last used ${relativeTime(row.last, now)} (${row.count} sign-in${row.count === 1 ? "" : "s"})`;
5244
+ const [state, noun] = row.host === CLI_CLIENT_NAME ? ["signed in", "sign-in"] : ["authorized", "authorization"];
5245
+ const summary = `${state}, last used ${relativeTime(row.last, now)} (${row.count} ${noun}${row.count === 1 ? "" : "s"})`;
5233
5246
  return `${row.name.padEnd(width)}${onThisComputer[row.host]?.(summary) ?? summary}`;
5234
5247
  });
5235
5248
  }
@@ -5266,12 +5279,13 @@ function grantTransport(getBearer, fetcher = fetch) {
5266
5279
  };
5267
5280
  }
5268
5281
  export {
5269
- codingToolSignIn,
5282
+ CLI_CLIENT_NAME,
5270
5283
  grantHost,
5271
5284
  grantSummaryLines,
5272
5285
  grantTransport,
5286
+ mcpAuthorization,
5273
5287
  relativeTime,
5288
+ serverAuthorization,
5274
5289
  signedInElsewhere,
5275
- validGrant,
5276
- withStoredSignIn
5290
+ validGrant
5277
5291
  };
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/auth/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/auth/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * What a coding tool itself keeps on this computer for Mnemonik's MCP server,
3
+ * read the way the tool reads it, by key names, presence and expiry only.
4
+ * Token values are never returned, printed or logged, and a parse error (whose
5
+ * message can quote the input) is never passed on.
6
+ *
7
+ * - `authorized`: an access token that has not expired, or (Cursor, whose
8
+ * tokens are encrypted) a stored token whose expiry cannot be read.
9
+ * - `renewable`: the access token has expired or is gone, and the tool renews
10
+ * it with its refresh token the next time it connects.
11
+ * - `missing`: nothing the tool can use; it asks for authorization again.
12
+ * - `unreadable`: the store could not be read; `reason` says why.
13
+ */
14
+ export type StoredState = 'authorized' | 'renewable' | 'missing' | 'unreadable';
15
+ /** Why a tool's store could not be read on this computer. */
16
+ export type UnreadableReason =
17
+ /** macOS Keychain locked with no way to ask for it in this session (exit 36: over SSH). */
18
+ 'keychain_locked'
19
+ /** macOS Keychain answered with anything else, or not at all. */
20
+ | 'keychain_unreadable'
21
+ /** The tool keeps it in Windows Credential Manager (Claude Code when told to; Codex's keyring). */
22
+ | 'credential_manager'
23
+ /** Codex keeps its MCP authorizations in the macOS Keychain (its keyring on macOS). */
24
+ | 'macos_keychain'
25
+ /** Codex keeps them in a Secret Service keyring (its keyring on Linux). */
26
+ | 'system_keyring'
27
+ /** CLAUDE_CONFIG_DIR or CLAUDE_SECURESTORAGE_CONFIG_DIR moves Claude Code's files. */
28
+ | 'custom_folder'
29
+ /** The tool's credentials file exists but could not be read or parsed. */
30
+ | 'file_unreadable'
31
+ /** Cursor's settings database could not be read. */
32
+ | 'database_unreadable'
33
+ /** Cursor runs on another computer and opens this one remotely; its store is there. */
34
+ | 'remote'
35
+ /** The tool's own settings are not on this computer. */
36
+ | 'not_on_this_computer';
37
+ export interface StoredAuthorization {
38
+ state: StoredState;
39
+ /** When the stored access token expires or expired; null when unknown or unreadable. */
40
+ expiresAt: string | null;
41
+ /** Present when `state` is `unreadable`. */
42
+ reason?: UnreadableReason;
43
+ }
44
+ export declare const object: (value: unknown) => value is Record<string, unknown>;
45
+ /** A non-empty string after trimming, the test each tool applies to a token field. */
46
+ export declare const present: (value: unknown) => boolean;
47
+ /** JSON text as an object, or undefined; the parse error is dropped because it can quote the input. */
48
+ export declare function parseObject(text: string): Record<string, unknown> | undefined;
49
+ export declare const unreadable: (reason: UnreadableReason) => StoredAuthorization;
50
+ //# sourceMappingURL=storedAuthorization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storedAuthorization.d.ts","sourceRoot":"","sources":["../../src/auth/storedAuthorization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;AAEhF,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB;AAC1B,2FAA2F;AACzF,iBAAiB;AACnB,iEAAiE;GAC/D,qBAAqB;AACvB,mGAAmG;GACjG,oBAAoB;AACtB,uFAAuF;GACrF,gBAAgB;AAClB,2EAA2E;GACzE,gBAAgB;AAClB,sFAAsF;GACpF,eAAe;AACjB,0EAA0E;GACxE,iBAAiB;AACnB,oDAAoD;GAClD,qBAAqB;AACvB,uFAAuF;GACrF,QAAQ;AACV,wDAAwD;GACtD,sBAAsB,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,UAAW,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CACR,CAAC;AAEhE,sFAAsF;AACtF,eAAO,MAAM,OAAO,UAAW,OAAO,KAAG,OACa,CAAC;AAEvD,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAO7E;AAED,eAAO,MAAM,UAAU,WAAY,gBAAgB,KAAG,mBAIpD,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
+
3
+ // packages/cli/src/auth/storedAuthorization.ts
4
+ var object = (value) => !!value && typeof value === "object" && !Array.isArray(value);
5
+ var present = (value) => typeof value === "string" && value.trim().length > 0;
6
+ function parseObject(text) {
7
+ try {
8
+ const value = JSON.parse(text);
9
+ return object(value) ? value : void 0;
10
+ } catch {
11
+ return void 0;
12
+ }
13
+ }
14
+ var unreadable = (reason) => ({
15
+ state: "unreadable",
16
+ expiresAt: null,
17
+ reason
18
+ });
19
+ export {
20
+ object,
21
+ parseObject,
22
+ present,
23
+ unreadable
24
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storedAuthorization.js","sourceRoot":"","sources":["../../src/auth/storedAuthorization.ts"],"names":[],"mappings":"AA8CA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAoC,EAAE,CACzE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEhE,sFAAsF;AACtF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAW,EAAE,CACjD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAEvD,uGAAuG;AACvG,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAuB,EAAE,CAAC,CAAC;IAC5E,KAAK,EAAE,YAAY;IACnB,SAAS,EAAE,IAAI;IACf,MAAM;CACP,CAAC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import type { McpAuthorization } from './auth/status.js';
2
+ import type { StoredAuthorization, UnreadableReason } from './auth/storedAuthorization.js';
3
+ /**
4
+ * The words for each separately authorized part of Mnemonik on a computer, so
5
+ * `status`, `connect` and `auth status` name the same part the same way:
6
+ *
7
+ * - "<Tool> MCP": the MCP connection inside the coding tool, authorized in the
8
+ * tool itself (Claude Code: /mcp; Codex: codex mcp login; Cursor: Settings, MCPs).
9
+ * - "<Tool> hooks": the hooks the installer set up, with an authorization of their own.
10
+ * - "Scanner": background indexing, with an authorization of its own.
11
+ * - "CLI": the mnemonik command's own sign-in.
12
+ *
13
+ * Each line says the state, and when something was not checked, what was not
14
+ * and why, in words a person can act on.
15
+ */
16
+ /** How the person authorizes a tool's MCP connection: the step inside the tool, or the command. */
17
+ export declare function authorizeStep(host: string): string;
18
+ /** Why a tool's own store could not be read, said after "because". */
19
+ export declare function unreadableBecause(tool: string, reason: UnreadableReason | undefined): string;
20
+ /**
21
+ * What a tool's own store on this computer adds to the server's record, as
22
+ * whole sentences: nothing when it holds a usable authorization, or keeps
23
+ * nothing Mnemonik reads.
24
+ */
25
+ export declare function storeNote(tool: string, stored: StoredAuthorization | undefined): string;
26
+ /**
27
+ * One coding tool's MCP authorization, as the line `status` and `connect`
28
+ * print. A tool never authorized here carries its step unless `step` is false
29
+ * (connect prints the steps below it); one whose authorization ended has its
30
+ * step in the installation's attention lines.
31
+ */
32
+ export declare function mcpLine(tool: string, host: string, mcp: McpAuthorization, step?: boolean): string;
33
+ /** The reason of the installation's attention line for a tool whose MCP authorization ended. */
34
+ export declare const mcpNotAuthorizedReason: (tool: string) => string;
35
+ /**
36
+ * The hooks' authorization on this computer: their own credential stored here
37
+ * (not expired), their declaration in the tool's settings, and for Codex its
38
+ * trust in them. The server's record of it is not asked.
39
+ */
40
+ export type HooksState = 'authorized' | 'trust_pending' | 'not_authorized' | 'not_installed' | 'unchecked';
41
+ /** The reason of the installation's attention line for hooks whose own authorization is gone. */
42
+ export declare const hooksNotAuthorizedReason: (tool: string) => string;
43
+ /**
44
+ * One coding tool's hooks, as the line `status` prints. `stepped`: the
45
+ * installation's attention lines already give the step, so the line says only
46
+ * what is wrong.
47
+ */
48
+ export declare function hooksLine(tool: string, state: HooksState, stepped: boolean): string;
49
+ /**
50
+ * Background indexing's own authorization: its credential stored here (not
51
+ * expired) and no refusal reported by the running scanner.
52
+ */
53
+ export type ScannerAuthorizationState = 'authorized' | 'refused' | 'not_authorized' | 'unchecked' | 'not_set_up';
54
+ export declare function scannerLine(state: ScannerAuthorizationState, stepped: boolean): string;
55
+ /** The CLI's own sign-in on this computer. */
56
+ export type CliSignIn = {
57
+ state: 'signed_in';
58
+ email: string | null;
59
+ } | {
60
+ state: 'unconfirmed';
61
+ } | {
62
+ state: 'not_signed_in';
63
+ } | {
64
+ state: 'signed_out';
65
+ } | {
66
+ state: 'locked';
67
+ };
68
+ export declare function cliLine(cli: CliSignIn): string;
69
+ //# sourceMappingURL=authorizationWords.d.ts.map