gws-axi 0.5.0 → 0.6.1

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.
@@ -0,0 +1,45 @@
1
+ import { type StoredTokens } from "../google/tokens.js";
2
+ export type Permanence = "permanent" | "testing-7-day" | "pre-publish-7-day";
3
+ export interface AccountHealth {
4
+ email: string;
5
+ obtained_at: string;
6
+ permanence: Permanence;
7
+ permanence_detail: string;
8
+ }
9
+ /**
10
+ * Compare an account's token-issuance timestamp against the publish
11
+ * timestamp in setup state to classify token permanence. Returns null when
12
+ * the account has no stored tokens.
13
+ */
14
+ export declare function summarizeAccountHealth(email: string): AccountHealth | null;
15
+ export type UnverifiedAppWarning = "always" | "maybe";
16
+ /**
17
+ * Predict whether the "Google hasn't verified this app" intermediate
18
+ * screen will appear during the OAuth consent flow for `email`.
19
+ *
20
+ * - "always": personal Gmail account, OR app still in Testing state.
21
+ * The warning shows every time and the user must click "Advanced"
22
+ * and then "Go to <app name> (unsafe)" to proceed.
23
+ * - "maybe": Workspace account + published app. The warning is
24
+ * suppressed if the Workspace admin has added the OAuth client to
25
+ * their app-trust policy; otherwise it appears. We can't detect
26
+ * admin policy from this side, so we hedge.
27
+ *
28
+ * The action is the same either way (click Advanced → Go to (unsafe)),
29
+ * but the instruction can be more emphatic when we know it will fire.
30
+ */
31
+ export declare function predictUnverifiedAppWarning(email: string | undefined, published: boolean): UnverifiedAppWarning;
32
+ export interface RestrictedScopeProbe {
33
+ ok: boolean;
34
+ detail: string;
35
+ }
36
+ /**
37
+ * Probe the user's most-restricted scope to verify the unverified-app
38
+ * Restricted-scope access is actually working at the API level. We use
39
+ * Gmail's `users/me/profile` endpoint because it requires `gmail.modify`
40
+ * (a Restricted scope per Google's classification). A 200 here is the
41
+ * positive signal that "your tokens work for the most-stringent scope
42
+ * Google checks." Skipped (returned ok with a note) if the gmail scope
43
+ * wasn't granted to begin with.
44
+ */
45
+ export declare function probeRestrictedScope(tokens: StoredTokens): Promise<RestrictedScopeProbe>;
@@ -0,0 +1,112 @@
1
+ import { readSetupState } from "../config.js";
2
+ import { readTokens } from "../google/tokens.js";
3
+ import { SERVICE_SCOPES } from "./scopes.js";
4
+ /**
5
+ * Compare an account's token-issuance timestamp against the publish
6
+ * timestamp in setup state to classify token permanence. Returns null when
7
+ * the account has no stored tokens.
8
+ */
9
+ export function summarizeAccountHealth(email) {
10
+ const tokens = readTokens(email);
11
+ if (!tokens)
12
+ return null;
13
+ const state = readSetupState();
14
+ const obtainedMs = new Date(tokens.obtained_at).getTime();
15
+ if (!state.published) {
16
+ return {
17
+ email,
18
+ obtained_at: tokens.obtained_at,
19
+ permanence: "testing-7-day",
20
+ permanence_detail: "consent screen still in Testing — token expires after 7 days; run `auth publish` to lift the expiry",
21
+ };
22
+ }
23
+ const publishedMs = new Date(state.published.confirmed_at).getTime();
24
+ if (obtainedMs >= publishedMs) {
25
+ return {
26
+ email,
27
+ obtained_at: tokens.obtained_at,
28
+ permanence: "permanent",
29
+ permanence_detail: `permanent — issued ${formatDelta(obtainedMs - publishedMs)} after publish`,
30
+ };
31
+ }
32
+ return {
33
+ email,
34
+ obtained_at: tokens.obtained_at,
35
+ permanence: "pre-publish-7-day",
36
+ permanence_detail: `7-day clock — issued ${formatDelta(publishedMs - obtainedMs)} before publish; re-auth (\`gws-axi auth login --account ${email}\`) to upgrade`,
37
+ };
38
+ }
39
+ function formatDelta(ms) {
40
+ if (ms < 60_000)
41
+ return `${Math.round(ms / 1000)}s`;
42
+ if (ms < 3_600_000)
43
+ return `${Math.round(ms / 60_000)}m`;
44
+ if (ms < 86_400_000)
45
+ return `${Math.round(ms / 3_600_000)}h`;
46
+ return `${Math.round(ms / 86_400_000)}d`;
47
+ }
48
+ /**
49
+ * Predict whether the "Google hasn't verified this app" intermediate
50
+ * screen will appear during the OAuth consent flow for `email`.
51
+ *
52
+ * - "always": personal Gmail account, OR app still in Testing state.
53
+ * The warning shows every time and the user must click "Advanced"
54
+ * and then "Go to <app name> (unsafe)" to proceed.
55
+ * - "maybe": Workspace account + published app. The warning is
56
+ * suppressed if the Workspace admin has added the OAuth client to
57
+ * their app-trust policy; otherwise it appears. We can't detect
58
+ * admin policy from this side, so we hedge.
59
+ *
60
+ * The action is the same either way (click Advanced → Go to (unsafe)),
61
+ * but the instruction can be more emphatic when we know it will fire.
62
+ */
63
+ export function predictUnverifiedAppWarning(email, published) {
64
+ if (!email)
65
+ return "maybe";
66
+ const domain = email.split("@")[1]?.toLowerCase() ?? "";
67
+ const isPersonalGoogle = domain === "gmail.com" || domain === "googlemail.com";
68
+ if (!published)
69
+ return "always";
70
+ if (isPersonalGoogle)
71
+ return "always";
72
+ return "maybe";
73
+ }
74
+ /**
75
+ * Probe the user's most-restricted scope to verify the unverified-app
76
+ * Restricted-scope access is actually working at the API level. We use
77
+ * Gmail's `users/me/profile` endpoint because it requires `gmail.modify`
78
+ * (a Restricted scope per Google's classification). A 200 here is the
79
+ * positive signal that "your tokens work for the most-stringent scope
80
+ * Google checks." Skipped (returned ok with a note) if the gmail scope
81
+ * wasn't granted to begin with.
82
+ */
83
+ export async function probeRestrictedScope(tokens) {
84
+ const granted = tokens.scope.split(" ").filter(Boolean);
85
+ if (!granted.includes(SERVICE_SCOPES.gmail)) {
86
+ return {
87
+ ok: true,
88
+ detail: "skipped — gmail scope not granted (no restricted scope to verify)",
89
+ };
90
+ }
91
+ try {
92
+ const res = await fetch("https://gmail.googleapis.com/gmail/v1/users/me/profile", { headers: { authorization: `Bearer ${tokens.access_token}` } });
93
+ if (res.status === 200) {
94
+ return {
95
+ ok: true,
96
+ detail: "gmail.modify ✓ (verified via users/me/profile)",
97
+ };
98
+ }
99
+ const text = await res.text();
100
+ return {
101
+ ok: false,
102
+ detail: `${res.status} — ${text.slice(0, 120)}`,
103
+ };
104
+ }
105
+ catch (err) {
106
+ return {
107
+ ok: false,
108
+ detail: `network error: ${err instanceof Error ? err.message : String(err)}`,
109
+ };
110
+ }
111
+ }
112
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/auth/health.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,11 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
3
  import { createServer, } from "node:http";
