@agents-inc/cli 0.81.1 → 0.82.2

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 (185) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/{chunk-633YIZOU.js → chunk-32HQMUEJ.js} +3 -3
  3. package/dist/{chunk-3C6AXGR7.js → chunk-3BDCU5QB.js} +13 -13
  4. package/dist/chunk-3BDCU5QB.js.map +1 -0
  5. package/dist/{chunk-XQWMNUX6.js → chunk-3BM5F4IX.js} +6 -6
  6. package/dist/{chunk-4R6I6A3U.js → chunk-3MXMYHO3.js} +1339 -1284
  7. package/dist/chunk-3MXMYHO3.js.map +1 -0
  8. package/dist/{chunk-2SJKI2HI.js → chunk-4DXSCGVI.js} +7 -8
  9. package/dist/chunk-4DXSCGVI.js.map +1 -0
  10. package/dist/{chunk-SQ7WINEU.js → chunk-4QA5TIBU.js} +3 -3
  11. package/dist/{chunk-IVFLVH4G.js → chunk-57HHZMWR.js} +9 -9
  12. package/dist/{chunk-MNJAF4K2.js → chunk-5BRHJD7Q.js} +5 -5
  13. package/dist/{chunk-KYGQS6PK.js → chunk-6EMIA36T.js} +5 -5
  14. package/dist/{chunk-FMYAYX6W.js → chunk-6PGL2XMY.js} +11 -2
  15. package/dist/{chunk-FMYAYX6W.js.map → chunk-6PGL2XMY.js.map} +1 -1
  16. package/dist/{chunk-K63OEZW7.js → chunk-6XEZLWG5.js} +2 -2
  17. package/dist/{chunk-AAR2SNR2.js → chunk-ABBXUIMQ.js} +8 -5
  18. package/dist/chunk-ABBXUIMQ.js.map +1 -0
  19. package/dist/{chunk-4R72372U.js → chunk-AD2UT2TN.js} +3 -3
  20. package/dist/{chunk-4R72372U.js.map → chunk-AD2UT2TN.js.map} +1 -1
  21. package/dist/{chunk-M76LNKMY.js → chunk-B7KZLXHV.js} +2 -2
  22. package/dist/{chunk-H3NQGJMB.js → chunk-C4I4Q33M.js} +3 -3
  23. package/dist/{chunk-PZERKWE2.js → chunk-FQTYF3OU.js} +2 -2
  24. package/dist/{chunk-3SCIYMRK.js → chunk-FS4YWW36.js} +7 -4
  25. package/dist/chunk-FS4YWW36.js.map +1 -0
  26. package/dist/{chunk-MG55NDVG.js → chunk-FT46LN7K.js} +3 -3
  27. package/dist/{chunk-WZGROC5L.js → chunk-GEU62YD2.js} +4 -4
  28. package/dist/{chunk-ARVW74DG.js → chunk-GMR4PQX3.js} +6 -6
  29. package/dist/{chunk-3REKTRAN.js → chunk-HEQVUIHQ.js} +2 -2
  30. package/dist/{chunk-WKIPL7P6.js → chunk-HRMPQ4DV.js} +5 -5
  31. package/dist/{chunk-RU5XLS5Q.js → chunk-HSKKGAOW.js} +3 -3
  32. package/dist/{chunk-LO4X32JC.js → chunk-IMO6EQKT.js} +20 -20
  33. package/dist/chunk-IMO6EQKT.js.map +1 -0
  34. package/dist/{chunk-NJ2RJLRS.js → chunk-IMP35ETG.js} +290 -247
  35. package/dist/chunk-IMP35ETG.js.map +1 -0
  36. package/dist/{chunk-UXKXPDOT.js → chunk-L4JYOUGS.js} +8 -8
  37. package/dist/{chunk-EYFBODHL.js → chunk-MC5PUGEL.js} +2 -2
  38. package/dist/{chunk-B6WAMTYR.js → chunk-R5LEXRV3.js} +6 -6
  39. package/dist/{chunk-HCN67E7Z.js → chunk-RX6HPZ7A.js} +6 -6
  40. package/dist/{chunk-A5JSBU65.js → chunk-SB2R5KHJ.js} +3 -3
  41. package/dist/{chunk-NZAJTLEK.js → chunk-SOEIE4VA.js} +3 -3
  42. package/dist/{chunk-C22ACAL2.js → chunk-SXGCCUTH.js} +2 -2
  43. package/dist/{chunk-LVBRC2CP.js → chunk-TEA5KBIA.js} +2 -2
  44. package/dist/{chunk-FW4NVUIG.js → chunk-TY5BOAAA.js} +5 -5
  45. package/dist/{chunk-A7BQTWI4.js → chunk-VO6JKRLT.js} +2 -2
  46. package/dist/{chunk-FFMWFEUH.js → chunk-WJXWYSBT.js} +2 -2
  47. package/dist/{chunk-BN73X3JN.js → chunk-WYHFSJ7O.js} +12 -6
  48. package/dist/chunk-WYHFSJ7O.js.map +1 -0
  49. package/dist/{chunk-TQ363UUH.js → chunk-X2HE3W74.js} +2 -2
  50. package/dist/{chunk-MLXAZODL.js → chunk-XO6X5QE5.js} +2 -2
  51. package/dist/{chunk-TZY7WNWO.js → chunk-XTVWVOLD.js} +3 -3
  52. package/dist/chunk-YVFGISUO.js +171 -0
  53. package/dist/chunk-YVFGISUO.js.map +1 -0
  54. package/dist/{chunk-VSMGVVZF.js → chunk-YXOZJWP3.js} +4 -4
  55. package/dist/{chunk-2KEBGORS.js → chunk-ZAYTTG3M.js} +5 -5
  56. package/dist/{chunk-V3EDF3IA.js → chunk-ZKQ4XQNO.js} +15 -15
  57. package/dist/commands/build/marketplace.js +5 -5
  58. package/dist/commands/build/plugins.js +9 -9
  59. package/dist/commands/build/stack.js +9 -9
  60. package/dist/commands/compile.js +10 -10
  61. package/dist/commands/config/index.js +9 -9
  62. package/dist/commands/config/path.js +8 -8
  63. package/dist/commands/config/show.js +9 -9
  64. package/dist/commands/diff.js +8 -8
  65. package/dist/commands/doctor.js +8 -8
  66. package/dist/commands/edit.js +34 -34
  67. package/dist/commands/eject.js +8 -8
  68. package/dist/commands/import/skill.js +9 -9
  69. package/dist/commands/info.js +9 -9
  70. package/dist/commands/init.js +34 -34
  71. package/dist/commands/list.js +8 -8
  72. package/dist/commands/new/agent.js +9 -9
  73. package/dist/commands/new/marketplace.js +10 -10
  74. package/dist/commands/new/skill.js +9 -9
  75. package/dist/commands/outdated.js +8 -8
  76. package/dist/commands/search.js +11 -11
  77. package/dist/commands/uninstall.js +9 -9
  78. package/dist/commands/update.js +10 -10
  79. package/dist/commands/validate.js +9 -9
  80. package/dist/components/common/select-list.js +2 -2
  81. package/dist/components/skill-search/skill-search.js +3 -3
  82. package/dist/components/wizard/category-grid.js +4 -4
  83. package/dist/components/wizard/category-grid.test.js +13 -13
  84. package/dist/components/wizard/checkbox-grid.js +4 -4
  85. package/dist/components/wizard/checkbox-grid.test.js +4 -4
  86. package/dist/components/wizard/domain-selection.js +13 -13
  87. package/dist/components/wizard/help-modal.js +2 -2
  88. package/dist/components/wizard/menu-item.js +1 -1
  89. package/dist/components/wizard/search-modal.js +3 -3
  90. package/dist/components/wizard/search-modal.test.js +3 -3
  91. package/dist/components/wizard/section-progress.js +2 -2
  92. package/dist/components/wizard/section-progress.test.js +2 -2
  93. package/dist/components/wizard/selection-card.js +2 -2
  94. package/dist/components/wizard/source-grid.js +6 -6
  95. package/dist/components/wizard/source-grid.test.js +15 -15
  96. package/dist/components/wizard/stack-selection.js +11 -11
  97. package/dist/components/wizard/stats-panel.js +2 -2
  98. package/dist/components/wizard/step-agents.js +12 -12
  99. package/dist/components/wizard/step-agents.test.js +15 -15
  100. package/dist/components/wizard/step-build.js +12 -12
  101. package/dist/components/wizard/step-build.test.js +15 -15
  102. package/dist/components/wizard/step-confirm.js +5 -5
  103. package/dist/components/wizard/step-confirm.test.js +11 -11
  104. package/dist/components/wizard/step-refine.js +2 -2
  105. package/dist/components/wizard/step-refine.test.js +2 -2
  106. package/dist/components/wizard/step-settings.js +10 -10
  107. package/dist/components/wizard/step-settings.test.js +13 -13
  108. package/dist/components/wizard/step-sources.js +14 -14
  109. package/dist/components/wizard/step-sources.test.js +17 -17
  110. package/dist/components/wizard/step-stack.js +12 -12
  111. package/dist/components/wizard/step-stack.test.js +13 -13
  112. package/dist/components/wizard/wizard-layout.js +12 -12
  113. package/dist/components/wizard/wizard-tabs.js +2 -2
  114. package/dist/components/wizard/wizard-tabs.test.js +2 -2
  115. package/dist/components/wizard/wizard.js +31 -31
  116. package/dist/config-exports.js +1 -1
  117. package/dist/hooks/init.js +34 -34
  118. package/dist/{loader-LI3EM4VG.js → loader-4XPDVCZK.js} +5 -5
  119. package/dist/{source-loader-MTWQPEGK.js → source-loader-C2QCBXOB.js} +8 -8
  120. package/dist/source-manager-DLEHJUZL.js +19 -0
  121. package/dist/src/agents/meta/agent-summoner/workflow.md +2 -2
  122. package/dist/src/agents/meta/skill-summoner/critical-reminders.md +1 -1
  123. package/dist/src/agents/meta/skill-summoner/examples.md +14 -16
  124. package/dist/src/agents/meta/skill-summoner/intro.md +1 -1
  125. package/dist/src/agents/meta/skill-summoner/output-format.md +9 -13
  126. package/dist/src/agents/meta/skill-summoner/workflow.md +20 -1
  127. package/dist/stores/wizard-store.js +8 -8
  128. package/dist/stores/wizard-store.test.js +36 -36
  129. package/dist/stores/wizard-store.test.js.map +1 -1
  130. package/package.json +1 -1
  131. package/src/agents/meta/agent-summoner/workflow.md +2 -2
  132. package/src/agents/meta/skill-summoner/critical-reminders.md +1 -1
  133. package/src/agents/meta/skill-summoner/examples.md +14 -16
  134. package/src/agents/meta/skill-summoner/intro.md +1 -1
  135. package/src/agents/meta/skill-summoner/output-format.md +9 -13
  136. package/src/agents/meta/skill-summoner/workflow.md +20 -1
  137. package/src/schemas/metadata.schema.json +21 -4
  138. package/src/schemas/project-config.schema.json +48 -35
  139. package/dist/chunk-2SJKI2HI.js.map +0 -1
  140. package/dist/chunk-3C6AXGR7.js.map +0 -1
  141. package/dist/chunk-3SCIYMRK.js.map +0 -1
  142. package/dist/chunk-4R6I6A3U.js.map +0 -1
  143. package/dist/chunk-AAR2SNR2.js.map +0 -1
  144. package/dist/chunk-BN73X3JN.js.map +0 -1
  145. package/dist/chunk-LO4X32JC.js.map +0 -1
  146. package/dist/chunk-NJ2RJLRS.js.map +0 -1
  147. package/dist/chunk-TJXBRYM4.js +0 -159
  148. package/dist/chunk-TJXBRYM4.js.map +0 -1
  149. package/dist/source-manager-JJIJP75Q.js +0 -19
  150. /package/dist/{chunk-633YIZOU.js.map → chunk-32HQMUEJ.js.map} +0 -0
  151. /package/dist/{chunk-XQWMNUX6.js.map → chunk-3BM5F4IX.js.map} +0 -0
  152. /package/dist/{chunk-SQ7WINEU.js.map → chunk-4QA5TIBU.js.map} +0 -0
  153. /package/dist/{chunk-IVFLVH4G.js.map → chunk-57HHZMWR.js.map} +0 -0
  154. /package/dist/{chunk-MNJAF4K2.js.map → chunk-5BRHJD7Q.js.map} +0 -0
  155. /package/dist/{chunk-KYGQS6PK.js.map → chunk-6EMIA36T.js.map} +0 -0
  156. /package/dist/{chunk-K63OEZW7.js.map → chunk-6XEZLWG5.js.map} +0 -0
  157. /package/dist/{chunk-M76LNKMY.js.map → chunk-B7KZLXHV.js.map} +0 -0
  158. /package/dist/{chunk-H3NQGJMB.js.map → chunk-C4I4Q33M.js.map} +0 -0
  159. /package/dist/{chunk-PZERKWE2.js.map → chunk-FQTYF3OU.js.map} +0 -0
  160. /package/dist/{chunk-MG55NDVG.js.map → chunk-FT46LN7K.js.map} +0 -0
  161. /package/dist/{chunk-WZGROC5L.js.map → chunk-GEU62YD2.js.map} +0 -0
  162. /package/dist/{chunk-ARVW74DG.js.map → chunk-GMR4PQX3.js.map} +0 -0
  163. /package/dist/{chunk-3REKTRAN.js.map → chunk-HEQVUIHQ.js.map} +0 -0
  164. /package/dist/{chunk-WKIPL7P6.js.map → chunk-HRMPQ4DV.js.map} +0 -0
  165. /package/dist/{chunk-RU5XLS5Q.js.map → chunk-HSKKGAOW.js.map} +0 -0
  166. /package/dist/{chunk-UXKXPDOT.js.map → chunk-L4JYOUGS.js.map} +0 -0
  167. /package/dist/{chunk-EYFBODHL.js.map → chunk-MC5PUGEL.js.map} +0 -0
  168. /package/dist/{chunk-B6WAMTYR.js.map → chunk-R5LEXRV3.js.map} +0 -0
  169. /package/dist/{chunk-HCN67E7Z.js.map → chunk-RX6HPZ7A.js.map} +0 -0
  170. /package/dist/{chunk-A5JSBU65.js.map → chunk-SB2R5KHJ.js.map} +0 -0
  171. /package/dist/{chunk-NZAJTLEK.js.map → chunk-SOEIE4VA.js.map} +0 -0
  172. /package/dist/{chunk-C22ACAL2.js.map → chunk-SXGCCUTH.js.map} +0 -0
  173. /package/dist/{chunk-LVBRC2CP.js.map → chunk-TEA5KBIA.js.map} +0 -0
  174. /package/dist/{chunk-FW4NVUIG.js.map → chunk-TY5BOAAA.js.map} +0 -0
  175. /package/dist/{chunk-A7BQTWI4.js.map → chunk-VO6JKRLT.js.map} +0 -0
  176. /package/dist/{chunk-FFMWFEUH.js.map → chunk-WJXWYSBT.js.map} +0 -0
  177. /package/dist/{chunk-TQ363UUH.js.map → chunk-X2HE3W74.js.map} +0 -0
  178. /package/dist/{chunk-MLXAZODL.js.map → chunk-XO6X5QE5.js.map} +0 -0
  179. /package/dist/{chunk-TZY7WNWO.js.map → chunk-XTVWVOLD.js.map} +0 -0
  180. /package/dist/{chunk-VSMGVVZF.js.map → chunk-YXOZJWP3.js.map} +0 -0
  181. /package/dist/{chunk-2KEBGORS.js.map → chunk-ZAYTTG3M.js.map} +0 -0
  182. /package/dist/{chunk-V3EDF3IA.js.map → chunk-ZKQ4XQNO.js.map} +0 -0
  183. /package/dist/{loader-LI3EM4VG.js.map → loader-4XPDVCZK.js.map} +0 -0
  184. /package/dist/{source-loader-MTWQPEGK.js.map → source-loader-C2QCBXOB.js.map} +0 -0
  185. /package/dist/{source-manager-JJIJP75Q.js.map → source-manager-DLEHJUZL.js.map} +0 -0
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  WIZARD_STEPS,
4
4
  WizardTabs
