@agents-inc/cli 0.35.0 → 0.41.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 (203) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/config/skills-matrix.yaml +124 -132
  3. package/config/stacks.yaml +687 -687
  4. package/dist/{chunk-BLLXNFWP.js → chunk-2D6LKRHW.js} +2 -2
  5. package/dist/{chunk-KWF6D7ZP.js → chunk-342YB6TQ.js} +27 -19
  6. package/dist/chunk-342YB6TQ.js.map +1 -0
  7. package/dist/{chunk-OGXSTJP2.js → chunk-423MJ6DT.js} +66 -36
  8. package/dist/chunk-423MJ6DT.js.map +1 -0
  9. package/dist/{chunk-5LPPIT6H.js → chunk-4LT6RXMY.js} +4 -4
  10. package/dist/{chunk-LFHZBF6N.js → chunk-4SYXPG7L.js} +4 -3
  11. package/dist/chunk-4SYXPG7L.js.map +1 -0
  12. package/dist/{chunk-CXWPUVA7.js → chunk-4UTPJXUX.js} +9 -9
  13. package/dist/{chunk-CEWNZQMH.js → chunk-5TMB53BV.js} +9 -3
  14. package/dist/chunk-5TMB53BV.js.map +1 -0
  15. package/dist/chunk-7FBM7V3E.js +144 -0
  16. package/dist/chunk-7FBM7V3E.js.map +1 -0
  17. package/dist/chunk-ACVJVYMC.js +111 -0
  18. package/dist/chunk-ACVJVYMC.js.map +1 -0
  19. package/dist/{chunk-YN35L5NE.js → chunk-AH7XHAKN.js} +12 -12
  20. package/dist/chunk-AH7XHAKN.js.map +1 -0
  21. package/dist/{chunk-5YNZJ5TP.js → chunk-AVVYFEMF.js} +2 -2
  22. package/dist/{chunk-U36YCEBK.js → chunk-BFISETQG.js} +32 -23
  23. package/dist/chunk-BFISETQG.js.map +1 -0
  24. package/dist/{chunk-YCS7GF6Y.js → chunk-BK7TANUV.js} +6 -2
  25. package/dist/chunk-BK7TANUV.js.map +1 -0
  26. package/dist/{chunk-OGJ7DFCL.js → chunk-DV4ALU5I.js} +6 -6
  27. package/dist/{chunk-NJ775OJ4.js → chunk-FHBICUXB.js} +7 -7
  28. package/dist/chunk-FHBICUXB.js.map +1 -0
  29. package/dist/{chunk-OKILA27U.js → chunk-GEDWVX6Y.js} +87 -100
  30. package/dist/chunk-GEDWVX6Y.js.map +1 -0
  31. package/dist/{chunk-DC5AK3LW.js → chunk-GG4BSB6S.js} +5 -11
  32. package/dist/chunk-GG4BSB6S.js.map +1 -0
  33. package/dist/{chunk-BPD4VUAU.js → chunk-H6H3COI5.js} +5 -5
  34. package/dist/{chunk-AQQVSNUX.js → chunk-K77I4XGL.js} +20 -6
  35. package/dist/chunk-K77I4XGL.js.map +1 -0
  36. package/dist/chunk-KC2SIUIA.js +46 -0
  37. package/dist/chunk-KC2SIUIA.js.map +1 -0
  38. package/dist/{chunk-HTTPKSL6.js → chunk-KXM7KOPE.js} +2 -2
  39. package/dist/{chunk-GGHH3KR2.js → chunk-LJRP4SWY.js} +6 -5
  40. package/dist/chunk-LJRP4SWY.js.map +1 -0
  41. package/dist/{chunk-PKUIO2Z7.js → chunk-MNPPGIZQ.js} +8 -8
  42. package/dist/chunk-MNPPGIZQ.js.map +1 -0
  43. package/dist/{chunk-IG7CUREJ.js → chunk-NYP5SB2V.js} +2 -2
  44. package/dist/{chunk-JXMRTHDT.js → chunk-NZYKDVRL.js} +2 -2
  45. package/dist/{chunk-XNQJBQ5X.js → chunk-PURJZ72D.js} +2 -2
  46. package/dist/{chunk-VEZ2GZEK.js → chunk-R52N7DBG.js} +2 -2
  47. package/dist/chunk-SILUTTV7.js +113 -0
  48. package/dist/chunk-SILUTTV7.js.map +1 -0
  49. package/dist/{chunk-YIKBNGE3.js → chunk-TJAZ7QCF.js} +7 -7
  50. package/dist/chunk-TJAZ7QCF.js.map +1 -0
  51. package/dist/{chunk-WMVGRAFB.js → chunk-TTXV55NQ.js} +235 -117
  52. package/dist/chunk-TTXV55NQ.js.map +1 -0
  53. package/dist/{chunk-ZE355C6C.js → chunk-UKTYDNWJ.js} +9 -4
  54. package/dist/chunk-UKTYDNWJ.js.map +1 -0
  55. package/dist/{chunk-YPJKOM42.js → chunk-WS6OQIEN.js} +2 -2
  56. package/dist/{chunk-OI4WBRC7.js → chunk-XJXJZ2MJ.js} +113 -150
  57. package/dist/chunk-XJXJZ2MJ.js.map +1 -0
  58. package/dist/chunk-YLJYAQSG.js +210 -0
  59. package/dist/chunk-YLJYAQSG.js.map +1 -0
  60. package/dist/{chunk-MZB3GGOH.js → chunk-YRVTXSXP.js} +1 -2
  61. package/dist/chunk-YRVTXSXP.js.map +1 -0
  62. package/dist/{chunk-XYCN2GCV.js → chunk-ZLHGJSRK.js} +3 -3
  63. package/dist/cli/defaults/agent-mappings.yaml +16 -72
  64. package/dist/commands/build/marketplace.js +3 -3
  65. package/dist/commands/build/plugins.js +5 -5
  66. package/dist/commands/build/stack.js +5 -5
  67. package/dist/commands/compile.js +14 -18
  68. package/dist/commands/compile.js.map +1 -1
  69. package/dist/commands/config/get.js +8 -8
  70. package/dist/commands/config/get.js.map +1 -1
  71. package/dist/commands/config/index.js +5 -5
  72. package/dist/commands/config/path.js +4 -4
  73. package/dist/commands/config/set-project.js +7 -7
  74. package/dist/commands/config/set-project.js.map +1 -1
  75. package/dist/commands/config/show.js +5 -5
  76. package/dist/commands/config/unset-project.js +5 -5
  77. package/dist/commands/config/unset-project.js.map +1 -1
  78. package/dist/commands/diff.js +12 -9
  79. package/dist/commands/diff.js.map +1 -1
  80. package/dist/commands/doctor.js +8 -7
  81. package/dist/commands/doctor.js.map +1 -1
  82. package/dist/commands/edit.js +35 -29
  83. package/dist/commands/edit.js.map +1 -1
  84. package/dist/commands/eject.js +6 -6
  85. package/dist/commands/eject.js.map +1 -1
  86. package/dist/commands/import/skill.js +16 -16
  87. package/dist/commands/import/skill.js.map +1 -1
  88. package/dist/commands/info.js +7 -6
  89. package/dist/commands/info.js.map +1 -1
  90. package/dist/commands/init.js +42 -31
  91. package/dist/commands/init.js.map +1 -1
  92. package/dist/commands/list.js +6 -5
  93. package/dist/commands/list.js.map +1 -1
  94. package/dist/commands/new/agent.js +5 -5
  95. package/dist/commands/new/skill.js +12 -9
  96. package/dist/commands/new/skill.js.map +1 -1
  97. package/dist/commands/outdated.js +8 -5
  98. package/dist/commands/outdated.js.map +1 -1
  99. package/dist/commands/search.js +7 -7
  100. package/dist/commands/uninstall.js +122 -103
  101. package/dist/commands/uninstall.js.map +1 -1
  102. package/dist/commands/update.js +8 -7
  103. package/dist/commands/update.js.map +1 -1
  104. package/dist/commands/validate.js +5 -5
  105. package/dist/commands/version/bump.js +4 -4
  106. package/dist/commands/version/index.js +4 -4
  107. package/dist/commands/version/set.js +4 -4
  108. package/dist/commands/version/show.js +4 -4
  109. package/dist/components/skill-search/skill-search.js +3 -3
  110. package/dist/components/wizard/category-grid.js +3 -3
  111. package/dist/components/wizard/category-grid.test.js +79 -58
  112. package/dist/components/wizard/category-grid.test.js.map +1 -1
  113. package/dist/components/wizard/checkbox-grid.js +10 -0
  114. package/dist/components/wizard/checkbox-grid.test.js +270 -0
  115. package/dist/components/wizard/checkbox-grid.test.js.map +1 -0
  116. package/dist/components/wizard/domain-selection.js +7 -5
  117. package/dist/components/wizard/help-modal.js +2 -2
  118. package/dist/components/wizard/menu-item.js +2 -2
  119. package/dist/components/wizard/search-modal.js +2 -2
  120. package/dist/components/wizard/search-modal.test.js +2 -2
  121. package/dist/components/wizard/section-progress.js +2 -2
  122. package/dist/components/wizard/section-progress.test.js +2 -2
  123. package/dist/components/wizard/source-grid.js +4 -4
  124. package/dist/components/wizard/source-grid.test.js +4 -4
  125. package/dist/components/wizard/stack-selection.js +9 -8
  126. package/dist/components/wizard/step-agents.js +16 -0
  127. package/dist/components/wizard/step-agents.js.map +1 -0
  128. package/dist/components/wizard/step-agents.test.js +190 -0
  129. package/dist/components/wizard/step-agents.test.js.map +1 -0
  130. package/dist/components/wizard/step-build.js +10 -9
  131. package/dist/components/wizard/step-build.test.js +56 -53
  132. package/dist/components/wizard/step-build.test.js.map +1 -1
  133. package/dist/components/wizard/step-confirm.js +3 -3
  134. package/dist/components/wizard/step-confirm.test.js +19 -12
  135. package/dist/components/wizard/step-confirm.test.js.map +1 -1
  136. package/dist/components/wizard/step-refine.js +2 -2
  137. package/dist/components/wizard/step-refine.test.js +2 -2
  138. package/dist/components/wizard/step-settings.js +5 -5
  139. package/dist/components/wizard/step-settings.test.js +8 -8
  140. package/dist/components/wizard/step-sources.js +11 -10
  141. package/dist/components/wizard/step-sources.test.js +16 -15
  142. package/dist/components/wizard/step-sources.test.js.map +1 -1
  143. package/dist/components/wizard/step-stack.js +12 -10
  144. package/dist/components/wizard/step-stack.test.js +19 -19
  145. package/dist/components/wizard/step-stack.test.js.map +1 -1
  146. package/dist/components/wizard/view-title.js +2 -2
  147. package/dist/components/wizard/wizard-layout.js +8 -7
  148. package/dist/components/wizard/wizard-tabs.js +2 -2
  149. package/dist/components/wizard/wizard-tabs.test.js +6 -4
  150. package/dist/components/wizard/wizard-tabs.test.js.map +1 -1
  151. package/dist/components/wizard/wizard.js +27 -24
  152. package/dist/config/skills-matrix.yaml +124 -132
  153. package/dist/config/stacks.yaml +687 -687
  154. package/dist/hooks/init.js +3 -3
  155. package/dist/{source-manager-PTK4P6BF.js → source-manager-PPABS6BC.js} +4 -4
  156. package/dist/source-manager-PPABS6BC.js.map +1 -0
  157. package/dist/stores/wizard-store.js +5 -4
  158. package/dist/stores/wizard-store.test.js +336 -136
  159. package/dist/stores/wizard-store.test.js.map +1 -1
  160. package/package.json +1 -1
  161. package/src/schemas/agent.schema.json +3 -3
  162. package/src/schemas/metadata.schema.json +55 -15
  163. package/src/schemas/project-config.schema.json +42 -2
  164. package/src/schemas/project-source-config.schema.json +5 -5
  165. package/src/schemas/skills-matrix.schema.json +103 -104
  166. package/src/schemas/stack.schema.json +1 -1
  167. package/src/schemas/stacks.schema.json +41 -1
  168. package/dist/chunk-AQQVSNUX.js.map +0 -1
  169. package/dist/chunk-CEWNZQMH.js.map +0 -1
  170. package/dist/chunk-DC5AK3LW.js.map +0 -1
  171. package/dist/chunk-GGHH3KR2.js.map +0 -1
  172. package/dist/chunk-KWF6D7ZP.js.map +0 -1
  173. package/dist/chunk-LFHZBF6N.js.map +0 -1
  174. package/dist/chunk-MZB3GGOH.js.map +0 -1
  175. package/dist/chunk-NJ775OJ4.js.map +0 -1
  176. package/dist/chunk-NVQEHRJY.js +0 -120
  177. package/dist/chunk-NVQEHRJY.js.map +0 -1
  178. package/dist/chunk-OGXSTJP2.js.map +0 -1
  179. package/dist/chunk-OI4WBRC7.js.map +0 -1
  180. package/dist/chunk-OKILA27U.js.map +0 -1
  181. package/dist/chunk-PKUIO2Z7.js.map +0 -1
  182. package/dist/chunk-U36YCEBK.js.map +0 -1
  183. package/dist/chunk-UFUQUFV6.js +0 -256
  184. package/dist/chunk-UFUQUFV6.js.map +0 -1
  185. package/dist/chunk-WMVGRAFB.js.map +0 -1
  186. package/dist/chunk-YCS7GF6Y.js.map +0 -1
  187. package/dist/chunk-YIKBNGE3.js.map +0 -1
  188. package/dist/chunk-YN35L5NE.js.map +0 -1
  189. package/dist/chunk-ZE355C6C.js.map +0 -1
  190. /package/dist/{chunk-BLLXNFWP.js.map → chunk-2D6LKRHW.js.map} +0 -0
  191. /package/dist/{chunk-5LPPIT6H.js.map → chunk-4LT6RXMY.js.map} +0 -0
  192. /package/dist/{chunk-CXWPUVA7.js.map → chunk-4UTPJXUX.js.map} +0 -0
  193. /package/dist/{chunk-5YNZJ5TP.js.map → chunk-AVVYFEMF.js.map} +0 -0
  194. /package/dist/{chunk-OGJ7DFCL.js.map → chunk-DV4ALU5I.js.map} +0 -0
  195. /package/dist/{chunk-BPD4VUAU.js.map → chunk-H6H3COI5.js.map} +0 -0
  196. /package/dist/{chunk-HTTPKSL6.js.map → chunk-KXM7KOPE.js.map} +0 -0
  197. /package/dist/{chunk-IG7CUREJ.js.map → chunk-NYP5SB2V.js.map} +0 -0
  198. /package/dist/{chunk-JXMRTHDT.js.map → chunk-NZYKDVRL.js.map} +0 -0
  199. /package/dist/{chunk-XNQJBQ5X.js.map → chunk-PURJZ72D.js.map} +0 -0
  200. /package/dist/{chunk-VEZ2GZEK.js.map → chunk-R52N7DBG.js.map} +0 -0
  201. /package/dist/{chunk-YPJKOM42.js.map → chunk-WS6OQIEN.js.map} +0 -0
  202. /package/dist/{chunk-XYCN2GCV.js.map → chunk-ZLHGJSRK.js.map} +0 -0
  203. /package/dist/{source-manager-PTK4P6BF.js.map → components/wizard/checkbox-grid.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CLI_COLORS
4
- } from "./chunk-YCS7GF6Y.js";
4
+ } from "./chunk-BK7TANUV.js";
5
5
  import {
6
6
  init_esm_shims
7
7
  } from "./chunk-DHET7RCE.js";
