@ranimontagna/agent-toolkit 0.1.17 → 0.1.18

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/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # Changelog
2
+
3
+ ## 0.1.17
4
+
5
+ - Added shadcn Improve installation from a pinned source.
6
+ - Added GSAP skills under the bundled frontend package.
7
+ - Updated external tool and runtime pins.
8
+ - Published through the trusted npm release workflow.
9
+
10
+ Earlier versions were developed before this changelog existed. Use Git history
11
+ and npm release metadata for older details.
@@ -0,0 +1,34 @@
1
+ # Contributing
2
+
3
+ Agent Toolkit is a public installer for personal AI-agent workflows. Keep changes
4
+ small, pinned and easy to verify.
5
+
6
+ ## Development Flow
7
+
8
+ 1. Install dependencies with `pnpm install`.
9
+ 2. Make focused changes that follow the existing TypeScript module boundaries.
10
+ 3. Add or update tests for behavior that can regress.
11
+ 4. Run the release gate before claiming completion:
12
+
13
+ ```bash
14
+ rtk pnpm run check
15
+ ```
16
+
17
+ If `rtk` is unavailable, run the same command without the prefix.
18
+
19
+ ## Commit Messages
20
+
21
+ Use Conventional Commits:
22
+
23
+ ```text
24
+ feat: add doctor command
25
+ fix: preserve skill manifest entries
26
+ docs: document release flow
27
+ test: cover installer dry run
28
+ ```
29
+
30
+ ## External Sources
31
+
32
+ Keep `tools.lock.json` as the source of truth for external tools. New third-party
33
+ skills must use immutable public sources, include license/notice files when
34
+ vendored, and pass `pnpm run check`.
package/README.md CHANGED
@@ -118,6 +118,30 @@ Install only bundled Custom Skills into the current project:
118
118
  npx -y @ranimontagna/agent-toolkit --skills-only --codex --local
119
119
  ```
120
120
 
121
+ Preview an install plan without changing files:
122
+
123
+ ```bash
124
+ npx -y @ranimontagna/agent-toolkit --all --codex --dry-run
125
+ ```
126
+
127
+ Inspect selected tools and runtimes as JSON:
128
+
129
+ ```bash
130
+ npx -y @ranimontagna/agent-toolkit --doctor --json --codex
131
+ ```
132
+
133
+ Audit bundled Custom Skills metadata and local links:
134
+
135
+ ```bash
136
+ npx -y @ranimontagna/agent-toolkit --skills-audit
137
+ ```
138
+
139
+ Report newer candidates for pinned external tools:
140
+
141
+ ```bash
142
+ npx -y @ranimontagna/agent-toolkit --update-lock
143
+ ```
144
+
121
145
  Install only the `core` Custom Skills package:
122
146
 
123
147
  ```bash
@@ -226,6 +250,8 @@ skills/
226
250
  code-reviewer/
227
251
  SKILL.md
228
252
  rules/
253
+ thermo-nuclear-code-quality-review/
254
+ SKILL.md
229
255
  devops/
230
256
  docker-patterns/
231
257
  SKILL.md
@@ -345,6 +371,7 @@ Follow these steps...
345
371
  | `frontend` | `react-performance` | Copied from Affaan Mustafa's [`ECC`](https://github.com/affaan-m/ECC/tree/main/skills/react-performance) under the MIT license |
346
372
  | `frontend` | `react-testing` | Copied from Affaan Mustafa's [`ECC`](https://github.com/affaan-m/ECC/tree/main/skills/react-testing) under the MIT license |
347
373
  | `general` | `code-reviewer` | Copied from Shubhamsaboo's [`awesome-llm-apps`](https://github.com/Shubhamsaboo/awesome-llm-apps/tree/main/awesome_agent_skills/code-reviewer) under the repository Apache-2.0 license |
374
+ | `general` | `thermo-nuclear-code-quality-review` | Copied from Cursor's [`plugins`](https://github.com/cursor/plugins/tree/main/cursor-team-kit/skills/thermo-nuclear-code-quality-review) repository under the MIT license |
348
375
 
349
376
  Each React skill carries its own ECC `rules/react` references so Markdown links
