@brainmcp/brainmcp 0.1.12 → 0.1.13

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 (105) hide show
  1. package/README.md +72 -5
  2. package/dist/agent-config.js +153 -24
  3. package/dist/commands/auth.d.ts +47 -0
  4. package/dist/commands/auth.js +390 -0
  5. package/dist/commands/auth.js.map +1 -0
  6. package/dist/commands/capture.d.ts +34 -0
  7. package/dist/commands/capture.js +349 -0
  8. package/dist/commands/capture.js.map +1 -0
  9. package/dist/commands/dispatch.d.ts +43 -0
  10. package/dist/commands/dispatch.js +287 -0
  11. package/dist/commands/dispatch.js.map +1 -0
  12. package/dist/commands/index.d.ts +4 -0
  13. package/dist/commands/index.js +180 -36
  14. package/dist/commands/index.js.map +1 -1
  15. package/dist/hooks/adapters.d.ts +14 -0
  16. package/dist/hooks/adapters.js +41 -0
  17. package/dist/hooks/adapters.js.map +1 -0
  18. package/dist/hooks/claude.d.ts +24 -0
  19. package/dist/hooks/claude.js +36 -0
  20. package/dist/hooks/claude.js.map +1 -0
  21. package/dist/hooks/codex.d.ts +18 -0
  22. package/dist/hooks/codex.js +36 -0
  23. package/dist/hooks/codex.js.map +1 -0
  24. package/dist/hooks/cursor.d.ts +22 -0
  25. package/dist/hooks/cursor.js +26 -0
  26. package/dist/hooks/cursor.js.map +1 -0
  27. package/dist/hooks/managed-hooks.d.ts +30 -0
  28. package/dist/hooks/managed-hooks.js +189 -0
  29. package/dist/hooks/managed-hooks.js.map +1 -0
  30. package/dist/hooks/vscode.d.ts +22 -0
  31. package/dist/hooks/vscode.js +27 -0
  32. package/dist/hooks/vscode.js.map +1 -0
  33. package/dist/index.js +7 -102
  34. package/dist/index.js.map +1 -1
  35. package/dist/lib/api-client.d.ts +32 -0
  36. package/dist/lib/api-client.js +203 -0
  37. package/dist/lib/api-client.js.map +1 -0
  38. package/dist/lib/callback-server.d.ts +17 -0
  39. package/dist/lib/callback-server.js +145 -0
  40. package/dist/lib/callback-server.js.map +1 -0
  41. package/dist/lib/cli-contracts.d.ts +193 -0
  42. package/dist/lib/cli-contracts.js +242 -0
  43. package/dist/lib/cli-contracts.js.map +1 -0
  44. package/dist/lib/config.d.ts +2 -0
  45. package/dist/lib/config.js +11 -0
  46. package/dist/lib/config.js.map +1 -1
  47. package/dist/lib/credentials.d.ts +89 -0
  48. package/dist/lib/credentials.js +304 -0
  49. package/dist/lib/credentials.js.map +1 -0
  50. package/dist/lib/http.d.ts +3 -0
  51. package/dist/lib/http.js +50 -0
  52. package/dist/lib/http.js.map +1 -0
  53. package/dist/lib/managed.d.ts +8 -0
  54. package/dist/lib/managed.js +72 -6
  55. package/dist/lib/managed.js.map +1 -1
  56. package/dist/lib/oauth-client.d.ts +55 -0
  57. package/dist/lib/oauth-client.js +154 -0
  58. package/dist/lib/oauth-client.js.map +1 -0
  59. package/dist/lib/pkce.d.ts +14 -0
  60. package/dist/lib/pkce.js +33 -0
  61. package/dist/lib/pkce.js.map +1 -0
  62. package/dist/lib/vault.d.ts +26 -0
  63. package/dist/lib/vault.js +221 -0
  64. package/dist/lib/vault.js.map +1 -0
  65. package/dist/runtime/brainmcp-hook-runtime.mjs +3211 -0
  66. package/dist/runtime/capture.d.ts +83 -0
  67. package/dist/runtime/capture.js +332 -0
  68. package/dist/runtime/capture.js.map +1 -0
  69. package/dist/runtime/diagnostics.d.ts +7 -0
  70. package/dist/runtime/diagnostics.js +75 -0
  71. package/dist/runtime/diagnostics.js.map +1 -0
  72. package/dist/runtime/doctor-checks.d.ts +14 -0
  73. package/dist/runtime/doctor-checks.js +205 -0
  74. package/dist/runtime/doctor-checks.js.map +1 -0
  75. package/dist/runtime/flush.d.ts +30 -0
  76. package/dist/runtime/flush.js +193 -0
  77. package/dist/runtime/flush.js.map +1 -0
  78. package/dist/runtime/hook-dispatcher.d.ts +31 -0
  79. package/dist/runtime/hook-dispatcher.js +381 -0
  80. package/dist/runtime/hook-dispatcher.js.map +1 -0
  81. package/dist/runtime/index.d.ts +12 -0
  82. package/dist/runtime/index.js +69 -0
  83. package/dist/runtime/index.js.map +1 -0
  84. package/dist/runtime/installer.d.ts +26 -0
  85. package/dist/runtime/installer.js +134 -0
  86. package/dist/runtime/installer.js.map +1 -0
  87. package/dist/runtime/lock.d.ts +19 -0
  88. package/dist/runtime/lock.js +116 -0
  89. package/dist/runtime/lock.js.map +1 -0
  90. package/dist/runtime/orient.d.ts +55 -0
  91. package/dist/runtime/orient.js +255 -0
  92. package/dist/runtime/orient.js.map +1 -0
  93. package/dist/runtime/queue.d.ts +7 -0
  94. package/dist/runtime/queue.js +80 -0
  95. package/dist/runtime/queue.js.map +1 -0
  96. package/dist/runtime/retention.d.ts +26 -0
  97. package/dist/runtime/retention.js +175 -0
  98. package/dist/runtime/retention.js.map +1 -0
  99. package/dist/runtime/session.d.ts +68 -0
  100. package/dist/runtime/session.js +283 -0
  101. package/dist/runtime/session.js.map +1 -0
  102. package/dist/runtime/storage.d.ts +32 -0
  103. package/dist/runtime/storage.js +236 -0
  104. package/dist/runtime/storage.js.map +1 -0
  105. package/package.json +12 -10
