@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
@@ -4,21 +4,22 @@ import {
4
4
  } from "./chunk-K77I4XGL.js";
5
5
  import {
6
6
  CategoryGrid
7
- } from "./chunk-JFF7P4LC.js";
7
+ } from "./chunk-H7WJK7NJ.js";
8
8
  import {
9
9
  getDomainDisplayName,
10
10
  orderDomains
11
- } from "./chunk-HYEUETIC.js";
11
+ } from "./chunk-BKJHAJQW.js";
12
12
  import {
13
13
  ViewTitle
14
- } from "./chunk-CMNKHDOX.js";
14
+ } from "./chunk-MGNYPVOJ.js";
15
15
  import {
16
16
  buildCategoriesForDomain,
17
+ useWizardStore,
17
18
  validateBuildStep
18
- } from "./chunk-UAD3SC27.js";
19
+ } from "./chunk-WF6RM73R.js";
19
20
  import {
20
21
  CLI_COLORS
21
- } from "./chunk-AWP5A6IM.js";
22
+ } from "./chunk-6OWHQ7HM.js";
22
23
  import {
23
24
  init_esm_shims
24
25
  } from "./chunk-DHET7RCE.js";
@@ -26,7 +27,7 @@ import {
26
27
  // src/cli/components/wizard/step-build.tsx
27
28
  init_esm_shims();
28
29
  import { Box, Text, useInput } from "ink";
29
- import { useMemo as useMemo2, useState } from "react";
30
+ import { useCallback, useMemo as useMemo2, useState } from "react";
30
31
 
31
32
  // src/cli/lib/wizard/index.ts
32
33
  init_esm_shims();
@@ -39,11 +40,19 @@ function useFrameworkFiltering({
39
40
  allSelections,
40
41
  matrix,
41
42
  selections,
42
- installedSkillIds
43
+ installedSkillIds,
44
+ skillConfigs
43
45
  }) {
44
46
  return useMemo(
45
- () => buildCategoriesForDomain(domain, allSelections, matrix, selections, installedSkillIds),
46
- [domain, allSelections, matrix, selections, installedSkillIds]
47
+ () => buildCategoriesForDomain(
48
+ domain,
49
+ allSelections,
50
+ matrix,
51
+ selections,
52
+ installedSkillIds,
53
+ skillConfigs
54
+ ),
55
+ [domain, allSelections, matrix, selections, installedSkillIds, skillConfigs]
47
56
  );
48
57
  }
49
58
 
@@ -70,13 +79,19 @@ var StepBuild = ({
70
79
  }) => {
71
80
  const [validationError, setValidationError] = useState(void 0);
72
81
  const { ref: gridRef, measuredHeight: gridHeight } = useMeasuredHeight();
82
+ const skillConfigs = useWizardStore((s) => s.skillConfigs);
83
+ const handleFocusedSkillChange = useCallback(
84
+ (id) => useWizardStore.getState().setFocusedSkillId(id),
85
+ []
86
+ );
73
87
  const orderedDomains = useMemo2(() => orderDomains(selectedDomains), [selectedDomains]);
74
88
  const categories = useFrameworkFiltering({
75
89
  domain: activeDomain,
76
90
  allSelections,
77
91
  matrix,
78
92
  selections,
79
- installedSkillIds
93
+ installedSkillIds,
94
+ skillConfigs
80
95
  });
81
96
  useInput((_input, key) => {
82
97
  if (key.return) {
@@ -121,7 +136,8 @@ var StepBuild = ({
121
136
  availableHeight: gridHeight,
122
137
  showLabels,
123
138
  onToggle,
124
- onToggleLabels
139
+ onToggleLabels,
140
+ onFocusedSkillChange: handleFocusedSkillChange
125
141
  },
126
142
  activeDomain
127
143
  ) }),
@@ -132,4 +148,4 @@ var StepBuild = ({
132
148
  export {
133
149
  StepBuild
134
150
  };
135
- //# sourceMappingURL=chunk-QB5HHTAA.js.map
151
+ //# sourceMappingURL=chunk-TC3NHO34.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/components/wizard/step-build.tsx","../src/cli/lib/wizard/index.ts","../src/cli/components/hooks/use-framework-filtering.ts"],"sourcesContent":["import { Box, Text, useInput } from \"ink\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport { validateBuildStep } from \"../../lib/wizard/index.js\";\nimport type {\n Domain,\n MergedSkillsMatrix,\n SkillId,\n Category,\n CategorySelections,\n} from \"../../types/index.js\";\nimport { useFrameworkFiltering } from \"../hooks/use-framework-filtering.js\";\nimport { useMeasuredHeight } from \"../hooks/use-measured-height.js\";\nimport { useWizardStore } from \"../../stores/wizard-store.js\";\nimport { CategoryGrid } from \"./category-grid.js\";\nimport { getDomainDisplayName, orderDomains } from \"./utils.js\";\nimport { ViewTitle } from \"./view-title.js\";\n\nexport type StepBuildProps = {\n matrix: MergedSkillsMatrix;\n domain: Domain;\n selectedDomains: Domain[];\n selections: CategorySelections;\n allSelections: SkillId[];\n showLabels: boolean;\n /** Skill IDs already installed on disk, shown with a dimmed checkmark */\n installedSkillIds?: SkillId[];\n onToggle: (categoryId: Category, technologyId: SkillId) => void;\n onToggleLabels: () => void;\n onContinue: () => void;\n onBack: () => void;\n};\n\ntype FooterProps = {\n validationError?: string;\n};\n\nconst Footer: React.FC<FooterProps> = ({ validationError }) => {\n return (\n <Box flexDirection=\"column\" marginTop={1}>\n {validationError && (\n <Box flexDirection=\"column\" marginBottom={1}>\n <Text color={CLI_COLORS.WARNING}>{validationError}</Text>\n <Text dimColor>Press ESC to go back, or select a skill and press ENTER to continue.</Text>\n </Box>\n )}\n </Box>\n );\n};\n\nexport const StepBuild: React.FC<StepBuildProps> = ({\n matrix,\n domain: activeDomain,\n selectedDomains,\n selections,\n allSelections,\n showLabels,\n installedSkillIds,\n onToggle,\n onToggleLabels,\n onContinue,\n onBack,\n}) => {\n const [validationError, setValidationError] = useState<string | undefined>(undefined);\n const { ref: gridRef, measuredHeight: gridHeight } = useMeasuredHeight();\n const skillConfigs = useWizardStore((s) => s.skillConfigs);\n\n const handleFocusedSkillChange = useCallback(\n (id: SkillId | null) => useWizardStore.getState().setFocusedSkillId(id),\n [],\n );\n\n const orderedDomains = useMemo(() => orderDomains(selectedDomains), [selectedDomains]);\n\n const categories = useFrameworkFiltering({\n domain: activeDomain,\n allSelections,\n matrix,\n selections,\n installedSkillIds,\n skillConfigs,\n });\n\n useInput((_input, key) => {\n if (key.return) {\n const validation = validateBuildStep(categories, selections);\n if (validation.valid) {\n setValidationError(undefined);\n onContinue();\n } else {\n setValidationError(validation.message);\n }\n } else if (key.escape) {\n setValidationError(undefined);\n onBack();\n }\n });\n\n return (\n <Box flexDirection=\"column\" width=\"100%\" flexGrow={1} flexBasis={0}>\n <Box\n columnGap={2}\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n marginBottom={1}\n paddingRight={1}\n marginTop={-1}\n borderTop={false}\n borderRight={false}\n borderLeft={false}\n borderColor={CLI_COLORS.NEUTRAL}\n borderStyle=\"single\"\n >\n <Box columnGap={2} flexDirection=\"row\">\n {orderedDomains.map((domain) => {\n const isActive = domain === activeDomain;\n return (\n <Text key={domain} color={isActive ? CLI_COLORS.WARNING : undefined} bold={isActive}>\n {getDomainDisplayName(domain)}\n </Text>\n );\n })}\n </Box>\n </Box>\n <ViewTitle>{`Customize your ${getDomainDisplayName(activeDomain)} stack`}</ViewTitle>\n\n <Box ref={gridRef} flexGrow={1} flexBasis={0}>\n <CategoryGrid\n key={activeDomain}\n categories={categories}\n availableHeight={gridHeight}\n showLabels={showLabels}\n onToggle={onToggle}\n onToggleLabels={onToggleLabels}\n onFocusedSkillChange={handleFocusedSkillChange}\n />\n </Box>\n\n <Footer validationError={validationError} />\n </Box>\n );\n};\n","export {\n type BuildStepValidation,\n validateBuildStep,\n computeOptionState,\n getSkillDisplayLabel,\n buildCategoriesForDomain,\n} from \"./build-step-logic\";\n","import { useMemo } from \"react\";\nimport type { Domain, MergedSkillsMatrix, SkillId, CategorySelections } from \"../../types/index.js\";\nimport type { SkillConfig } from \"../../types/config.js\";\nimport { buildCategoriesForDomain } from \"../../lib/wizard/index.js\";\nimport type { CategoryRow } from \"../wizard/category-grid.js\";\n\ntype UseFrameworkFilteringOptions = {\n domain: Domain;\n allSelections: SkillId[];\n matrix: MergedSkillsMatrix;\n selections: CategorySelections;\n installedSkillIds?: SkillId[];\n skillConfigs?: SkillConfig[];\n};\n\nexport function useFrameworkFiltering({\n domain,\n allSelections,\n matrix,\n selections,\n installedSkillIds,\n skillConfigs,\n}: UseFrameworkFilteringOptions): CategoryRow[] {\n return useMemo(\n () =>\n buildCategoriesForDomain(\n domain,\n allSelections,\n matrix,\n selections,\n installedSkillIds,\n skillConfigs,\n ),\n [domain, allSelections, matrix, selections, installedSkillIds, skillConfigs],\n );\n}\n"],"mappings":"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","names":["useMemo","useMemo"]}
@@ -1,19 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
- getDomainDisplayName
4
- } from "./chunk-HYEUETIC.js";
3
+ getDomainDisplayName,
4
+ orderDomains
5
+ } from "./chunk-BKJHAJQW.js";
5
6
  import {
6
7
  CheckboxGrid
7
- } from "./chunk-C3Q43WLC.js";
8
+ } from "./chunk-CIG7IKX3.js";
8
9
  import {
9
10
  useWizardStore
10
- } from "./chunk-5FCHJLM7.js";
11
+ } from "./chunk-WF6RM73R.js";
11
12
  import {
12
13
  typedEntries
13
14
  } from "./chunk-T4EXUIBY.js";
14
- import {
15
- BUILT_IN_DOMAIN_ORDER
16
- } from "./chunk-AWP5A6IM.js";
17
15
  import {
18
16
  init_esm_shims
19
17
  } from "./chunk-DHET7RCE.js";
@@ -34,12 +32,9 @@ var DomainSelection = ({ matrix }) => {
34
32
  const { selectedDomains, toggleDomain, setStep, setApproach, selectStack } = useWizardStore();
35
33
  const availableDomains = useMemo(() => {
36
34
  const matrixDomains = unique(
37
- typedEntries(matrix.categories).map(([, cat]) => cat?.domain).filter((d) => d != null && d !== "shared")
35
+ typedEntries(matrix.categories).map(([, cat]) => cat?.domain).filter((d) => d != null)
38
36
  );
39
- const ordered = [
40
- ...BUILT_IN_DOMAIN_ORDER.filter((d) => matrixDomains.includes(d)),
41
- ...matrixDomains.filter((d) => !BUILT_IN_DOMAIN_ORDER.includes(d))
42
- ];
37
+ const ordered = orderDomains(matrixDomains);
43
38
  return ordered.map((domain) => ({
44
39
  id: domain,
45
40
  label: getDomainDisplayName(domain),
@@ -67,4 +62,4 @@ var DomainSelection = ({ matrix }) => {
67
62
  export {
68
63
  DomainSelection
69
64
  };
70
- //# sourceMappingURL=chunk-5L724R4C.js.map
65
+ //# sourceMappingURL=chunk-TGLRDEEL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/components/wizard/domain-selection.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { unique } from \"remeda\";\nimport { useWizardStore } from \"../../stores/wizard-store.js\";\nimport type { Domain, MergedSkillsMatrix } from \"../../types/index.js\";\nimport { typedEntries } from \"../../utils/typed-object.js\";\nimport { CheckboxGrid, type CheckboxItem } from \"./checkbox-grid.js\";\nimport { getDomainDisplayName, orderDomains } from \"./utils.js\";\n\nconst BUILT_IN_DOMAIN_DESCRIPTIONS: Record<Domain, string> = {\n web: \"Frontend web applications\",\n api: \"Backend APIs and services\",\n cli: \"Command-line tools\",\n mobile: \"Mobile applications\",\n shared: \"Shared utilities and methodology\",\n};\n\ntype DomainSelectionProps = {\n matrix: MergedSkillsMatrix;\n};\n\nexport const DomainSelection: React.FC<DomainSelectionProps> = ({ matrix }) => {\n const { selectedDomains, toggleDomain, setStep, setApproach, selectStack } = useWizardStore();\n\n const availableDomains = useMemo((): CheckboxItem<Domain>[] => {\n const matrixDomains = unique(\n typedEntries(matrix.categories)\n .map(([, cat]) => cat?.domain)\n .filter((d): d is Domain => d != null),\n );\n\n const ordered = orderDomains(matrixDomains);\n\n return ordered.map((domain) => ({\n id: domain,\n label: getDomainDisplayName(domain),\n description: BUILT_IN_DOMAIN_DESCRIPTIONS[domain] ?? `${getDomainDisplayName(domain)} skills`,\n }));\n }, [matrix]);\n\n const handleBack = () => {\n setApproach(null);\n selectStack(null);\n };\n\n return (\n <CheckboxGrid\n title=\"Select domains to configure\"\n // subtitle=\"Select one or more domains, then continue\"\n items={availableDomains}\n selectedIds={selectedDomains}\n onToggle={toggleDomain}\n onContinue={() => setStep(\"build\")}\n onBack={handleBack}\n emptyMessage=\"Please select at least one domain\"\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAgB,eAAe;AAC/B,SAAS,cAAc;AA4CnB;AArCJ,IAAM,+BAAuD;AAAA,EAC3D,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AACV;AAMO,IAAM,kBAAkD,CAAC,EAAE,OAAO,MAAM;AAC7E,QAAM,EAAE,iBAAiB,cAAc,SAAS,aAAa,YAAY,IAAI,eAAe;AAE5F,QAAM,mBAAmB,QAAQ,MAA8B;AAC7D,UAAM,gBAAgB;AAAA,MACpB,aAAa,OAAO,UAAU,EAC3B,IAAI,CAAC,CAAC,EAAE,GAAG,MAAM,KAAK,MAAM,EAC5B,OAAO,CAAC,MAAmB,KAAK,IAAI;AAAA,IACzC;AAEA,UAAM,UAAU,aAAa,aAAa;AAE1C,WAAO,QAAQ,IAAI,CAAC,YAAY;AAAA,MAC9B,IAAI;AAAA,MACJ,OAAO,qBAAqB,MAAM;AAAA,MAClC,aAAa,6BAA6B,MAAM,KAAK,GAAG,qBAAqB,MAAM,CAAC;AAAA,IACtF,EAAE;AAAA,EACJ,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,aAAa,MAAM;AACvB,gBAAY,IAAI;AAChB,gBAAY,IAAI;AAAA,EAClB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MAEN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,MACV,YAAY,MAAM,QAAQ,OAAO;AAAA,MACjC,QAAQ;AAAA,MACR,cAAa;AAAA;AAAA,EACf;AAEJ;","names":[]}