350
377
  still resolve after the installer copies skills into flat runtime directories.
@@ -405,6 +432,16 @@ Install scope:
405
432
  --skills-path PATH Install an exact Custom Skill path
406
433
  --skills-list List discovered Custom Skills and exit
407
434
 
435
+ Operations:
436
+ --dry-run Print the selected install plan without changing files
437
+ --plan-only Alias for --dry-run
438
+ --doctor, --status Inspect selected tools and runtimes without installing
439
+ --json Emit machine-readable output for supported operations
440
+ --uninstall Remove files recorded in the Agent Toolkit manifest
441
+ --repair Re-run selected installs and refresh the manifest
442
+ --update-lock Report newer versions for pinned external sources
443
+ --skills-audit Validate bundled Custom Skills metadata and links
444
+
408
445
  Other:
409
446
  --install-missing-clis Install or update selected runtime CLIs
410
447
  --allow-mutable-sources Allow explicit mutable package sources like @latest
@@ -592,6 +629,9 @@ pnpm run typecheck
592
629
  pnpm run lint
593
630
  pnpm run lint:fix
594
631
  pnpm run format
632
+ pnpm run release:patch
633
+ pnpm run release:minor
634
+ pnpm run release:major
595
635
  pnpm run security
596
636
  pnpm run test:unit
597
637
  pnpm run test:integration
@@ -621,8 +661,17 @@ Release a new npm version by updating `package.json`, pushing the change to
621
661
  `main`, then pushing a matching tag:
622
662
 
623
663
  ```bash
624
- git tag v0.1.17
625
- git push origin v0.1.17
664
+ git tag v0.1.18
665
+ git push origin v0.1.18
666
+ ```
667
+
668
+ For normal releases, prefer the scripted flow. It bumps `package.json`, updates
669
+ the README release tag example, runs `pnpm run check`, commits with a
670
+ Conventional Commit message and creates the local tag:
671
+
672
+ ```bash
673
+ pnpm run release:patch
674
+ git push origin main v0.1.18
626
675
  ```
627
676
 
628
677
  The `Release` workflow runs the full check and publishes the scoped package to
