@mnemonik/cli 7.111.2 → 7.111.4

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.
@@ -9,8 +9,20 @@ export interface AccountGrant {
9
9
  resource: string;
10
10
  createdAt: string;
11
11
  activatedAt: string | null;
12
- /** Refresh-family activity; the server does not yet record each authenticated MCP request. */
12
+ /**
13
+ * When the coding tool last renewed this sign-in (about once an hour while it
14
+ * is in use); the server does not record each MCP request. Dates use only.
15
+ */
13
16
  lastUsedAt: string | null;
17
+ /** When the sign-in's refresh token expires; absent from older servers. */
18
+ expiresAt?: string | null;
19
+ /** The coding tool, by the shared mapping; absent from older servers. */
20
+ host?: string | null;
21
+ /**
22
+ * The console's validity rule, decided by the server: `connected` is a
23
+ * valid sign-in. Absent from older servers, which listed only unrevoked ones.
24
+ */
25
+ status?: 'connected' | 'disconnected' | 'expired' | 'incomplete';
14
26
  }
15
27
  export interface GrantStatus {
16
28
  deviceInstallationId?: string | null;
@@ -19,18 +31,29 @@ export interface GrantStatus {
19
31
  email?: string;
20
32
  grants: AccountGrant[];
21
33
  }
22
- export declare const grantHost: (grant: AccountGrant) => HostName;
23
- /** How recently a sign-in on another machine must have been used to count here. */
24
- export declare const SIGNED_IN_ELSEWHERE_WITHIN_MS: number;
34
+ export declare const grantHost: (grant: AccountGrant) => HostName | undefined;
35
+ /** A sign-in that works: the server's status, or activated on a server too old to say. */
36
+ export declare const validGrant: (grant: AccountGrant) => boolean;
25
37
  /**
26
38
  * An editor that opens this machine remotely (Cursor on a Mac over SSH) signs in
27
- * where it runs, while its hooks run here. A sign-in for the host on another of
28
- * the account's installations, activated and used within the last day, is that
29
- * editor's sign-in, for the editors above only (L-182; the server's
30
- * computeMachineHealth reads the same rule).
31
- * The listing already leaves out revoked grants.
39
+ * where it runs, while its hooks run here. A valid sign-in for the host on
40
+ * another of the account's installations is that editor's sign-in, for the
41
+ * editors above only (L-182; the server's computeMachineHealth reads the same
42
+ * rule). How long ago it was used says nothing about whether it is valid.
32
43
  */
33
- export declare function signedInElsewhere(status: GrantStatus, host: HostName, now?: number): boolean;
44
+ export declare function signedInElsewhere(status: GrantStatus, host: HostName): boolean;
45
+ export type CodingToolSignInState = 'signed_in' | 'signed_in_elsewhere' | 'signed_out' | 'not_set_up';
46
+ /**
47
+ * One coding tool's sign-in on this machine, from the server's listing of this
48
+ * installation's sign-ins (`?installation=current`, revoked ones included).
49
+ * Signed out only when it had sign-ins here and none of them is valid; never
50
+ * because of idle time. `everywhere`, the account-wide listing, is read only
51
+ * for editors that can sign in on another machine.
52
+ */
53
+ export declare function codingToolSignIn(host: HostName, here: GrantStatus, everywhere?: GrantStatus): {
54
+ state: CodingToolSignInState;
55
+ lastUsedAt: string | null;
56
+ };
34
57
  /** "just now", "5 minutes ago", "1 hour ago", "3 days ago", or "never". */
35
58
  export declare function relativeTime(time: number | null, now: number): string;
36
59
  /**
@@ -41,7 +64,10 @@ export declare function grantSummaryLines(grants: readonly (AccountGrant & {
41
64
  host: string;
42
65
  })[], editors: Readonly<Record<string, string>>, now?: number): string[];
43
66
  export declare function grantTransport(getBearer: () => Promise<string>, fetcher?: typeof fetch): {
44
- list(): Promise<GrantStatus>;
67
+ /** Every machine's unrevoked sign-ins, or with `here` every sign-in on this one. */
68
+ list(options?: {
69
+ here?: boolean;
70
+ }): Promise<GrantStatus>;
45
71
  revoke(id: string): Promise<void>;
46
72
  };
