@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.
- package/dist/auth/claudeCodeSignIn.d.ts +16 -25
- package/dist/auth/claudeCodeSignIn.d.ts.map +1 -1
- package/dist/auth/claudeCodeSignIn.js +31 -29
- package/dist/auth/claudeCodeSignIn.js.map +1 -1
- package/dist/auth/codexAuthorization.d.ts +47 -0
- package/dist/auth/codexAuthorization.d.ts.map +1 -0
- package/dist/auth/codexAuthorization.js +882 -0
- package/dist/auth/codexAuthorization.js.map +1 -0
- package/dist/auth/cursorAuthorization.d.ts +47 -0
- package/dist/auth/cursorAuthorization.d.ts.map +1 -0
- package/dist/auth/cursorAuthorization.js +116 -0
- package/dist/auth/cursorAuthorization.js.map +1 -0
- package/dist/auth/status.d.ts +62 -26
- package/dist/auth/status.d.ts.map +1 -1
- package/dist/auth/status.js +37 -23
- package/dist/auth/status.js.map +1 -1
- package/dist/auth/storedAuthorization.d.ts +50 -0
- package/dist/auth/storedAuthorization.d.ts.map +1 -0
- package/dist/auth/storedAuthorization.js +24 -0
- package/dist/auth/storedAuthorization.js.map +1 -0
- package/dist/authorizationWords.d.ts +69 -0
- package/dist/authorizationWords.d.ts.map +1 -0
- package/dist/authorizationWords.js +5275 -0
- package/dist/authorizationWords.js.map +1 -0
- package/dist/digests.json +47 -31
- package/dist/humanReason.js +6 -6
- package/dist/humanReason.js.map +1 -1
- package/dist/install/hosts.d.ts.map +1 -1
- package/dist/install/hosts.js +2 -1
- package/dist/install/hosts.js.map +1 -1
- package/dist/installation.d.ts +2 -0
- package/dist/installation.d.ts.map +1 -1
- package/dist/installation.js +12 -0
- package/dist/installation.js.map +1 -1
- package/dist/output.d.ts +5 -2
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +7 -3
- package/dist/output.js.map +1 -1
- package/dist/router.d.ts +10 -10
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +137 -109
- package/dist/router.js.map +1 -1
- package/dist/sbom.json +21 -21
- package/dist/scanner-release.json +18 -18
- package/dist/status.d.ts +67 -35
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +140 -39
- package/dist/status.js.map +1 -1
- package/package.json +31 -31
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "7.
|
|
3
|
-
"digestsSha256": "
|
|
2
|
+
"version": "7.132.0",
|
|
3
|
+
"digestsSha256": "843daf7483f1c9697b3bb176f25bd5c7eb86c16f9cd408eee3414addbc426eb7",
|
|
4
4
|
"platforms": {
|
|
5
5
|
"darwin-arm64": {
|
|
6
6
|
"schemaVersion": 1,
|
|
7
7
|
"artifact": "scanner",
|
|
8
|
-
"version": "7.
|
|
8
|
+
"version": "7.132.0",
|
|
9
9
|
"entry": "scanner-darwin-arm64",
|
|
10
10
|
"files": {
|
|
11
11
|
"scanner-darwin-arm64": {
|
|
12
|
-
"sha256": "
|
|
12
|
+
"sha256": "cb5afa5922c38a27f75e48972a854b9493a7db55ae064771aad4d332df323ba5",
|
|
13
13
|
"size": 154586464,
|
|
14
14
|
"executable": true
|
|
15
15
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"totalSize": 154586464,
|
|
18
18
|
"source": {
|
|
19
19
|
"kind": "release",
|
|
20
|
-
"url": "https://github.com/JayDeeCo-Limited/mnemonik-cli/releases/download/scanner-v7.
|
|
20
|
+
"url": "https://github.com/JayDeeCo-Limited/mnemonik-cli/releases/download/scanner-v7.132.0/"
|
|
21
21
|
},
|
|
22
22
|
"signer": {
|
|
23
23
|
"platform": "darwin",
|
|
@@ -29,16 +29,16 @@
|
|
|
29
29
|
"linux-arm64": {
|
|
30
30
|
"schemaVersion": 1,
|
|
31
31
|
"artifact": "scanner",
|
|
32
|
-
"version": "7.
|
|
32
|
+
"version": "7.132.0",
|
|
33
33
|
"entry": "scanner-linux-arm64",
|
|
34
34
|
"files": {
|
|
35
35
|
"scanner-linux-arm64": {
|
|
36
|
-
"sha256": "
|
|
36
|
+
"sha256": "d58df75fb113b8073de04447701e43d875b6d637f5fde12fa8696d8f4e5d31c3",
|
|
37
37
|
"size": 156961920,
|
|
38
38
|
"executable": true
|
|
39
39
|
},
|
|
40
40
|
"scanner-linux-arm64.minisig": {
|
|
41
|
-
"sha256": "
|
|
41
|
+
"sha256": "365c96b9bca1136e03c052e679401ad55ad8908d715e0cf6ab474f12eb12c9df",
|
|
42
42
|
"size": 314,
|
|
43
43
|
"executable": false
|
|
44
44
|
}
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"totalSize": 156962234,
|
|
47
47
|
"source": {
|
|
48
48
|
"kind": "release",
|
|
49
|
-
"url": "https://github.com/JayDeeCo-Limited/mnemonik-cli/releases/download/scanner-v7.
|
|
49
|
+
"url": "https://github.com/JayDeeCo-Limited/mnemonik-cli/releases/download/scanner-v7.132.0/"
|
|
50
50
|
},
|
|
51
51
|
"signer": {
|
|
52
52
|
"platform": "linux",
|
|
@@ -59,16 +59,16 @@
|
|
|
59
59
|
"linux-x64": {
|
|
60
60
|
"schemaVersion": 1,
|
|
61
61
|
"artifact": "scanner",
|
|
62
|
-
"version": "7.
|
|
62
|
+
"version": "7.132.0",
|
|
63
63
|
"entry": "scanner-linux-x64",
|
|
64
64
|
"files": {
|
|
65
65
|
"scanner-linux-x64": {
|
|
66
|
-
"sha256": "
|
|
66
|
+
"sha256": "da4b839814ab7bb5fdc3a01d19233552b13e78ec35c7a4c28a05c92eaa70967a",
|
|
67
67
|
"size": 155192512,
|
|
68
68
|
"executable": true
|
|
69
69
|
},
|
|
70
70
|
"scanner-linux-x64.minisig": {
|
|
71
|
-
"sha256": "
|
|
71
|
+
"sha256": "b7edc0866d2567ed9a470bb493ebfaa5a46b07c9cb44ea24c7e7e6c029e86969",
|
|
72
72
|
"size": 312,
|
|
73
73
|
"executable": false
|
|
74
74
|
}
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"totalSize": 155192824,
|
|
77
77
|
"source": {
|
|
78
78
|
"kind": "release",
|
|
79
|
-
"url": "https://github.com/JayDeeCo-Limited/mnemonik-cli/releases/download/scanner-v7.
|
|
79
|
+
"url": "https://github.com/JayDeeCo-Limited/mnemonik-cli/releases/download/scanner-v7.132.0/"
|
|
80
80
|
},
|
|
81
81
|
"signer": {
|
|
82
82
|
"platform": "linux",
|
|
@@ -89,19 +89,19 @@
|
|
|
89
89
|
"win-x64": {
|
|
90
90
|
"schemaVersion": 1,
|
|
91
91
|
"artifact": "scanner",
|
|
92
|
-
"version": "7.
|
|
92
|
+
"version": "7.132.0",
|
|
93
93
|
"entry": "scanner-win-x64.exe",
|
|
94
94
|
"files": {
|
|
95
95
|
"scanner-win-x64.exe": {
|
|
96
|
-
"sha256": "
|
|
97
|
-
"size":
|
|
96
|
+
"sha256": "090592373a694c44e24cfaafb1ee592b684ca0638055c504f52174024cf1dd7d",
|
|
97
|
+
"size": 127678464,
|
|
98
98
|
"executable": true
|
|
99
99
|
}
|
|
100
100
|
},
|
|
101
|
-
"totalSize":
|
|
101
|
+
"totalSize": 127678464,
|
|
102
102
|
"source": {
|
|
103
103
|
"kind": "release",
|
|
104
|
-
"url": "https://github.com/JayDeeCo-Limited/mnemonik-cli/releases/download/scanner-v7.
|
|
104
|
+
"url": "https://github.com/JayDeeCo-Limited/mnemonik-cli/releases/download/scanner-v7.132.0/"
|
|
105
105
|
},
|
|
106
106
|
"signingStatus": "unsigned",
|
|
107
107
|
"disclosureVersion": "2026.09.1"
|
package/dist/status.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { CODEX_TRUST_MESSAGE } from './humanReason.js';
|
|
2
2
|
import { cliCredentialStatus } from './auth/credentials.js';
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
3
|
+
import { type McpAuthorization, type McpState } from './auth/status.js';
|
|
4
|
+
import { type CliSignIn, type HooksState, type ScannerAuthorizationState } from './authorizationWords.js';
|
|
5
5
|
import { type ScannerReceipt } from './scanner/control.js';
|
|
6
6
|
import { type ScannerServiceOptions } from './scanner/service.js';
|
|
7
7
|
import type { Readable } from 'node:stream';
|
|
@@ -17,6 +17,7 @@ export declare function localEditorStatus(home: string): Promise<{
|
|
|
17
17
|
name: "Claude Code" | "Codex" | "Cursor";
|
|
18
18
|
marked: boolean;
|
|
19
19
|
hooks: boolean;
|
|
20
|
+
credentialFamily?: string | undefined;
|
|
20
21
|
mcp: string;
|
|
21
22
|
}[]>;
|
|
22
23
|
/** What a person can really do to switch a declared connection back on. */
|
|
@@ -78,13 +79,12 @@ export declare function buildStatusDocument(input: StatusDocumentInput): Readine
|
|
|
78
79
|
conditions: ReadinessCondition[];
|
|
79
80
|
};
|
|
80
81
|
/**
|
|
81
|
-
* `status` could not tell the console about this machine because
|
|
82
|
-
*
|
|
83
|
-
*
|
|
82
|
+
* `status` could not tell the console about this machine because the CLI's own
|
|
83
|
+
* sign-in could not be used (L-166): expired, revoked, or locked in the macOS
|
|
84
|
+
* Keychain over SSH. The CLI line of the authorization block gives the step.
|
|
84
85
|
*/
|
|
85
86
|
export declare const REPORT_NOT_SENT: {
|
|
86
87
|
sentence: string;
|
|
87
|
-
nextStep: string;
|
|
88
88
|
};
|
|
89
89
|
export declare function renderStatusSummaries(document: ReadinessDocument & {
|
|
90
90
|
cliCredential?: Awaited<ReturnType<typeof cliCredentialStatus>>;
|
|
@@ -125,60 +125,92 @@ export declare function collectStatusDocument(input: CollectStatusInput): Promis
|
|
|
125
125
|
export interface CodingToolStatus {
|
|
126
126
|
host: string;
|
|
127
127
|
name: string;
|
|
128
|
-
/**
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
|
|
132
|
-
* read (Mnemonik unreachable, or this computer's own sign-in unusable).
|
|
133
|
-
*/
|
|
134
|
-
signIn: CodingToolSignInState | 'unknown';
|
|
135
|
-
/** When the tool last renewed its sign-in; dates use, never decides it. */
|
|
136
|
-
lastUsedAt: string | null;
|
|
137
|
-
/**
|
|
138
|
-
* What the coding tool itself stores for Mnemonik on this machine, when it
|
|
139
|
-
* was read (Claude Code only). Token values are never read out.
|
|
140
|
-
*/
|
|
141
|
-
stored?: StoredSignIn;
|
|
128
|
+
/** Its MCP connection's authorization; the evidence is in `authorizations`. */
|
|
129
|
+
mcp: McpState;
|
|
130
|
+
/** Its hooks' own authorization, from this machine's files and the tool's own trust records. */
|
|
131
|
+
hooks: HooksState;
|
|
142
132
|
/** Commands the agent runs to fix what is wrong with this tool, in order; empty when none. */
|
|
143
133
|
actions: string[];
|
|
144
134
|
/**
|
|
145
135
|
* Steps only the person can take, inside the coding tool, in plain words
|
|
146
|
-
* (Claude Code and Cursor
|
|
136
|
+
* (Claude Code and Cursor authorize MCP only there); empty when none.
|
|
147
137
|
*/
|
|
148
138
|
personSteps: string[];
|
|
149
139
|
}
|
|
140
|
+
/** One line of the authorization block, with the evidence behind it. */
|
|
141
|
+
export type AuthorizationEntry = ({
|
|
142
|
+
component: 'mcp';
|
|
143
|
+
host: string;
|
|
144
|
+
line: string;
|
|
145
|
+
} & McpAuthorization) | {
|
|
146
|
+
component: 'hooks';
|
|
147
|
+
host: string;
|
|
148
|
+
state: HooksState;
|
|
149
|
+
line: string;
|
|
150
|
+
} | {
|
|
151
|
+
component: 'scanner';
|
|
152
|
+
state: ScannerAuthorizationState;
|
|
153
|
+
line: string;
|
|
154
|
+
} | ({
|
|
155
|
+
component: 'cli';
|
|
156
|
+
line: string;
|
|
157
|
+
} & CliSignIn);
|
|
150
158
|
/** The coding tools installed on this machine: chosen at install or marked in their own settings. */
|
|
151
159
|
export declare function installedCodingTools(home: string, stateDir: string): Promise<{
|
|
152
160
|
host: "claude-code" | "codex" | "cursor";
|
|
153
161
|
name: "Claude Code" | "Codex" | "Cursor";
|
|
154
162
|
marked: boolean;
|
|
155
163
|
hooks: boolean;
|
|
164
|
+
credentialFamily?: string | undefined;
|
|
156
165
|
mcp: string;
|
|
157
166
|
}[]>;
|
|
167
|
+
/** The hooks' own authorization, as hookAuthorizations reads it. */
|
|
168
|
+
export type HookCredentialState = 'authorized' | 'not_authorized' | 'unchecked';
|
|
169
|
+
/**
|
|
170
|
+
* Each tool's hooks' own authorization: the credential the installer recorded
|
|
171
|
+
* for them (or their command names), stored here and inside its refresh
|
|
172
|
+
* window. Hooks that name none sign in some other way, which is not read here.
|
|
173
|
+
*/
|
|
174
|
+
export declare function hookAuthorizations(stateDir: string, editors: ReadonlyArray<{
|
|
175
|
+
host: string;
|
|
176
|
+
credentialFamily?: string;
|
|
177
|
+
}>, now?: number): Promise<Map<string, HookCredentialState>>;
|
|
158
178
|
export declare function codingToolStatuses(editors: ReadonlyArray<{
|
|
159
179
|
host: string;
|
|
160
180
|
name: string;
|
|
161
181
|
hooks: boolean;
|
|
162
|
-
}>, conditions: readonly ReadinessCondition[],
|
|
182
|
+
}>, conditions: readonly ReadinessCondition[], mcp: ReadonlyMap<string, McpAuthorization>, hookCredentials?: ReadonlyMap<string, HookCredentialState>): CodingToolStatus[];
|
|
163
183
|
/**
|
|
164
|
-
* The status document with each tool's
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
184
|
+
* The status document with each tool's state added. A tool whose MCP
|
|
185
|
+
* authorization here was revoked, expired, or is no longer held by the tool,
|
|
186
|
+
* hooks or a scanner whose own authorization is missing, expired or refused,
|
|
187
|
+
* is a condition of the installation: status never says the machine is
|
|
188
|
+
* working while one is. A tool never authorized here is not (it may simply be
|
|
189
|
+
* unused); its line says how to authorize it.
|
|
168
190
|
*/
|
|
169
191
|
export declare function withCodingTools<T extends ReadinessDocument & {
|
|
170
192
|
conditions?: readonly ReadinessCondition[];
|
|
171
|
-
}>(document: T, tools: readonly CodingToolStatus[]
|
|
193
|
+
}>(document: T, tools: readonly CodingToolStatus[], mcp: ReadonlyMap<string, McpAuthorization>,
|
|
194
|
+
/** The scanner's own authorization; one that is gone is a condition too, said once. */
|
|
195
|
+
scanner?: ScannerAuthorizationState): T & {
|
|
172
196
|
codingTools: CodingToolStatus[];
|
|
173
197
|
};
|
|
174
|
-
/** A stored sign-in whose access has expired and that the tool renews by itself. */
|
|
175
|
-
export declare const renewsMessage: (tool: string) => string;
|
|
176
198
|
/**
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
|
|
181
|
-
|
|
199
|
+
* Background indexing's own authorization on this computer: set up, its
|
|
200
|
+
* credential stored here and inside its refresh window, and no refusal
|
|
201
|
+
* reported by the running scanner. The server's record of it is not asked.
|
|
202
|
+
*/
|
|
203
|
+
export declare function scannerAuthorization(stateDir: string, now?: number): Promise<ScannerAuthorizationState>;
|
|
204
|
+
/**
|
|
205
|
+
* The authorization block of `status`: each tool's MCP connection and hooks,
|
|
206
|
+
* then the scanner and the CLI, one line each, never dropped. A state the
|
|
207
|
+
* installation's attention lines already give a step for says only what is wrong.
|
|
182
208
|
*/
|
|
183
|
-
export declare function
|
|
209
|
+
export declare function authorizationEntries(input: {
|
|
210
|
+
tools: readonly CodingToolStatus[];
|
|
211
|
+
mcp: ReadonlyMap<string, McpAuthorization>;
|
|
212
|
+
conditions: readonly ReadinessCondition[];
|
|
213
|
+
scanner: ScannerAuthorizationState;
|
|
214
|
+
cli: CliSignIn;
|
|
215
|
+
}): AuthorizationEntry[];
|
|
184
216
|
//# sourceMappingURL=status.d.ts.map
|
package/dist/status.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
|
package/dist/status.js
CHANGED
|
@@ -2707,6 +2707,16 @@ import {
|
|
|
2707
2707
|
} from "./humanReason.js";
|
|
2708
2708
|
import { CODEX_TRUST_MESSAGE } from "./humanReason.js";
|
|
2709
2709
|
import { cliCredentialStatus } from "./auth/credentials.js";
|
|
2710
|
+
import { createCliCredentials } from "./auth/credentials.js";
|
|
2711
|
+
import { mcpAuthorization } from "./auth/status.js";
|
|
2712
|
+
import {
|
|
2713
|
+
cliLine,
|
|
2714
|
+
hooksLine,
|
|
2715
|
+
mcpLine,
|
|
2716
|
+
hooksNotAuthorizedReason,
|
|
2717
|
+
mcpNotAuthorizedReason,
|
|
2718
|
+
scannerLine
|
|
2719
|
+
} from "./authorizationWords.js";
|
|
2710
2720
|
import { readOwnership } from "./install/ownership.js";
|
|
2711
2721
|
import {
|
|
2712
2722
|
pausedForConsent,
|
|
@@ -8196,6 +8206,7 @@ async function localEditorStatus(home) {
|
|
|
8196
8206
|
declaration = object(config.mcp_servers) ? config.mcp_servers.mnemonik : object(config.mcpServers) ? config.mcpServers.mnemonik : void 0;
|
|
8197
8207
|
} catch {
|
|
8198
8208
|
}
|
|
8209
|
+
const credentialFamily = commands.map((command) => /--credential-family (\S+)/u.exec(command)?.[1]).find((id) => !!id);
|
|
8199
8210
|
return {
|
|
8200
8211
|
host,
|
|
8201
8212
|
name: name2,
|
|
@@ -8203,6 +8214,7 @@ async function localEditorStatus(home) {
|
|
|
8203
8214
|
// presence of ~/.codex or a project-local .cursor is not a choice.
|
|
8204
8215
|
marked: commands.length > 0 || object(declaration),
|
|
8205
8216
|
hooks,
|
|
8217
|
+
...credentialFamily ? { credentialFamily } : {},
|
|
8206
8218
|
mcp: !object(declaration) ? "missing" : declaration.enabled === false || declaration.disabled === true ? "disabled" : "ready"
|
|
8207
8219
|
};
|
|
8208
8220
|
})
|
|
@@ -8407,8 +8419,7 @@ ${message.nextStep}`;
|
|
|
8407
8419
|
return lines;
|
|
8408
8420
|
}
|
|
8409
8421
|
var REPORT_NOT_SENT = {
|
|
8410
|
-
sentence: "The console has not heard from this
|
|
8411
|
-
nextStep: humanMessageFor("renew").nextStep
|
|
8422
|
+
sentence: "The console has not heard from this computer because the CLI sign-in could not be used."
|
|
8412
8423
|
};
|
|
8413
8424
|
function renderStatusSummaries(document, output, options = {}) {
|
|
8414
8425
|
if (options.diagnostics && document.cliCredential)
|
|
@@ -8477,7 +8488,7 @@ function refusalLines(batches, withPaths = false) {
|
|
|
8477
8488
|
function scannerFailureCause(failure) {
|
|
8478
8489
|
switch (failure.kind) {
|
|
8479
8490
|
case "credential_refused":
|
|
8480
|
-
return "
|
|
8491
|
+
return "Mnemonik no longer accepts the scanner authorization on this computer. Run mnemonik repair.";
|
|
8481
8492
|
case "push_rejected":
|
|
8482
8493
|
return `The server rejected an upload from this computer.${failure.reason ? ` The server said: ${failure.reason}.` : ""}`;
|
|
8483
8494
|
case "watcher_error":
|
|
@@ -8722,30 +8733,70 @@ async function installedCodingTools(home, stateDir) {
|
|
|
8722
8733
|
(editor) => editor.marked || owned.includes(editor.host)
|
|
8723
8734
|
);
|
|
8724
8735
|
}
|
|
8725
|
-
|
|
8736
|
+
var hookConditionKinds = /* @__PURE__ */ new Set([
|
|
8737
|
+
"hooks_missing",
|
|
8738
|
+
"hook_not_verified",
|
|
8739
|
+
"host_trust_pending",
|
|
8740
|
+
"selected_component_failed"
|
|
8741
|
+
]);
|
|
8742
|
+
async function hookAuthorizations(stateDir, editors, now = Date.now()) {
|
|
8743
|
+
const owned = (await readOwnership(stateDir)).targets;
|
|
8744
|
+
const credentials = createCliCredentials({ stateDir });
|
|
8745
|
+
return new Map(
|
|
8746
|
+
await Promise.all(
|
|
8747
|
+
editors.map(async (editor) => {
|
|
8748
|
+
const id = owned.find((target) => target.host === editor.host && target.component === "hooks")?.credentialFamily || editor.credentialFamily;
|
|
8749
|
+
if (!id) return [editor.host, "unchecked"];
|
|
8750
|
+
const family = await credentials.readFamily(id).catch(() => null);
|
|
8751
|
+
return [
|
|
8752
|
+
editor.host,
|
|
8753
|
+
family && Date.parse(family.refreshExpiresAt) > now ? "authorized" : "not_authorized"
|
|
8754
|
+
];
|
|
8755
|
+
})
|
|
8756
|
+
)
|
|
8757
|
+
);
|
|
8758
|
+
}
|
|
8759
|
+
function hooksState(host, installed, credential, conditions) {
|
|
8760
|
+
const mine = conditions.filter(
|
|
8761
|
+
(condition) => condition.component === host && hookConditionKinds.has(condition.kind)
|
|
8762
|
+
);
|
|
8763
|
+
if (mine.some((condition) => condition.kind === "host_trust_pending")) return "trust_pending";
|
|
8764
|
+
const missing = mine.find(
|
|
8765
|
+
(condition) => condition.kind === "hooks_missing" || condition.kind === "selected_component_failed" && /hooks/u.test(condition.reason)
|
|
8766
|
+
);
|
|
8767
|
+
if (missing && !/sign-in/u.test(missing.reason)) return "not_installed";
|
|
8768
|
+
if (!installed) return "not_installed";
|
|
8769
|
+
if (missing || credential === "not_authorized") return "not_authorized";
|
|
8770
|
+
const unverified = mine.find((condition) => condition.kind === "hook_not_verified");
|
|
8771
|
+
if (unverified) return /not installed/u.test(unverified.reason) ? "not_installed" : "unchecked";
|
|
8772
|
+
return credential === "unchecked" ? "unchecked" : "authorized";
|
|
8773
|
+
}
|
|
8774
|
+
var ended = (mcp) => mcp?.state === "not_authorized" && (mcp.reason === "revoked_or_expired" || mcp.reason === "not_held");
|
|
8775
|
+
function codingToolStatuses(editors, conditions, mcp, hookCredentials = /* @__PURE__ */ new Map()) {
|
|
8726
8776
|
return editors.map((editor) => {
|
|
8777
|
+
const hooks = hooksState(
|
|
8778
|
+
editor.host,
|
|
8779
|
+
editor.hooks,
|
|
8780
|
+
hookCredentials.get(editor.host),
|
|
8781
|
+
conditions
|
|
8782
|
+
);
|
|
8727
8783
|
const trust = conditions.find(
|
|
8728
8784
|
(condition) => condition.kind === "host_trust_pending" && condition.component === editor.host
|
|
8729
8785
|
);
|
|
8730
|
-
const
|
|
8731
|
-
|
|
8732
|
-
) ? "installed" : "missing";
|
|
8733
|
-
const signIn = signIns?.get(editor.host);
|
|
8734
|
-
const signInNeeded = signIn?.state === "signed_out" || signIn?.state === "not_set_up";
|
|
8786
|
+
const authorization = mcp.get(editor.host);
|
|
8787
|
+
const authorizeNeeded = authorization?.state === "not_authorized";
|
|
8735
8788
|
const fix = signInFix(editor.host);
|
|
8736
8789
|
return {
|
|
8737
8790
|
host: editor.host,
|
|
8738
8791
|
name: editor.name,
|
|
8792
|
+
mcp: authorization?.state ?? "unchecked",
|
|
8739
8793
|
hooks,
|
|
8740
|
-
signIn: signIn?.state ?? "unknown",
|
|
8741
|
-
lastUsedAt: signIn?.lastUsedAt ?? null,
|
|
8742
|
-
...signIn?.stored ? { stored: signIn.stored } : {},
|
|
8743
8794
|
actions: [
|
|
8744
|
-
...hooks === "
|
|
8745
|
-
...hooks === "
|
|
8746
|
-
...
|
|
8795
|
+
...hooks === "not_installed" || hooks === "not_authorized" ? ["mnemonik repair"] : [],
|
|
8796
|
+
...hooks === "trust_pending" && trust?.action ? [trust.action] : [],
|
|
8797
|
+
...authorizeNeeded && "command" in fix ? [fix.command] : []
|
|
8747
8798
|
],
|
|
8748
|
-
personSteps:
|
|
8799
|
+
personSteps: authorizeNeeded && "step" in fix ? [fix.step] : []
|
|
8749
8800
|
};
|
|
8750
8801
|
});
|
|
8751
8802
|
}
|
|
@@ -8755,16 +8806,39 @@ var stateRank = {
|
|
|
8755
8806
|
ACTION_REQUIRED: 2,
|
|
8756
8807
|
FAILED: 3
|
|
8757
8808
|
};
|
|
8758
|
-
function withCodingTools(document, tools) {
|
|
8759
|
-
const
|
|
8760
|
-
|
|
8761
|
-
|
|
8762
|
-
|
|
8809
|
+
function withCodingTools(document, tools, mcp, scanner) {
|
|
8810
|
+
const scannerSaid = (document.conditions ?? []).some(
|
|
8811
|
+
(condition) => condition.component === "scanner" && condition.kind === "login_pending"
|
|
8812
|
+
);
|
|
8813
|
+
const signedOut = [
|
|
8814
|
+
...(scanner === "not_authorized" || scanner === "refused") && !scannerSaid ? [
|
|
8815
|
+
{
|
|
8816
|
+
kind: "login_pending",
|
|
8817
|
+
component: "scanner",
|
|
8818
|
+
reason: "scanner_signed_out",
|
|
8819
|
+
action: "mnemonik repair"
|
|
8820
|
+
}
|
|
8821
|
+
] : [],
|
|
8822
|
+
...tools.filter((tool) => ended(mcp.get(tool.host))).map((tool) => {
|
|
8823
|
+
const fix = signInFix(tool.host);
|
|
8824
|
+
return {
|
|
8825
|
+
kind: "login_pending",
|
|
8826
|
+
component: tool.host,
|
|
8827
|
+
reason: mcpNotAuthorizedReason(tool.name),
|
|
8828
|
+
action: "step" in fix ? fix.step : fix.command
|
|
8829
|
+
};
|
|
8830
|
+
}),
|
|
8831
|
+
...tools.filter(
|
|
8832
|
+
(tool) => tool.hooks === "not_authorized" && !(document.conditions ?? []).some(
|
|
8833
|
+
(condition) => condition.component === tool.host && condition.kind === "hooks_missing"
|
|
8834
|
+
)
|
|
8835
|
+
).map((tool) => ({
|
|
8836
|
+
kind: "hooks_missing",
|
|
8763
8837
|
component: tool.host,
|
|
8764
|
-
reason:
|
|
8765
|
-
action: "
|
|
8766
|
-
}
|
|
8767
|
-
|
|
8838
|
+
reason: hooksNotAuthorizedReason(tool.name),
|
|
8839
|
+
action: "mnemonik repair"
|
|
8840
|
+
}))
|
|
8841
|
+
];
|
|
8768
8842
|
if (!signedOut.length) return { ...document, codingTools: [...tools] };
|
|
8769
8843
|
const added = reduceReadiness(signedOut);
|
|
8770
8844
|
const installation = document.installation;
|
|
@@ -8779,27 +8853,54 @@ function withCodingTools(document, tools) {
|
|
|
8779
8853
|
codingTools: [...tools]
|
|
8780
8854
|
};
|
|
8781
8855
|
}
|
|
8782
|
-
|
|
8783
|
-
|
|
8784
|
-
|
|
8785
|
-
|
|
8786
|
-
|
|
8787
|
-
|
|
8788
|
-
|
|
8789
|
-
|
|
8790
|
-
|
|
8791
|
-
|
|
8792
|
-
|
|
8793
|
-
|
|
8856
|
+
async function scannerAuthorization(stateDir, now = Date.now()) {
|
|
8857
|
+
const state = JSON.parse(
|
|
8858
|
+
await readFile2(join6(stateDir, "scanner/state.json"), "utf8").catch(() => "null")
|
|
8859
|
+
);
|
|
8860
|
+
if (!state) return "not_set_up";
|
|
8861
|
+
const receipt = await scannerReceipt(stateDir).catch(() => null);
|
|
8862
|
+
if (receipt?.snapshot?.lifecycle?.reason === "credential_revoked") return "refused";
|
|
8863
|
+
const id = state.config?.credentialFamilyId;
|
|
8864
|
+
if (typeof id !== "string") return "unchecked";
|
|
8865
|
+
const family = await createCliCredentials({ stateDir }).readFamily(id).catch(() => null);
|
|
8866
|
+
return family && Date.parse(family.refreshExpiresAt) > now ? "authorized" : "not_authorized";
|
|
8867
|
+
}
|
|
8868
|
+
function authorizationEntries(input) {
|
|
8869
|
+
const stepped = (component, kinds) => input.conditions.some(
|
|
8870
|
+
(condition) => condition.component === component && kinds.has(condition.kind)
|
|
8871
|
+
);
|
|
8872
|
+
const entries = [];
|
|
8873
|
+
for (const tool of input.tools) {
|
|
8874
|
+
const mcp = input.mcp.get(tool.host) ?? mcpAuthorization(void 0, void 0);
|
|
8875
|
+
entries.push({
|
|
8876
|
+
component: "mcp",
|
|
8877
|
+
host: tool.host,
|
|
8878
|
+
...mcp,
|
|
8879
|
+
line: mcpLine(tool.name, tool.host, mcp)
|
|
8880
|
+
});
|
|
8881
|
+
entries.push({
|
|
8882
|
+
component: "hooks",
|
|
8883
|
+
host: tool.host,
|
|
8884
|
+
state: tool.hooks,
|
|
8885
|
+
line: hooksLine(tool.name, tool.hooks, stepped(tool.host, hookConditionKinds))
|
|
8886
|
+
});
|
|
8887
|
+
}
|
|
8888
|
+
entries.push({
|
|
8889
|
+
component: "scanner",
|
|
8890
|
+
state: input.scanner,
|
|
8891
|
+
line: scannerLine(input.scanner, stepped("scanner", /* @__PURE__ */ new Set(["login_pending"])))
|
|
8794
8892
|
});
|
|
8893
|
+
entries.push({ component: "cli", ...input.cli, line: cliLine(input.cli) });
|
|
8894
|
+
return entries;
|
|
8795
8895
|
}
|
|
8796
8896
|
export {
|
|
8797
8897
|
CODEX_TRUST_MESSAGE,
|
|
8798
8898
|
REPORT_NOT_SENT,
|
|
8899
|
+
authorizationEntries,
|
|
8799
8900
|
buildStatusDocument,
|
|
8800
|
-
codingToolLines,
|
|
8801
8901
|
codingToolStatuses,
|
|
8802
8902
|
collectStatusDocument,
|
|
8903
|
+
hookAuthorizations,
|
|
8803
8904
|
installedCodingTools,
|
|
8804
8905
|
localEditorStatus,
|
|
8805
8906
|
localInstallationConditions,
|
|
@@ -8809,7 +8910,7 @@ export {
|
|
|
8809
8910
|
renderRefusals,
|
|
8810
8911
|
renderScannerFailure,
|
|
8811
8912
|
renderStatusSummaries,
|
|
8812
|
-
|
|
8913
|
+
scannerAuthorization,
|
|
8813
8914
|
scannerFailureCause,
|
|
8814
8915
|
statusExitCode,
|
|
8815
8916
|
withCodingTools
|