@agents-inc/cli 0.50.0 → 0.60.1

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 (237) hide show
  1. package/CHANGELOG.md +155 -5
  2. package/dist/{chunk-YDYRAXSY.js → chunk-52M2XF3W.js} +6 -6
  3. package/dist/{chunk-2BWCR762.js → chunk-52XO4ULK.js} +6 -8
  4. package/dist/chunk-52XO4ULK.js.map +1 -0
  5. package/dist/{chunk-KQOU4POU.js → chunk-6G3KZSO4.js} +72 -51
  6. package/dist/chunk-6G3KZSO4.js.map +1 -0
  7. package/dist/{chunk-AWP5A6IM.js → chunk-6OWHQ7HM.js} +14 -12
  8. package/dist/chunk-6OWHQ7HM.js.map +1 -0
  9. package/dist/{chunk-D72AFYQR.js → chunk-7FMEMXJ4.js} +71 -71
  10. package/dist/chunk-7FMEMXJ4.js.map +1 -0
  11. package/dist/{chunk-RA2IPRO2.js → chunk-AJJJE7F7.js} +2 -2
  12. package/dist/{chunk-4R52TQ3K.js → chunk-AX3SZZWA.js} +2 -2
  13. package/dist/{chunk-U2W5SENM.js → chunk-BFD5NZQ4.js} +5 -4
  14. package/dist/chunk-BFD5NZQ4.js.map +1 -0
  15. package/dist/{chunk-HYEUETIC.js → chunk-BKJHAJQW.js} +2 -2
  16. package/dist/{chunk-HYEUETIC.js.map → chunk-BKJHAJQW.js.map} +1 -1
  17. package/dist/{chunk-DCE423KO.js → chunk-BMJZBLP7.js} +5 -5
  18. package/dist/{chunk-GBOW6FUW.js → chunk-BNQ5O6LE.js} +2 -2
  19. package/dist/{chunk-KAO3LKB5.js → chunk-C577AJE7.js} +3 -3
  20. package/dist/{chunk-C3Q43WLC.js → chunk-CIG7IKX3.js} +4 -4
  21. package/dist/chunk-EC3UJRKZ.js +1534 -0
  22. package/dist/chunk-EC3UJRKZ.js.map +1 -0
  23. package/dist/{chunk-I6IOGZSZ.js → chunk-EMIUPGPL.js} +11 -15
  24. package/dist/chunk-EMIUPGPL.js.map +1 -0
  25. package/dist/{chunk-4QWDB2MD.js → chunk-G6WHCALR.js} +127 -105
  26. package/dist/chunk-G6WHCALR.js.map +1 -0
  27. package/dist/{chunk-JFF7P4LC.js → chunk-H7WJK7NJ.js} +22 -6
  28. package/dist/chunk-H7WJK7NJ.js.map +1 -0
  29. package/dist/chunk-HGTC76BX.js +16 -0
  30. package/dist/chunk-HGTC76BX.js.map +1 -0
  31. package/dist/{chunk-RDWGYKDY.js → chunk-K6OLORQL.js} +6 -6
  32. package/dist/{chunk-XDSVV5GZ.js → chunk-KIWFEBKH.js} +41 -11
  33. package/dist/chunk-KIWFEBKH.js.map +1 -0
  34. package/dist/{chunk-WBHPCBVN.js → chunk-LWXRUR6B.js} +66 -94
  35. package/dist/chunk-LWXRUR6B.js.map +1 -0
  36. package/dist/{chunk-CMNKHDOX.js → chunk-MGNYPVOJ.js} +2 -2
  37. package/dist/{chunk-5FPIKTSA.js → chunk-MKCHLXMY.js} +7 -7
  38. package/dist/{chunk-U7X4V4HE.js → chunk-MMFQNJPE.js} +2 -2
  39. package/dist/{chunk-WLZHCM7O.js → chunk-MR6OBL3B.js} +3 -11
  40. package/dist/{chunk-WLZHCM7O.js.map → chunk-MR6OBL3B.js.map} +1 -1
  41. package/dist/{chunk-RFKDGJAJ.js → chunk-O6BA7Q2B.js} +6 -6
  42. package/dist/chunk-O6BA7Q2B.js.map +1 -0
  43. package/dist/chunk-OCEFD7V6.js +201 -0
  44. package/dist/chunk-OCEFD7V6.js.map +1 -0
  45. package/dist/{chunk-YZTWZVGX.js → chunk-PUT7X3GA.js} +1 -1
  46. package/dist/chunk-PUT7X3GA.js.map +1 -0
  47. package/dist/{chunk-WFFV254H.js → chunk-RO6LX3UV.js} +110 -82
  48. package/dist/chunk-RO6LX3UV.js.map +1 -0
  49. package/dist/{chunk-QYLCINGC.js → chunk-SDKCQXWE.js} +2 -2
  50. package/dist/{chunk-M3GQ2R3E.js → chunk-SEJF7CGJ.js} +19 -7
  51. package/dist/chunk-SEJF7CGJ.js.map +1 -0
  52. package/dist/{chunk-SPFHPHYL.js → chunk-SZRK3VOR.js} +24 -14
  53. package/dist/chunk-SZRK3VOR.js.map +1 -0
  54. package/dist/{chunk-QB5HHTAA.js → chunk-TC3NHO34.js} +28 -12
  55. package/dist/chunk-TC3NHO34.js.map +1 -0
  56. package/dist/{chunk-5L724R4C.js → chunk-TGLRDEEL.js} +8 -13
  57. package/dist/chunk-TGLRDEEL.js.map +1 -0
  58. package/dist/{chunk-HMSHB5EQ.js → chunk-TZXYBG3R.js} +3544 -3037
  59. package/dist/chunk-TZXYBG3R.js.map +1 -0
  60. package/dist/{chunk-PGY5XROM.js → chunk-VR3CDXDT.js} +2 -6
  61. package/dist/chunk-VR3CDXDT.js.map +1 -0
  62. package/dist/{chunk-5FCHJLM7.js → chunk-WF6RM73R.js} +252 -38
  63. package/dist/chunk-WF6RM73R.js.map +1 -0
  64. package/dist/{chunk-3VOL4WEG.js → chunk-WYVDNGJB.js} +3 -3
  65. package/dist/{chunk-WJHFV6RI.js → chunk-X5EG4EFP.js} +2 -2
  66. package/dist/{chunk-JWYRXE6C.js → chunk-XUDTFI4M.js} +2 -2
  67. package/dist/{chunk-7LV4V6A4.js → chunk-YHCYKUA3.js} +14 -10
  68. package/dist/chunk-YHCYKUA3.js.map +1 -0
  69. package/dist/commands/build/marketplace.js +4 -4
  70. package/dist/commands/build/plugins.js +9 -7
  71. package/dist/commands/build/plugins.js.map +1 -1
  72. package/dist/commands/build/stack.js +13 -10
  73. package/dist/commands/build/stack.js.map +1 -1
  74. package/dist/commands/compile.js +42 -71
  75. package/dist/commands/compile.js.map +1 -1
  76. package/dist/commands/config/index.js +7 -5
  77. package/dist/commands/config/index.js.map +1 -1
  78. package/dist/commands/config/path.js +8 -6
  79. package/dist/commands/config/path.js.map +1 -1
  80. package/dist/commands/config/show.js +7 -5
  81. package/dist/commands/diff.js +9 -7
  82. package/dist/commands/diff.js.map +1 -1
  83. package/dist/commands/doctor.js +20 -16
  84. package/dist/commands/doctor.js.map +1 -1
  85. package/dist/commands/edit.js +175 -79
  86. package/dist/commands/edit.js.map +1 -1
  87. package/dist/commands/eject.js +20 -41
  88. package/dist/commands/eject.js.map +1 -1
  89. package/dist/commands/import/skill.js +10 -18
  90. package/dist/commands/import/skill.js.map +1 -1
  91. package/dist/commands/info.js +21 -20
  92. package/dist/commands/info.js.map +1 -1
  93. package/dist/commands/init.js +32 -31
  94. package/dist/commands/list.js +8 -6
  95. package/dist/commands/list.js.map +1 -1
  96. package/dist/commands/new/agent.js +23 -11
  97. package/dist/commands/new/agent.js.map +1 -1
  98. package/dist/commands/new/marketplace.js +63 -46
  99. package/dist/commands/new/marketplace.js.map +1 -1
  100. package/dist/commands/new/skill.js +11 -9
  101. package/dist/commands/outdated.js +9 -7
  102. package/dist/commands/outdated.js.map +1 -1
  103. package/dist/commands/search.js +45 -35
  104. package/dist/commands/search.js.map +1 -1
  105. package/dist/commands/uninstall.js +93 -123
  106. package/dist/commands/uninstall.js.map +1 -1
  107. package/dist/commands/update.js +11 -9
  108. package/dist/commands/update.js.map +1 -1
  109. package/dist/commands/validate.js +23 -27
  110. package/dist/commands/validate.js.map +1 -1
  111. package/dist/components/common/confirm.test.js +4 -4
  112. package/dist/components/skill-search/skill-search.js +3 -3
  113. package/dist/components/wizard/category-grid.js +3 -3
  114. package/dist/components/wizard/category-grid.test.js +4 -4
  115. package/dist/components/wizard/category-grid.test.js.map +1 -1
  116. package/dist/components/wizard/checkbox-grid.js +5 -5
  117. package/dist/components/wizard/checkbox-grid.test.js +6 -6
  118. package/dist/components/wizard/domain-selection.js +12 -11
  119. package/dist/components/wizard/help-modal.js +2 -2
  120. package/dist/components/wizard/menu-item.js +1 -1
  121. package/dist/components/wizard/search-modal.js +2 -2
  122. package/dist/components/wizard/search-modal.test.js +3 -3
  123. package/dist/components/wizard/search-modal.test.js.map +1 -1
  124. package/dist/components/wizard/section-progress.js +2 -2
  125. package/dist/components/wizard/section-progress.test.js +4 -4
  126. package/dist/components/wizard/section-progress.test.js.map +1 -1
  127. package/dist/components/wizard/selection-card.js +2 -2
  128. package/dist/components/wizard/source-grid.js +4 -4
  129. package/dist/components/wizard/source-grid.test.js +5 -5
  130. package/dist/components/wizard/source-grid.test.js.map +1 -1
  131. package/dist/components/wizard/stack-selection.js +9 -8
  132. package/dist/components/wizard/step-agents.js +11 -10
  133. package/dist/components/wizard/step-agents.test.js +13 -12
  134. package/dist/components/wizard/step-agents.test.js.map +1 -1
  135. package/dist/components/wizard/step-build.js +11 -9
  136. package/dist/components/wizard/step-build.test.js +18 -22
  137. package/dist/components/wizard/step-build.test.js.map +1 -1
  138. package/dist/components/wizard/step-confirm.js +4 -4
  139. package/dist/components/wizard/step-confirm.test.js +83 -23
  140. package/dist/components/wizard/step-confirm.test.js.map +1 -1
  141. package/dist/components/wizard/step-refine.js +2 -2
  142. package/dist/components/wizard/step-refine.test.js +3 -3
  143. package/dist/components/wizard/step-settings.js +9 -7
  144. package/dist/components/wizard/step-settings.test.js +13 -11
  145. package/dist/components/wizard/step-settings.test.js.map +1 -1
  146. package/dist/components/wizard/step-sources.js +13 -11
  147. package/dist/components/wizard/step-sources.test.js +19 -17
  148. package/dist/components/wizard/step-sources.test.js.map +1 -1
  149. package/dist/components/wizard/step-stack.js +15 -14
  150. package/dist/components/wizard/step-stack.test.js +17 -16
  151. package/dist/components/wizard/step-stack.test.js.map +1 -1
  152. package/dist/components/wizard/view-title.js +2 -2
  153. package/dist/components/wizard/wizard-layout.js +10 -8
  154. package/dist/components/wizard/wizard-tabs.js +2 -2
  155. package/dist/components/wizard/wizard-tabs.test.js +2 -2
  156. package/dist/components/wizard/wizard.js +29 -27
  157. package/dist/config-exports.js +20 -0
  158. package/dist/config-exports.js.map +1 -0
  159. package/dist/hooks/init.js +34 -33
  160. package/dist/hooks/init.js.map +1 -1
  161. package/dist/loader-2O32KKAQ.js +19 -0
  162. package/dist/source-loader-A6B3NDI4.js +16 -0
  163. package/dist/source-loader-A6B3NDI4.js.map +1 -0
  164. package/dist/source-manager-Q7IQSGIX.js +18 -0
  165. package/dist/source-manager-Q7IQSGIX.js.map +1 -0
  166. package/dist/src/agents/meta/agent-summoner/workflow.md +3 -3
  167. package/dist/src/agents/meta/skill-summoner/critical-reminders.md +2 -2
  168. package/dist/src/agents/meta/skill-summoner/critical-requirements.md +1 -1
  169. package/dist/src/agents/meta/skill-summoner/intro.md +1 -1
  170. package/dist/src/agents/meta/skill-summoner/output-format.md +3 -3
  171. package/dist/src/agents/meta/skill-summoner/workflow.md +8 -8
  172. package/dist/stores/wizard-store.js +6 -5
  173. package/dist/stores/wizard-store.test.js +299 -59
  174. package/dist/stores/wizard-store.test.js.map +1 -1
  175. package/package.json +5 -1
  176. package/src/agents/meta/agent-summoner/workflow.md +3 -3
  177. package/src/agents/meta/skill-summoner/critical-reminders.md +2 -2
  178. package/src/agents/meta/skill-summoner/critical-requirements.md +1 -1
  179. package/src/agents/meta/skill-summoner/intro.md +1 -1
  180. package/src/agents/meta/skill-summoner/output-format.md +3 -3
  181. package/src/agents/meta/skill-summoner/workflow.md +8 -8
  182. package/src/schemas/metadata.schema.json +6 -0
  183. package/src/schemas/stacks.schema.json +1 -1
  184. package/config/skill-categories.yaml +0 -344
  185. package/config/skill-rules.yaml +0 -740
  186. package/config/stacks.yaml +0 -1864
  187. package/dist/chunk-26MXZUHU.js +0 -183
  188. package/dist/chunk-26MXZUHU.js.map +0 -1
  189. package/dist/chunk-2BWCR762.js.map +0 -1
  190. package/dist/chunk-4QWDB2MD.js.map +0 -1
  191. package/dist/chunk-5FCHJLM7.js.map +0 -1
  192. package/dist/chunk-5L724R4C.js.map +0 -1
  193. package/dist/chunk-7LV4V6A4.js.map +0 -1
  194. package/dist/chunk-AWP5A6IM.js.map +0 -1
  195. package/dist/chunk-D72AFYQR.js.map +0 -1
  196. package/dist/chunk-HMSHB5EQ.js.map +0 -1
  197. package/dist/chunk-I6IOGZSZ.js.map +0 -1
  198. package/dist/chunk-JFF7P4LC.js.map +0 -1
  199. package/dist/chunk-KQOU4POU.js.map +0 -1
  200. package/dist/chunk-M3GQ2R3E.js.map +0 -1
  201. package/dist/chunk-PGY5XROM.js.map +0 -1
  202. package/dist/chunk-QB5HHTAA.js.map +0 -1
  203. package/dist/chunk-RFKDGJAJ.js.map +0 -1
  204. package/dist/chunk-SPFHPHYL.js.map +0 -1
  205. package/dist/chunk-U2W5SENM.js.map +0 -1
  206. package/dist/chunk-UAD3SC27.js +0 -107
  207. package/dist/chunk-UAD3SC27.js.map +0 -1
  208. package/dist/chunk-WBHPCBVN.js.map +0 -1
  209. package/dist/chunk-WFFV254H.js.map +0 -1
  210. package/dist/chunk-XDSVV5GZ.js.map +0 -1
  211. package/dist/chunk-YZTWZVGX.js.map +0 -1
  212. package/dist/commands/config/get.js +0 -61
  213. package/dist/commands/config/get.js.map +0 -1
  214. package/dist/commands/config/set-project.js +0 -61
  215. package/dist/commands/config/set-project.js.map +0 -1
  216. package/dist/commands/config/unset-project.js +0 -57
  217. package/dist/commands/config/unset-project.js.map +0 -1
  218. package/dist/config/skill-categories.yaml +0 -344
  219. package/dist/config/skill-rules.yaml +0 -740
  220. package/dist/config/stacks.yaml +0 -1864
  221. package/dist/source-manager-BVB2SG73.js +0 -16
  222. /package/dist/{chunk-YDYRAXSY.js.map → chunk-52M2XF3W.js.map} +0 -0
  223. /package/dist/{chunk-RA2IPRO2.js.map → chunk-AJJJE7F7.js.map} +0 -0
  224. /package/dist/{chunk-4R52TQ3K.js.map → chunk-AX3SZZWA.js.map} +0 -0
  225. /package/dist/{chunk-DCE423KO.js.map → chunk-BMJZBLP7.js.map} +0 -0
  226. /package/dist/{chunk-GBOW6FUW.js.map → chunk-BNQ5O6LE.js.map} +0 -0
  227. /package/dist/{chunk-KAO3LKB5.js.map → chunk-C577AJE7.js.map} +0 -0
  228. /package/dist/{chunk-C3Q43WLC.js.map → chunk-CIG7IKX3.js.map} +0 -0
  229. /package/dist/{chunk-RDWGYKDY.js.map → chunk-K6OLORQL.js.map} +0 -0
  230. /package/dist/{chunk-CMNKHDOX.js.map → chunk-MGNYPVOJ.js.map} +0 -0
  231. /package/dist/{chunk-5FPIKTSA.js.map → chunk-MKCHLXMY.js.map} +0 -0
  232. /package/dist/{chunk-U7X4V4HE.js.map → chunk-MMFQNJPE.js.map} +0 -0
  233. /package/dist/{chunk-QYLCINGC.js.map → chunk-SDKCQXWE.js.map} +0 -0
  234. /package/dist/{chunk-3VOL4WEG.js.map → chunk-WYVDNGJB.js.map} +0 -0
  235. /package/dist/{chunk-WJHFV6RI.js.map → chunk-X5EG4EFP.js.map} +0 -0
  236. /package/dist/{chunk-JWYRXE6C.js.map → chunk-XUDTFI4M.js.map} +0 -0
  237. /package/dist/{source-manager-BVB2SG73.js.map → loader-2O32KKAQ.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -9,6 +9,156 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ---
11
11
 
12
+ ## [0.60.1] - 2026-03-08
13
+
14
+ **Type redundancy cleanup and test infrastructure improvements**
15
+
16
+ - `CategoryDomainMap`, `PluginConfigResult`, and 4 other types simplified with `Pick`/`Omit`/extends
17
+ - `TestSkill` derived from `ExtractedSkillMetadata`, dead alias fields removed, `writeTestSkill` options auto-derived
18
+
19
+ See [changelogs/0.60.1.md](./changelogs/0.60.1.md) for full details.
20
+
21
+ ---
22
+
23
+ ## [0.60.0] - 2026-03-07
24
+
25
+ **Slug-based skill identity — R-04 Phase 1**
26
+
27
+ - `SkillSlug` union type replaces `SkillDisplayName` with compile-time checked slugs
28
+ - Aliases and per-skill rules removed — slugs derived from metadata, relationships use group-based declarations
29
+ - New relationship types: `CompatibilityGroup`, `SetupPair`, flat `Recommendation`
30
+
31
+ See [changelogs/0.60.0.md](./changelogs/0.60.0.md) for full details.
32
+
33
+ ---
34
+
35
+ ## [0.59.0] - 2026-03-07
36
+
37
+ **Dual-scope agent installation with per-agent project/global scope**
38
+
39
+ - `AgentScopeConfig` replaces bare agent name arrays — each agent has its own scope
40
+ - Global installation detection in `init` command with project/global/cancel prompt
41
+ - D-37, D-65, B-09 completed
42
+
43
+ See [changelogs/0.59.0.md](./changelogs/0.59.0.md) for full details.
44
+
45
+ ---
46
+
47
+ ## [0.58.0] - 2026-03-06
48
+
49
+ **Per-skill scope toggle, S key badge, E2E fixes**
50
+
51
+ - S key toggles focused skill's scope (project/global) in build step with [P]/[G] badge
52
+ - Fix `new marketplace` / `new skill` failing in temp dirs (skip detectInstallation with --output)
53
+ - 28 E2E test failures fixed, test suite updated for SkillConfig[] format
54
+
55
+ See [changelogs/0.58.0.md](./changelogs/0.58.0.md) for full details.
56
+
57
+ ---
58
+
59
+ ## [0.57.0] - 2026-03-02
60
+
61
+ **Per-skill install mode, archive removal, mode migration**
62
+
63
+ - Install mode derived from per-skill source selections (`"local"`, `"plugin"`, `"mixed"`)
64
+ - Archive mechanism replaced with permanent delete — `deleteLocalSkill()` replaces archive/restore
65
+ - Mode migrator handles per-skill local↔plugin transitions in `cc edit`
66
+
67
+ See [changelogs/0.57.0.md](./changelogs/0.57.0.md) for full details.
68
+
69
+ ---
70
+
71
+ ## [0.56.1] - 2026-03-02
72
+
73
+ **Domain metadata cleanup, D-37 design doc update**
74
+
75
+ - `domain` now explicit in skill/agent metadata (no more category prefix inference)
76
+ - D-37 install mode redesign doc updated for config.ts, dropped `skillOverrides`
77
+
78
+ See [changelogs/0.56.1.md](./changelogs/0.56.1.md) for full details.
79
+
80
+ ---
81
+
82
+ ## [0.56.0] - 2026-03-02
83
+
84
+ **E2E test coverage, global config detection, pre-commit E2E hook**
85
+
86
+ - 350+ E2E tests covering all commands and wizard flows
87
+ - `agentsinc init` prompts when global config exists but no project config (D-65)
88
+ - E2E tests added to pre-commit hook (D-63)
89
+
90
+ See [changelogs/0.56.0.md](./changelogs/0.56.0.md) for full details.
91
+
92
+ ---
93
+
94
+ ## [0.55.1] - 2026-03-01
95
+
96
+ **B-08 selective agent removal, D-70 rename Subcategory → Category**
97
+
98
+ - Fixed `uninstall` to selectively remove only config-listed agents instead of wiping the entire agents directory
99
+ - Renamed `Subcategory` type to `Category` across ~64 files — aligns with `category` field in `metadata.yaml`
100
+
101
+ See [changelogs/0.55.1.md](./changelogs/0.55.1.md) for full details.
102
+
103
+ ---
104
+
105
+ ## [0.55.0] - 2026-03-01
106
+
107
+ **Remove `--dry-run` flag**
108
+
109
+ - Removed `--dry-run` from all commands — wizard confirm step already previews, all operations are local/reversible
110
+
111
+ See [changelogs/0.55.0.md](./changelogs/0.55.0.md) for full details.
112
+
113
+ ---
114
+
115
+ ## [0.54.0] - 2026-03-01
116
+
117
+ **Config file renames, domain ordering fix**
118
+
119
+ - Renamed `ts-config-*` files to `config-*` — drop prefix now that all configs are TypeScript
120
+ - Fixed domain ordering mismatch — custom domains now appear first in all wizard views
121
+
122
+ See [changelogs/0.54.0.md](./changelogs/0.54.0.md) for full details.
123
+
124
+ ---
125
+
126
+ ## [0.53.0] - 2026-02-28
127
+
128
+ **Config-types regeneration, sectioned unions, required domain**
129
+
130
+ - Auto-regenerate `config-types.ts` on `new skill` and `new agent` creation
131
+ - Sectioned `// Custom` / `// Marketplace` comments in generated union types
132
+ - Domain now required on all skill metadata — never inferred from category prefix
133
+
134
+ See [changelogs/0.53.0.md](./changelogs/0.53.0.md) for full details.
135
+
136
+ ---
137
+
138
+ ## [0.52.0] - 2026-02-28
139
+
140
+ **Generated config types, remove defineConfig() runtime dependency**
141
+
142
+ - Generated `config-types.ts` gives users editor autocomplete with zero dependencies
143
+ - Config output uses `satisfies ProjectConfig` instead of `defineConfig()` wrapper
144
+ - Fixes root cause of B-08 (uninstall failing due to jiti import resolution)
145
+
146
+ See [changelogs/0.52.0.md](./changelogs/0.52.0.md) for full details.
147
+
148
+ ---
149
+
150
+ ## [0.51.0] - 2026-02-28
151
+
152
+ **Install scope tracking, global test isolation**
153
+
154
+ - Add `installScope` to wizard store — track project vs global scope through wizard flow
155
+ - Global `vitest.setup.ts` mocks `os.homedir()` to prevent real global config from leaking into tests
156
+ - Fix 63 test failures across 16 files caused by global config fallback
157
+
158
+ See [changelogs/0.51.0.md](./changelogs/0.51.0.md) for full details.
159
+
160
+ ---
161
+
12
162
  ## [0.50.0] - 2026-02-27
13
163
 
14
164
  **Pre-1.0 cleanup — agent.yaml rename, expert mode removal, scroll hook extraction, DRY consolidation**
@@ -164,9 +314,9 @@ See [changelogs/0.41.0.md](./changelogs/0.41.0.md) for full details.
164
314
 
165
315
  ## [0.40.0] - 2026-02-19
166
316
 
167
- **Domain-prefix all subcategory keys (D-31), add category enum to metadata schema (D-32)**
317
+ **Domain-prefix all category keys (D-31), add category enum to metadata schema (D-32)**
168
318
 
169
- - Rename all 33 bare subcategory keys to domain-prefixed form (e.g., `framework` → `web-framework`, `methodology` → `shared-methodology`)
319
+ - Rename all 33 bare category keys to domain-prefixed form (e.g., `framework` → `web-framework`, `methodology` → `shared-methodology`)
170
320
  - Add strict category enum validation to metadata schema
171
321
  - Simplify `extractSubcategoryFromPath` and `categoryPathSchema` (remove slash-separated paths)
172
322
  - Update all YAML configs, JSON schemas, types, source code, and 30+ test files
@@ -179,7 +329,7 @@ See [changelogs/0.40.0.md](./changelogs/0.40.0.md) for full details.
179
329
 
180
330
  **Merge meta-framework into framework, remove web-extras domain, grouped agents step**
181
331
 
182
- - Merge `meta-framework` subcategory into `framework` — meta-frameworks now conflict with base frameworks directly
332
+ - Merge `meta-framework` category into `framework` — meta-frameworks now conflict with base frameworks directly
183
333
  - Remove `web-extras` domain and `parentDomain` field — all web categories under single `web` domain
184
334
  - Rewrite agents step with domain-grouped layout (Web, API, CLI, Meta) and scroll support
185
335
  - Simplify agent preselection from skill-based to domain-based lookup
@@ -195,7 +345,7 @@ See [changelogs/0.39.0.md](./changelogs/0.39.0.md) for full details.
195
345
 
196
346
  - New "Agents" wizard step — users can toggle which agents to compile
197
347
  - Agents preselected from actually selected skills (not just domains)
198
- - Stacks schema enforces valid subcategory keys via enum
348
+ - Stacks schema enforces valid category keys via enum
199
349
  - Reusable CheckboxGrid component extracted from domain selection
200
350
 
201
351
  See [changelogs/0.38.0.md](./changelogs/0.38.0.md) for full details.
@@ -328,7 +478,7 @@ Fixed `cc init` embedding wrong schema reference in generated config.yaml.
328
478
 
329
479
  **Multi-skill stack assignments in project config**
330
480
 
331
- Stack config now stores multiple skills per subcategory with preloaded flags preserved through the full pipeline.
481
+ Stack config now stores multiple skills per category with preloaded flags preserved through the full pipeline.
332
482
 
333
483
  [-> Full release notes](./changelogs/0.29.2.md)
334
484
 
@@ -7,10 +7,10 @@ import {
7
7
  } from "./chunk-KUV24B5M.js";
8
8
  import {
9
9
  useRowScroll
10
- } from "./chunk-3VOL4WEG.js";
10
+ } from "./chunk-WYVDNGJB.js";
11
11
  import {
12
12
  ViewTitle
13
- } from "./chunk-CMNKHDOX.js";
13
+ } from "./chunk-MGNYPVOJ.js";
14
14
  import {
15
15
  useTextInput
16
16
  } from "./chunk-U3IGFMCY.js";