47
73
  export type GrantTransport = ReturnType<typeof grantTransport>;
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/auth/status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8FAA8F;IAC9F,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AACD,MAAM,WAAW,WAAW;IAC1B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAcD,eAAO,MAAM,SAAS,UAAW,YAAY,aAK1C,CAAC;AASJ,mFAAmF;AACnF,eAAO,MAAM,6BAA6B,QAAsB,CAAC;AAEjE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAa,WAetF;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAWrE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,CAAC,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,EACpD,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzC,GAAG,SAAa,GACf,MAAM,EAAE,CAyBV;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,GAAE,OAAO,KAAa;IAcpF,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IA0B5B,MAAM,KAAK,MAAM;EAI1B;AACD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/auth/status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,GAAG,YAAY,CAAC;CAClE;AACD,MAAM,WAAW,WAAW;IAC1B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,SAAS,UAAW,YAAY,KAAG,QAAQ,GAAG,SAAsC,CAAC;AAElG,0FAA0F;AAC1F,eAAO,MAAM,UAAU,UAAW,YAAY,KAAG,OACyB,CAAC;AA4B3E;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,WAEpE;AAED,MAAM,MAAM,qBAAqB,GAC/B,WAAW,GAAG,qBAAqB,GAAG,YAAY,GAAG,YAAY,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,WAAW,EACjB,UAAU,CAAC,EAAE,WAAW,GACvB;IAAE,KAAK,EAAE,qBAAqB,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAe7D;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAWrE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,CAAC,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,EACpD,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzC,GAAG,SAAa,GACf,MAAM,EAAE,CAyBV;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,GAAE,OAAO,KAAa;IAc1F,oFAAoF;IAC9E,IAAI,WAAU;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAQ,OAAO,CAAC,WAAW,CAAC;IA8B5D,MAAM,KAAK,MAAM;EAI1B;AACD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -4683,8 +4683,8 @@ function apiOrigin(env = process.env) {
4683
4683
  return new URL(env.MNEMONIK_API_RESOURCE || "https://api.mnemonik.dev").origin;
4684
4684
  }
4685
4685
 