5
- } from "./chunk-TJXBRYM4.js";
5
+ } from "./chunk-YVFGISUO.js";
6
6
  import {
7
7
  FEATURE_FLAGS
8
8
  } from "./chunk-V36FRPAU.js";
@@ -10,13 +10,13 @@ import {
10
10
  getDomainDisplayName,
11
11
  getStackName,
12
12
  orderDomains
13
- } from "./chunk-3SCIYMRK.js";
13
+ } from "./chunk-FS4YWW36.js";
14
14
  import {
15
15
  HelpModal
16
- } from "./chunk-C22ACAL2.js";
16
+ } from "./chunk-SXGCCUTH.js";
17
17
  import {
18
18
  useWizardStore
19
- } from "./chunk-FW4NVUIG.js";
19
+ } from "./chunk-TY5BOAAA.js";
20
20
  import {
21
21
  HOTKEY_FILTER_INCOMPATIBLE,
22
22
  HOTKEY_HELP,
@@ -31,7 +31,7 @@ import {
31
31
  } from "./chunk-HK53FRMU.js";
32
32
  import {
33
33
  CLI_COLORS
34
- } from "./chunk-FMYAYX6W.js";
34
+ } from "./chunk-6PGL2XMY.js";
35
35
  import {
36
36
  init_esm_shims
37
37
  } from "./chunk-DHET7RCE.js";
