@cleanslop/cli 0.1.0-beta.21 → 0.1.0-beta.22
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/assets/skill-core.md +2 -2
- package/dist/args.d.ts +1 -1
- package/dist/args.js +3 -3
- package/dist/commands/scan.js +10 -10
- package/dist/commands/scan.js.map +1 -1
- package/dist/config.d.ts +2 -2
- package/dist/config.js +1 -1
- package/dist/connect.d.ts +8 -2
- package/dist/connect.js +33 -24
- package/dist/connect.js.map +1 -1
- package/dist/git.d.ts +11 -0
- package/dist/git.js +20 -7
- package/dist/git.js.map +1 -1
- package/package.json +1 -1
package/assets/skill-core.md
CHANGED
|
@@ -4,7 +4,7 @@ Run a CleanSlop readiness scan at milestones (before claiming work is done, befo
|
|
|
4
4
|
|
|
5
5
|
## Git preconditions
|
|
6
6
|
|
|
7
|
-
Just run `cleanslop scan`. Do not check git state first or tell the human a commit or push may be needed: the CLI picks the source and asks when the human must choose. A clean pushed github.com commit is scanned from GitHub.
|
|
7
|
+
Just run `cleanslop scan`. Do not check git state first or tell the human a commit or push may be needed: the CLI picks the source and asks when the human must choose. A clean pushed github.com commit is scanned from GitHub. A Link sign-in (`/me` `uploads: true`) always uploads the local files. A GitHub sign-in that can upload (`uploadFallback: true`) never uploads unasked: a folder with no commits or no GitHub origin asks `upload_local`, uncommitted or unpushed changes ask `push_or_upload` ("Scan local files" or "I pushed"), and a `github_install` question also offers "Scan local files". Once the human picks "Scan local files", pass `--upload` on later scans and rescans in this session without asking again. Do not commit, push, stash, or rewrite history yourself.
|
|
8
8
|
|
|
9
9
|
## Transport
|
|
10
10
|
|
|
@@ -12,7 +12,7 @@ Use MCP if it is registered (`<origin>/mcp`); otherwise the CLI. Run it as `npx
|
|
|
12
12
|
|
|
13
13
|
## Connect
|
|
14
14
|
|
|
15
|
-
If the human already said how to connect (Link or GitHub), use that. Otherwise, when a command says this machine is not connected and asks how to connect (`connect_method`), ask the human with exactly its options (
|
|
15
|
+
If the human already said how to connect (Link or GitHub), use that. Otherwise, when a command says this machine is not connected and asks how to connect (`connect_method`), ask the human with exactly its options, in order (the CLI recommends GitHub in a GitHub repo and Stripe Link elsewhere).
|
|
16
16
|
|
|
17
17
|
Run Link and login commands in the foreground with `--no-wait`. When one prints an `approve` block, ask its Done / Not now question (it repeats the link and code). On Done, rerun the same command with `--resume` instead of `--no-wait`; on Not now, stop. Never ask the human to type “done”.
|
|
18
18
|
|
package/dist/args.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ParsedArgs } from "./types.js";
|
|
2
2
|
export declare function parseWaitMs(raw: string, fallback?: number): number;
|
|
3
3
|
export declare function parseArgs(argv: string[], defaultWaitMs?: number): ParsedArgs;
|
|
4
|
-
export declare const HELP_TEXT = "cleanslop \u2014 CleanSlop agent CLI\n\nUsage:\n cleanslop [scan] [--wait [duration]] [--json] [--force] [--preview] [--upload]\n cleanslop login [--link] [--agree] [--no-wait | --resume]\n cleanslop link-identity [--agree] [--no-wait | --resume]\n cleanslop credits buy --link [--pack p5] [--no-promo] [--no-wait | --resume]\n cleanslop redeem <code>\n cleanslop logout [--all]\n cleanslop whoami\n cleanslop status [id] [--wait [duration]]\n cleanslop report [id] [--format md|json] [--preview]\n cleanslop email <id> --consent \"<exact question>\" [--reply \"<human reply>\"]\n cleanslop setup [--dry-run] [--uninstall] [--project] [--yes]\n\nscan is the default command. GitHub App repos, or a packed upload when /me\nreports uploads:true (Link). With uploadFallback:true (GitHub), a
|
|
4
|
+
export declare const HELP_TEXT = "cleanslop \u2014 CleanSlop agent CLI\n\nUsage:\n cleanslop [scan] [--wait [duration]] [--json] [--force] [--preview] [--upload]\n cleanslop login [--link] [--agree] [--no-wait | --resume]\n cleanslop link-identity [--agree] [--no-wait | --resume]\n cleanslop credits buy --link [--pack p5] [--no-promo] [--no-wait | --resume]\n cleanslop redeem <code>\n cleanslop logout [--all]\n cleanslop whoami\n cleanslop status [id] [--wait [duration]]\n cleanslop report [id] [--format md|json] [--preview]\n cleanslop email <id> --consent \"<exact question>\" [--reply \"<human reply>\"]\n cleanslop setup [--dry-run] [--uninstall] [--project] [--yes]\n\nscan is the default command. GitHub App repos, or a packed upload when /me\nreports uploads:true (Link). With uploadFallback:true (GitHub), a folder not\non GitHub asks whether to upload its files, and a dirty or unpushed checkout\nasks whether to upload them or push first. --dry-run on scan lists the upload pack.\n\nWait:\n --wait poll until final or the budget (default 8 minutes)\n --wait 75m Claude Code background budget (hours/minutes/seconds: 1h, 75m, 30s)\n At the deadline: exit 75 and print a resume command. The scan keeps running.\n\nFlags:\n --json one JSON document on stdout\n --force skip same-commit dedupe (sends Idempotency-Key)\n --preview first-pass report before judgment is final\n --upload scan: upload the local files instead of the pushed commit (after the human picks it)\n --no-wait login / link-identity / credits buy: print what to approve and exit 10\n --resume login / link-identity / credits buy: continue a pending --no-wait approval\n --link login: Stripe Link sign-up / sign-in (requires link-cli)\n --agree login --link / link-identity: pass only after the human answers yes to the quoted question\n (--accept-terms --yes-share-email together still work for login --link; --yes-share-email for link-identity)\n --pack credits buy: p5, p15, or p40. Required without a terminal (the human picks); a terminal defaults to p5. Price and network id come from CleanSlop.\n --no-promo credits buy: skip the promo-code choice (the human already chose to buy)\n --all logout: revoke every saved token and delete all local CleanSlop data\n (without it, logout signs out of this origin and drops its pending login and Link payment)\n --dry-run setup: print the plan. scan (upload): list the pack, upload nothing\n --uninstall setup: remove marker blocks / skill files\n --project setup: project files instead of user scope\n --yes setup: write in a non-TTY (otherwise non-TTY is a plan only)\n --consent email: the exact masked-recipient question you asked\n --reply email: optional verbatim human reply\n\nEnv:\n CLEANSLOP_ORIGIN API origin (default https://cleanslop.com)\n CLEANSLOP_TOKEN bearer token override (never printed)\n CLEANSLOP_LINK_CLI path to link-cli (default: link-cli on PATH)\n\nCredentials: $XDG_CONFIG_HOME/cleanslop/credentials.json or ~/.config/cleanslop/\nDirectory 0700, file 0600. Never stored inside the git worktree.\n\nExit codes: 0 ok \u00B7 1 unexpected \u00B7 2 usage \u00B7 10 human action \u00B7 11 payment\n 12 policy \u00B7 13 source \u00B7 20 scan failed \u00B7 75 still running\n\nNever open, approve, or pay yourself. Relay CLEANSLOP_ACTION_REQUIRED blocks.\nAsk a CLEANSLOP_QUESTION with your multiple-choice question tool when you have\none (never ask the human to type \"Done\"), using exactly its options. Never\nanswer for the human.\n";
|
package/dist/args.js
CHANGED
|
@@ -220,9 +220,9 @@ Usage:
|
|
|
220
220
|
cleanslop setup [--dry-run] [--uninstall] [--project] [--yes]
|
|
221
221
|
|
|
222
222
|
scan is the default command. GitHub App repos, or a packed upload when /me
|
|
223
|
-
reports uploads:true (Link). With uploadFallback:true (GitHub), a
|
|
224
|
-
|
|
225
|
-
whether to upload them or push first. --dry-run on scan lists the upload pack.
|
|
223
|
+
reports uploads:true (Link). With uploadFallback:true (GitHub), a folder not
|
|
224
|
+
on GitHub asks whether to upload its files, and a dirty or unpushed checkout
|
|
225
|
+
asks whether to upload them or push first. --dry-run on scan lists the upload pack.
|
|
226
226
|
|
|
227
227
|
Wait:
|
|
228
228
|
--wait poll until final or the budget (default 8 minutes)
|
package/dist/commands/scan.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { writeAction, writeResume } from "../action.js";
|
|
2
2
|
import { requireToken, resolveOrigin, storeLastScanId, } from "../credentials.js";
|
|
3
|
-
import { CliError, EXIT_OK, EXIT_POLICY, EXIT_RUNNING, EXIT_SCAN_FAILED, EXIT_SOURCE, EXIT_UNEXPECTED, } from "../exit.js";
|
|
4
|
-
import { assertGithubReady, inspectGit } from "../git.js";
|
|
3
|
+
import { CliError, EXIT_OK, EXIT_POLICY, EXIT_RUNNING, EXIT_SCAN_FAILED, EXIT_SOURCE, EXIT_UNEXPECTED, sourceError, } from "../exit.js";
|
|
4
|
+
import { assertGithubReady, inspectGit, uploadLocalQuestion, uploadOption } from "../git.js";
|
|
5
5
|
import { recoverOutOfScansIfOffered } from "./credits.js";
|
|
6
6
|
import { httpRequest, requireOk } from "../http.js";
|
|
7
7
|
import { writeJson, writeMarkdownReport, writeScanProgress } from "../output.js";
|
|
@@ -25,12 +25,7 @@ function offerUploadOnInstall(err) {
|
|
|
25
25
|
if (question?.id !== "github_install")
|
|
26
26
|
return err;
|
|
27
27
|
// After Done, before Not now.
|
|
28
|
-
question.options.splice(1, 0,
|
|
29
|
-
value: "upload",
|
|
30
|
-
label: "Scan local files",
|
|
31
|
-
description: "Upload this folder's files instead",
|
|
32
|
-
next: "run the same cleanslop command again, adding --upload",
|
|
33
|
-
});
|
|
28
|
+
question.options.splice(1, 0, uploadOption("Upload this folder's files instead. No project history or triage"));
|
|
34
29
|
return err;
|
|
35
30
|
}
|
|
36
31
|
export async function runScan(deps, args) {
|
|
@@ -53,8 +48,13 @@ export async function runScan(deps, args) {
|
|
|
53
48
|
}
|
|
54
49
|
const git = canUpload ? await inspectGitOrNull(deps) : await inspectGit(deps);
|
|
55
50
|
if (!git || (canUpload && !git.github)) {
|
|
56
|
-
|
|
57
|
-
|
|
51
|
+
// A GitHub sign-in never uploads unasked: `--upload` above is the yes.
|
|
52
|
+
const why = "no commits, no origin, or a non-GitHub origin";
|
|
53
|
+
throw sourceError(`This folder isn't on GitHub (${why}).`, {
|
|
54
|
+
kind: "ask_human",
|
|
55
|
+
humanPrompt: "This folder isn't on GitHub. Ask the human whether to scan its files by uploading them to CleanSlop.",
|
|
56
|
+
question: uploadLocalQuestion(),
|
|
57
|
+
});
|
|
58
58
|
}
|
|
59
59
|
assertGithubReady(git, { canUpload });
|
|
60
60
|
const headers = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtD,oFAAoF;AACpF,KAAK,UAAU,gBAAgB,CAAC,IAAa;IAC3C,IAAI,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QACzE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,SAAS,oBAAoB,CAAC,GAAY;IACxC,MAAM,QAAQ,GAAG,GAAG,YAAY,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,IAAI,QAAQ,EAAE,EAAE,KAAK,gBAAgB;QAAE,OAAO,GAAG,CAAC;IAClD,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,CAAC,MAAM,CACrB,CAAC,EACD,CAAC,EACD,YAAY,CAAC,kEAAkE,CAAC,CACjF,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAa,EACb,IAAgB;IAEhB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE;QACvE,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IACH,SAAS,CAAC,KAAK,CAAC,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAe,CAAC;IAC5C,MAAM,SAAS,GAAG,EAAE,CAAC,cAAc,KAAK,IAAI,CAAC;IAC7C,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAChB,kFAAkF,EAClF,WAAW,CACZ,CAAC;QACJ,CAAC;QACD,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,uEAAuE;QACvE,MAAM,GAAG,GAAG,+CAA+C,CAAC;QAC5D,MAAM,WAAW,CAAC,gCAAgC,GAAG,IAAI,EAAE;YACzD,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,sGAAsG;YACxG,QAAQ,EAAE,mBAAmB,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAEtC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;QAC9B,OAAO,EAAE,KAAK;KACf,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE;QACvD,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO;QACP,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAC9C,IAAI,EACJ,IAAI,EACJ,MAAM,SAAS,EAAE,EACjB,SAAS,CACV,CAAC;IACF,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAgC,CAAC;IACzD,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACvB,MAAM,IAAI,QAAQ,CAAC,mCAAmC,EAAE,eAAe,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9C,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC;IACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,QAAQ,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,IAAI,EACJ,MAAM,EACN,KAAK,CAAC,KAAK,EACX,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACzB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAC5B,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC7D,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,GAAG,CAAC,MAAM;gBAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export declare const PACKAGE_NAME = "@cleanslop/cli";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.1.0-beta.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.1.0-beta.22";
|
|
3
3
|
export declare const CLIENT_ID = "cleanslop-cli";
|
|
4
4
|
export declare const DEFAULT_ORIGIN = "https://cleanslop.com";
|
|
5
5
|
export declare const DEFAULT_WAIT_MS: number;
|
|
6
6
|
export declare const MIN_POLL_MS = 3000;
|
|
7
7
|
export declare const LONGPOLL_MAX_SEC = 45;
|
|
8
8
|
export declare const DEVICE_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:device_code";
|
|
9
|
-
export declare const USER_AGENT = "cleanslop-cli/0.1.0-beta.
|
|
9
|
+
export declare const USER_AGENT = "cleanslop-cli/0.1.0-beta.22";
|
|
10
10
|
export declare const CREDENTIALS_FILE = "credentials.json";
|
|
11
11
|
export declare const PENDING_LOGIN_FILE = "pending-login.json";
|
|
12
12
|
export declare const PENDING_SPEND_FILE = "pending-spend-request.json";
|
package/dist/config.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const PACKAGE_NAME = "@cleanslop/cli";
|
|
2
|
-
export const PACKAGE_VERSION = "0.1.0-beta.
|
|
2
|
+
export const PACKAGE_VERSION = "0.1.0-beta.22";
|
|
3
3
|
export const CLIENT_ID = "cleanslop-cli";
|
|
4
4
|
export const DEFAULT_ORIGIN = "https://cleanslop.com";
|
|
5
5
|
export const DEFAULT_WAIT_MS = 8 * 60 * 1000;
|
package/dist/connect.d.ts
CHANGED
|
@@ -2,10 +2,16 @@ import type { CliDeps } from "./deps.js";
|
|
|
2
2
|
import { CliError, type ActionQuestion, type NotConnectedError } from "./exit.js";
|
|
3
3
|
export declare const LINK_LOGIN_COMMAND = "cleanslop login --link --no-wait";
|
|
4
4
|
export declare const GITHUB_LOGIN_COMMAND = "cleanslop login --no-wait";
|
|
5
|
+
/**
|
|
6
|
+
* GitHub is recommended (and listed first) when this folder's origin is on
|
|
7
|
+
* GitHub, where the person most likely already has a GitHub account;
|
|
8
|
+
* otherwise Link is.
|
|
9
|
+
*/
|
|
5
10
|
export declare function connectQuestion(github: boolean, githubUploads?: boolean): ActionQuestion;
|
|
6
11
|
/**
|
|
7
|
-
* Not connected: ask Link
|
|
8
|
-
* both; otherwise, or if the server
|
|
12
|
+
* Not connected: ask Link or GitHub (see `connectQuestion` for which is
|
|
13
|
+
* recommended) when the server offers both; otherwise, or if the server
|
|
14
|
+
* cannot say, keep the plain login block.
|
|
9
15
|
*/
|
|
10
16
|
export declare function withConnectChoice(deps: CliDeps, err: NotConnectedError): Promise<CliError>;
|
|
11
17
|
/**
|
package/dist/connect.js
CHANGED
|
@@ -3,7 +3,7 @@ import { parseGithubRemote } from "./git.js";
|
|
|
3
3
|
import { asRecord, httpRequest } from "./http.js";
|
|
4
4
|
export const LINK_LOGIN_COMMAND = "cleanslop login --link --no-wait";
|
|
5
5
|
export const GITHUB_LOGIN_COMMAND = "cleanslop login --no-wait";
|
|
6
|
-
const LINK_DESCRIPTION = "
|
|
6
|
+
const LINK_DESCRIPTION = "No GitHub needed; scans this folder's files. Needs a Link account; US and Canada only.";
|
|
7
7
|
/**
|
|
8
8
|
* The server lists both methods only while `AGENT_CONNECT_CHOICE=ask` and Link
|
|
9
9
|
* sign-up is public. `githubUploads`: a GitHub sign-in can also upload local files.
|
|
@@ -29,46 +29,55 @@ async function onGithub(deps) {
|
|
|
29
29
|
const remote = await deps.git(["remote", "get-url", "origin"], deps.env.cwd());
|
|
30
30
|
return remote.ok && parseGithubRemote(remote.stdout.trim()) !== null;
|
|
31
31
|
}
|
|
32
|
+
/** About the account, not this scan's source: the scan asks before a GitHub sign-in uploads. */
|
|
32
33
|
function githubDescription(onGithub, uploads) {
|
|
33
|
-
if (
|
|
34
|
-
return "
|
|
35
|
-
return
|
|
36
|
-
? "
|
|
37
|
-
: "This folder isn't on GitHub yet
|
|
34
|
+
if (uploads)
|
|
35
|
+
return "Scans what you've pushed to GitHub; can also scan this folder's files when you choose.";
|
|
36
|
+
return onGithub
|
|
37
|
+
? "Scans what you've pushed to GitHub."
|
|
38
|
+
: "Scans what you've pushed to GitHub. This folder isn't on GitHub yet, so you'd push it first.";
|
|
38
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* GitHub is recommended (and listed first) when this folder's origin is on
|
|
42
|
+
* GitHub, where the person most likely already has a GitHub account;
|
|
43
|
+
* otherwise Link is.
|
|
44
|
+
*/
|
|
39
45
|
export function connectQuestion(github, githubUploads = false) {
|
|
46
|
+
const link = {
|
|
47
|
+
value: "stripe_link",
|
|
48
|
+
label: github ? "Stripe Link" : "Stripe Link (Recommended)",
|
|
49
|
+
description: LINK_DESCRIPTION,
|
|
50
|
+
run: LINK_LOGIN_COMMAND,
|
|
51
|
+
};
|
|
52
|
+
const githubOption = {
|
|
53
|
+
value: "github",
|
|
54
|
+
label: github ? "GitHub (Recommended)" : "GitHub",
|
|
55
|
+
description: githubDescription(github, githubUploads),
|
|
56
|
+
run: GITHUB_LOGIN_COMMAND,
|
|
57
|
+
};
|
|
40
58
|
return {
|
|
41
59
|
id: "connect_method",
|
|
42
60
|
header: "Connect",
|
|
43
61
|
question: "How should CleanSlop connect?",
|
|
44
|
-
options: [
|
|
45
|
-
{
|
|
46
|
-
value: "stripe_link",
|
|
47
|
-
label: "Stripe Link (Recommended)",
|
|
48
|
-
description: LINK_DESCRIPTION,
|
|
49
|
-
run: LINK_LOGIN_COMMAND,
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
value: "github",
|
|
53
|
-
label: "GitHub",
|
|
54
|
-
description: githubDescription(github, githubUploads),
|
|
55
|
-
run: GITHUB_LOGIN_COMMAND,
|
|
56
|
-
},
|
|
57
|
-
],
|
|
62
|
+
options: github ? [githubOption, link] : [link, githubOption],
|
|
58
63
|
};
|
|
59
64
|
}
|
|
60
65
|
/**
|
|
61
|
-
* Not connected: ask Link
|
|
62
|
-
* both; otherwise, or if the server
|
|
66
|
+
* Not connected: ask Link or GitHub (see `connectQuestion` for which is
|
|
67
|
+
* recommended) when the server offers both; otherwise, or if the server
|
|
68
|
+
* cannot say, keep the plain login block.
|
|
63
69
|
*/
|
|
64
70
|
export async function withConnectChoice(deps, err) {
|
|
65
71
|
const offered = await offeredMethods(deps, err.origin);
|
|
66
72
|
if (!offered.both)
|
|
67
73
|
return err;
|
|
74
|
+
const github = await onGithub(deps);
|
|
75
|
+
const link = `Stripe Link (${github ? "" : "recommended; "}${LINK_DESCRIPTION}) runs \`${LINK_LOGIN_COMMAND}\``;
|
|
76
|
+
const githubLine = `GitHub (${github ? "recommended; " : ""}${githubDescription(github, offered.githubUploads)}) runs \`${GITHUB_LOGIN_COMMAND}\``;
|
|
68
77
|
return new CliError(err.message, EXIT_ACTION, {
|
|
69
78
|
kind: "ask_human",
|
|
70
|
-
humanPrompt: `This machine isn't connected to CleanSlop yet. Ask the human how to connect:
|
|
71
|
-
question: connectQuestion(
|
|
79
|
+
humanPrompt: `This machine isn't connected to CleanSlop yet. Ask the human how to connect: ${github ? `${githubLine}; ${link}` : `${link}; ${githubLine}`}. If they already said which, use that without asking.`,
|
|
80
|
+
question: connectQuestion(github, offered.githubUploads),
|
|
72
81
|
});
|
|
73
82
|
}
|
|
74
83
|
/**
|
package/dist/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAA+C,MAAM,WAAW,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAEhE,MAAM,gBAAgB,GACpB,
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
|
package/dist/git.d.ts
CHANGED
|
@@ -13,8 +13,19 @@ export declare function gitToplevel(deps: CliDeps, cwd: string): Promise<string
|
|
|
13
13
|
export declare function inspectGit(deps: CliDeps): Promise<GitSnapshot>;
|
|
14
14
|
/** The human commits and pushes; the agent never does. */
|
|
15
15
|
export declare function pushFirstQuestion(): ActionQuestion;
|
|
16
|
+
/** The human chose uploads: rescans in the fix loop keep it without asking again. */
|
|
17
|
+
export declare const UPLOAD_NEXT = "run the same cleanslop command again, adding --upload, and keep --upload on later scans in this session without asking again";
|
|
18
|
+
/** "Scan local files" for a GitHub sign-in, with what it gives up. */
|
|
19
|
+
export declare function uploadOption(description: string): {
|
|
20
|
+
value: string;
|
|
21
|
+
label: string;
|
|
22
|
+
description: string;
|
|
23
|
+
next: string;
|
|
24
|
+
};
|
|
16
25
|
/** GitHub grants that may upload: scan the local files now, or push and scan the commit. */
|
|
17
26
|
export declare function pushOrUploadQuestion(): ActionQuestion;
|
|
27
|
+
/** A GitHub sign-in in a folder with nothing on GitHub: upload only after the human says so. */
|
|
28
|
+
export declare function uploadLocalQuestion(): ActionQuestion;
|
|
18
29
|
export declare function assertGithubReady(git: GitSnapshot, opts?: {
|
|
19
30
|
canUpload?: boolean;
|
|
20
31
|
}): void;
|
package/dist/git.js
CHANGED
|
@@ -137,6 +137,12 @@ export function pushFirstQuestion() {
|
|
|
137
137
|
then: { next: RERUN_SAME_COMMAND },
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
|
+
/** The human chose uploads: rescans in the fix loop keep it without asking again. */
|
|
141
|
+
export const UPLOAD_NEXT = "run the same cleanslop command again, adding --upload, and keep --upload on later scans in this session without asking again";
|
|
142
|
+
/** "Scan local files" for a GitHub sign-in, with what it gives up. */
|
|
143
|
+
export function uploadOption(description) {
|
|
144
|
+
return { value: "upload", label: "Scan local files", description, next: UPLOAD_NEXT };
|
|
145
|
+
}
|
|
140
146
|
/** GitHub grants that may upload: scan the local files now, or push and scan the commit. */
|
|
141
147
|
export function pushOrUploadQuestion() {
|
|
142
148
|
return {
|
|
@@ -144,22 +150,29 @@ export function pushOrUploadQuestion() {
|
|
|
144
150
|
header: "Source",
|
|
145
151
|
question: "Your latest changes are not on GitHub. Scan the local files as they are, or push them and scan the pushed commit?",
|
|
146
152
|
options: [
|
|
147
|
-
|
|
148
|
-
value: "upload",
|
|
149
|
-
label: "Scan local files",
|
|
150
|
-
description: "Upload this folder's files; nothing is pushed",
|
|
151
|
-
next: "run the same cleanslop command again, adding --upload",
|
|
152
|
-
},
|
|
153
|
+
uploadOption("Includes uncommitted changes; nothing is pushed. No project history or triage"),
|
|
153
154
|
{
|
|
154
155
|
value: "pushed",
|
|
155
156
|
label: "I pushed",
|
|
156
|
-
description: "
|
|
157
|
+
description: "Scans the commit on GitHub; keeps project history and triage",
|
|
157
158
|
next: RERUN_SAME_COMMAND,
|
|
158
159
|
},
|
|
159
160
|
{ value: "stop", label: "Not now", description: "Stop here" },
|
|
160
161
|
],
|
|
161
162
|
};
|
|
162
163
|
}
|
|
164
|
+
/** A GitHub sign-in in a folder with nothing on GitHub: upload only after the human says so. */
|
|
165
|
+
export function uploadLocalQuestion() {
|
|
166
|
+
return {
|
|
167
|
+
id: "upload_local",
|
|
168
|
+
header: "Source",
|
|
169
|
+
question: "This folder isn't on GitHub. Scan its files by uploading them to CleanSlop?",
|
|
170
|
+
options: [
|
|
171
|
+
uploadOption("Uploads this folder's files. No project history or triage"),
|
|
172
|
+
{ value: "stop", label: "Not now", description: "Stop here" },
|
|
173
|
+
],
|
|
174
|
+
};
|
|
175
|
+
}
|
|
163
176
|
export function assertGithubReady(git, opts = {}) {
|
|
164
177
|
if (!git.github) {
|
|
165
178
|
throw sourceError("origin is not a github.com remote. Phase 1 only scans GitHub App repos.", {
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAuB,MAAM,WAAW,CAAC;AAG7D,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAQ3D,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IACxB,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,QAAQ,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC;AACjD,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;YACvD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,WAAW,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7C,OAAO,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,8BAA8B,CAAC,UAAkB;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAClC,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,UAAkB,EAClB,YAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,8BAA8B,CAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,CACL,GAAG,KAAK,EAAE;YACV,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAClE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,mDAAmD;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAa,EACb,GAAW;IAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAa,EACb,IAAc,EACd,GAAW,EACX,OAAe;IAEf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAa;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3E,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAClD,MAAM,WAAW,CAAC,uDAAuD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,IAAI,EACJ,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAChC,GAAG,EACH,uDAAuD,CACxD,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,IAAI,EACJ,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC/B,GAAG,EACH,wDAAwD,CACzD,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,UAAU,CAChC,IAAI,EACJ,CAAC,WAAW,EAAE,MAAM,CAAC,EACrB,GAAG,EACH,sBAAsB,CACvB,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACrE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE;QACzB,CAAC,CAAC,QAAQ,CAAC,MAAM;aACZ,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACrE,OAAO;QACL,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,iBAAiB;IAC/B,OAAO,YAAY,CAAC;QAClB,EAAE,EAAE,YAAY;QAChB,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,+CAA+C;QACzD,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;KACnC,CAAC,CAAC;AACL,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,WAAW,GACtB,8HAA8H,CAAC;AAEjI,sEAAsE;AACtE,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AACxF,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,EAAE,EAAE,gBAAgB;QACpB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EACN,mHAAmH;QACrH,OAAO,EAAE;YACP,YAAY,CACV,+EAA+E,CAChF;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,8DAA8D;gBAC3E,IAAI,EAAE,kBAAkB;aACzB;YACD,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE;SAC9D;KACF,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,EAAE,EAAE,cAAc;QAClB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,6EAA6E;QACvF,OAAO,EAAE;YACP,YAAY,CAAC,2DAA2D,CAAC;YACzE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE;SAC9D;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAgB,EAAE,OAAgC,EAAE;IACpF,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,WAAW,CACf,yEAAyE,EACzE;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,sEAAsE;SACzE,CACF,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG;YACV,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI;YAC9C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI;SACxD;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,OAAO,CAAC,CAAC;QACjB,MAAM,WAAW,CAAC,+CAA+C,GAAG,IAAI,EAAE;YACxE,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,oIAAoI;YACtI,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE;SACxE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAmB;IACjD,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,aAAa,CAAC;IAC1E,IAAI,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3E,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9D,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxE,OAAO,OAAO,CAAC;AACjB,CAAC"}
|