@@ -0,0 +1,390 @@
1
+ import { spawn } from 'node:child_process';
2
+ import path from 'node:path';
3
+ import { stdin } from 'node:process';
4
+ import { BRAINMCP_CLI_CLIENT_ID, BRAINMCP_CLI_DEFAULT_SCOPES, } from '../agent-config.js';
5
+ import { ApiClient } from '../lib/api-client.js';
6
+ import { startCallbackServer } from '../lib/callback-server.js';
7
+ import { createDefaultCredentialStore, MemoryCredentialStore } from '../lib/credentials.js';
8
+ import { grantedCliScopes, OAuthClient } from '../lib/oauth-client.js';
9
+ export { grantedCliScopes } from '../lib/oauth-client.js';
10
+ import { generatePkce } from '../lib/pkce.js';
11
+ import { enableCapture, disableCapture } from '../runtime/capture.js';
12
+ import { migrateLegacyFlatState, switchCurrentAccount, clearCurrentAccount, getBrainHome, getCurrentAccountId, readPreferences, resolveStateDir, sanitizeAccountId, SERVICE_ACCOUNT_ID, } from '../runtime/storage.js';
13
+ import { clearOrientCache } from '../runtime/orient.js';
14
+ import { withSessionLock } from '../runtime/lock.js';
15
+ const MAX_SERVICE_TOKEN_STDIN_BYTES = 64 * 1024;
16
+ async function resolveStore(store, allowFileCredentials, baseDir) {
17
+ if (store)
18
+ return { store, backend: 'memory' };
19
+ return createDefaultCredentialStore({
20
+ baseDir,
21
+ allowFileCredentials,
22
+ persistFileAcknowledgement: allowFileCredentials,
23
+ });
24
+ }
25
+ async function defaultOpenBrowser(url) {
26
+ const command = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'cmd' : 'xdg-open';
27
+ const args = process.platform === 'win32' ? ['/c', 'start', '', url] : [url];
28
+ return await new Promise((resolve) => {
29
+ const child = spawn(command, args, { stdio: 'ignore', detached: true });
30
+ child.unref();
31
+ child.on('error', () => resolve(false));
32
+ child.on('close', (code) => resolve(code === 0));
33
+ });
34
+ }
35
+ async function readStdinServiceToken() {
36
+ const chunks = [];
37
+ let total = 0;
38
+ for await (const chunk of stdin) {
39
+ const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
40
+ total += buffer.length;
41
+ if (total > MAX_SERVICE_TOKEN_STDIN_BYTES) {
42
+ throw new Error(`Service token input exceeds ${MAX_SERVICE_TOKEN_STDIN_BYTES} bytes.`);
43
+ }
44
+ chunks.push(buffer);
45
+ }
46
+ return Buffer.concat(chunks).toString('utf8').trim().split(/\r?\n/, 1)[0] ?? '';
47
+ }
48
+ export function resetCompanionLocalState(home) {
49
+ clearOrientCache(home);
50
+ disableCapture({ baseDir: home });
51
+ }
52
+ /** Commit local identity only after the remote exchange has finished. */
53
+ export async function commitCompanionCredentials(input) {
54
+ const commit = async () => {
55
+ const previous = await input.store.get();
56
+ if (previous && !input.force)
57
+ throw new Error('Already authenticated. Pass --force to replace the stored credentials.');
58
+ const previousAccount = input.home ? getCurrentAccountId(input.home) : null;
59
+ const accountId = input.credentials.userId;
60
+ // Unclaimed legacy state belongs to its known old identity, never to the
61
+ // account selected by a replacement login. Unknown-owner state stays flat.
62
+ if (input.home && !previousAccount && previous?.userId)
63
+ migrateLegacyFlatState(input.home, previous.userId);
64
+ const stateDir = input.home ? switchCurrentAccount(input.home, accountId) : null;
65
+ try {
66
+ await input.store.withRefreshLock(async () => { await input.store.set(input.credentials); });
67
+ if (input.home)
68
+ switchCurrentAccount(input.home, accountId);
69
+ if (stateDir) {
70
+ resetCompanionLocalState(stateDir);
71
+ if (input.captureWorkspaceId)
72
+ enableCapture({ baseDir: stateDir, workspaceId: input.captureWorkspaceId });
73
+ }
74
+ }
75
+ catch (error) {
76
+ if (input.home && getCurrentAccountId(input.home) === sanitizeAccountId(accountId)) {
77
+ if (previousAccount)
78
+ switchCurrentAccount(input.home, previousAccount);
79
+ else
80
+ clearCurrentAccount(input.home);
81
+ }
82
+ throw error;
83
+ }
84
+ };
85
+ if (input.home)
86
+ await withSessionLock('account-switch', commit, { baseDir: path.join(input.home, 'shared') });
87
+ else
88
+ await commit();
89
+ }
90
+ function companionRuntimeHome(options) {
91
+ const home = options.runtimeHome ?? process.env.BRAINMCP_HOME ?? process.env.BRAIN_HOME;
92
+ if (home)
93
+ return home;
94
+ if (options.store)
95
+ return null;
96
+ return getBrainHome();
97
+ }
98
+ export async function login(options = {}) {
99
+ const output = options.output ?? console.log;
100
+ const errorOutput = options.errorOutput ?? console.error;
101
+ const { store } = options.serviceTokenStdin && !options.storeServiceToken
102
+ ? { store: options.store ?? new MemoryCredentialStore() }
103
+ : await resolveStore(options.store, options.allowFileCredentials, options.runtimeHome);
104
+ const oauthClient = options.oauthClient ?? new OAuthClient();
105
+ if (options.serviceTokenStdin) {
106
+ if (options.captureDigests) {
107
+ throw new Error('Service-token login cannot be mixed with --capture-digests.');
108
+ }
109
+ const token = (await (options.readServiceToken ?? readStdinServiceToken)()).trim();
110
+ if (!token) {
111
+ throw new Error('No service token received on stdin.');
112
+ }
113
+ if (Buffer.byteLength(token, 'utf8') > MAX_SERVICE_TOKEN_STDIN_BYTES) {
114
+ throw new Error(`Service token input exceeds ${MAX_SERVICE_TOKEN_STDIN_BYTES} bytes.`);
115
+ }
116
+ if (options.storeServiceToken) {
117
+ await commitCompanionCredentials({ home: companionRuntimeHome(options), store, force: options.force, credentials: {
118
+ version: 1,
119
+ authType: 'service',
120
+ serviceToken: token,
121
+ userId: SERVICE_ACCOUNT_ID,
122
+ updatedAt: new Date().toISOString(),
123
+ } });
124
+ }
125
+ else {
126
+ process.env.BRAINMCP_SERVICE_TOKEN = token;
127
+ }
128
+ const envelope = {
129
+ status: 'authenticated',
130
+ authType: 'service',
131
+ clientId: 'service-token',
132
+ scopes: [],
133
+ };
134
+ if (options.json) {
135
+ output(JSON.stringify(envelope, null, 2));
136
+ }
137
+ else {
138
+ output(options.storeServiceToken
139
+ ? '✓ Service token stored locally. This credential cannot call /orient or enable lifecycle capture.'
140
+ : '✓ Service token accepted for this process only. It was not written to disk.');
141
+ }
142
+ return;
143
+ }
144
+ const existing = await store.get();
145
+ if (existing && !options.force) {
146
+ throw new Error('Already authenticated. Pass --force to replace the stored companion credentials.');
147
+ }
148
+ const scopes = [...BRAINMCP_CLI_DEFAULT_SCOPES];
149
+ if (options.captureDigests) {
150
+ scopes.push('digests:write');
151
+ }
152
+ const pkce = generatePkce();
153
+ const callbackServer = await startCallbackServer({
154
+ expectedState: pkce.state,
155
+ timeoutMs: 300_000,
156
+ });
157
+ try {
158
+ const endpoints = await oauthClient.discoverEndpoints();
159
+ const authUrl = oauthClient.buildAuthorizationUrl({
160
+ authorizationEndpoint: endpoints.authorizationEndpoint,
161
+ redirectUri: callbackServer.redirectUri,
162
+ pkce,
163
+ scopes,
164
+ });
165
+ const humanOutput = options.json ? errorOutput : output;
166
+ if (options.captureDigests) {
167
+ humanOutput('Digest capture will upload bounded host/model labels, Git metadata, relative edited paths, and stable assistant summaries to Brain. Prompts, transcripts, file contents, and tool payloads are excluded. Disable with `brainmcp capture disable`.');
168
+ }
169
+ humanOutput('Opening browser to authenticate with BrainMCP:');
170
+ humanOutput(` ${authUrl}`);
171
+ humanOutput('If the browser did not open automatically, copy and paste the URL above into your browser.\n');
172
+ const opener = options.openBrowser ??
173
+ (stdin.isTTY === true ? defaultOpenBrowser : undefined);
174
+ if (opener) {
175
+ await opener(authUrl).catch(() => false);
176
+ }
177
+ const callbackResult = await callbackServer.waitForCallback();
178
+ if (callbackResult.error) {
179
+ throw new Error(`Authentication rejected by provider: ${callbackResult.errorDescription || callbackResult.error}`);
180
+ }
181
+ if (!callbackResult.code) {
182
+ throw new Error('No authorization code received from callback.');
183
+ }
184
+ const tokenResponse = await oauthClient.exchangeCodeForTokens({
185
+ tokenEndpoint: endpoints.tokenEndpoint,
186
+ code: callbackResult.code,
187
+ redirectUri: callbackServer.redirectUri,
188
+ codeVerifier: pkce.verifier,
189
+ });
190
+ const now = new Date();
191
+ const expiresAt = tokenResponse.expires_in
192
+ ? new Date(now.getTime() + tokenResponse.expires_in * 1000).toISOString()
193
+ : undefined;
194
+ const grantedScopes = grantedCliScopes(scopes, typeof tokenResponse.scope === 'string' ? tokenResponse.scope : undefined);
195
+ const credentialsRecord = {
196
+ version: 1,
197
+ authType: 'oauth',
198
+ accessToken: tokenResponse.access_token,
199
+ refreshToken: tokenResponse.refresh_token,
200
+ expiresAt,
201
+ clientId: oauthClient.clientId,
202
+ scopes: grantedScopes,
203
+ updatedAt: now.toISOString(),
204
+ };
205
+ const home = companionRuntimeHome(options);
206
+ const apiClient = options.apiClient ?? new ApiClient({ store, oauthClient });
207
+ const listed = await apiClient.request('/api/mcp/workspaces', {
208
+ timeoutMs: 3_000,
209
+ headers: { Authorization: `Bearer ${tokenResponse.access_token}` },
210
+ });
211
+ if (listed.account?.clientId !== BRAINMCP_CLI_CLIENT_ID) {
212
+ throw new Error('The issued OAuth token is not bound to the BrainMCP CLI client.');
213
+ }
214
+ if (!listed.account?.authorizationId) {
215
+ throw new Error('The OAuth server did not return the companion authorization identity.');
216
+ }
217
+ if (!listed.account?.userId?.trim()) {
218
+ throw new Error('The OAuth server did not return the companion account identity.');
219
+ }
220
+ const ids = (listed.workspaces ?? [])
221
+ .map((workspace) => workspace.id)
222
+ .filter((id) => typeof id === 'string' && /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(id));
223
+ const defaultId = listed.workspaces?.find((workspace) => workspace.isDefault && typeof workspace.id === 'string')?.id ??
224
+ (ids.length === 1 ? ids[0] : null);
225
+ if (ids.length === 0 || !defaultId || !ids.includes(defaultId)) {
226
+ throw new Error('The OAuth server did not return an explicit companion workspace allowlist and valid default.');
227
+ }
228
+ credentialsRecord.workspaces = ids;
229
+ credentialsRecord.defaultWorkspaceId = defaultId ?? null;
230
+ credentialsRecord.userId = listed.account.userId.trim();
231
+ credentialsRecord.authorizationId = listed.account.authorizationId;
232
+ credentialsRecord.provenance = listed.account.provenance;
233
+ if (listed.account.scopes) {
234
+ credentialsRecord.scopes = grantedCliScopes(scopes, listed.account.scopes.join(' '));
235
+ }
236
+ await commitCompanionCredentials({ home, store, credentials: credentialsRecord, force: options.force,
237
+ captureWorkspaceId: options.captureDigests && credentialsRecord.scopes?.includes('digests:write')
238
+ ? credentialsRecord.defaultWorkspaceId ?? undefined : undefined });
239
+ const responseEnvelope = {
240
+ status: 'authenticated',
241
+ authType: 'oauth',
242
+ clientId: oauthClient.clientId,
243
+ scopes: credentialsRecord.scopes ?? grantedScopes,
244
+ workspaces: credentialsRecord.workspaces ?? [],
245
+ defaultWorkspaceId: credentialsRecord.defaultWorkspaceId ?? null,
246
+ provenance: credentialsRecord.provenance,
247
+ };
248
+ if (options.json) {
249
+ output(JSON.stringify(responseEnvelope, null, 2));
250
+ }
251
+ else {
252
+ output(`✓ Successfully authenticated with BrainMCP!`);
253
+ output(` Client: ${oauthClient.clientId}`);
254
+ output(` Scopes: ${grantedScopes.join(', ')}`);
255
+ }
256
+ }
257
+ finally {
258
+ await callbackServer.close().catch(() => { });
259
+ }
260
+ }
261
+ export async function logout(options = {}) {
262
+ const output = options.output ?? console.log;
263
+ const { store } = await resolveStore(options.store, true, options.runtimeHome);
264
+ const oauthClient = options.oauthClient ?? new OAuthClient();
265
+ const home = companionRuntimeHome(options);
266
+ const accountId = home ? getCurrentAccountId(home) : null;
267
+ const stateDir = home ? resolveStateDir(home) : null;
268
+ const current = await store.get();
269
+ if (!current) {
270
+ const res = {
271
+ status: 'logged_out',
272
+ clearedCredentials: false,
273
+ };
274
+ if (options.json) {
275
+ output(JSON.stringify(res, null, 2));
276
+ }
277
+ else {
278
+ output('Not currently logged in.');
279
+ }
280
+ return;
281
+ }
282
+ let revokedOnServer = false;
283
+ let warning;
284
+ if (current.authType === 'oauth' && (current.refreshToken || current.accessToken)) {
285
+ try {
286
+ const endpoints = await oauthClient.discoverEndpoints();
287
+ revokedOnServer = await oauthClient.revokeToken({
288
+ revocationEndpoint: endpoints.revocationEndpoint,
289
+ token: (current.refreshToken || current.accessToken),
290
+ });
291
+ if (!revokedOnServer) {
292
+ warning = 'Server token revocation returned a non-200 response; local credentials cleared.';
293
+ }
294
+ }
295
+ catch {
296
+ warning = 'Network error during server token revocation; local credentials cleared.';
297
+ }
298
+ }
299
+ const clearedCredentials = await store.withRefreshLock(async (latest) => {
300
+ if (!latest || latest.userId !== current.userId || latest.authorizationId !== current.authorizationId || latest.authType !== current.authType)
301
+ return false;
302
+ await store.clear();
303
+ if (stateDir)
304
+ resetCompanionLocalState(stateDir);
305
+ if (home && getCurrentAccountId(home) === accountId)
306
+ clearCurrentAccount(home);
307
+ return true;
308
+ });
309
+ if (!clearedCredentials)
310
+ warning = 'The active credentials changed during logout and were preserved.';
311
+ const responseEnvelope = {
312
+ status: 'logged_out',
313
+ authType: current.authType,
314
+ clearedCredentials,
315
+ revokedOnServer,
316
+ warning,
317
+ };
318
+ if (options.json) {
319
+ output(JSON.stringify(responseEnvelope, null, 2));
320
+ }
321
+ else {
322
+ output(clearedCredentials ? '✓ Successfully logged out from BrainMCP. Local credentials removed.' : 'The previous authorization was logged out; the new active credentials were preserved.');
323
+ if (warning) {
324
+ output(` Note: ${warning}`);
325
+ }
326
+ }
327
+ }
328
+ export async function whoami(options = {}) {
329
+ const output = options.output ?? console.log;
330
+ const { store, backend } = await resolveStore(options.store, true, options.runtimeHome);
331
+ const apiClient = options.apiClient ?? new ApiClient({ store });
332
+ const creds = await apiClient.getEffectiveCredentials();
333
+ if (!creds) {
334
+ const unauth = {
335
+ status: 'unauthenticated',
336
+ };
337
+ if (options.json) {
338
+ output(JSON.stringify(unauth, null, 2));
339
+ }
340
+ else {
341
+ output('Not logged in. Run `brainmcp login` to authenticate.');
342
+ }
343
+ return;
344
+ }
345
+ const prefs = readPreferences(options.runtimeHome ?? process.env.BRAINMCP_HOME ?? process.env.BRAIN_HOME);
346
+ const responseEnvelope = {
347
+ status: 'authenticated',
348
+ authType: creds.authType,
349
+ userId: creds.userId ?? (creds.authType === 'service' ? SERVICE_ACCOUNT_ID : undefined),
350
+ clientId: creds.clientId ?? (creds.authType === 'service' ? 'service-token' : BRAINMCP_CLI_CLIENT_ID),
351
+ authorizationId: creds.authorizationId,
352
+ workspaces: creds.workspaces ?? [],
353
+ defaultWorkspaceId: creds.defaultWorkspaceId ?? null,
354
+ scopes: creds.scopes ?? [],
355
+ provenance: creds.provenance,
356
+ storageBackend: creds.authType === 'service' && creds.serviceToken === process.env.BRAINMCP_SERVICE_TOKEN ? 'env' : backend,
357
+ expiresAt: creds.expiresAt,
358
+ captureEnabled: Boolean(prefs?.consent.captureEnabled),
359
+ };
360
+ if (options.json) {
361
+ // Ensure no token is echoed
362
+ output(JSON.stringify(responseEnvelope, null, 2));
363
+ }
364
+ else {
365
+ output(`Status: Authenticated (${creds.authType})`);
366
+ if (responseEnvelope.clientId) {
367
+ output(`Client: ${responseEnvelope.clientId}`);
368
+ }
369
+ if (responseEnvelope.workspaces && responseEnvelope.workspaces.length > 0) {
370
+ output(`Authorized Workspaces: ${responseEnvelope.workspaces.join(', ')}`);
371
+ if (responseEnvelope.defaultWorkspaceId) {
372
+ output(`Default Workspace: ${responseEnvelope.defaultWorkspaceId}`);
373
+ }
374
+ }
375
+ if (responseEnvelope.scopes && responseEnvelope.scopes.length > 0) {
376
+ output(`Scopes: ${responseEnvelope.scopes.join(', ')}`);
377
+ }
378
+ if (responseEnvelope.storageBackend) {
379
+ output(`Storage: ${responseEnvelope.storageBackend}`);
380
+ }
381
+ if (responseEnvelope.expiresAt) {
382
+ output(`Expires: ${responseEnvelope.expiresAt}`);
383
+ }
384
+ output(`Capture: ${responseEnvelope.captureEnabled ? 'enabled' : 'disabled'}`);
385
+ if (responseEnvelope.provenance) {
386
+ output(`Consent Mode: ${responseEnvelope.provenance.consentMode} (${responseEnvelope.provenance.workspaceSelection})`);
387
+ }
388
+ }
389
+ }
390
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { previewCapturePurge } from '../runtime/retention.js';
2
+ import { ApiClient } from '../lib/api-client.js';
3
+ import { type CredentialStore } from '../lib/credentials.js';
4
+ export interface CaptureCommandOptions {
5
+ baseDir?: string;
6
+ includePrompts?: boolean;
7
+ dryRun?: boolean;
8
+ workspace?: string;
9
+ json?: boolean;
10
+ apiClient?: ApiClient;
11
+ store?: CredentialStore;
12
+ cwd?: string;
13
+ }
14
+ export declare function captureStatus(options?: CaptureCommandOptions): {
15
+ exitCode: number;
16
+ data: unknown;
17
+ };
18
+ export declare function captureEnable(options?: CaptureCommandOptions): Promise<{
19
+ exitCode: number;
20
+ data: unknown;
21
+ }>;
22
+ export declare function captureDisable(options?: CaptureCommandOptions): {
23
+ exitCode: number;
24
+ data: unknown;
25
+ };
26
+ export declare function captureNow(options?: CaptureCommandOptions): Promise<{
27
+ exitCode: number;
28
+ data: unknown;
29
+ }>;
30
+ export declare function capturePurgeLocal(options?: CaptureCommandOptions): {
31
+ exitCode: number;
32
+ data: unknown;
33
+ };
34
+ export declare function capturePurgePreview(options?: CaptureCommandOptions): ReturnType<typeof previewCapturePurge>;