@@ -161,8 +161,7 @@ var WizardLayout = ({
161
161
  }
162
162
  if (store.step === "confirm") {
163
163
  const stackName = getStackName(store.selectedStackId);
164
- const domainsText = store.selectedDomains.map(getDomainDisplayName).join(" + ");
165
- const label = stackName ? `Ready to install ${stackName}` : `Ready to install your custom stack${domainsText ? ` (${domainsText})` : ""}`;
164
+ const label = stackName ? `Ready to install ${stackName}` : "Ready to install your custom stack";
166
165
  dropdowns.confirm = { items: [{ id: label, label }] };
167
166
  }
168
167
  return /* @__PURE__ */ jsxs(Fragment2, { children: [
@@ -251,4 +250,4 @@ var WizardLayout = ({
251
250
  export {
252
251
  WizardLayout
253
252
  };
254
- //# sourceMappingURL=chunk-2SJKI2HI.js.map
253
+ //# sourceMappingURL=chunk-4DXSCGVI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/components/wizard/wizard-layout.tsx","../src/cli/components/hooks/use-terminal-dimensions.ts"],"sourcesContent":["import { Box, Static, Text } from \"ink\";\nimport React, { Fragment } from \"react\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport type { StartupMessage } from \"../../utils/logger.js\";\nimport { FEATURE_FLAGS } from \"../../lib/feature-flags.js\";\nimport { useWizardStore, type WizardStep } from \"../../stores/wizard-store.js\";\nimport { useTerminalDimensions } from \"../hooks/use-terminal-dimensions.js\";\nimport { HelpModal } from \"./help-modal.js\";\nimport {\n HOTKEY_HELP,\n HOTKEY_SCOPE,\n HOTKEY_SET_ALL_LOCAL,\n HOTKEY_SET_ALL_PLUGIN,\n HOTKEY_SETTINGS,\n HOTKEY_FILTER_INCOMPATIBLE,\n HOTKEY_TOGGLE_LABELS,\n KEY_LABEL_ENTER,\n KEY_LABEL_ESC,\n KEY_LABEL_SPACE,\n} from \"./hotkeys.js\";\nimport {\n WIZARD_STEPS,\n WizardTabs,\n type DomainNavProps,\n type TabDropdownProps,\n} from \"./wizard-tabs.js\";\nimport { getDomainDisplayName, getStackName, orderDomains } from \"./utils.js\";\nimport type { Domain } from \"../../types/index.js\";\n\ntype KeyHintProps = {\n isVisible?: boolean;\n isActive?: boolean;\n label: string;\n values: string[];\n};\n\nconst DefinitionItem: React.FC<KeyHintProps> = ({\n isVisible = true,\n isActive = false,\n label,\n values,\n}) => {\n if (!isVisible) {\n return null;\n }\n\n return (\n <Text>\n {values.map((value) => (\n <Fragment key={value}>\n <Text\n backgroundColor=\"black\"\n color={isActive ? CLI_COLORS.PRIMARY : CLI_COLORS.UNFOCUSED}\n >\n {\" \"}\n {value}{\" \"}\n </Text>{\" \"}\n </Fragment>\n ))}\n <Text color={isActive ? CLI_COLORS.PRIMARY : undefined}>{label}</Text>\n </Text>\n );\n};\n\nconst HOT_KEYS: { label: string; values: string[] }[] = [\n { label: \"select\", values: [KEY_LABEL_SPACE] },\n { label: \"continue\", values: [KEY_LABEL_ENTER] },\n { label: \"back\", values: [KEY_LABEL_ESC] },\n];\n\nconst WizardFooter = () => {\n return (\n <Box\n columnGap={2}\n borderTop\n borderRight={false}\n borderBottom\n borderLeft={false}\n borderColor=\"blackBright\"\n borderStyle=\"single\"\n paddingLeft={1}\n paddingRight={1}\n >\n {HOT_KEYS.map((hotkey) => (\n <DefinitionItem {...hotkey} key={hotkey.label} />\n ))}\n </Box>\n );\n};\n\ntype WizardLayoutProps = {\n version?: string;\n logo?: string;\n startupMessages?: StartupMessage[];\n children: React.ReactNode;\n};\n\nexport const WizardLayout: React.FC<WizardLayoutProps> = ({\n version,\n logo,\n startupMessages,\n children,\n}) => {\n const store = useWizardStore();\n const { completedSteps, skippedSteps } = store.getStepProgress();\n const { rows: terminalHeight } = useTerminalDimensions();\n\n const handleSelectDomain = (domain: Domain) => {\n const index = store.selectedDomains.indexOf(domain);\n if (index !== -1) {\n useWizardStore.getState().setCurrentDomainIndex(index);\n }\n };\n\n const domainNav: DomainNavProps | undefined =\n store.step === \"build\" && store.selectedDomains.length > 0\n ? {\n domains: orderDomains(store.selectedDomains),\n activeDomain: (store.getCurrentDomain() || store.selectedDomains[0] || \"web\") as Domain,\n getDomainLabel: getDomainDisplayName,\n onSelectDomain: handleSelectDomain,\n }\n : undefined;\n\n // TODO: dropdowns should be in a map\n const dropdowns: Partial<Record<WizardStep, TabDropdownProps>> = {};\n\n if (store.step === \"stack\") {\n const label = \"Choose a stack\";\n dropdowns.stack = { items: [{ id: label, label }] };\n }\n\n if (store.step === \"domains\") {\n const label = \"Select domains\";\n dropdowns.domains = { items: [{ id: label, label }] };\n }\n\n if (store.step === \"sources\") {\n const label = \"Customize skill sources\";\n dropdowns.sources = { items: [{ id: label, label }] };\n }\n\n if (store.step === \"agents\") {\n const label = \"Select agents\";\n dropdowns.agents = { items: [{ id: label, label }] };\n }\n\n if (store.step === \"confirm\") {\n const stackName = getStackName(store.selectedStackId);\n const label = stackName\n ? `Ready to install ${stackName}`\n : \"Ready to install your custom stack\";\n dropdowns.confirm = { items: [{ id: label, label }] };\n }\n\n return (\n <>\n {startupMessages && startupMessages.length > 0 && (\n <Static items={startupMessages}>\n {(msg, index) => (\n <Box key={index}>\n <Text\n color={msg.level === \"warn\" ? \"yellow\" : msg.level === \"error\" ? \"red\" : undefined}\n >\n {msg.level === \"warn\" ? ` Warning: ${msg.text}` : msg.text}\n </Text>\n </Box>\n )}\n </Static>\n )}\n <Box flexDirection=\"column\" paddingX={1} height={terminalHeight}>\n {logo && store.step === \"stack\" && (\n <Box flexDirection=\"row\" marginTop={1} columnGap={1}>\n <Text>{logo}</Text>\n </Box>\n )}\n <WizardTabs\n steps={WIZARD_STEPS}\n currentStep={store.step}\n completedSteps={completedSteps}\n skippedSteps={skippedSteps}\n version={version}\n domainNav={domainNav}\n dropdowns={dropdowns}\n />\n {store.showHelp ? (\n <HelpModal currentStep={store.step} />\n ) : (\n <>\n <Box flexDirection=\"column\" flexGrow={1} flexBasis={0} marginTop={1}>\n {children}\n </Box>\n <Box paddingX={1} columnGap={2} marginTop={2}>\n <DefinitionItem\n label=\"Labels\"\n values={[HOTKEY_TOGGLE_LABELS.label]}\n isVisible={store.step === \"build\"}\n />\n <DefinitionItem\n label=\"Filter incompatible\"\n values={[HOTKEY_FILTER_INCOMPATIBLE.label]}\n isVisible={store.step === \"build\"}\n isActive={store.filterIncompatible}\n />\n <DefinitionItem\n label=\"Scope\"\n values={[HOTKEY_SCOPE.label]}\n isVisible={store.step === \"build\" || store.step === \"agents\"}\n />\n <DefinitionItem\n label=\"Set all local\"\n values={[HOTKEY_SET_ALL_LOCAL.label]}\n isVisible={store.step === \"sources\"}\n />\n <DefinitionItem\n label=\"Set all plugin\"\n values={[HOTKEY_SET_ALL_PLUGIN.label]}\n isVisible={store.step === \"sources\"}\n />\n <DefinitionItem\n label=\"Settings\"\n values={[HOTKEY_SETTINGS.label]}\n isVisible={store.step === \"sources\" && FEATURE_FLAGS.SOURCE_SEARCH}\n isActive={store.showSettings}\n />\n <DefinitionItem label=\"Help\" values={[HOTKEY_HELP.label]} />\n </Box>\n <WizardFooter />\n </>\n )}\n </Box>\n </>\n );\n};\n","import { useState, useEffect } from \"react\";\nimport { useStdout } from \"ink\";\n\nconst DEFAULT_COLUMNS = 80;\nconst DEFAULT_ROWS = 24;\n\nexport type TerminalDimensions = {\n /** Terminal width in columns */\n columns: number;\n /** Terminal height in rows */\n rows: number;\n};\n\n/**\n * Tracks terminal dimensions reactively. Re-renders on resize.\n *\n * Falls back to DEFAULT_COLUMNS x DEFAULT_ROWS when stdout is not a TTY\n * (e.g., piped output, CI environments, tests).\n */\nexport function useTerminalDimensions(): TerminalDimensions {\n const { stdout } = useStdout();\n\n const [dimensions, setDimensions] = useState<TerminalDimensions>(() => ({\n columns: stdout.columns || DEFAULT_COLUMNS,\n rows: stdout.rows || DEFAULT_ROWS,\n }));\n\n useEffect(() => {\n const handleResize = () => {\n setDimensions({\n columns: stdout.columns || DEFAULT_COLUMNS,\n rows: stdout.rows || DEFAULT_ROWS,\n });\n };\n\n stdout.on(\"resize\", handleResize);\n return () => {\n stdout.off(\"resize\", handleResize);\n };\n }, [stdout]);\n\n return dimensions;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAS,KAAK,QAAQ,YAAY;AAClC,SAAgB,gBAAgB;;;ACDhC;AAAA,SAAS,UAAU,iBAAiB;AACpC,SAAS,iBAAiB;AAE1B,IAAM,kBAAkB;AACxB,IAAM,eAAe;AAed,SAAS,wBAA4C;AAC1D,QAAM,EAAE,OAAO,IAAI,UAAU;AAE7B,QAAM,CAAC,YAAY,aAAa,IAAI,SAA6B,OAAO;AAAA,IACtE,SAAS,OAAO,WAAW;AAAA,IAC3B,MAAM,OAAO,QAAQ;AAAA,EACvB,EAAE;AAEF,YAAU,MAAM;AACd,UAAM,eAAe,MAAM;AACzB,oBAAc;AAAA,QACZ,SAAS,OAAO,WAAW;AAAA,QAC3B,MAAM,OAAO,QAAQ;AAAA,MACvB,CAAC;AAAA,IACH;AAEA,WAAO,GAAG,UAAU,YAAY;AAChC,WAAO,MAAM;AACX,aAAO,IAAI,UAAU,YAAY;AAAA,IACnC;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAEX,SAAO;AACT;;;ADQU,SA0IA,YAAAA,WAjIJ,KATI;AAkCF;AAhDR,IAAM,iBAAyC,CAAC;AAAA,EAC9C,YAAY;AAAA,EACZ,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AAEA,SACE,qBAAC,QACE;AAAA,WAAO,IAAI,CAAC,UACX,qBAAC,YACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,iBAAgB;AAAA,UAChB,OAAO,WAAW,WAAW,UAAU,WAAW;AAAA,UAEjD;AAAA;AAAA,YACA;AAAA,YAAO;AAAA;AAAA;AAAA,MACV;AAAA,MAAQ;AAAA,SAPK,KAQf,CACD;AAAA,IACD,oBAAC,QAAK,OAAO,WAAW,WAAW,UAAU,QAAY,iBAAM;AAAA,KACjE;AAEJ;AAEA,IAAM,WAAkD;AAAA,EACtD,EAAE,OAAO,UAAU,QAAQ,CAAC,eAAe,EAAE;AAAA,EAC7C,EAAE,OAAO,YAAY,QAAQ,CAAC,eAAe,EAAE;AAAA,EAC/C,EAAE,OAAO,QAAQ,QAAQ,CAAC,aAAa,EAAE;AAC3C;AAEA,IAAM,eAAe,MAAM;AACzB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,WAAS;AAAA,MACT,aAAa;AAAA,MACb,cAAY;AAAA,MACZ,YAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAa;AAAA,MACb,cAAc;AAAA,MAEb,mBAAS,IAAI,CAAC,WACb,8BAAC,kBAAgB,GAAG,QAAQ,KAAK,OAAO,OAAO,CAChD;AAAA;AAAA,EACH;AAEJ;AASO,IAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,eAAe;AAC7B,QAAM,EAAE,gBAAgB,aAAa,IAAI,MAAM,gBAAgB;AAC/D,QAAM,EAAE,MAAM,eAAe,IAAI,sBAAsB;AAEvD,QAAM,qBAAqB,CAAC,WAAmB;AAC7C,UAAM,QAAQ,MAAM,gBAAgB,QAAQ,MAAM;AAClD,QAAI,UAAU,IAAI;AAChB,qBAAe,SAAS,EAAE,sBAAsB,KAAK;AAAA,IACvD;AAAA,EACF;AAEA,QAAM,YACJ,MAAM,SAAS,WAAW,MAAM,gBAAgB,SAAS,IACrD;AAAA,IACE,SAAS,aAAa,MAAM,eAAe;AAAA,IAC3C,cAAe,MAAM,iBAAiB,KAAK,MAAM,gBAAgB,CAAC,KAAK;AAAA,IACvE,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,EAClB,IACA;AAGN,QAAM,YAA2D,CAAC;AAElE,MAAI,MAAM,SAAS,SAAS;AAC1B,UAAM,QAAQ;AACd,cAAU,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,MAAM,CAAC,EAAE;AAAA,EACpD;AAEA,MAAI,MAAM,SAAS,WAAW;AAC5B,UAAM,QAAQ;AACd,cAAU,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,MAAM,CAAC,EAAE;AAAA,EACtD;AAEA,MAAI,MAAM,SAAS,WAAW;AAC5B,UAAM,QAAQ;AACd,cAAU,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,MAAM,CAAC,EAAE;AAAA,EACtD;AAEA,MAAI,MAAM,SAAS,UAAU;AAC3B,UAAM,QAAQ;AACd,cAAU,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,MAAM,CAAC,EAAE;AAAA,EACrD;AAEA,MAAI,MAAM,SAAS,WAAW;AAC5B,UAAM,YAAY,aAAa,MAAM,eAAe;AACpD,UAAM,QAAQ,YACV,oBAAoB,SAAS,KAC7B;AACJ,cAAU,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,MAAM,CAAC,EAAE;AAAA,EACtD;AAEA,SACE,qBAAAA,WAAA,EACG;AAAA,uBAAmB,gBAAgB,SAAS,KAC3C,oBAAC,UAAO,OAAO,iBACZ,WAAC,KAAK,UACL,oBAAC,OACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,IAAI,UAAU,SAAS,WAAW,IAAI,UAAU,UAAU,QAAQ;AAAA,QAExE,cAAI,UAAU,SAAS,cAAc,IAAI,IAAI,KAAK,IAAI;AAAA;AAAA,IACzD,KALQ,KAMV,GAEJ;AAAA,IAEF,qBAAC,OAAI,eAAc,UAAS,UAAU,GAAG,QAAQ,gBAC9C;AAAA,cAAQ,MAAM,SAAS,WACtB,oBAAC,OAAI,eAAc,OAAM,WAAW,GAAG,WAAW,GAChD,8BAAC,QAAM,gBAAK,GACd;AAAA,MAEF;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,UACP,aAAa,MAAM;AAAA,UACnB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF;AAAA,MACC,MAAM,WACL,oBAAC,aAAU,aAAa,MAAM,MAAM,IAEpC,qBAAAA,WAAA,EACE;AAAA,4BAAC,OAAI,eAAc,UAAS,UAAU,GAAG,WAAW,GAAG,WAAW,GAC/D,UACH;AAAA,QACA,qBAAC,OAAI,UAAU,GAAG,WAAW,GAAG,WAAW,GACzC;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,qBAAqB,KAAK;AAAA,cACnC,WAAW,MAAM,SAAS;AAAA;AAAA,UAC5B;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,2BAA2B,KAAK;AAAA,cACzC,WAAW,MAAM,SAAS;AAAA,cAC1B,UAAU,MAAM;AAAA;AAAA,UAClB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,aAAa,KAAK;AAAA,cAC3B,WAAW,MAAM,SAAS,WAAW,MAAM,SAAS;AAAA;AAAA,UACtD;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,qBAAqB,KAAK;AAAA,cACnC,WAAW,MAAM,SAAS;AAAA;AAAA,UAC5B;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,sBAAsB,KAAK;AAAA,cACpC,WAAW,MAAM,SAAS;AAAA;AAAA,UAC5B;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,gBAAgB,KAAK;AAAA,cAC9B,WAAW,MAAM,SAAS,aAAa,cAAc;AAAA,cACrD,UAAU,MAAM;AAAA;AAAA,UAClB;AAAA,UACA,oBAAC,kBAAe,OAAM,QAAO,QAAQ,CAAC,YAAY,KAAK,GAAG;AAAA,WAC5D;AAAA,QACA,oBAAC,gBAAa;AAAA,SAChB;AAAA,OAEJ;AAAA,KACF;AAEJ;","names":["Fragment"]}
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  computeRowScrollTop
4
- } from "./chunk-FFMWFEUH.js";
4
+ } from "./chunk-WJXWYSBT.js";
5
5
  import {
6
6
  SCROLL_VIEWPORT
7
- } from "./chunk-FMYAYX6W.js";
7
+ } from "./chunk-6PGL2XMY.js";
8
8
  import {
9
9
  init_esm_shims
10
10
  } from "./chunk-DHET7RCE.js";
@@ -28,4 +28,4 @@ function useRowScroll({
28
28
  export {
29
29
  useRowScroll
30
30
  };
31
- //# sourceMappingURL=chunk-SQ7WINEU.js.map
31
+ //# sourceMappingURL=chunk-4QA5TIBU.js.map
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  Wizard
4
- } from "./chunk-V3EDF3IA.js";
4
+ } from "./chunk-ZKQ4XQNO.js";
5
5
  import {
6
6
  SelectList
7
- } from "./chunk-MLXAZODL.js";
7
+ } from "./chunk-XO6X5QE5.js";
8
8
  import {
9
9
  KEY_LABEL_ARROWS_VERT,
10
10
  KEY_LABEL_ENTER,
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  STATUS_MESSAGES,
15
15
  SUCCESS_MESSAGES
16
- } from "./chunk-M76LNKMY.js";
16
+ } from "./chunk-B7KZLXHV.js";
17
17
  import {
18
18
  claudePluginInstall,
19
19
  claudePluginMarketplaceAdd,
@@ -30,14 +30,14 @@ import {
30
30
  loadProjectConfig,
31
31
  loadSkillsMatrixFromSource,
32
32
  resolveInstallPaths
33
- } from "./chunk-UXKXPDOT.js";
33
+ } from "./chunk-L4JYOUGS.js";
34
34
  import {
35
35
  getSkillById
36
- } from "./chunk-4R6I6A3U.js";
36
+ } from "./chunk-3MXMYHO3.js";
37
37
  import {
38
38
  BaseCommand,
39
39
  EXIT_CODES
40
- } from "./chunk-TQ363UUH.js";
40
+ } from "./chunk-X2HE3W74.js";
41
41
  import {
42
42
  disableBuffering,
43
43
  drainBuffer,
@@ -49,7 +49,7 @@ import {
49
49
  settingsFileSchema,
50
50
  warn,
51
51
  warnUnknownFields
52
- } from "./chunk-633YIZOU.js";
52
+ } from "./chunk-32HQMUEJ.js";
53
53
  import {
54
54
  ASCII_LOGO,
55
55
  CLAUDE_DIR,
@@ -59,7 +59,7 @@ import {
59
59
  DEFAULT_BRANDING,
60
60
  GLOBAL_INSTALL_ROOT,
61
61
  MAX_CONFIG_FILE_SIZE
62
- } from "./chunk-FMYAYX6W.js";
62
+ } from "./chunk-6PGL2XMY.js";
63
63
  import {
64
64
  init_esm_shims
65
65
  } from "./chunk-DHET7RCE.js";