@@ -31,7 +31,7 @@ var GLOBAL_TOGGLES = {
31
31
  var BUILD_KEYS = {
32
32
  title: "Build Step",
33
33
  keys: [
34
- { key: "D", description: "Toggle skill descriptions" },
34
+ { key: "D", description: "Toggle compatibility labels" },
35
35
  { key: "A", description: "Accept stack defaults (stack path only)" },
36
36
  { key: "h/j/k/l", description: "Vim-style navigation" }
37
37
  ]
@@ -40,9 +40,14 @@ var SOURCES_KEYS = {
40
40
  title: "Sources Step",
41
41
  keys: [{ key: "G", description: "Toggle source settings" }]
42
42
  };
43
+ var AGENTS_KEYS = {
44
+ title: "Agents Step",
45
+ keys: []
46
+ };
43
47
  var STEP_SECTIONS = {
44
48
  build: BUILD_KEYS,
45
- sources: SOURCES_KEYS
49
+ sources: SOURCES_KEYS,
50
+ agents: AGENTS_KEYS
46
51
  };
47
52
  var KEY_COLUMN_WIDTH = 14;
48
53
  var HelpSectionView = ({ section }) => /* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [
@@ -82,4 +87,4 @@ var HelpModal = ({ currentStep }) => {
82
87
  export {
83
88
  HelpModal
84
89
  };
85
- //# sourceMappingURL=chunk-ZE355C6C.js.map
90
+ //# sourceMappingURL=chunk-UKTYDNWJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/components/wizard/help-modal.tsx"],"sourcesContent":["import React from \"react\";\nimport { Box, Text } from \"ink\";\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: \"Global Toggles\",\n keys: [\n { key: \"E\", description: \"Toggle expert mode\" },\n { key: \"P\", description: \"Toggle plugin/local install mode\" },\n { key: \"?\", description: \"Toggle this help\" },\n ],\n};\n\nconst BUILD_KEYS: HelpSection = {\n title: \"Build Step\",\n keys: [\n { key: \"D\", description: \"Toggle compatibility labels\" },\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: \"G\", 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\" marginBottom={1}>\n <Text bold underline>\n {section.title}\n </Text>\n {section.keys.map(({ key, description }) => (\n <Box key={key}>\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;AACA,SAAS,KAAK,YAAY;AA8DtB,cAMM,YANN;AArDJ,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;AAAA,IACJ,EAAE,KAAK,KAAK,aAAa,qBAAqB;AAAA,IAC9C,EAAE,KAAK,KAAK,aAAa,mCAAmC;AAAA,IAC5D,EAAE,KAAK,KAAK,aAAa,mBAAmB;AAAA,EAC9C;AACF;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,MAAM;AAAA,IACJ,EAAE,KAAK,KAAK,aAAa,8BAA8B;AAAA,IACvD,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,cAAc,GACxC;AAAA,sBAAC,QAAK,MAAI,MAAC,WAAS,MACjB,kBAAQ,OACX;AAAA,EACC,QAAQ,KAAK,IAAI,CAAC,EAAE,KAAK,YAAY,MACpC,qBAAC,OACC;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":[]}
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CLI_COLORS,
4
4
  UI_SYMBOLS
5
- } from "./chunk-YCS7GF6Y.js";
5
+ } from "./chunk-BK7TANUV.js";
6
6
  import {
7
7
  init_esm_shims
8
8
  } from "./chunk-DHET7RCE.js";
@@ -29,4 +29,4 @@ var MenuItem = ({
29
29
  export {
30
30
  MenuItem
31
31
  };
32
- //# sourceMappingURL=chunk-YPJKOM42.js.map
32
+ //# sourceMappingURL=chunk-WS6OQIEN.js.map
@@ -90,14 +90,7 @@ async function copy(src, dest) {
90
90
  // src/cli/lib/schemas.ts
91
91
  init_esm_shims();
92
92
  import { z } from "zod";
93
- var domainSchema = z.enum([
94
- "web",
95
- "web-extras",
96
- "api",
97
- "cli",
98
- "mobile",
99
- "shared"
100
- ]);
93
+ var domainSchema = z.enum(["web", "api", "cli", "mobile", "shared"]);
101
94
  var skillSourceTypeSchema = z.enum([
102
95
  "public",
103
96
  "private",
@@ -110,75 +103,65 @@ var boundSkillSchema = z.object({
110
103
  boundTo: z.string(),
111
104
  description: z.string().optional()
112
105
  });
113
- var subcategorySchema = z.enum([
114
- // Web
115
- "framework",
116
- "meta-framework",
117
- "styling",
118
- "client-state",
119
- "server-state",
120
- "forms",
121
- "testing",
122
- "ui-components",
123
- "mocking",
124
- "error-handling",
125
- "i18n",
126
- "file-upload",
127
- "files",
128
- "utilities",
129
- "realtime",
130
- "animation",
131
- "pwa",
132
- "accessibility",
106
+ var SUBCATEGORY_VALUES = [
107
+ "web-framework",
108
+ "web-styling",
109
+ "web-client-state",
110
+ "web-server-state",
111
+ "web-forms",
112
+ "web-testing",
113
+ "web-ui-components",
114
+ "web-mocking",
115
+ "web-error-handling",
116
+ "web-i18n",
117
+ "web-file-upload",
118
+ "web-files",
119
+ "web-utilities",
120
+ "web-realtime",
121
+ "web-animation",
122
+ "web-pwa",
123
+ "web-accessibility",
133
124
  "web-performance",
134
- // API
135
- "api",
136
- "database",
137
- "auth",
138
- "observability",
139
- "analytics",
140
- "email",
141
- "performance",
142
- // Mobile
125
+ "web-base-framework",
126
+ "api-api",
127
+ "api-database",
128
+ "api-auth",
129
+ "api-observability",
130
+ "api-analytics",
131
+ "api-email",
132
+ "api-performance",
143
133
  "mobile-framework",
144
- // Shared / Infrastructure
145
- "monorepo",
146
- "tooling",
147
- "security",
148
- "methodology",
149
- "research",
150
- "reviewing",
151
- "ci-cd",
152
- // CLI
134
+ "mobile-platform",
135
+ "shared-monorepo",
136
+ "shared-tooling",
137
+ "shared-security",
138
+ "shared-methodology",
139
+ "shared-research",
140
+ "shared-reviewing",
141
+ "shared-ci-cd",
153
142
  "cli-framework",
154
143
  "cli-prompts",
155
144
  "cli-testing"
156
- ]);
145
+ ];
146
+ var subcategorySchema = z.enum(SUBCATEGORY_VALUES);
147
+ var stackSubcategorySchema = z.enum(SUBCATEGORY_VALUES);
157
148
  var agentNameSchema = z.enum([
158
- // Developers
159
149
  "web-developer",
160
150
  "api-developer",
161
151
  "cli-developer",
162
152
  "web-architecture",
163
- // Meta
164
153
  "agent-summoner",
165
154
  "documentor",
166
155
  "skill-summoner",
167
- // Migration
168
156
  "cli-migrator",
169
- // Pattern
170
157
  "pattern-scout",
171
158
  "web-pattern-critique",
172
- // Planning
173
159
  "web-pm",
174
- // Researchers
175
160
  "api-researcher",
176
161
  "web-researcher",
177
- // Reviewers
178
162
  "api-reviewer",
179
163
  "cli-reviewer",
180
164
  "web-reviewer",
181
- // Testers
182
165
  "cli-tester",
183
166
  "web-tester"
184
167
  ]);
@@ -197,77 +180,59 @@ var permissionModeSchema = z.enum([
197
180
  "delegate"
198
181
  ]);
199
182
  var skillDisplayNameSchema = z.enum([
200
- // Frameworks
201
183
  "react",
202
184
  "vue",
203
185
  "angular",
204
186
  "solidjs",
205
- // Meta-frameworks
206
187
  "nextjs-app-router",
207
188
  "nextjs-server-actions",
208
189
  "remix",
209
190
  "nuxt",
210
- // Styling
211
191
  "scss-modules",
212
192
  "cva",
213
193
  "tailwind",
214
- // Client State
215
194
  "zustand",
216
195
  "redux-toolkit",
217
196
  "pinia",
218
197
  "ngrx-signalstore",
219
198
  "jotai",
220
199
  "mobx",
221
- // Server State / Data Fetching
222
200
  "react-query",
223
201
  "swr",
224
202
  "graphql-apollo",
225
203
  "graphql-urql",
226
204
  "trpc",
227
- // Forms & Validation
228
205
  "react-hook-form",
229
206
  "vee-validate",
230
207
  "zod-validation",
231
- // Testing
232
208
  "vitest",
233
209
  "playwright-e2e",
234
210
  "cypress-e2e",
235
211
  "react-testing-library",
236
212
  "vue-test-utils",
237
213
  "msw",
238
- // UI Components
239
214
  "shadcn-ui",
240
215
  "tanstack-table",
241
216
  "radix-ui",
242
- // Backend - API Framework
243
217
  "hono",
244
218
  "express",
245
219
  "fastify",
246
- // Backend - Database
247
220
  "drizzle",
248
221
  "prisma",
249
- // Backend - Auth
250
222
  "better-auth",
251
- // Backend - Observability
252
223
  "axiom-pino-sentry",
253
- // Backend - Analytics
254
224
  "posthog",
255
225
  "posthog-flags",
256
- // Backend - Email
257
226
  "resend",
258
- // Backend - CI/CD
259
227
  "github-actions",
260
- // Mobile
261
228
  "react-native",
262
229
  "expo",
263
- // Setup / Infrastructure
264
230
  "turborepo",
265
231
  "tooling",
266
232
  "posthog-setup",
267
233
  "env",
268
234
  "observability-setup",
269
235
  "email-setup",
270
- // Animation / PWA / Realtime / etc.
271
236
  "framer-motion",
272
237
  "css-animations",
273
238
  "view-transitions",
@@ -281,21 +246,16 @@ var skillDisplayNameSchema = z.enum([
281
246
  "file-upload",
282
247
  "image-handling",
283
248
  "date-fns",
284
- // Backend-specific category skills
285
249
  "api-testing",
286
250
  "api-performance",
287
251
  "web-performance",
288
- // Security
289
252
  "security",
290
- // CLI
291
253
  "commander",
292
254
  "cli-commander",
293
255
  "oclif",
294
- // Reviewing / Meta
295
256
  "reviewing",
296
257
  "cli-reviewing",
297
258
  "research-methodology",
298
- // Methodology
299
259
  "investigation-requirements",
300
260
  "anti-over-engineering",
301
261
  "success-criteria",
@@ -311,12 +271,11 @@ var skillIdSchema = z.string().regex(
311
271
  var categoryPathSchema = z.string().refine(
312
272
  (val) => {
313
273
  if (val === "local") return true;
314
- if (/^(web|api|cli|mobile|infra|meta|security)\/.+$/.test(val)) return true;
315
- if (/^(web|api|cli|mobile|infra|meta|security)-.+$/.test(val)) return true;
274
+ if (/^(web|api|cli|mobile|infra|meta|security|shared)-.+$/.test(val)) return true;
316
275
  return subcategorySchema.safeParse(val).success;
317
276
  },
318
277
  {
319
- message: "Must be a valid category path (e.g., 'web/framework', 'web-framework', 'testing', or 'local')"
278
+ message: "Must be a valid category path (e.g., 'web-framework', 'shared-testing', or 'local')"
320
279
  }
321
280
  );
322
281
  var agentHookActionSchema = z.object({
@@ -351,13 +310,13 @@ var skillFrontmatterLoaderSchema = z.object({
351
310
  });
352
311
  var skillMetadataLoaderSchema = z.object({
353
312
  category: categoryPathSchema.optional(),
354
- category_exclusive: z.boolean().optional(),
313
+ categoryExclusive: z.boolean().optional(),
355
314
  author: z.string().optional(),
356
315
  version: z.union([z.string(), z.number()]).transform(String).optional(),
357
316
  tags: z.array(z.string()).optional(),
358
317
  requires: z.array(skillIdSchema).optional(),
359
- compatible_with: z.array(skillIdSchema).optional(),
360
- conflicts_with: z.array(skillIdSchema).optional()
318
+ compatibleWith: z.array(skillIdSchema).optional(),
319
+ conflictsWith: z.array(skillIdSchema).optional()
361
320
  }).passthrough();
362
321
  var pluginAuthorSchema = z.object({
363
322
  name: z.string().min(1),
@@ -391,16 +350,27 @@ var agentYamlConfigSchema = z.object({
391
350
  description: z.string(),
392
351
  model: modelNameSchema.optional(),
393
352
  tools: z.array(z.string()),
394
- disallowed_tools: z.array(z.string()).optional(),
395
- permission_mode: permissionModeSchema.optional(),
353
+ disallowedTools: z.array(z.string()).optional(),
354
+ permissionMode: permissionModeSchema.optional(),
396
355
  hooks: hooksRecordSchema.optional(),
397
- output_format: z.string().optional()
356
+ outputFormat: z.string().optional()
398
357
  });
399
358
  var skillAssignmentElementSchema = z.union([skillIdSchema, skillAssignmentSchema]);
359
+ var stackSubcategoryValues = new Set(stackSubcategorySchema.options);
400
360
  var stackAgentConfigSchema = z.record(
401
361
  z.string(),
402
362
  z.union([skillAssignmentElementSchema, z.array(skillAssignmentElementSchema)])
403
- );
363
+ ).superRefine((val, ctx) => {
364
+ for (const key of Object.keys(val)) {
365
+ if (!stackSubcategoryValues.has(key)) {
366
+ ctx.addIssue({
367
+ code: "custom",
368
+ path: [key],
369
+ message: `Invalid subcategory '${key}'. Must be one of: ${[...stackSubcategoryValues].join(", ")}`
370
+ });
371
+ }
372
+ }
373
+ });
404
374
  var projectConfigLoaderSchema = z.object({
405
375
  version: z.literal("1").optional(),
406
376
  /** Project/plugin name in kebab-case */
@@ -423,7 +393,7 @@ var projectConfigLoaderSchema = z.object({
423
393
  /** Marketplace identifier for plugin installation */
424
394
  marketplace: z.string().optional(),
425
395
  /** Separate source for agents when different from skills source */
426
- agents_source: z.string().optional()
396
+ agentsSource: z.string().optional()
427
397
  }).passthrough();
428
398
  var projectConfigValidationSchema = z.object({
429
399
  version: z.literal("1").optional(),
@@ -447,14 +417,13 @@ var projectConfigValidationSchema = z.object({
447
417
  /** Marketplace identifier for plugin installation */
448
418
  marketplace: z.string().optional(),
449
419
  /** Separate source for agents when different from skills source */
450
- agents_source: z.string().optional()
420
+ agentsSource: z.string().optional()
451
421
  });
452
422
  var categoryDefinitionSchema = z.object({
453
423
  id: subcategorySchema,
454
424
  displayName: z.string(),
455
425
  description: z.string(),
456
426
  domain: domainSchema.optional(),
457
- parent_domain: domainSchema.optional(),
458
427
  exclusive: z.boolean(),
459
428
  required: z.boolean(),
460
429
  order: z.number(),
@@ -477,7 +446,7 @@ var recommendRuleSchema = z.object({
477
446
  var requireRuleSchema = z.object({
478
447
  skill: skillRefInYaml,
479
448
  needs: z.array(skillRefInYaml).min(1),
480
- needs_any: z.boolean().optional(),
449
+ needsAny: z.boolean().optional(),
481
450
  reason: z.string()
482
451
  });
483
452
  var alternativeGroupSchema = z.object({
@@ -495,44 +464,42 @@ var skillsMatrixConfigSchema = z.object({
495
464
  version: z.string(),
496
465
  categories: z.record(subcategorySchema, categoryDefinitionSchema),
497
466
  relationships: relationshipDefinitionsSchema,
498
- skill_aliases: z.record(skillDisplayNameSchema, skillIdSchema)
467
+ skillAliases: z.record(skillDisplayNameSchema, skillIdSchema)
499
468
  });
500
469
  var localRawMetadataSchema = z.object({
501
470
  /** Short name shown in the wizard grid (e.g., "my-custom-react") */
502
- cli_name: z.string().optional(),
471
+ cliName: z.string().optional(),
503
472
  /** One-line description for the wizard */
504
- cli_description: z.string().optional(),
473
+ cliDescription: z.string().optional(),
505
474
  /** Subcategory to place this skill in (e.g., "web-framework") */
506
475
  category: categoryPathSchema.optional(),
507
476
  /** If true, only one skill from this category can be selected */
508
- category_exclusive: z.boolean().optional(),
477
+ categoryExclusive: z.boolean().optional(),
509
478
  /** When an AI agent should invoke this skill */
510
- usage_guidance: z.string().optional(),
479
+ usageGuidance: z.string().optional(),
511
480
  tags: z.array(z.string()).optional(),
512
481
  /** Framework skills this is compatible with (for Build step filtering) */
513
- compatible_with: z.array(skillIdSchema).optional(),
482
+ compatibleWith: z.array(skillIdSchema).optional(),
514
483
  /** Skills that cannot coexist with this one */
515
- conflicts_with: z.array(skillIdSchema).optional(),
484
+ conflictsWith: z.array(skillIdSchema).optional(),
516
485
  /** Skills that must be selected before this one */
517
486
  requires: z.array(skillIdSchema).optional(),
518
487
  /** Setup skills that must be installed first (e.g., env setup) */
519
- requires_setup: z.array(skillIdSchema).optional(),
488
+ requiresSetup: z.array(skillIdSchema).optional(),
520
489
  /** Usage skills this setup skill configures (inverse relationship) */
521
- provides_setup_for: z.array(skillIdSchema).optional(),
522
- /** If true, this skill was installed by the Agents Inc. CLI (safe to remove on uninstall) */
523
- generatedByAgentsInc: z.boolean().optional()
490
+ providesSetupFor: z.array(skillIdSchema).optional()
524
491
  }).passthrough();
525
492
  var localSkillMetadataSchema = z.object({
526
- forked_from: z.object({
493
+ forkedFrom: z.object({
527
494
  /** Original skill ID before forking (e.g., "web-framework-react") */
528
- skill_id: skillIdSchema,
495
+ skillId: skillIdSchema,
529
496
  /** SHA hash of the original content at fork time (for diff detection) */
530
- content_hash: z.string(),
497
+ contentHash: z.string(),
531
498
  /** ISO date when the fork was created */
532
- date: z.string()
533
- }).optional(),
534
- /** If true, this skill was installed by the Agents Inc. CLI (safe to remove on uninstall) */
535
- generatedByAgentsInc: z.boolean().optional()
499
+ date: z.string(),
500
+ /** Source URL the skill was installed from (e.g., "github:agents-inc/skills") */
501
+ source: z.string().optional()
502
+ }).optional()
536
503
  }).passthrough();
537
504
  var stackSchema = z.object({
538
505
  id: z.string().min(1),
@@ -584,19 +551,15 @@ var versionedMetadataSchema = z.object({
584
551
  /** Content version integer (incremented on each publish) */
585
552
  version: z.number(),
586
553
  /** Short SHA hash of skill content for change detection */
587
- content_hash: z.string().optional(),
554
+ contentHash: z.string().optional(),
588
555
  /** ISO date of last update */
589
556
  updated: z.string().optional()
590
557
  }).passthrough();
591
558
  var defaultMappingsSchema = z.object({
592
- /** Maps skill IDs to the agent IDs that should receive them */
593
- skill_to_agents: z.record(z.string(), z.array(z.string())),
594
- /** Maps agent IDs to skill IDs that should be preloaded (embedded) instead of dynamic */
595
- preloaded_skills: z.record(z.string(), z.array(z.string())),
559
+ /** Maps skill path patterns to the agent IDs that should receive them */
560
+ skillToAgents: z.record(z.string(), z.array(z.string())),
596
561
  /** Maps agent IDs to skill ID prefixes they should receive by default */
597
- agent_skill_prefixes: z.record(z.string(), z.array(z.string())).optional(),
598
- /** Maps subcategory names to their short aliases (e.g., "framework" -> "react") */
599
- subcategory_aliases: z.record(z.string(), z.string())
562
+ agentSkillPrefixes: z.record(z.string(), z.array(z.string())).optional()
600
563
  });
601
564
  var permissionConfigSchema = z.object({
602
565
  /** Tool names or patterns to explicitly allow */
@@ -608,13 +571,13 @@ var settingsFileSchema = z.object({
608
571
  permissions: permissionConfigSchema.optional()
609
572
  }).passthrough();
610
573
  var importedSkillMetadataSchema = z.object({
611
- forked_from: z.object({
574
+ forkedFrom: z.object({
612
575
  /** Source URL or identifier where the skill was imported from */
613
576
  source: z.string(),
614
577
  /** Original skill name in the source */
615
- skill_name: z.string(),
578
+ skillName: z.string(),
616
579
  /** SHA hash of the original content at import time */
617
- content_hash: z.string(),
580
+ contentHash: z.string(),
618
581
  /** ISO date when the import was performed */
619
582
  date: z.string()
620
583
  }).optional()
@@ -633,7 +596,7 @@ var projectSourceConfigSchema = z.object({
633
596
  /** Marketplace identifier for plugin installation */
634
597
  marketplace: z.string().optional(),
635
598
  /** Separate source for agent definitions (when different from skills) */
636
- agents_source: z.string().optional(),
599
+ agentsSource: z.string().optional(),
637
600
  /** Additional skill sources (private marketplaces, custom repos) */
638
601
  sources: z.array(
639
602
  z.object({
@@ -651,19 +614,19 @@ var projectSourceConfigSchema = z.object({
651
614
  /** Branding overrides for white-labeling the CLI */
652
615
  branding: brandingConfigSchema.optional(),
653
616
  /** Custom skills directory override (default: "src/skills") */
654
- skills_dir: z.string().optional(),
617
+ skillsDir: z.string().optional(),
655
618
  /** Custom agents directory override (default: "src/agents") */
656
- agents_dir: z.string().optional(),
619
+ agentsDir: z.string().optional(),
657
620
  /** Custom stacks file path override (default: "config/stacks.yaml") */
658
- stacks_file: z.string().optional(),
621
+ stacksFile: z.string().optional(),
659
622
  /** Custom matrix file path override (default: "config/skills-matrix.yaml") */
660
- matrix_file: z.string().optional()
623
+ matrixFile: z.string().optional()
661
624
  }).passthrough();
662
625
  var projectSourceConfigValidationSchema = z.object({
663
626
  source: z.string().optional(),
664
627
  author: z.string().optional(),
665
628
  marketplace: z.string().optional(),
666
- agents_source: z.string().optional(),
629
+ agentsSource: z.string().optional(),
667
630
  sources: z.array(
668
631
  z.object({
669
632
  name: z.string(),
@@ -674,10 +637,10 @@ var projectSourceConfigValidationSchema = z.object({
674
637
  ).optional(),
675
638
  boundSkills: z.array(boundSkillSchema).optional(),
676
639
  branding: brandingConfigSchema.optional(),
677
- skills_dir: z.string().optional(),
678
- agents_dir: z.string().optional(),
679
- stacks_file: z.string().optional(),
680
- matrix_file: z.string().optional()
640
+ skillsDir: z.string().optional(),
641
+ agentsDir: z.string().optional(),
642
+ stacksFile: z.string().optional(),
643
+ matrixFile: z.string().optional()
681
644
  });
682
645
  var KEBAB_CASE_PATTERN = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;
683
646
  var agentYamlGenerationSchema = z.object({
@@ -687,10 +650,10 @@ var agentYamlGenerationSchema = z.object({
687
650
  description: z.string().min(1),
688
651
  model: modelNameSchema.optional(),
689
652
  tools: z.array(z.string()).min(1),
690
- disallowed_tools: z.array(z.string()).optional(),
691
- permission_mode: permissionModeSchema.optional(),
653
+ disallowedTools: z.array(z.string()).optional(),
654
+ permissionMode: permissionModeSchema.optional(),
692
655
  hooks: strictHooksRecordSchema.optional(),
693
- output_format: z.string().optional()
656
+ outputFormat: z.string().optional()
694
657
  }).strict();
695
658
  var agentFrontmatterValidationSchema = z.object({
696
659
  /** Agent name in kebab-case (becomes the Task tool identifier) */
@@ -724,38 +687,38 @@ var skillFrontmatterValidationSchema = z.object({
724
687
  "argument-hint": z.string().optional()
725
688
  }).strict();
726
689
  var metadataValidationSchema = z.object({
727
- /** Subcategory path (e.g., "web/framework") */
728
- category: z.string(),
729
- category_exclusive: z.boolean().optional(),
690
+ /** Domain-prefixed subcategory (e.g., "web-framework") */
691
+ category: subcategorySchema,
692
+ categoryExclusive: z.boolean().optional(),
730
693
  /** Author handle — must start with @ (e.g., "@vince") */
731
694
  author: z.string().regex(/^@[a-z][a-z0-9-]*$/),
732
695
  /** Content version integer, incremented on each publish */
733
696
  version: z.number().int().min(1).optional(),
734
697
  /** Short display name for the wizard grid (max 30 chars) */
735
- cli_name: z.string().min(1).max(30),
698
+ cliName: z.string().min(1).max(30),
736
699
  /** One-line description for the wizard (max 60 chars) */
737
- cli_description: z.string().min(1).max(60),
700
+ cliDescription: z.string().min(1).max(60),
738
701
  /** When an AI agent should invoke this skill (min 10 chars to ensure usefulness) */
739
- usage_guidance: z.string().min(10),
702
+ usageGuidance: z.string().min(10),
740
703
  requires: z.array(z.string().min(1)).optional(),
741
- compatible_with: z.array(z.string().min(1)).optional(),
742
- conflicts_with: z.array(z.string().min(1)).optional(),
704
+ compatibleWith: z.array(z.string().min(1)).optional(),
705
+ conflictsWith: z.array(z.string().min(1)).optional(),
743
706
  /** Searchable tags — kebab-case only */
744
707
  tags: z.array(z.string().regex(/^[a-z][a-z0-9-]*$/)).optional(),
745
- requires_setup: z.array(z.string().min(1)).optional(),
746
- provides_setup_for: z.array(z.string().min(1)).optional(),
708
+ requiresSetup: z.array(z.string().min(1)).optional(),
709
+ providesSetupFor: z.array(z.string().min(1)).optional(),
747
710
  /** 7-char hex SHA of skill content (for change detection) */
748
- content_hash: z.string().regex(/^[a-f0-9]{7}$/).optional(),
711
+ contentHash: z.string().regex(/^[a-f0-9]{7}$/).optional(),
749
712
  /** ISO date of last update */
750
713
  updated: z.string().optional(),
751
714
  /** Provenance tracking when skill was forked from another */
752
- forked_from: z.object({
715
+ forkedFrom: z.object({
753
716
  /** Original skill ID */
754
- skill_id: z.string(),
717
+ skillId: z.string(),
755
718
  /** Version of the original at fork time */
756
719
  version: z.number().int().min(1).optional(),
757
720
  /** Content hash of the original at fork time */
758
- content_hash: z.string(),
721
+ contentHash: z.string(),
759
722
  /** Source URL or identifier */
760
723
  source: z.string().optional(),
761
724
  /** ISO date of the fork */
@@ -785,7 +748,7 @@ var stackConfigValidationSchema = z.object({
785
748
  /** Agent IDs this stack compiles (at least one required) */
786
749
  agents: z.array(z.string().regex(KEBAB_CASE_PATTERN)).min(1),
787
750
  /** Per-agent skill assignments: { agentId: { subcategory: [skillAssignment] } } */
788
- agent_skills: z.record(z.string(), z.record(z.string(), z.array(stackSkillAssignmentSchema))).optional(),
751
+ agentSkills: z.record(z.string(), z.record(z.string(), z.array(stackSkillAssignmentSchema))).optional(),
789
752
  /** High-level philosophy guiding technology choices */
790
753
  philosophy: z.string().optional(),
791
754
  /** Guiding principles for agents using this stack */
@@ -888,4 +851,4 @@ export {
888
851
  validateNestingDepth,
889
852
  warnUnknownFields
890
853
  };
891
- //# sourceMappingURL=chunk-OI4WBRC7.js.map
854
+ //# sourceMappingURL=chunk-XJXJZ2MJ.js.map