@kenkaiiii/gg-editor 0.2.0 → 0.4.0
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/dist/cli.js +12 -10
- package/dist/cli.js.map +1 -1
- package/dist/core/auth/login.d.ts.map +1 -1
- package/dist/core/auth/login.js +9 -3
- package/dist/core/auth/login.js.map +1 -1
- package/dist/core/cli-banner.d.ts +16 -0
- package/dist/core/cli-banner.d.ts.map +1 -0
- package/dist/core/cli-banner.js +75 -0
- package/dist/core/cli-banner.js.map +1 -0
- package/dist/core/doctor-render.d.ts +6 -6
- package/dist/core/doctor-render.d.ts.map +1 -1
- package/dist/core/doctor-render.js +120 -66
- package/dist/core/doctor-render.js.map +1 -1
- package/dist/core/doctor-render.test.d.ts +2 -0
- package/dist/core/doctor-render.test.d.ts.map +1 -0
- package/dist/core/doctor-render.test.js +151 -0
- package/dist/core/doctor-render.test.js.map +1 -0
- package/dist/core/doctor-runner.d.ts +15 -0
- package/dist/core/doctor-runner.d.ts.map +1 -0
- package/dist/core/doctor-runner.js +214 -0
- package/dist/core/doctor-runner.js.map +1 -0
- package/dist/core/doctor.d.ts +31 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +97 -0
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/version.d.ts +2 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +26 -0
- package/dist/core/version.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/cli.js
CHANGED
|
@@ -4,8 +4,9 @@ import { dirname } from "node:path";
|
|
|
4
4
|
import chalk from "chalk";
|
|
5
5
|
import { getDefaultModel } from "@kenkaiiii/ggcoder/models";
|
|
6
6
|
import { AuthStorage, NotLoggedInError, runLogin, runLogout, runStatus, } from "./core/auth/index.js";
|
|
7
|
-
import { isOnboarded, onboardedMarkerPath
|
|
8
|
-
import {
|
|
7
|
+
import { isOnboarded, onboardedMarkerPath } from "./core/doctor.js";
|
|
8
|
+
import { runDoctorInteractive } from "./core/doctor-runner.js";
|
|
9
|
+
import { getPackageVersion } from "./core/version.js";
|
|
9
10
|
import { discoverSkills } from "./core/skills-loader.js";
|
|
10
11
|
import { discoverStyles } from "./core/styles-loader.js";
|
|
11
12
|
import { SKILLS } from "./skills.js";
|
|
@@ -43,7 +44,7 @@ USAGE
|
|
|
43
44
|
ggeditor login Authenticate
|
|
44
45
|
ggeditor logout Clear credentials
|
|
45
46
|
ggeditor auth Show stored credentials
|
|
46
|
-
ggeditor doctor
|
|
47
|
+
ggeditor doctor Walk through environment fixes (--all to view inventory)
|
|
47
48
|
|
|
48
49
|
Auth lives in ~/.gg/auth.json — the SAME file ggcoder uses, so logging into
|
|
49
50
|
either CLI works for both.
|
|
@@ -90,8 +91,9 @@ async function main() {
|
|
|
90
91
|
return;
|
|
91
92
|
}
|
|
92
93
|
if (sub === "doctor") {
|
|
93
|
-
const
|
|
94
|
-
|
|
94
|
+
const all = args.includes("--all") || args.includes("-a");
|
|
95
|
+
const yes = args.includes("--yes") || args.includes("-y");
|
|
96
|
+
await runDoctorInteractive({ all, nonInteractive: yes });
|
|
95
97
|
return;
|
|
96
98
|
}
|
|
97
99
|
const isContinue = sub === "continue";
|
|
@@ -102,11 +104,11 @@ async function main() {
|
|
|
102
104
|
if (!process.stdin.isTTY) {
|
|
103
105
|
fail("ggeditor requires an interactive terminal");
|
|
104
106
|
}
|
|
105
|
-
// First-run onboarding — only when
|
|
106
|
-
//
|
|
107
|
+
// First-run onboarding — only when the marker doesn't exist. Walks
|
|
108
|
+
// the user through every actionable item, offering Y/N confirms for
|
|
109
|
+
// anything we know how to install via a package manager.
|
|
107
110
|
if (!isOnboarded()) {
|
|
108
|
-
|
|
109
|
-
process.stdout.write(renderDoctorReport(report, { onboarding: true }));
|
|
111
|
+
await runDoctorInteractive({ onboarding: true });
|
|
110
112
|
markOnboarded();
|
|
111
113
|
}
|
|
112
114
|
const auth = new AuthStorage();
|
|
@@ -191,7 +193,7 @@ async function main() {
|
|
|
191
193
|
hostAvailable: caps.isAvailable,
|
|
192
194
|
hostReason: caps.unavailableReason,
|
|
193
195
|
cwd,
|
|
194
|
-
version:
|
|
196
|
+
version: getPackageVersion(),
|
|
195
197
|
persistSessions: true,
|
|
196
198
|
onShutdown: cleanup,
|
|
197
199
|
});
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,SAAS,GAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/core/auth/login.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AA2BpB;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/core/auth/login.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AA2BpB;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C7F;AA2ED,wBAAsB,SAAS,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAW/E;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAiC/C"}
|
package/dist/core/auth/login.js
CHANGED
|
@@ -46,9 +46,10 @@ export async function runLogin(opts = {}) {
|
|
|
46
46
|
provider = opts.provider;
|
|
47
47
|
}
|
|
48
48
|
else {
|
|
49
|
+
const { getPackageVersion } = await import("../version.js");
|
|
49
50
|
const picked = await renderLoginSelector({
|
|
50
51
|
brand: "GG Editor",
|
|
51
|
-
version:
|
|
52
|
+
version: getPackageVersion(),
|
|
52
53
|
gradient: EDITOR_GRADIENT,
|
|
53
54
|
primary: EDITOR_PRIMARY,
|
|
54
55
|
accent: EDITOR_ACCENT,
|
|
@@ -166,8 +167,13 @@ export async function runStatus() {
|
|
|
166
167
|
const storage = new AuthStorage();
|
|
167
168
|
await storage.load();
|
|
168
169
|
const providers = await storage.listProviders();
|
|
169
|
-
|
|
170
|
-
|
|
170
|
+
const { renderCliBanner } = await import("../cli-banner.js");
|
|
171
|
+
const { getPackageVersion } = await import("../version.js");
|
|
172
|
+
process.stdout.write(renderCliBanner({
|
|
173
|
+
version: getPackageVersion(),
|
|
174
|
+
screen: "Auth",
|
|
175
|
+
subtitle: storage.path,
|
|
176
|
+
}));
|
|
171
177
|
if (providers.length === 0) {
|
|
172
178
|
process.stdout.write(chalk.yellow(" No credentials stored. Run `ggeditor login`.\n"));
|
|
173
179
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/core/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,oBAAoB,GAGrB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,aAAa;AAC/C,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,WAAW;AAC5C,MAAM,eAAe,GAAG;IACtB,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACzC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAA6C,EAAE;IAC5E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAE7C,IAAI,QAA+B,CAAC;IACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;YACvC,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/core/auth/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface CliBannerOptions {
|
|
2
|
+
/** Brand label shown next to logo line 1. Default "GG Editor". */
|
|
3
|
+
brand?: string;
|
|
4
|
+
/** Version shown after the brand. */
|
|
5
|
+
version: string;
|
|
6
|
+
/** Screen name shown next to logo line 2 (e.g. "Doctor", "Auth"). */
|
|
7
|
+
screen: string;
|
|
8
|
+
/** Subtitle shown next to logo line 3. Optional. */
|
|
9
|
+
subtitle?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Render the banner as a string. Newline-terminated; trailing blank
|
|
13
|
+
* line so subsequent content has air. Print with process.stdout.write.
|
|
14
|
+
*/
|
|
15
|
+
export declare function renderCliBanner(opts: CliBannerOptions): string;
|
|
16
|
+
//# sourceMappingURL=cli-banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-banner.d.ts","sourceRoot":"","sources":["../../src/core/cli-banner.ts"],"names":[],"mappings":"AA8CA,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAkB9D"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared chalk banner used by every non-TUI ggeditor screen
|
|
3
|
+
* (auth, login, doctor, onboarding). Mirrors the Ink-rendered banner
|
|
4
|
+
* from src/ui/components/Banner.tsx and the chalk login screen in
|
|
5
|
+
* @kenkaiiii/ggcoder/ui/login so all surfaces feel like one product.
|
|
6
|
+
*
|
|
7
|
+
* Layout (side-by-side, 3 lines):
|
|
8
|
+
*
|
|
9
|
+
* ▄▀▀▀ ▄▀▀▀ GG Editor v0.3.0 · By Ken Kai
|
|
10
|
+
* █ ▀█ █ ▀█ <screen>
|
|
11
|
+
* ▀▄▄▀ ▀▄▄▀ <subtitle>
|
|
12
|
+
*
|
|
13
|
+
* Logo glyphs are colored with the editor's warm sunset gradient (amber
|
|
14
|
+
* → orange → red → magenta). Brand text uses the editor primary; the
|
|
15
|
+
* accent color is reserved for the screen name.
|
|
16
|
+
*/
|
|
17
|
+
import chalk from "chalk";
|
|
18
|
+
const LOGO_LINES = [
|
|
19
|
+
" \u2584\u2580\u2580\u2580 \u2584\u2580\u2580\u2580",
|
|
20
|
+
" \u2588 \u2580\u2588 \u2588 \u2580\u2588",
|
|
21
|
+
" \u2580\u2584\u2584\u2580 \u2580\u2584\u2584\u2580",
|
|
22
|
+
];
|
|
23
|
+
const GRADIENT = [
|
|
24
|
+
"#fbbf24",
|
|
25
|
+
"#f59e0b",
|
|
26
|
+
"#f97316",
|
|
27
|
+
"#ea580c",
|
|
28
|
+
"#dc2626",
|
|
29
|
+
"#e11d48",
|
|
30
|
+
"#db2777",
|
|
31
|
+
"#e11d48",
|
|
32
|
+
"#dc2626",
|
|
33
|
+
"#ea580c",
|
|
34
|
+
"#f97316",
|
|
35
|
+
"#f59e0b",
|
|
36
|
+
];
|
|
37
|
+
const PRIMARY = "#f97316"; // brand orange
|
|
38
|
+
const ACCENT = "#ec4899"; // screen-name pink
|
|
39
|
+
const TEXT = "#e2e8f0";
|
|
40
|
+
const TEXT_DIM = "#64748b";
|
|
41
|
+
const GAP = " ";
|
|
42
|
+
/**
|
|
43
|
+
* Render the banner as a string. Newline-terminated; trailing blank
|
|
44
|
+
* line so subsequent content has air. Print with process.stdout.write.
|
|
45
|
+
*/
|
|
46
|
+
export function renderCliBanner(opts) {
|
|
47
|
+
const brand = opts.brand ?? "GG Editor";
|
|
48
|
+
const lines = [];
|
|
49
|
+
lines.push(gradient(LOGO_LINES[0]) +
|
|
50
|
+
GAP +
|
|
51
|
+
chalk.hex(PRIMARY).bold(brand) +
|
|
52
|
+
chalk.hex(TEXT_DIM)(` v${opts.version}`) +
|
|
53
|
+
chalk.hex(TEXT_DIM)(" \u00b7 By ") +
|
|
54
|
+
chalk.hex(TEXT).bold("Ken Kai"));
|
|
55
|
+
lines.push(gradient(LOGO_LINES[1]) + GAP + chalk.hex(ACCENT)(opts.screen));
|
|
56
|
+
lines.push(gradient(LOGO_LINES[2]) + (opts.subtitle ? GAP + chalk.hex(TEXT_DIM)(opts.subtitle) : ""));
|
|
57
|
+
lines.push("");
|
|
58
|
+
return lines.join("\n") + "\n";
|
|
59
|
+
}
|
|
60
|
+
function gradient(text) {
|
|
61
|
+
let result = "";
|
|
62
|
+
let colorIdx = 0;
|
|
63
|
+
for (const ch of text) {
|
|
64
|
+
if (ch === " ") {
|
|
65
|
+
result += ch;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
const color = GRADIENT[Math.min(colorIdx, GRADIENT.length - 1)];
|
|
69
|
+
result += chalk.hex(color)(ch);
|
|
70
|
+
colorIdx++;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=cli-banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-banner.js","sourceRoot":"","sources":["../../src/core/cli-banner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,GAAG;IACjB,oDAAoD;IACpD,0CAA0C;IAC1C,oDAAoD;CACrD,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,eAAe;AAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,mBAAmB;AAC7C,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,QAAQ,GAAG,SAAS,CAAC;AAE3B,MAAM,GAAG,GAAG,KAAK,CAAC;AAalB;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CACR,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,GAAG;QACH,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;QAClC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAClC,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,CACR,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC1F,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/B,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { DoctorReport } from "./doctor.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* `ggeditor doctor` command and the first-run onboarding flow.
|
|
5
|
-
*/
|
|
6
|
-
export declare function renderDoctorReport(report: DoctorReport, opts?: {
|
|
2
|
+
export interface RenderOptions {
|
|
3
|
+
/** Show the welcome banner instead of the plain header. */
|
|
7
4
|
onboarding?: boolean;
|
|
8
|
-
|
|
5
|
+
/** Show every check, not just the next thing to fix. */
|
|
6
|
+
all?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function renderDoctorReport(report: DoctorReport, opts?: RenderOptions): string;
|
|
9
9
|
//# sourceMappingURL=doctor-render.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-render.d.ts","sourceRoot":"","sources":["../../src/core/doctor-render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor-render.d.ts","sourceRoot":"","sources":["../../src/core/doctor-render.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,aAAkB,GAAG,MAAM,CAEzF"}
|
|
@@ -1,91 +1,145 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Pretty-printer for DoctorReport.
|
|
3
|
-
*
|
|
2
|
+
* Pretty-printer for DoctorReport.
|
|
3
|
+
*
|
|
4
|
+
* Two modes:
|
|
5
|
+
*
|
|
6
|
+
* 1. focused (default) — show ONE thing to fix at a time, highest
|
|
7
|
+
* priority first. After the user fixes it and re-runs, the next
|
|
8
|
+
* one surfaces. When everything's clear: "Nothing to fix."
|
|
9
|
+
* This is the daily-driver mode and what onboarding uses.
|
|
10
|
+
*
|
|
11
|
+
* 2. all — full inventory, grouped by severity. Useful when the user
|
|
12
|
+
* wants to see what's optional / unlocks what. Triggered by
|
|
13
|
+
* `ggeditor doctor --all`.
|
|
14
|
+
*
|
|
15
|
+
* Priority order for the focused mode:
|
|
16
|
+
* required-missing > optional-warn > optional-missing > done
|
|
17
|
+
* Within a tier we keep the source order from runDoctor() so the most
|
|
18
|
+
* impactful tools (ffmpeg, then auth) come first.
|
|
4
19
|
*/
|
|
5
20
|
import chalk from "chalk";
|
|
6
|
-
const SEVERITY_LABEL = {
|
|
7
|
-
block: "BLOCK",
|
|
8
|
-
required: "REQUIRED",
|
|
9
|
-
optional: "OPTIONAL",
|
|
10
|
-
info: "INFO",
|
|
11
|
-
};
|
|
12
|
-
function statusGlyph(c) {
|
|
13
|
-
if (c.status === "ok")
|
|
14
|
-
return chalk.green("✓");
|
|
15
|
-
if (c.status === "warn")
|
|
16
|
-
return chalk.yellow("!");
|
|
17
|
-
// missing — color by severity
|
|
18
|
-
if (c.severity === "required" || c.severity === "block")
|
|
19
|
-
return chalk.red("✗");
|
|
20
|
-
if (c.severity === "optional")
|
|
21
|
-
return chalk.yellow("○");
|
|
22
|
-
return chalk.dim("·");
|
|
23
|
-
}
|
|
24
|
-
/** Render a single check as a 3-4 line block. */
|
|
25
|
-
function renderCheck(c) {
|
|
26
|
-
const lines = [];
|
|
27
|
-
const badge = chalk.dim(`[${SEVERITY_LABEL[c.severity]}]`);
|
|
28
|
-
const header = `${statusGlyph(c)} ${chalk.bold(c.label)} ${badge} ${chalk.dim(c.detail)}`;
|
|
29
|
-
lines.push(header);
|
|
30
|
-
lines.push(chalk.dim(" Unlocks: ") + c.unlocks);
|
|
31
|
-
if (c.fix) {
|
|
32
|
-
const fixed = c.fix
|
|
33
|
-
.split("\n")
|
|
34
|
-
.map((l) => " " + chalk.cyan(l))
|
|
35
|
-
.join("\n");
|
|
36
|
-
lines.push(chalk.dim(" Fix:"));
|
|
37
|
-
lines.push(fixed);
|
|
38
|
-
}
|
|
39
|
-
return lines.join("\n");
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Produce the full doctor output. Used by both the explicit
|
|
43
|
-
* `ggeditor doctor` command and the first-run onboarding flow.
|
|
44
|
-
*/
|
|
45
21
|
export function renderDoctorReport(report, opts = {}) {
|
|
22
|
+
return opts.all ? renderAll(report, opts) : renderFocused(report, opts);
|
|
23
|
+
}
|
|
24
|
+
// ── Focused mode (default) ──────────────────────────────────
|
|
25
|
+
function renderFocused(report, opts) {
|
|
46
26
|
const out = [];
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
27
|
+
const next = pickNextToFix(report);
|
|
28
|
+
const done = countDone(report);
|
|
29
|
+
const total = countActionable(report);
|
|
30
|
+
if (!next) {
|
|
31
|
+
// Nothing left to fix.
|
|
32
|
+
out.push(" " +
|
|
33
|
+
chalk.green("✓ Nothing to fix. You're all good.") +
|
|
34
|
+
chalk.dim(" Run `ggeditor` to start."));
|
|
35
|
+
out.push(" " + progressBar(done, total));
|
|
36
|
+
out.push(chalk.dim(" Re-run with `ggeditor doctor --all` to see the full inventory."));
|
|
51
37
|
out.push("");
|
|
38
|
+
return out.join("\n");
|
|
52
39
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
40
|
+
// One focused item.
|
|
41
|
+
out.push(" " + chalk.dim(progressBar(done, total)));
|
|
42
|
+
out.push("");
|
|
43
|
+
out.push(" " + severityHeading(next));
|
|
44
|
+
out.push(" " + chalk.bold(next.label) + chalk.dim(" — " + next.detail));
|
|
45
|
+
out.push("");
|
|
46
|
+
out.push(" " + chalk.dim("Why it matters"));
|
|
47
|
+
out.push(" " + next.unlocks);
|
|
48
|
+
if (next.fix) {
|
|
56
49
|
out.push("");
|
|
50
|
+
out.push(" " + chalk.dim("Fix"));
|
|
51
|
+
for (const line of next.fix.split("\n")) {
|
|
52
|
+
out.push(" " + chalk.cyan(line));
|
|
53
|
+
}
|
|
57
54
|
}
|
|
58
|
-
|
|
55
|
+
out.push("");
|
|
56
|
+
out.push(chalk.dim(" Re-run `ggeditor doctor` after fixing to see the next item."));
|
|
57
|
+
if (!opts.all) {
|
|
58
|
+
out.push(chalk.dim(" Or `ggeditor doctor --all` to see the full inventory."));
|
|
59
|
+
}
|
|
60
|
+
out.push("");
|
|
61
|
+
return out.join("\n");
|
|
62
|
+
}
|
|
63
|
+
// ── All mode (--all) ────────────────────────────────────────
|
|
64
|
+
function renderAll(report, _opts) {
|
|
65
|
+
const out = [];
|
|
59
66
|
const groups = [
|
|
60
|
-
{ title:
|
|
61
|
-
{ title:
|
|
62
|
-
{ title:
|
|
67
|
+
{ title: "Required", severities: ["block", "required"] },
|
|
68
|
+
{ title: "Optional", severities: ["optional"] },
|
|
69
|
+
{ title: "Info", severities: ["info"] },
|
|
63
70
|
];
|
|
64
71
|
for (const group of groups) {
|
|
65
72
|
const items = report.checks.filter((c) => group.severities.includes(c.severity));
|
|
66
73
|
if (items.length === 0)
|
|
67
74
|
continue;
|
|
68
|
-
out.push(group.title);
|
|
69
|
-
out.push("");
|
|
75
|
+
out.push(" " + chalk.dim(group.title));
|
|
70
76
|
for (const c of items)
|
|
71
|
-
out.push(
|
|
77
|
+
out.push(renderInventoryLine(c));
|
|
72
78
|
out.push("");
|
|
73
79
|
}
|
|
74
|
-
// Summary
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
80
|
+
// Summary
|
|
81
|
+
const next = pickNextToFix(report);
|
|
82
|
+
if (!next) {
|
|
83
|
+
out.push(" " +
|
|
84
|
+
chalk.green("✓ Nothing to fix. You're all good.") +
|
|
85
|
+
chalk.dim(" Run `ggeditor` to start."));
|
|
79
86
|
}
|
|
80
87
|
else {
|
|
81
|
-
out.push(chalk.
|
|
82
|
-
chalk.bold(`${missingRequired.length} required item${missingRequired.length === 1 ? "" : "s"} missing.`) +
|
|
83
|
-
" You can still launch ggeditor, but most tools will error until they're installed.");
|
|
84
|
-
}
|
|
85
|
-
if (missingOptional.length > 0) {
|
|
86
|
-
out.push(chalk.dim(` ${missingOptional.length} optional item${missingOptional.length === 1 ? "" : "s"} would unlock more features (see above).`));
|
|
88
|
+
out.push(" " + chalk.dim("Next: ") + chalk.bold(next.label) + chalk.dim(" — see `ggeditor doctor`"));
|
|
87
89
|
}
|
|
88
90
|
out.push("");
|
|
89
91
|
return out.join("\n");
|
|
90
92
|
}
|
|
93
|
+
function renderInventoryLine(c) {
|
|
94
|
+
const glyph = c.status === "ok"
|
|
95
|
+
? chalk.green("✓")
|
|
96
|
+
: c.status === "warn"
|
|
97
|
+
? chalk.yellow("!")
|
|
98
|
+
: c.severity === "required" || c.severity === "block"
|
|
99
|
+
? chalk.red("✗")
|
|
100
|
+
: chalk.yellow("○");
|
|
101
|
+
return ` ${glyph} ${c.label.padEnd(28)} ${chalk.dim(c.detail)}`;
|
|
102
|
+
}
|
|
103
|
+
// ── Helpers ────────────────────────────────────────────────
|
|
104
|
+
/**
|
|
105
|
+
* Pick the next thing to fix in priority order. `info` checks are
|
|
106
|
+
* never returned (they're informational, not actionable).
|
|
107
|
+
*/
|
|
108
|
+
function pickNextToFix(report) {
|
|
109
|
+
const tiers = [
|
|
110
|
+
{ severity: "block", statuses: ["missing", "warn"] },
|
|
111
|
+
{ severity: "required", statuses: ["missing", "warn"] },
|
|
112
|
+
{ severity: "optional", statuses: ["warn"] }, // warn before plain missing
|
|
113
|
+
{ severity: "optional", statuses: ["missing"] },
|
|
114
|
+
];
|
|
115
|
+
for (const tier of tiers) {
|
|
116
|
+
const hit = report.checks.find((c) => c.severity === tier.severity && tier.statuses.includes(c.status));
|
|
117
|
+
if (hit)
|
|
118
|
+
return hit;
|
|
119
|
+
}
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
/** Pretty heading above the focused item. */
|
|
123
|
+
function severityHeading(c) {
|
|
124
|
+
if (c.severity === "required" || c.severity === "block") {
|
|
125
|
+
return chalk.red.bold("Next up — required");
|
|
126
|
+
}
|
|
127
|
+
if (c.status === "warn")
|
|
128
|
+
return chalk.yellow.bold("Next up — needs attention");
|
|
129
|
+
return chalk.yellow.bold("Next up — optional");
|
|
130
|
+
}
|
|
131
|
+
/** Count actionable items (everything except `info`). */
|
|
132
|
+
function countActionable(report) {
|
|
133
|
+
return report.checks.filter((c) => c.severity !== "info").length;
|
|
134
|
+
}
|
|
135
|
+
function countDone(report) {
|
|
136
|
+
return report.checks.filter((c) => c.severity !== "info" && c.status === "ok").length;
|
|
137
|
+
}
|
|
138
|
+
/** "[██████░░░] 6 of 9" — at-a-glance progress. */
|
|
139
|
+
function progressBar(done, total) {
|
|
140
|
+
const width = 12;
|
|
141
|
+
const filled = total === 0 ? 0 : Math.round((done / total) * width);
|
|
142
|
+
const bar = chalk.green("█".repeat(filled)) + chalk.dim("░".repeat(width - filled));
|
|
143
|
+
return `${bar} ${done} of ${total} ready`;
|
|
144
|
+
}
|
|
91
145
|
//# sourceMappingURL=doctor-render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-render.js","sourceRoot":"","sources":["../../src/core/doctor-render.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"doctor-render.js","sourceRoot":"","sources":["../../src/core/doctor-render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-render.test.d.ts","sourceRoot":"","sources":["../../src/core/doctor-render.test.ts"],"names":[],"mappings":""}
|