@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.
- package/CHANGELOG.md +28 -0
- package/dist/{chunk-633YIZOU.js → chunk-32HQMUEJ.js} +3 -3
- package/dist/{chunk-3C6AXGR7.js → chunk-3BDCU5QB.js} +13 -13
- package/dist/chunk-3BDCU5QB.js.map +1 -0
- package/dist/{chunk-XQWMNUX6.js → chunk-3BM5F4IX.js} +6 -6
- package/dist/{chunk-4R6I6A3U.js → chunk-3MXMYHO3.js} +1339 -1284
- package/dist/chunk-3MXMYHO3.js.map +1 -0
- package/dist/{chunk-2SJKI2HI.js → chunk-4DXSCGVI.js} +7 -8
- package/dist/chunk-4DXSCGVI.js.map +1 -0
- package/dist/{chunk-SQ7WINEU.js → chunk-4QA5TIBU.js} +3 -3
- package/dist/{chunk-IVFLVH4G.js → chunk-57HHZMWR.js} +9 -9
- package/dist/{chunk-MNJAF4K2.js → chunk-5BRHJD7Q.js} +5 -5
- package/dist/{chunk-KYGQS6PK.js → chunk-6EMIA36T.js} +5 -5
- package/dist/{chunk-FMYAYX6W.js → chunk-6PGL2XMY.js} +11 -2
- package/dist/{chunk-FMYAYX6W.js.map → chunk-6PGL2XMY.js.map} +1 -1
- package/dist/{chunk-K63OEZW7.js → chunk-6XEZLWG5.js} +2 -2
- package/dist/{chunk-AAR2SNR2.js → chunk-ABBXUIMQ.js} +8 -5
- package/dist/chunk-ABBXUIMQ.js.map +1 -0
- package/dist/{chunk-4R72372U.js → chunk-AD2UT2TN.js} +3 -3
- package/dist/{chunk-4R72372U.js.map → chunk-AD2UT2TN.js.map} +1 -1
- package/dist/{chunk-M76LNKMY.js → chunk-B7KZLXHV.js} +2 -2
- package/dist/{chunk-H3NQGJMB.js → chunk-C4I4Q33M.js} +3 -3
- package/dist/{chunk-PZERKWE2.js → chunk-FQTYF3OU.js} +2 -2
- package/dist/{chunk-3SCIYMRK.js → chunk-FS4YWW36.js} +7 -4
- package/dist/chunk-FS4YWW36.js.map +1 -0
- package/dist/{chunk-MG55NDVG.js → chunk-FT46LN7K.js} +3 -3
- package/dist/{chunk-WZGROC5L.js → chunk-GEU62YD2.js} +4 -4
- package/dist/{chunk-ARVW74DG.js → chunk-GMR4PQX3.js} +6 -6
- package/dist/{chunk-3REKTRAN.js → chunk-HEQVUIHQ.js} +2 -2
- package/dist/{chunk-WKIPL7P6.js → chunk-HRMPQ4DV.js} +5 -5
- package/dist/{chunk-RU5XLS5Q.js → chunk-HSKKGAOW.js} +3 -3
- package/dist/{chunk-LO4X32JC.js → chunk-IMO6EQKT.js} +20 -20
- package/dist/chunk-IMO6EQKT.js.map +1 -0
- package/dist/{chunk-NJ2RJLRS.js → chunk-IMP35ETG.js} +290 -247
- package/dist/chunk-IMP35ETG.js.map +1 -0
- package/dist/{chunk-UXKXPDOT.js → chunk-L4JYOUGS.js} +8 -8
- package/dist/{chunk-EYFBODHL.js → chunk-MC5PUGEL.js} +2 -2
- package/dist/{chunk-B6WAMTYR.js → chunk-R5LEXRV3.js} +6 -6
- package/dist/{chunk-HCN67E7Z.js → chunk-RX6HPZ7A.js} +6 -6
- package/dist/{chunk-A5JSBU65.js → chunk-SB2R5KHJ.js} +3 -3
- package/dist/{chunk-NZAJTLEK.js → chunk-SOEIE4VA.js} +3 -3
- package/dist/{chunk-C22ACAL2.js → chunk-SXGCCUTH.js} +2 -2
- package/dist/{chunk-LVBRC2CP.js → chunk-TEA5KBIA.js} +2 -2
- package/dist/{chunk-FW4NVUIG.js → chunk-TY5BOAAA.js} +5 -5
- package/dist/{chunk-A7BQTWI4.js → chunk-VO6JKRLT.js} +2 -2
- package/dist/{chunk-FFMWFEUH.js → chunk-WJXWYSBT.js} +2 -2
- package/dist/{chunk-BN73X3JN.js → chunk-WYHFSJ7O.js} +12 -6
- package/dist/chunk-WYHFSJ7O.js.map +1 -0
- package/dist/{chunk-TQ363UUH.js → chunk-X2HE3W74.js} +2 -2
- package/dist/{chunk-MLXAZODL.js → chunk-XO6X5QE5.js} +2 -2
- package/dist/{chunk-TZY7WNWO.js → chunk-XTVWVOLD.js} +3 -3
- package/dist/chunk-YVFGISUO.js +171 -0
- package/dist/chunk-YVFGISUO.js.map +1 -0
- package/dist/{chunk-VSMGVVZF.js → chunk-YXOZJWP3.js} +4 -4
- package/dist/{chunk-2KEBGORS.js → chunk-ZAYTTG3M.js} +5 -5
- package/dist/{chunk-V3EDF3IA.js → chunk-ZKQ4XQNO.js} +15 -15
- package/dist/commands/build/marketplace.js +5 -5
- package/dist/commands/build/plugins.js +9 -9
- package/dist/commands/build/stack.js +9 -9
- package/dist/commands/compile.js +10 -10
- package/dist/commands/config/index.js +9 -9
- package/dist/commands/config/path.js +8 -8
- package/dist/commands/config/show.js +9 -9
- package/dist/commands/diff.js +8 -8
- package/dist/commands/doctor.js +8 -8
- package/dist/commands/edit.js +34 -34
- package/dist/commands/eject.js +8 -8
- package/dist/commands/import/skill.js +9 -9
- package/dist/commands/info.js +9 -9
- package/dist/commands/init.js +34 -34
- package/dist/commands/list.js +8 -8
- package/dist/commands/new/agent.js +9 -9
- package/dist/commands/new/marketplace.js +10 -10
- package/dist/commands/new/skill.js +9 -9
- package/dist/commands/outdated.js +8 -8
- package/dist/commands/search.js +11 -11
- package/dist/commands/uninstall.js +9 -9
- package/dist/commands/update.js +10 -10
- package/dist/commands/validate.js +9 -9
- package/dist/components/common/select-list.js +2 -2
- package/dist/components/skill-search/skill-search.js +3 -3
- package/dist/components/wizard/category-grid.js +4 -4
- package/dist/components/wizard/category-grid.test.js +13 -13
- package/dist/components/wizard/checkbox-grid.js +4 -4
- package/dist/components/wizard/checkbox-grid.test.js +4 -4
- package/dist/components/wizard/domain-selection.js +13 -13
- package/dist/components/wizard/help-modal.js +2 -2
- package/dist/components/wizard/menu-item.js +1 -1
- package/dist/components/wizard/search-modal.js +3 -3
- package/dist/components/wizard/search-modal.test.js +3 -3
- package/dist/components/wizard/section-progress.js +2 -2
- package/dist/components/wizard/section-progress.test.js +2 -2
- package/dist/components/wizard/selection-card.js +2 -2
- package/dist/components/wizard/source-grid.js +6 -6
- package/dist/components/wizard/source-grid.test.js +15 -15
- package/dist/components/wizard/stack-selection.js +11 -11
- package/dist/components/wizard/stats-panel.js +2 -2
- package/dist/components/wizard/step-agents.js +12 -12
- package/dist/components/wizard/step-agents.test.js +15 -15
- package/dist/components/wizard/step-build.js +12 -12
- package/dist/components/wizard/step-build.test.js +15 -15
- package/dist/components/wizard/step-confirm.js +5 -5
- package/dist/components/wizard/step-confirm.test.js +11 -11
- package/dist/components/wizard/step-refine.js +2 -2
- package/dist/components/wizard/step-refine.test.js +2 -2
- package/dist/components/wizard/step-settings.js +10 -10
- package/dist/components/wizard/step-settings.test.js +13 -13
- package/dist/components/wizard/step-sources.js +14 -14
- package/dist/components/wizard/step-sources.test.js +17 -17
- package/dist/components/wizard/step-stack.js +12 -12
- package/dist/components/wizard/step-stack.test.js +13 -13
- package/dist/components/wizard/wizard-layout.js +12 -12
- package/dist/components/wizard/wizard-tabs.js +2 -2
- package/dist/components/wizard/wizard-tabs.test.js +2 -2
- package/dist/components/wizard/wizard.js +31 -31
- package/dist/config-exports.js +1 -1
- package/dist/hooks/init.js +34 -34
- package/dist/{loader-LI3EM4VG.js → loader-4XPDVCZK.js} +5 -5
- package/dist/{source-loader-MTWQPEGK.js → source-loader-C2QCBXOB.js} +8 -8
- package/dist/source-manager-DLEHJUZL.js +19 -0
- package/dist/src/agents/meta/agent-summoner/workflow.md +2 -2
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +1 -1
- package/dist/src/agents/meta/skill-summoner/examples.md +14 -16
- package/dist/src/agents/meta/skill-summoner/intro.md +1 -1
- package/dist/src/agents/meta/skill-summoner/output-format.md +9 -13
- package/dist/src/agents/meta/skill-summoner/workflow.md +20 -1
- package/dist/stores/wizard-store.js +8 -8
- package/dist/stores/wizard-store.test.js +36 -36
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +1 -1
- package/src/agents/meta/agent-summoner/workflow.md +2 -2
- package/src/agents/meta/skill-summoner/critical-reminders.md +1 -1
- package/src/agents/meta/skill-summoner/examples.md +14 -16
- package/src/agents/meta/skill-summoner/intro.md +1 -1
- package/src/agents/meta/skill-summoner/output-format.md +9 -13
- package/src/agents/meta/skill-summoner/workflow.md +20 -1
- package/src/schemas/metadata.schema.json +21 -4
- package/src/schemas/project-config.schema.json +48 -35
- package/dist/chunk-2SJKI2HI.js.map +0 -1
- package/dist/chunk-3C6AXGR7.js.map +0 -1
- package/dist/chunk-3SCIYMRK.js.map +0 -1
- package/dist/chunk-4R6I6A3U.js.map +0 -1
- package/dist/chunk-AAR2SNR2.js.map +0 -1
- package/dist/chunk-BN73X3JN.js.map +0 -1
- package/dist/chunk-LO4X32JC.js.map +0 -1
- package/dist/chunk-NJ2RJLRS.js.map +0 -1
- package/dist/chunk-TJXBRYM4.js +0 -159
- package/dist/chunk-TJXBRYM4.js.map +0 -1
- package/dist/source-manager-JJIJP75Q.js +0 -19
- /package/dist/{chunk-633YIZOU.js.map → chunk-32HQMUEJ.js.map} +0 -0
- /package/dist/{chunk-XQWMNUX6.js.map → chunk-3BM5F4IX.js.map} +0 -0
- /package/dist/{chunk-SQ7WINEU.js.map → chunk-4QA5TIBU.js.map} +0 -0
- /package/dist/{chunk-IVFLVH4G.js.map → chunk-57HHZMWR.js.map} +0 -0
- /package/dist/{chunk-MNJAF4K2.js.map → chunk-5BRHJD7Q.js.map} +0 -0
- /package/dist/{chunk-KYGQS6PK.js.map → chunk-6EMIA36T.js.map} +0 -0
- /package/dist/{chunk-K63OEZW7.js.map → chunk-6XEZLWG5.js.map} +0 -0
- /package/dist/{chunk-M76LNKMY.js.map → chunk-B7KZLXHV.js.map} +0 -0
- /package/dist/{chunk-H3NQGJMB.js.map → chunk-C4I4Q33M.js.map} +0 -0
- /package/dist/{chunk-PZERKWE2.js.map → chunk-FQTYF3OU.js.map} +0 -0
- /package/dist/{chunk-MG55NDVG.js.map → chunk-FT46LN7K.js.map} +0 -0
- /package/dist/{chunk-WZGROC5L.js.map → chunk-GEU62YD2.js.map} +0 -0
- /package/dist/{chunk-ARVW74DG.js.map → chunk-GMR4PQX3.js.map} +0 -0
- /package/dist/{chunk-3REKTRAN.js.map → chunk-HEQVUIHQ.js.map} +0 -0
- /package/dist/{chunk-WKIPL7P6.js.map → chunk-HRMPQ4DV.js.map} +0 -0
- /package/dist/{chunk-RU5XLS5Q.js.map → chunk-HSKKGAOW.js.map} +0 -0
- /package/dist/{chunk-UXKXPDOT.js.map → chunk-L4JYOUGS.js.map} +0 -0
- /package/dist/{chunk-EYFBODHL.js.map → chunk-MC5PUGEL.js.map} +0 -0
- /package/dist/{chunk-B6WAMTYR.js.map → chunk-R5LEXRV3.js.map} +0 -0
- /package/dist/{chunk-HCN67E7Z.js.map → chunk-RX6HPZ7A.js.map} +0 -0
- /package/dist/{chunk-A5JSBU65.js.map → chunk-SB2R5KHJ.js.map} +0 -0
- /package/dist/{chunk-NZAJTLEK.js.map → chunk-SOEIE4VA.js.map} +0 -0
- /package/dist/{chunk-C22ACAL2.js.map → chunk-SXGCCUTH.js.map} +0 -0
- /package/dist/{chunk-LVBRC2CP.js.map → chunk-TEA5KBIA.js.map} +0 -0
- /package/dist/{chunk-FW4NVUIG.js.map → chunk-TY5BOAAA.js.map} +0 -0
- /package/dist/{chunk-A7BQTWI4.js.map → chunk-VO6JKRLT.js.map} +0 -0
- /package/dist/{chunk-FFMWFEUH.js.map → chunk-WJXWYSBT.js.map} +0 -0
- /package/dist/{chunk-TQ363UUH.js.map → chunk-X2HE3W74.js.map} +0 -0
- /package/dist/{chunk-MLXAZODL.js.map → chunk-XO6X5QE5.js.map} +0 -0
- /package/dist/{chunk-TZY7WNWO.js.map → chunk-XTVWVOLD.js.map} +0 -0
- /package/dist/{chunk-VSMGVVZF.js.map → chunk-YXOZJWP3.js.map} +0 -0
- /package/dist/{chunk-2KEBGORS.js.map → chunk-ZAYTTG3M.js.map} +0 -0
- /package/dist/{chunk-V3EDF3IA.js.map → chunk-ZKQ4XQNO.js.map} +0 -0
- /package/dist/{loader-LI3EM4VG.js.map → loader-4XPDVCZK.js.map} +0 -0
- /package/dist/{source-loader-MTWQPEGK.js.map → source-loader-C2QCBXOB.js.map} +0 -0
- /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-
|
|
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-
|
|
13
|
+
} from "./chunk-FS4YWW36.js";
|
|
14
14
|
import {
|
|
15
15
|
HelpModal
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-SXGCCUTH.js";
|
|
17
17
|
import {
|
|
18
18
|
useWizardStore
|
|
19
|
-
} from "./chunk-
|
|
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-
|
|
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
|
|
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-
|
|
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":"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","names":["Fragment"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
computeRowScrollTop
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-WJXWYSBT.js";
|
|
5
5
|
import {
|
|
6
6
|
SCROLL_VIEWPORT
|
|
7
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
4
|
+
} from "./chunk-ZKQ4XQNO.js";
|
|
5
5
|
import {
|
|
6
6
|
SelectList
|
|
7
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
33
|
+
} from "./chunk-L4JYOUGS.js";
|
|
34
34
|
import {
|
|
35
35
|
getSkillById
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-3MXMYHO3.js";
|
|
37
37
|
import {
|
|
38
38
|
BaseCommand,
|
|
39
39
|
EXIT_CODES
|
|
40
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
13
|
+
} from "./chunk-WJXWYSBT.js";
|
|
14
14
|
import {
|
|
15
15
|
getSkillById,
|
|
16
16
|
matrix
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-3MXMYHO3.js";
|
|
18
18
|
import {
|
|
19
19
|
CLI_COLORS,
|
|
20
20
|
SOURCE_DISPLAY_NAMES
|
|
21
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
27
|
+
} from "./chunk-L4JYOUGS.js";
|
|
28
28
|
import {
|
|
29
29
|
getErrorMessage,
|
|
30
30
|
verbose
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-32HQMUEJ.js";
|
|
32
32
|
import {
|
|
33
33
|
CLI_COLORS
|
|
34
|
-
} from "./chunk-
|
|
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-
|
|
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 = [
|
|
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-
|
|
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-
|
|
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-
|
|
41
|
+
//# sourceMappingURL=chunk-6XEZLWG5.js.map
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getDomainDisplayName,
|
|
4
4
|
orderDomains
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-FS4YWW36.js";
|
|
6
6
|
import {
|
|
7
7
|
CheckboxGrid
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-HSKKGAOW.js";
|
|
9
9
|
import {
|
|
10
10
|
useWizardStore
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-TY5BOAAA.js";
|
|
12
12
|
import {
|
|
13
13
|
matrix,
|
|
14
14
|
typedEntries
|
|
15
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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
|
-
"
|
|
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-
|
|
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 \"
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
+
} from "./chunk-FS4YWW36.js";
|
|
5
5
|
import {
|
|
6
6
|
CLI_COLORS
|
|
7
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
+
} from "./chunk-3MXMYHO3.js";
|
|
5
5
|
import {
|
|
6
6
|
AGENT_NAMES,
|
|
7
7
|
DOMAINS
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-WYHFSJ7O.js";
|
|
9
9
|
import {
|
|
10
10
|
BUILT_IN_DOMAIN_ORDER
|
|
11
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
15
|
+
} from "./chunk-3MXMYHO3.js";
|
|
16
16
|
import {
|
|
17
17
|
CLI_COLORS
|
|
18
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
10
|
+
} from "./chunk-GEU62YD2.js";
|
|
11
11
|
import {
|
|
12
12
|
useWizardStore
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-TY5BOAAA.js";
|
|
14
14
|
import {
|
|
15
15
|
getAvailableSkills,
|
|
16
16
|
getUnmetRequiredBy,
|
|
17
17
|
resolveAlias
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-L4JYOUGS.js";
|
|
19
19
|
import {
|
|
20
20
|
getSkillById,
|
|
21
21
|
matrix
|
|
22
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
81
|
+
//# sourceMappingURL=chunk-HEQVUIHQ.js.map
|