@@ -19,14 +19,14 @@ import {
19
19
  addSource,
20
20
  getSourceSummary,
21
21
  removeSource
22
- } from "./chunk-HMSHB5EQ.js";
22
+ } from "./chunk-TZXYBG3R.js";
23
23
  import {
24
24
  getErrorMessage,
25
25
  verbose
26
- } from "./chunk-WBHPCBVN.js";
26
+ } from "./chunk-LWXRUR6B.js";
27
27
  import {
28
28
  CLI_COLORS
29
- } from "./chunk-AWP5A6IM.js";
29
+ } from "./chunk-6OWHQ7HM.js";
30
30
  import {
31
31
  init_esm_shims
32
32
  } from "./chunk-DHET7RCE.js";
@@ -262,4 +262,4 @@ var StepSettings = ({
262
262
  export {
263
263
  StepSettings
264
264
  };
265
- //# sourceMappingURL=chunk-YDYRAXSY.js.map
265
+ //# sourceMappingURL=chunk-52M2XF3W.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CLI_COLORS
4
- } from "./chunk-AWP5A6IM.js";
4
+ } from "./chunk-6OWHQ7HM.js";
5
5
  import {
6
6
  init_esm_shims
7
7
  } from "./chunk-DHET7RCE.js";
@@ -21,23 +21,21 @@ var GLOBAL_KEYS = {
21
21
  ]
