@claude-collective/cli 0.21.0 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +174 -0
- package/README.md +41 -27
- package/config/skills-matrix.yaml +38 -37
- package/config/stacks.yaml +8 -14
- package/dist/{chunk-ZNIDWLL5.js → chunk-3X5D7RM5.js} +4 -3
- package/dist/chunk-3X5D7RM5.js.map +1 -0
- package/dist/chunk-4S4FCAA2.js +100 -0
- package/dist/chunk-4S4FCAA2.js.map +1 -0
- package/dist/chunk-4WGN6SUE.js +197 -0
- package/dist/chunk-4WGN6SUE.js.map +1 -0
- package/dist/{chunk-DHET7RCE.js → chunk-AWKZ5BDL.js} +9 -2
- package/dist/{chunk-DHET7RCE.js.map → chunk-AWKZ5BDL.js.map} +1 -1
- package/dist/{chunk-6Q3Y7KVB.js → chunk-DBRUQQUF.js} +8 -2
- package/dist/chunk-DBRUQQUF.js.map +1 -0
- package/dist/{chunk-OQYYMQJR.js → chunk-ETCVEV3S.js} +8 -11
- package/dist/chunk-ETCVEV3S.js.map +1 -0
- package/dist/{chunk-ZSVMS677.js → chunk-F4RD5FYM.js} +2 -2
- package/dist/chunk-F4RD5FYM.js.map +1 -0
- package/dist/{chunk-5KXUDHAB.js → chunk-GGFOD5PK.js} +6 -9
- package/dist/chunk-GGFOD5PK.js.map +1 -0
- package/dist/{chunk-UMORK7OK.js → chunk-H7SSBSPR.js} +2 -2
- package/dist/chunk-H7SSBSPR.js.map +1 -0
- package/dist/chunk-HWD32NP7.js +19 -0
- package/dist/chunk-HWD32NP7.js.map +1 -0
- package/dist/{chunk-HGCBZUH5.js → chunk-IAYAE6MG.js} +9 -10
- package/dist/chunk-IAYAE6MG.js.map +1 -0
- package/dist/{chunk-RTE64SJA.js → chunk-IXBCRT3F.js} +2 -2
- package/dist/chunk-IXBCRT3F.js.map +1 -0
- package/dist/{chunk-WFEFICFM.js → chunk-KWYO3M5Q.js} +5 -5
- package/dist/chunk-KWYO3M5Q.js.map +1 -0
- package/dist/{chunk-HEOHU5EZ.js → chunk-MCTSHLAF.js} +22 -11
- package/dist/chunk-MCTSHLAF.js.map +1 -0
- package/dist/chunk-MH66WDFV.js +251 -0
- package/dist/chunk-MH66WDFV.js.map +1 -0
- package/dist/{chunk-2LSGX6R4.js → chunk-MTPM7BX5.js} +83 -25
- package/dist/chunk-MTPM7BX5.js.map +1 -0
- package/dist/chunk-NQJ47R4N.js +1092 -0
- package/dist/chunk-NQJ47R4N.js.map +1 -0
- package/dist/chunk-NRC7XYCI.js +211 -0
- package/dist/chunk-NRC7XYCI.js.map +1 -0
- package/dist/{chunk-FJFEKPXF.js → chunk-O6ZTD7ZI.js} +14 -3
- package/dist/chunk-O6ZTD7ZI.js.map +1 -0
- package/dist/chunk-OBXAY23Y.js +56 -0
- package/dist/chunk-OBXAY23Y.js.map +1 -0
- package/dist/{chunk-XY3XDVMI.js → chunk-QR2EBWL2.js} +3 -3
- package/dist/{chunk-66UDJBF6.js → chunk-REJGRCVQ.js} +2 -2
- package/dist/{chunk-CBLPAMZO.js → chunk-TMED5DQ2.js} +68 -42
- package/dist/chunk-TMED5DQ2.js.map +1 -0
- package/dist/{chunk-Q3J43SF3.js → chunk-U7HFKR74.js} +2 -2
- package/dist/chunk-U7HFKR74.js.map +1 -0
- package/dist/{chunk-3EHUF54X.js → chunk-UEMRJI2K.js} +17 -4
- package/dist/chunk-UEMRJI2K.js.map +1 -0
- package/dist/{chunk-Z2CWURZ6.js → chunk-UNN7523L.js} +2 -2
- package/dist/chunk-V2ZIH7HV.js +29 -0
- package/dist/chunk-V2ZIH7HV.js.map +1 -0
- package/dist/{chunk-ZEI3ZUDU.js → chunk-VVYNZZUX.js} +7 -15
- package/dist/chunk-VVYNZZUX.js.map +1 -0
- package/dist/chunk-WXS4S3MA.js +220 -0
- package/dist/chunk-WXS4S3MA.js.map +1 -0
- package/dist/{chunk-A46TPNBJ.js → chunk-XENOESJZ.js} +7 -16
- package/dist/chunk-XENOESJZ.js.map +1 -0
- package/dist/chunk-YDBSSAJ6.js +4207 -0
- package/dist/chunk-YDBSSAJ6.js.map +1 -0
- package/dist/chunk-ZDREFYD2.js +696 -0
- package/dist/chunk-ZDREFYD2.js.map +1 -0
- package/dist/chunk-ZW2PELOH.js +197 -0
- package/dist/chunk-ZW2PELOH.js.map +1 -0
- package/dist/cli/defaults/agent-mappings.yaml +0 -1
- package/dist/commands/build/marketplace.js +15 -13
- package/dist/commands/build/marketplace.js.map +1 -1
- package/dist/commands/build/plugins.js +13 -229
- package/dist/commands/build/plugins.js.map +1 -1
- package/dist/commands/build/stack.js +11 -18
- package/dist/commands/build/stack.js.map +1 -1
- package/dist/commands/compile.js +36 -58
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/config/get.js +8 -8
- package/dist/commands/config/get.js.map +1 -1
- package/dist/commands/config/index.js +7 -7
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/config/path.js +6 -6
- package/dist/commands/config/path.js.map +1 -1
- package/dist/commands/config/set-project.js +8 -8
- package/dist/commands/config/set-project.js.map +1 -1
- package/dist/commands/config/show.js +7 -7
- package/dist/commands/config/unset-project.js +8 -8
- package/dist/commands/config/unset-project.js.map +1 -1
- package/dist/commands/diff.js +10 -16
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.js +18 -51
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +87 -57
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +17 -49
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/import/skill.js +26 -26
- package/dist/commands/import/skill.js.map +1 -1
- package/dist/commands/info.js +15 -17
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +45 -722
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +8 -87
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/new/agent.js +8 -12
- package/dist/commands/new/agent.js.map +1 -1
- package/dist/commands/new/skill.js +6 -6
- package/dist/commands/new/skill.js.map +1 -1
- package/dist/commands/outdated.js +15 -19
- package/dist/commands/outdated.js.map +1 -1
- package/dist/commands/search.js +21 -34
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +15 -14
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +13 -24
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.js +44 -487
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/version/bump.js +11 -11
- package/dist/commands/version/bump.js.map +1 -1
- package/dist/commands/version/index.js +9 -10
- package/dist/commands/version/index.js.map +1 -1
- package/dist/commands/version/set.js +10 -8
- package/dist/commands/version/set.js.map +1 -1
- package/dist/commands/version/show.js +9 -10
- package/dist/commands/version/show.js.map +1 -1
- package/dist/components/common/confirm.js +2 -2
- package/dist/components/common/confirm.test.js +203 -0
- package/dist/components/common/confirm.test.js.map +1 -0
- package/dist/components/common/message.js +1 -1
- package/dist/components/common/spinner.js +1 -1
- package/dist/components/common/spinner.js.map +1 -1
- package/dist/components/skill-search/skill-search.js +3 -3
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/category-grid.test.js +132 -78
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/menu-item.js +2 -2
- package/dist/components/wizard/search-modal.js +9 -0
- package/dist/components/wizard/search-modal.js.map +1 -0
- package/dist/components/wizard/search-modal.test.js +216 -0
- package/dist/components/wizard/search-modal.test.js.map +1 -0
- package/dist/components/wizard/section-progress.js +2 -2
- package/dist/components/wizard/section-progress.test.js +4 -4
- package/dist/components/wizard/section-progress.test.js.map +1 -1
- package/dist/components/wizard/source-grid.js +10 -0
- package/dist/components/wizard/source-grid.js.map +1 -0
- package/dist/components/wizard/source-grid.test.js +500 -0
- package/dist/components/wizard/source-grid.test.js.map +1 -0
- package/dist/components/wizard/step-approach.js +7 -6
- package/dist/components/wizard/step-approach.test.js +115 -0
- package/dist/components/wizard/step-approach.test.js.map +1 -0
- package/dist/components/wizard/step-build.js +9 -4
- package/dist/components/wizard/step-build.test.js +103 -122
- package/dist/components/wizard/step-build.test.js.map +1 -1
- package/dist/components/wizard/step-confirm.js +3 -2
- package/dist/components/wizard/step-confirm.test.js +364 -0
- package/dist/components/wizard/step-confirm.test.js.map +1 -0
- package/dist/components/wizard/step-refine.js +2 -2
- package/dist/components/wizard/step-refine.test.js +19 -13
- package/dist/components/wizard/step-refine.test.js.map +1 -1
- package/dist/components/wizard/step-settings.js +14 -0
- package/dist/components/wizard/step-settings.js.map +1 -0
- package/dist/components/wizard/step-settings.test.js +240 -0
- package/dist/components/wizard/step-settings.test.js.map +1 -0
- package/dist/components/wizard/step-sources.js +17 -0
- package/dist/components/wizard/step-sources.js.map +1 -0
- package/dist/components/wizard/step-sources.test.js +290 -0
- package/dist/components/wizard/step-sources.test.js.map +1 -0
- package/dist/components/wizard/step-stack.js +7 -6
- package/dist/components/wizard/step-stack.test.js +344 -0
- package/dist/components/wizard/step-stack.test.js.map +1 -0
- package/dist/components/wizard/view-title.js +2 -2
- package/dist/components/wizard/wizard-layout.js +6 -5
- package/dist/components/wizard/wizard-tabs.js +2 -2
- package/dist/components/wizard/wizard-tabs.test.js +292 -0
- package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
- package/dist/components/wizard/wizard.js +22 -14
- package/dist/config/skills-matrix.yaml +38 -37
- package/dist/config/stacks.yaml +8 -14
- package/dist/hooks/init.js +5 -5
- package/dist/hooks/init.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{magic-string.es-RGXYGAW3.js → magic-string.es-PAH2SOTR.js} +2 -2
- package/dist/source-manager-DSYZEVGZ.js +16 -0
- package/dist/source-manager-DSYZEVGZ.js.map +1 -0
- package/dist/src/agents/developer/api-developer/agent.yaml +1 -1
- package/dist/src/agents/developer/cli-developer/agent.yaml +1 -1
- package/dist/src/agents/developer/web-architecture/agent.yaml +1 -1
- package/dist/src/agents/developer/web-developer/agent.yaml +1 -1
- package/dist/src/agents/meta/agent-summoner/agent.yaml +1 -1
- package/dist/src/agents/meta/documentor/agent.yaml +1 -1
- package/dist/src/agents/meta/skill-summoner/agent.yaml +1 -1
- package/dist/src/agents/migration/cli-migrator/agent.yaml +1 -1
- package/dist/src/agents/pattern/pattern-scout/agent.yaml +1 -1
- package/dist/src/agents/pattern/web-pattern-critique/agent.yaml +1 -1
- package/dist/src/agents/planning/web-pm/agent.yaml +1 -1
- package/dist/src/agents/researcher/api-researcher/agent.yaml +1 -1
- package/dist/src/agents/researcher/web-researcher/agent.yaml +1 -1
- package/dist/src/agents/reviewer/api-reviewer/agent.yaml +1 -1
- package/dist/src/agents/reviewer/cli-reviewer/agent.yaml +1 -1
- package/dist/src/agents/reviewer/web-reviewer/agent.yaml +1 -1
- package/dist/src/agents/tester/cli-tester/agent.yaml +1 -1
- package/dist/src/agents/tester/web-tester/agent.yaml +1 -1
- package/dist/stores/wizard-store.js +4 -3
- package/dist/stores/wizard-store.test.js +51 -82
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +5 -3
- package/src/agents/developer/api-developer/agent.yaml +1 -1
- package/src/agents/developer/cli-developer/agent.yaml +1 -1
- package/src/agents/developer/web-architecture/agent.yaml +1 -1
- package/src/agents/developer/web-developer/agent.yaml +1 -1
- package/src/agents/meta/agent-summoner/agent.yaml +1 -1
- package/src/agents/meta/documentor/agent.yaml +1 -1
- package/src/agents/meta/skill-summoner/agent.yaml +1 -1
- package/src/agents/migration/cli-migrator/agent.yaml +1 -1
- package/src/agents/pattern/pattern-scout/agent.yaml +1 -1
- package/src/agents/pattern/web-pattern-critique/agent.yaml +1 -1
- package/src/agents/planning/web-pm/agent.yaml +1 -1
- package/src/agents/researcher/api-researcher/agent.yaml +1 -1
- package/src/agents/researcher/web-researcher/agent.yaml +1 -1
- package/src/agents/reviewer/api-reviewer/agent.yaml +1 -1
- package/src/agents/reviewer/cli-reviewer/agent.yaml +1 -1
- package/src/agents/reviewer/web-reviewer/agent.yaml +1 -1
- package/src/agents/tester/cli-tester/agent.yaml +1 -1
- package/src/agents/tester/web-tester/agent.yaml +1 -1
- package/dist/chunk-2LSGX6R4.js.map +0 -1
- package/dist/chunk-2OKUEELH.js +0 -32
- package/dist/chunk-2OKUEELH.js.map +0 -1
- package/dist/chunk-374JNMR6.js +0 -212
- package/dist/chunk-374JNMR6.js.map +0 -1
- package/dist/chunk-3EHUF54X.js.map +0 -1
- package/dist/chunk-3XR4PALU.js +0 -529
- package/dist/chunk-3XR4PALU.js.map +0 -1
- package/dist/chunk-5K2ZLUO5.js +0 -57
- package/dist/chunk-5K2ZLUO5.js.map +0 -1
- package/dist/chunk-5KXUDHAB.js.map +0 -1
- package/dist/chunk-6Q3Y7KVB.js.map +0 -1
- package/dist/chunk-7SLV7CMF.js +0 -615
- package/dist/chunk-7SLV7CMF.js.map +0 -1
- package/dist/chunk-A46TPNBJ.js.map +0 -1
- package/dist/chunk-AL74GBW4.js +0 -69
- package/dist/chunk-AL74GBW4.js.map +0 -1
- package/dist/chunk-BQX23RBV.js +0 -191
- package/dist/chunk-BQX23RBV.js.map +0 -1
- package/dist/chunk-CA4LH4LI.js +0 -132
- package/dist/chunk-CA4LH4LI.js.map +0 -1
- package/dist/chunk-CBLPAMZO.js.map +0 -1
- package/dist/chunk-CKPQHGXR.js +0 -417
- package/dist/chunk-CKPQHGXR.js.map +0 -1
- package/dist/chunk-CXOFOJCN.js +0 -80
- package/dist/chunk-CXOFOJCN.js.map +0 -1
- package/dist/chunk-EHGD7HIE.js +0 -104
- package/dist/chunk-EHGD7HIE.js.map +0 -1
- package/dist/chunk-EHS3TWWP.js +0 -95
- package/dist/chunk-EHS3TWWP.js.map +0 -1
- package/dist/chunk-FJFEKPXF.js.map +0 -1
- package/dist/chunk-HEOHU5EZ.js.map +0 -1
- package/dist/chunk-HGCBZUH5.js.map +0 -1
- package/dist/chunk-HPGFY5ZN.js +0 -114
- package/dist/chunk-HPGFY5ZN.js.map +0 -1
- package/dist/chunk-INJ2EFRW.js +0 -127
- package/dist/chunk-INJ2EFRW.js.map +0 -1
- package/dist/chunk-IOBFMF6X.js +0 -61
- package/dist/chunk-IOBFMF6X.js.map +0 -1
- package/dist/chunk-KH3HA7J7.js +0 -116
- package/dist/chunk-KH3HA7J7.js.map +0 -1
- package/dist/chunk-N6JNE326.js +0 -261
- package/dist/chunk-N6JNE326.js.map +0 -1
- package/dist/chunk-NAGU7TVZ.js +0 -36
- package/dist/chunk-NAGU7TVZ.js.map +0 -1
- package/dist/chunk-OQYYMQJR.js.map +0 -1
- package/dist/chunk-PLZOUVDD.js +0 -419
- package/dist/chunk-PLZOUVDD.js.map +0 -1
- package/dist/chunk-Q3J43SF3.js.map +0 -1
- package/dist/chunk-RTE64SJA.js.map +0 -1
- package/dist/chunk-T25OEQFI.js +0 -26
- package/dist/chunk-T25OEQFI.js.map +0 -1
- package/dist/chunk-UMORK7OK.js.map +0 -1
- package/dist/chunk-VFHWU7JU.js +0 -287
- package/dist/chunk-VFHWU7JU.js.map +0 -1
- package/dist/chunk-VS4GVTZE.js +0 -91
- package/dist/chunk-VS4GVTZE.js.map +0 -1
- package/dist/chunk-WFEFICFM.js.map +0 -1
- package/dist/chunk-WG6KIAPK.js +0 -54
- package/dist/chunk-WG6KIAPK.js.map +0 -1
- package/dist/chunk-ZEI3ZUDU.js.map +0 -1
- package/dist/chunk-ZNIDWLL5.js.map +0 -1
- package/dist/chunk-ZSVMS677.js.map +0 -1
- /package/dist/{chunk-XY3XDVMI.js.map → chunk-QR2EBWL2.js.map} +0 -0
- /package/dist/{chunk-66UDJBF6.js.map → chunk-REJGRCVQ.js.map} +0 -0
- /package/dist/{chunk-Z2CWURZ6.js.map → chunk-UNN7523L.js.map} +0 -0
- /package/dist/{magic-string.es-RGXYGAW3.js.map → magic-string.es-PAH2SOTR.js.map} +0 -0
|
@@ -1,34 +1,45 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
StepSources
|
|
4
|
+
} from "./chunk-MH66WDFV.js";
|
|
2
5
|
import {
|
|
3
6
|
StepStack
|
|
4
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XENOESJZ.js";
|
|
5
8
|
import {
|
|
6
9
|
WizardLayout
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import {
|
|
9
|
-
StepApproach
|
|
10
|
-
} from "./chunk-WFEFICFM.js";
|
|
10
|
+
} from "./chunk-UEMRJI2K.js";
|
|
11
11
|
import {
|
|
12
|
-
StepBuild
|
|
13
|
-
|
|
14
|
-
validateSelection
|
|
15
|
-
} from "./chunk-3XR4PALU.js";
|
|
12
|
+
StepBuild
|
|
13
|
+
} from "./chunk-WXS4S3MA.js";
|
|
16
14
|
import {
|
|
17
15
|
StepConfirm
|
|
18
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-VVYNZZUX.js";
|
|
17
|
+
import {
|
|
18
|
+
getStackName
|
|
19
|
+
} from "./chunk-V2ZIH7HV.js";
|
|
20
|
+
import {
|
|
21
|
+
StepSettings
|
|
22
|
+
} from "./chunk-4WGN6SUE.js";
|
|
23
|
+
import {
|
|
24
|
+
StepApproach
|
|
25
|
+
} from "./chunk-KWYO3M5Q.js";
|
|
19
26
|
import {
|
|
20
27
|
cliTheme
|
|
21
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-UNN7523L.js";
|
|
22
29
|
import {
|
|
23
30
|
useWizardStore
|
|
24
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-TMED5DQ2.js";
|
|
32
|
+
import {
|
|
33
|
+
resolveAlias,
|
|
34
|
+
validateSelection
|
|
35
|
+
} from "./chunk-YDBSSAJ6.js";
|
|
25
36
|
import {
|
|
26
37
|
init_esm_shims
|
|
27
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-AWKZ5BDL.js";
|
|
28
39
|
|
|
29
40
|
// src/cli/components/wizard/wizard.tsx
|
|
30
41
|
init_esm_shims();
|
|
31
|
-
import { useCallback } from "react";
|
|
42
|
+
import { useCallback, useState } from "react";
|
|
32
43
|
import { Box, Text, useApp, useInput, useStdout } from "ink";
|
|
33
44
|
import { ThemeProvider } from "@inkjs/ui";
|
|
34
45
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -37,18 +48,36 @@ function getParentDomain(domain, matrix) {
|
|
|
37
48
|
return cat?.parent_domain;
|
|
38
49
|
}
|
|
39
50
|
var MIN_TERMINAL_WIDTH = 80;
|
|
40
|
-
var Wizard = ({
|
|
51
|
+
var Wizard = ({
|
|
52
|
+
matrix,
|
|
53
|
+
onComplete,
|
|
54
|
+
onCancel,
|
|
55
|
+
version,
|
|
56
|
+
initialStep,
|
|
57
|
+
installedSkillIds,
|
|
58
|
+
projectDir
|
|
59
|
+
}) => {
|
|
41
60
|
const store = useWizardStore();
|
|
42
61
|
const { exit } = useApp();
|
|
43
62
|
const { stdout } = useStdout();
|
|
44
63
|
const terminalWidth = stdout.columns || MIN_TERMINAL_WIDTH;
|
|
45
64
|
const isNarrowTerminal = terminalWidth < MIN_TERMINAL_WIDTH;
|
|
65
|
+
const [initialized] = useState(() => {
|
|
66
|
+
if (initialStep) {
|
|
67
|
+
if (installedSkillIds?.length) {
|
|
68
|
+
useWizardStore.getState().populateFromSkillIds(installedSkillIds, matrix.skills, matrix.categories);
|
|
69
|
+
}
|
|
70
|
+
useWizardStore.setState({ step: initialStep, approach: "scratch" });
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
});
|
|
46
74
|
useInput((input, key) => {
|
|
75
|
+
if (store.showSettings) return;
|
|
47
76
|
if (key.escape) {
|
|
48
77
|
if (store.step === "approach") {
|
|
49
78
|
onCancel();
|
|
50
79
|
exit();
|
|
51
|
-
} else if (store.step !== "build" && store.step !== "confirm") {
|
|
80
|
+
} else if (store.step !== "build" && store.step !== "confirm" && store.step !== "sources") {
|
|
52
81
|
store.goBack();
|
|
53
82
|
}
|
|
54
83
|
return;
|
|
@@ -58,6 +87,10 @@ var Wizard = ({ matrix, onComplete, onCancel, version }) => {
|
|
|
58
87
|
store.setStep("confirm");
|
|
59
88
|
return;
|
|
60
89
|
}
|
|
90
|
+
if ((input === "g" || input === "G") && store.step === "sources") {
|
|
91
|
+
store.toggleSettings();
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
61
94
|
if (input === "e" || input === "E") {
|
|
62
95
|
store.toggleExpertMode();
|
|
63
96
|
return;
|
|
@@ -78,13 +111,13 @@ var Wizard = ({ matrix, onComplete, onCancel, version }) => {
|
|
|
78
111
|
} else {
|
|
79
112
|
const techNames = store.getAllSelectedTechnologies();
|
|
80
113
|
allSkills = techNames.map((tech) => {
|
|
81
|
-
const resolved = matrix
|
|
82
|
-
if (!
|
|
114
|
+
const resolved = resolveAlias(tech, matrix);
|
|
115
|
+
if (!matrix.skills[resolved]) {
|
|
83
116
|
console.warn(
|
|
84
117
|
`Warning: Technology '${tech}' could not be resolved to a skill ID \u2014 it may be missing from skill_aliases`
|
|
85
118
|
);
|
|
86
119
|
}
|
|
87
|
-
return resolved
|
|
120
|
+
return resolved;
|
|
88
121
|
});
|
|
89
122
|
}
|
|
90
123
|
const methodologySkills = store.getSelectedSkills();
|
|
@@ -98,6 +131,7 @@ var Wizard = ({ matrix, onComplete, onCancel, version }) => {
|
|
|
98
131
|
selectedSkills: allSkills,
|
|
99
132
|
selectedStackId: store.selectedStackId,
|
|
100
133
|
domainSelections: store.domainSelections,
|
|
134
|
+
sourceSelections: store.sourceSelections,
|
|
101
135
|
expertMode: store.expertMode,
|
|
102
136
|
installMode: store.installMode,
|
|
103
137
|
cancelled: false,
|
|
@@ -114,7 +148,8 @@ var Wizard = ({ matrix, onComplete, onCancel, version }) => {
|
|
|
114
148
|
return /* @__PURE__ */ jsx(StepStack, { matrix });
|
|
115
149
|
case "build": {
|
|
116
150
|
const currentDomain = store.getCurrentDomain();
|
|
117
|
-
const
|
|
151
|
+
const defaultDomains = ["web"];
|
|
152
|
+
const effectiveDomains = store.selectedDomains.length > 0 ? store.selectedDomains : defaultDomains;
|
|
118
153
|
const allSelections = store.getAllSelectedTechnologies();
|
|
119
154
|
const activeDomain = currentDomain || effectiveDomains[0] || "web";
|
|
120
155
|
const parentDomain = getParentDomain(activeDomain, matrix);
|
|
@@ -132,6 +167,7 @@ var Wizard = ({ matrix, onComplete, onCancel, version }) => {
|
|
|
132
167
|
showDescriptions: store.showDescriptions,
|
|
133
168
|
expertMode: store.expertMode,
|
|
134
169
|
parentDomainSelections,
|
|
170
|
+
installedSkillIds,
|
|
135
171
|
onToggle: (subcategoryId, techId) => {
|
|
136
172
|
const domain = store.getCurrentDomain() || "web";
|
|
137
173
|
const cat = matrix.categories[subcategoryId];
|
|
@@ -141,7 +177,7 @@ var Wizard = ({ matrix, onComplete, onCancel, version }) => {
|
|
|
141
177
|
onToggleDescriptions: store.toggleShowDescriptions,
|
|
142
178
|
onContinue: () => {
|
|
143
179
|
if (!store.nextDomain()) {
|
|
144
|
-
store.setStep("
|
|
180
|
+
store.setStep("sources");
|
|
145
181
|
}
|
|
146
182
|
},
|
|
147
183
|
onBack: () => {
|
|
@@ -152,18 +188,40 @@ var Wizard = ({ matrix, onComplete, onCancel, version }) => {
|
|
|
152
188
|
}
|
|
153
189
|
);
|
|
154
190
|
}
|
|
191
|
+
case "sources": {
|
|
192
|
+
if (store.showSettings) {
|
|
193
|
+
return /* @__PURE__ */ jsx(
|
|
194
|
+
StepSettings,
|
|
195
|
+
{
|
|
196
|
+
projectDir: projectDir || process.cwd(),
|
|
197
|
+
onClose: () => store.toggleSettings()
|
|
198
|
+
}
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
return /* @__PURE__ */ jsx(
|
|
202
|
+
StepSources,
|
|
203
|
+
{
|
|
204
|
+
matrix,
|
|
205
|
+
projectDir,
|
|
206
|
+
onContinue: handleComplete,
|
|
207
|
+
onBack: store.goBack
|
|
208
|
+
}
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
// NOTE: Currently unreachable — sources step calls handleComplete directly.
|
|
212
|
+
// Kept for future use when confirm step is wired back in.
|
|
155
213
|
case "confirm": {
|
|
156
214
|
const stackName = getStackName(store.selectedStackId, matrix);
|
|
215
|
+
const selectedCount = store.getAllSelectedTechnologies().length;
|
|
157
216
|
return /* @__PURE__ */ jsx(
|
|
158
217
|
StepConfirm,
|
|
159
218
|
{
|
|
160
|
-
matrix,
|
|
161
219
|
onComplete: handleComplete,
|
|
162
220
|
stackName,
|
|
163
221
|
selectedDomains: store.selectedDomains,
|
|
164
222
|
domainSelections: store.domainSelections,
|
|
165
|
-
technologyCount:
|
|
166
|
-
skillCount:
|
|
223
|
+
technologyCount: selectedCount,
|
|
224
|
+
skillCount: selectedCount,
|
|
167
225
|
installMode: store.installMode,
|
|
168
226
|
onBack: store.goBack
|
|
169
227
|
}
|
|
@@ -196,4 +254,4 @@ var Wizard = ({ matrix, onComplete, onCancel, version }) => {
|
|
|
196
254
|
export {
|
|
197
255
|
Wizard
|
|
198
256
|
};
|
|
199
|
-
//# sourceMappingURL=chunk-
|
|
257
|
+
//# sourceMappingURL=chunk-MTPM7BX5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/wizard.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { Box, Text, useApp, useInput, useStdout } from \"ink\";\nimport { ThemeProvider } from \"@inkjs/ui\";\nimport { useWizardStore, type WizardStep } from \"../../stores/wizard-store.js\";\nimport { cliTheme } from \"../themes/default.js\";\nimport { WizardLayout } from \"./wizard-layout.js\";\nimport { StepApproach } from \"./step-approach.js\";\nimport { StepStack } from \"./step-stack.js\";\nimport { StepBuild } from \"./step-build.js\";\nimport { StepConfirm } from \"./step-confirm.js\";\nimport { StepSources } from \"./step-sources.js\";\nimport { StepSettings } from \"./step-settings.js\";\nimport { resolveAlias, validateSelection } from \"../../lib/matrix/index.js\";\nimport type { Domain, DomainSelections, MergedSkillsMatrix, SkillId } from \"../../types/index.js\";\nimport { getStackName } from \"./utils.js\";\n\nexport type WizardResultV2 = {\n selectedSkills: SkillId[];\n selectedStackId: string | null;\n domainSelections: DomainSelections;\n sourceSelections: Partial<Record<SkillId, string>>;\n expertMode: boolean;\n installMode: \"plugin\" | \"local\";\n cancelled: boolean;\n validation: {\n valid: boolean;\n errors: Array<{ message: string }>;\n warnings: Array<{ message: string }>;\n };\n};\n\ntype WizardProps = {\n matrix: MergedSkillsMatrix;\n onComplete: (result: WizardResultV2) => void;\n onCancel: () => void;\n version?: string;\n initialStep?: WizardStep;\n installedSkillIds?: SkillId[];\n projectDir?: string;\n};\n\nfunction getParentDomain(domain: Domain, matrix: MergedSkillsMatrix): Domain | undefined {\n const cat = Object.values(matrix.categories).find((c) => c.domain === domain && c.parent_domain);\n return cat?.parent_domain;\n}\n\nconst MIN_TERMINAL_WIDTH = 80;\n\nexport const Wizard: React.FC<WizardProps> = ({\n matrix,\n onComplete,\n onCancel,\n version,\n initialStep,\n installedSkillIds,\n projectDir,\n}) => {\n const store = useWizardStore();\n const { exit } = useApp();\n const { stdout } = useStdout();\n\n const terminalWidth = stdout.columns || MIN_TERMINAL_WIDTH;\n const isNarrowTerminal = terminalWidth < MIN_TERMINAL_WIDTH;\n\n const [initialized] = useState(() => {\n if (initialStep) {\n if (installedSkillIds?.length) {\n useWizardStore\n .getState()\n .populateFromSkillIds(installedSkillIds, matrix.skills, matrix.categories);\n }\n useWizardStore.setState({ step: initialStep, approach: \"scratch\" });\n }\n return true;\n });\n\n useInput((input, key) => {\n // Disable global hotkeys when settings overlay is active\n if (store.showSettings) return;\n\n if (key.escape) {\n if (store.step === \"approach\") {\n onCancel();\n exit();\n } else if (store.step !== \"build\" && store.step !== \"confirm\" && store.step !== \"sources\") {\n // Only handle escape globally for steps that don't have their own escape handler.\n // Build, sources, and confirm handle escape via their onBack props.\n store.goBack();\n }\n return;\n }\n\n // Accept defaults shortcut (stack path only, during build step)\n if ((input === \"a\" || input === \"A\") && store.step === \"build\" && store.selectedStackId) {\n store.setStackAction(\"defaults\");\n store.setStep(\"confirm\");\n return;\n }\n\n // Settings overlay (sources step only)\n if ((input === \"g\" || input === \"G\") && store.step === \"sources\") {\n store.toggleSettings();\n return;\n }\n\n // Global toggles\n if (input === \"e\" || input === \"E\") {\n store.toggleExpertMode();\n return;\n }\n if (input === \"p\" || input === \"P\") {\n store.toggleInstallMode();\n return;\n }\n });\n\n const handleComplete = useCallback(() => {\n let allSkills: SkillId[];\n\n if (store.selectedStackId && store.stackAction === \"defaults\") {\n const stack = matrix.suggestedStacks.find((s) => s.id === store.selectedStackId);\n if (!stack) {\n console.warn(`Stack not found in matrix: ${store.selectedStackId}`);\n }\n allSkills = [...(stack?.allSkillIds || [])];\n } else {\n const techNames = store.getAllSelectedTechnologies();\n allSkills = techNames.map((tech) => {\n const resolved = resolveAlias(tech, matrix);\n if (!matrix.skills[resolved]) {\n console.warn(\n `Warning: Technology '${tech}' could not be resolved to a skill ID — it may be missing from skill_aliases`,\n );\n }\n return resolved;\n });\n }\n\n const methodologySkills = store.getSelectedSkills();\n for (const skill of methodologySkills) {\n if (!allSkills.includes(skill)) {\n allSkills.push(skill);\n }\n }\n\n const validation = validateSelection(allSkills, matrix);\n\n const result: WizardResultV2 = {\n selectedSkills: allSkills,\n selectedStackId: store.selectedStackId,\n domainSelections: store.domainSelections,\n sourceSelections: store.sourceSelections,\n expertMode: store.expertMode,\n installMode: store.installMode,\n cancelled: false,\n validation,\n };\n\n onComplete(result);\n exit();\n }, [store, matrix, onComplete, exit]);\n\n const renderStep = () => {\n switch (store.step) {\n case \"approach\":\n return <StepApproach />;\n\n case \"stack\":\n return <StepStack matrix={matrix} />;\n\n case \"build\": {\n const currentDomain = store.getCurrentDomain();\n const defaultDomains: Domain[] = [\"web\"];\n const effectiveDomains =\n store.selectedDomains.length > 0 ? store.selectedDomains : defaultDomains;\n\n const allSelections = store.getAllSelectedTechnologies();\n\n const activeDomain: Domain = currentDomain || effectiveDomains[0] || \"web\";\n const parentDomain = getParentDomain(activeDomain, matrix);\n const parentDomainSelections = parentDomain\n ? store.domainSelections[parentDomain]\n : undefined;\n\n return (\n <StepBuild\n matrix={matrix}\n domain={activeDomain}\n selectedDomains={effectiveDomains}\n selections={store.domainSelections[activeDomain] || {}}\n allSelections={allSelections}\n focusedRow={store.focusedRow}\n focusedCol={store.focusedCol}\n showDescriptions={store.showDescriptions}\n expertMode={store.expertMode}\n parentDomainSelections={parentDomainSelections}\n installedSkillIds={installedSkillIds}\n onToggle={(subcategoryId, techId) => {\n const domain: Domain = store.getCurrentDomain() || \"web\";\n const cat = matrix.categories[subcategoryId];\n store.toggleTechnology(domain, subcategoryId, techId, cat?.exclusive ?? true);\n }}\n onFocusChange={store.setFocus}\n onToggleDescriptions={store.toggleShowDescriptions}\n onContinue={() => {\n if (!store.nextDomain()) {\n store.setStep(\"sources\");\n }\n }}\n onBack={() => {\n if (!store.prevDomain()) {\n store.goBack();\n }\n }}\n />\n );\n }\n\n case \"sources\": {\n if (store.showSettings) {\n return (\n <StepSettings\n projectDir={projectDir || process.cwd()}\n onClose={() => store.toggleSettings()}\n />\n );\n }\n return (\n <StepSources\n matrix={matrix}\n projectDir={projectDir}\n onContinue={handleComplete}\n onBack={store.goBack}\n />\n );\n }\n\n // NOTE: Currently unreachable — sources step calls handleComplete directly.\n // Kept for future use when confirm step is wired back in.\n case \"confirm\": {\n const stackName = getStackName(store.selectedStackId, matrix);\n const selectedCount = store.getAllSelectedTechnologies().length;\n return (\n <StepConfirm\n onComplete={handleComplete}\n stackName={stackName}\n selectedDomains={store.selectedDomains}\n domainSelections={store.domainSelections}\n technologyCount={selectedCount}\n skillCount={selectedCount}\n installMode={store.installMode}\n onBack={store.goBack}\n />\n );\n }\n\n default:\n return null;\n }\n };\n\n if (isNarrowTerminal) {\n return (\n <ThemeProvider theme={cliTheme}>\n <Box flexDirection=\"column\" padding={1}>\n <Text color=\"yellow\">\n Terminal too narrow ({terminalWidth} columns). Please resize to at least{\" \"}\n {MIN_TERMINAL_WIDTH} columns.\n </Text>\n <Box marginTop={1}>\n <Text dimColor>Current width: {terminalWidth} columns</Text>\n </Box>\n </Box>\n </ThemeProvider>\n );\n }\n\n return (\n <ThemeProvider theme={cliTheme}>\n <WizardLayout version={version}>{renderStep()}</WizardLayout>\n </ThemeProvider>\n );\n};\n"],"mappings":"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","names":[]}
|