@ranimontagna/agent-toolkit 0.1.16 → 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.
Files changed (77) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/CONTRIBUTING.md +34 -0
  3. package/README.md +120 -24
  4. package/SECURITY.md +24 -0
  5. package/dist/src/args.js +37 -0
  6. package/dist/src/args.js.map +1 -1
  7. package/dist/src/doctor.d.ts +28 -0
  8. package/dist/src/doctor.js +78 -0
  9. package/dist/src/doctor.js.map +1 -0
  10. package/dist/src/installers/improve.d.ts +1 -0
  11. package/dist/src/installers/improve.js +72 -0
  12. package/dist/src/installers/improve.js.map +1 -0
  13. package/dist/src/lock-update.d.ts +22 -0
  14. package/dist/src/lock-update.js +130 -0
  15. package/dist/src/lock-update.js.map +1 -0
  16. package/dist/src/main.js +84 -1
  17. package/dist/src/main.js.map +1 -1
  18. package/dist/src/manifest.d.ts +26 -0
  19. package/dist/src/manifest.js +104 -0
  20. package/dist/src/manifest.js.map +1 -0
  21. package/dist/src/menu.js +6 -1
  22. package/dist/src/menu.js.map +1 -1
  23. package/dist/src/provenance.js +1 -1
  24. package/dist/src/provenance.js.map +1 -1
  25. package/dist/src/release.d.ts +4 -0
  26. package/dist/src/release.js +80 -0
  27. package/dist/src/release.js.map +1 -0
  28. package/dist/src/runtimes.js +49 -6
  29. package/dist/src/runtimes.js.map +1 -1
  30. package/dist/src/skills-audit.d.ts +10 -0
  31. package/dist/src/skills-audit.js +75 -0
  32. package/dist/src/skills-audit.js.map +1 -0
  33. package/dist/src/skills.js +26 -6
  34. package/dist/src/skills.js.map +1 -1
  35. package/dist/src/state.d.ts +14 -1
  36. package/dist/src/state.js +15 -0
  37. package/dist/src/state.js.map +1 -1
  38. package/dist/src/status.js +7 -0
  39. package/dist/src/status.js.map +1 -1
  40. package/dist/src/tool-lock.d.ts +6 -0
  41. package/dist/src/tool-lock.js +3 -0
  42. package/dist/src/tool-lock.js.map +1 -1
  43. package/dist/src/ui.js +2 -0
  44. package/dist/src/ui.js.map +1 -1
  45. package/dist/src/usage.js +14 -0
  46. package/dist/src/usage.js.map +1 -1
  47. package/docs/assets/install-plan.svg +2 -2
  48. package/docs/assets/install-status.svg +3 -3
  49. package/package.json +13 -7
  50. package/skills/frontend/gsap/gsap-core/LICENSE +21 -0
  51. package/skills/frontend/gsap/gsap-core/NOTICE.md +11 -0
  52. package/skills/frontend/gsap/gsap-core/SKILL.md +254 -0
  53. package/skills/frontend/gsap/gsap-frameworks/LICENSE +21 -0
  54. package/skills/frontend/gsap/gsap-frameworks/NOTICE.md +11 -0
  55. package/skills/frontend/gsap/gsap-frameworks/SKILL.md +266 -0
  56. package/skills/frontend/gsap/gsap-performance/LICENSE +21 -0
  57. package/skills/frontend/gsap/gsap-performance/NOTICE.md +11 -0
  58. package/skills/frontend/gsap/gsap-performance/SKILL.md +79 -0
  59. package/skills/frontend/gsap/gsap-plugins/LICENSE +21 -0
  60. package/skills/frontend/gsap/gsap-plugins/NOTICE.md +11 -0
  61. package/skills/frontend/gsap/gsap-plugins/SKILL.md +433 -0
  62. package/skills/frontend/gsap/gsap-react/LICENSE +21 -0
  63. package/skills/frontend/gsap/gsap-react/NOTICE.md +11 -0
  64. package/skills/frontend/gsap/gsap-react/SKILL.md +136 -0
  65. package/skills/frontend/gsap/gsap-scrolltrigger/LICENSE +21 -0
  66. package/skills/frontend/gsap/gsap-scrolltrigger/NOTICE.md +11 -0
  67. package/skills/frontend/gsap/gsap-scrolltrigger/SKILL.md +296 -0
  68. package/skills/frontend/gsap/gsap-timeline/LICENSE +21 -0
  69. package/skills/frontend/gsap/gsap-timeline/NOTICE.md +11 -0
  70. package/skills/frontend/gsap/gsap-timeline/SKILL.md +107 -0
  71. package/skills/frontend/gsap/gsap-utils/LICENSE +21 -0
  72. package/skills/frontend/gsap/gsap-utils/NOTICE.md +11 -0
  73. package/skills/frontend/gsap/gsap-utils/SKILL.md +284 -0
  74. package/skills/general/thermo-nuclear-code-quality-review/LICENSE +21 -0
  75. package/skills/general/thermo-nuclear-code-quality-review/NOTICE.md +12 -0
  76. package/skills/general/thermo-nuclear-code-quality-review/SKILL.md +192 -0
  77. package/tools.lock.json +21 -15
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
@@ -8,8 +8,8 @@ npx -y @ranimontagna/agent-toolkit
8
8
  ```
9
9
 
10
10
  Agent Toolkit installs the tools and skills I use to run agentic coding
11
- workflows: RTK, Caveman, Superpowers, Graphify, GSD, third-party frontend
12
- skills and bundled Custom Skills.
11
+ workflows: RTK, Caveman, Superpowers, Graphify, GSD, shadcn Improve,
12
+ third-party frontend skills and bundled Custom Skills.
13
13
 
14
14
  The installer is a TypeScript CLI published to npm. The Bash script is only a
15
15
  compatibility wrapper for users who already run `setup-agent-toolkit.sh`.
@@ -43,6 +43,7 @@ skills and already present destinations before installation starts.
43
43
  | Superpowers | Planning, TDD, debugging, review and delivery workflows |
44
44
  | Graphify | Queryable knowledge graphs for codebases, docs and project context |
45
45
  | GSD | Phase-based planning, execution, verification and project control |
46
+ | Improve | shadcn advisor skill for codebase audits and execution plans |
46
47
  | Frontend Skills | Third-party design skills installed through Agent Skills CLI |
47
48
  | Custom Skills | Bundled skills from this repository, selected by package, scope and exact skill |
48
49
 
@@ -54,7 +55,7 @@ skills and already present destinations before installation starts.
54
55
  | Codex CLI | Plugins, skills and local automation |
55
56
  | OpenCode | Skills plus package-driven tools |
56
57
  | Gemini CLI | Extensions and native Agent Skills install |
57
- | Antigravity | Custom Skills and third-party frontend skills |
58
+ | Antigravity | Custom Skills, third-party frontend skills and official `agy` install |
58
59
 
59
60
  Superpowers is installed automatically for Claude Code, Codex CLI and Gemini
60
61
  CLI. OpenCode Superpowers support is not automated yet because the upstream
@@ -62,10 +63,16 @@ install flow is not a stable single command. Antigravity Superpowers support is
62
63
  not automated yet because there is not a pinned supported plugin package in this
63
64
  toolkit.
64
65
 
65
- Caveman, GSD, Frontend Skills and Custom Skills can target Claude Code, Codex
66
- CLI, OpenCode and Gemini CLI. Frontend Skills and Custom Skills can also target
67
- Antigravity. Graphify is installed through the official `graphifyy` package and
68
- registers itself for selected runtimes that Graphify supports.
66
+ Caveman, GSD, Improve, Frontend Skills and Custom Skills can target Claude
67
+ Code, Codex CLI, OpenCode and Gemini CLI. Improve, Frontend Skills and Custom
68
+ Skills can also target Antigravity. Graphify is installed through the official
69
+ `graphifyy` package and registers itself for selected runtimes that Graphify
70
+ supports.
71
+
72
+ When `--install-missing-clis` is enabled, Antigravity is installed through the
73
+ official `agy` installer instead of npm. Global Antigravity Custom Skills are
74
+ copied to the official `~/.gemini/antigravity-cli/skills/` path and mirrored to
75
+ `~/.agents/skills/` for compatibility with the Agent Skills CLI.
69
76
 
70
77
  ## Quick Commands
71
78
 
@@ -93,6 +100,12 @@ Install only Graphify for Codex CLI:
93
100
  npx -y @ranimontagna/agent-toolkit --graphify-only --codex
94
101
  ```