4
4
  import { dirname } from "node:path";
5
5
  import { URL } from "node:url";
6
- import { credentialsPath, listAccounts, normalizeEmail, profilePathForAccount, setDefaultAccount, tokensPathForAccount, } from "../config.js";
6
+ import { credentialsPath, listAccounts, normalizeEmail, profilePathForAccount, readSetupState, setDefaultAccount, tokensPathForAccount, } from "../config.js";
7
7
  import { markStepDone } from "./state.js";
8
+ import { predictUnverifiedAppWarning } from "./health.js";
8
9
  import { allScopes } from "./scopes.js";
10
+ import { editDistance } from "../util/typo.js";
9
11
  import { clearPendingAuth, isPendingAuthExpired, readPendingAuth, writePendingAuth, } from "./pending.js";
10
12
  import { setupHtmlPath, writeSetupHtml } from "./setup-html.js";
11
13
  function collapseHome(path) {
@@ -113,23 +115,41 @@ async function waitForCallback(server, expectedState) {
113
115
  const code = u.searchParams.get("code");
114
116
  const state = u.searchParams.get("state");
115
117
  const errorParam = u.searchParams.get("error");
116
- res.statusCode = 200;
117
- res.setHeader("content-type", "text/html; charset=utf-8");
118
118
  if (errorParam) {
119
+ res.statusCode = 200;
120
+ res.setHeader("content-type", "text/html; charset=utf-8");
119
121
  res.end(errorPage(errorParam));
120
122
  clearTimeout(timeout);
121
123
  reject(new Error(`OAuth error: ${errorParam}`));
122
124
  return;
123
125
  }
124
126
  if (!code || state !== expectedState) {
127
+ res.statusCode = 200;
128
+ res.setHeader("content-type", "text/html; charset=utf-8");
125
129
  res.end(errorPage("invalid_state_or_missing_code"));
126
130
  clearTimeout(timeout);
127
131
  reject(new Error("OAuth callback missing code or state mismatch"));
128
132
  return;
129
133
  }
130
- res.end(successPage());
134
+ // Don't respond yet — hold the connection so the browser page can
135
+ // reflect the actual exchange/write outcome. The caller calls
136
+ // finalize() after attempting the rest of the flow.
137
+ const finalize = (result) => {
138
+ res.statusCode = 200;
139
+ res.setHeader("content-type", "text/html; charset=utf-8");
140
+ if (result.ok) {
141
+ res.end(successPage());
142
+ }
143
+ else {
144
+ res.end(errorPage(result.error));
145
+ }
146
+ };
131
147
  clearTimeout(timeout);
132
- resolve({ code, scope: u.searchParams.get("scope") ?? undefined });
148
+ resolve({
149
+ code,
150
+ scope: u.searchParams.get("scope") ?? undefined,
151
+ finalize,
152
+ });
133
153
  });