@@ -515,4 +515,4 @@ export {
515
515
  showDashboard,
516
516
  Init
517
517
  };
518
- //# sourceMappingURL=chunk-IVFLVH4G.js.map
518
+ //# sourceMappingURL=chunk-57HHZMWR.js.map
@@ -4,21 +4,21 @@ import {
4
4
  } from "./chunk-7SOPVGDV.js";
5
5
  import {
6
6
  SearchModal
7
- } from "./chunk-A5JSBU65.js";
7
+ } from "./chunk-SB2R5KHJ.js";
8
8
  import {
9
9
  useFocusedListItem
10
10
  } from "./chunk-P2FHS5IS.js";
11
11
  import {
12
12
  useSectionScroll
13
- } from "./chunk-FFMWFEUH.js";
13
+ } from "./chunk-WJXWYSBT.js";
14
14
  import {
15
15
  getSkillById,
16
16
  matrix
17
- } from "./chunk-4R6I6A3U.js";
17
+ } from "./chunk-3MXMYHO3.js";
18
18
  import {
19
19
  CLI_COLORS,
20
20
  SOURCE_DISPLAY_NAMES
21
- } from "./chunk-FMYAYX6W.js";
21
+ } from "./chunk-6PGL2XMY.js";
22
22
  import {
23
23
  init_esm_shims
24
24
  } from "./chunk-DHET7RCE.js";
@@ -260,4 +260,4 @@ var SourceGrid = ({
260
260
  export {
261
261
  SourceGrid
262
262
  };
263
- //# sourceMappingURL=chunk-MNJAF4K2.js.map
263
+ //# sourceMappingURL=chunk-5BRHJD7Q.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-7SOPVGDV.js";
5
5
  import {
6
6
  useRowScroll
7
- } from "./chunk-SQ7WINEU.js";
7
+ } from "./chunk-4QA5TIBU.js";
8
8
  import {
9
9
  useKeyboardNavigation
10
10
  } from "./chunk-KUV24B5M.js";
@@ -24,14 +24,14 @@ import {
24
24
  addSource,
25
25
  getSourceSummary,
26
26
  removeSource
27
- } from "./chunk-UXKXPDOT.js";
27
+ } from "./chunk-L4JYOUGS.js";
28
28
  import {
29
29
  getErrorMessage,
30
30
  verbose
31
- } from "./chunk-633YIZOU.js";
31
+ } from "./chunk-32HQMUEJ.js";
32
32
  import {
33
33
  CLI_COLORS
34
- } from "./chunk-FMYAYX6W.js";
34
+ } from "./chunk-6PGL2XMY.js";
35
35
  import {
36
36
  init_esm_shims
37
37
  } from "./chunk-DHET7RCE.js";
