@claude-collective/cli 0.21.0 → 0.25.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 (292) hide show
  1. package/CHANGELOG.md +174 -0
  2. package/README.md +41 -27
  3. package/config/skills-matrix.yaml +38 -37
  4. package/config/stacks.yaml +8 -14
  5. package/dist/{chunk-ZNIDWLL5.js → chunk-3X5D7RM5.js} +4 -3
  6. package/dist/chunk-3X5D7RM5.js.map +1 -0
  7. package/dist/chunk-4S4FCAA2.js +100 -0
  8. package/dist/chunk-4S4FCAA2.js.map +1 -0
  9. package/dist/chunk-4WGN6SUE.js +197 -0
  10. package/dist/chunk-4WGN6SUE.js.map +1 -0
  11. package/dist/{chunk-DHET7RCE.js → chunk-AWKZ5BDL.js} +9 -2
  12. package/dist/{chunk-DHET7RCE.js.map → chunk-AWKZ5BDL.js.map} +1 -1
  13. package/dist/{chunk-6Q3Y7KVB.js → chunk-DBRUQQUF.js} +8 -2
  14. package/dist/chunk-DBRUQQUF.js.map +1 -0
  15. package/dist/{chunk-OQYYMQJR.js → chunk-ETCVEV3S.js} +8 -11
  16. package/dist/chunk-ETCVEV3S.js.map +1 -0
  17. package/dist/{chunk-ZSVMS677.js → chunk-F4RD5FYM.js} +2 -2
  18. package/dist/chunk-F4RD5FYM.js.map +1 -0
  19. package/dist/{chunk-5KXUDHAB.js → chunk-GGFOD5PK.js} +6 -9
  20. package/dist/chunk-GGFOD5PK.js.map +1 -0
  21. package/dist/{chunk-UMORK7OK.js → chunk-H7SSBSPR.js} +2 -2
  22. package/dist/chunk-H7SSBSPR.js.map +1 -0
  23. package/dist/chunk-HWD32NP7.js +19 -0
  24. package/dist/chunk-HWD32NP7.js.map +1 -0
  25. package/dist/{chunk-HGCBZUH5.js → chunk-IAYAE6MG.js} +9 -10
  26. package/dist/chunk-IAYAE6MG.js.map +1 -0
  27. package/dist/{chunk-RTE64SJA.js → chunk-IXBCRT3F.js} +2 -2
  28. package/dist/chunk-IXBCRT3F.js.map +1 -0
  29. package/dist/{chunk-WFEFICFM.js → chunk-KWYO3M5Q.js} +5 -5
  30. package/dist/chunk-KWYO3M5Q.js.map +1 -0
  31. package/dist/{chunk-HEOHU5EZ.js → chunk-MCTSHLAF.js} +22 -11
  32. package/dist/chunk-MCTSHLAF.js.map +1 -0
  33. package/dist/chunk-MH66WDFV.js +251 -0
  34. package/dist/chunk-MH66WDFV.js.map +1 -0
  35. package/dist/{chunk-2LSGX6R4.js → chunk-MTPM7BX5.js} +83 -25
  36. package/dist/chunk-MTPM7BX5.js.map +1 -0
  37. package/dist/chunk-NQJ47R4N.js +1092 -0
  38. package/dist/chunk-NQJ47R4N.js.map +1 -0
  39. package/dist/chunk-NRC7XYCI.js +211 -0
  40. package/dist/chunk-NRC7XYCI.js.map +1 -0
  41. package/dist/{chunk-FJFEKPXF.js → chunk-O6ZTD7ZI.js} +14 -3
  42. package/dist/chunk-O6ZTD7ZI.js.map +1 -0
  43. package/dist/chunk-OBXAY23Y.js +56 -0
  44. package/dist/chunk-OBXAY23Y.js.map +1 -0
  45. package/dist/{chunk-XY3XDVMI.js → chunk-QR2EBWL2.js} +3 -3
  46. package/dist/{chunk-66UDJBF6.js → chunk-REJGRCVQ.js} +2 -2
  47. package/dist/{chunk-CBLPAMZO.js → chunk-TMED5DQ2.js} +68 -42
  48. package/dist/chunk-TMED5DQ2.js.map +1 -0
  49. package/dist/{chunk-Q3J43SF3.js → chunk-U7HFKR74.js} +2 -2
  50. package/dist/chunk-U7HFKR74.js.map +1 -0
  51. package/dist/{chunk-3EHUF54X.js → chunk-UEMRJI2K.js} +17 -4
  52. package/dist/chunk-UEMRJI2K.js.map +1 -0
  53. package/dist/{chunk-Z2CWURZ6.js → chunk-UNN7523L.js} +2 -2
  54. package/dist/chunk-V2ZIH7HV.js +29 -0
  55. package/dist/chunk-V2ZIH7HV.js.map +1 -0
  56. package/dist/{chunk-ZEI3ZUDU.js → chunk-VVYNZZUX.js} +7 -15
  57. package/dist/chunk-VVYNZZUX.js.map +1 -0
  58. package/dist/chunk-WXS4S3MA.js +220 -0
  59. package/dist/chunk-WXS4S3MA.js.map +1 -0
  60. package/dist/{chunk-A46TPNBJ.js → chunk-XENOESJZ.js} +7 -16
  61. package/dist/chunk-XENOESJZ.js.map +1 -0
  62. package/dist/chunk-YDBSSAJ6.js +4207 -0
  63. package/dist/chunk-YDBSSAJ6.js.map +1 -0
  64. package/dist/chunk-ZDREFYD2.js +696 -0
  65. package/dist/chunk-ZDREFYD2.js.map +1 -0
  66. package/dist/chunk-ZW2PELOH.js +197 -0
  67. package/dist/chunk-ZW2PELOH.js.map +1 -0
  68. package/dist/cli/defaults/agent-mappings.yaml +0 -1
  69. package/dist/commands/build/marketplace.js +15 -13
  70. package/dist/commands/build/marketplace.js.map +1 -1
  71. package/dist/commands/build/plugins.js +13 -229
  72. package/dist/commands/build/plugins.js.map +1 -1
  73. package/dist/commands/build/stack.js +11 -18
  74. package/dist/commands/build/stack.js.map +1 -1
  75. package/dist/commands/compile.js +36 -58
  76. package/dist/commands/compile.js.map +1 -1
  77. package/dist/commands/config/get.js +8 -8
  78. package/dist/commands/config/get.js.map +1 -1
  79. package/dist/commands/config/index.js +7 -7
  80. package/dist/commands/config/index.js.map +1 -1
  81. package/dist/commands/config/path.js +6 -6
  82. package/dist/commands/config/path.js.map +1 -1
  83. package/dist/commands/config/set-project.js +8 -8
  84. package/dist/commands/config/set-project.js.map +1 -1
  85. package/dist/commands/config/show.js +7 -7
  86. package/dist/commands/config/unset-project.js +8 -8
  87. package/dist/commands/config/unset-project.js.map +1 -1
  88. package/dist/commands/diff.js +10 -16
  89. package/dist/commands/diff.js.map +1 -1
  90. package/dist/commands/doctor.js +18 -51
  91. package/dist/commands/doctor.js.map +1 -1
  92. package/dist/commands/edit.js +87 -57
  93. package/dist/commands/edit.js.map +1 -1
  94. package/dist/commands/eject.js +17 -49
  95. package/dist/commands/eject.js.map +1 -1
  96. package/dist/commands/import/skill.js +26 -26
  97. package/dist/commands/import/skill.js.map +1 -1
  98. package/dist/commands/info.js +15 -17
  99. package/dist/commands/info.js.map +1 -1
  100. package/dist/commands/init.js +45 -722
  101. package/dist/commands/init.js.map +1 -1
  102. package/dist/commands/list.js +8 -87
  103. package/dist/commands/list.js.map +1 -1
  104. package/dist/commands/new/agent.js +8 -12
  105. package/dist/commands/new/agent.js.map +1 -1
  106. package/dist/commands/new/skill.js +6 -6
  107. package/dist/commands/new/skill.js.map +1 -1
  108. package/dist/commands/outdated.js +15 -19
  109. package/dist/commands/outdated.js.map +1 -1
  110. package/dist/commands/search.js +21 -34
  111. package/dist/commands/search.js.map +1 -1
  112. package/dist/commands/uninstall.js +15 -14
  113. package/dist/commands/uninstall.js.map +1 -1
  114. package/dist/commands/update.js +13 -24
  115. package/dist/commands/update.js.map +1 -1
  116. package/dist/commands/validate.js +44 -487
  117. package/dist/commands/validate.js.map +1 -1
  118. package/dist/commands/version/bump.js +11 -11
  119. package/dist/commands/version/bump.js.map +1 -1
  120. package/dist/commands/version/index.js +9 -10
  121. package/dist/commands/version/index.js.map +1 -1
  122. package/dist/commands/version/set.js +10 -8
  123. package/dist/commands/version/set.js.map +1 -1
  124. package/dist/commands/version/show.js +9 -10
  125. package/dist/commands/version/show.js.map +1 -1
  126. package/dist/components/common/confirm.js +2 -2
  127. package/dist/components/common/confirm.test.js +203 -0
  128. package/dist/components/common/confirm.test.js.map +1 -0
  129. package/dist/components/common/message.js +1 -1
  130. package/dist/components/common/spinner.js +1 -1
  131. package/dist/components/common/spinner.js.map +1 -1
  132. package/dist/components/skill-search/skill-search.js +3 -3
  133. package/dist/components/wizard/category-grid.js +2 -2
  134. package/dist/components/wizard/category-grid.test.js +132 -78
  135. package/dist/components/wizard/category-grid.test.js.map +1 -1
  136. package/dist/components/wizard/menu-item.js +2 -2
  137. package/dist/components/wizard/search-modal.js +9 -0
  138. package/dist/components/wizard/search-modal.js.map +1 -0
  139. package/dist/components/wizard/search-modal.test.js +216 -0
  140. package/dist/components/wizard/search-modal.test.js.map +1 -0
  141. package/dist/components/wizard/section-progress.js +2 -2
  142. package/dist/components/wizard/section-progress.test.js +4 -4
  143. package/dist/components/wizard/section-progress.test.js.map +1 -1
  144. package/dist/components/wizard/source-grid.js +10 -0
  145. package/dist/components/wizard/source-grid.js.map +1 -0
  146. package/dist/components/wizard/source-grid.test.js +500 -0
  147. package/dist/components/wizard/source-grid.test.js.map +1 -0
  148. package/dist/components/wizard/step-approach.js +7 -6
  149. package/dist/components/wizard/step-approach.test.js +115 -0
  150. package/dist/components/wizard/step-approach.test.js.map +1 -0
  151. package/dist/components/wizard/step-build.js +9 -4
  152. package/dist/components/wizard/step-build.test.js +103 -122
  153. package/dist/components/wizard/step-build.test.js.map +1 -1
  154. package/dist/components/wizard/step-confirm.js +3 -2
  155. package/dist/components/wizard/step-confirm.test.js +364 -0
  156. package/dist/components/wizard/step-confirm.test.js.map +1 -0
  157. package/dist/components/wizard/step-refine.js +2 -2
  158. package/dist/components/wizard/step-refine.test.js +19 -13
  159. package/dist/components/wizard/step-refine.test.js.map +1 -1
  160. package/dist/components/wizard/step-settings.js +14 -0
  161. package/dist/components/wizard/step-settings.js.map +1 -0
  162. package/dist/components/wizard/step-settings.test.js +240 -0
  163. package/dist/components/wizard/step-settings.test.js.map +1 -0
  164. package/dist/components/wizard/step-sources.js +17 -0
  165. package/dist/components/wizard/step-sources.js.map +1 -0
  166. package/dist/components/wizard/step-sources.test.js +290 -0
  167. package/dist/components/wizard/step-sources.test.js.map +1 -0
  168. package/dist/components/wizard/step-stack.js +7 -6
  169. package/dist/components/wizard/step-stack.test.js +344 -0
  170. package/dist/components/wizard/step-stack.test.js.map +1 -0
  171. package/dist/components/wizard/view-title.js +2 -2
  172. package/dist/components/wizard/wizard-layout.js +6 -5
  173. package/dist/components/wizard/wizard-tabs.js +2 -2
  174. package/dist/components/wizard/wizard-tabs.test.js +292 -0
  175. package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
  176. package/dist/components/wizard/wizard.js +22 -14
  177. package/dist/config/skills-matrix.yaml +38 -37
  178. package/dist/config/stacks.yaml +8 -14
  179. package/dist/hooks/init.js +5 -5
  180. package/dist/hooks/init.js.map +1 -1
  181. package/dist/index.js +1 -1
  182. package/dist/index.js.map +1 -1
  183. package/dist/{magic-string.es-RGXYGAW3.js → magic-string.es-PAH2SOTR.js} +2 -2
  184. package/dist/source-manager-DSYZEVGZ.js +16 -0
  185. package/dist/source-manager-DSYZEVGZ.js.map +1 -0
  186. package/dist/src/agents/developer/api-developer/agent.yaml +1 -1
  187. package/dist/src/agents/developer/cli-developer/agent.yaml +1 -1
  188. package/dist/src/agents/developer/web-architecture/agent.yaml +1 -1
  189. package/dist/src/agents/developer/web-developer/agent.yaml +1 -1
  190. package/dist/src/agents/meta/agent-summoner/agent.yaml +1 -1
  191. package/dist/src/agents/meta/documentor/agent.yaml +1 -1
  192. package/dist/src/agents/meta/skill-summoner/agent.yaml +1 -1
  193. package/dist/src/agents/migration/cli-migrator/agent.yaml +1 -1
  194. package/dist/src/agents/pattern/pattern-scout/agent.yaml +1 -1
  195. package/dist/src/agents/pattern/web-pattern-critique/agent.yaml +1 -1
  196. package/dist/src/agents/planning/web-pm/agent.yaml +1 -1
  197. package/dist/src/agents/researcher/api-researcher/agent.yaml +1 -1
  198. package/dist/src/agents/researcher/web-researcher/agent.yaml +1 -1
  199. package/dist/src/agents/reviewer/api-reviewer/agent.yaml +1 -1
  200. package/dist/src/agents/reviewer/cli-reviewer/agent.yaml +1 -1
  201. package/dist/src/agents/reviewer/web-reviewer/agent.yaml +1 -1
  202. package/dist/src/agents/tester/cli-tester/agent.yaml +1 -1
  203. package/dist/src/agents/tester/web-tester/agent.yaml +1 -1
  204. package/dist/stores/wizard-store.js +4 -3
  205. package/dist/stores/wizard-store.test.js +51 -82
  206. package/dist/stores/wizard-store.test.js.map +1 -1
  207. package/package.json +5 -3
  208. package/src/agents/developer/api-developer/agent.yaml +1 -1
  209. package/src/agents/developer/cli-developer/agent.yaml +1 -1
  210. package/src/agents/developer/web-architecture/agent.yaml +1 -1
  211. package/src/agents/developer/web-developer/agent.yaml +1 -1
  212. package/src/agents/meta/agent-summoner/agent.yaml +1 -1
  213. package/src/agents/meta/documentor/agent.yaml +1 -1
  214. package/src/agents/meta/skill-summoner/agent.yaml +1 -1
  215. package/src/agents/migration/cli-migrator/agent.yaml +1 -1
  216. package/src/agents/pattern/pattern-scout/agent.yaml +1 -1
  217. package/src/agents/pattern/web-pattern-critique/agent.yaml +1 -1
  218. package/src/agents/planning/web-pm/agent.yaml +1 -1
  219. package/src/agents/researcher/api-researcher/agent.yaml +1 -1
  220. package/src/agents/researcher/web-researcher/agent.yaml +1 -1
  221. package/src/agents/reviewer/api-reviewer/agent.yaml +1 -1
  222. package/src/agents/reviewer/cli-reviewer/agent.yaml +1 -1
  223. package/src/agents/reviewer/web-reviewer/agent.yaml +1 -1
  224. package/src/agents/tester/cli-tester/agent.yaml +1 -1
  225. package/src/agents/tester/web-tester/agent.yaml +1 -1
  226. package/dist/chunk-2LSGX6R4.js.map +0 -1
  227. package/dist/chunk-2OKUEELH.js +0 -32
  228. package/dist/chunk-2OKUEELH.js.map +0 -1
  229. package/dist/chunk-374JNMR6.js +0 -212
  230. package/dist/chunk-374JNMR6.js.map +0 -1
  231. package/dist/chunk-3EHUF54X.js.map +0 -1
  232. package/dist/chunk-3XR4PALU.js +0 -529
  233. package/dist/chunk-3XR4PALU.js.map +0 -1
  234. package/dist/chunk-5K2ZLUO5.js +0 -57
  235. package/dist/chunk-5K2ZLUO5.js.map +0 -1
  236. package/dist/chunk-5KXUDHAB.js.map +0 -1
  237. package/dist/chunk-6Q3Y7KVB.js.map +0 -1
  238. package/dist/chunk-7SLV7CMF.js +0 -615
  239. package/dist/chunk-7SLV7CMF.js.map +0 -1
  240. package/dist/chunk-A46TPNBJ.js.map +0 -1
  241. package/dist/chunk-AL74GBW4.js +0 -69
  242. package/dist/chunk-AL74GBW4.js.map +0 -1
  243. package/dist/chunk-BQX23RBV.js +0 -191
  244. package/dist/chunk-BQX23RBV.js.map +0 -1
  245. package/dist/chunk-CA4LH4LI.js +0 -132
  246. package/dist/chunk-CA4LH4LI.js.map +0 -1
  247. package/dist/chunk-CBLPAMZO.js.map +0 -1
  248. package/dist/chunk-CKPQHGXR.js +0 -417
  249. package/dist/chunk-CKPQHGXR.js.map +0 -1
  250. package/dist/chunk-CXOFOJCN.js +0 -80
  251. package/dist/chunk-CXOFOJCN.js.map +0 -1
  252. package/dist/chunk-EHGD7HIE.js +0 -104
  253. package/dist/chunk-EHGD7HIE.js.map +0 -1
  254. package/dist/chunk-EHS3TWWP.js +0 -95
  255. package/dist/chunk-EHS3TWWP.js.map +0 -1
  256. package/dist/chunk-FJFEKPXF.js.map +0 -1
  257. package/dist/chunk-HEOHU5EZ.js.map +0 -1
  258. package/dist/chunk-HGCBZUH5.js.map +0 -1
  259. package/dist/chunk-HPGFY5ZN.js +0 -114
  260. package/dist/chunk-HPGFY5ZN.js.map +0 -1
  261. package/dist/chunk-INJ2EFRW.js +0 -127
  262. package/dist/chunk-INJ2EFRW.js.map +0 -1
  263. package/dist/chunk-IOBFMF6X.js +0 -61
  264. package/dist/chunk-IOBFMF6X.js.map +0 -1
  265. package/dist/chunk-KH3HA7J7.js +0 -116
  266. package/dist/chunk-KH3HA7J7.js.map +0 -1
  267. package/dist/chunk-N6JNE326.js +0 -261
  268. package/dist/chunk-N6JNE326.js.map +0 -1
  269. package/dist/chunk-NAGU7TVZ.js +0 -36
  270. package/dist/chunk-NAGU7TVZ.js.map +0 -1
  271. package/dist/chunk-OQYYMQJR.js.map +0 -1
  272. package/dist/chunk-PLZOUVDD.js +0 -419
  273. package/dist/chunk-PLZOUVDD.js.map +0 -1
  274. package/dist/chunk-Q3J43SF3.js.map +0 -1
  275. package/dist/chunk-RTE64SJA.js.map +0 -1
  276. package/dist/chunk-T25OEQFI.js +0 -26
  277. package/dist/chunk-T25OEQFI.js.map +0 -1
  278. package/dist/chunk-UMORK7OK.js.map +0 -1
  279. package/dist/chunk-VFHWU7JU.js +0 -287
  280. package/dist/chunk-VFHWU7JU.js.map +0 -1
  281. package/dist/chunk-VS4GVTZE.js +0 -91
  282. package/dist/chunk-VS4GVTZE.js.map +0 -1
  283. package/dist/chunk-WFEFICFM.js.map +0 -1
  284. package/dist/chunk-WG6KIAPK.js +0 -54
  285. package/dist/chunk-WG6KIAPK.js.map +0 -1
  286. package/dist/chunk-ZEI3ZUDU.js.map +0 -1
  287. package/dist/chunk-ZNIDWLL5.js.map +0 -1
  288. package/dist/chunk-ZSVMS677.js.map +0 -1
  289. /package/dist/{chunk-XY3XDVMI.js.map → chunk-QR2EBWL2.js.map} +0 -0
  290. /package/dist/{chunk-66UDJBF6.js.map → chunk-REJGRCVQ.js.map} +0 -0
  291. /package/dist/{chunk-Z2CWURZ6.js.map → chunk-UNN7523L.js.map} +0 -0
  292. /package/dist/{magic-string.es-RGXYGAW3.js.map → magic-string.es-PAH2SOTR.js.map} +0 -0