4686
- // packages/cli/src/auth/status.ts
4687
- var hosts = {
4686
+ // packages/shared/dist/grantHost.js
4687
+ var BY_NAME = {
4688
4688
  "claude code": "claude-code",
4689
4689
  "claude-code": "claude-code",
4690
4690
  codex: "codex",
@@ -4696,14 +4696,37 @@ var hosts = {
4696
4696
  "vs code copilot": "vscode-copilot",
4697
4697
  "vscode-copilot": "vscode-copilot"
4698
4698
  };
4699
- var grantHost = (grant) => hosts[grant.softwareId?.toLowerCase() ?? ""] ?? hosts[grant.clientName?.toLowerCase() ?? ""] ?? { "claude.ai": "claude-code", "chatgpt.com": "codex" }[URL.parse(grant.clientId)?.hostname ?? ""];
4699
+ var BY_CLIENT_HOST = {
4700
+ "claude.ai": "claude-code",
4701
+ "chatgpt.com": "codex"
4702
+ };
4703
+ function hostForGrantClient(client) {
4704
+ return BY_NAME[client.softwareId?.toLowerCase() ?? ""] ?? BY_NAME[client.clientName?.toLowerCase() ?? ""] ?? BY_CLIENT_HOST[URL.canParse(client.clientId) ? new URL(client.clientId).hostname : ""];
4705
+ }
4706
+
4707
+ // packages/cli/src/auth/status.ts
4708
+ var grantHost = (grant) => hostForGrantClient(grant);
4709
+ var validGrant = (grant) => grant.status ? grant.status === "connected" : grant.activatedAt !== null;
4700
4710
  var REMOTE_EDITOR_HOSTS = /* @__PURE__ */ new Set(["cursor", "vscode-copilot"]);
4701
- var SIGNED_IN_ELSEWHERE_WITHIN_MS = 24 * 60 * 60 * 1e3;
4702
- function signedInElsewhere(status, host, now = Date.now()) {
4711
+ var newest = (grants) => grants.map((grant) => grant.lastUsedAt).filter((at) => !!at).sort((a, b) => Date.parse(b) - Date.parse(a))[0] ?? null;
4712
+ var elsewhereGrants = (status, host) => {
4703
4713
  const here = status.deviceInstallationId;
4704
- return REMOTE_EDITOR_HOSTS.has(host) && !!here && status.grants.some(
4705
- (grant) => grantHost(grant) === host && grant.activatedAt !== null && !!grant.deviceInstallationId && grant.deviceInstallationId !== here && grant.lastUsedAt !== null && now - Date.parse(grant.lastUsedAt) <= SIGNED_IN_ELSEWHERE_WITHIN_MS
4714
+ return REMOTE_EDITOR_HOSTS.has(host) && here ? status.grants.filter(
4715
+ (grant) => grantHost(grant) === host && validGrant(grant) && !!grant.deviceInstallationId && grant.deviceInstallationId !== here
4716
+ ) : [];
4717
+ };
4718
+ function signedInElsewhere(status, host) {
4719
+ return elsewhereGrants(status, host).length > 0;
4720
+ }
4721
+ function codingToolSignIn(host, here, everywhere) {
4722
+ const mine = here.grants.filter(
4723
+ (grant) => grantHost(grant) === host && (!here.deviceInstallationId || grant.deviceInstallationId === here.deviceInstallationId)
4706
4724
  );
4725
+ const valid = mine.filter(validGrant);
4726
+ if (valid.length) return { state: "signed_in", lastUsedAt: newest(valid) };
4727
+ const remote = everywhere ? elsewhereGrants(everywhere, host) : [];
4728
+ if (remote.length) return { state: "signed_in_elsewhere", lastUsedAt: newest(remote) };
4729
+ return mine.some((grant) => grant.status !== "incomplete" && grant.activatedAt !== null) ? { state: "signed_out", lastUsedAt: null } : { state: "not_set_up", lastUsedAt: null };
4707
4730
  }
4708
4731
  function relativeTime(time, now) {
4709
4732
  if (time === null) return "never";
@@ -4748,12 +4771,15 @@ function grantTransport(getBearer, fetcher = fetch) {
4748
4771
  return response.json();
4749
4772
  }
4750
4773
  return {
4751
- async list() {
4752
- const body2 = await request("/api/v1/auth/grants");
4774
+ /** Every machine's unrevoked sign-ins, or with `here` every sign-in on this one. */
4775
+ async list(options = {}) {
4776
+ const body2 = await request(
4777
+ options.here ? "/api/v1/auth/grants?installation=current" : "/api/v1/auth/grants"
4778
+ );
4753
4779
  if (!body2 || typeof body2.account !== "string" || !body2.account || body2.deviceInstallationId != null && typeof body2.deviceInstallationId !== "string" || !Array.isArray(body2.grants) || body2.grants.some(
4754
4780
  (g) => !g || typeof g.id !== "string" || typeof g.clientId !== "string" || typeof g.resource !== "string" || g.deviceInstallationId != null && typeof g.deviceInstallationId !== "string" || !Array.isArray(g.scopes) || !g.scopes.every((s) => typeof s === "string") || !Number.isFinite(Date.parse(g.createdAt)) || ![g.clientName, g.softwareId, g.activatedAt, g.lastUsedAt].every(
4755
4781
  (v) => v === null || typeof v === "string"
4756
- )
4782
+ ) || g.status !== void 0 && !["connected", "disconnected", "expired", "incomplete"].includes(g.status)
4757
4783
  ))
4758
4784
  throw new Error("invalid_grant_status");
4759
4785
  return body2;
@@ -4764,10 +4790,11 @@ function grantTransport(getBearer, fetcher = fetch) {
4764
4790
  };
4765
4791
  }
4766
4792
  export {
4767
- SIGNED_IN_ELSEWHERE_WITHIN_MS,
4793
+ codingToolSignIn,
4768
4794
  grantHost,
4769
4795
  grantSummaryLines,
4770
4796
  grantTransport,
4771
4797
  relativeTime,
4772
- signedInElsewhere
4798
+ signedInElsewhere,
4799
+ validGrant
4773
4800
  };
@@ -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":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAmCjE,+FAA+F;AAC/F,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAwB,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAElG,0FAA0F;AAC1F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAmB,EAAW,EAAE,CACzD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;AAE3E;;;;GAIG;AACH,MAAM,mBAAmB,GAA0B,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAEzF,MAAM,MAAM,GAAG,CAAC,MAA+B,EAAE,EAAE,CACjD,MAAM;KACH,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;KAChC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAE9D,MAAM,eAAe,GAAG,CAAC,MAAmB,EAAE,IAAc,EAAE,EAAE;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC;IACzC,OAAO,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;QAC1C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAClB,CAAC,KAAK,EAAE,EAAE,CACR,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI;YACzB,UAAU,CAAC,KAAK,CAAC;YACjB,CAAC,CAAC,KAAK,CAAC,oBAAoB;YAC5B,KAAK,CAAC,oBAAoB,KAAK,IAAI,CACtC;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,IAAc;IACnE,OAAO,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAClD,CAAC;AAKD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAc,EACd,IAAiB,EACjB,UAAwB;IAExB,8EAA8E;IAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAC7B,CAAC,KAAK,EAAE,EAAE,CACR,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI;QACzB,CAAC,CAAC,IAAI,CAAC,oBAAoB,IAAI,KAAK,CAAC,oBAAoB,KAAK,IAAI,CAAC,oBAAoB,CAAC,CAC3F,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3E,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACvF,8EAA8E;IAC9E,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;QACtF,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;QAC3C,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,YAAY,CAAC,IAAmB,EAAE,GAAW;IAC3D,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IAClD,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GACjB,OAAO,GAAG,EAAE;QACV,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC;QACrB,CAAC,CAAC,OAAO,GAAG,KAAK;YACf,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC;YACpC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAoD,EACpD,OAAyC,EACzC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAEhB,MAAM,IAAI,GAAG,IAAI,GAAG,EAGjB,CAAC;IACJ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;YAClC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI;YACvC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO;YAC7B,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,CAAC;SACT,CAAC;QACF,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAC7E,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAC/E,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACrE,OAAO,OAAO,CAAC,GAAG,CAChB,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,WAAW,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CACrI,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAgC,EAAE,OAAO,GAAiB,KAAK;IAC5F,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,MAAM,GAAG,KAAK;QACjD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YACtD,MAAM;YACN,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,SAAS,EAAE,EAAE,EAAE;SAC1D,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAA8B,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,sBAAsB,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAsB,CAAC;IAC7C,CAAC;IACD,OAAO;QACL,oFAAoF;QACpF,KAAK,CAAC,IAAI,CAAC,OAAO,GAAuB,EAAE;YACzC,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,qBAAqB,CAClF,CAAgB,CAAC;YAClB,IACE,CAAC,IAAI;gBACL,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAChC,CAAC,IAAI,CAAC,OAAO;gBACb,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,oBAAoB,KAAK,QAAQ,CAAC;gBACpF,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC;oBACF,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;oBACxB,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;oBAC9B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;oBAC9B,CAAC,CAAC,CAAC,oBAAoB,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,oBAAoB,KAAK,QAAQ,CAAC;oBAC9E,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;oBACxB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBAC7C,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACzC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAC3C;oBACD,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS;wBACrB,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAChF;gBAED,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,EAAU;YACrB,MAAM,OAAO,CAAC,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChF,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/digests.json CHANGED
@@ -51,20 +51,20 @@
51
51
  "dist/project.d.ts.map": "9a845ded7332744a1d4752652657488f3a706e89d745742817086d8759a87b84",
52
52
  "dist/project.js": "cbb324abfa69c7e03c29abc628370259abe94fa7f3b5b6b936ad25744f308f3b",
53
53
  "dist/project.js.map": "18be2461ebf116f5c4a0897ddaebb59885fc7752107e7742471a8bbedd6053aa",
54
- "dist/router.d.ts": "57cf83689d2f8ebc41dc4f34679f3de51ba6e210fdc1ee920823e7974a5c69d9",
55
- "dist/router.d.ts.map": "460d4d51faac0b81495f0862f4b6eced09e93ca8b3ec418cd7468035e232e1f6",
56
- "dist/router.js": "0b13629c304d836a5f22bd1a02f01aa3ab3a7234f3efa3f5507cb29a0c5428d1",
57
- "dist/router.js.map": "aa4ebc12f7f656fb62ac7d5719ace436232db642f4a396b2c605bb2834812f82",
58
- "dist/sbom.json": "3192c17a2323ab46d1e0953264fefdcddc0fea2e264407b26d342428334dbcce",
59
- "dist/scanner-release.json": "4ae1f618d65250740b6340def0e7f700749c3c5b2f402f24666b15e0dafc6bec",
54
+ "dist/router.d.ts": "f69a88d25aa5b6f2c18f9d397e5642ae8125f07d5e32bc2773c12b2391d2b5b0",
55
+ "dist/router.d.ts.map": "e4eab25d0b76bf63e4f67ff45b5dbc1c475fc9cef3c2942db917c9f26f85852b",
56
+ "dist/router.js": "23b303f4aa096472139403f226f0babd1f2491052fb2d242af735c2765e3be1d",
57
+ "dist/router.js.map": "b4646fae412a6218fe897030a5d90b5a1d2476450fc4589e45b859f22c39c3a3",
58
+ "dist/sbom.json": "6af7f4e98a045357d9427380a6d0e6f2ccfd72008d1b2c132f86fed0da5e8739",
59
+ "dist/scanner-release.json": "da62dc7f8fab683be0db53c4f65b85df97f6ad86df6d0e5e059cec7142f7755d",
60
60
  "dist/screens.d.ts": "365071231380d4e1513575d6c5196976195836b2983027f626d61ea2951b4cdd",
61
61
  "dist/screens.d.ts.map": "f905a74cd814586a12569acedf95b7375f72179ad979f5a6eea6aedc7c8291c3",
62
62
  "dist/screens.js": "c4b8e563b6268552e97780460f46fd860c5a323f32df59290615f54ec7e84443",
63
63
  "dist/screens.js.map": "92c71902f4eb8086ce0337cadf4ca169eb0377b844b6978b41a55220ffdafb00",
64
- "dist/status.d.ts": "808106fe46157009bdaf589803497eb25df36cd900d70e5fe6ece41d6de9bda2",
65
- "dist/status.d.ts.map": "9f310204c9281b652b6edd37e644e12969431a280228dc21fa51dd8dc099ed2f",
66
- "dist/status.js": "c7324c2d1bd457d3f3a16a4d827a539640a4c370ede3d566b1eccef8f6b3987c",
67
- "dist/status.js.map": "9496f3db1bb51ce99658c6a748cb176613b28dc220c608c4a9c8f9f41cbcc035",
64
+ "dist/status.d.ts": "8411210db130f581dd5a60da97a5e1c18ae3f5e6a1e7de77133bcb05add3d5ed",
65
+ "dist/status.d.ts.map": "ff1c77904d8d426e419eaab7c86845b5736a8a5daacf3bfb175983f669253c9b",
66
+ "dist/status.js": "fdbb052d5b2a9235ef4aef915fd0a1ef60ac47949ec0c038ae58650bb6842cd7",
67
+ "dist/status.js.map": "5d84737be8a198ea9e4fff2053bd600606f422041194d2f20e39a1ddd41a3ea0",
68
68
  "dist/auth/credentials.d.ts": "7401116a8cc2d40281073796097dfd66e99a8f9090103cbf96f2370153d447bd",
69
69
  "dist/auth/credentials.d.ts.map": "a9f8b62a688a9dc40c0c330d1dd88c94c4294f1a951e0579d555949e1dc06cdf",
70
70
  "dist/auth/credentials.js": "585365ab6f4ac36f0b75747db8e8fd32f68f742ab82c650a2706c716abb03925",
@@ -89,10 +89,10 @@
89
89
  "dist/auth/pkce.d.ts.map": "3fba695c28a087a3675ccd64e8d0c450086162df62d8d1e31629157b8776e8e9",
90
90
  "dist/auth/pkce.js": "35cbb229e0cf4370040b67b06d2b7d7aefb24be1acdbed1ad65c9f2b8a05b26f",
91
91
  "dist/auth/pkce.js.map": "a926f8d197dfcffa0865fccff82f3dff446b32b2066bd34c05726ad4b6853996",
92
- "dist/auth/status.d.ts": "8ea55476e8ebe6282af203fd6d0735cff6efd38c1a46238fe5af0968e3e870fc",
93
- "dist/auth/status.d.ts.map": "de10162ee87747f764f7f24ac41d3e2db2f2eb11e6d37963a81423ace5ed37c3",
94
- "dist/auth/status.js": "f7a38afe65a655ec3566914a121d9cf0c427c9752db120c24d621fcff140cd0c",
95
- "dist/auth/status.js.map": "ebe36d4d18b157c3f0a25dbd56192460d30cb5e931d332ad105e223ced251b82",
92
+ "dist/auth/status.d.ts": "d64b29231cd09b80119c6d95408e206e5649c8f77a1fe29a5bbb841973ec955a",
93
+ "dist/auth/status.d.ts.map": "4beb3d419db8620fa22d655e349302764635ab81d992acec284f3834a93a45b6",
94
+ "dist/auth/status.js": "91af230c7517f06fcb3741fda88ef3d6dbb3c24ea42232edb47a565838dacb9c",
95
+ "dist/auth/status.js.map": "20aab010ca552302109327db7a2dac16331ac59c534f7a8278eb4b5a5a7bc7d2",
96
96
  "dist/identity/migrate.d.ts": "7493955bc95dd1876cef60481bda4808af7be2a9ccfc4cc02831e41043b16c29",
97
97
  "dist/identity/migrate.d.ts.map": "0d3a9da77695c3f39e3c98fcc6089c62bb0518a75f2bde72948cd3d20712b2bf",
98
98
  "dist/identity/migrate.js": "0f47c7929b6700abd1c453be7f312553a0fff7badfbd0f2ac54785b73b76d3aa",
package/dist/router.d.ts CHANGED
@@ -31,6 +31,10 @@ export declare const identityFileKeptLine = "This folder's .mnemonik.json still
31
31
  export declare const CODEX_SIGNED_IN_MESSAGE = "Codex is signed in to Mnemonik.";
32
32
  /** An editor signed in on another of the person's machines (L-182). */
33
33
  export declare const signedInElsewhereMessage: (editor: string) => string;
34
+ /** A coding tool with a valid sign-in on this machine; `mnemonik connect` has nothing to do. */
35
+ export declare const alreadySignedInMessage: (editor: string, lastUsedAt: string | null) => string;
36
+ /** For the agent running `connect --json`: what to do with the link it was given. */
37
+ export declare const SIGN_IN_LINK_REASON = "Give this link to the person to approve the Codex sign-in. This command finishes when they do.";
34
38
  export declare const CONNECT_NOT_APPROVED_MESSAGE = "Sign-in timed out. Run mnemonik connect codex to try again.";
35
39
  export declare function maintenanceExitCode(results: readonly Pick<HostResult, 'status'>[]): number;
36
40
  export declare const help: string;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
package/dist/router.js CHANGED
@@ -7182,7 +7182,14 @@ import {
7182
7182
  } from "./project.js";
7183
7183
  import { evaluateRoot } from "./project/eligibility.js";
7184
7184
  import { accountActions } from "./transport/server.js";
7185
- import { grantTransport, grantHost, grantSummaryLines, signedInElsewhere } from "./auth/status.js";
7185
+ import {
7186
+ codingToolSignIn,
7187
+ grantTransport,
7188
+ grantHost,
7189
+ grantSummaryLines,
7190
+ relativeTime,
7191
+ validGrant
7192
+ } from "./auth/status.js";
7186
7193
  import { createCliAuth } from "./auth/index.js";
7187
7194
  import { runEditorLogin } from "./auth/pkce.js";
7188
7195
  import { currentInstallSession, ensureInstallSession } from "./auth/installSession.js";
@@ -7196,7 +7203,10 @@ import {
7196
7203
  import { chooseHostProfile, simulatedInstall, terminalInstallUI } from "./install/ui.js";
7197
7204
  import {
7198
7205
  CODEX_TRUST_MESSAGE,
7206
+ codingToolLines,
7207
+ codingToolStatuses,
7199
7208
  collectStatusDocument,
7209
+ installedCodingTools,
7200
7210
  localEditorStatus,
7201
7211
  localInstallationConditions,
7202
7212
  mcpTurnOnAction,
@@ -7204,7 +7214,8 @@ import {
7204
7214
  renderRefusals,
7205
7215
  REPORT_NOT_SENT,
7206
7216
  renderScannerFailure,
7207
- statusExitCode
7217
+ statusExitCode,
7218
+ withCodingTools
7208
7219
  } from "./status.js";
7209
7220
  import { editorAuthorizationRows } from "./screens/journey.js";
7210
7221
  import {
@@ -7270,6 +7281,8 @@ var stillWatchedLine = (root) => `The folder is still being indexed. Run mnemoni
7270
7281
  var identityFileKeptLine = "This folder's .mnemonik.json still points at the deleted project. Connecting the folder again creates a new project.";
7271
7282
  var CODEX_SIGNED_IN_MESSAGE = "Codex is signed in to Mnemonik.";
7272
7283
  var signedInElsewhereMessage = (editor) => `${editor} is already signed in to Mnemonik from another of your machines.`;
7284
+ var alreadySignedInMessage = (editor, lastUsedAt) => `${editor} is already signed in to Mnemonik on this computer${lastUsedAt ? `, last used ${relativeTime(Date.parse(lastUsedAt), Date.now())}` : ""}.`;
7285
+ var SIGN_IN_LINK_REASON = "Give this link to the person to approve the Codex sign-in. This command finishes when they do.";
7273
7286
  var CONNECT_NOT_APPROVED_MESSAGE = "Sign-in timed out. Run mnemonik connect codex to try again.";
7274
7287
  function maintenanceExitCode(results) {
7275
7288
  if (results.some((result) => result.status === "FAILED")) return 1;
@@ -7996,6 +8009,24 @@ async function installCommand(parsed, deps, output) {
7996
8009
  function refusalStateDir(deps) {
7997
8010
  return deps.projectStateDir ?? deps.installStateDir ?? stateDirectory(process.platform, process.env, deps.home);
7998
8011
  }
8012
+ async function codingToolSignIns(deps, output, hosts) {
8013
+ if (!hosts.length) return /* @__PURE__ */ new Map();
8014
+ const bearer = await auth(deps, output, false).getCliBearer().catch(() => void 0);
8015
+ if (typeof bearer !== "string") return void 0;
8016
+ const send = deps.grantFetch ?? globalThis.fetch;
8017
+ const grants = grantTransport(
8018
+ async () => bearer,
8019
+ (url, options) => send(url, { ...options, signal: AbortSignal.timeout(2500) })
8020
+ );
8021
+ const here = await grants.list({ here: true }).catch(() => void 0);
8022
+ if (!here) return void 0;
8023
+ const result = new Map(hosts.map((host) => [host, codingToolSignIn(host, here)]));
8024
+ if ([...result].some(([host, signIn]) => host === "cursor" && signIn.state !== "signed_in")) {
8025
+ const everywhere = await grants.list().catch(() => void 0);
8026
+ if (everywhere) result.set("cursor", codingToolSignIn("cursor", here, everywhere));
8027
+ }
8028
+ return result;
8029
+ }
7999
8030
  async function doctorCommand(parsed, deps, output) {
8000
8031
  const invalid = allowed(parsed, []);
8001
8032
  if (invalid) return flagError(output, parsed, invalid);
@@ -8611,17 +8642,36 @@ Preview: ${preview.path}
8611
8642
  output,
8612
8643
  parsed.flags.has("json") ? void 0 : (line) => output.line(line)
8613
8644
  );
8645
+ const editors = await installedCodingTools(
8646
+ deps.home ?? homedir4(),
8647
+ deps.hostManagement?.stateDir ?? deps.installStateDir ?? stateDirectory(process.platform, process.env, deps.home)
8648
+ );
8649
+ const shown = withCodingTools(
8650
+ document,
8651
+ codingToolStatuses(
8652
+ editors,
8653
+ document.conditions ?? [],
8654
+ await codingToolSignIns(
8655
+ deps,
8656
+ output,
8657
+ editors.map((editor) => editor.host).filter(
8658
+ (host) => hostOrder.includes(host)
8659
+ )
8660
+ )
8661
+ )
8662
+ );
8614
8663
  const version = await packageVersion();
8615
8664
  const store = new RuntimeStore(
8616
8665
  deps.installStateDir ?? stateDirectory(process.platform, process.env, deps.home)
8617
8666
  );
8618
8667
  if (!parsed.flags.has("json")) {
8619
- renderStatusSummaries(document, output);
8668
+ renderStatusSummaries(shown, output);
8669
+ for (const line of codingToolLines(shown.codingTools)) output.line(line);
8620
8670
  await renderRefusals(refusalStateDir(deps), output);
8621
8671
  }
8622
8672
  const hint = await cliUpdateHint(store, version);
8623
8673
  if (parsed.flags.has("json"))
8624
- output.json({ ...document, cli: { version, ...hint ? { updateAvailable: hint } : {} } });
8674
+ output.json({ ...shown, cli: { version, ...hint ? { updateAvailable: hint } : {} } });
8625
8675
  else if (hint) output.line(hint);
8626
8676
  const reported = await reportCurrentInstallation(deps, output, document);
8627
8677
  if (reported === "signed_out" && !parsed.flags.has("json")) {
@@ -8629,7 +8679,7 @@ Preview: ${preview.path}
8629
8679
  output.line(REPORT_NOT_SENT.nextStep);
8630
8680
  } else if (typeof reported === "object" && !parsed.flags.has("json"))
8631
8681
  output.line(humanReason(reported.refused));
8632
- return statusExitCode(document);
8682
+ return statusExitCode(shown);
8633
8683
  }
8634
8684
  if (command === "connect") {
8635
8685
  const invalid = allowed(parsed, []);
@@ -8640,7 +8690,24 @@ Preview: ${preview.path}
8640
8690
  const editor = (await localEditorStatus(deps.home ?? homedir4())).find(
8641
8691
  (candidate) => candidate.host === host
8642
8692
  );
8643
- if (host === "codex" && editor?.mcp === "ready" && !parsed.flags.has("json")) {
8693
+ const signIn = editor?.mcp === "ready" ? await codingToolSignIns(deps, output, [host]) : void 0;
8694
+ const current = signIn?.get(host);
8695
+ if (current?.state === "signed_in" || current?.state === "signed_in_elsewhere") {
8696
+ const message = current.state === "signed_in_elsewhere" ? signedInElsewhereMessage(launchHostLabels[host]) : alreadySignedInMessage(launchHostLabels[host], current.lastUsedAt);
8697
+ if (parsed.flags.has("json"))
8698
+ output.json(
8699
+ current.state === "signed_in" ? {
8700
+ status: "READY",
8701
+ signIn: current.state,
8702
+ lastUsedAt: current.lastUsedAt,
8703
+ reason: message
8704
+ } : { status: "READY", reason: message }
8705
+ );
8706
+ else output.line(message);
8707
+ return 0;
8708
+ }
8709
+ const json = parsed.flags.has("json");
8710
+ if (host === "codex" && editor?.mcp === "ready") {
8644
8711
  const bearer = await auth(deps, output, false).getCliBearer().catch(() => void 0);
8645
8712
  if (typeof bearer === "string") {
8646
8713
  const outcome = await runEditorLogin({
@@ -8648,26 +8715,29 @@ Preview: ${preview.path}
8648
8715
  apiOrigin: apiOrigin(),
8649
8716
  issuer: process.env.MNEMONIK_OAUTH_ISSUER ?? "https://auth.mnemonik.ai",
8650
8717
  bearer: () => Promise.resolve(bearer),
8651
- print: (line) => void output.line(line),
8718
+ print: (line) => {
8719
+ if (!json) output.line(line);
8720
+ else if (/^https?:\/\//u.test(line))
8721
+ output.json({ status: "SIGN_IN_LINK", url: line, reason: SIGN_IN_LINK_REASON });
8722
+ },
8652
8723
  fetch: deps.grantFetch,
8653
8724
  ...deps.editorLogin
8654
8725
  });
8655
- if (outcome === "signed_in") return output.line(CODEX_SIGNED_IN_MESSAGE), 0;
8656
- if (outcome === "not_approved") return output.line(CONNECT_NOT_APPROVED_MESSAGE), 1;
8657
- }
8658
- }
8659
- if (editor?.mcp === "ready") {
8660
- const bearer = await auth(deps, output, false).getCliBearer().catch(() => void 0);
8661
- const send = deps.grantFetch ?? globalThis.fetch;
8662
- const grants = typeof bearer === "string" ? await grantTransport(
8663
- async () => bearer,
8664
- (url, options) => send(url, { ...options, signal: AbortSignal.timeout(2500) })
8665
- ).list().catch(() => void 0) : void 0;
8666
- if (grants && signedInElsewhere(grants, host)) {
8667
- const message = signedInElsewhereMessage(launchHostLabels[host]);
8668
- if (parsed.flags.has("json")) output.json({ status: "READY", reason: message });
8669
- else output.line(message);
8670
- return 0;
8726
+ if (outcome === "signed_in") {
8727
+ if (json) output.json({ status: "READY", reason: CODEX_SIGNED_IN_MESSAGE });
8728
+ else output.line(CODEX_SIGNED_IN_MESSAGE);
8729
+ return 0;
8730
+ }
8731
+ if (outcome === "not_approved") {
8732
+ if (json)
8733
+ output.json({
8734
+ status: "ACTION_REQUIRED",
8735
+ reason: CONNECT_NOT_APPROVED_MESSAGE,
8736
+ actions: ["mnemonik connect codex"]
8737
+ });
8738
+ else output.line(CONNECT_NOT_APPROVED_MESSAGE);
8739
+ return 1;
8740
+ }
8671
8741
  }
8672
8742
  }
8673
8743
  const reason = editor?.mcp === "disabled" ? `${editor.name} connection is turned off.` : editor?.mcp === "ready" ? "Finish signing in to Mnemonik in the coding tool." : `${launchHostLabels[host]} connection is missing.`;
@@ -9043,14 +9113,15 @@ Preview: ${preview.path}
9043
9113
  const grantHostName = grantHost(g);
9044
9114
  return (!grantHostName || hostOrder.includes(grantHostName)) && (!host || grantHostName === host);
9045
9115
  }).map((g) => ({ ...g, host: grantHost(g) ?? g.clientName ?? g.clientId }));
9116
+ const signedIn = grants.filter(validGrant);
9046
9117
  if (parsed.flags.has("json")) output.json({ account: status.account, grants });
9047
- else if (!grants.length)
9118
+ else if (!signedIn.length)
9048
9119
  output.line(
9049
9120
  host ? `${launchHostLabels[host]} is not signed in.` : humanReason("not_signed_in")
9050
9121
  );
9051
9122
  else {
9052
9123
  output.signedInAs(status.email);
9053
- for (const line of grantSummaryLines(grants, launchHostLabels)) output.line(line);
9124
+ for (const line of grantSummaryLines(signedIn, launchHostLabels)) output.line(line);
9054
9125
  output.line(
9055
9126
  "Older sign-ins stay valid until `mnemonik auth logout`. `mnemonik auth status --json` lists every one."
9056
9127
  );
@@ -9096,7 +9167,9 @@ export {
9096
9167
  NOTHING_REMOVED_LINE,
9097
9168
  SCANNER_REMOVED_LINE,
9098
9169
  SCANNER_UNINSTALL_PROMPT,
9170
+ SIGN_IN_LINK_REASON,
9099
9171
  alreadyConnectedFolderLine,
9172
+ alreadySignedInMessage,
9100
9173
  connectFolderPrompt,
9101
9174
  connectedFolderLine,
9102
9175
  dataDeletePrompt,