95
102
 
103
+ Install only shadcn Improve for Codex CLI:
104
+
105
+ ```bash
106
+ npx -y @ranimontagna/agent-toolkit --improve-only --codex
107
+ ```
108
+
96
109
  Install only third-party frontend design skills for Codex CLI:
97
110
 
98
111
  ```bash
@@ -105,6 +118,30 @@ Install only bundled Custom Skills into the current project:
105
118
  npx -y @ranimontagna/agent-toolkit --skills-only --codex --local
106
119
  ```
107
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
+
108
145
  Install only the `core` Custom Skills package:
109
146
 
110
147
  ```bash
@@ -177,6 +214,23 @@ skills/
177
214
  SKILL.md
178
215
  data/
179
216
  scripts/
217
+ gsap/
218
+ gsap-core/
219
+ SKILL.md
220
+ gsap-frameworks/
221
+ SKILL.md
222
+ gsap-performance/
223
+ SKILL.md
224
+ gsap-plugins/
225
+ SKILL.md
226
+ gsap-react/
227
+ SKILL.md
228
+ gsap-scrolltrigger/
229
+ SKILL.md
230
+ gsap-timeline/
231
+ SKILL.md
232
+ gsap-utils/
233
+ SKILL.md
180
234
  react-native/
181
235
  react-native-expert/
182
236
  SKILL.md
@@ -196,6 +250,8 @@ skills/
196
250
  code-reviewer/
197
251
  SKILL.md
198
252
  rules/
253
+ thermo-nuclear-code-quality-review/
254
+ SKILL.md
199
255
  devops/
200
256
  docker-patterns/
201
257
  SKILL.md
@@ -301,12 +357,21 @@ Follow these steps...
301
357
  | `frontend` | `accessibility` | Copied from Affaan Mustafa's [`ECC`](https://github.com/affaan-m/ECC/tree/main/skills/accessibility) under the MIT license |
302
358
  | `frontend` | `astro-developer` | Copied from the official [`withastro/astro`](https://github.com/withastro/astro/tree/main/.agents/skills/astro-developer) repository under the MIT license |
303
359
  | `frontend` | `ui-ux-pro-max` | Copied from Next Level Builder's [`ui-ux-pro-max-skill`](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/tree/main/.claude/skills/ui-ux-pro-max) under the MIT license |
360
+ | `frontend` | `gsap-core` | Copied from GreenSock's [`gsap-skills`](https://github.com/greensock/gsap-skills/tree/main/skills/gsap-core) under the MIT license |
361
+ | `frontend` | `gsap-frameworks` | Copied from GreenSock's [`gsap-skills`](https://github.com/greensock/gsap-skills/tree/main/skills/gsap-frameworks) under the MIT license |
362
+ | `frontend` | `gsap-performance` | Copied from GreenSock's [`gsap-skills`](https://github.com/greensock/gsap-skills/tree/main/skills/gsap-performance) under the MIT license |
363
+ | `frontend` | `gsap-plugins` | Copied from GreenSock's [`gsap-skills`](https://github.com/greensock/gsap-skills/tree/main/skills/gsap-plugins) under the MIT license |
364
+ | `frontend` | `gsap-react` | Copied from GreenSock's [`gsap-skills`](https://github.com/greensock/gsap-skills/tree/main/skills/gsap-react) under the MIT license |
365
+ | `frontend` | `gsap-scrolltrigger` | Copied from GreenSock's [`gsap-skills`](https://github.com/greensock/gsap-skills/tree/main/skills/gsap-scrolltrigger) under the MIT license |
366
+ | `frontend` | `gsap-timeline` | Copied from GreenSock's [`gsap-skills`](https://github.com/greensock/gsap-skills/tree/main/skills/gsap-timeline) under the MIT license |
367
+ | `frontend` | `gsap-utils` | Copied from GreenSock's [`gsap-skills`](https://github.com/greensock/gsap-skills/tree/main/skills/gsap-utils) under the MIT license |
304
368
  | `frontend` | `react-native-expert` | Copied from Jeffallan's [`claude-skills`](https://github.com/Jeffallan/claude-skills/tree/main/skills/react-native-expert) under the MIT license |
305
369
  | `frontend` | `react-native-unistyles-v3` | Copied from Jacek Pudysz's [`react-native-unistyles`](https://github.com/jpudysz/react-native-unistyles/tree/main/skills/react-native-unistyles-v3), declared MIT upstream |
306
370
  | `frontend` | `react-patterns` | Copied from Affaan Mustafa's [`ECC`](https://github.com/affaan-m/ECC/tree/main/skills/react-patterns) under the MIT license |
307
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 |
308
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 |
309
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 |
310
375
 
311
376
  Each React skill carries its own ECC `rules/react` references so Markdown links
312
377
  still resolve after the installer copies skills into flat runtime directories.
@@ -333,6 +398,7 @@ Tools:
333
398
  --superpowers-only Install only Superpowers
334
399
  --graphify-only Install only Graphify
335
400
  --gsd-only Install only GSD
401
+ --improve-only Install only shadcn Improve
336
402
  --frontend-skills-only Install only third-party frontend skills
337
403
  --skills-only Install only Custom Skills
338
404
  --no-rtk Skip RTK
@@ -340,6 +406,7 @@ Tools:
340
406
  --no-superpowers Skip Superpowers
341
407
  --no-graphify Skip Graphify
342
408
  --no-gsd Skip GSD
409
+ --no-improve Skip shadcn Improve
343
410
  --no-frontend-skills Skip third-party frontend skills
344
411
  --no-skills Skip Custom Skills
345
412
 
@@ -365,6 +432,16 @@ Install scope:
365
432
  --skills-path PATH Install an exact Custom Skill path
366
433
  --skills-list List discovered Custom Skills and exit
367
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
+
368
445
  Other:
369
446
  --install-missing-clis Install or update selected runtime CLIs
370
447
  --allow-mutable-sources Allow explicit mutable package sources like @latest
@@ -392,7 +469,9 @@ CUSTOM_SKILLS_DIR Source directory for Custom Skills
392
469
  SKILLS_PACKAGE Comma-separated first-level skill package filters
393
470
  SKILLS_SCOPE Comma-separated skill scope filters
394
471
  SKILLS_PATH Comma-separated exact skill path filters
472
+ ANTIGRAVITY_INSTALL_SCRIPT Official Antigravity CLI install script URL
395
473
  ANTIGRAVITY_SKILLS_DIR Global Antigravity skills directory
474
+ ANTIGRAVITY_LEGACY_SKILLS_DIR Legacy Antigravity skills mirror directory
396
475
  CLAUDE_CLI_PACKAGE npm package used to install Claude Code CLI
397
476
  CODEX_CLI_PACKAGE npm package used to install Codex CLI
398
477
  OPENCODE_CLI_PACKAGE npm package used to install OpenCode CLI
@@ -402,15 +481,16 @@ GEMINI_CLI_PACKAGE npm package used to install Gemini CLI
402
481
  Defaults come from `tools.lock.json`:
403
482
 
404
483
  ```text