package/SECURITY.md ADDED
@@ -0,0 +1,24 @@
1
+ # Security
2
+
3
+ Agent Toolkit installs tools and skills into local agent runtime directories, so
4
+ supply-chain changes need careful review.
5
+
6
+ ## Reporting
7
+
8
+ Open a GitHub security advisory or a private issue with:
9
+
10
+ - affected version or commit;
11
+ - exact command used;
12
+ - affected runtime and install scope;
13
+ - relevant logs with secrets removed.
14
+
15
+ Do not paste tokens, private repository URLs or internal project names into
16
+ public issues.
17
+
18
+ ## Project Controls
19
+
20
+ - repository dependencies are locked by `pnpm-lock.yaml`;
21
+ - external installer sources are pinned in `tools.lock.json`;
22
+ - mutable sources are blocked unless `--allow-mutable-sources` is explicit;
23
+ - CI runs lint, typecheck, tests, build, Gitleaks and dependency audit;
24
+ - npm releases use trusted publishing through GitHub Actions OIDC.
package/dist/src/args.js CHANGED
@@ -169,6 +169,35 @@ export function parseArgs(argv) {
169
169
  state.listSkills = true;
170
170
  state.nonInteractive = true;
171
171
  break;
172
+ case "--dry-run":
173
+ case "--plan-only":
174
+ state.dryRun = true;
175
+ state.nonInteractive = true;
176
+ break;
177
+ case "--doctor":
178
+ case "--status":
179
+ state.doctor = true;
180
+ state.nonInteractive = true;
181
+ break;
182
+ case "--json":
183
+ state.jsonOutput = true;
184
+ break;
185
+ case "--uninstall":
186
+ state.uninstall = true;
187
+ state.nonInteractive = true;
188
+ break;
189
+ case "--repair":
190
+ state.repair = true;
191
+ state.nonInteractive = true;
192
+ break;
193
+ case "--update-lock":
194
+ state.updateLock = true;
195
+ state.nonInteractive = true;
196
+ break;
197
+ case "--skills-audit":
198
+ state.auditSkills = true;
199
+ state.nonInteractive = true;
200
+ break;
172
201
  case "--install-missing-clis":
173
202
  state.installMissingClis = true;
174
203
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type InstallScope, type RuntimeName, type ToolName } from "./state.js";
2
+ import type { InstallerStatus } from "./status.js";
3
+ type DoctorIssue = {
4
+ kind: "tool" | "runtime" | "skills";
5
+ name: string;
6
+ message: string;
7
+ };
8
+ export type DoctorReport = {
9
+ command: "doctor";
10
+ ok: boolean;
11
+ scope: InstallScope;
12
+ customSkillsDir: string;
13
+ installMissingClis: boolean;
14
+ selectedTools: ToolName[];
15
+ selectedRuntimes: RuntimeName[];
16
+ status: InstallerStatus;
17
+ issues: DoctorIssue[];
18
+ };
19
+ type DoctorInput = {
20
+ selectedTools: ToolName[];
21
+ selectedRuntimes: RuntimeName[];
22
+ scope: InstallScope;
23
+ customSkillsDir: string;
24
+ installMissingClis: boolean;
25
+ };
26
+ export declare function buildDoctorReport(status: InstallerStatus, input: DoctorInput): DoctorReport;
27
+ export declare function formatDoctorReport(report: DoctorReport): string;
28
+ export {};
@@ -0,0 +1,78 @@
1
+ import { runtimeMeta, } from "./state.js";
2
+ function toolLabel(tool) {
3
+ switch (tool) {
4
+ case "rtk":
5
+ return "RTK";
6
+ case "caveman":
7
+ return "Caveman";
8
+ case "superpowers":
9
+ return "Superpowers";
10
+ case "graphify":
11
+ return "Graphify";
12
+ case "gsd":
13
+ return "GSD";
14
+ case "improve":
15
+ return "Improve";
16
+ case "frontend-skills":
17
+ return "Frontend Skills";
18
+ case "skills":
19
+ return "Custom Skills";
20
+ }
21
+ }
22
+ export function buildDoctorReport(status, input) {
23
+ const issues = [];
24
+ for (const tool of input.selectedTools) {
25
+ const detection = status.tools[tool];
26
+ if (detection.state === "missing") {
27
+ issues.push({
28
+ kind: tool === "skills" ? "skills" : "tool",
29
+ name: toolLabel(tool),
30
+ message: `${toolLabel(tool)} is selected but ${detection.summary}.`,
31
+ });
32
+ }
33
+ }
34
+ for (const runtime of input.selectedRuntimes) {
35
+ const detection = status.runtimes[runtime];
36
+ if (detection.state === "missing") {
37
+ const installHint = input.installMissingClis
38
+ ? "The installer is allowed to install or update it."
39
+ : "Re-run with --install-missing-clis or install it manually.";
40
+ issues.push({
41
+ kind: "runtime",
42
+ name: runtimeMeta[runtime].display,
43
+ message: `${runtimeMeta[runtime].display} is selected but ${detection.summary}. ${installHint}`,
44
+ });
45
+ }
46
+ }
47
+ return {
48
+ command: "doctor",
49
+ ok: issues.length === 0,
50
+ scope: input.scope,
51
+ customSkillsDir: input.customSkillsDir,
52
+ installMissingClis: input.installMissingClis,
53
+ selectedTools: input.selectedTools,
54
+ selectedRuntimes: input.selectedRuntimes,
55
+ status,
56
+ issues,
57
+ };
58
+ }
59
+ export function formatDoctorReport(report) {
60
+ const lines = [
61
+ "Doctor report",
62
+ `Scope: ${report.scope}`,
63
+ `Custom Skills source: ${report.customSkillsDir}`,
64
+ `Selected tools: ${report.selectedTools.join(", ") || "none"}`,
65
+ `Selected runtimes: ${report.selectedRuntimes.join(", ") || "none"}`,
66
+ "",
67
+ ];
68
+ if (report.issues.length === 0) {
69
+ lines.push("No blocking issues found for the selected plan.");
70
+ return lines.join("\n");
71
+ }
72
+ lines.push("Issues:");
73
+ for (const issue of report.issues) {
74
+ lines.push(`- ${issue.name}: ${issue.message}`);
75
+ }
76
+ return lines.join("\n");
77
+ }
78
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type RunResult } from "./system.js";
2
+ import { type ToolLock } from "./tool-lock.js";
3
+ export type LockUpdateItem = {
4
+ name: string;
5
+ source: "npm" | "pypi" | "github" | "github-release";
6
+ current: string;
7
+ latest?: string;
8
+ status: "current" | "update-available" | "unknown";
9
+ error?: string;
10
+ };
11
+ export type LockUpdateReport = {
12
+ command: "update-lock";
13
+ items: LockUpdateItem[];
14
+ };
15
+ type Clients = {
16
+ capture?: (command: string, args?: string[]) => RunResult;
17
+ fetchJson?: (url: string) => Promise<unknown>;
18
+ };
19
+ export declare function buildLockUpdateReport(lock?: ToolLock, clients?: Clients): Promise<LockUpdateReport>;
20
+ export declare function formatLockUpdateReport(report: LockUpdateReport): string;
21
+ export declare function printLockUpdateError(error: unknown): void;
22
+ export {};
@@ -0,0 +1,130 @@
1
+ import { err } from "./logger.js";
2
+ import { capture, fetchJson } from "./system.js";
3
+ import { loadToolLock } from "./tool-lock.js";
4
+ function itemStatus(current, latest) {
5
+ if (!latest)
6
+ return "unknown";
7
+ return current === latest ? "current" : "update-available";
8
+ }
9
+ async function latestNpmVersion(packageName, clients) {
10
+ const result = clients.capture("npm", [
11
+ "view",
12
+ packageName,
13
+ "version",
14
+ "--silent",
15
+ ]);
16
+ if (!result.ok) {
17
+ throw new Error(result.stderr.trim() || `npm view failed for ${packageName}`);
18
+ }
19
+ const version = result.stdout.trim().split(/\r?\n/).at(-1)?.trim();
20
+ if (!version)
21
+ throw new Error(`npm did not return a version for ${packageName}`);
22
+ return version;
23
+ }
24
+ async function latestPyPiVersion(packageName, clients) {
25
+ const response = (await clients.fetchJson(`https://pypi.org/pypi/${encodeURIComponent(packageName)}/json`));
26
+ if (!response.info?.version) {
27
+ throw new Error(`PyPI did not return a version for ${packageName}`);
28
+ }
29
+ return response.info.version;
30
+ }
31
+ async function latestGitHubCommit(repository, clients) {
32
+ const repo = (await clients.fetchJson(`https://api.github.com/repos/${repository}`));
33
+ const branch = repo.default_branch || "main";
34
+ const commit = (await clients.fetchJson(`https://api.github.com/repos/${repository}/commits/${encodeURIComponent(branch)}`));
35
+ if (!commit.sha)
36
+ throw new Error(`GitHub did not return a commit for ${repository}`);
37
+ return commit.sha;
38
+ }
39
+ async function latestGitHubRelease(repository, clients) {
40
+ const release = (await clients.fetchJson(`https://api.github.com/repos/${repository}/releases/latest`));
41
+ if (!release.tag_name) {
42
+ throw new Error(`GitHub did not return a latest release for ${repository}`);
43
+ }
44
+ return release.tag_name;
45
+ }
46
+ async function collectItem(item, resolver) {
47
+ try {
48
+ const latest = await resolver();
49
+ return {
50
+ ...item,
51
+ latest,
52
+ status: itemStatus(item.current, latest),
53
+ };
54
+ }
55
+ catch (error) {
56
+ return {
57
+ ...item,
58
+ status: "unknown",
59
+ error: error instanceof Error ? error.message : String(error),
60
+ };
61
+ }
62
+ }
63
+ export async function buildLockUpdateReport(lock = loadToolLock(), clients = {}) {
64
+ const resolvedClients = {
65
+ capture: clients.capture || capture,
66
+ fetchJson: clients.fetchJson || fetchJson,
67
+ };
68
+ const items = await Promise.all([
69
+ collectItem({
70
+ name: "RTK",
71
+ source: "github-release",
72
+ current: lock.tools.rtk.tag,
73
+ }, () => latestGitHubRelease(lock.tools.rtk.repository, resolvedClients)),
74
+ collectItem({
75
+ name: "Caveman",
76
+ source: "github",
77
+ current: lock.tools.caveman.ref,
78
+ }, () => latestGitHubCommit(lock.tools.caveman.repository, resolvedClients)),
79
+ collectItem({
80
+ name: "Graphify",
81
+ source: "pypi",
82
+ current: lock.tools.graphify.version,
83
+ }, () => latestPyPiVersion(lock.tools.graphify.package, resolvedClients)),
84
+ collectItem({
85
+ name: "GSD",
86
+ source: "npm",
87
+ current: lock.tools.gsd.version,
88
+ }, () => latestNpmVersion(lock.tools.gsd.package, resolvedClients)),
89
+ collectItem({
90
+ name: "Improve",
91
+ source: "github",
92
+ current: lock.tools.improve.ref,
93
+ }, () => latestGitHubCommit(lock.tools.improve.repository, resolvedClients)),
94
+ collectItem({
95
+ name: "Agent Skills CLI",
96
+ source: "npm",
97
+ current: lock.tools.frontendSkills.skillsCli.version,
98
+ }, () => latestNpmVersion(lock.tools.frontendSkills.skillsCli.package, resolvedClients)),
99
+ collectItem({
100
+ name: "Impeccable",
101
+ source: "github",
102
+ current: lock.tools.frontendSkills.impeccable.ref,
103
+ }, () => latestGitHubCommit(lock.tools.frontendSkills.impeccable.repository, resolvedClients)),
104
+ collectItem({
105
+ name: "Taste Skill",
106
+ source: "github",
107
+ current: lock.tools.frontendSkills.tasteSkill.ref,
108
+ }, () => latestGitHubCommit(lock.tools.frontendSkills.tasteSkill.repository, resolvedClients)),
109
+ ...["claude", "codex", "opencode", "gemini"].map((runtime) => collectItem({
110
+ name: `${runtime} CLI`,
111
+ source: "npm",
112
+ current: lock.runtimeClis[runtime].version,
113
+ }, () => latestNpmVersion(lock.runtimeClis[runtime].package, resolvedClients))),
114
+ ]);
115
+ return { command: "update-lock", items };
116
+ }
117
+ export function formatLockUpdateReport(report) {
118
+ const lines = ["External source update report"];
119
+ for (const item of report.items) {
120
+ const latest = item.latest || "unknown";
121
+ const suffix = item.error ? ` (${item.error})` : "";
122
+ lines.push(`- ${item.name}: ${item.current} -> ${latest} [${item.status}]${suffix}`);
123
+ }
124
+ lines.push("", "This command reports candidates only; update tools.lock.json intentionally after reviewing checksums and changelogs.");
125
+ return lines.join("\n");
126
+ }
127
+ export function printLockUpdateError(error) {
128
+ err(error instanceof Error ? error.message : String(error));
129
+ }
130
+ //# sourceMappingURL=lock-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock-update.js","sourceRoot":"","sources":["../../src/lock-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,YAAY,EAAiB,MAAM,gBAAgB,CAAC;AAuC7D,SAAS,UAAU,CACjB,OAAe,EACf,MAAe;IAEf,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,WAAmB,EACnB,OAA2C;IAE3C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;QACpC,MAAM;QACN,WAAW;QACX,SAAS;QACT,UAAU;KACX,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,uBAAuB,WAAW,EAAE,CAC7D,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACnE,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAC;IACrE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,WAAmB,EACnB,OAA6C;IAE7C,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CACvC,yBAAyB,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAChE,CAAiB,CAAC;IACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,UAAkB,EAClB,OAA6C;IAE7C,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CACnC,gCAAgC,UAAU,EAAE,CAC7C,CAAuB,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CACrC,gCAAgC,UAAU,YAAY,kBAAkB,CAAC,MAAM,CAAC,EAAE,CACnF,CAAyB,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,GAAG;QACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,UAAkB,EAClB,OAA6C;IAE7C,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CACtC,gCAAgC,UAAU,kBAAkB,CAC7D,CAA0B,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAyD,EACzD,QAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;QAChC,OAAO;YACL,GAAG,IAAI;YACP,MAAM;YACN,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;SACzC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAiB,YAAY,EAAE,EAC/B,UAAmB,EAAE;IAErB,MAAM,eAAe,GAAG;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;QACnC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;KAC1C,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9B,WAAW,CACT;YACE,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;SAC5B,EACD,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CACtE;QACD,WAAW,CACT;YACE,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;SAChC,EACD,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,CACzE;QACD,WAAW,CACT;YACE,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO;SACrC,EACD,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CACtE;QACD,WAAW,CACT;YACE,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO;SAChC,EACD,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAChE;QACD,WAAW,CACT;YACE,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;SAChC,EACD,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,CACzE;QACD,WAAW,CACT;YACE,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO;SACrD,EACD,GAAG,EAAE,CACH,gBAAgB,CACd,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,EAC3C,eAAe,CAChB,CACJ;QACD,WAAW,CACT;YACE,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG;SAClD,EACD,GAAG,EAAE,CACH,kBAAkB,CAChB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAC/C,eAAe,CAChB,CACJ;QACD,WAAW,CACT;YACE,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG;SAClD,EACD,GAAG,EAAE,CACH,kBAAkB,CAChB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAC/C,eAAe,CAChB,CACJ;QACD,GAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACtE,WAAW,CACT;YACE,IAAI,EAAE,GAAG,OAAO,MAAM;YACtB,MAAM,EAAE,KAAc;YACtB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO;SAC3C,EACD,GAAG,EAAE,CACH,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,CACvE,CACF;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAwB;IAC7D,MAAM,KAAK,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CACR,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,OAAO,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,sHAAsH,CACvH,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC"}
package/dist/src/main.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import process from "node:process";
2
2
  import { parseArgs } from "./args.js";