@@ -263,4 +263,4 @@ var StepSettings = ({
263
263
  export {
264
264
  StepSettings
265
265
  };
266
- //# sourceMappingURL=chunk-KYGQS6PK.js.map
266
+ //# sourceMappingURL=chunk-6EMIA36T.js.map
@@ -148,7 +148,16 @@ var CLI_COLORS = {
148
148
  UNFOCUSED: "white",
149
149
  WHITE: "white"
150
150
  };
151
- var BUILT_IN_DOMAIN_ORDER = ["web", "api", "mobile", "cli", "shared"];
151
+ var BUILT_IN_DOMAIN_ORDER = [
152
+ "web",
153
+ "api",
154
+ "ai",
155
+ "mobile",
156
+ "cli",
157
+ "infra",
158
+ "meta",
159
+ "shared"
160
+ ];
152
161
  var DEFAULT_SCRATCH_DOMAINS = ["web", "api", "mobile"];
153
162
  var ASCII_LOGO = ` \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557
154
163
  \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D
@@ -203,4 +212,4 @@ export {
203
212
  DEFAULT_SCRATCH_DOMAINS,
204
213
  ASCII_LOGO
205
214
  };
206
- //# sourceMappingURL=chunk-FMYAYX6W.js.map
215
+ //# sourceMappingURL=chunk-6PGL2XMY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/consts.ts"],"sourcesContent":["import os from \"os\";\nimport path from \"path\";\nimport { fileURLToPath } from \"url\";\nimport type { Domain } from \"./types/index.js\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// After tsup build, dist/ is flat, so we go up one level from dist/ to get CLI root\n// In development (src/cli/consts.ts), we go up two levels\nconst isInDist = __dirname.includes(\"/dist\");\nconst CLI_ROOT = isInDist ? path.resolve(__dirname, \"..\") : path.resolve(__dirname, \"../..\");\nexport const PROJECT_ROOT = CLI_ROOT;\n\nexport const CLAUDE_DIR = \".claude\";\nexport const CLAUDE_SRC_DIR = \".claude-src\";\nexport const PLUGINS_SUBDIR = \"plugins\";\nexport const PLUGIN_MANIFEST_DIR = \".claude-plugin\";\nexport const PLUGIN_MANIFEST_FILE = \"plugin.json\";\nexport const DEFAULT_PLUGIN_NAME = \"agents-inc\";\n\n/** Home directory used as the root for global installations */\nexport const GLOBAL_INSTALL_ROOT = os.homedir();\n\nexport const CACHE_DIR = path.join(os.homedir(), \".cache\", DEFAULT_PLUGIN_NAME);\n\nexport const CLI_BIN_NAME = \"agentsinc\";\n\nexport const SKILL_CATEGORIES_PATH = \"config/skill-categories.ts\";\nexport const SKILL_RULES_PATH = \"config/skill-rules.ts\";\nexport const STACKS_FILE_PATH = \"config/stacks.ts\";\nexport const SKILLS_DIR_PATH = \"src/skills\";\nexport const LOCAL_SKILLS_PATH = \".claude/skills\";\n\nexport const DIRS = {\n agents: \"src/agents\",\n skills: \"src/skills\",\n stacks: \"src/stacks\",\n templates: \"src/agents/_templates\",\n commands: \"src/commands\",\n} as const;\n\nexport const STANDARD_FILES = {\n SKILL_MD: \"SKILL.md\",\n METADATA_YAML: \"metadata.yaml\",\n METADATA_JSON: \"metadata.json\",\n CONFIG_YAML: \"config.yaml\",\n SKILL_CATEGORIES_TS: \"skill-categories.ts\",\n SKILL_RULES_TS: \"skill-rules.ts\",\n AGENT_METADATA_YAML: \"metadata.yaml\",\n PLUGIN_JSON: \"plugin.json\",\n CONFIG_TS: \"config.ts\",\n CONFIG_TYPES_TS: \"config-types.ts\",\n CLAUDE_MD: \"CLAUDE.md\",\n REFERENCE_MD: \"reference.md\",\n INTRO_MD: \"intro.md\",\n WORKFLOW_MD: \"workflow.md\",\n EXAMPLES_MD: \"examples.md\",\n OUTPUT_FORMAT_MD: \"output-format.md\",\n CRITICAL_REQUIREMENTS_MD: \"critical-requirements.md\",\n CRITICAL_REMINDERS_MD: \"critical-reminders.md\",\n} as const;\n\nexport const STANDARD_DIRS = {\n EXAMPLES: \"examples\",\n SCRIPTS: \"scripts\",\n SKILLS: \"skills\",\n} as const;\n\nexport const DEFAULT_VERSION = \"1.0.0\";\n\n// \"0.0.0\" indicates no version was explicitly set\nexport const DEFAULT_DISPLAY_VERSION = \"0.0.0\";\n\n// JSON Schema URLs for yaml-language-server $schema comments.\n// Uses raw.githubusercontent.com so schemas resolve without requiring the CLI as a dependency.\nconst SCHEMA_PKG_PREFIX = \"https://raw.githubusercontent.com/agents-inc/cli/main/src/schemas\";\n\nexport const SCHEMA_PATHS = {\n agent: `${SCHEMA_PKG_PREFIX}/agent.schema.json`,\n metadata: `${SCHEMA_PKG_PREFIX}/metadata.schema.json`,\n marketplace: `${SCHEMA_PKG_PREFIX}/marketplace.schema.json`,\n projectConfig: `${SCHEMA_PKG_PREFIX}/project-config.schema.json`,\n projectSourceConfig: `${SCHEMA_PKG_PREFIX}/project-source-config.schema.json`,\n stacks: `${SCHEMA_PKG_PREFIX}/stacks.schema.json`,\n} as const;\n\n/** Generates a yaml-language-server schema comment for the top of YAML files. */\nexport function yamlSchemaComment(schemaPath: string): string {\n return `# yaml-language-server: $schema=${schemaPath}`;\n}\n\nexport const YAML_FORMATTING = {\n INDENT: 2,\n LINE_WIDTH: 120,\n /** lineWidth: 0 disables wrapping — used for metadata files */\n LINE_WIDTH_NONE: 0,\n} as const;\n\nexport const UI_SYMBOLS = {\n CHECKBOX_CHECKED: \"[x]\",\n CHECKBOX_UNCHECKED: \"[ ]\",\n CHEVRON: \"\\u276F\",\n CHEVRON_SPACER: \" \",\n SELECTED: \"\\u2713\",\n UNSELECTED: \"\\u25CB\",\n CURRENT: \"\\u25CF\",\n SKIPPED: \"\\u2013\",\n DISCOURAGED: \"!\",\n DISABLED: \"\\u2013\",\n SCROLL_UP: \"\\u25B2\",\n SCROLL_DOWN: \"\\u25BC\",\n} as const;\n\nexport const UI_LAYOUT = {\n MAX_VISIBLE_RESULTS: 10,\n DESCRIPTION_WIDTH: 30,\n COPIED_MESSAGE_TIMEOUT_MS: 2000,\n FALLBACK_MESSAGE_TIMEOUT_MS: 3000,\n} as const;\n\nexport const GITHUB_SOURCE = {\n HTTPS_PREFIX: \"https://github.com/\",\n GITHUB_PREFIX: \"github:\",\n GH_PREFIX: \"gh:\",\n} as const;\n\nexport const DEFAULT_SKILLS_SUBDIR = \"skills\";\n\n/** Strict kebab-case: starts with letter, segments separated by single hyphens, no trailing hyphens */\nexport const KEBAB_CASE_PATTERN = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;\n\nexport const HASH_PREFIX_LENGTH = 7;\n\n/** Hex chars from SHA-256 hash used in cache directory names (64 bits of collision resistance) */\nexport const CACHE_HASH_LENGTH = 16;\n\n/** Max chars of human-readable prefix in cache directory names (for debugging) */\nexport const CACHE_READABLE_PREFIX_LENGTH = 32;\n\n// File size limits for parsing boundaries (DoS prevention)\nconst ONE_MB = 1024 * 1024;\nexport const MAX_MARKETPLACE_FILE_SIZE = 10 * ONE_MB;\nexport const MAX_PLUGIN_FILE_SIZE = ONE_MB;\nexport const MAX_CONFIG_FILE_SIZE = ONE_MB;\n\nexport const MAX_JSON_NESTING_DEPTH = 10;\nexport const MAX_MARKETPLACE_PLUGINS = 10_000;\n\nexport const SCROLL_VIEWPORT = {\n /** Height of the \"N more above\" scroll indicator */\n SCROLL_INDICATOR_HEIGHT: 1,\n /** Estimated lines per category name row (including top margin) */\n CATEGORY_NAME_LINES: 2,\n /** Margin between category sections (marginTop on CategorySection) */\n CATEGORY_MARGIN_LINES: 1,\n /** Minimum rows to show at least 1 category before enabling scroll */\n MIN_VIEWPORT_ROWS: 5,\n /** Minimum terminal height to show the wizard at all */\n MIN_TERMINAL_HEIGHT: 15,\n} as const;\n\nexport const DEFAULT_BRANDING = {\n NAME: \"Agents Inc.\",\n TAGLINE: \"AI-powered development tools\",\n} as const;\n\n/** Fallback name for the default public marketplace when marketplace.json is unavailable */\nexport const DEFAULT_PUBLIC_SOURCE_NAME = \"agents-inc\";\n\n/** Human-readable labels for skill source types shown in the wizard and edit command */\nexport const SOURCE_DISPLAY_NAMES: Record<string, string> = {\n public: \"Public\",\n local: \"Local\",\n \"agents-inc\": \"Agents Inc\",\n};\n\nexport const CLI_COLORS = {\n PRIMARY: \"cyan\",\n SUCCESS: \"green\",\n ERROR: \"red\",\n WARNING: \"yellow\",\n INFO: \"blue\",\n NEUTRAL: \"gray\",\n FOCUS: \"cyan\",\n UNFOCUSED: \"white\",\n WHITE: \"white\",\n} as const;\n\n/** Canonical display order for built-in domains. Custom domains appear before these, alphabetically. */\nexport const BUILT_IN_DOMAIN_ORDER: readonly Domain[] = [\"web\", \"api\", \"mobile\", \"cli\", \"shared\"];\n\n/** Default domains pre-selected when \"Start from scratch\" is chosen (all except CLI) */\nexport const DEFAULT_SCRATCH_DOMAINS: readonly Domain[] = [\"web\", \"api\", \"mobile\"];\n\nexport const ASCII_LOGO = ` █████╗ ██████╗ ███████╗███╗ ██╗████████╗███████╗ ██╗███╗ ██╗ ██████╗\n██╔══██╗██╔════╝ ██╔════╝████╗ ██║╚══██╔══╝██╔════╝ ██║████╗ ██║██╔════╝\n███████║██║ ███╗█████╗ ██╔██╗ ██║ ██║ ███████╗ ██║██╔██╗ ██║██║\n██╔══██║██║ ██║██╔══╝ ██║╚██╗██║ ██║ ╚════██║ ██║██║╚██╗██║██║\n██║ ██║╚██████╔╝███████╗██║ ╚████║ ██║ ███████║ ██║██║ ╚████║╚██████╗\n╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝`;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/cli/consts.ts"],"sourcesContent":["import os from \"os\";\nimport path from \"path\";\nimport { fileURLToPath } from \"url\";\nimport type { Domain } from \"./types/index.js\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// After tsup build, dist/ is flat, so we go up one level from dist/ to get CLI root\n// In development (src/cli/consts.ts), we go up two levels\nconst isInDist = __dirname.includes(\"/dist\");\nconst CLI_ROOT = isInDist ? path.resolve(__dirname, \"..\") : path.resolve(__dirname, \"../..\");\nexport const PROJECT_ROOT = CLI_ROOT;\n\nexport const CLAUDE_DIR = \".claude\";\nexport const CLAUDE_SRC_DIR = \".claude-src\";\nexport const PLUGINS_SUBDIR = \"plugins\";\nexport const PLUGIN_MANIFEST_DIR = \".claude-plugin\";\nexport const PLUGIN_MANIFEST_FILE = \"plugin.json\";\nexport const DEFAULT_PLUGIN_NAME = \"agents-inc\";\n\n/** Home directory used as the root for global installations */\nexport const GLOBAL_INSTALL_ROOT = os.homedir();\n\nexport const CACHE_DIR = path.join(os.homedir(), \".cache\", DEFAULT_PLUGIN_NAME);\n\nexport const CLI_BIN_NAME = \"agentsinc\";\n\nexport const SKILL_CATEGORIES_PATH = \"config/skill-categories.ts\";\nexport const SKILL_RULES_PATH = \"config/skill-rules.ts\";\nexport const STACKS_FILE_PATH = \"config/stacks.ts\";\nexport const SKILLS_DIR_PATH = \"src/skills\";\nexport const LOCAL_SKILLS_PATH = \".claude/skills\";\n\nexport const DIRS = {\n agents: \"src/agents\",\n skills: \"src/skills\",\n stacks: \"src/stacks\",\n templates: \"src/agents/_templates\",\n commands: \"src/commands\",\n} as const;\n\nexport const STANDARD_FILES = {\n SKILL_MD: \"SKILL.md\",\n METADATA_YAML: \"metadata.yaml\",\n METADATA_JSON: \"metadata.json\",\n CONFIG_YAML: \"config.yaml\",\n SKILL_CATEGORIES_TS: \"skill-categories.ts\",\n SKILL_RULES_TS: \"skill-rules.ts\",\n AGENT_METADATA_YAML: \"metadata.yaml\",\n PLUGIN_JSON: \"plugin.json\",\n CONFIG_TS: \"config.ts\",\n CONFIG_TYPES_TS: \"config-types.ts\",\n CLAUDE_MD: \"CLAUDE.md\",\n REFERENCE_MD: \"reference.md\",\n INTRO_MD: \"intro.md\",\n WORKFLOW_MD: \"workflow.md\",\n EXAMPLES_MD: \"examples.md\",\n OUTPUT_FORMAT_MD: \"output-format.md\",\n CRITICAL_REQUIREMENTS_MD: \"critical-requirements.md\",\n CRITICAL_REMINDERS_MD: \"critical-reminders.md\",\n} as const;\n\nexport const STANDARD_DIRS = {\n EXAMPLES: \"examples\",\n SCRIPTS: \"scripts\",\n SKILLS: \"skills\",\n} as const;\n\nexport const DEFAULT_VERSION = \"1.0.0\";\n\n// \"0.0.0\" indicates no version was explicitly set\nexport const DEFAULT_DISPLAY_VERSION = \"0.0.0\";\n\n// JSON Schema URLs for yaml-language-server $schema comments.\n// Uses raw.githubusercontent.com so schemas resolve without requiring the CLI as a dependency.\nconst SCHEMA_PKG_PREFIX = \"https://raw.githubusercontent.com/agents-inc/cli/main/src/schemas\";\n\nexport const SCHEMA_PATHS = {\n agent: `${SCHEMA_PKG_PREFIX}/agent.schema.json`,\n metadata: `${SCHEMA_PKG_PREFIX}/metadata.schema.json`,\n marketplace: `${SCHEMA_PKG_PREFIX}/marketplace.schema.json`,\n projectConfig: `${SCHEMA_PKG_PREFIX}/project-config.schema.json`,\n projectSourceConfig: `${SCHEMA_PKG_PREFIX}/project-source-config.schema.json`,\n stacks: `${SCHEMA_PKG_PREFIX}/stacks.schema.json`,\n} as const;\n\n/** Generates a yaml-language-server schema comment for the top of YAML files. */\nexport function yamlSchemaComment(schemaPath: string): string {\n return `# yaml-language-server: $schema=${schemaPath}`;\n}\n\nexport const YAML_FORMATTING = {\n INDENT: 2,\n LINE_WIDTH: 120,\n /** lineWidth: 0 disables wrapping — used for metadata files */\n LINE_WIDTH_NONE: 0,\n} as const;\n\nexport const UI_SYMBOLS = {\n CHECKBOX_CHECKED: \"[x]\",\n CHECKBOX_UNCHECKED: \"[ ]\",\n CHEVRON: \"\\u276F\",\n CHEVRON_SPACER: \" \",\n SELECTED: \"\\u2713\",\n UNSELECTED: \"\\u25CB\",\n CURRENT: \"\\u25CF\",\n SKIPPED: \"\\u2013\",\n DISCOURAGED: \"!\",\n DISABLED: \"\\u2013\",\n SCROLL_UP: \"\\u25B2\",\n SCROLL_DOWN: \"\\u25BC\",\n} as const;\n\nexport const UI_LAYOUT = {\n MAX_VISIBLE_RESULTS: 10,\n DESCRIPTION_WIDTH: 30,\n COPIED_MESSAGE_TIMEOUT_MS: 2000,\n FALLBACK_MESSAGE_TIMEOUT_MS: 3000,\n} as const;\n\nexport const GITHUB_SOURCE = {\n HTTPS_PREFIX: \"https://github.com/\",\n GITHUB_PREFIX: \"github:\",\n GH_PREFIX: \"gh:\",\n} as const;\n\nexport const DEFAULT_SKILLS_SUBDIR = \"skills\";\n\n/** Strict kebab-case: starts with letter, segments separated by single hyphens, no trailing hyphens */\nexport const KEBAB_CASE_PATTERN = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;\n\nexport const HASH_PREFIX_LENGTH = 7;\n\n/** Hex chars from SHA-256 hash used in cache directory names (64 bits of collision resistance) */\nexport const CACHE_HASH_LENGTH = 16;\n\n/** Max chars of human-readable prefix in cache directory names (for debugging) */\nexport const CACHE_READABLE_PREFIX_LENGTH = 32;\n\n// File size limits for parsing boundaries (DoS prevention)\nconst ONE_MB = 1024 * 1024;\nexport const MAX_MARKETPLACE_FILE_SIZE = 10 * ONE_MB;\nexport const MAX_PLUGIN_FILE_SIZE = ONE_MB;\nexport const MAX_CONFIG_FILE_SIZE = ONE_MB;\n\nexport const MAX_JSON_NESTING_DEPTH = 10;\nexport const MAX_MARKETPLACE_PLUGINS = 10_000;\n\nexport const SCROLL_VIEWPORT = {\n /** Height of the \"N more above\" scroll indicator */\n SCROLL_INDICATOR_HEIGHT: 1,\n /** Estimated lines per category name row (including top margin) */\n CATEGORY_NAME_LINES: 2,\n /** Margin between category sections (marginTop on CategorySection) */\n CATEGORY_MARGIN_LINES: 1,\n /** Minimum rows to show at least 1 category before enabling scroll */\n MIN_VIEWPORT_ROWS: 5,\n /** Minimum terminal height to show the wizard at all */\n MIN_TERMINAL_HEIGHT: 15,\n} as const;\n\nexport const DEFAULT_BRANDING = {\n NAME: \"Agents Inc.\",\n TAGLINE: \"AI-powered development tools\",\n} as const;\n\n/** Fallback name for the default public marketplace when marketplace.json is unavailable */\nexport const DEFAULT_PUBLIC_SOURCE_NAME = \"agents-inc\";\n\n/** Human-readable labels for skill source types shown in the wizard and edit command */\nexport const SOURCE_DISPLAY_NAMES: Record<string, string> = {\n public: \"Public\",\n local: \"Local\",\n \"agents-inc\": \"Agents Inc\",\n};\n\nexport const CLI_COLORS = {\n PRIMARY: \"cyan\",\n SUCCESS: \"green\",\n ERROR: \"red\",\n WARNING: \"yellow\",\n INFO: \"blue\",\n NEUTRAL: \"gray\",\n FOCUS: \"cyan\",\n UNFOCUSED: \"white\",\n WHITE: \"white\",\n} as const;\n\n/** Canonical display order for built-in domains. Custom domains appear before these, alphabetically. */\nexport const BUILT_IN_DOMAIN_ORDER: readonly Domain[] = [\n \"web\",\n \"api\",\n \"ai\",\n \"mobile\",\n \"cli\",\n \"infra\",\n \"meta\",\n \"shared\",\n];\n\n/** Default domains pre-selected when \"Start from scratch\" is chosen (all except CLI) */\nexport const DEFAULT_SCRATCH_DOMAINS: readonly Domain[] = [\"web\", \"api\", \"mobile\"];\n\nexport const ASCII_LOGO = ` █████╗ ██████╗ ███████╗███╗ ██╗████████╗███████╗ ██╗███╗ ██╗ ██████╗\n██╔══██╗██╔════╝ ██╔════╝████╗ ██║╚══██╔══╝██╔════╝ ██║████╗ ██║██╔════╝\n███████║██║ ███╗█████╗ ██╔██╗ ██║ ██║ ███████╗ ██║██╔██╗ ██║██║\n██╔══██║██║ ██║██╔══╝ ██║╚██╗██║ ██║ ╚════██║ ██║██║╚██╗██║██║\n██║ ██║╚██████╔╝███████╗██║ ╚████║ ██║ ███████║ ██║██║ ╚████║╚██████╗\n╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝`;\n"],"mappings":"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","names":[]}
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CLI_COLORS,
4
4
  UI_SYMBOLS
5
- } from "./chunk-FMYAYX6W.js";
5
+ } from "./chunk-6PGL2XMY.js";
6
6
  import {
7
7
  init_esm_shims
8
8
  } from "./chunk-DHET7RCE.js";