22
22
  };
23
23
  var GLOBAL_TOGGLES = {
24
- title: "Global Toggles",
25
- keys: [
26
- { key: "P", description: "Toggle plugin/local install mode" },
27
- { key: "?", description: "Toggle this help" }
28
- ]
24
+ title: "Toggles",
25
+ keys: [{ key: "?", description: "Toggle this help" }]
29
26
  };
30
27
  var BUILD_KEYS = {
31
28
  title: "Build Step",
32
29
  keys: [
33
30
  { key: "D", description: "Toggle compatibility labels" },
31
+ { key: "S", description: "Toggle skill scope (project/global)" },
34
32
  { key: "A", description: "Accept stack defaults (stack path only)" },
35
33
  { key: "h/j/k/l", description: "Vim-style navigation" }
36
34
  ]
37
35
  };
38
36
  var SOURCES_KEYS = {
39
37
  title: "Sources Step",
40
- keys: [{ key: "G", description: "Toggle source settings" }]
38
+ keys: [{ key: "S", description: "Toggle source settings" }]
41
39
  };
42
40
  var AGENTS_KEYS = {
43
41
  title: "Agents Step",
@@ -86,4 +84,4 @@ var HelpModal = ({ currentStep }) => {
86
84
  export {
87
85
  HelpModal
88
86
  };
89
- //# sourceMappingURL=chunk-2BWCR762.js.map
87
+ //# sourceMappingURL=chunk-52XO4ULK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/components/wizard/help-modal.tsx"],"sourcesContent":["import { Box, Text } from \"ink\";\nimport React from \"react\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport type { WizardStep } from \"../../stores/wizard-store.js\";\n\ntype HelpSection = {\n title: string;\n keys: { key: string; description: string }[];\n};\n\nconst GLOBAL_KEYS: HelpSection = {\n title: \"Navigation\",\n keys: [\n { key: \"Arrow keys\", description: \"Move focus\" },\n { key: \"SPACE\", description: \"Toggle selection\" },\n { key: \"ENTER\", description: \"Confirm / continue\" },\n { key: \"ESC\", description: \"Go back\" },\n { key: \"TAB\", description: \"Jump to next section\" },\n ],\n};\n\nconst GLOBAL_TOGGLES: HelpSection = {\n title: \"Toggles\",\n keys: [{ key: \"?\", description: \"Toggle this help\" }],\n};\n\nconst BUILD_KEYS: HelpSection = {\n title: \"Build Step\",\n keys: [\n { key: \"D\", description: \"Toggle compatibility labels\" },\n { key: \"S\", description: \"Toggle skill scope (project/global)\" },\n { key: \"A\", description: \"Accept stack defaults (stack path only)\" },\n { key: \"h/j/k/l\", description: \"Vim-style navigation\" },\n ],\n};\n\nconst SOURCES_KEYS: HelpSection = {\n title: \"Sources Step\",\n keys: [{ key: \"S\", description: \"Toggle source settings\" }],\n};\n\nconst AGENTS_KEYS: HelpSection = {\n title: \"Agents Step\",\n keys: [],\n};\n\nconst STEP_SECTIONS: Partial<Record<WizardStep, HelpSection>> = {\n build: BUILD_KEYS,\n sources: SOURCES_KEYS,\n agents: AGENTS_KEYS,\n};\n\nconst KEY_COLUMN_WIDTH = 14;\n\ntype HelpSectionViewProps = {\n section: HelpSection;\n};\n\nconst HelpSectionView: React.FC<HelpSectionViewProps> = ({ section }) => (\n <Box flexDirection=\"column\" marginTop={1} marginBottom={1}>\n <Text bold>{section.title}</Text>\n {section.keys.map(({ key, description }) => (\n <Box key={key} marginTop={1}>\n <Box width={KEY_COLUMN_WIDTH}>\n <Text backgroundColor=\"black\" color={CLI_COLORS.UNFOCUSED}>\n {\" \"}\n {key}{\" \"}\n </Text>\n </Box>\n <Text>{description}</Text>\n </Box>\n ))}\n </Box>\n);\n\nexport type HelpModalProps = {\n currentStep: WizardStep;\n};\n\nexport const HelpModal: React.FC<HelpModalProps> = ({ currentStep }) => {\n const stepSection = STEP_SECTIONS[currentStep];\n\n return (\n <Box\n flexDirection=\"column\"\n borderStyle=\"single\"\n borderColor={CLI_COLORS.PRIMARY}\n paddingX={2}\n paddingY={1}\n marginTop={1}\n >\n <Text bold color={CLI_COLORS.PRIMARY}>\n Keyboard Shortcuts\n </Text>\n <Text> </Text>\n\n <HelpSectionView section={GLOBAL_KEYS} />\n <HelpSectionView section={GLOBAL_TOGGLES} />\n {stepSection && <HelpSectionView section={stepSection} />}\n\n <Text dimColor>Press ESC or ? to close</Text>\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;AAAA,SAAS,KAAK,YAAY;AA4DtB,cAIM,YAJN;AAlDJ,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,MAAM;AAAA,IACJ,EAAE,KAAK,cAAc,aAAa,aAAa;AAAA,IAC/C,EAAE,KAAK,SAAS,aAAa,mBAAmB;AAAA,IAChD,EAAE,KAAK,SAAS,aAAa,qBAAqB;AAAA,IAClD,EAAE,KAAK,OAAO,aAAa,UAAU;AAAA,IACrC,EAAE,KAAK,OAAO,aAAa,uBAAuB;AAAA,EACpD;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,OAAO;AAAA,EACP,MAAM,CAAC,EAAE,KAAK,KAAK,aAAa,mBAAmB,CAAC;AACtD;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,MAAM;AAAA,IACJ,EAAE,KAAK,KAAK,aAAa,8BAA8B;AAAA,IACvD,EAAE,KAAK,KAAK,aAAa,sCAAsC;AAAA,IAC/D,EAAE,KAAK,KAAK,aAAa,0CAA0C;AAAA,IACnE,EAAE,KAAK,WAAW,aAAa,uBAAuB;AAAA,EACxD;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,OAAO;AAAA,EACP,MAAM,CAAC,EAAE,KAAK,KAAK,aAAa,yBAAyB,CAAC;AAC5D;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,MAAM,CAAC;AACT;AAEA,IAAM,gBAA0D;AAAA,EAC9D,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AACV;AAEA,IAAM,mBAAmB;AAMzB,IAAM,kBAAkD,CAAC,EAAE,QAAQ,MACjE,qBAAC,OAAI,eAAc,UAAS,WAAW,GAAG,cAAc,GACtD;AAAA,sBAAC,QAAK,MAAI,MAAE,kBAAQ,OAAM;AAAA,EACzB,QAAQ,KAAK,IAAI,CAAC,EAAE,KAAK,YAAY,MACpC,qBAAC,OAAc,WAAW,GACxB;AAAA,wBAAC,OAAI,OAAO,kBACV,+BAAC,QAAK,iBAAgB,SAAQ,OAAO,WAAW,WAC7C;AAAA;AAAA,MACA;AAAA,MAAK;AAAA,OACR,GACF;AAAA,IACA,oBAAC,QAAM,uBAAY;AAAA,OAPX,GAQV,CACD;AAAA,GACH;AAOK,IAAM,YAAsC,CAAC,EAAE,YAAY,MAAM;AACtE,QAAM,cAAc,cAAc,WAAW;AAE7C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,aAAY;AAAA,MACZ,aAAa,WAAW;AAAA,MACxB,UAAU;AAAA,MACV,UAAU;AAAA,MACV,WAAW;AAAA,MAEX;AAAA,4BAAC,QAAK,MAAI,MAAC,OAAO,WAAW,SAAS,gCAEtC;AAAA,QACA,oBAAC,QAAK,eAAC;AAAA,QAEP,oBAAC,mBAAgB,SAAS,aAAa;AAAA,QACvC,oBAAC,mBAAgB,SAAS,gBAAgB;AAAA,QACzC,eAAe,oBAAC,mBAAgB,SAAS,aAAa;AAAA,QAEvD,oBAAC,QAAK,UAAQ,MAAC,qCAAuB;AAAA;AAAA;AAAA,EACxC;AAEJ;","names":[]}
@@ -1,44 +1,44 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- WizardLayout
4
- } from "./chunk-I6IOGZSZ.js";
5
2
  import {
6
3
  StepSettings
7
- } from "./chunk-YDYRAXSY.js";
4
+ } from "./chunk-52M2XF3W.js";
8
5
  import {
9
6
  StepSources
10
- } from "./chunk-SPFHPHYL.js";
7
+ } from "./chunk-SZRK3VOR.js";
11
8
  import {
12
9
  StepStack
13
- } from "./chunk-5FPIKTSA.js";
10
+ } from "./chunk-MKCHLXMY.js";
11
+ import {
12
+ WizardLayout
13
+ } from "./chunk-EMIUPGPL.js";
14
14
  import {
15
15
  StepAgents
16
- } from "./chunk-M3GQ2R3E.js";
16
+ } from "./chunk-SEJF7CGJ.js";
17
17
  import {
18
18
  StepBuild
19
- } from "./chunk-QB5HHTAA.js";
19
+ } from "./chunk-TC3NHO34.js";
20
20
  import {
21
21
  StepConfirm
22
- } from "./chunk-XDSVV5GZ.js";
22
+ } from "./chunk-KIWFEBKH.js";
23
23
  import {
24
24
  getStackName
25
- } from "./chunk-HYEUETIC.js";
26
- import {
27
- cliTheme
28
- } from "./chunk-JWYRXE6C.js";
25
+ } from "./chunk-BKJHAJQW.js";
29
26
  import {
30
27
  useWizardStore
31
- } from "./chunk-5FCHJLM7.js";
28
+ } from "./chunk-WF6RM73R.js";
29
+ import {
30
+ cliTheme
31
+ } from "./chunk-XUDTFI4M.js";
32
32
  import {
33
33
  resolveAlias,
34
34
  validateSelection
35
- } from "./chunk-HMSHB5EQ.js";
35
+ } from "./chunk-TZXYBG3R.js";
36
36
  import {
37
37
  warn
38
- } from "./chunk-WBHPCBVN.js";
38
+ } from "./chunk-LWXRUR6B.js";
39
39
  import {
40
40
  CLI_COLORS
41
- } from "./chunk-AWP5A6IM.js";
41
+ } from "./chunk-6OWHQ7HM.js";
42
42
  import {
43
43
  init_esm_shims
44
44
  } from "./chunk-DHET7RCE.js";