3
+ import { buildDoctorReport, formatDoctorReport } from "./doctor.js";
3
4
  import { installCaveman } from "./installers/caveman.js";
4
5
  import { installFrontendSkills } from "./installers/frontend-skills.js";
5
6
  import { installGraphify } from "./installers/graphify.js";
@@ -7,13 +8,49 @@ import { installGsd } from "./installers/gsd.js";
7
8
  import { installImprove } from "./installers/improve.js";
8
9
  import { installRtk } from "./installers/rtk.js";
9
10
  import { installSuperpowers } from "./installers/superpowers.js";
11
+ import { buildLockUpdateReport, formatLockUpdateReport, printLockUpdateError, } from "./lock-update.js";
10
12
  import { die, err, skip, warn } from "./logger.js";
13
+ import { savePendingManifest, uninstallFromManifest } from "./manifest.js";
11
14
  import { showMenu } from "./menu.js";
12
15
  import { checkExternalToolProvenance } from "./provenance.js";
13
16
  import { checkPrerequisites } from "./runtimes.js";
14
17
  import { installCustomSkills, listCustomSkills } from "./skills.js";
15
- import { anyRuntimeSelected, anyToolSelected, state } from "./state.js";
18
+ import { auditSkills, printSkillsAudit } from "./skills-audit.js";
19
+ import { anyRuntimeSelected, anyToolSelected, runtimeNames, state, toolNames, } from "./state.js";
20
+ import { detectInstallerStatus, formatInstallPlan } from "./status.js";
16
21
  import { printHeader, printSelections, printSummary } from "./ui.js";