405
- CAVEMAN_PACKAGE=github:JuliusBrussee/caveman#655b7d9c5431f822264b7732e9901c5578ac84cf
406
- GRAPHIFY_PACKAGE=graphifyy==0.8.31
484
+ CAVEMAN_PACKAGE=github:JuliusBrussee/caveman#25d22f864ad68cc447a4cb93aefde918aa4aec9f
485
+ GRAPHIFY_PACKAGE=graphifyy==0.8.41
407
486
  GRAPHIFY_INSTALLER=uv
408
487
  GSD_PACKAGE=get-shit-done-cc@1.42.3
409
- SKILLS_CLI_PACKAGE=skills@1.5.10
410
- CLAUDE_CLI_PACKAGE=@anthropic-ai/claude-code@2.1.162
411
- CODEX_CLI_PACKAGE=@openai/codex@0.137.0
412
- OPENCODE_CLI_PACKAGE=opencode-ai@1.15.13
413
- GEMINI_CLI_PACKAGE=@google/gemini-cli@0.45.0
488
+ SKILLS_CLI_PACKAGE=skills@1.5.11
489
+ ANTIGRAVITY_INSTALL_SCRIPT=https://antigravity.google/cli/install.sh
490
+ CLAUDE_CLI_PACKAGE=@anthropic-ai/claude-code@2.1.181
491
+ CODEX_CLI_PACKAGE=@openai/codex@0.141.0
492
+ OPENCODE_CLI_PACKAGE=opencode-ai@1.17.8
493
+ GEMINI_CLI_PACKAGE=@google/gemini-cli@0.47.0
414
494
  ```
415
495
 
416
496
  Mutable overrides like `@latest`, unpinned npm packages or GitHub package
@@ -436,11 +516,12 @@ Current external sources:
436
516
 
437
517
  | Tool | Locked source | Runtime verification |
438
518
  |---|---|---|
439
- | RTK | GitHub release `rtk-ai/rtk@v0.42.1` | Verifies the selected asset SHA-256 before extraction |
440
- | Caveman | `JuliusBrussee/caveman` at commit `655b7d9c5431f822264b7732e9901c5578ac84cf` | Immutable GitHub npm spec |
441
- | Graphify | `graphifyy==0.8.31` | Blocks unpinned package overrides |
519
+ | RTK | GitHub release `rtk-ai/rtk@v0.42.4` | Verifies the selected asset SHA-256 before extraction |
520
+ | Caveman | `JuliusBrussee/caveman` at commit `25d22f864ad68cc447a4cb93aefde918aa4aec9f` | Immutable GitHub npm spec |
521
+ | Graphify | `graphifyy==0.8.41` | Blocks unpinned package overrides |
442
522
  | GSD | `get-shit-done-cc@1.42.3` | Blocks `@latest` unless explicitly allowed |
443
- | Frontend Skills | `skills@1.5.10`, `pbakaus/impeccable` and `Leonxlnx/taste-skill` at pinned commits | Clones pinned refs before install |
523
+ | Improve | `shadcn/improve` at commit `03369ee6d7cafbfcecc4346539b05b3dc0a603bb` | Clones the pinned ref before Agent Skills CLI install |
524
+ | Frontend Skills | `skills@1.5.11`, `pbakaus/impeccable` and `Leonxlnx/taste-skill` at pinned commits | Clones pinned refs before install |
444
525
  | Runtime CLIs | Exact npm versions for Claude, Codex, OpenCode and Gemini | Installed or updated only when `--install-missing-clis` is enabled; Antigravity uses the official `agy` installer instead of npm |
445
526
 
446
527
  Bundled third-party skills preserve upstream attribution and license files:
@@ -450,6 +531,7 @@ Bundled third-party skills preserve upstream attribution and license files:
450
531
  | `api-design` | `affaan-m/ECC@0f84c0e2796703fbda87d577b2636351418c7442` | MIT |
451
532
  | `fastify-best-practices` | `mcollina/skills@5b2a81354b6d10325da0db9decc9ce5ecc714138` | MIT |
452
533
  | `astro-developer` | `withastro/astro@c90ce9751c7862a7280e752549ef74298669693d` | MIT |
534
+ | `gsap-*` | `greensock/gsap-skills@aed9cfd3277740755f6bfc1155c7aa645403b760` | MIT |
453
535
  | `react-native-expert` | `Jeffallan/claude-skills@e8be415bc94d8d6ebddc2fb50e5d03c6e27d4319` | MIT |
454
536
  | `react-native-unistyles-v3` | `jpudysz/react-native-unistyles@8b5e9fd281a81bdfd87d4fe9e6a0b042c84c5c83` | MIT |
455
537
  | `react-patterns` | `affaan-m/ECC@0f84c0e2796703fbda87d577b2636351418c7442` | MIT |
@@ -513,11 +595,13 @@ tools.lock.json Pinned external tool sources and RTK checksums
513
595
  Prerequisites:
514
596
 
515
597
  - Node.js 22+ for the full toolkit;
516
- - `npx` for Caveman, GSD and third-party frontend skills;
517
- - `git` for pinned third-party frontend skill sources;
598
+ - `npx` for Caveman, GSD, Improve and third-party frontend skills;
599
+ - `git` for pinned third-party Agent Skills sources;
518
600
  - `pnpm` 11.x for repository development;
519
- - `npm` when using `--install-missing-clis` or publishing through npm trusted
520
- publishing;
601
+ - `npm` when using `--install-missing-clis` for npm-managed runtimes or
602
+ publishing through npm trusted publishing;
603
+ - `curl` and `bash` when installing Antigravity CLI through
604
+ `--install-missing-clis`;
521
605
  - `uv` for Graphify, or `pipx` when `GRAPHIFY_INSTALLER=pipx`;
522
606
  - `tar` or `unzip` only when RTK needs to be downloaded;
523
607
  - runtime CLIs you want to target: `claude`, `codex`, `opencode`, `gemini`,
@@ -545,6 +629,9 @@ pnpm run typecheck
545
629
  pnpm run lint
546
630
  pnpm run lint:fix
547
631
  pnpm run format
632
+ pnpm run release:patch
633
+ pnpm run release:minor
634
+ pnpm run release:major
548
635
  pnpm run security
549
636
  pnpm run test:unit
550
637
  pnpm run test:integration
@@ -574,8 +661,17 @@ Release a new npm version by updating `package.json`, pushing the change to
574
661
  `main`, then pushing a matching tag:
575
662
 
576
663
  ```bash
