@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.
- package/README.md +5 -4
- package/assets/skill-core.md +25 -7
- package/dist/action.d.ts +4 -1
- package/dist/action.js +24 -0
- package/dist/action.js.map +1 -1
- package/dist/args.d.ts +1 -1
- package/dist/args.js +31 -9
- package/dist/args.js.map +1 -1
- package/dist/commands/credits.d.ts +30 -1
- package/dist/commands/credits.js +320 -43
- package/dist/commands/credits.js.map +1 -1
- package/dist/commands/email.js +22 -0
- package/dist/commands/email.js.map +1 -1
- package/dist/commands/link-login.js +4 -4
- package/dist/commands/link-login.js.map +1 -1
- package/dist/commands/login.d.ts +1 -0
- package/dist/commands/login.js +22 -8
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts +2 -1
- package/dist/commands/logout.js +48 -23
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/redeem.d.ts +7 -0
- package/dist/commands/redeem.js +33 -0
- package/dist/commands/redeem.js.map +1 -0
- package/dist/commands/scan-upload.js +48 -27
- package/dist/commands/scan-upload.js.map +1 -1
- package/dist/commands/scan.js +45 -4
- package/dist/commands/scan.js.map +1 -1
- package/dist/config.d.ts +3 -3
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/connect.d.ts +15 -0
- package/dist/connect.js +100 -0
- package/dist/connect.js.map +1 -0
- package/dist/credentials.d.ts +14 -0
- package/dist/credentials.js +25 -7
- package/dist/credentials.js.map +1 -1
- package/dist/done-question.d.ts +20 -0
- package/dist/done-question.js +25 -0
- package/dist/done-question.js.map +1 -0
- package/dist/exit.d.ts +29 -0
- package/dist/exit.js +12 -0
- package/dist/exit.js.map +1 -1
- package/dist/git.d.ts +8 -1
- package/dist/git.js +35 -1
- package/dist/git.js.map +1 -1
- package/dist/http.js +74 -4
- package/dist/http.js.map +1 -1
- package/dist/link.d.ts +52 -11
- package/dist/link.js +169 -43
- package/dist/link.js.map +1 -1
- package/dist/main.js +8 -3
- package/dist/main.js.map +1 -1
- package/dist/output.js +6 -1
- package/dist/output.js.map +1 -1
- package/dist/pack.d.ts +19 -3
- package/dist/pack.js +30 -2
- package/dist/pack.js.map +1 -1
- package/dist/skill.d.ts +1 -1
- package/dist/skill.js +2 -1
- package/dist/skill.js.map +1 -1
- package/dist/top-up.d.ts +8 -0
- package/dist/top-up.js +35 -0
- package/dist/top-up.js.map +1 -0
- package/dist/types.d.ts +18 -1
- 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)
|
|
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
|
-
/**
|
|
58
|
-
export declare function
|
|
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
|
-
/**
|
|
85
|
-
|
|
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
|
|
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:
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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,
|
|
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)
|
|
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
|
-
|
|
273
|
+
const session = await readLinkSession(deps);
|
|
274
|
+
if (session.authenticated && !session.missingLoginScope)
|
|
211
275
|
return;
|
|
212
|
-
|
|
213
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
265
|
-
|
|
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
|
-
|
|
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
|
-
/**
|
|
505
|
-
|
|
506
|
-
|
|
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
|
-
...
|
|
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
|
-
|
|
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
|
-
|
|
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":"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"}
|
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 {
|
|
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 (
|
|
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);
|