22
+ function selectedTools() {
23
+ return toolNames.filter((tool) => state.tools[tool]);
24
+ }
25
+ function selectedRuntimes() {
26
+ return runtimeNames.filter((runtime) => state.runtimes[runtime]);
27
+ }
28
+ function printDryRun() {
29
+ checkExternalToolProvenance();
30
+ const status = detectInstallerStatus();
31
+ printHeader();
32
+ printSelections();
33
+ console.log("Install plan");
34
+ console.log(formatInstallPlan(status));
35
+ console.log("");
36
+ console.log("Dry run: no changes were made.");
37
+ }
38
+ function printDoctor() {
39
+ checkExternalToolProvenance();
40
+ const report = buildDoctorReport(detectInstallerStatus(), {
41
+ selectedTools: selectedTools(),
42
+ selectedRuntimes: selectedRuntimes(),
43
+ scope: state.gsdScope,
44
+ customSkillsDir: state.customSkillsDir,
45
+ installMissingClis: state.installMissingClis,
46
+ });
47
+ if (state.jsonOutput) {
48
+ console.log(JSON.stringify(report, null, 2));
49
+ }
50
+ else {
51
+ console.log(formatDoctorReport(report));
52
+ }
53
+ }
17
54
  export async function runInstaller(argv = process.argv.slice(2)) {
18
55
  if (!parseArgs(argv))
19
56
  return;
@@ -21,15 +58,50 @@ export async function runInstaller(argv = process.argv.slice(2)) {
21
58
  listCustomSkills();
22
59
  return;
23
60
  }
61
+ if (state.auditSkills) {
62
+ const passed = printSkillsAudit(auditSkills());
63
+ if (!passed)
64
+ process.exitCode = 1;
65
+ return;
66
+ }
67
+ if (state.updateLock) {
68
+ try {
69
+ const report = await buildLockUpdateReport();
70
+ console.log(state.jsonOutput
71
+ ? JSON.stringify(report, null, 2)
72
+ : formatLockUpdateReport(report));
73
+ }
74
+ catch (error) {
75
+ printLockUpdateError(error);
76
+ process.exitCode = 1;
77
+ }
78
+ return;
79
+ }
80
+ if (state.doctor) {
81
+ printDoctor();
82
+ return;
83
+ }
24
84
  if (!state.nonInteractive)
25
85
  await showMenu();
26
86
  if (!anyToolSelected())
27
87
  die("Select at least one tool.");
28
88
  if (!anyRuntimeSelected())
29
89
  die("Select at least one runtime.");
90
+ if (state.uninstall) {
91
+ uninstallFromManifest();
92
+ return;
93
+ }
94
+ if (state.dryRun) {
95
+ printDryRun();
96
+ return;
97
+ }
30
98
  checkExternalToolProvenance();
31
99
  printHeader();
32
100
  printSelections();
101
+ if (state.repair) {
102
+ console.log(" Repair mode: selected installs will be re-run.");
103
+ console.log("");
104
+ }
33
105
  checkPrerequisites();
34
106
  let hadError = false;
35
107
  if (state.tools.rtk) {
@@ -104,6 +176,7 @@ export async function runInstaller(argv = process.argv.slice(2)) {
104
176
  else {
105
177
  skip("Custom Skills");
106
178
  }
179
+ savePendingManifest();
107
180
  printSummary();
108
181
  if (hadError) {
109
182
  console.log("");
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAErE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO;IAE7B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,gBAAgB,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,MAAM,QAAQ,EAAE,CAAC;IAE5C,IAAI,CAAC,eAAe,EAAE;QAAE,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzD,IAAI,CAAC,kBAAkB,EAAE;QAAE,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE/D,2BAA2B,EAAE,CAAC;IAE9B,WAAW,EAAE,CAAC;IACd,eAAe,EAAE,CAAC;IAClB,kBAAkB,EAAE,CAAC;IAErB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,CAAC,MAAM,UAAU,EAAE,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAC3B,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACtB,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC/B,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,SAAS,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC1B,GAAG,CAAC,6BAA6B,CAAC,CAAC;YACnC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,aAAa,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACvB,GAAG,CAAC,0BAA0B,CAAC,CAAC;YAChC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,UAAU,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YAClB,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAC3B,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACtB,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC/B,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,SAAS,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAC7B,GAAG,CAAC,iCAAiC,CAAC,CAAC;YACvC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC3B,GAAG,CAAC,+BAA+B,CAAC,CAAC;YACrC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,eAAe,CAAC,CAAC;IACxB,CAAC;IAED,YAAY,EAAE,CAAC;IAEf,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,yDAAyD,CAAC,CAAC;QAChE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}