@@ -55,29 +55,39 @@ import { useRef } from "react";
55
55
  function useWizardInitialization({
56
56
  matrix,
57
57
  initialStep,
58
- initialInstallMode,
59
58
  initialDomains,
60
59
  initialAgents,
61
- installedSkillIds
60
+ installedSkillIds,
61
+ installedSkillConfigs,
62
+ lockedSkillIds,
63
+ lockedAgentNames
62
64
  }) {
63
65
  const initialized = useRef(false);
64
66
  if (!initialized.current) {
65
67
  initialized.current = true;
66
68
  if (initialStep) {
67
69
  if (installedSkillIds?.length) {
68
- useWizardStore.getState().populateFromSkillIds(installedSkillIds, matrix.skills, matrix.categories);
70
+ useWizardStore.getState().populateFromSkillIds(
71
+ installedSkillIds,
72
+ matrix.skills,
73
+ matrix.categories,
74
+ installedSkillConfigs
75
+ );
69
76
  }
70
77
  useWizardStore.setState({ step: initialStep, approach: "scratch" });
71
78
  }
72
- if (initialInstallMode) {
73
- useWizardStore.setState({ installMode: initialInstallMode });
74
- }
75
79
  if (initialDomains?.length) {
76
80
  useWizardStore.setState({ selectedDomains: initialDomains });
77
81
  }
78
82
  if (initialAgents?.length) {
79
83
  useWizardStore.setState({ selectedAgents: initialAgents });
80
84
  }
85
+ if (lockedSkillIds?.length || lockedAgentNames?.length) {
86
+ useWizardStore.setState({
87
+ ...lockedSkillIds?.length && { lockedSkillIds },
88
+ ...lockedAgentNames?.length && { lockedAgentNames }
89
+ });
90
+ }
81
91
  }
82
92
  }
