@cleanslop/cli 0.1.0-beta.2 → 0.1.0-beta.21

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 (66) hide show
  1. package/README.md +5 -4
  2. package/assets/skill-core.md +25 -7
  3. package/dist/action.d.ts +4 -1
  4. package/dist/action.js +24 -0
  5. package/dist/action.js.map +1 -1
  6. package/dist/args.d.ts +1 -1
  7. package/dist/args.js +31 -9
  8. package/dist/args.js.map +1 -1
  9. package/dist/commands/credits.d.ts +30 -1
  10. package/dist/commands/credits.js +320 -43
  11. package/dist/commands/credits.js.map +1 -1
  12. package/dist/commands/email.js +22 -0
  13. package/dist/commands/email.js.map +1 -1
  14. package/dist/commands/link-login.js +4 -4
  15. package/dist/commands/link-login.js.map +1 -1
  16. package/dist/commands/login.d.ts +1 -0
  17. package/dist/commands/login.js +22 -8
  18. package/dist/commands/login.js.map +1 -1
  19. package/dist/commands/logout.d.ts +2 -1
  20. package/dist/commands/logout.js +48 -23
  21. package/dist/commands/logout.js.map +1 -1
  22. package/dist/commands/redeem.d.ts +7 -0
  23. package/dist/commands/redeem.js +33 -0
  24. package/dist/commands/redeem.js.map +1 -0
  25. package/dist/commands/scan-upload.js +48 -27
  26. package/dist/commands/scan-upload.js.map +1 -1
  27. package/dist/commands/scan.js +45 -4
  28. package/dist/commands/scan.js.map +1 -1
  29. package/dist/config.d.ts +3 -3
  30. package/dist/config.js +2 -2
  31. package/dist/config.js.map +1 -1
  32. package/dist/connect.d.ts +15 -0
  33. package/dist/connect.js +100 -0
  34. package/dist/connect.js.map +1 -0
  35. package/dist/credentials.d.ts +14 -0
  36. package/dist/credentials.js +25 -7
  37. package/dist/credentials.js.map +1 -1
  38. package/dist/done-question.d.ts +20 -0
  39. package/dist/done-question.js +25 -0
  40. package/dist/done-question.js.map +1 -0
  41. package/dist/exit.d.ts +29 -0
  42. package/dist/exit.js +12 -0
  43. package/dist/exit.js.map +1 -1
  44. package/dist/git.d.ts +8 -1
  45. package/dist/git.js +35 -1
  46. package/dist/git.js.map +1 -1
  47. package/dist/http.js +74 -4
  48. package/dist/http.js.map +1 -1
  49. package/dist/link.d.ts +52 -11
  50. package/dist/link.js +169 -43
  51. package/dist/link.js.map +1 -1
  52. package/dist/main.js +8 -3
  53. package/dist/main.js.map +1 -1
  54. package/dist/output.js +6 -1
  55. package/dist/output.js.map +1 -1
  56. package/dist/pack.d.ts +19 -3
  57. package/dist/pack.js +30 -2
  58. package/dist/pack.js.map +1 -1
  59. package/dist/skill.d.ts +1 -1
  60. package/dist/skill.js +2 -1
  61. package/dist/skill.js.map +1 -1
  62. package/dist/top-up.d.ts +8 -0
  63. package/dist/top-up.js +35 -0
  64. package/dist/top-up.js.map +1 -0
  65. package/dist/types.d.ts +18 -1
  66. package/package.json +1 -1
package/dist/link.d.ts CHANGED
@@ -2,7 +2,8 @@ import type { CliDeps, GitResult } from "./deps.js";
2
2
  import type { ParsedArgs } from "./types.js";
3
3
  /**
4
4
  * Spend-request / SPT grant. Login never requests this. `credits buy` adds it
5
- * with `auth upgrade` (or `auth login` when there is no session yet).
5
+ * with `auth upgrade` (or `auth login` when there is no session yet), always
6
+ * alongside `LINK_LOGIN_SCOPE` so the session can still issue attestations.
6
7
  */
7
8
  export declare const LINK_PAYMENT_SCOPE = "payment_methods.agentic";
8
9
  /**
@@ -34,16 +35,26 @@ export declare function runLinkCli(deps: CliDeps, args: string[], opts?: {
34
35
  timeout?: number;
35
36
  }): Promise<GitResult>;
36
37
  export declare function linkScopeTokens(scope: unknown): string[];
38
+ /** What Link asks before the purchase approval itself. */
39
+ export type LinkPaymentStep = "approve" | "permission" | "sign-in";
40
+ /**
41
+ * Mirrors `ensureLinkPaymentScope` so the pack question can say what comes
42
+ * first. Best effort: a failed check falls back to "approve".
43
+ */
44
+ export declare function linkPaymentStep(deps: CliDeps): Promise<LinkPaymentStep>;
37
45
  export type LinkAuthMode = "wait" | "no-wait" | "resume";
38
46
  export declare function linkAuthMode(args: ParsedArgs): LinkAuthMode;
47
+ type LinkAuthOpts = {
48
+ mode?: LinkAuthMode;
49
+ command?: string;
50
+ };
39
51
  /**
40
52
  * Starts Link's device sign-in when link-cli has no session (a fresh machine or
41
- * cloud sandbox). Does not request `payment_methods.agentic`.
53
+ * cloud sandbox), or upgrades a session without `LINK_LOGIN_SCOPE` (one a cold
54
+ * payment login made with an older CLI). Does not request
55
+ * `payment_methods.agentic`.
42
56
  */