577
- git tag v0.1.16
578
- git push origin v0.1.16
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
579
675
  ```
580
676
 
581
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
@@ -32,6 +32,10 @@ export function parseArgs(argv) {
32
32
  selectOnlyTool("gsd");
33
33
  state.nonInteractive = true;
34
34
  break;
35
+ case "--improve-only":
36
+ selectOnlyTool("improve");
37
+ state.nonInteractive = true;
38
+ break;
35
39
  case "--frontend-skills-only":
36
40
  selectOnlyTool("frontend-skills");
37
41
  state.nonInteractive = true;
@@ -60,6 +64,10 @@ export function parseArgs(argv) {
60
64
  state.tools.gsd = false;
61
65
  state.nonInteractive = true;
62
66
  break;
67
+ case "--no-improve":
68
+ state.tools.improve = false;
69
+ state.nonInteractive = true;
70
+ break;
63
71
  case "--no-frontend-skills":
64
72
  state.tools["frontend-skills"] = false;
65
73
  state.nonInteractive = true;
@@ -161,6 +169,35 @@ export function parseArgs(argv) {
161
169
  state.listSkills = true;
162
170
  state.nonInteractive = true;
163
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;
164
201
  case "--install-missing-clis":
165
202
  state.installMissingClis = true;
166
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 @@
1
+ export declare function installImprove(): boolean;
@@ -0,0 +1,72 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { err, info, ok, step } from "../logger.js";
5
+ import { selectedSkillsAgentArgs } from "../runtimes.js";
6
+ import { state } from "../state.js";
7
+ import { requireCommand, requireNode, run } from "../system.js";
8
+ function cloneImproveSource(parentDir) {
9
+ const source = state.improveSkillSource;
10
+ const repoUrl = `https://github.com/${source.repository}.git`;
11
+ const repoDir = path.join(parentDir, "shadcn-improve");
12
+ info(`Cloning ${source.label} at ${source.ref}...`);
13
+ if (!run("git", [
14
+ "clone",
15
+ "--filter=blob:none",
16
+ "--no-checkout",
17
+ repoUrl,
18
+ repoDir,
19
+ ]).ok) {
20
+ throw new Error(`Failed to clone ${source.repository}.`);
21
+ }
22
+ if (!run("git", ["-C", repoDir, "fetch", "--depth", "1", "origin", source.ref])
23
+ .ok) {
24
+ throw new Error(`Failed to fetch ${source.repository}@${source.ref}.`);
25
+ }
26
+ if (!run("git", ["-C", repoDir, "checkout", "--detach", "FETCH_HEAD"]).ok) {
27
+ throw new Error(`Failed to checkout ${source.repository}@${source.ref}.`);
28
+ }
29
+ return path.join(repoDir, "skills", source.skill);
30
+ }
31
+ function installImproveSource(sourceDir) {
32
+ const args = [
33
+ "-y",
34
+ state.frontendSkillsCliPackage,
35
+ "add",
36
+ sourceDir,
37
+ "--skill",
38
+ state.improveSkillSource.skill,
39
+ ...selectedSkillsAgentArgs(),
40
+ ...(state.gsdScope === "global" ? ["--global"] : []),
41
+ "-y",
42
+ "--copy",
43
+ ];
44
+ info("Installing Improve through Agent Skills CLI...");
45
+ const result = run("npx", args);
46
+ if (result.ok) {
47
+ ok("Improve skill installed");
48
+ return true;
49
+ }
50
+ err("Improve skill install failed");
51
+ return false;
52
+ }
53
+ export function installImprove() {
54
+ step("Improve");
55
+ console.log(" shadcn advisor skill for auditing codebases and writing execution plans");
56
+ requireNode(18);
57
+ requireCommand("git");
58
+ requireCommand("npx");
59
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "agent-toolkit-improve-"));
60
+ try {
61
+ const sourceDir = cloneImproveSource(tempDir);
62
+ return installImproveSource(sourceDir);
63
+ }
64
+ catch (error) {
65
+ err(error instanceof Error ? error.message : String(error));
66
+ return false;
67
+ }
68
+ finally {
69
+ fs.rmSync(tempDir, { recursive: true, force: true });
70
+ }
71
+ }
72
+ //# sourceMappingURL=improve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve.js","sourceRoot":"","sources":["../../../src/installers/improve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEhE,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC;IACxC,MAAM,OAAO,GAAG,sBAAsB,MAAM,CAAC,UAAU,MAAM,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAEvD,IAAI,CAAC,WAAW,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;IACpD,IACE,CAAC,GAAG,CAAC,KAAK,EAAE;QACV,OAAO;QACP,oBAAoB;QACpB,eAAe;QACf,OAAO;QACP,OAAO;KACR,CAAC,CAAC,EAAE,EACL,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,IACE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;SACxE,EAAE,EACL,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,MAAM,IAAI,GAAG;QACX,IAAI;QACJ,KAAK,CAAC,wBAAwB;QAC9B,KAAK;QACL,SAAS;QACT,SAAS;QACT,KAAK,CAAC,kBAAkB,CAAC,KAAK;QAC9B,GAAG,uBAAuB,EAAE;QAC5B,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI;QACJ,QAAQ;KACT,CAAC;IAEF,IAAI,CAAC,gDAAgD,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,EAAE,CAAC,yBAAyB,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,8BAA8B,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,SAAS,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CACT,4EAA4E,CAC7E,CAAC;IAEF,WAAW,CAAC,EAAE,CAAC,CAAC;IAChB,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,cAAc,CAAC,KAAK,CAAC,CAAC;IAEtB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CACjD,CAAC;IACF,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
@@ -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 {};