@@ -38,4 +38,4 @@ var SelectionCard = ({
38
38
  export {
39
39
  SelectionCard
40
40
  };
41
- //# sourceMappingURL=chunk-K63OEZW7.js.map
41
+ //# sourceMappingURL=chunk-6XEZLWG5.js.map
@@ -2,17 +2,17 @@
2
2
  import {
3
3
  getDomainDisplayName,
4
4
  orderDomains
5
- } from "./chunk-3SCIYMRK.js";
5
+ } from "./chunk-FS4YWW36.js";
6
6
  import {
7
7
  CheckboxGrid
8
- } from "./chunk-RU5XLS5Q.js";
8
+ } from "./chunk-HSKKGAOW.js";
9
9
  import {
10
10
  useWizardStore
11
- } from "./chunk-FW4NVUIG.js";
11
+ } from "./chunk-TY5BOAAA.js";
12
12
  import {
13
13
  matrix,
14
14
  typedEntries
15
- } from "./chunk-4R6I6A3U.js";
15
+ } from "./chunk-3MXMYHO3.js";
16
16
  import {
17
17
  init_esm_shims
18
18
  } from "./chunk-DHET7RCE.js";
@@ -25,8 +25,11 @@ import { jsx } from "react/jsx-runtime";
25
25
  var BUILT_IN_DOMAIN_DESCRIPTIONS = {
26
26
  web: "Frontend web applications",
27
27
  api: "Backend APIs and services",
28
+ ai: "AI and LLM integrations",
28
29
  cli: "Command-line tools",
29
30
  mobile: "Mobile applications",
31
+ infra: "CI/CD, deployment, and infrastructure",
32
+ meta: "Code review and research methodology",
30
33
  shared: "Shared utilities and methodology"
31
34
  };
32
35
  var DomainSelection = () => {
@@ -64,4 +67,4 @@ var DomainSelection = () => {
64
67
  export {
65
68
  DomainSelection
66
69
  };
67
- //# sourceMappingURL=chunk-AAR2SNR2.js.map
70
+ //# sourceMappingURL=chunk-ABBXUIMQ.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 { matrix } from \"../../lib/matrix/matrix-provider.js\";\nimport type { Domain } 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 ai: \"AI and LLM integrations\",\n cli: \"Command-line tools\",\n mobile: \"Mobile applications\",\n infra: \"CI/CD, deployment, and infrastructure\",\n meta: \"Code review and research methodology\",\n shared: \"Shared utilities and methodology\",\n};\n\nexport const DomainSelection: React.FC = () => {\n const { selectedDomains, toggleDomain, setStep, setApproach, selectStack, goBack } =\n 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],\n }));\n }, [matrix]);\n\n const handleBack = () => {\n setApproach(null);\n selectStack(null);\n goBack();\n };\n\n return (\n <CheckboxGrid\n title=\"Select domains to configure\"\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;AA8CnB;AAtCJ,IAAM,+BAAuD;AAAA,EAC3D,KAAK;AAAA,EACL,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AACV;AAEO,IAAM,kBAA4B,MAAM;AAC7C,QAAM,EAAE,iBAAiB,cAAc,SAAS,aAAa,aAAa,OAAO,IAC/E,eAAe;AAEjB,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;AAAA,IAClD,EAAE;AAAA,EACJ,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,aAAa,MAAM;AACvB,gBAAY,IAAI;AAChB,gBAAY,IAAI;AAChB,WAAO;AAAA,EACT;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,MACV,YAAY,MAAM,QAAQ,OAAO;AAAA,MACjC,QAAQ;AAAA,MACR,cAAa;AAAA;AAAA,EACf;AAEJ;","names":[]}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  TEST_CATEGORIES
4
- } from "./chunk-LO4X32JC.js";
4
+ } from "./chunk-IMO6EQKT.js";
5
5
  import {
6
6
  init_esm_shims
7
7
  } from "./chunk-DHET7RCE.js";
@@ -59,7 +59,7 @@ var MULTI_SOURCE_CATEGORIES = {
59
59
  "api-database": { ...TEST_CATEGORIES.database, order: 5 },
60
60
  "shared-security": { ...TEST_CATEGORIES.security, order: 6 },
61
61
  "web-animation": { ...TEST_CATEGORIES.animation, order: 7 },
62
- "shared-meta": { ...TEST_CATEGORIES.methodology, order: 8 },
62
+ "meta-reviewing": { ...TEST_CATEGORIES.methodology, order: 8 },
63
63
  "web-accessibility": { ...TEST_CATEGORIES.accessibility, order: 9 },
64
64
  "api-observability": { ...TEST_CATEGORIES.observability, order: 10 }
65
65
  };
@@ -73,4 +73,4 @@ export {
73
73
  CLI_FRAMEWORK_CATEGORY,
74
74
  FRAMEWORK_CATEGORY
75
75
  };