83
93
 
@@ -95,10 +105,10 @@ function useBuildStepProps({
95
105
  const allSelections = store.getAllSelectedTechnologies();
96
106
  const activeDomain = currentDomain || effectiveDomains[0] || "web";
97
107
  const onToggle = useCallback(
98
- (subcategoryId, techId) => {
108
+ (categoryId, techId) => {
99
109
  const domain = store.getCurrentDomain() || "web";
100
- const cat = matrix.categories[subcategoryId];
101
- store.toggleTechnology(domain, subcategoryId, techId, cat?.exclusive ?? true);
110
+ const cat = matrix.categories[categoryId];
111
+ store.toggleTechnology(domain, categoryId, techId, cat?.exclusive ?? true);
102
112
  },
103
113
  [store, matrix]
104
114
  );
@@ -139,10 +149,12 @@ var Wizard = ({
139
149
  marketplaceLabel,
140
150
  logo,
141
151
  initialStep,
142
- initialInstallMode,
143
152
  initialDomains,
144
153
  initialAgents,
145
154
  installedSkillIds,
155
+ installedSkillConfigs,
156
+ lockedSkillIds,
157
+ lockedAgentNames,
146
158
  projectDir,
147
159
  startupMessages
148
160
  }) => {
@@ -156,15 +168,17 @@ var Wizard = ({
156
168
  useWizardInitialization({
157
169
  matrix,
158
170
  initialStep,
159
- initialInstallMode,
160
171
  initialDomains,
161
172
  initialAgents,
162
- installedSkillIds
173
+ installedSkillIds,
174
+ installedSkillConfigs,
175
+ lockedSkillIds,
176
+ lockedAgentNames
163
177
  });
164
178
  const buildStepProps = useBuildStepProps({ store, matrix, installedSkillIds });
165
179
  useInput((input, key) => {
166
180
  if (store.showSettings) {
167
- if (input === "g" || input === "G") {
181
+ if (input === "s" || input === "S") {
168
182
  store.toggleSettings();
169
183
  }
170
184
  return;
@@ -190,12 +204,23 @@ var Wizard = ({
190
204
  store.setStep("confirm");
191
205
  return;
192
206
  }
193
- if ((input === "g" || input === "G") && store.step === "sources") {
194
- store.toggleSettings();
207
+ if ((input === "s" || input === "S") && store.step === "build") {
208
+ const focused = store.focusedSkillId;
209
+ if (focused) {
210
+ store.toggleSkillScope(focused);
211
+ }
212
+ return;
213
+ }
214
+ if ((input === "s" || input === "S") && store.step === "agents") {
215
+ const focused = store.focusedAgentId;
216
+ if (focused) {
217
+ store.toggleAgentScope(focused);
218
+ }
195
219
  return;
196
220
  }
197
- if (input === "p" || input === "P") {
198
- store.toggleInstallMode();
221
+ if ((input === "s" || input === "S") && store.step === "sources") {
222
+ store.toggleSettings();
223
+ return;
199
224
  }
200
225
  });
201
226
  const handleComplete = useCallback2(() => {
@@ -208,15 +233,7 @@ var Wizard = ({
208
233
  allSkills = [...stack?.allSkillIds || []];
209
234
  } else {
210
235
  const techNames = store.getAllSelectedTechnologies();
211
- allSkills = techNames.map((tech) => {
212
- const resolved = resolveAlias(tech, matrix);
213
- if (!matrix.skills[resolved]) {
214
- warn(
215
- `Technology '${tech}' could not be resolved to a skill ID - it may be missing from skill_aliases`
216
- );
217
- }
218
- return resolved;
219
- });
236
+ allSkills = techNames.map((tech) => resolveAlias(tech, matrix));
220
237
  }
221
238
  const methodologySkills = store.getDefaultMethodologySkills();
222
239
  for (const skill of methodologySkills) {
@@ -224,15 +241,18 @@ var Wizard = ({
224
241
  allSkills.push(skill);
225
242
  }
226
243
  }
244
+ const skillConfigs = allSkills.map((id) => {
245
+ const existing = store.skillConfigs.find((sc) => sc.id === id);
246
+ return existing ?? { id, scope: "project", source: "local" };
247
+ });
227
248
  const validation = validateSelection(allSkills, matrix);
228
249
  const result = {
229
- selectedSkills: allSkills,
250
+ skills: skillConfigs,
230
251
  selectedAgents: store.selectedAgents,
252
+ agentConfigs: store.agentConfigs,
231
253
  selectedStackId: store.selectedStackId,
232
254
  domainSelections: store.domainSelections,
233
255
  selectedDomains: store.selectedDomains,
234
- sourceSelections: store.sourceSelections,
235
- installMode: store.installMode,
236
256
  cancelled: false,
237
257
  validation
238
258
  };
@@ -278,7 +298,7 @@ var Wizard = ({
278
298
  return /* @__PURE__ */ jsx(StepAgents, { matrix });
279
299
  case "confirm": {
280
300
  const stackName = getStackName(store.selectedStackId, matrix);
281
- const technologyCount = store.getTechnologyCount();
301
+ const selectedSkills = store.getAllSelectedTechnologies();
282
302
  return /* @__PURE__ */ jsx(
283
303
  StepConfirm,
284
304
  {
@@ -286,10 +306,11 @@ var Wizard = ({
286
306
  stackName,
287
307
  selectedDomains: store.selectedDomains,
288
308
  domainSelections: store.domainSelections,
289
- technologyCount,
290
- skillCount: technologyCount,
309
+ technologyCount: selectedSkills.length,
310
+ skillCount: selectedSkills.length,
291
311
  agentCount: store.selectedAgents.length,
292
- installMode: store.installMode,
312
+ skillConfigs: store.skillConfigs,
313
+ agentConfigs: store.agentConfigs,
293
314
  onBack: store.goBack
294
315
  }
295
316
  );
@@ -321,4 +342,4 @@ var Wizard = ({
321
342
  export {
322
343
  Wizard
323
344
  };
324
- //# sourceMappingURL=chunk-KQOU4POU.js.map
345
+ //# sourceMappingURL=chunk-6G3KZSO4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/components/wizard/wizard.tsx","../src/cli/components/hooks/use-wizard-initialization.ts","../src/cli/components/hooks/use-build-step-props.ts"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Box, Text, useApp, useInput, useStdout } from \"ink\";\nimport { ThemeProvider } from \"@inkjs/ui\";\nimport { useWizardStore, type WizardStep } from \"../../stores/wizard-store.js\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport { cliTheme } from \"../themes/default.js\";\nimport { WizardLayout } from \"./wizard-layout.js\";\nimport { StepStack } from \"./step-stack.js\";\nimport { StepBuild } from \"./step-build.js\";\nimport { StepConfirm } from \"./step-confirm.js\";\nimport { StepSources } from \"./step-sources.js\";\nimport { StepSettings } from \"./step-settings.js\";\nimport { StepAgents } from \"./step-agents.js\";\nimport { resolveAlias, validateSelection } from \"../../lib/matrix/index.js\";\nimport type {\n AgentName,\n Domain,\n DomainSelections,\n MergedSkillsMatrix,\n SkillId,\n} from \"../../types/index.js\";\nimport type { AgentScopeConfig, SkillConfig } from \"../../types/config.js\";\nimport { getStackName } from \"./utils.js\";\nimport { warn, type StartupMessage } from \"../../utils/logger.js\";\nimport { useWizardInitialization } from \"../hooks/use-wizard-initialization.js\";\nimport { useBuildStepProps } from \"../hooks/use-build-step-props.js\";\n\nexport type WizardResultV2 = {\n skills: SkillConfig[];\n selectedAgents: AgentName[];\n agentConfigs: AgentScopeConfig[];\n selectedStackId: string | null;\n domainSelections: DomainSelections;\n selectedDomains: Domain[];\n cancelled: boolean;\n validation: {\n valid: boolean;\n errors: Array<{ message: string }>;\n warnings: Array<{ message: string }>;\n };\n};\n\ntype WizardProps = {\n matrix: MergedSkillsMatrix;\n onComplete: (result: WizardResultV2) => void;\n onCancel: () => void;\n version?: string;\n marketplaceLabel?: string;\n logo?: string;\n initialStep?: WizardStep;\n initialDomains?: Domain[];\n initialAgents?: AgentName[];\n installedSkillIds?: SkillId[];\n installedSkillConfigs?: SkillConfig[];\n lockedSkillIds?: SkillId[];\n lockedAgentNames?: AgentName[];\n projectDir?: string;\n startupMessages?: StartupMessage[];\n};\n\nconst MIN_TERMINAL_WIDTH = 80;\nconst MIN_TERMINAL_HEIGHT = 15;\n\nexport const Wizard: React.FC<WizardProps> = ({\n matrix,\n onComplete,\n onCancel,\n version,\n marketplaceLabel,\n logo,\n initialStep,\n initialDomains,\n initialAgents,\n installedSkillIds,\n installedSkillConfigs,\n lockedSkillIds,\n lockedAgentNames,\n projectDir,\n startupMessages,\n}) => {\n const store = useWizardStore();\n const { exit } = useApp();\n const { stdout } = useStdout();\n\n const terminalWidth = stdout.columns || MIN_TERMINAL_WIDTH;\n const terminalHeight = stdout.rows || MIN_TERMINAL_HEIGHT;\n const isNarrowTerminal = terminalWidth < MIN_TERMINAL_WIDTH;\n const isShortTerminal = terminalHeight < MIN_TERMINAL_HEIGHT;\n\n useWizardInitialization({\n matrix,\n initialStep,\n initialDomains,\n initialAgents,\n installedSkillIds,\n installedSkillConfigs,\n lockedSkillIds,\n lockedAgentNames,\n });\n\n const buildStepProps = useBuildStepProps({ store, matrix, installedSkillIds });\n\n useInput((input, key) => {\n // ESC is handled by step-settings.tsx's own useKeyboardNavigation hook\n if (store.showSettings) {\n if (input === \"s\" || input === \"S\") {\n store.toggleSettings();\n }\n return;\n }\n\n if (store.showHelp) {\n if (key.escape || input === \"?\") {\n store.toggleHelp();\n }\n return;\n }\n\n if (input === \"?\") {\n store.toggleHelp();\n return;\n }\n\n if (key.escape) {\n // At the initial stack/scratch selection (approach not yet set), ESC cancels the wizard.\n // StackSelection handles its own ESC via the onCancel prop.\n // Other steps that don't have their own escape handler use goBack.\n if (\n store.step !== \"build\" &&\n store.step !== \"confirm\" &&\n store.step !== \"sources\" &&\n store.step !== \"agents\" &&\n store.step !== \"stack\"\n ) {\n store.goBack();\n }\n return;\n }\n\n if ((input === \"a\" || input === \"A\") && store.step === \"build\" && store.selectedStackId) {\n store.setStackAction(\"defaults\");\n store.setStep(\"confirm\");\n return;\n }\n\n if ((input === \"s\" || input === \"S\") && store.step === \"build\") {\n const focused = store.focusedSkillId;\n if (focused) {\n store.toggleSkillScope(focused);\n }\n return;\n }\n\n if ((input === \"s\" || input === \"S\") && store.step === \"agents\") {\n const focused = store.focusedAgentId;\n if (focused) {\n store.toggleAgentScope(focused);\n }\n return;\n }\n\n if ((input === \"s\" || input === \"S\") && store.step === \"sources\") {\n store.toggleSettings();\n return;\n }\n });\n\n const handleComplete = useCallback(() => {\n let allSkills: SkillId[];\n\n if (store.selectedStackId && store.stackAction === \"defaults\") {\n const stack = matrix.suggestedStacks.find((s) => s.id === store.selectedStackId);\n if (!stack) {\n warn(`Stack not found in matrix: '${store.selectedStackId}'`);\n }\n allSkills = [...(stack?.allSkillIds || [])];\n } else {\n const techNames = store.getAllSelectedTechnologies();\n allSkills = techNames.map((tech) => resolveAlias(tech, matrix));\n }\n\n const methodologySkills = store.getDefaultMethodologySkills();\n for (const skill of methodologySkills) {\n if (!allSkills.includes(skill)) {\n allSkills.push(skill);\n }\n }\n\n const skillConfigs: SkillConfig[] = allSkills.map((id) => {\n const existing = store.skillConfigs.find((sc) => sc.id === id);\n return existing ?? { id, scope: \"project\" as const, source: \"local\" };\n });\n\n const validation = validateSelection(allSkills, matrix);\n\n const result: WizardResultV2 = {\n skills: skillConfigs,\n selectedAgents: store.selectedAgents,\n agentConfigs: store.agentConfigs,\n selectedStackId: store.selectedStackId,\n domainSelections: store.domainSelections,\n selectedDomains: store.selectedDomains,\n cancelled: false,\n validation,\n };\n\n onComplete(result);\n exit();\n }, [store, matrix, onComplete, exit]);\n\n const handleCancel = useCallback(() => {\n onCancel();\n exit();\n }, [onCancel, exit]);\n\n const renderStep = () => {\n switch (store.step) {\n case \"stack\":\n return <StepStack matrix={matrix} onCancel={handleCancel} />;\n\n case \"build\":\n return <StepBuild {...buildStepProps} />;\n\n case \"sources\": {\n if (store.showSettings) {\n return (\n <StepSettings\n projectDir={projectDir || process.cwd()}\n onClose={() => store.toggleSettings()}\n />\n );\n }\n return (\n <StepSources\n matrix={matrix}\n projectDir={projectDir}\n onContinue={() => {\n if (!initialAgents?.length) {\n store.preselectAgentsFromDomains();\n }\n store.setStep(\"agents\");\n }}\n onBack={store.goBack}\n />\n );\n }\n\n case \"agents\":\n return <StepAgents matrix={matrix} />;\n\n case \"confirm\": {\n const stackName = getStackName(store.selectedStackId, matrix);\n const selectedSkills = store.getAllSelectedTechnologies();\n return (\n <StepConfirm\n onComplete={handleComplete}\n stackName={stackName}\n selectedDomains={store.selectedDomains}\n domainSelections={store.domainSelections}\n technologyCount={selectedSkills.length}\n skillCount={selectedSkills.length}\n agentCount={store.selectedAgents.length}\n skillConfigs={store.skillConfigs}\n agentConfigs={store.agentConfigs}\n onBack={store.goBack}\n />\n );\n }\n\n default:\n return null;\n }\n };\n\n if (isNarrowTerminal || isShortTerminal) {\n const issue = isNarrowTerminal\n ? `too narrow (${terminalWidth} columns, need ${MIN_TERMINAL_WIDTH})`\n : `too short (${terminalHeight} rows, need ${MIN_TERMINAL_HEIGHT})`;\n\n return (\n <ThemeProvider theme={cliTheme}>\n <Box flexDirection=\"column\" padding={1}>\n <Text color={CLI_COLORS.WARNING}>Terminal {issue}. Please resize your terminal.</Text>\n </Box>\n </ThemeProvider>\n );\n }\n\n return (\n <ThemeProvider theme={cliTheme}>\n <WizardLayout\n version={version}\n marketplaceLabel={marketplaceLabel}\n logo={logo}\n startupMessages={startupMessages}\n >\n {renderStep()}\n </WizardLayout>\n </ThemeProvider>\n );\n};\n","import { useRef } from \"react\";\nimport { useWizardStore, type WizardStep } from \"../../stores/wizard-store.js\";\nimport type { SkillConfig } from \"../../types/config.js\";\nimport type { AgentName, Domain, MergedSkillsMatrix, SkillId } from \"../../types/index.js\";\n\ntype UseWizardInitializationOptions = {\n matrix: MergedSkillsMatrix;\n initialStep?: WizardStep;\n initialDomains?: Domain[];\n initialAgents?: AgentName[];\n installedSkillIds?: SkillId[];\n installedSkillConfigs?: SkillConfig[];\n lockedSkillIds?: SkillId[];\n lockedAgentNames?: AgentName[];\n};\n\n/**\n * Runs one-time wizard store initialization before the first render.\n * Populates step, approach, and skill selections from props.\n */\nexport function useWizardInitialization({\n matrix,\n initialStep,\n initialDomains,\n initialAgents,\n installedSkillIds,\n installedSkillConfigs,\n lockedSkillIds,\n lockedAgentNames,\n}: UseWizardInitializationOptions): void {\n const initialized = useRef(false);\n\n if (!initialized.current) {\n initialized.current = true;\n\n if (initialStep) {\n if (installedSkillIds?.length) {\n useWizardStore\n .getState()\n .populateFromSkillIds(\n installedSkillIds,\n matrix.skills,\n matrix.categories,\n installedSkillConfigs,\n );\n }\n useWizardStore.setState({ step: initialStep, approach: \"scratch\" });\n }\n // Restore saved domains from config, overriding the domains\n // derived by populateFromSkillIds\n if (initialDomains?.length) {\n useWizardStore.setState({ selectedDomains: initialDomains });\n }\n // Restore saved agents from config, overriding the default empty array\n if (initialAgents?.length) {\n useWizardStore.setState({ selectedAgents: initialAgents });\n }\n // Set locked IDs (D9: global items read-only in project context)\n if (lockedSkillIds?.length || lockedAgentNames?.length) {\n useWizardStore.setState({\n ...(lockedSkillIds?.length && { lockedSkillIds }),\n ...(lockedAgentNames?.length && { lockedAgentNames }),\n });\n }\n }\n}\n","import { useCallback } from \"react\";\nimport type { Domain, MergedSkillsMatrix, SkillId } from \"../../types/index.js\";\nimport type { WizardState } from \"../../stores/wizard-store.js\";\nimport type { StepBuildProps } from \"../wizard/step-build.js\";\n\ntype UseBuildStepPropsOptions = {\n store: WizardState;\n matrix: MergedSkillsMatrix;\n installedSkillIds?: SkillId[];\n};\n\nexport function useBuildStepProps({\n store,\n matrix,\n installedSkillIds,\n}: UseBuildStepPropsOptions): StepBuildProps {\n const currentDomain = store.getCurrentDomain();\n const defaultDomains: Domain[] = [\"web\"];\n const effectiveDomains =\n store.selectedDomains.length > 0 ? store.selectedDomains : defaultDomains;\n\n const allSelections = store.getAllSelectedTechnologies();\n\n const activeDomain: Domain = currentDomain || effectiveDomains[0] || \"web\";\n\n const onToggle = useCallback(\n (categoryId: Parameters<StepBuildProps[\"onToggle\"]>[0], techId: SkillId) => {\n const domain: Domain = store.getCurrentDomain() || \"web\";\n const cat = matrix.categories[categoryId];\n store.toggleTechnology(domain, categoryId, techId, cat?.exclusive ?? true);\n },\n [store, matrix],\n );\n\n const onContinue = useCallback(() => {\n if (!store.nextDomain()) {\n store.setStep(\"sources\");\n }\n }, [store]);\n\n const onBack = useCallback(() => {\n if (!store.prevDomain()) {\n store.goBack();\n }\n }, [store]);\n\n return {\n matrix,\n domain: activeDomain,\n selectedDomains: effectiveDomains,\n selections: store.domainSelections[activeDomain] || {},\n allSelections,\n showLabels: store.showLabels,\n installedSkillIds,\n onToggle,\n onToggleLabels: store.toggleShowLabels,\n onContinue,\n onBack,\n };\n}\n"],"mappings":"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","names":["useCallback","useCallback"]}
@@ -22,12 +22,11 @@ var DEFAULT_PLUGIN_NAME = "agents-inc";
22
22
  var GLOBAL_INSTALL_ROOT = os.homedir();
23
23
  var CACHE_DIR = path.join(os.homedir(), ".cache", DEFAULT_PLUGIN_NAME);
24
24
  var CLI_BIN_NAME = "agentsinc";
25
- var SKILL_CATEGORIES_YAML_PATH = "config/skill-categories.yaml";
26
- var SKILL_RULES_YAML_PATH = "config/skill-rules.yaml";
27
- var STACKS_FILE_PATH = "config/stacks.yaml";
25
+ var SKILL_CATEGORIES_PATH = "config/skill-categories.ts";
26
+ var SKILL_RULES_PATH = "config/skill-rules.ts";
27
+ var STACKS_FILE_PATH = "config/stacks.ts";
28
28
  var SKILLS_DIR_PATH = "src/skills";
29
29
  var LOCAL_SKILLS_PATH = ".claude/skills";
30
- var ARCHIVED_SKILLS_DIR_NAME = "_archived";
31
30
  var DIRS = {
32
31
  agents: "src/agents",
33
32
  skills: "src/skills",
@@ -40,10 +39,12 @@ var STANDARD_FILES = {
40
39
  METADATA_YAML: "metadata.yaml",
41
40
  METADATA_JSON: "metadata.json",
42
41
  CONFIG_YAML: "config.yaml",
43
- SKILL_CATEGORIES_YAML: "skill-categories.yaml",
44
- SKILL_RULES_YAML: "skill-rules.yaml",
42
+ SKILL_CATEGORIES_TS: "skill-categories.ts",
43
+ SKILL_RULES_TS: "skill-rules.ts",
45
44
  AGENT_METADATA_YAML: "metadata.yaml",
46
45
  PLUGIN_JSON: "plugin.json",
46
+ CONFIG_TS: "config.ts",
47
+ CONFIG_TYPES_TS: "config-types.ts",
47
48
  CLAUDE_MD: "CLAUDE.md",
48
49
  REFERENCE_MD: "reference.md",
49
50
  INTRO_MD: "intro.md",
@@ -130,10 +131,11 @@ var DEFAULT_BRANDING = {
130
131
  NAME: "Agents Inc.",
131
132
  TAGLINE: "AI-powered development tools"
132
133
  };
133
- var DEFAULT_PUBLIC_SOURCE_NAME = "Agents Inc";
134
+ var DEFAULT_PUBLIC_SOURCE_NAME = "agents-inc";
134
135
  var SOURCE_DISPLAY_NAMES = {
135
136
  public: "Public",
136
- local: "Local"
137
+ local: "Local",
138
+ "agents-inc": "Agents Inc"
137
139
  };
138
140
  var CLI_COLORS = {
139
141
  PRIMARY: "cyan",
@@ -171,14 +173,14 @@ export {
171
173
  PLUGIN_MANIFEST_DIR,
172
174
  PLUGIN_MANIFEST_FILE,
173
175
  DEFAULT_PLUGIN_NAME,
176
+ GLOBAL_INSTALL_ROOT,
174
177
  CACHE_DIR,
175
178
  CLI_BIN_NAME,
176
- SKILL_CATEGORIES_YAML_PATH,
177
- SKILL_RULES_YAML_PATH,
179
+ SKILL_CATEGORIES_PATH,
180
+ SKILL_RULES_PATH,
178
181
  STACKS_FILE_PATH,
179
182
  SKILLS_DIR_PATH,
180
183
  LOCAL_SKILLS_PATH,
181
- ARCHIVED_SKILLS_DIR_NAME,
182
184
  DIRS,
183
185
  STANDARD_FILES,
184
186
  STANDARD_DIRS,
@@ -210,4 +212,4 @@ export {
210
212
  ASCII_LOGO,
211
213
  DEFAULT_PRESELECTED_SKILLS
212
214
  };
213
- //# sourceMappingURL=chunk-AWP5A6IM.js.map
215
+ //# sourceMappingURL=chunk-6OWHQ7HM.js.map