134
154
  });
135
155
  }
@@ -205,8 +225,18 @@ export async function preparePendingAuth(options = {}) {
205
225
  expires_at: expiresAt.toISOString(),
206
226
  };
207
227
  writePendingAuth(pending);
228
+ // Predict the unverified-app warning so the setup.html pending-auth
229
+ // panel can surface it prominently — users miss the small "Advanced"
230
+ // link and bail thinking the app is broken.
231
+ const setupState = readSetupState();
208
232
  writeSetupHtml({
209
- pendingAuth: { url: authUrl, account: options.expectedAccount },
233
+ pendingAuth: {
234
+ url: authUrl,
235
+ account: options.expectedAccount,
236
+ warnings: {
237
+ unverifiedApp: predictUnverifiedAppWarning(options.expectedAccount, !!setupState.published),
238
+ },
239
+ },
210
240
  });
211
241
  return {
212
242
  pending,
@@ -285,12 +315,13 @@ export async function awaitPendingAuth() {
285
315
  // whether this is the first-ever account (should be promoted to
286
316
  // default) vs. an additional one (default stays put).
287
317
  const accountsBefore = listAccounts();
318
+ let handle;
288
319
  try {
289
- const { code, scope } = await waitForCallback(server, pending.state);
320
+ handle = await waitForCallback(server, pending.state);
290
321
  const tokens = await exchangeCode({
291
322
  clientId: creds.client_id,
292
323
  clientSecret: creds.client_secret,
293
- code,
324
+ code: handle.code,
294
325
  redirectUri,
295
326
  verifier: pending.verifier,
296
327
  });
@@ -298,19 +329,34 @@ export async function awaitPendingAuth() {
298
329
  const authenticatedEmail = normalizeEmail(userinfo.email);
299
330
  if (pending.expected_account &&
300
331
  normalizeEmail(pending.expected_account) !== authenticatedEmail) {
332
+ const expected = pending.expected_account;
333
+ const distance = editDistance(expected, authenticatedEmail);
334
+ const looksLikeTypo = distance <= 2 && Math.abs(expected.length - authenticatedEmail.length) <= 2;
335
+ const browserMsg = looksLikeTypo
336
+ ? `Likely typo in --account. You signed in as ${authenticatedEmail}, but --account was ${expected} (off by ${distance} character${distance === 1 ? "" : "s"}). Re-run \`gws-axi auth login --account ${authenticatedEmail}\` to use the account you signed in as.`
337
+ : `Expected ${expected}, got ${authenticatedEmail}. Sign in as ${expected} and retry, or re-run with \`--account ${authenticatedEmail}\` if you meant the account you actually signed in as.`;
338
+ handle.finalize({ ok: false, error: browserMsg });
339
+ const cliInstructions = looksLikeTypo
340
+ ? [
341
+ `Looks like \`--account ${expected}\` had a typo (differs from the signed-in \`${authenticatedEmail}\` by ${distance} character${distance === 1 ? "" : "s"})`,
342
+ `Re-run: \`gws-axi auth login --account ${authenticatedEmail}\``,
343
+ ]
344
+ : [
345
+ `Re-run with: \`gws-axi auth login --account ${expected}\` and sign in as that account`,
346
+ `Or, if you meant the account you actually signed in as: \`gws-axi auth login --account ${authenticatedEmail}\``,
347
+ ];
301
348
  return {
302
349
  step,
303
350
  advanced: false,
304
- title: "Authenticated account does not match expected",
305
- error: `Expected ${pending.expected_account}, got ${authenticatedEmail}`,
351
+ title: looksLikeTypo
352
+ ? "Account mismatch — likely a typo in --account"
353
+ : "Authenticated account does not match expected",
354
+ error: `Expected ${expected}, got ${authenticatedEmail}`,
306
355
  code: "ACCOUNT_MISMATCH",
307
- instructions: [
308
- `Re-run with: \`gws-axi auth login --account ${pending.expected_account}\``,
309
- "Make sure you sign in as the correct account in the browser",
310
- ],
356
+ instructions: cliInstructions,
311
357
  };
312
358
  }
313
- const grantedScopes = (scope ?? tokens.scope).split(" ").filter(Boolean);
359
+ const grantedScopes = (handle.scope ?? tokens.scope).split(" ").filter(Boolean);
314
360
  const stored = {
315
361
  client_id: creds.client_id,
316
362
  access_token: tokens.access_token,
@@ -343,6 +389,8 @@ export async function awaitPendingAuth() {
343
389
  accounts: listAccounts(),
344
390
  latest_account: authenticatedEmail,
345
391
  });
392
+ // Token write succeeded — let the browser render the success page.
393
+ handle.finalize({ ok: true });
346
394
  return {
347
395
  step,
348
396
  advanced: true,
@@ -356,11 +404,15 @@ export async function awaitPendingAuth() {
356
404
  };
357
405
  }
358
406
  catch (err) {
407
+ const message = err instanceof Error ? err.message : String(err);
408
+ // If the browser request is still open (waitForCallback succeeded but
409
+ // a later step blew up), surface the error there too.
410
+ handle?.finalize({ ok: false, error: message });
359
411
  return {
360
412
  step,
361
413
  advanced: false,
362
414
  title: "OAuth flow failed",
363
- error: err instanceof Error ? err.message : String(err),
415
+ error: message,
364
416
  code: "OAUTH_FAILED",
365
417
  instructions: [
366
418
  "Check that the consent screen (step 5) and test user (step 6) are configured",
@@ -1 +1 @@
1
- {"version":3,"file":"loopback.js","sourceRoot":"","sources":["../../../src/auth/loopback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,YAAY,GAIb,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,GAErB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGhE,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACpC,OAAO,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAuCD,SAAS,eAAe;IACtB,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAoB,CAAC;QACvF,OAAO,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,QAAQ,CAAC,QAAQ,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAa,EACb,MAAoB,EACpB,OAAsB;IAEtB,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC9C,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,YAAY,CAAC,MAOrB;IACC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACxC,kEAAkE;IAClE,+DAA+D;IAC/D,mEAAmE;IACnE,mEAAmE;IACnE,iEAAiE;IACjE,gEAAgE;IAChE,+DAA+D;IAC/D,iEAAiE;IACjE,kDAAkD;IAClD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,MAM3B;IACC,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,YAAY,EAAE,MAAM,CAAC,WAAW;QAChC,UAAU,EAAE,oBAAoB;QAChC,aAAa,EAAE,MAAM,CAAC,QAAQ;KAC/B,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,qCAAqC,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI;KACL,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkB,CAAC;AAC7C,CAAC;AAUD,KAAK,UAAU,aAAa,CAAC,WAAmB;IAC9C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,kDAAkD,EAAE;QAC1E,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE;KACpD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAa,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,MAAc,EACd,aAAqB;IAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;QAC5E,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAEf,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAoB,EAAE,GAAmB,EAAE,EAAE;YACjE,IAAI,CAAC,GAAG,CAAC,GAAG;gBAAE,OAAO;YACrB,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YAC/C,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAC/B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE/C,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;YAE1D,IAAI,UAAU,EAAE,CAAC;gBACf,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC/B,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;gBACrC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC;gBACpD,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACvB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;;;4GAGmG,CAAC;AAC7G,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACrD,CAAC;IACF,OAAO;;;kDAGyC,OAAO,mEAAmE,CAAC;AAC7H,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,WAAW;IACxB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAI,MAAM,CAAC,OAAO,EAAkB,CAAC,IAAI,CAAC;IACpD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC;AAYD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAA0B,EAAE;IAE5B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,KAAK,EAAE,2DAA2D;YAClE,IAAI,EAAE,qBAAqB;SAC5B,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,qEAAqE;IACrE,qCAAqC;IACrC,gBAAgB,EAAE,CAAC;IAEnB,MAAM,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,oBAAoB,IAAI,WAAW,CAAC;IAExD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,YAAY,CAAC;QAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS;QACzB,WAAW;QACX,MAAM;QACN,SAAS;QACT,KAAK;QACL,SAAS,EAAE,OAAO,CAAC,eAAe;KACnC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,gDAAgD;IACzG,MAAM,OAAO,GAAgB;QAC3B,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,OAAO;QACZ,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,gBAAgB,EAAE,OAAO,CAAC,eAAe;QACzC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;QAC7B,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE1B,cAAc,CAAC;QACb,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE;KAChE,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,aAAa,EAAE;QACzB,kBAAkB,EAAE,IAAI;KACzB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,IAAI,GAAG,iBAA0B,CAAC;IAExC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,2BAA2B;YAClC,KAAK,EAAE,oFAAoF;YAC3F,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE;gBACZ,uDAAuD;gBACvD,2EAA2E;aAC5E;SACF,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,gBAAgB,EAAE,CAAC;QACnB,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,gCAAgC;YACvC,KAAK,EAAE,qDAAqD;YAC5D,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE;gBACZ,uEAAuE;aACxE;SACF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,yBAAyB;YAChC,KAAK,EAAE,wEAAwE;YAC/E,IAAI,EAAE,qBAAqB;YAC3B,YAAY,EAAE,CAAC,uDAAuD,CAAC;SACxE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,gCAAgC;YACvC,KAAK,EAAE,QAAQ,OAAO,CAAC,IAAI,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACnG,IAAI,EAAE,kBAAkB;YACxB,YAAY,EAAE;gBACZ,iEAAiE;gBACjE,kDAAkD;aACnD;SACF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,oBAAoB,OAAO,CAAC,IAAI,WAAW,CAAC;IAEhE,mEAAmE;IACnE,gEAAgE;IAChE,sDAAsD;IACtD,MAAM,cAAc,GAAG,YAAY,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,IAAI;YACJ,WAAW;YACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE1D,MAAM,kBAAkB,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1D,IACE,OAAO,CAAC,gBAAgB;YACxB,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,kBAAkB,EAC/D,CAAC;YACD,OAAO;gBACL,IAAI;gBACJ,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,+CAA+C;gBACtD,KAAK,EAAE,YAAY,OAAO,CAAC,gBAAgB,SAAS,kBAAkB,EAAE;gBACxE,IAAI,EAAE,kBAAkB;gBACxB,YAAY,EAAE;oBACZ,+CAA+C,OAAO,CAAC,gBAAgB,IAAI;oBAC3E,6DAA6D;iBAC9D;aACF,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzE,MAAM,MAAM,GAAiB;YAC3B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI;YAClD,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;YAC9B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QACF,MAAM,OAAO,GAAkB;YAC7B,KAAK,EAAE,kBAAkB;YACzB,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QACF,iBAAiB,CAAC,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAEvD,qEAAqE;QACrE,oEAAoE;QACpE,kEAAkE;QAClE,mEAAmE;QACnE,kEAAkE;QAClE,mEAAmE;QACnE,sDAAsD;QACtD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QACxC,CAAC;QAED,YAAY,CAAC,IAAI,EAAE;YACjB,QAAQ,EAAE,YAAY,EAAE;YACxB,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;QAEH,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE;gBACN,OAAO,EAAE,kBAAkB;gBAC3B,cAAc,EAAE,aAAa,CAAC,MAAM;gBACpC,gBAAgB,EAAE,SAAS,EAAE,CAAC,MAAM;gBACpC,WAAW,EAAE,oBAAoB,CAAC,kBAAkB,CAAC;aACtD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACvD,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE;gBACZ,8EAA8E;gBAC9E,sEAAsE;aACvE;SACF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,mEAAmE;QACnE,kEAAkE;QAClE,kEAAkE;QAClE,gEAAgE;QAChE,oDAAoD;QACpD,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,gBAAgB,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,cAAc,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAA0B,EAAE;IAE5B,MAAM,IAAI,GAAG,iBAA0B,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACxB,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,QAAQ,CAAC,IAAI,KAAK,qBAAqB;gBAC5C,CAAC,CAAC,iCAAiC;gBACnC,CAAC,CAAC,sBAAsB;YAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,YAAY,EAAE,CAAC,wDAAwD,CAAC;SACzE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACnD,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,2CAA2C;QAClD,YAAY,EAAE;YACZ,2BAA2B,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,+EAA+E,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,2BAA2B,gFAAgF,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,gCAAgC;YAClV,0HAA0H,QAAQ,CAAC,CAAC,CAAC,mBAAmB,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,6CAA6C;YACtN,oXAAoX;SACrX;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"loopback.js","sourceRoot":"","sources":["../../../src/auth/loopback.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,9 @@ export interface SetupHtmlOptions {
8
8
  pendingAuth?: {
9
9
  url: string;
10
10
  account?: string;
11
+ warnings?: {
12
+ unverifiedApp: "always" | "maybe";
13
+ };
11
14
  };
12
15
  }
13
16
  export declare function writeSetupHtml(options?: SetupHtmlOptions): string;
@@ -111,11 +111,28 @@ export function writeSetupHtml(options = {}) {
111
111
  }).join("\n");
112
112
  const now = new Date();
113
113
  const nowLabel = now.toLocaleTimeString();
114
+ const warnings = options.pendingAuth?.warnings;
115
+ const unverifiedBlock = warnings?.unverifiedApp === "always"
116
+ ? `<p class="warn-block">
117
+ <strong>⚠️ A "Google hasn't verified this app" screen will appear.</strong>
118
+ To proceed, click <strong>Advanced</strong> (small link below the warning),
119
+ then <strong>Go to &lt;app name&gt; (unsafe)</strong>. This is normal for
120
+ unverified personal-use OAuth apps and does not indicate any actual risk.
121
+ </p>`
122
+ : warnings?.unverifiedApp === "maybe"
123
+ ? `<p class="warn-block-soft">
124
+ If a "Google hasn't verified this app" screen appears, click
125
+ <strong>Advanced</strong> then <strong>Go to &lt;app name&gt; (unsafe)</strong>.
126
+ Workspace admins may have trusted this app already, in which case you
127
+ won't see the warning.
128
+ </p>`
129
+ : "";
114
130
  const pendingAuthBlock = options.pendingAuth
115
131
  ? `<div class="pending-auth">
116
132
  <div class="pending-auth-title">Waiting for authentication${options.pendingAuth.account ? ` as <code>${options.pendingAuth.account}</code>` : ""}</div>
117
133
  <p><strong>Wrong browser profile?</strong> If you're not currently signed into ${options.pendingAuth.account ? `<code>${options.pendingAuth.account}</code>` : "the target account"} in this browser, open <code>~/.config/gws-axi/setup.html</code> in the correct profile before clicking below — Google will pick up whichever account is active here.</p>
118
134
  <a class="auth-button" href="${options.pendingAuth.url}" target="_blank" rel="noopener">Authenticate with Google &rarr;</a>
135
+ ${unverifiedBlock}
119
136
  <p class="pending-auth-note">The CLI is listening for the callback on 127.0.0.1 — this button only works while <code>gws-axi auth login --wait</code> is blocking in your terminal. Sign in${options.pendingAuth.account ? ` as <code>${options.pendingAuth.account}</code>` : ""} at Google's prompt and approve the scopes.</p>
120
137
  </div>`
121
138
  : "";
@@ -178,6 +195,8 @@ ${accounts
178
195
  .pending-auth-note { font-size: 13px; color: #78350f; }
179
196
  .auth-button { display: inline-block; padding: 10px 20px; background: #4285f4; color: white; text-decoration: none; border-radius: 6px; font-weight: 500; margin: 8px 0; }
180
197
  .auth-button:hover { background: #3367d6; }
198
+ .warn-block { background: #fff7ed; border: 1px solid #fb923c; border-radius: 4px; padding: 10px 14px; margin: 12px 0; font-size: 14px; color: #7c2d12; }
199
+ .warn-block-soft { background: #fafafa; border: 1px solid #d4d4d8; border-radius: 4px; padding: 10px 14px; margin: 12px 0; font-size: 13px; color: #52525b; }
181
200
  table { width: 100%; border-collapse: collapse; }
182
201
  th, td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #e4e4e7; vertical-align: top; }
183
202
  th { background: #fafafa; font-size: 13px; color: #555; text-transform: uppercase; letter-spacing: 0.5px; }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-html.js","sourceRoot":"","sources":["../../../src/auth/setup-html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-html.js","sourceRoot":"","sources":["../../../src/auth/setup-html.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const AUTH_HELP = "usage: gws-axi auth <subcommand> [flags]\nsubcommands[7]:\n setup Progressive agent-guided OAuth setup (run repeatedly until complete)\n login Prepare OAuth flow (non-blocking by default); add --wait to block\n accounts List authenticated accounts\n use Set the default account: gws-axi auth use <email>\n revoke Delete an account's tokens: gws-axi auth revoke <email>\n status Terse one-line status\n reset Clear setup state, optionally from a specific step\nsetup flags[6]:\n --project <id> Use existing GCP project (step 1)\n --create-project <id> Create new GCP project (step 1, needs gcloud)\n --project-name <name> Display name when creating (step 1)\n --credentials-json <path> Path to downloaded OAuth client JSON (step 4)\n --test-user <email> Record test user email (step 6 metadata)\n --confirm-step <step> Mark a manual step done (consent_screen, test_user_added)\nlogin flags[2]:\n --account <email> Authenticate or re-auth a specific account\n --wait Block on the callback (up to 5 min). Run this\n AFTER instructing the user to click the\n Authenticate button on the setup page.\nreset flags[1]:\n --from <step> Clear from this step forward\nexamples:\n gws-axi auth setup\n gws-axi auth setup --create-project gws-axi-chris-9f3a\n gws-axi auth setup --credentials-json ~/Downloads/client_secret_xxx.json\n gws-axi auth login --account chris@personal.com # prepare only, returns fast\n gws-axi auth login --wait # blocks until user clicks\n gws-axi auth accounts\n gws-axi auth use chris@jarv.us\n gws-axi auth revoke chris@personal.com\nflow:\n For agent-driven auth: run `gws-axi auth login --account <email>`,\n relay the returned instructions to the user, THEN run\n `gws-axi auth login --wait`. Splitting lets the agent tell the user\n what to do before committing to the blocking callback wait.\n";
1
+ export declare const AUTH_HELP = "usage: gws-axi auth <subcommand> [flags]\nsubcommands[8]:\n setup Progressive agent-guided OAuth setup (run repeatedly until complete)\n login Authenticate or re-auth an account (prepares + blocks on callback by default)\n publish Walk through publishing the consent screen to \"In Production\"\n (lifts the 7-day Testing-state refresh-token expiry)\n accounts List authenticated accounts\n use Set the default account: gws-axi auth use <email>\n revoke Delete an account's tokens: gws-axi auth revoke <email>\n status Terse one-line status\n reset Clear setup state, optionally from a specific step\nsetup flags[6]:\n --project <id> Use existing GCP project (step 1)\n --create-project <id> Create new GCP project (step 1, needs gcloud)\n --project-name <name> Display name when creating (step 1)\n --credentials-json <path> Path to downloaded OAuth client JSON (step 4)\n --test-user <email> Record test user email (step 6 metadata)\n --confirm-step <step> Mark a manual step done (consent_screen, test_user_added)\nlogin flags[3]:\n --account <email> Authenticate or re-auth a specific account\n --no-wait Prepare only and return fast (for agent flows\n that want to relay instructions to the user\n before binding the callback server). Pair\n with a follow-up `auth login --wait`.\n --wait Block on the callback for a previously\n prepared session (paired with --no-wait).\npublish flags[1]:\n --confirm Mark the consent screen as published in\n setup state (after clicking \"PUBLISH APP\"\n in the Console).\nreset flags[1]:\n --from <step> Clear from this step forward\nexamples:\n gws-axi auth setup\n gws-axi auth setup --create-project gws-axi-chris-9f3a\n gws-axi auth setup --credentials-json ~/Downloads/client_secret_xxx.json\n gws-axi auth login --account chris@personal.com # prepares + blocks (default)\n gws-axi auth login --account chris@personal.com --no-wait # agent prepare-only\n gws-axi auth login --wait # agent block-only\n gws-axi auth publish # show publish walkthrough\n gws-axi auth publish --confirm # mark consent screen as published\n gws-axi auth accounts\n gws-axi auth use chris@jarv.us\n gws-axi auth revoke chris@personal.com\nflow:\n Humans: `gws-axi auth login --account <email>` is one command that\n prepares, prints a brief instruction, and waits for the OAuth\n callback (up to 5 min).\n Agents: pass --no-wait so the prepare returns immediately, relay the\n instructions to the user, then call `gws-axi auth login --wait` in\n a SEPARATE bash turn \u2014 the wait command binds the callback server\n and must be listening before the user clicks.\n";
2
2
  export declare function authCommand(args: string[]): Promise<string | Record<string, unknown>>;