76
- //# sourceMappingURL=chunk-4R72372U.js.map
76
+ //# sourceMappingURL=chunk-AD2UT2TN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/lib/__tests__/mock-data/mock-categories.ts"],"sourcesContent":["// Shared category definitions with domain overrides for test files.\n// Spreads from TEST_CATEGORIES in test-fixtures.ts.\n\nimport { TEST_CATEGORIES } from \"../test-fixtures.js\";\nimport type { Category, CategoryDefinition } from \"../../../types\";\n\n// ---------------------------------------------------------------------------\n// Categories from step-build.test.tsx (with domain overrides)\n// ---------------------------------------------------------------------------\n\nexport const WEB_FRAMEWORK_CATEGORY = {\n ...TEST_CATEGORIES.framework,\n required: true,\n};\n\nexport const WEB_STYLING_CATEGORY = {\n ...TEST_CATEGORIES.styling,\n required: true,\n order: 1,\n};\n\nexport const WEB_STATE_CATEGORY = {\n ...TEST_CATEGORIES.clientState,\n order: 2,\n};\n\nexport const API_FRAMEWORK_CATEGORY = {\n ...TEST_CATEGORIES.api,\n displayName: \"API Framework\",\n // Boundary cast: narrows string to Domain union\n domain: \"api\" as const,\n required: true,\n order: 0,\n};\n\nexport const API_DATABASE_CATEGORY = {\n ...TEST_CATEGORIES.database,\n // Boundary cast: narrows string to Domain union\n domain: \"api\" as const,\n order: 1,\n};\n\n// ---------------------------------------------------------------------------\n// Categories from matrix-loader.test.ts (basic, no domain override)\n// ---------------------------------------------------------------------------\n\nexport const CLI_FRAMEWORK_CATEGORY = {\n ...TEST_CATEGORIES.cliFramework,\n domain: \"cli\" as const,\n exclusive: false,\n};\n\nexport const FRAMEWORK_CATEGORY = {\n ...TEST_CATEGORIES.framework,\n description: \"Web frameworks\",\n order: 1,\n};\n\n// ---------------------------------------------------------------------------\n// Categories from skill-resolution.integration.test.ts (multi-source)\n// ---------------------------------------------------------------------------\n\nexport const MULTI_SOURCE_CATEGORIES = {\n \"web-framework\": { ...TEST_CATEGORIES.framework, exclusive: true, required: true },\n \"web-client-state\": {\n ...TEST_CATEGORIES.clientState,\n displayName: \"State\",\n description: \"State category\",\n order: 1,\n },\n \"web-styling\": { ...TEST_CATEGORIES.styling, order: 2 },\n \"web-testing\": { ...TEST_CATEGORIES.testing, exclusive: false, order: 3 },\n \"api-api\": { ...TEST_CATEGORIES.api, exclusive: true, order: 4 },\n \"api-database\": { ...TEST_CATEGORIES.database, order: 5 },\n \"shared-security\": { ...TEST_CATEGORIES.security, order: 6 },\n \"web-animation\": { ...TEST_CATEGORIES.animation, order: 7 },\n \"shared-meta\": { ...TEST_CATEGORIES.methodology, order: 8 },\n \"web-accessibility\": { ...TEST_CATEGORIES.accessibility, order: 9 },\n \"api-observability\": { ...TEST_CATEGORIES.observability, order: 10 },\n} as Partial<Record<Category, CategoryDefinition>> as Record<Category, CategoryDefinition>;\n"],"mappings":";;;;;;;;;AAAA;AAUO,IAAM,yBAAyB;AAAA,EACpC,GAAG,gBAAgB;AAAA,EACnB,UAAU;AACZ;AAEO,IAAM,uBAAuB;AAAA,EAClC,GAAG,gBAAgB;AAAA,EACnB,UAAU;AAAA,EACV,OAAO;AACT;AAEO,IAAM,qBAAqB;AAAA,EAChC,GAAG,gBAAgB;AAAA,EACnB,OAAO;AACT;AAEO,IAAM,yBAAyB;AAAA,EACpC,GAAG,gBAAgB;AAAA,EACnB,aAAa;AAAA;AAAA,EAEb,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AACT;AAEO,IAAM,wBAAwB;AAAA,EACnC,GAAG,gBAAgB;AAAA;AAAA,EAEnB,QAAQ;AAAA,EACR,OAAO;AACT;AAMO,IAAM,yBAAyB;AAAA,EACpC,GAAG,gBAAgB;AAAA,EACnB,QAAQ;AAAA,EACR,WAAW;AACb;AAEO,IAAM,qBAAqB;AAAA,EAChC,GAAG,gBAAgB;AAAA,EACnB,aAAa;AAAA,EACb,OAAO;AACT;AAMO,IAAM,0BAA0B;AAAA,EACrC,iBAAiB,EAAE,GAAG,gBAAgB,WAAW,WAAW,MAAM,UAAU,KAAK;AAAA,EACjF,oBAAoB;AAAA,IAClB,GAAG,gBAAgB;AAAA,IACnB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EACA,eAAe,EAAE,GAAG,gBAAgB,SAAS,OAAO,EAAE;AAAA,EACtD,eAAe,EAAE,GAAG,gBAAgB,SAAS,WAAW,OAAO,OAAO,EAAE;AAAA,EACxE,WAAW,EAAE,GAAG,gBAAgB,KAAK,WAAW,MAAM,OAAO,EAAE;AAAA,EAC/D,gBAAgB,EAAE,GAAG,gBAAgB,UAAU,OAAO,EAAE;AAAA,EACxD,mBAAmB,EAAE,GAAG,gBAAgB,UAAU,OAAO,EAAE;AAAA,EAC3D,iBAAiB,EAAE,GAAG,gBAAgB,WAAW,OAAO,EAAE;AAAA,EAC1D,eAAe,EAAE,GAAG,gBAAgB,aAAa,OAAO,EAAE;AAAA,EAC1D,qBAAqB,EAAE,GAAG,gBAAgB,eAAe,OAAO,EAAE;AAAA,EAClE,qBAAqB,EAAE,GAAG,gBAAgB,eAAe,OAAO,GAAG;AACrE;","names":[]}
1
+ {"version":3,"sources":["../src/cli/lib/__tests__/mock-data/mock-categories.ts"],"sourcesContent":["// Shared category definitions with domain overrides for test files.\n// Spreads from TEST_CATEGORIES in test-fixtures.ts.\n\nimport { TEST_CATEGORIES } from \"../test-fixtures.js\";\nimport type { Category, CategoryDefinition } from \"../../../types\";\n\n// ---------------------------------------------------------------------------\n// Categories from step-build.test.tsx (with domain overrides)\n// ---------------------------------------------------------------------------\n\nexport const WEB_FRAMEWORK_CATEGORY = {\n ...TEST_CATEGORIES.framework,\n required: true,\n};\n\nexport const WEB_STYLING_CATEGORY = {\n ...TEST_CATEGORIES.styling,\n required: true,\n order: 1,\n};\n\nexport const WEB_STATE_CATEGORY = {\n ...TEST_CATEGORIES.clientState,\n order: 2,\n};\n\nexport const API_FRAMEWORK_CATEGORY = {\n ...TEST_CATEGORIES.api,\n displayName: \"API Framework\",\n // Boundary cast: narrows string to Domain union\n domain: \"api\" as const,\n required: true,\n order: 0,\n};\n\nexport const API_DATABASE_CATEGORY = {\n ...TEST_CATEGORIES.database,\n // Boundary cast: narrows string to Domain union\n domain: \"api\" as const,\n order: 1,\n};\n\n// ---------------------------------------------------------------------------\n// Categories from matrix-loader.test.ts (basic, no domain override)\n// ---------------------------------------------------------------------------\n\nexport const CLI_FRAMEWORK_CATEGORY = {\n ...TEST_CATEGORIES.cliFramework,\n domain: \"cli\" as const,\n exclusive: false,\n};\n\nexport const FRAMEWORK_CATEGORY = {\n ...TEST_CATEGORIES.framework,\n description: \"Web frameworks\",\n order: 1,\n};\n\n// ---------------------------------------------------------------------------\n// Categories from skill-resolution.integration.test.ts (multi-source)\n// ---------------------------------------------------------------------------\n\nexport const MULTI_SOURCE_CATEGORIES = {\n \"web-framework\": { ...TEST_CATEGORIES.framework, exclusive: true, required: true },\n \"web-client-state\": {\n ...TEST_CATEGORIES.clientState,\n displayName: \"State\",\n description: \"State category\",\n order: 1,\n },\n \"web-styling\": { ...TEST_CATEGORIES.styling, order: 2 },\n \"web-testing\": { ...TEST_CATEGORIES.testing, exclusive: false, order: 3 },\n \"api-api\": { ...TEST_CATEGORIES.api, exclusive: true, order: 4 },\n \"api-database\": { ...TEST_CATEGORIES.database, order: 5 },\n \"shared-security\": { ...TEST_CATEGORIES.security, order: 6 },\n \"web-animation\": { ...TEST_CATEGORIES.animation, order: 7 },\n \"meta-reviewing\": { ...TEST_CATEGORIES.methodology, order: 8 },\n \"web-accessibility\": { ...TEST_CATEGORIES.accessibility, order: 9 },\n \"api-observability\": { ...TEST_CATEGORIES.observability, order: 10 },\n} as Partial<Record<Category, CategoryDefinition>> as Record<Category, CategoryDefinition>;\n"],"mappings":";;;;;;;;;AAAA;AAUO,IAAM,yBAAyB;AAAA,EACpC,GAAG,gBAAgB;AAAA,EACnB,UAAU;AACZ;AAEO,IAAM,uBAAuB;AAAA,EAClC,GAAG,gBAAgB;AAAA,EACnB,UAAU;AAAA,EACV,OAAO;AACT;AAEO,IAAM,qBAAqB;AAAA,EAChC,GAAG,gBAAgB;AAAA,EACnB,OAAO;AACT;AAEO,IAAM,yBAAyB;AAAA,EACpC,GAAG,gBAAgB;AAAA,EACnB,aAAa;AAAA;AAAA,EAEb,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AACT;AAEO,IAAM,wBAAwB;AAAA,EACnC,GAAG,gBAAgB;AAAA;AAAA,EAEnB,QAAQ;AAAA,EACR,OAAO;AACT;AAMO,IAAM,yBAAyB;AAAA,EACpC,GAAG,gBAAgB;AAAA,EACnB,QAAQ;AAAA,EACR,WAAW;AACb;AAEO,IAAM,qBAAqB;AAAA,EAChC,GAAG,gBAAgB;AAAA,EACnB,aAAa;AAAA,EACb,OAAO;AACT;AAMO,IAAM,0BAA0B;AAAA,EACrC,iBAAiB,EAAE,GAAG,gBAAgB,WAAW,WAAW,MAAM,UAAU,KAAK;AAAA,EACjF,oBAAoB;AAAA,IAClB,GAAG,gBAAgB;AAAA,IACnB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EACA,eAAe,EAAE,GAAG,gBAAgB,SAAS,OAAO,EAAE;AAAA,EACtD,eAAe,EAAE,GAAG,gBAAgB,SAAS,WAAW,OAAO,OAAO,EAAE;AAAA,EACxE,WAAW,EAAE,GAAG,gBAAgB,KAAK,WAAW,MAAM,OAAO,EAAE;AAAA,EAC/D,gBAAgB,EAAE,GAAG,gBAAgB,UAAU,OAAO,EAAE;AAAA,EACxD,mBAAmB,EAAE,GAAG,gBAAgB,UAAU,OAAO,EAAE;AAAA,EAC3D,iBAAiB,EAAE,GAAG,gBAAgB,WAAW,OAAO,EAAE;AAAA,EAC1D,kBAAkB,EAAE,GAAG,gBAAgB,aAAa,OAAO,EAAE;AAAA,EAC7D,qBAAqB,EAAE,GAAG,gBAAgB,eAAe,OAAO,EAAE;AAAA,EAClE,qBAAqB,EAAE,GAAG,gBAAgB,eAAe,OAAO,GAAG;AACrE;","names":[]}
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CLI_BIN_NAME,
4
4
  DEFAULT_BRANDING
5
- } from "./chunk-FMYAYX6W.js";
5
+ } from "./chunk-6PGL2XMY.js";
6
6
  import {
7
7
  init_esm_shims
8
8
  } from "./chunk-DHET7RCE.js";
@@ -57,4 +57,4 @@ export {
57
57
  STATUS_MESSAGES,
58
58
  INFO_MESSAGES
59
59
  };