@@ -0,0 +1,696 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ init_esm_shims
4
+ } from "./chunk-AWKZ5BDL.js";
5
+
6
+ // src/cli/utils/logger.ts
7
+ init_esm_shims();
8
+ var verboseMode = false;
9
+ function setVerbose(enabled) {
10
+ verboseMode = enabled;
11
+ }
12
+ function verbose(msg) {
13
+ if (verboseMode) {
14
+ console.log(` ${msg}`);
15
+ }
16
+ }
17
+ function warn(msg) {
18
+ console.warn(` Warning: ${msg}`);
19
+ }
20
+
21
+ // src/cli/utils/fs.ts
22
+ init_esm_shims();
23
+ import fs from "fs-extra";
24
+ import fg from "fast-glob";
25
+ import path from "path";
26
+ async function readFile(filePath) {
27
+ return fs.readFile(filePath, "utf-8");
28
+ }
29
+ async function readFileOptional(filePath, fallback = "") {
30
+ try {
31
+ return await fs.readFile(filePath, "utf-8");
32
+ } catch {
33
+ return fallback;
34
+ }
35
+ }
36
+ async function fileExists(filePath) {
37
+ return fs.pathExists(filePath);
38
+ }
39
+ async function directoryExists(dirPath) {
40
+ try {
41
+ const stat = await fs.stat(dirPath);
42
+ return stat.isDirectory();
43
+ } catch {
44
+ return false;
45
+ }
46
+ }
47
+ async function listDirectories(dirPath) {
48
+ try {
49
+ const entries = await fs.readdir(dirPath, { withFileTypes: true });
50
+ return entries.filter((e) => e.isDirectory()).map((e) => e.name);
51
+ } catch {
52
+ return [];
53
+ }
54
+ }
55
+ async function glob(pattern, cwd) {
56
+ return fg(pattern, { cwd, onlyFiles: true });
57
+ }
58
+ async function writeFile(filePath, content) {
59
+ await fs.ensureDir(path.dirname(filePath));
60
+ await fs.writeFile(filePath, content, "utf-8");
61
+ }
62
+ async function ensureDir(dirPath) {
63
+ await fs.ensureDir(dirPath);
64
+ }
65
+ async function remove(filePath) {
66
+ await fs.remove(filePath);
67
+ }
68
+ async function copy(src, dest) {
69
+ await fs.copy(src, dest);
70
+ }
71
+
72
+ // src/cli/lib/schemas.ts
73
+ init_esm_shims();
74
+ import { z } from "zod";
75
+ var domainSchema = z.enum([
76
+ "web",
77
+ "web-extras",
78
+ "api",
79
+ "cli",
80
+ "mobile",
81
+ "shared"
82
+ ]);
83
+ var skillSourceTypeSchema = z.enum([
84
+ "public",
85
+ "private",
86
+ "local"
87
+ ]);
88
+ var skillSourceSchema = z.object({
89
+ name: z.string(),
90
+ type: skillSourceTypeSchema,
91
+ url: z.string().optional(),
92
+ version: z.string().optional(),
93
+ installed: z.boolean(),
94
+ installMode: z.enum(["plugin", "local"]).optional()
95
+ }).passthrough();
96
+ var boundSkillSchema = z.object({
97
+ id: z.string(),
98
+ sourceUrl: z.string(),
99
+ sourceName: z.string(),
100
+ boundTo: z.string(),
101
+ description: z.string().optional()
102
+ });
103
+ var subcategorySchema = z.enum([
104
+ // Web
105
+ "framework",
106
+ "meta-framework",
107
+ "styling",
108
+ "client-state",
109
+ "server-state",
110
+ "forms",
111
+ "testing",
112
+ "ui-components",
113
+ "mocking",
114
+ "error-handling",
115
+ "i18n",
116
+ "file-upload",
117
+ "files",
118
+ "utilities",
119
+ "realtime",
120
+ "animation",
121
+ "pwa",
122
+ "accessibility",
123
+ "web-performance",
124
+ // API
125
+ "api",
126
+ "database",
127
+ "auth",
128
+ "observability",
129
+ "analytics",
130
+ "email",
131
+ "performance",
132
+ // Mobile
133
+ "mobile-framework",
134
+ // Shared / Infrastructure
135
+ "monorepo",
136
+ "tooling",
137
+ "security",
138
+ "methodology",
139
+ "research",
140
+ "reviewing",
141
+ "ci-cd",
142
+ // CLI
143
+ "cli-framework",
144
+ "cli-prompts",
145
+ "cli-testing"
146
+ ]);
147
+ var agentNameSchema = z.enum([
148
+ // Developers
149
+ "web-developer",
150
+ "api-developer",
151
+ "cli-developer",
152
+ "web-architecture",
153
+ // Meta
154
+ "agent-summoner",
155
+ "documentor",
156
+ "skill-summoner",
157
+ // Migration
158
+ "cli-migrator",
159
+ // Pattern
160
+ "pattern-scout",
161
+ "web-pattern-critique",
162
+ // Planning
163
+ "web-pm",
164
+ // Researchers
165
+ "api-researcher",
166
+ "web-researcher",
167
+ // Reviewers
168
+ "api-reviewer",
169
+ "cli-reviewer",
170
+ "web-reviewer",
171
+ // Testers
172
+ "cli-tester",
173
+ "web-tester"
174
+ ]);
175
+ var modelNameSchema = z.enum([
176
+ "sonnet",
177
+ "opus",
178
+ "haiku",
179
+ "inherit"
180
+ ]);
181
+ var permissionModeSchema = z.enum([
182
+ "default",
183
+ "acceptEdits",
184
+ "dontAsk",
185
+ "bypassPermissions",
186
+ "plan",
187
+ "delegate"
188
+ ]);
189
+ var skillDisplayNameSchema = z.enum([
190
+ // Frameworks
191
+ "react",
192
+ "vue",
193
+ "angular",
194
+ "solidjs",
195
+ // Meta-frameworks
196
+ "nextjs-app-router",
197
+ "nextjs-server-actions",
198
+ "remix",
199
+ "nuxt",
200
+ // Styling
201
+ "scss-modules",
202
+ "cva",
203
+ "tailwind",
204
+ // Client State
205
+ "zustand",
206
+ "redux-toolkit",
207
+ "pinia",
208
+ "ngrx-signalstore",
209
+ "jotai",
210
+ "mobx",
211
+ // Server State / Data Fetching
212
+ "react-query",
213
+ "swr",
214
+ "graphql-apollo",
215
+ "graphql-urql",
216
+ "trpc",
217
+ // Forms & Validation
218
+ "react-hook-form",
219
+ "vee-validate",
220
+ "zod-validation",
221
+ // Testing
222
+ "vitest",
223
+ "playwright-e2e",
224
+ "cypress-e2e",
225
+ "react-testing-library",
226
+ "vue-test-utils",
227
+ "msw",
228
+ // UI Components
229
+ "shadcn-ui",
230
+ "tanstack-table",
231
+ "radix-ui",
232
+ // Backend - API Framework
233
+ "hono",
234
+ "express",
235
+ "fastify",
236
+ // Backend - Database
237
+ "drizzle",
238
+ "prisma",
239
+ // Backend - Auth
240
+ "better-auth",
241
+ // Backend - Observability
242
+ "axiom-pino-sentry",
243
+ // Backend - Analytics
244
+ "posthog",
245
+ "posthog-flags",
246
+ // Backend - Email
247
+ "resend",
248
+ // Backend - CI/CD
249
+ "github-actions",
250
+ // Mobile
251
+ "react-native",
252
+ "expo",
253
+ // Setup / Infrastructure
254
+ "turborepo",
255
+ "tooling",
256
+ "posthog-setup",
257
+ "env",
258
+ "observability-setup",
259
+ "email-setup",
260
+ // Animation / PWA / Realtime / etc.
261
+ "framer-motion",
262
+ "css-animations",
263
+ "view-transitions",
264
+ "storybook",
265
+ "error-boundaries",
266
+ "accessibility",
267
+ "websockets",
268
+ "sse",
269
+ "socket-io",
270
+ "service-workers",
271
+ "file-upload",
272
+ "image-handling",
273
+ "date-fns",
274
+ // Backend-specific category skills
275
+ "api-testing",
276
+ "api-performance",
277
+ "web-performance",
278
+ // Security
279
+ "security",
280
+ // CLI
281
+ "commander",
282
+ "cli-commander",
283
+ "oclif",
284
+ // Reviewing / Meta
285
+ "reviewing",
286
+ "cli-reviewing",
287
+ "research-methodology",
288
+ // Methodology
289
+ "investigation-requirements",
290
+ "anti-over-engineering",
291
+ "success-criteria",
292
+ "write-verification",
293
+ "improvement-protocol",
294
+ "context-management"
295
+ ]);
296
+ var SKILL_ID_PATTERN = /^(web|api|cli|mobile|infra|meta|security)-.+-.+$/;
297
+ var skillIdSchema = z.string().regex(
298
+ SKILL_ID_PATTERN,
299
+ "Must be a valid skill ID (e.g., 'web-framework-react')"
300
+ );
301
+ var categoryPathSchema = z.string().refine(
302
+ (val) => {
303
+ if (val === "local") return true;
304
+ if (/^(web|api|cli|mobile|infra|meta|security)\/.+$/.test(val)) return true;
305
+ if (/^(web|api|cli|mobile|infra|meta|security)-.+$/.test(val)) return true;
306
+ return subcategorySchema.safeParse(val).success;
307
+ },
308
+ {
309
+ message: "Must be a valid category path (e.g., 'web/framework', 'web-framework', 'testing', or 'local')"
310
+ }
311
+ );
312
+ var agentHookActionSchema = z.object({
313
+ type: z.enum(["command", "script", "prompt"]),
314
+ command: z.string().optional(),
315
+ script: z.string().optional(),
316
+ prompt: z.string().optional()
317
+ });
318
+ var agentHookDefinitionSchema = z.object({
319
+ matcher: z.string().optional(),
320
+ hooks: z.array(agentHookActionSchema).optional()
321
+ });
322
+ var hooksRecordSchema = z.record(z.string(), z.array(agentHookDefinitionSchema));
323
+ var skillAssignmentSchema = z.object({
324
+ id: skillIdSchema,
325
+ preloaded: z.boolean().optional(),
326
+ local: z.boolean().optional(),
327
+ path: z.string().optional()
328
+ });
329
+ var skillFrontmatterSchema = z.object({
330
+ name: skillIdSchema,
331
+ description: z.string(),
332
+ model: modelNameSchema.optional()
333
+ });
334
+ var skillFrontmatterLoaderSchema = z.object({
335
+ name: z.string(),
336
+ description: z.string(),
337
+ model: modelNameSchema.optional()
338
+ });
339
+ var skillMetadataConfigSchema = z.object({
340
+ category: categoryPathSchema.optional(),
341
+ category_exclusive: z.boolean().optional(),
342
+ author: z.string().optional(),
343
+ version: z.string().optional(),
344
+ tags: z.array(z.string()).optional(),
345
+ requires: z.array(skillIdSchema).optional(),
346
+ compatible_with: z.array(skillIdSchema).optional(),
347
+ conflicts_with: z.array(skillIdSchema).optional()
348
+ });
349
+ var pluginAuthorSchema = z.object({
350
+ name: z.string(),
351
+ email: z.string().optional()
352
+ });
353
+ var pluginManifestSchema = z.object({
354
+ name: z.string(),
355
+ version: z.string().optional(),
356
+ description: z.string().optional(),
357
+ author: pluginAuthorSchema.optional(),
358
+ keywords: z.array(z.string()).optional(),
359
+ commands: z.union([z.string(), z.array(z.string())]).optional(),
360
+ agents: z.union([z.string(), z.array(z.string())]).optional(),
361
+ skills: z.union([z.string(), z.array(z.string())]).optional(),
362
+ hooks: z.union([z.string(), hooksRecordSchema]).optional()
363
+ });
364
+ var agentYamlConfigSchema = z.object({
365
+ id: agentNameSchema,
366
+ title: z.string(),
367
+ description: z.string(),
368
+ model: modelNameSchema.optional(),
369
+ tools: z.array(z.string()),
370
+ disallowed_tools: z.array(z.string()).optional(),
371
+ permission_mode: permissionModeSchema.optional(),
372
+ hooks: hooksRecordSchema.optional(),
373
+ output_format: z.string().optional()
374
+ });
375
+ var projectConfigSchema = z.object({
376
+ version: z.literal("1").optional(),
377
+ name: z.string(),
378
+ description: z.string().optional(),
379
+ agents: z.array(z.string()),
380
+ skills: z.array(skillIdSchema),
381
+ author: z.string().optional(),
382
+ installMode: z.enum(["local", "plugin"]).optional(),
383
+ stack: z.record(z.string(), z.record(subcategorySchema, skillIdSchema)).optional(),
384
+ source: z.string().optional(),
385
+ marketplace: z.string().optional(),
386
+ agents_source: z.string().optional()
387
+ });
388
+ var projectConfigLoaderSchema = z.object({
389
+ version: z.literal("1").optional(),
390
+ name: z.string().optional(),
391
+ description: z.string().optional(),
392
+ agents: z.array(z.string()).optional(),
393
+ skills: z.array(skillIdSchema).optional(),
394
+ author: z.string().optional(),
395
+ installMode: z.enum(["local", "plugin"]).optional(),
396
+ stack: z.record(z.string(), z.record(z.string(), skillIdSchema)).optional(),
397
+ source: z.string().optional(),
398
+ marketplace: z.string().optional(),
399
+ agents_source: z.string().optional()
400
+ }).passthrough();
401
+ var validationResultSchema = z.object({
402
+ valid: z.boolean(),
403
+ errors: z.array(z.string()),
404
+ warnings: z.array(z.string())
405
+ });
406
+ var categoryDefinitionSchema = z.object({
407
+ id: subcategorySchema,
408
+ displayName: z.string(),
409
+ description: z.string(),
410
+ domain: domainSchema.optional(),
411
+ parent_domain: domainSchema.optional(),
412
+ exclusive: z.boolean(),
413
+ required: z.boolean(),
414
+ order: z.number(),
415
+ icon: z.string().optional()
416
+ });
417
+ var skillRefInYaml = z.string();
418
+ var conflictRuleSchema = z.object({
419
+ skills: z.array(skillRefInYaml),
420
+ reason: z.string()
421
+ });
422
+ var discourageRuleSchema = z.object({
423
+ skills: z.array(skillRefInYaml),
424
+ reason: z.string()
425
+ });
426
+ var recommendRuleSchema = z.object({
427
+ when: skillRefInYaml,
428
+ suggest: z.array(skillRefInYaml),
429
+ reason: z.string()
430
+ });
431
+ var requireRuleSchema = z.object({
432
+ skill: skillRefInYaml,
433
+ needs: z.array(skillRefInYaml),
434
+ needs_any: z.boolean().optional(),
435
+ reason: z.string()
436
+ });
437
+ var alternativeGroupSchema = z.object({
438
+ purpose: z.string(),
439
+ skills: z.array(skillRefInYaml)
440
+ });
441
+ var relationshipDefinitionsSchema = z.object({
442
+ conflicts: z.array(conflictRuleSchema),
443
+ discourages: z.array(discourageRuleSchema),
444
+ recommends: z.array(recommendRuleSchema),
445
+ requires: z.array(requireRuleSchema),
446
+ alternatives: z.array(alternativeGroupSchema)
447
+ });
448
+ var skillsMatrixConfigSchema = z.object({
449
+ version: z.string(),
450
+ categories: z.record(subcategorySchema, categoryDefinitionSchema),
451
+ relationships: relationshipDefinitionsSchema,
452
+ skill_aliases: z.record(skillDisplayNameSchema, skillIdSchema)
453
+ });
454
+ var localRawMetadataSchema = z.object({
455
+ cli_name: z.string().optional(),
456
+ cli_description: z.string().optional(),
457
+ category: categoryPathSchema.optional(),
458
+ category_exclusive: z.boolean().optional(),
459
+ usage_guidance: z.string().optional(),
460
+ tags: z.array(z.string()).optional(),
461
+ compatible_with: z.array(skillIdSchema).optional(),
462
+ conflicts_with: z.array(skillIdSchema).optional(),
463
+ requires: z.array(skillIdSchema).optional(),
464
+ requires_setup: z.array(skillIdSchema).optional(),
465
+ provides_setup_for: z.array(skillIdSchema).optional()
466
+ }).passthrough();
467
+ var localSkillMetadataSchema = z.object({
468
+ forked_from: z.object({
469
+ skill_id: skillIdSchema,
470
+ content_hash: z.string(),
471
+ date: z.string()
472
+ }).optional()
473
+ }).passthrough();
474
+ var stackAgentConfigSchema = z.record(
475
+ z.string(),
476
+ z.string()
477
+ );
478
+ var stackSchema = z.object({
479
+ id: z.string(),
480
+ name: z.string(),
481
+ description: z.string(),
482
+ agents: z.record(z.string(), stackAgentConfigSchema),
483
+ philosophy: z.string().optional()
484
+ });
485
+ var stacksConfigSchema = z.object({
486
+ stacks: z.array(stackSchema)
487
+ });
488
+ var marketplaceRemoteSourceSchema = z.object({
489
+ source: z.enum(["github", "url"]),
490
+ repo: z.string().optional(),
491
+ url: z.string().optional(),
492
+ ref: z.string().optional()
493
+ });
494
+ var marketplacePluginSchema = z.object({
495
+ name: z.string(),
496
+ source: z.union([z.string(), marketplaceRemoteSourceSchema]),
497
+ description: z.string().optional(),
498
+ version: z.string().optional(),
499
+ author: pluginAuthorSchema.optional(),
500
+ category: z.string().optional(),
501
+ keywords: z.array(z.string()).optional()
502
+ });
503
+ var marketplaceOwnerSchema = z.object({
504
+ name: z.string(),
505
+ email: z.string().optional()
506
+ });
507
+ var marketplaceMetadataSchema = z.object({
508
+ pluginRoot: z.string().optional()
509
+ });
510
+ var marketplaceSchema = z.object({
511
+ $schema: z.string().optional(),
512
+ name: z.string(),
513
+ version: z.string(),
514
+ description: z.string().optional(),
515
+ owner: marketplaceOwnerSchema,
516
+ metadata: marketplaceMetadataSchema.optional(),
517
+ plugins: z.array(marketplacePluginSchema)
518
+ });
519
+ var versionedMetadataSchema = z.object({
520
+ version: z.number(),
521
+ content_hash: z.string().optional(),
522
+ updated: z.string().optional()
523
+ }).passthrough();
524
+ var defaultMappingsSchema = z.object({
525
+ skill_to_agents: z.record(z.string(), z.array(z.string())),
526
+ preloaded_skills: z.record(z.string(), z.array(z.string())),
527
+ subcategory_aliases: z.record(z.string(), z.string())
528
+ });
529
+ var permissionConfigSchema = z.object({
530
+ allow: z.array(z.string()).optional(),
531
+ deny: z.array(z.string()).optional()
532
+ });
533
+ var settingsFileSchema = z.object({
534
+ permissions: permissionConfigSchema.optional()
535
+ }).passthrough();
536
+ var importedSkillMetadataSchema = z.object({
537
+ forked_from: z.object({
538
+ source: z.string(),
539
+ skill_name: z.string(),
540
+ content_hash: z.string(),
541
+ date: z.string()
542
+ }).optional()
543
+ }).passthrough();
544
+ var projectSourceConfigSchema = z.object({
545
+ source: z.string().optional(),
546
+ author: z.string().optional(),
547
+ marketplace: z.string().optional(),
548
+ agents_source: z.string().optional(),
549
+ sources: z.array(
550
+ z.object({
551
+ name: z.string(),
552
+ url: z.string(),
553
+ description: z.string().optional(),
554
+ ref: z.string().optional()
555
+ })
556
+ ).optional(),
557
+ boundSkills: z.array(boundSkillSchema).optional()
558
+ }).passthrough();
559
+ var KEBAB_CASE_PATTERN = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;
560
+ var agentYamlGenerationSchema = z.object({
561
+ $schema: z.string().optional(),
562
+ id: z.string().min(1),
563
+ title: z.string().min(1),
564
+ description: z.string().min(1),
565
+ model: modelNameSchema.optional(),
566
+ tools: z.array(z.string()),
567
+ disallowed_tools: z.array(z.string()).optional(),
568
+ permission_mode: permissionModeSchema.optional(),
569
+ hooks: hooksRecordSchema.optional(),
570
+ output_format: z.string().optional()
571
+ }).strict();
572
+ var agentFrontmatterValidationSchema = z.object({
573
+ name: z.string().regex(KEBAB_CASE_PATTERN).min(1),
574
+ description: z.string().min(1),
575
+ tools: z.string().optional(),
576
+ disallowedTools: z.string().optional(),
577
+ model: modelNameSchema.optional(),
578
+ permissionMode: permissionModeSchema.optional(),
579
+ skills: z.array(z.string().min(1)).optional(),
580
+ hooks: hooksRecordSchema.optional()
581
+ }).strict();
582
+ var skillFrontmatterValidationSchema = z.object({
583
+ name: z.string().min(1),
584
+ description: z.string().min(1),
585
+ "disable-model-invocation": z.boolean().optional(),
586
+ "user-invocable": z.boolean().optional(),
587
+ "allowed-tools": z.string().optional(),
588
+ model: modelNameSchema.optional(),
589
+ context: z.enum(["fork"]).optional(),
590
+ agent: z.string().optional(),
591
+ "argument-hint": z.string().optional()
592
+ }).strict();
593
+ var metadataValidationSchema = z.object({
594
+ category: z.string(),
595
+ category_exclusive: z.boolean().optional(),
596
+ author: z.string().regex(/^@[a-z][a-z0-9-]*$/),
597
+ version: z.number().int().min(1).optional(),
598
+ cli_name: z.string().min(1).max(30),
599
+ cli_description: z.string().min(1).max(60),
600
+ usage_guidance: z.string().min(10),
601
+ requires: z.array(z.string().min(1)).optional(),
602
+ compatible_with: z.array(z.string().min(1)).optional(),
603
+ conflicts_with: z.array(z.string().min(1)).optional(),
604
+ tags: z.array(z.string().regex(/^[a-z][a-z0-9-]*$/)).optional(),
605
+ requires_setup: z.array(z.string().min(1)).optional(),
606
+ provides_setup_for: z.array(z.string().min(1)).optional(),
607
+ content_hash: z.string().regex(/^[a-f0-9]{7}$/).optional(),
608
+ updated: z.string().optional(),
609
+ forked_from: z.object({
610
+ skill_id: z.string(),
611
+ version: z.number().int().min(1).optional(),
612
+ content_hash: z.string(),
613
+ source: z.string().optional(),
614
+ date: z.string()
615
+ }).optional()
616
+ }).strict();
617
+ var stackSkillAssignmentSchema = z.object({
618
+ id: z.string().min(1),
619
+ preloaded: z.boolean().optional()
620
+ }).strict();
621
+ var stackConfigValidationSchema = z.object({
622
+ id: z.string().regex(KEBAB_CASE_PATTERN).optional(),
623
+ name: z.string().min(1),
624
+ version: z.string(),
625
+ author: z.string().min(1),
626
+ description: z.string().optional(),
627
+ created: z.string().optional(),
628
+ updated: z.string().optional(),
629
+ framework: z.string().optional(),
630
+ skills: z.array(stackSkillAssignmentSchema).min(1),
631
+ agents: z.array(z.string().regex(KEBAB_CASE_PATTERN)).min(1),
632
+ agent_skills: z.record(z.string(), z.record(z.string(), z.array(stackSkillAssignmentSchema))).optional(),
633
+ philosophy: z.string().optional(),
634
+ principles: z.array(z.string().min(1)).optional(),
635
+ tags: z.array(z.string().regex(KEBAB_CASE_PATTERN)).optional(),
636
+ overrides: z.record(
637
+ z.string(),
638
+ z.object({
639
+ alternatives: z.array(z.string().min(1)).optional(),
640
+ locked: z.boolean().optional()
641
+ }).strict()
642
+ ).optional(),
643
+ metrics: z.object({
644
+ upvotes: z.number().int().min(0).optional(),
645
+ downloads: z.number().int().min(0).optional()
646
+ }).strict().optional(),
647
+ hooks: z.record(
648
+ z.string(),
649
+ z.array(
650
+ z.object({
651
+ matcher: z.string().optional(),
652
+ hooks: z.array(agentHookActionSchema).min(1)
653
+ })
654
+ )
655
+ ).optional()
656
+ }).strict();
657
+
658
+ export {
659
+ setVerbose,
660
+ verbose,
661
+ warn,
662
+ readFile,
663
+ readFileOptional,
664
+ fileExists,
665
+ directoryExists,
666
+ listDirectories,
667
+ glob,
668
+ writeFile,
669
+ ensureDir,
670
+ remove,
671
+ copy,
672
+ skillDisplayNameSchema,
673
+ skillIdSchema,
674
+ categoryPathSchema,
675
+ hooksRecordSchema,
676
+ skillFrontmatterLoaderSchema,
677
+ skillMetadataConfigSchema,
678
+ pluginAuthorSchema,
679
+ pluginManifestSchema,
680
+ agentYamlConfigSchema,
681
+ projectConfigLoaderSchema,
682
+ skillsMatrixConfigSchema,
683
+ localRawMetadataSchema,
684
+ localSkillMetadataSchema,
685
+ stacksConfigSchema,
686
+ marketplaceSchema,
687
+ settingsFileSchema,
688
+ importedSkillMetadataSchema,
689
+ projectSourceConfigSchema,
690
+ agentYamlGenerationSchema,
691
+ agentFrontmatterValidationSchema,
692
+ skillFrontmatterValidationSchema,
693
+ metadataValidationSchema,
694
+ stackConfigValidationSchema
695
+ };
696
+ //# sourceMappingURL=chunk-ZDREFYD2.js.map