43
- export declare function ensureLinkAuth(deps: CliDeps, opts?: {
44
- mode?: LinkAuthMode;
45
- command?: string;
46
- }): Promise<void>;
57
+ export declare function ensureLinkAuth(deps: CliDeps, opts?: LinkAuthOpts): Promise<void>;
47
58
  /**
48
59
  * Ensures the Link session can create spend requests. Existing sessions that
49
60
  * already granted `payment_methods.agentic` are left as-is. A session without
@@ -54,8 +65,22 @@ export declare function ensureLinkPaymentScope(deps: CliDeps, opts?: {
54
65
  mode?: LinkAuthMode;
55
66
  command?: string;
56
67
  }): Promise<void>;
57
- /** Refills an empty pool. Link issues attestations without a per-request approval. */
58
- export declare function popAttestation(deps: CliDeps): Promise<LinkAttestation>;
68
+ /** Upgrades the session to `LINK_PAYMENT_GRANT_SCOPE`, starting a new approval under --resume. */
69
+ export declare function grantLinkPayments(deps: CliDeps, opts?: {
70
+ mode?: LinkAuthMode;
71
+ command?: string;
72
+ }): Promise<void>;
73
+ /**
74
+ * Signs in to Link when needed, then pops an attestation, refilling an empty
75
+ * pool (Link issues attestations without a per-request approval). When Link
76
+ * refuses the refill for a missing scope that `auth status` did not report,
77
+ * upgrades the session once and retries.
78
+ */
79
+ export declare function linkAttestation(deps: CliDeps, opts?: LinkAuthOpts): Promise<LinkAttestation>;
80
+ /**
81
+ * One API call with the signed-in session: nothing for the human to approve,
82
+ * so a failure is a Link or session error (`login --link` then offers GitHub).
83
+ */
59
84
  export declare function requestLinkCredentials(deps: CliDeps): Promise<void>;