60
- //# sourceMappingURL=chunk-M76LNKMY.js.map
60
+ //# sourceMappingURL=chunk-B7KZLXHV.js.map
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getDomainDisplayName
4
- } from "./chunk-3SCIYMRK.js";
4
+ } from "./chunk-FS4YWW36.js";
5
5
  import {
6
6
  CLI_COLORS
7
- } from "./chunk-FMYAYX6W.js";
7
+ } from "./chunk-6PGL2XMY.js";
8
8
  import {
9
9
  init_esm_shims
10
10
  } from "./chunk-DHET7RCE.js";
@@ -106,4 +106,4 @@ var StepConfirm = ({
106
106
  export {
107
107
  StepConfirm
108
108
  };
109
- //# sourceMappingURL=chunk-H3NQGJMB.js.map
109
+ //# sourceMappingURL=chunk-C4I4Q33M.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CLI_COLORS
4
- } from "./chunk-FMYAYX6W.js";
4
+ } from "./chunk-6PGL2XMY.js";
5
5
  import {
6
6
  init_esm_shims
7
7
  } from "./chunk-DHET7RCE.js";
@@ -111,4 +111,4 @@ export {
111
111
  computeStats,
112
112
  StatsPanel
113
113
  };
114
- //# sourceMappingURL=chunk-PZERKWE2.js.map
114
+ //# sourceMappingURL=chunk-FQTYF3OU.js.map
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  findStack
4
- } from "./chunk-4R6I6A3U.js";
4
+ } from "./chunk-3MXMYHO3.js";
5
5
  import {
6
6
  AGENT_NAMES,
7
7
  DOMAINS
8
- } from "./chunk-BN73X3JN.js";
8
+ } from "./chunk-WYHFSJ7O.js";
9
9
  import {
10
10
  BUILT_IN_DOMAIN_ORDER
11
- } from "./chunk-FMYAYX6W.js";
11
+ } from "./chunk-6PGL2XMY.js";
12
12
  import {
13
13
  init_esm_shims
14
14
  } from "./chunk-DHET7RCE.js";
@@ -29,8 +29,11 @@ function getDomainDisplayName(domain) {
29
29
  const displayNames = {
30
30
  web: "Web",
31
31
  api: "API",
32
+ ai: "AI",
32
33
  cli: "CLI",
33
34
  mobile: "Mobile",
35
+ infra: "Infrastructure",
36
+ meta: "Methodology",
34
37
  shared: "Shared"
35
38
  };
36
39
  return (isDomain(domain) ? displayNames[domain] : null) ?? domain.charAt(0).toUpperCase() + domain.slice(1);
@@ -51,4 +54,4 @@ export {
51
54
  getStackName,
52
55
  orderDomains
53
56
  };
54
- //# sourceMappingURL=chunk-3SCIYMRK.js.map
57
+ //# sourceMappingURL=chunk-FS4YWW36.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/utils/type-guards.ts","../src/cli/components/wizard/utils.ts"],"sourcesContent":["import { CATEGORIES, DOMAINS, AGENT_NAMES } from \"../types/generated/source-types\";\nimport type { Category, Domain, AgentName } from \"../types/generated/source-types\";\nimport type { CategoryPath } from \"../types/skills\";\n\n/** Runtime check that a string is a valid Category value from the generated union */\nexport function isCategory(value: string): value is Category {\n return (CATEGORIES as readonly string[]).includes(value);\n}\n\n/** Runtime check that a string is a valid Domain value from the generated union */\nexport function isDomain(value: string): value is Domain {\n return (DOMAINS as readonly string[]).includes(value);\n}\n\n/** Runtime check that a string is a valid AgentName value from the generated union */\nexport function isAgentName(value: string): value is AgentName {\n return (AGENT_NAMES as readonly string[]).includes(value);\n}\n\n/** Runtime check that a string is a valid CategoryPath (Category | \"local\") */\nexport function isCategoryPath(value: string): value is CategoryPath {\n return value === \"local\" || isCategory(value);\n}\n","import { unique } from \"remeda\";\nimport { BUILT_IN_DOMAIN_ORDER } from \"../../consts.js\";\nimport { matrix, findStack } from \"../../lib/matrix/matrix-provider.js\";\nimport type { Domain, ResolvedStack } from \"../../types/index.js\";\nimport { typedKeys } from \"../../utils/typed-object.js\";\nimport { isDomain } from \"../../utils/type-guards.js\";\n\nexport function getDomainDisplayName(domain: string): string {\n const displayNames: Record<Domain, string> = {\n web: \"Web\",\n api: \"API\",\n ai: \"AI\",\n cli: \"CLI\",\n mobile: \"Mobile\",\n infra: \"Infrastructure\",\n meta: \"Methodology\",\n shared: \"Shared\",\n };\n return (\n (isDomain(domain) ? displayNames[domain] : null) ??\n domain.charAt(0).toUpperCase() + domain.slice(1)\n );\n}\n\nexport function getStackName(stackId: string | null): string | undefined {\n if (!stackId) return undefined;\n return findStack(stackId)?.name;\n}\n\n/** Sort domains into canonical display order: custom domains first (alphabetically), then built-in domains (per BUILT_IN_DOMAIN_ORDER). */\nexport function orderDomains(domains: Domain[]): Domain[] {\n const builtIn = BUILT_IN_DOMAIN_ORDER.filter((d) => domains.includes(d));\n const custom = domains.filter((d) => !BUILT_IN_DOMAIN_ORDER.includes(d)).sort();\n return [...custom, ...builtIn];\n}\n\n/** Extract unique domains from a stack's agent-to-skill mappings. */\nexport function getDomainsFromStack(stack: ResolvedStack): Domain[] {\n const { categories } = matrix;\n const categoryKeys = Object.values(stack.skills).flatMap((config) =>\n config ? typedKeys(config) : [],\n );\n return unique(\n categoryKeys.flatMap((sub) => {\n const d = categories[sub]?.domain;\n return d ? [d] : [];\n }),\n ).sort();\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAUO,SAAS,SAAS,OAAgC;AACvD,SAAQ,QAA8B,SAAS,KAAK;AACtD;AAGO,SAAS,YAAY,OAAmC;AAC7D,SAAQ,YAAkC,SAAS,KAAK;AAC1D;;;ACjBA;AAAA,SAAS,cAAc;AAOhB,SAAS,qBAAqB,QAAwB;AAC3D,QAAM,eAAuC;AAAA,IAC3C,KAAK;AAAA,IACL,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AACA,UACG,SAAS,MAAM,IAAI,aAAa,MAAM,IAAI,SAC3C,OAAO,OAAO,CAAC,EAAE,YAAY,IAAI,OAAO,MAAM,CAAC;AAEnD;AAEO,SAAS,aAAa,SAA4C;AACvE,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,UAAU,OAAO,GAAG;AAC7B;AAGO,SAAS,aAAa,SAA6B;AACxD,QAAM,UAAU,sBAAsB,OAAO,CAAC,MAAM,QAAQ,SAAS,CAAC,CAAC;AACvE,QAAM,SAAS,QAAQ,OAAO,CAAC,MAAM,CAAC,sBAAsB,SAAS,CAAC,CAAC,EAAE,KAAK;AAC9E,SAAO,CAAC,GAAG,QAAQ,GAAG,OAAO;AAC/B;","names":[]}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  cliTheme
4
- } from "./chunk-3REKTRAN.js";
4
+ } from "./chunk-HEQVUIHQ.js";
5
5
  import {
6
6
  useTextInput
7
7
  } from "./chunk-U3IGFMCY.js";
@@ -17,7 +17,7 @@ import {
17
17
  CLI_COLORS,
18
18
  UI_LAYOUT,
19
19
  UI_SYMBOLS
20
- } from "./chunk-FMYAYX6W.js";
20
+ } from "./chunk-6PGL2XMY.js";
21
21
  import {
22
22
  init_esm_shims
23
23
  } from "./chunk-DHET7RCE.js";
@@ -351,4 +351,4 @@ var SkillSearch = ({
351
351
  export {
352
352
  SkillSearch
353
353
  };
354
- //# sourceMappingURL=chunk-MG55NDVG.js.map
354
+ //# sourceMappingURL=chunk-FT46LN7K.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-P2FHS5IS.js";
5
5
  import {
6
6
  useSectionScroll
7
- } from "./chunk-FFMWFEUH.js";
7
+ } from "./chunk-WJXWYSBT.js";
8
8
  import {
9
9
  HOTKEY_FILTER_INCOMPATIBLE,
10
10
  HOTKEY_TOGGLE_LABELS,
@@ -12,10 +12,10 @@ import {
12
12
  } from "./chunk-HK53FRMU.js";
13
13
  import {
14
14
  getSkillById
15
- } from "./chunk-4R6I6A3U.js";
15
+ } from "./chunk-3MXMYHO3.js";
16
16
  import {
17
17
  CLI_COLORS
18
- } from "./chunk-FMYAYX6W.js";
18
+ } from "./chunk-6PGL2XMY.js";
19
19
  import {
20
20
  init_esm_shims
21
21
  } from "./chunk-DHET7RCE.js";
@@ -371,4 +371,4 @@ var CategoryGrid = ({
371
371
  export {
372
372
  CategoryGrid
373
373
  };
374
- //# sourceMappingURL=chunk-WZGROC5L.js.map
374
+ //# sourceMappingURL=chunk-GEU62YD2.js.map
@@ -1,25 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  StatsPanel
4
- } from "./chunk-PZERKWE2.js";
4
+ } from "./chunk-FQTYF3OU.js";
5
5
  import {
6
6
  useMeasuredHeight
7
7
  } from "./chunk-K77I4XGL.js";
8
8
  import {
9
9
  CategoryGrid
10
- } from "./chunk-WZGROC5L.js";
10
+ } from "./chunk-GEU62YD2.js";
11
11
  import {
12
12
  useWizardStore
13
- } from "./chunk-FW4NVUIG.js";
13
+ } from "./chunk-TY5BOAAA.js";
14
14
  import {
15
15
  getAvailableSkills,
16
16
  getUnmetRequiredBy,
17
17
  resolveAlias
18
- } from "./chunk-UXKXPDOT.js";
18
+ } from "./chunk-L4JYOUGS.js";
19
19
  import {
20
20
  getSkillById,
21
21
  matrix
22
- } from "./chunk-4R6I6A3U.js";
22
+ } from "./chunk-3MXMYHO3.js";
23
23
  import {
24
24
  init_esm_shims
25
25
  } from "./chunk-DHET7RCE.js";
@@ -217,4 +217,4 @@ export {
217
217
  validateBuildStep,
218
218
  StepBuild
219
219
  };
220
- //# sourceMappingURL=chunk-ARVW74DG.js.map
220
+ //# sourceMappingURL=chunk-GMR4PQX3.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CLI_COLORS
4
- } from "./chunk-FMYAYX6W.js";
4
+ } from "./chunk-6PGL2XMY.js";
5
5
  import {
6
6
  init_esm_shims
7
7
  } from "./chunk-DHET7RCE.js";
@@ -78,4 +78,4 @@ var cliTheme = extendTheme(defaultTheme, {
78
78
  export {
79
79
  cliTheme
80
80
  };
81
- //# sourceMappingURL=chunk-3REKTRAN.js.map
81
+ //# sourceMappingURL=chunk-HEQVUIHQ.js.map