60
85
  export declare function presentLinkIdentity(deps: CliDeps, input: {
61
86
  aud: string;
@@ -81,8 +106,12 @@ export type SpendRequestSnapshot = {
81
106
  approvalUrl: string | null;
82
107
  };
83
108
  export declare function parseSpendRequestJson(stdout: string): SpendRequestSnapshot | null;
84
- /** Hidden test override. Exact `"1"` appends `--test` on spend-request create. */
85
- export declare function linkSpendRequestTestArgs(deps: CliDeps): string[];
109
+ /**
110
+ * Link only issues a token when the spend request's mode matches the network
111
+ * profile's, so a `profile_test_` id from a `sk_test_` server means test mode.
112
+ * `CLEANSLOP_LINK_TEST=1` (exact) stays as a hidden override.
113
+ */
114
+ export declare function linkSpendRequestTestMode(deps: CliDeps, networkId: string): boolean;
86
115
  export declare function isLinkSpendRequestNotFound(result: GitResult): boolean;
87
116
  export declare function createLinkSpendRequest(deps: CliDeps, input: {
88
117
  networkId: string;
@@ -92,11 +121,22 @@ export declare function createLinkSpendRequest(deps: CliDeps, input: {
92
121
  lineItem: string;
93
122
  total: string;
94
123
  idempotencyKey: string;
124
+ testMode: boolean;
95
125
  }): Promise<SpendRequestSnapshot>;
126
+ /**
127
+ * Called when Link refuses a call for a missing scope. Resolves true after
128
+ * fixing the session (the call is retried once), false to fail as is.
129
+ */
130
+ export type OnMissingScope = () => Promise<boolean>;
96
131
  export declare function retrieveLinkSpendRequest(deps: CliDeps, spendRequestId: string, opts?: {
97
132
  includeSpt?: boolean;
133
+ testMode?: boolean;
134
+ onMissingScope?: OnMissingScope;
98
135
  }): Promise<SpendRequestSnapshot>;
99
- export declare function retrieveSharedPaymentToken(deps: CliDeps, spendRequestId: string): Promise<string | null>;
136
+ export declare function retrieveSharedPaymentToken(deps: CliDeps, spendRequestId: string, opts?: {
137
+ testMode?: boolean;
138
+ onMissingScope?: OnMissingScope;
139
+ }): Promise<string | null>;
100
140
  export declare function linkSignupBody(deps: CliDeps, acceptTerms: string, consentSource: LinkConsentSource): {
101
141
  client: string;
102
142
  agentHint: string;
@@ -104,3 +144,4 @@ export declare function linkSignupBody(deps: CliDeps, acceptTerms: string, conse
104
144
  acceptTerms: string;
105
145
  consentSource: LinkConsentSource;
106
146
  };
147
+ export {};
package/dist/link.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { writeAction } from "./action.js";
2
2
  import { CLIENT_ID, LINK_CLI_NPX_TIMEOUT_MS, LINK_CLI_PACKAGE, LINK_CLI_TIMEOUT_MS, } from "./config.js";
3
+ import { doneQuestion, RERUN_SAME_COMMAND, RESUME_SAME_COMMAND } from "./done-question.js";
3
4
  import { actionError, CliError, EXIT_ACTION, EXIT_UNEXPECTED, usageError, } from "./exit.js";
4
5
  import { detectAgentHint } from "./git.js";
5
6
  import { asRecord } from "./http.js";
@@ -9,7 +10,8 @@ const EMPTY_POOL_HINT = "Link did not issue agent attestations. Run `cleanslop l
9
10
  const LINK_AUTH_CLIENT_NAME = "CleanSlop";
10
11
  /**
11
12
  * Spend-request / SPT grant. Login never requests this. `credits buy` adds it
12
- * with `auth upgrade` (or `auth login` when there is no session yet).
13
+ * with `auth upgrade` (or `auth login` when there is no session yet), always
14
+ * alongside `LINK_LOGIN_SCOPE` so the session can still issue attestations.
13
15
  */
14
16
  export const LINK_PAYMENT_SCOPE = "payment_methods.agentic";
15
17
  /**
@@ -19,11 +21,17 @@ export const LINK_PAYMENT_SCOPE = "payment_methods.agentic";
19
21
  * `user-info retrieve`.
20
22
  */
21
23
  export const LINK_LOGIN_SCOPE = "userinfo:read";
24
+ /**
25
+ * Attestations need `LINK_LOGIN_SCOPE`. link-cli's `auth upgrade` drops the
26
+ * session's old scopes when its refresh fails, so payment grants ask again.
27
+ */
28
+ const LINK_PAYMENT_GRANT_SCOPE = `${LINK_LOGIN_SCOPE} ${LINK_PAYMENT_SCOPE}`;
22
29
  export const LINK_IDENTITY_CLAIMS = ["email", "email_verified"];
23
30
  const LINK_AUTH_POLL_MS = 5_000;
24
31
  const LINK_AUTH_WAIT_MS = 5 * 60_000;
25
32
  const LINK_ATTESTATION_BATCH = "10";
26
33
  const EMPTY_POOL_PATTERN = /pool is empty|ATTESTATION_POOL_EMPTY|no attestation/i;
34
+ const MISSING_SCOPE_PATTERN = /missing required scopes/i;
27
35
  const MISSING_CREDENTIAL_PATTERN = /no saved identity credential|no credential|not found|empty/i;
28
36
  function linkEnv(deps) {
29
37
  return {
@@ -77,6 +85,12 @@ function throwLinkCliFailure(result, fallback) {
77
85
  throw actionError(LINK_INSTALL_HINT, {
78
86
  kind: "ask_human",
79
87
  humanPrompt: LINK_INSTALL_HINT,
88
+ question: doneQuestion({
89
+ id: "install_link_cli",
90
+ header: "Install",
91
+ question: "CleanSlop needs Stripe's link-cli. Install Node.js (with npm), or set CLEANSLOP_LINK_CLI to link-cli's path. Done?",
92
+ then: { next: RERUN_SAME_COMMAND },
93
+ }),
80
94
  });
81
95
  }
82
96
  if (EMPTY_POOL_PATTERN.test(`${result.stderr} ${result.stdout}`)) {
@@ -116,11 +130,31 @@ async function readLinkSession(deps) {
116
130
  throwLinkCliFailure(result, "Could not check the Link session.");
117
131
  const json = parseLinkJson(result.stdout);
118
132
  const authenticated = json?.authenticated === true;
133
+ // link-cli only reports `scope` when Link's token response carries it, so
134
+ // an unreported scope is not treated as missing.
135
+ const scopes = authenticated ? linkScopeTokens(json?.scope) : [];
119
136
  return {
120
137
  authenticated,
121
- hasPaymentScope: authenticated && linkScopeTokens(json?.scope).includes(LINK_PAYMENT_SCOPE),
138
+ hasPaymentScope: scopes.includes(LINK_PAYMENT_SCOPE),
139
+ missingLoginScope: scopes.length > 0 && !scopes.includes(LINK_LOGIN_SCOPE),
140
+ missingPaymentScope: scopes.length > 0 && !scopes.includes(LINK_PAYMENT_SCOPE),
122
141
  };
123
142
  }
143
+ /**
144
+ * Mirrors `ensureLinkPaymentScope` so the pack question can say what comes
145
+ * first. Best effort: a failed check falls back to "approve".
146
+ */
147
+ export async function linkPaymentStep(deps) {
148
+ try {
149
+ const session = await readLinkSession(deps);
150
+ if (!session.authenticated)
151
+ return "sign-in";
152
+ return session.hasPaymentScope ? "approve" : "permission";
153
+ }
154
+ catch {
155
+ return "approve";
156
+ }
157
+ }
124
158
  export function linkAuthMode(args) {
125
159
  if (args.noWait && args.resume) {
126
160
  throw usageError("Use either --no-wait or --resume, not both.");
@@ -129,17 +163,35 @@ export function linkAuthMode(args) {
129
163
  return "no-wait";
130
164
  return args.resume ? "resume" : "wait";
131
165
  }
132
- function linkAuthAsk(kind) {
133
- switch (kind) {
134
- case "login":
135
- return "Ask the human to open this link and approve CleanSlop in the Link app (Link may also send a notification).";
136
- case "upgrade":
137
- return "Ask the human to open this link and allow CleanSlop to request Link payments (Link may also send a notification).";
138
- default: {
139
- const _exhaustive = kind;
140
- return _exhaustive;
141
- }
142
- }
166
+ /** Whether this approval lets CleanSlop request payments (a cold `credits buy` login does too). */
167
+ function grantsPayments(scope) {
168
+ return linkScopeTokens(scope).includes(LINK_PAYMENT_SCOPE);
169
+ }
170
+ /**
171
+ * The payment permission is not a payment, and agents read "approve" next to
172
+ * a pack price as "approve the purchase": say so in both prompt and question.
173
+ */
174
+ const NOT_THE_PAYMENT = "This only grants permission: nothing is charged now, and Link asks for the purchase separately next.";
175
+ function linkAuthWhat(kind, payments) {
176
+ if (!payments)
177
+ return "approve CleanSlop in Link";
178
+ return kind === "login"
179
+ ? "sign in and allow CleanSlop to request Link payments"
180
+ : "allow CleanSlop to request Link payments";
181
+ }
182
+ function linkAuthAsk(kind, payments) {
183
+ const ask = `Ask the human to open this link and ${linkAuthWhat(kind, payments)}.`;
184
+ return payments ? `${ask} ${NOT_THE_PAYMENT}` : ask;
185
+ }
186
+ function linkAuthQuestion(kind, payments, url, phrase) {
187
+ const check = phrase ? `, check the phrase "${phrase}",` : "";
188
+ const note = payments ? ` ${NOT_THE_PAYMENT}` : "";
189
+ return doneQuestion({
190
+ id: "link_approval",
191
+ header: payments ? "Permission" : "Sign in",
192
+ question: `Open ${url}${check} and ${linkAuthWhat(kind, payments)}.${note} Done?`,
193
+ then: { next: RESUME_SAME_COMMAND },
194
+ });
143
195
  }
144
196
  /**
145
197
  * Starts a Link device approval (`auth login` or `auth upgrade`) and prints the
@@ -149,6 +201,7 @@ function linkAuthAsk(kind) {
149
201
  */
150
202
  async function completeLinkDeviceAuth(deps, opts) {
151
203
  const { kind, scope, mode, command } = opts;
204
+ const payments = grantsPayments(scope);
152
205
  let approval = {};
153
206
  if (mode !== "resume") {
154
207
  const started = await runLinkCli(deps, [
@@ -162,7 +215,7 @@ async function completeLinkDeviceAuth(deps, opts) {
162
215
  "json",
163
216
  ]);
164
217
  if (!started.ok) {
165
- throwLinkCliFailure(started, kind === "upgrade"
218
+ throwLinkCliFailure(started, payments
166
219
  ? "Could not start a Link payment grant."
167
220
  : "Could not start Link sign-in.");
168
221
  }
@@ -173,12 +226,13 @@ async function completeLinkDeviceAuth(deps, opts) {
173
226
  throw new CliError("link-cli did not return a Link approval link.", EXIT_UNEXPECTED);
174
227
  }
175
228
  approval = { url, ...(phrase ? { code: phrase } : {}) };
176
- const ask = linkAuthAsk(kind);
229
+ const ask = linkAuthAsk(kind, payments);
177
230
  if (mode === "no-wait") {
178
- throw actionError("Link approval pending.", {
231
+ throw actionError(payments ? "Link payment permission pending." : "Link approval pending.", {
179
232
  kind: "approve",
180
233
  humanPrompt: `${ask} After they approve, run the same command with --resume instead of --no-wait.`,
181
234
  ...approval,
235
+ question: linkAuthQuestion(kind, payments, url, phrase),
182
236
  });
183
237
  }
184
238
  writeAction(deps, {
@@ -202,15 +256,32 @@ async function completeLinkDeviceAuth(deps, opts) {
202
256
  humanPrompt: `The Link approval was not completed in time. Run \`${command}${mode === "resume" ? " --no-wait" : ""}\` again for a new link.`,
203
257
  });
204
258
  }
259
+ /**
260
+ * `--resume` only polls an approval link-cli already has pending. A signed-in
261
+ * session that still needs an upgrade has none pending, so start one and exit.
262
+ */
263
+ function upgradeMode(mode) {
264
+ return mode === "resume" ? "no-wait" : mode;
265
+ }
205
266
  /**
206
267
  * Starts Link's device sign-in when link-cli has no session (a fresh machine or
207
- * cloud sandbox). Does not request `payment_methods.agentic`.
268
+ * cloud sandbox), or upgrades a session without `LINK_LOGIN_SCOPE` (one a cold
269
+ * payment login made with an older CLI). Does not request
270
+ * `payment_methods.agentic`.
208
271
  */
209
272
  export async function ensureLinkAuth(deps, opts = {}) {
210
- if ((await readLinkSession(deps)).authenticated)
273
+ const session = await readLinkSession(deps);
274
+ if (session.authenticated && !session.missingLoginScope)
211
275
  return;
212
- await completeLinkDeviceAuth(deps, {
213
- kind: "login",
276
+ if (!session.authenticated) {
277
+ await addLinkLoginScope(deps, "login", opts);
278
+ return;
279
+ }
280
+ await addLinkLoginScope(deps, "upgrade", { ...opts, mode: upgradeMode(opts.mode) });
281
+ }
282
+ function addLinkLoginScope(deps, kind, opts) {
283
+ return completeLinkDeviceAuth(deps, {
284
+ kind,
214
285
  scope: LINK_LOGIN_SCOPE,
215
286
  mode: opts.mode ?? "wait",
216
287
  command: opts.command ?? "cleanslop login --link",
@@ -229,7 +300,7 @@ export async function ensureLinkPaymentScope(deps, opts = {}) {
229
300
  if (!session.authenticated) {
230
301
  await completeLinkDeviceAuth(deps, {
231
302
  kind: "login",
232
- scope: LINK_PAYMENT_SCOPE,
303
+ scope: LINK_PAYMENT_GRANT_SCOPE,
233
304
  mode,
234
305
  command,
235
306
  });
@@ -237,11 +308,19 @@ export async function ensureLinkPaymentScope(deps, opts = {}) {
237
308
  }
238
309
  if (session.hasPaymentScope)
239
310
  return;
240
- await completeLinkDeviceAuth(deps, {
311
+ // Under --resume, an unreported scope is most likely the grant the human
312
+ // just approved; a refusal from Link still upgrades (`grantLinkPayments`).
313
+ if (mode === "resume" && !session.missingPaymentScope)
314
+ return;
315
+ await grantLinkPayments(deps, { mode, command });
316
+ }
317
+ /** Upgrades the session to `LINK_PAYMENT_GRANT_SCOPE`, starting a new approval under --resume. */
318
+ export function grantLinkPayments(deps, opts = {}) {
319
+ return completeLinkDeviceAuth(deps, {
241
320
  kind: "upgrade",
242
- scope: LINK_PAYMENT_SCOPE,
243
- mode,
244
- command,
321
+ scope: LINK_PAYMENT_GRANT_SCOPE,
322
+ mode: upgradeMode(opts.mode) ?? "wait",
323
+ command: opts.command ?? "cleanslop credits buy --link",
245
324
  });
246
325
  }
247
326
  async function tryPopAttestation(deps) {
@@ -261,12 +340,8 @@ async function tryPopAttestation(deps) {
261
340
  const authorization = typeof json?.authorization === "string" ? json.authorization.trim() : "";
262
341
  return authorization ? { authorization } : null;
263
342
  }
264
- /** Refills an empty pool. Link issues attestations without a per-request approval. */
265
- export async function popAttestation(deps) {
266
- const pooled = await tryPopAttestation(deps);
267
- if (pooled)
268
- return pooled;
269
- const requested = await runLinkCli(deps, [
343
+ function requestAttestations(deps) {
344
+ return runLinkCli(deps, [
270
345
  "identity",
271
346
  "attestations",
272
347
  "request",
@@ -275,6 +350,23 @@ export async function popAttestation(deps) {
275
350
  "--format",
276
351
  "json",
277
352
  ]);
353
+ }
354
+ /**
355
+ * Signs in to Link when needed, then pops an attestation, refilling an empty
356
+ * pool (Link issues attestations without a per-request approval). When Link
357
+ * refuses the refill for a missing scope that `auth status` did not report,
358
+ * upgrades the session once and retries.
359
+ */
360
+ export async function linkAttestation(deps, opts = {}) {
361
+ await ensureLinkAuth(deps, opts);
362
+ const pooled = await tryPopAttestation(deps);
363
+ if (pooled)
364
+ return pooled;
365
+ let requested = await requestAttestations(deps);
366
+ if (!requested.ok && MISSING_SCOPE_PATTERN.test(`${requested.stderr} ${requested.stdout}`)) {
367
+ await addLinkLoginScope(deps, "upgrade", { ...opts, mode: upgradeMode(opts.mode) });
368
+ requested = await requestAttestations(deps);
369
+ }
278
370
  if (!requested.ok) {
279
371
  throwLinkCliFailure(requested, "Could not request Link attestations.");
280
372
  }
@@ -286,6 +378,10 @@ export async function popAttestation(deps) {
286
378
  humanPrompt: EMPTY_POOL_HINT,
287
379
  });
288
380
  }
381
+ /**
382
+ * One API call with the signed-in session: nothing for the human to approve,
383
+ * so a failure is a Link or session error (`login --link` then offers GitHub).
384
+ */
289
385
  export async function requestLinkCredentials(deps) {
290
386
  // link-cli 0.27 has no claim filter on request; Link still mints a local
291
387
  // pack that can include name and phone. We only present email claims.
@@ -293,10 +389,7 @@ export async function requestLinkCredentials(deps) {
293
389
  timeout: 120_000,
294
390
  });
295
391
  if (!result.ok) {
296
- throw actionError("Link did not issue an identity credential.", {
297
- kind: "ask_human",
298
- humanPrompt: "Ask the human to check the Link app for a pending CleanSlop request, then run the same cleanslop command again.",
299
- });
392
+ throwLinkCliFailure(result, "Link did not issue an identity credential.");
300
393
  }
301
394
  }
302
395
  export async function presentLinkIdentity(deps, input) {
@@ -371,6 +464,26 @@ export function linkSignupQuestion(origin, termsUrl) {
371
464
  export function linkBridgeEmailQuestion(origin) {
372
465
  return `Connect your Link-verified email to this CleanSlop account (${origin})?`;
373
466
  }
467
+ /**
468
+ * Yes/No on the quoted consent question. Like the prose block, it never names
469
+ * the consent flag: the agent continues per its CleanSlop instructions only
470
+ * after the human's yes.
471
+ */
472
+ function consentQuestion(id, header, question) {
473
+ return {
474
+ id,
475
+ header,
476
+ question,
477
+ options: [
478
+ {
479
+ value: "yes",
480
+ label: "Yes",
481
+ next: "continue as your CleanSlop instructions say for a yes",
482
+ },
483
+ { value: "no", label: "No", description: "Stop here" },
484
+ ],
485
+ };
486
+ }
374
487
  export async function requireLinkSignupConsent(deps, args, origin) {
375
488
  const termsUrl = linkTermsUrl(origin);
376
489
  deps.io.stderr(`CleanSlop terms: ${termsUrl}\n`);
@@ -383,6 +496,7 @@ export async function requireLinkSignupConsent(deps, args, origin) {
383
496
  kind: "ask_human",
384
497
  humanPrompt: question,
385
498
  url: termsUrl,
499
+ question: consentQuestion("link_signup_consent", "Sign up", question),
386
500
  });
387
501
  }
388
502
  if (!(await deps.confirm(question))) {
@@ -402,6 +516,7 @@ export async function requireLinkBridgeConsent(deps, args, origin) {
402
516
  throw actionError("Human consent is required.", {
403
517
  kind: "ask_human",
404
518
  humanPrompt: question,
519
+ question: consentQuestion("link_email_consent", "Link email", question),
405
520
  });
406
521
  }
407
522
  const agreed = await deps.confirm(question);
@@ -501,9 +616,14 @@ export function parseSpendRequestJson(stdout) {
501
616
  }
502
617
  return null;
503
618
  }
504
- /** Hidden test override. Exact `"1"` appends `--test` on spend-request create. */
505
- export function linkSpendRequestTestArgs(deps) {
506
- return deps.env.get("CLEANSLOP_LINK_TEST")?.trim() === "1" ? ["--test"] : [];
619
+ /**
620
+ * Link only issues a token when the spend request's mode matches the network
621
+ * profile's, so a `profile_test_` id from a `sk_test_` server means test mode.
622
+ * `CLEANSLOP_LINK_TEST=1` (exact) stays as a hidden override.
623
+ */
624
+ export function linkSpendRequestTestMode(deps, networkId) {
625
+ return (deps.env.get("CLEANSLOP_LINK_TEST")?.trim() === "1" ||
626
+ networkId.startsWith("profile_test_"));
507
627
  }
508
628
  export function isLinkSpendRequestNotFound(result) {
509
629
  const text = `${result.stderr} ${result.stdout}`;
@@ -570,7 +690,7 @@ export async function createLinkSpendRequest(deps, input) {
570
690
  "--idempotency-key",
571
691
  input.idempotencyKey,
572
692
  "--request-approval",
573
- ...linkSpendRequestTestArgs(deps),
693
+ ...(input.testMode ? ["--test"] : []),
574
694
  "--format",
575
695
  "json",
576
696
  ]);
@@ -588,7 +708,13 @@ export async function retrieveLinkSpendRequest(deps, spendRequestId, opts = {})
588
708
  if (opts.includeSpt) {
589
709
  args.push("--include", "shared_payment_token");
590
710
  }
591
- const result = await runLinkCli(deps, args);
711
+ let result = await runLinkCli(deps, args);
712
+ if (!result.ok &&
713
+ opts.onMissingScope &&
714
+ MISSING_SCOPE_PATTERN.test(`${result.stderr} ${result.stdout}`) &&
715
+ (await opts.onMissingScope())) {
716
+ result = await runLinkCli(deps, args);
717
+ }
592
718
  if (result.ok) {
593
719
  const parsed = parseSpendRequestJson(result.stdout);
594
720
  if (!parsed) {
@@ -598,8 +724,7 @@ export async function retrieveLinkSpendRequest(deps, spendRequestId, opts = {})
598
724
  }
599
725
  // link-cli 0.27 create --test writes a test-mode id; retrieve has no --test
600
726
  // and 404s in live. List still sees the request.
601
- const testMode = linkSpendRequestTestArgs(deps).length > 0;
602
- if (testMode && isLinkSpendRequestNotFound(result)) {
727
+ if (opts.testMode && isLinkSpendRequestNotFound(result)) {
603
728
  const fromList = await retrieveLinkSpendRequestFromList(deps, spendRequestId);
604
729
  // `list` takes no --include, so it may never carry the token. Fail here
605
730
  // rather than retrying a token that cannot arrive.
@@ -614,12 +739,13 @@ export async function retrieveLinkSpendRequest(deps, spendRequestId, opts = {})
614
739
  }
615
740
  throwLinkCliFailure(result, "Could not retrieve the Link spend request.");
616
741
  }
617
- export async function retrieveSharedPaymentToken(deps, spendRequestId) {
742
+ export async function retrieveSharedPaymentToken(deps, spendRequestId, opts = {}) {
618
743
  for (const delayMs of SPT_RETRIEVAL_DELAYS_MS) {
619
744
  if (delayMs > 0)
620
745
  await deps.clock.sleep(delayMs);
621
746
  const snap = await retrieveLinkSpendRequest(deps, spendRequestId, {
622
747
  includeSpt: true,
748
+ ...opts,
623
749
  });
624
750
  if (snap.sharedPaymentToken)
625
751
  return snap.sharedPaymentToken;
package/dist/link.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EACL,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EACf,UAAU,GAGX,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,iBAAiB,GACrB,kIAAkI,CAAC;AACrI,MAAM,eAAe,GACnB,sHAAsH,CAAC;AACzH,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAC1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAC5D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAChD;;;GAGG;AACH,MAAM,wBAAwB,GAAG,GAAG,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAU,CAAC;AACzE,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,iBAAiB,GAAG,CAAC,GAAG,MAAM,CAAC;AACrC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,kBAAkB,GAAG,sDAAsD,CAAC;AAClF,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AACzD,MAAM,0BAA0B,GAC9B,6DAA6D,CAAC;AAiBhE,SAAS,OAAO,CAAC,IAAa;IAC5B,OAAO;QACL,GAAG,OAAO,CAAC,GAAG;QACd,sBAAsB,EAAE,GAAG;QAC3B,sEAAsE;QACtE,0DAA0D;QAC1D,2BAA2B,EAAE,GAAG;QAChC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;KACrD,CAAC;AACJ,CAAC;AAID,MAAM,aAAa,GAAmB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACvE,MAAM,YAAY,GAAmB;IACnC,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,CAAC;CACnE,CAAC;AAEF,yEAAyE;AACzE,MAAM,eAAe,GAAG,IAAI,OAAO,EAA2B,CAAC;AAE/D,SAAS,WAAW,CAClB,IAAa,EACb,GAAmB,EACnB,IAAc,EACd,OAAe;IAEf,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;QACvD,6DAA6D;QAC7D,OAAO,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,OAAO;QACpF,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAa,EACb,IAAc,EACd,OAA6B,EAAE;IAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,mBAAmB,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,KAAK;QAAE,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QACxB,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACxC,OAAO,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAiB,EAAE,QAAgB;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QACxB,MAAM,WAAW,CAAC,iBAAiB,EAAE;YACnC,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,iBAAiB;YAC9B,QAAQ,EAAE,YAAY,CAAC;gBACrB,EAAE,EAAE,kBAAkB;gBACtB,MAAM,EAAE,SAAS;gBACjB,QAAQ,EACN,oHAAoH;gBACtH,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;aACnC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,WAAW,CAAC,wCAAwC,EAAE;YAC1D,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,eAAe;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,8EAA8E;QAC9E,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAaD,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,gFAAgF;AAChF,KAAK,UAAU,eAAe,CAAC,IAAa;IAC1C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,mBAAmB,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACnD,0EAA0E;IAC1E,iDAAiD;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,OAAO;QACL,aAAa;QACb,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACpD,iBAAiB,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC1E,mBAAmB,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC/E,CAAC;AACJ,CAAC;AAKD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAa;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAC7C,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAID,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,UAAU,CAAC,6CAA6C,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AACzC,CAAC;AAED,mGAAmG;AACnG,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,eAAe,GACnB,sGAAsG,CAAC;AAEzG,SAAS,YAAY,CAAC,IAAkB,EAAE,QAAiB;IACzD,IAAI,CAAC,QAAQ;QAAE,OAAO,2BAA2B,CAAC;IAClD,OAAO,IAAI,KAAK,OAAO;QACrB,CAAC,CAAC,sDAAsD;QACxD,CAAC,CAAC,0CAA0C,CAAC;AACjD,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB,EAAE,QAAiB;IACxD,MAAM,GAAG,GAAG,uCAAuC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC;IACnF,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAkB,EAClB,QAAiB,EACjB,GAAW,EACX,MAA0B;IAE1B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,uBAAuB,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,OAAO,YAAY,CAAC;QAClB,EAAE,EAAE,eAAe;QACnB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAC3C,QAAQ,EAAE,QAAQ,GAAG,GAAG,KAAK,QAAQ,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ;QACjF,IAAI,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;KACpC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,sBAAsB,CACnC,IAAa,EACb,IAKC;IAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,QAAQ,GAAyC,EAAE,CAAC;IACxD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE;YACrC,MAAM;YACN,IAAI;YACJ,eAAe;YACf,qBAAqB;YACrB,SAAS;YACT,KAAK;YACL,UAAU;YACV,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,mBAAmB,CACjB,OAAO,EACP,QAAQ;gBACN,CAAC,CAAC,uCAAuC;gBACzC,CAAC,CAAC,+BAA+B,CACpC,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,IAAI,EAAE,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,MAAM,GAAG,OAAO,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,QAAQ,CAAC,+CAA+C,EAAE,eAAe,CAAC,CAAC;QACvF,CAAC;QACD,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,wBAAwB,EAAE;gBAC1F,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,GAAG,GAAG,+EAA+E;gBAClG,GAAG,QAAQ;gBACX,QAAQ,EAAE,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,IAAI,EAAE;YAChB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,GAAG,GAAG,wBAAwB;YAC3C,GAAG,QAAQ;SACZ,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1C,0EAA0E;QAC1E,oEAAoE;QACpE,2EAA2E;QAC3E,IAAI,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa;YAAE,OAAO;IAC1D,CAAC;IACD,MAAM,WAAW,CAAC,0BAA0B,EAAE;QAC5C,IAAI,EAAE,SAAS;QACf,GAAG,QAAQ;QACX,WAAW,EAAE,sDAAsD,OAAO,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,0BAA0B;KAC7I,CAAC,CAAC;AACL,CAAC;AAID;;;GAGG;AACH,SAAS,WAAW,CAAC,IAA8B;IACjD,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAa,EAAE,OAAqB,EAAE;IACzE,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,iBAAiB;QAAE,OAAO;IAChE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,MAAM,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAa,EACb,IAAkB,EAClB,IAAkB;IAElB,OAAO,sBAAsB,CAAC,IAAI,EAAE;QAClC,IAAI;QACJ,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,wBAAwB;KAClD,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAa,EACb,OAAkD,EAAE;IAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,8BAA8B,CAAC;IAC/D,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,sBAAsB,CAAC,IAAI,EAAE;YACjC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,wBAAwB;YAC/B,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,eAAe;QAAE,OAAO;IACpC,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,mBAAmB;QAAE,OAAO;IAC9D,MAAM,iBAAiB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,iBAAiB,CAC/B,IAAa,EACb,OAAkD,EAAE;IAEpD,OAAO,sBAAsB,CAAC,IAAI,EAAE;QAClC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,wBAAwB;QAC/B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;QACtC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,8BAA8B;KACxD,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAa;IAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE;QACpC,UAAU;QACV,cAAc;QACd,KAAK;QACL,UAAU;QACV,MAAM;KACP,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9E,mBAAmB,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,aAAa,GACjB,OAAO,IAAI,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAa;IACxC,OAAO,UAAU,CAAC,IAAI,EAAE;QACtB,UAAU;QACV,cAAc;QACd,SAAS;QACT,SAAS;QACT,sBAAsB;QACtB,UAAU;QACV,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAa,EACb,OAAqB,EAAE;IAEvB,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,SAAS,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC3F,MAAM,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,SAAS,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,mBAAmB,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,WAAW,CAAC,wCAAwC,EAAE;QAC1D,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,eAAe;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAa;IACxD,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE;QAC5E,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,mBAAmB,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAa,EACb,KAAqC;IAErC,MAAM,IAAI,GAAG;QACX,UAAU;QACV,aAAa;QACb,SAAS;QACT,OAAO;QACP,KAAK,CAAC,GAAG;QACT,SAAS;QACT,KAAK,CAAC,KAAK;QACX,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9D,UAAU;QACV,MAAM;KACP,CAAC;IACF,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,WAAW,GACf,CAAC,MAAM,CAAC,EAAE;QACV,0BAA0B,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,mBAAmB,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,YAAY,GAChB,OAAO,IAAI,EAAE,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,QAAQ,CAChB,mDAAmD,EACnD,eAAe,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAa,EACb,MAAc;IAEd,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,QAAQ,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,MAAM,WAAW,CACf,qCAAqC,GAAG,IAAI,WAAW,WAAW,MAAM,GAAG,EAC3E;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,gGAAgG;SACnG,CACF,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QACtE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAC3C,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QACjC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,WAAW,CAAC,2EAA2E,EAAE;YAC7F,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,8FAA8F;SACjG,CAAC,CAAC;IACL,CAAC;IACD,MAAM,aAAa,GACjB,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,QAAQ,CAAC,qDAAqD,EAAE,eAAe,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAC/C,CAAC;AAID,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,GAAG,MAAM,QAAQ,CAAC;AAC3B,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAgB;IACjE,OAAO,6CAA6C,MAAM,sEAAsE,QAAQ,IAAI,CAAC;AAC/I,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,+DAA+D,MAAM,IAAI,CAAC;AACnF,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,EAAU,EAAE,MAAc,EAAE,QAAgB;IACnE,OAAO;QACL,EAAE;QACF,MAAM;QACN,QAAQ;QACR,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,uDAAuD;aAC9D;YACD,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;SACvD;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAa,EACb,IAAgB,EAChB,MAAc;IAEd,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,QAAQ,IAAI,CAAC,CAAC;IACjD,yEAAyE;IACzE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,WAAW,CAAC,4BAA4B,EAAE;YAC9C,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,QAAQ;YACrB,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,eAAe,CAAC,qBAAqB,EAAE,SAAS,EAAE,QAAQ,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACpC,MAAM,WAAW,CAAC,uBAAuB,EAAE;YACzC,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,QAAQ;YACrB,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAa,EACb,IAAgB,EAChB,MAAc;IAEd,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,WAAW,CAAC,4BAA4B,EAAE;gBAC9C,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,QAAQ;gBACrB,QAAQ,EAAE,eAAe,CAAC,oBAAoB,EAAE,YAAY,EAAE,QAAQ,CAAC;aACxE,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,WAAW,CAAC,6BAA6B,EAAE;gBAC/C,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAClD,CAAC;AAoBF,SAAS,kBAAkB,CAAC,GAAW;IACrC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,kBAAkB,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,iBAAiB,CAAC;QACvB,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA6B;IACvD,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,IAA6B;IAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACxE,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC;IAC/B,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAA6B;IAE7B,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IACrB,MAAM,MAAM,GAAG,kBAAkB,CAC/B,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACnD,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,EAAE,UAAU,CAAC;IACvC,MAAM,UAAU,GACd,OAAO,aAAa,KAAK,QAAQ;QAC/B,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,KAAK,QAAQ;YACjD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC;IACb,MAAM,cAAc,GAClB,CAAC,OAAO,IAAI,EAAE,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC;QACnE,CAAC,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC;QAClE,IAAI,CAAC;IACP,OAAO;QACL,EAAE;QACF,MAAM;QACN,cAAc;QACd,UAAU;QACV,kBAAkB,EAAE,yBAAyB,CAAC,IAAI,CAAC;QACnD,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1D,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAa,EAAE,SAAiB;IACvE,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG;QACnD,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;IACjD,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;YACxB,CAAC,CAAC,GAAG,CAAC,IAAI;YACV,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACf,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,IAAa,EACb,cAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE;QACpC,eAAe;QACf,MAAM;QACN,mBAAmB;QACnB,UAAU;QACV,MAAM;KACP,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,CACL,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,cAAc,CAAC;QACjF,IAAI,CACL,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAa,EACb,KASC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE;QACpC,eAAe;QACf,QAAQ;QACR,mBAAmB;QACnB,sBAAsB;QACtB,cAAc;QACd,KAAK,CAAC,SAAS;QACf,UAAU;QACV,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACpB,YAAY;QACZ,KAAK,CAAC,QAAQ;QACd,WAAW;QACX,KAAK,CAAC,OAAO;QACb,aAAa;QACb,KAAK,CAAC,QAAQ;QACd,SAAS;QACT,KAAK,CAAC,KAAK;QACX,mBAAmB;QACnB,KAAK,CAAC,cAAc;QACpB,oBAAoB;QACpB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,UAAU;QACV,MAAM;KACP,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,mBAAmB,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAChB,6CAA6C,EAC7C,eAAe,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAa,EACb,cAAsB,EACtB,OAAsF,EAAE;IAExF,MAAM,IAAI,GAAG,CAAC,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/E,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,IACE,CAAC,MAAM,CAAC,EAAE;QACV,IAAI,CAAC,cAAc;QACnB,qBAAqB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/D,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,EAC7B,CAAC;QACD,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,QAAQ,CAChB,wDAAwD,EACxD,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,4EAA4E;IAC5E,iDAAiD;IACjD,IAAI,IAAI,CAAC,QAAQ,IAAI,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,gCAAgC,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC9E,wEAAwE;QACxE,mDAAmD;QACnD,IACE,QAAQ;YACR,IAAI,CAAC,UAAU;YACf,QAAQ,CAAC,MAAM,KAAK,UAAU;YAC9B,CAAC,QAAQ,CAAC,kBAAkB,EAC5B,CAAC;YACD,MAAM,IAAI,QAAQ,CAChB,gIAAgI,EAChI,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAChC,CAAC;IACD,mBAAmB,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAa,EACb,cAAsB,EACtB,OAAgE,EAAE;IAElE,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAC9C,IAAI,OAAO,GAAG,CAAC;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,cAAc,EAAE;YAChE,UAAU,EAAE,IAAI;YAChB,GAAG,IAAI;SACR,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAa,EACb,WAAmB,EACnB,aAAgC;IAQhC,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QACpC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1C,WAAW;QACX,aAAa;KACd,CAAC;AACJ,CAAC"}
package/dist/main.js CHANGED
@@ -5,6 +5,7 @@ import { runLinkIdentity } from "./commands/link-identity.js";
5
5
  import { runLogin } from "./commands/login.js";
6
6
  import { runLogout } from "./commands/logout.js";
7
7
  import { runEmail } from "./commands/email.js";
8
+ import { runRedeem } from "./commands/redeem.js";
8
9
  import { runReport } from "./commands/report.js";
9
10
  import { runScan } from "./commands/scan.js";
10
11
  import { runSetup } from "./commands/setup.js";
@@ -12,7 +13,8 @@ import { runStatus } from "./commands/status.js";
12
13
  import { runWhoami } from "./commands/whoami.js";
13
14
  import { PACKAGE_NAME, PACKAGE_VERSION } from "./config.js";
14
15
  import { mergeDeps } from "./deps.js";
15
- import { CliError, EXIT_OK, EXIT_UNEXPECTED } from "./exit.js";
16
+ import { withConnectChoice } from "./connect.js";
17
+ import { CliError, EXIT_OK, EXIT_UNEXPECTED, NotConnectedError } from "./exit.js";
16
18
  export function printHelp(deps) {
17
19
  deps.io.stdout(HELP_TEXT);
18
20
  return EXIT_OK;
@@ -30,7 +32,7 @@ export async function dispatch(deps, args) {
30
32
  case "login":
31
33
  return runLogin(deps, args);
32
34
  case "logout":
33
- return runLogout(deps);
35
+ return runLogout(deps, args);
34
36
  case "whoami":
35
37
  return runWhoami(deps, args);
36
38
  case "scan":
@@ -47,6 +49,8 @@ export async function dispatch(deps, args) {
47
49
  return runLinkIdentity(deps, args);
48
50
  case "credits":
49
51
  return runCredits(deps, args);
52
+ case "redeem":
53
+ return runRedeem(deps, args);
50
54
  default: {
51
55
  const _exhaustive = args.command;
52
56
  return _exhaustive;
@@ -59,7 +63,8 @@ export async function runCli(argv, overrides = {}) {
59
63
  const args = parseArgs(argv, deps.defaultWaitMs);
60
64
  return await dispatch(deps, args);
61
65
  }
62
- catch (err) {
66
+ catch (caught) {
67
+ const err = caught instanceof NotConnectedError ? await withConnectChoice(deps, caught) : caught;
63
68
  if (err instanceof CliError) {
64
69
  if (err.action)
65
70
  writeAction(deps, err.action);