@agents-inc/cli 0.41.2 → 0.42.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 +13 -0
- package/config/stacks.yaml +0 -321
- package/dist/{chunk-ZLHGJSRK.js → chunk-2TWELY5M.js} +3 -3
- package/dist/{chunk-4UTPJXUX.js → chunk-33D24DAF.js} +22 -54
- package/dist/chunk-33D24DAF.js.map +1 -0
- package/dist/{chunk-UKTYDNWJ.js → chunk-44QCEK7E.js} +5 -5
- package/dist/chunk-44QCEK7E.js.map +1 -0
- package/dist/{chunk-NYP5SB2V.js → chunk-52SI5XJH.js} +2 -2
- package/dist/{chunk-GEDWVX6Y.js → chunk-53K3URKF.js} +8 -8
- package/dist/chunk-53K3URKF.js.map +1 -0
- package/dist/{chunk-2D6LKRHW.js → chunk-ALWLM5MC.js} +2 -2
- package/dist/{chunk-AVVYFEMF.js → chunk-AQANPOLS.js} +2 -2
- package/dist/{chunk-5TMB53BV.js → chunk-BKW34TKI.js} +7 -4
- package/dist/chunk-BKW34TKI.js.map +1 -0
- package/dist/{chunk-BFISETQG.js → chunk-EFZN22TO.js} +3 -3
- package/dist/{chunk-7FBM7V3E.js → chunk-EPJ2GJNJ.js} +10 -10
- package/dist/chunk-EPJ2GJNJ.js.map +1 -0
- package/dist/{chunk-SILUTTV7.js → chunk-FDY6SGSA.js} +2 -2
- package/dist/{chunk-342YB6TQ.js → chunk-FF4Z7MHY.js} +20 -13
- package/dist/chunk-FF4Z7MHY.js.map +1 -0
- package/dist/{chunk-ACVJVYMC.js → chunk-GCN7GGWE.js} +15 -27
- package/dist/chunk-GCN7GGWE.js.map +1 -0
- package/dist/{chunk-FHBICUXB.js → chunk-GIZ6DENW.js} +4 -4
- package/dist/{chunk-KC2SIUIA.js → chunk-GVRZY5KI.js} +4 -5
- package/dist/chunk-GVRZY5KI.js.map +1 -0
- package/dist/{chunk-LJRP4SWY.js → chunk-HMGWGWFT.js} +2 -2
- package/dist/{chunk-H6H3COI5.js → chunk-IUYU2TP6.js} +5 -5
- package/dist/{chunk-AH7XHAKN.js → chunk-J73KIP6Z.js} +2 -2
- package/dist/chunk-J73KIP6Z.js.map +1 -0
- package/dist/{chunk-TJAZ7QCF.js → chunk-KA253GGY.js} +4 -4
- package/dist/{chunk-4SYXPG7L.js → chunk-MHET2RG2.js} +8 -3
- package/dist/chunk-MHET2RG2.js.map +1 -0
- package/dist/{chunk-DV4ALU5I.js → chunk-MI4NWOWD.js} +17 -24
- package/dist/chunk-MI4NWOWD.js.map +1 -0
- package/dist/chunk-MMD26LKJ.js +20 -0
- package/dist/chunk-MMD26LKJ.js.map +1 -0
- package/dist/{chunk-MNPPGIZQ.js → chunk-ORJPGZVD.js} +5 -5
- package/dist/{chunk-R52N7DBG.js → chunk-PEAPABFI.js} +4 -4
- package/dist/chunk-PEAPABFI.js.map +1 -0
- package/dist/{chunk-BK7TANUV.js → chunk-PP7NDFFE.js} +4 -3
- package/dist/{chunk-BK7TANUV.js.map → chunk-PP7NDFFE.js.map} +1 -1
- package/dist/{chunk-TTXV55NQ.js → chunk-SYHRJG5G.js} +6 -3
- package/dist/chunk-SYHRJG5G.js.map +1 -0
- package/dist/{chunk-NZYKDVRL.js → chunk-UVVNWF43.js} +2 -2
- package/dist/{chunk-NZYKDVRL.js.map → chunk-UVVNWF43.js.map} +1 -1
- package/dist/{chunk-XJXJZ2MJ.js → chunk-UXNHU7Y7.js} +5 -1
- package/dist/chunk-UXNHU7Y7.js.map +1 -0
- package/dist/{chunk-YLJYAQSG.js → chunk-VHGIQN5O.js} +7 -5
- package/dist/chunk-VHGIQN5O.js.map +1 -0
- package/dist/{chunk-4LT6RXMY.js → chunk-WMAALRQI.js} +4 -4
- package/dist/{chunk-PURJZ72D.js → chunk-X34RGEFX.js} +2 -2
- package/dist/{chunk-423MJ6DT.js → chunk-XRA4LHTJ.js} +5 -5
- package/dist/chunk-ZHJEZ7AU.js +40 -0
- package/dist/chunk-ZHJEZ7AU.js.map +1 -0
- package/dist/commands/build/marketplace.js +3 -3
- package/dist/commands/build/plugins.js +5 -5
- package/dist/commands/build/stack.js +5 -5
- package/dist/commands/compile.js +6 -6
- package/dist/commands/config/get.js +4 -4
- package/dist/commands/config/index.js +5 -5
- package/dist/commands/config/path.js +4 -4
- package/dist/commands/config/set-project.js +4 -4
- package/dist/commands/config/show.js +5 -5
- package/dist/commands/config/unset-project.js +4 -4
- package/dist/commands/diff.js +4 -4
- package/dist/commands/doctor.js +4 -4
- package/dist/commands/edit.js +37 -30
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +33 -13
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/import/skill.js +5 -5
- package/dist/commands/info.js +5 -5
- package/dist/commands/init.js +27 -27
- package/dist/commands/list.js +4 -4
- package/dist/commands/new/agent.js +5 -5
- package/dist/commands/new/skill.js +4 -4
- package/dist/commands/outdated.js +4 -4
- package/dist/commands/search.js +7 -7
- package/dist/commands/uninstall.js +6 -6
- package/dist/commands/update.js +6 -6
- package/dist/commands/validate.js +5 -5
- package/dist/commands/version/bump.js +4 -4
- package/dist/commands/version/index.js +4 -4
- package/dist/commands/version/set.js +4 -4
- package/dist/commands/version/show.js +4 -4
- 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 +2 -2
- package/dist/components/wizard/checkbox-grid.js +3 -2
- package/dist/components/wizard/checkbox-grid.test.js +16 -22
- package/dist/components/wizard/checkbox-grid.test.js.map +1 -1
- package/dist/components/wizard/domain-selection.js +8 -7
- package/dist/components/wizard/help-modal.js +2 -2
- package/dist/components/wizard/menu-item.js +25 -4
- package/dist/components/wizard/menu-item.js.map +1 -1
- package/dist/components/wizard/search-modal.js +2 -2
- package/dist/components/wizard/search-modal.test.js +2 -2
- 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 +10 -0
- package/dist/components/wizard/source-grid.js +3 -3
- package/dist/components/wizard/source-grid.test.js +3 -3
- package/dist/components/wizard/stack-selection.js +8 -8
- package/dist/components/wizard/step-agents.js +7 -6
- package/dist/components/wizard/step-agents.test.js +8 -8
- package/dist/components/wizard/step-agents.test.js.map +1 -1
- package/dist/components/wizard/step-build.js +7 -7
- package/dist/components/wizard/step-build.test.js +18 -18
- 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 +7 -6
- package/dist/components/wizard/step-confirm.test.js.map +1 -1
- 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 +5 -5
- package/dist/components/wizard/step-settings.test.js +8 -8
- package/dist/components/wizard/step-sources.js +10 -9
- package/dist/components/wizard/step-sources.test.js +14 -12
- package/dist/components/wizard/step-sources.test.js.map +1 -1
- package/dist/components/wizard/step-stack.js +11 -11
- package/dist/components/wizard/step-stack.test.js +15 -16
- package/dist/components/wizard/step-stack.test.js.map +1 -1
- package/dist/components/wizard/view-title.js +2 -2
- package/dist/components/wizard/wizard-layout.js +8 -8
- 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 +24 -24
- package/dist/config/stacks.yaml +0 -321
- package/dist/hooks/init.js +3 -3
- package/dist/{source-manager-PPABS6BC.js → source-manager-ABK5COKX.js} +4 -4
- package/dist/source-manager-ABK5COKX.js.map +1 -0
- package/dist/stores/wizard-store.js +5 -5
- package/dist/stores/wizard-store.test.js +6 -6
- package/package.json +1 -1
- package/src/schemas/project-config.schema.json +7 -0
- package/dist/chunk-342YB6TQ.js.map +0 -1
- package/dist/chunk-4SYXPG7L.js.map +0 -1
- package/dist/chunk-4UTPJXUX.js.map +0 -1
- package/dist/chunk-5TMB53BV.js.map +0 -1
- package/dist/chunk-7FBM7V3E.js.map +0 -1
- package/dist/chunk-ACVJVYMC.js.map +0 -1
- package/dist/chunk-AH7XHAKN.js.map +0 -1
- package/dist/chunk-DV4ALU5I.js.map +0 -1
- package/dist/chunk-GEDWVX6Y.js.map +0 -1
- package/dist/chunk-KC2SIUIA.js.map +0 -1
- package/dist/chunk-KXM7KOPE.js +0 -31
- package/dist/chunk-KXM7KOPE.js.map +0 -1
- package/dist/chunk-R52N7DBG.js.map +0 -1
- package/dist/chunk-TTXV55NQ.js.map +0 -1
- package/dist/chunk-UKTYDNWJ.js.map +0 -1
- package/dist/chunk-WS6OQIEN.js +0 -32
- package/dist/chunk-WS6OQIEN.js.map +0 -1
- package/dist/chunk-XJXJZ2MJ.js.map +0 -1
- package/dist/chunk-YLJYAQSG.js.map +0 -1
- /package/dist/{chunk-ZLHGJSRK.js.map → chunk-2TWELY5M.js.map} +0 -0
- /package/dist/{chunk-NYP5SB2V.js.map → chunk-52SI5XJH.js.map} +0 -0
- /package/dist/{chunk-2D6LKRHW.js.map → chunk-ALWLM5MC.js.map} +0 -0
- /package/dist/{chunk-AVVYFEMF.js.map → chunk-AQANPOLS.js.map} +0 -0
- /package/dist/{chunk-BFISETQG.js.map → chunk-EFZN22TO.js.map} +0 -0
- /package/dist/{chunk-SILUTTV7.js.map → chunk-FDY6SGSA.js.map} +0 -0
- /package/dist/{chunk-FHBICUXB.js.map → chunk-GIZ6DENW.js.map} +0 -0
- /package/dist/{chunk-LJRP4SWY.js.map → chunk-HMGWGWFT.js.map} +0 -0
- /package/dist/{chunk-H6H3COI5.js.map → chunk-IUYU2TP6.js.map} +0 -0
- /package/dist/{chunk-TJAZ7QCF.js.map → chunk-KA253GGY.js.map} +0 -0
- /package/dist/{chunk-MNPPGIZQ.js.map → chunk-ORJPGZVD.js.map} +0 -0
- /package/dist/{chunk-4LT6RXMY.js.map → chunk-WMAALRQI.js.map} +0 -0
- /package/dist/{chunk-PURJZ72D.js.map → chunk-X34RGEFX.js.map} +0 -0
- /package/dist/{chunk-423MJ6DT.js.map → chunk-XRA4LHTJ.js.map} +0 -0
- /package/dist/{source-manager-PPABS6BC.js.map → components/wizard/selection-card.js.map} +0 -0
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
WIZARD_STEPS,
|
|
4
4
|
WizardTabs,
|
|
5
5
|
formatStepLabel
|
|
6
|
-
} from "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
6
|
+
} from "../../chunk-MHET2RG2.js";
|
|
7
|
+
import "../../chunk-PP7NDFFE.js";
|
|
8
8
|
import "../../chunk-DHET7RCE.js";
|
|
9
9
|
export {
|
|
10
10
|
WIZARD_STEPS,
|
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
WIZARD_STEPS,
|
|
13
13
|
WizardTabs,
|
|
14
14
|
formatStepLabel
|
|
15
|
-
} from "../../chunk-
|
|
16
|
-
import "../../chunk-
|
|
15
|
+
} from "../../chunk-MHET2RG2.js";
|
|
16
|
+
import "../../chunk-PP7NDFFE.js";
|
|
17
17
|
import {
|
|
18
18
|
init_esm_shims
|
|
19
19
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
Wizard
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-FF4Z7MHY.js";
|
|
5
|
+
import "../../chunk-WMAALRQI.js";
|
|
6
|
+
import "../../chunk-ORJPGZVD.js";
|
|
7
|
+
import "../../chunk-MHET2RG2.js";
|
|
8
|
+
import "../../chunk-BKW34TKI.js";
|
|
9
|
+
import "../../chunk-IUYU2TP6.js";
|
|
10
|
+
import "../../chunk-33D24DAF.js";
|
|
11
|
+
import "../../chunk-EFZN22TO.js";
|
|
12
12
|
import "../../chunk-7SOPVGDV.js";
|
|
13
|
-
import "../../chunk-
|
|
14
|
-
import "../../chunk-
|
|
15
|
-
import "../../chunk-
|
|
13
|
+
import "../../chunk-MI4NWOWD.js";
|
|
14
|
+
import "../../chunk-ZHJEZ7AU.js";
|
|
15
|
+
import "../../chunk-VHGIQN5O.js";
|
|
16
|
+
import "../../chunk-EPJ2GJNJ.js";
|
|
16
17
|
import "../../chunk-YRVTXSXP.js";
|
|
17
|
-
import "../../chunk-KXM7KOPE.js";
|
|
18
18
|
import "../../chunk-K77I4XGL.js";
|
|
19
|
-
import "../../chunk-
|
|
20
|
-
import "../../chunk-
|
|
21
|
-
import "../../chunk-
|
|
22
|
-
import "../../chunk-
|
|
23
|
-
import "../../chunk-
|
|
19
|
+
import "../../chunk-GVRZY5KI.js";
|
|
20
|
+
import "../../chunk-GCN7GGWE.js";
|
|
21
|
+
import "../../chunk-MMD26LKJ.js";
|
|
22
|
+
import "../../chunk-44QCEK7E.js";
|
|
23
|
+
import "../../chunk-52SI5XJH.js";
|
|
24
24
|
import "../../chunk-KUV24B5M.js";
|
|
25
|
-
import "../../chunk-
|
|
25
|
+
import "../../chunk-53K3URKF.js";
|
|
26
26
|
import "../../chunk-GG4BSB6S.js";
|
|
27
|
-
import "../../chunk-
|
|
27
|
+
import "../../chunk-AQANPOLS.js";
|
|
28
28
|
import "../../chunk-U3IGFMCY.js";
|
|
29
|
-
import "../../chunk-
|
|
30
|
-
import "../../chunk-
|
|
31
|
-
import "../../chunk-
|
|
29
|
+
import "../../chunk-XRA4LHTJ.js";
|
|
30
|
+
import "../../chunk-FDY6SGSA.js";
|
|
31
|
+
import "../../chunk-SYHRJG5G.js";
|
|
32
32
|
import "../../chunk-T4EXUIBY.js";
|
|
33
|
-
import "../../chunk-
|
|
34
|
-
import "../../chunk-
|
|
33
|
+
import "../../chunk-UXNHU7Y7.js";
|
|
34
|
+
import "../../chunk-PP7NDFFE.js";
|
|
35
35
|
import "../../chunk-DHET7RCE.js";
|
|
36
36
|
export {
|
|
37
37
|
Wizard
|
package/dist/config/stacks.yaml
CHANGED
|
@@ -1863,324 +1863,3 @@ stacks:
|
|
|
1863
1863
|
- id: meta-methodology-context-management
|
|
1864
1864
|
preloaded: true
|
|
1865
1865
|
philosophy: Maximum performance with minimal overhead
|
|
1866
|
-
|
|
1867
|
-
- id: react-native-stack
|
|
1868
|
-
name: React Native Stack
|
|
1869
|
-
description: React Native + Expo mobile
|
|
1870
|
-
agents:
|
|
1871
|
-
web-developer:
|
|
1872
|
-
web-framework:
|
|
1873
|
-
- id: mobile-framework-react-native
|
|
1874
|
-
preloaded: true
|
|
1875
|
-
mobile-platform:
|
|
1876
|
-
- id: mobile-framework-expo
|
|
1877
|
-
preloaded: true
|
|
1878
|
-
web-base-framework:
|
|
1879
|
-
- id: web-framework-react
|
|
1880
|
-
preloaded: true
|
|
1881
|
-
web-client-state: web-state-zustand
|
|
1882
|
-
web-server-state: web-server-state-react-query
|
|
1883
|
-
web-testing: web-testing-vitest
|
|
1884
|
-
shared-methodology:
|
|
1885
|
-
- id: meta-methodology-investigation-requirements
|
|
1886
|
-
preloaded: true
|
|
1887
|
-
- id: meta-methodology-anti-over-engineering
|
|
1888
|
-
preloaded: true
|
|
1889
|
-
- id: meta-methodology-success-criteria
|
|
1890
|
-
preloaded: true
|
|
1891
|
-
- id: meta-methodology-write-verification
|
|
1892
|
-
preloaded: true
|
|
1893
|
-
- id: meta-methodology-improvement-protocol
|
|
1894
|
-
preloaded: true
|
|
1895
|
-
- id: meta-methodology-context-management
|
|
1896
|
-
preloaded: true
|
|
1897
|
-
web-reviewer:
|
|
1898
|
-
shared-reviewing:
|
|
1899
|
-
- id: meta-reviewing-reviewing
|
|
1900
|
-
preloaded: true
|
|
1901
|
-
web-framework: mobile-framework-react-native
|
|
1902
|
-
mobile-platform: mobile-framework-expo
|
|
1903
|
-
web-base-framework: web-framework-react
|
|
1904
|
-
web-client-state: web-state-zustand
|
|
1905
|
-
web-server-state: web-server-state-react-query
|
|
1906
|
-
web-testing: web-testing-vitest
|
|
1907
|
-
shared-methodology:
|
|
1908
|
-
- id: meta-methodology-investigation-requirements
|
|
1909
|
-
preloaded: true
|
|
1910
|
-
- id: meta-methodology-anti-over-engineering
|
|
1911
|
-
preloaded: true
|
|
1912
|
-
- id: meta-methodology-success-criteria
|
|
1913
|
-
preloaded: true
|
|
1914
|
-
- id: meta-methodology-write-verification
|
|
1915
|
-
preloaded: true
|
|
1916
|
-
- id: meta-methodology-improvement-protocol
|
|
1917
|
-
preloaded: true
|
|
1918
|
-
- id: meta-methodology-context-management
|
|
1919
|
-
preloaded: true
|
|
1920
|
-
web-pm:
|
|
1921
|
-
web-framework: mobile-framework-react-native
|
|
1922
|
-
mobile-platform: mobile-framework-expo
|
|
1923
|
-
web-base-framework: web-framework-react
|
|
1924
|
-
web-client-state: web-state-zustand
|
|
1925
|
-
web-server-state: web-server-state-react-query
|
|
1926
|
-
web-testing: web-testing-vitest
|
|
1927
|
-
shared-methodology:
|
|
1928
|
-
- id: meta-methodology-investigation-requirements
|
|
1929
|
-
preloaded: true
|
|
1930
|
-
- id: meta-methodology-anti-over-engineering
|
|
1931
|
-
preloaded: true
|
|
1932
|
-
- id: meta-methodology-success-criteria
|
|
1933
|
-
preloaded: true
|
|
1934
|
-
- id: meta-methodology-write-verification
|
|
1935
|
-
preloaded: true
|
|
1936
|
-
- id: meta-methodology-improvement-protocol
|
|
1937
|
-
preloaded: true
|
|
1938
|
-
- id: meta-methodology-context-management
|
|
1939
|
-
preloaded: true
|
|
1940
|
-
web-architecture:
|
|
1941
|
-
shared-methodology:
|
|
1942
|
-
- id: meta-methodology-investigation-requirements
|
|
1943
|
-
preloaded: true
|
|
1944
|
-
- id: meta-methodology-anti-over-engineering
|
|
1945
|
-
preloaded: true
|
|
1946
|
-
- id: meta-methodology-success-criteria
|
|
1947
|
-
preloaded: true
|
|
1948
|
-
- id: meta-methodology-write-verification
|
|
1949
|
-
preloaded: true
|
|
1950
|
-
- id: meta-methodology-improvement-protocol
|
|
1951
|
-
preloaded: true
|
|
1952
|
-
- id: meta-methodology-context-management
|
|
1953
|
-
preloaded: true
|
|
1954
|
-
web-researcher:
|
|
1955
|
-
web-framework: mobile-framework-react-native
|
|
1956
|
-
mobile-platform: mobile-framework-expo
|
|
1957
|
-
web-base-framework: web-framework-react
|
|
1958
|
-
web-client-state: web-state-zustand
|
|
1959
|
-
web-server-state: web-server-state-react-query
|
|
1960
|
-
web-testing: web-testing-vitest
|
|
1961
|
-
shared-methodology:
|
|
1962
|
-
- id: meta-methodology-investigation-requirements
|
|
1963
|
-
preloaded: true
|
|
1964
|
-
- id: meta-methodology-anti-over-engineering
|
|
1965
|
-
preloaded: true
|
|
1966
|
-
- id: meta-methodology-success-criteria
|
|
1967
|
-
preloaded: true
|
|
1968
|
-
- id: meta-methodology-write-verification
|
|
1969
|
-
preloaded: true
|
|
1970
|
-
- id: meta-methodology-improvement-protocol
|
|
1971
|
-
preloaded: true
|
|
1972
|
-
- id: meta-methodology-context-management
|
|
1973
|
-
preloaded: true
|
|
1974
|
-
pattern-scout:
|
|
1975
|
-
web-framework: mobile-framework-react-native
|
|
1976
|
-
mobile-platform: mobile-framework-expo
|
|
1977
|
-
web-base-framework: web-framework-react
|
|
1978
|
-
web-client-state: web-state-zustand
|
|
1979
|
-
web-server-state: web-server-state-react-query
|
|
1980
|
-
web-testing: web-testing-vitest
|
|
1981
|
-
shared-methodology:
|
|
1982
|
-
- id: meta-methodology-investigation-requirements
|
|
1983
|
-
preloaded: true
|
|
1984
|
-
- id: meta-methodology-anti-over-engineering
|
|
1985
|
-
preloaded: true
|
|
1986
|
-
- id: meta-methodology-success-criteria
|
|
1987
|
-
preloaded: true
|
|
1988
|
-
- id: meta-methodology-write-verification
|
|
1989
|
-
preloaded: true
|
|
1990
|
-
- id: meta-methodology-improvement-protocol
|
|
1991
|
-
preloaded: true
|
|
1992
|
-
- id: meta-methodology-context-management
|
|
1993
|
-
preloaded: true
|
|
1994
|
-
web-pattern-critique:
|
|
1995
|
-
web-framework: mobile-framework-react-native
|
|
1996
|
-
mobile-platform: mobile-framework-expo
|
|
1997
|
-
web-base-framework: web-framework-react
|
|
1998
|
-
web-client-state: web-state-zustand
|
|
1999
|
-
web-server-state: web-server-state-react-query
|
|
2000
|
-
web-testing: web-testing-vitest
|
|
2001
|
-
shared-reviewing:
|
|
2002
|
-
- id: meta-reviewing-reviewing
|
|
2003
|
-
preloaded: true
|
|
2004
|
-
shared-methodology:
|
|
2005
|
-
- id: meta-methodology-investigation-requirements
|
|
2006
|
-
preloaded: true
|
|
2007
|
-
- id: meta-methodology-anti-over-engineering
|
|
2008
|
-
preloaded: true
|
|
2009
|
-
- id: meta-methodology-success-criteria
|
|
2010
|
-
preloaded: true
|
|
2011
|
-
- id: meta-methodology-write-verification
|
|
2012
|
-
preloaded: true
|
|
2013
|
-
- id: meta-methodology-improvement-protocol
|
|
2014
|
-
preloaded: true
|
|
2015
|
-
- id: meta-methodology-context-management
|
|
2016
|
-
preloaded: true
|
|
2017
|
-
agent-summoner:
|
|
2018
|
-
web-framework: mobile-framework-react-native
|
|
2019
|
-
mobile-platform: mobile-framework-expo
|
|
2020
|
-
web-base-framework: web-framework-react
|
|
2021
|
-
web-client-state: web-state-zustand
|
|
2022
|
-
web-server-state: web-server-state-react-query
|
|
2023
|
-
web-testing: web-testing-vitest
|
|
2024
|
-
shared-reviewing: meta-reviewing-reviewing
|
|
2025
|
-
shared-methodology:
|
|
2026
|
-
- id: meta-methodology-investigation-requirements
|
|
2027
|
-
preloaded: true
|
|
2028
|
-
- id: meta-methodology-anti-over-engineering
|
|
2029
|
-
preloaded: true
|
|
2030
|
-
- id: meta-methodology-success-criteria
|
|
2031
|
-
preloaded: true
|
|
2032
|
-
- id: meta-methodology-write-verification
|
|
2033
|
-
preloaded: true
|
|
2034
|
-
- id: meta-methodology-improvement-protocol
|
|
2035
|
-
preloaded: true
|
|
2036
|
-
- id: meta-methodology-context-management
|
|
2037
|
-
preloaded: true
|
|
2038
|
-
skill-summoner:
|
|
2039
|
-
web-framework: mobile-framework-react-native
|
|
2040
|
-
mobile-platform: mobile-framework-expo
|
|
2041
|
-
web-base-framework: web-framework-react
|
|
2042
|
-
web-client-state: web-state-zustand
|
|
2043
|
-
web-server-state: web-server-state-react-query
|
|
2044
|
-
web-testing: web-testing-vitest
|
|
2045
|
-
shared-reviewing: meta-reviewing-reviewing
|
|
2046
|
-
shared-methodology:
|
|
2047
|
-
- id: meta-methodology-investigation-requirements
|
|
2048
|
-
preloaded: true
|
|
2049
|
-
- id: meta-methodology-anti-over-engineering
|
|
2050
|
-
preloaded: true
|
|
2051
|
-
- id: meta-methodology-success-criteria
|
|
2052
|
-
preloaded: true
|
|
2053
|
-
- id: meta-methodology-write-verification
|
|
2054
|
-
preloaded: true
|
|
2055
|
-
- id: meta-methodology-improvement-protocol
|
|
2056
|
-
preloaded: true
|
|
2057
|
-
- id: meta-methodology-context-management
|
|
2058
|
-
preloaded: true
|
|
2059
|
-
documentor:
|
|
2060
|
-
web-framework: mobile-framework-react-native
|
|
2061
|
-
mobile-platform: mobile-framework-expo
|
|
2062
|
-
web-base-framework: web-framework-react
|
|
2063
|
-
web-client-state: web-state-zustand
|
|
2064
|
-
web-server-state: web-server-state-react-query
|
|
2065
|
-
web-testing: web-testing-vitest
|
|
2066
|
-
shared-reviewing: meta-reviewing-reviewing
|
|
2067
|
-
shared-methodology:
|
|
2068
|
-
- id: meta-methodology-investigation-requirements
|
|
2069
|
-
preloaded: true
|
|
2070
|
-
- id: meta-methodology-anti-over-engineering
|
|
2071
|
-
preloaded: true
|
|
2072
|
-
- id: meta-methodology-success-criteria
|
|
2073
|
-
preloaded: true
|
|
2074
|
-
- id: meta-methodology-write-verification
|
|
2075
|
-
preloaded: true
|
|
2076
|
-
- id: meta-methodology-improvement-protocol
|
|
2077
|
-
preloaded: true
|
|
2078
|
-
- id: meta-methodology-context-management
|
|
2079
|
-
preloaded: true
|
|
2080
|
-
web-tester:
|
|
2081
|
-
web-testing: web-testing-vitest
|
|
2082
|
-
shared-methodology:
|
|
2083
|
-
- id: meta-methodology-investigation-requirements
|
|
2084
|
-
preloaded: true
|
|
2085
|
-
- id: meta-methodology-anti-over-engineering
|
|
2086
|
-
preloaded: true
|
|
2087
|
-
- id: meta-methodology-success-criteria
|
|
2088
|
-
preloaded: true
|
|
2089
|
-
- id: meta-methodology-write-verification
|
|
2090
|
-
preloaded: true
|
|
2091
|
-
- id: meta-methodology-improvement-protocol
|
|
2092
|
-
preloaded: true
|
|
2093
|
-
- id: meta-methodology-context-management
|
|
2094
|
-
preloaded: true
|
|
2095
|
-
philosophy: One codebase, iOS and Android
|
|
2096
|
-
|
|
2097
|
-
- id: meta-stack
|
|
2098
|
-
name: Meta Agent Stack
|
|
2099
|
-
description: Meta-level agent tooling
|
|
2100
|
-
agents:
|
|
2101
|
-
skill-summoner:
|
|
2102
|
-
shared-methodology:
|
|
2103
|
-
- id: meta-methodology-investigation-requirements
|
|
2104
|
-
preloaded: true
|
|
2105
|
-
- id: meta-methodology-anti-over-engineering
|
|
2106
|
-
preloaded: true
|
|
2107
|
-
- id: meta-methodology-success-criteria
|
|
2108
|
-
preloaded: true
|
|
2109
|
-
- id: meta-methodology-write-verification
|
|
2110
|
-
preloaded: true
|
|
2111
|
-
- id: meta-methodology-improvement-protocol
|
|
2112
|
-
preloaded: true
|
|
2113
|
-
- id: meta-methodology-context-management
|
|
2114
|
-
preloaded: true
|
|
2115
|
-
shared-research:
|
|
2116
|
-
- id: meta-research-research-methodology
|
|
2117
|
-
preloaded: true
|
|
2118
|
-
agent-summoner:
|
|
2119
|
-
shared-methodology:
|
|
2120
|
-
- id: meta-methodology-investigation-requirements
|
|
2121
|
-
preloaded: true
|
|
2122
|
-
- id: meta-methodology-anti-over-engineering
|
|
2123
|
-
preloaded: true
|
|
2124
|
-
- id: meta-methodology-success-criteria
|
|
2125
|
-
preloaded: true
|
|
2126
|
-
- id: meta-methodology-write-verification
|
|
2127
|
-
preloaded: true
|
|
2128
|
-
- id: meta-methodology-improvement-protocol
|
|
2129
|
-
preloaded: true
|
|
2130
|
-
- id: meta-methodology-context-management
|
|
2131
|
-
preloaded: true
|
|
2132
|
-
shared-research:
|
|
2133
|
-
- id: meta-research-research-methodology
|
|
2134
|
-
preloaded: true
|
|
2135
|
-
documentor:
|
|
2136
|
-
shared-methodology:
|
|
2137
|
-
- id: meta-methodology-investigation-requirements
|
|
2138
|
-
preloaded: true
|
|
2139
|
-
- id: meta-methodology-anti-over-engineering
|
|
2140
|
-
preloaded: true
|
|
2141
|
-
- id: meta-methodology-success-criteria
|
|
2142
|
-
preloaded: true
|
|
2143
|
-
- id: meta-methodology-write-verification
|
|
2144
|
-
preloaded: true
|
|
2145
|
-
- id: meta-methodology-improvement-protocol
|
|
2146
|
-
preloaded: true
|
|
2147
|
-
- id: meta-methodology-context-management
|
|
2148
|
-
preloaded: true
|
|
2149
|
-
shared-research:
|
|
2150
|
-
- id: meta-research-research-methodology
|
|
2151
|
-
preloaded: true
|
|
2152
|
-
pattern-scout:
|
|
2153
|
-
shared-methodology:
|
|
2154
|
-
- id: meta-methodology-investigation-requirements
|
|
2155
|
-
preloaded: true
|
|
2156
|
-
- id: meta-methodology-anti-over-engineering
|
|
2157
|
-
preloaded: true
|
|
2158
|
-
- id: meta-methodology-success-criteria
|
|
2159
|
-
preloaded: true
|
|
2160
|
-
- id: meta-methodology-write-verification
|
|
2161
|
-
preloaded: true
|
|
2162
|
-
- id: meta-methodology-improvement-protocol
|
|
2163
|
-
preloaded: true
|
|
2164
|
-
- id: meta-methodology-context-management
|
|
2165
|
-
preloaded: true
|
|
2166
|
-
shared-reviewing:
|
|
2167
|
-
- id: meta-reviewing-reviewing
|
|
2168
|
-
preloaded: true
|
|
2169
|
-
web-pattern-critique:
|
|
2170
|
-
shared-methodology:
|
|
2171
|
-
- id: meta-methodology-investigation-requirements
|
|
2172
|
-
preloaded: true
|
|
2173
|
-
- id: meta-methodology-anti-over-engineering
|
|
2174
|
-
preloaded: true
|
|
2175
|
-
- id: meta-methodology-success-criteria
|
|
2176
|
-
preloaded: true
|
|
2177
|
-
- id: meta-methodology-write-verification
|
|
2178
|
-
preloaded: true
|
|
2179
|
-
- id: meta-methodology-improvement-protocol
|
|
2180
|
-
preloaded: true
|
|
2181
|
-
- id: meta-methodology-context-management
|
|
2182
|
-
preloaded: true
|
|
2183
|
-
shared-reviewing:
|
|
2184
|
-
- id: meta-reviewing-reviewing
|
|
2185
|
-
preloaded: true
|
|
2186
|
-
philosophy: Build tools that build tools
|
package/dist/hooks/init.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
loadDefaultMappings,
|
|
4
4
|
resolveSource
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-SYHRJG5G.js";
|
|
6
6
|
import "../chunk-T4EXUIBY.js";
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-UXNHU7Y7.js";
|
|
8
|
+
import "../chunk-PP7NDFFE.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esm_shims
|
|
11
11
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
addSource,
|
|
4
4
|
getSourceSummary,
|
|
5
5
|
removeSource
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SYHRJG5G.js";
|
|
7
7
|
import "./chunk-T4EXUIBY.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-UXNHU7Y7.js";
|
|
9
|
+
import "./chunk-PP7NDFFE.js";
|
|
10
10
|
import "./chunk-DHET7RCE.js";
|
|
11
11
|
export {
|
|
12
12
|
addSource,
|
|
13
13
|
getSourceSummary,
|
|
14
14
|
removeSource
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=source-manager-
|
|
16
|
+
//# sourceMappingURL=source-manager-ABK5COKX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
useWizardStore
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-XRA4LHTJ.js";
|
|
5
|
+
import "../chunk-FDY6SGSA.js";
|
|
6
|
+
import "../chunk-SYHRJG5G.js";
|
|
7
7
|
import "../chunk-T4EXUIBY.js";
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-UXNHU7Y7.js";
|
|
9
|
+
import "../chunk-PP7NDFFE.js";
|
|
10
10
|
import "../chunk-DHET7RCE.js";
|
|
11
11
|
export {
|
|
12
12
|
useWizardStore
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
createMockMatrix,
|
|
4
4
|
createMockSkill
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-J73KIP6Z.js";
|
|
6
6
|
import {
|
|
7
7
|
beforeEach,
|
|
8
8
|
describe,
|
|
@@ -11,16 +11,16 @@ import {
|
|
|
11
11
|
} from "../chunk-XY3XDVMI.js";
|
|
12
12
|
import {
|
|
13
13
|
useWizardStore
|
|
14
|
-
} from "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
14
|
+
} from "../chunk-XRA4LHTJ.js";
|
|
15
|
+
import "../chunk-FDY6SGSA.js";
|
|
16
|
+
import "../chunk-SYHRJG5G.js";
|
|
17
17
|
import {
|
|
18
18
|
typedKeys
|
|
19
19
|
} from "../chunk-T4EXUIBY.js";
|
|
20
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-UXNHU7Y7.js";
|
|
21
21
|
import {
|
|
22
22
|
DEFAULT_PRESELECTED_SKILLS
|
|
23
|
-
} from "../chunk-
|
|
23
|
+
} from "../chunk-PP7NDFFE.js";
|
|
24
24
|
import {
|
|
25
25
|
init_esm_shims
|
|
26
26
|
} from "../chunk-DHET7RCE.js";
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/components/wizard/wizard.tsx","../src/cli/components/hooks/use-wizard-initialization.ts","../src/cli/components/hooks/use-build-step-props.ts"],"sourcesContent":["import React, { useCallback } 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 { CLI_COLORS } from \"../../consts.js\";\nimport { cliTheme } from \"../themes/default.js\";\nimport { WizardLayout } from \"./wizard-layout.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 { StepAgents } from \"./step-agents.js\";\nimport { resolveAlias, validateSelection } from \"../../lib/matrix/index.js\";\nimport type {\n AgentName,\n DomainSelections,\n MergedSkillsMatrix,\n SkillId,\n} from \"../../types/index.js\";\nimport { getStackName } from \"./utils.js\";\nimport { warn } from \"../../utils/logger.js\";\nimport { useWizardInitialization } from \"../hooks/use-wizard-initialization.js\";\nimport { useBuildStepProps } from \"../hooks/use-build-step-props.js\";\n\nexport type WizardResultV2 = {\n selectedSkills: SkillId[];\n selectedAgents: AgentName[];\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 marketplaceLabel?: string;\n logo?: string;\n initialStep?: WizardStep;\n initialInstallMode?: \"plugin\" | \"local\";\n initialExpertMode?: boolean;\n installedSkillIds?: SkillId[];\n projectDir?: string;\n};\n\nconst MIN_TERMINAL_WIDTH = 80;\nconst MIN_TERMINAL_HEIGHT = 15;\n\nexport const Wizard: React.FC<WizardProps> = ({\n matrix,\n onComplete,\n onCancel,\n version,\n marketplaceLabel,\n logo,\n initialStep,\n initialInstallMode,\n initialExpertMode,\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 terminalHeight = stdout.rows || MIN_TERMINAL_HEIGHT;\n const isNarrowTerminal = terminalWidth < MIN_TERMINAL_WIDTH;\n const isShortTerminal = terminalHeight < MIN_TERMINAL_HEIGHT;\n\n useWizardInitialization({\n matrix,\n initialStep,\n initialInstallMode,\n initialExpertMode,\n installedSkillIds,\n });\n\n const buildStepProps = useBuildStepProps({ store, matrix, installedSkillIds });\n\n useInput((input, key) => {\n // ESC is handled by step-settings.tsx's own useKeyboardNavigation hook\n if (store.showSettings) {\n if (input === \"g\" || input === \"G\") {\n store.toggleSettings();\n }\n return;\n }\n\n if (store.showHelp) {\n if (key.escape || input === \"?\") {\n store.toggleHelp();\n }\n return;\n }\n\n if (input === \"?\") {\n store.toggleHelp();\n return;\n }\n\n if (key.escape) {\n // At the initial stack/scratch selection (approach not yet set), ESC cancels the wizard.\n // StackSelection handles its own ESC via the onCancel prop.\n // Other steps that don't have their own escape handler use goBack.\n if (\n store.step !== \"build\" &&\n store.step !== \"confirm\" &&\n store.step !== \"sources\" &&\n store.step !== \"agents\" &&\n store.step !== \"stack\"\n ) {\n store.goBack();\n }\n return;\n }\n\n if ((input === \"a\" || input === \"A\") && store.step === \"build\" && store.selectedStackId) {\n store.setStackAction(\"defaults\");\n store.setStep(\"confirm\");\n return;\n }\n\n if ((input === \"g\" || input === \"G\") && store.step === \"sources\") {\n store.toggleSettings();\n return;\n }\n\n if (input === \"e\" || input === \"E\") {\n store.toggleExpertMode();\n return;\n }\n if (input === \"p\" || input === \"P\") {\n store.toggleInstallMode();\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 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 warn(\n `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.getDefaultMethodologySkills();\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 selectedAgents: store.selectedAgents,\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 handleCancel = useCallback(() => {\n onCancel();\n exit();\n }, [onCancel, exit]);\n\n const renderStep = () => {\n switch (store.step) {\n case \"stack\":\n return <StepStack matrix={matrix} onCancel={handleCancel} />;\n\n case \"build\":\n return <StepBuild {...buildStepProps} />;\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={() => {\n store.preselectAgentsFromDomains();\n store.setStep(\"agents\");\n }}\n onBack={store.goBack}\n />\n );\n }\n\n case \"agents\":\n return <StepAgents />;\n\n case \"confirm\": {\n const stackName = getStackName(store.selectedStackId, matrix);\n const technologyCount = store.getTechnologyCount();\n return (\n <StepConfirm\n onComplete={handleComplete}\n stackName={stackName}\n selectedDomains={store.selectedDomains}\n domainSelections={store.domainSelections}\n technologyCount={technologyCount}\n skillCount={technologyCount}\n agentCount={store.selectedAgents.length}\n installMode={store.installMode}\n onBack={store.goBack}\n />\n );\n }\n\n default:\n return null;\n }\n };\n\n if (isNarrowTerminal || isShortTerminal) {\n const issue = isNarrowTerminal\n ? `too narrow (${terminalWidth} columns, need ${MIN_TERMINAL_WIDTH})`\n : `too short (${terminalHeight} rows, need ${MIN_TERMINAL_HEIGHT})`;\n\n return (\n <ThemeProvider theme={cliTheme}>\n <Box flexDirection=\"column\" padding={1}>\n <Text color={CLI_COLORS.WARNING}>Terminal {issue}. Please resize your terminal.</Text>\n </Box>\n </ThemeProvider>\n );\n }\n\n return (\n <ThemeProvider theme={cliTheme}>\n <WizardLayout version={version} marketplaceLabel={marketplaceLabel} logo={logo}>\n {renderStep()}\n </WizardLayout>\n </ThemeProvider>\n );\n};\n","import { useRef } from \"react\";\nimport { useWizardStore, type WizardStep } from \"../../stores/wizard-store.js\";\nimport type { MergedSkillsMatrix, SkillId } from \"../../types/index.js\";\n\ntype UseWizardInitializationOptions = {\n matrix: MergedSkillsMatrix;\n initialStep?: WizardStep;\n initialInstallMode?: \"plugin\" | \"local\";\n initialExpertMode?: boolean;\n installedSkillIds?: SkillId[];\n};\n\n/**\n * Runs one-time wizard store initialization before the first render.\n * Populates step, approach, install mode, and skill selections from props.\n */\nexport function useWizardInitialization({\n matrix,\n initialStep,\n initialInstallMode,\n initialExpertMode,\n installedSkillIds,\n}: UseWizardInitializationOptions): void {\n const initialized = useRef(false);\n\n if (!initialized.current) {\n initialized.current = true;\n\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 if (initialInstallMode) {\n useWizardStore.setState({ installMode: initialInstallMode });\n }\n if (initialExpertMode) {\n useWizardStore.setState({ expertMode: initialExpertMode });\n }\n }\n}\n","import { useCallback } from \"react\";\nimport type { Domain, MergedSkillsMatrix, SkillId } from \"../../types/index.js\";\nimport type { WizardState } from \"../../stores/wizard-store.js\";\nimport type { StepBuildProps } from \"../wizard/step-build.js\";\n\ntype UseBuildStepPropsOptions = {\n store: WizardState;\n matrix: MergedSkillsMatrix;\n installedSkillIds?: SkillId[];\n};\n\nexport function useBuildStepProps({\n store,\n matrix,\n installedSkillIds,\n}: UseBuildStepPropsOptions): StepBuildProps {\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\n const onToggle = useCallback(\n (subcategoryId: Parameters<StepBuildProps[\"onToggle\"]>[0], techId: SkillId) => {\n const domain: Domain = store.getCurrentDomain() || \"web\";\n const cat = matrix.categories[subcategoryId];\n store.toggleTechnology(domain, subcategoryId, techId, cat?.exclusive ?? true);\n },\n [store, matrix],\n );\n\n const onContinue = useCallback(() => {\n if (!store.nextDomain()) {\n store.setStep(\"sources\");\n }\n }, [store]);\n\n const onBack = useCallback(() => {\n if (!store.prevDomain()) {\n store.goBack();\n }\n }, [store]);\n\n return {\n matrix,\n domain: activeDomain,\n selectedDomains: effectiveDomains,\n selections: store.domainSelections[activeDomain] || {},\n allSelections,\n showLabels: store.showLabels,\n expertMode: store.expertMode,\n installedSkillIds,\n onToggle,\n onToggleLabels: store.toggleShowLabels,\n onContinue,\n onBack,\n };\n}\n"],"mappings":"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","names":["useCallback","useCallback"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/components/wizard/wizard-tabs.tsx"],"sourcesContent":["import React from \"react\";\nimport { Box, Text } from \"ink\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport type { WizardStep } from \"../../stores/wizard-store.js\";\n\ntype WizardTabStep = {\n id: WizardStep;\n label: string;\n number: number;\n};\n\nexport type WizardTabsProps = {\n steps: WizardTabStep[];\n currentStep: WizardStep;\n completedSteps: WizardStep[];\n skippedSteps?: WizardStep[];\n version?: string;\n};\n\nexport const WIZARD_STEPS: WizardTabStep[] = [\n { id: \"stack\", label: \"Stack\", number: 1 },\n { id: \"build\", label: \"Build\", number: 2 },\n { id: \"sources\", label: \"Sources\", number: 3 },\n { id: \"agents\", label: \"Agents\", number: 4 },\n { id: \"confirm\", label: \"Confirm\", number: 5 },\n];\n\ntype FormattedStepLabel = {\n /** The step number indicator, e.g. \"[1]\" */\n prefix: string;\n /** The step label text, e.g. \"Stack\" */\n label: string;\n /** The complete formatted string, e.g. \"[1] Stack\" */\n full: string;\n};\n\n/** Format a wizard step as its tab label parts and full string, e.g. \"[1] Stack\" */\nexport function formatStepLabel(stepId: WizardStep): FormattedStepLabel {\n const step = WIZARD_STEPS.find((s) => s.id === stepId);\n if (!step) return { prefix: \"\", label: stepId, full: stepId };\n const prefix = `[${step.number}]`;\n return { prefix, label: step.label, full: `${prefix} ${step.label}` };\n}\n\ntype StepState = \"completed\" | \"current\" | \"pending\" | \"skipped\";\n\nconst getStepState = (\n stepId: WizardStep,\n currentStep: WizardStep,\n completedSteps: WizardStep[],\n skippedSteps: WizardStep[],\n): StepState => {\n if (completedSteps.includes(stepId)) return \"completed\";\n if (stepId === currentStep) return \"current\";\n if (skippedSteps.includes(stepId)) return \"skipped\";\n return \"pending\";\n};\n\ntype TabProps = {\n step: WizardTabStep;\n state: StepState;\n};\n\nconst Tab: React.FC<TabProps> = ({ step, state }) => {\n const label = `[${step.number}] ${step.label}`;\n\n switch (state) {\n case \"current\":\n return <Text color={CLI_COLORS.PRIMARY}>{label}</Text>;\n case \"completed\":\n return <Text>{label}</Text>;\n case \"skipped\":\n return <Text dimColor>{label}</Text>;\n case \"pending\":\n default:\n return <Text color={CLI_COLORS.UNFOCUSED}>{label}</Text>;\n }\n};\n\nexport const WizardTabs: React.FC<WizardTabsProps> = ({\n steps,\n currentStep,\n completedSteps,\n skippedSteps = [],\n version,\n}) => {\n return (\n <Box\n flexDirection=\"row\"\n columnGap={2}\n borderRight={false}\n borderLeft={false}\n borderColor=\"blackBright\"\n borderStyle=\"single\"\n paddingRight={1}\n >\n {steps.map((step) => {\n const state = getStepState(step.id, currentStep, completedSteps, skippedSteps);\n\n return <Tab key={step.id} step={step} state={state} />;\n })}\n <Box flexGrow={1} justifyContent=\"flex-end\">\n <Text dimColor>{`v${version}`}</Text>\n </Box>\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;AACA,SAAS,KAAK,YAAY;AAmEb,cAmBT,YAnBS;AAjDN,IAAM,eAAgC;AAAA,EAC3C,EAAE,IAAI,SAAS,OAAO,SAAS,QAAQ,EAAE;AAAA,EACzC,EAAE,IAAI,SAAS,OAAO,SAAS,QAAQ,EAAE;AAAA,EACzC,EAAE,IAAI,WAAW,OAAO,WAAW,QAAQ,EAAE;AAAA,EAC7C,EAAE,IAAI,UAAU,OAAO,UAAU,QAAQ,EAAE;AAAA,EAC3C,EAAE,IAAI,WAAW,OAAO,WAAW,QAAQ,EAAE;AAC/C;AAYO,SAAS,gBAAgB,QAAwC;AACtE,QAAM,OAAO,aAAa,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM;AACrD,MAAI,CAAC,KAAM,QAAO,EAAE,QAAQ,IAAI,OAAO,QAAQ,MAAM,OAAO;AAC5D,QAAM,SAAS,IAAI,KAAK,MAAM;AAC9B,SAAO,EAAE,QAAQ,OAAO,KAAK,OAAO,MAAM,GAAG,MAAM,IAAI,KAAK,KAAK,GAAG;AACtE;AAIA,IAAM,eAAe,CACnB,QACA,aACA,gBACA,iBACc;AACd,MAAI,eAAe,SAAS,MAAM,EAAG,QAAO;AAC5C,MAAI,WAAW,YAAa,QAAO;AACnC,MAAI,aAAa,SAAS,MAAM,EAAG,QAAO;AAC1C,SAAO;AACT;AAOA,IAAM,MAA0B,CAAC,EAAE,MAAM,MAAM,MAAM;AACnD,QAAM,QAAQ,IAAI,KAAK,MAAM,KAAK,KAAK,KAAK;AAE5C,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,oBAAC,QAAK,OAAO,WAAW,SAAU,iBAAM;AAAA,IACjD,KAAK;AACH,aAAO,oBAAC,QAAM,iBAAM;AAAA,IACtB,KAAK;AACH,aAAO,oBAAC,QAAK,UAAQ,MAAE,iBAAM;AAAA,IAC/B,KAAK;AAAA,IACL;AACE,aAAO,oBAAC,QAAK,OAAO,WAAW,WAAY,iBAAM;AAAA,EACrD;AACF;AAEO,IAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe,CAAC;AAAA,EAChB;AACF,MAAM;AACJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,cAAc;AAAA,MAEb;AAAA,cAAM,IAAI,CAAC,SAAS;AACnB,gBAAM,QAAQ,aAAa,KAAK,IAAI,aAAa,gBAAgB,YAAY;AAE7E,iBAAO,oBAAC,OAAkB,MAAY,SAArB,KAAK,EAA8B;AAAA,QACtD,CAAC;AAAA,QACD,oBAAC,OAAI,UAAU,GAAG,gBAAe,YAC/B,8BAAC,QAAK,UAAQ,MAAE,cAAI,OAAO,IAAG,GAChC;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/components/wizard/step-sources.tsx"],"sourcesContent":["import React, { useState, useCallback } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport { useWizardStore } from \"../../stores/wizard-store.js\";\nimport type {\n BoundSkillCandidate,\n MergedSkillsMatrix,\n SkillAlias,\n SkillId,\n} from \"../../types/index.js\";\nimport { CLI_COLORS, DEFAULT_BRANDING } from \"../../consts.js\";\nimport { useMeasuredHeight } from \"../hooks/use-measured-height.js\";\nimport { SourceGrid } from \"./source-grid.js\";\nimport { ViewTitle } from \"./view-title.js\";\nimport { searchExtraSources } from \"../../lib/loading/multi-source-loader.js\";\nimport { resolveAllSources } from \"../../lib/configuration/index.js\";\n\nexport type StepSourcesProps = {\n matrix: MergedSkillsMatrix;\n projectDir?: string;\n onContinue: () => void;\n onBack: () => void;\n};\n\ntype SourcesView = \"choice\" | \"customize\";\n\nexport const StepSources: React.FC<StepSourcesProps> = ({\n matrix,\n projectDir,\n onContinue,\n onBack,\n}) => {\n const store = useWizardStore();\n const [view, setView] = useState<SourcesView>(\"choice\");\n const [choiceIndex, setChoiceIndex] = useState(0);\n const [isGridSearching, setIsGridSearching] = useState(false);\n const { ref: gridRef, measuredHeight: gridHeight } = useMeasuredHeight();\n\n const handleGridSelect = useCallback(\n (skillId: SkillId, sourceId: string) => {\n store.setSourceSelection(skillId, sourceId);\n },\n [store],\n );\n\n const handleSearch = useCallback(\n async (alias: SkillAlias): Promise<BoundSkillCandidate[]> => {\n if (!projectDir) return [];\n try {\n const sources = await resolveAllSources(projectDir);\n return await searchExtraSources(alias, sources.extras);\n } catch {\n return [];\n }\n },\n [projectDir],\n );\n\n const handleBind = useCallback(\n (candidate: BoundSkillCandidate) => {\n store.bindSkill({\n id: candidate.id,\n sourceUrl: candidate.sourceUrl,\n sourceName: candidate.sourceName,\n boundTo: candidate.alias,\n description: candidate.description,\n });\n },\n [store],\n );\n\n const handleSearchStateChange = useCallback((active: boolean) => {\n setIsGridSearching(active);\n }, []);\n\n useInput((_input, key) => {\n if (view === \"choice\") {\n if (key.return) {\n if (choiceIndex === 0) {\n onContinue();\n } else {\n store.setCustomizeSources(true);\n setView(\"customize\");\n }\n }\n if (key.escape) {\n onBack();\n }\n if (key.upArrow || key.downArrow) {\n setChoiceIndex((prev) => (prev === 0 ? 1 : 0));\n }\n } else if (view === \"customize\") {\n if (isGridSearching) return;\n\n if (key.return) {\n onContinue();\n }\n if (key.escape) {\n store.setCustomizeSources(false);\n setView(\"choice\");\n }\n }\n });\n\n if (view === \"customize\") {\n const rows = store.buildSourceRows(matrix);\n return (\n <Box flexDirection=\"column\" width=\"100%\" flexGrow={1} flexBasis={0}>\n <ViewTitle>Customize skill sources</ViewTitle>\n <Box ref={gridRef} flexGrow={1} flexBasis={0}>\n <SourceGrid\n rows={rows}\n availableHeight={gridHeight}\n onSelect={handleGridSelect}\n onSearch={handleSearch}\n onBind={handleBind}\n onSearchStateChange={handleSearchStateChange}\n />\n </Box>\n </Box>\n );\n }\n\n const selectedTechnologies = store.getAllSelectedTechnologies();\n const rows = store.buildSourceRows(matrix);\n const isRecommendedSelected = choiceIndex === 0;\n const hasLocalSkills = rows.some((row) =>\n row.options.some((o) => o.installed && o.id === \"local\"),\n );\n\n return (\n <Box flexDirection=\"column\" paddingX={2}>\n <Text>\n Your stack includes{\" \"}\n <Text color={CLI_COLORS.PRIMARY} bold>\n {selectedTechnologies.length}\n </Text>{\" \"}\n technologies.\n </Text>\n <Text> </Text>\n\n <Box\n borderStyle=\"round\"\n borderColor={isRecommendedSelected ? CLI_COLORS.SUCCESS : CLI_COLORS.NEUTRAL}\n paddingX={2}\n paddingY={1}\n marginBottom={1}\n >\n <Box flexDirection=\"column\">\n <Text\n color={isRecommendedSelected ? CLI_COLORS.SUCCESS : undefined}\n bold={isRecommendedSelected}\n >\n {isRecommendedSelected ? \">\" : \"\\u25CB\"}{\" \"}\n {hasLocalSkills\n ? \"Use installed skill sources\"\n : \"Use all recommended skills (verified)\"}\n </Text>\n <Text> </Text>\n <Text dimColor>\n {hasLocalSkills\n ? \"Keep your current local and public skill selections.\"\n : \"This is the fastest option. All skills are verified and\"}\n </Text>\n {!hasLocalSkills && <Text dimColor>maintained by {DEFAULT_BRANDING.NAME}</Text>}\n </Box>\n </Box>\n\n <Box\n borderStyle=\"round\"\n borderColor={!isRecommendedSelected ? CLI_COLORS.SUCCESS : CLI_COLORS.NEUTRAL}\n paddingX={2}\n paddingY={1}\n >\n <Box flexDirection=\"column\">\n <Text\n color={!isRecommendedSelected ? CLI_COLORS.SUCCESS : undefined}\n bold={!isRecommendedSelected}\n >\n {!isRecommendedSelected ? \">\" : \"\\u25CB\"} Customize skill sources\n </Text>\n <Text> </Text>\n <Text dimColor>Choose alternative skills for each technology</Text>\n </Box>\n </Box>\n </Box>\n );\n};\n"],"mappings":"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","names":["rows"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/components/wizard/step-confirm.tsx"],"sourcesContent":["import React from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport type { DomainSelections, Domain } from \"../../types/index.js\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport { getDomainDisplayName } from \"./utils.js\";\n\ntype StepConfirmProps = {\n onComplete: () => void;\n stackName?: string;\n selectedDomains?: Domain[];\n domainSelections?: DomainSelections;\n technologyCount?: number;\n skillCount?: number;\n agentCount?: number;\n installMode?: \"plugin\" | \"local\";\n onBack?: () => void;\n};\n\nexport const StepConfirm: React.FC<StepConfirmProps> = ({\n onComplete,\n stackName,\n selectedDomains,\n domainSelections,\n technologyCount,\n skillCount,\n agentCount,\n installMode,\n onBack,\n}) => {\n useInput((_input, key) => {\n if (key.return) {\n onComplete();\n }\n if (key.escape && onBack) {\n onBack();\n }\n });\n\n const domainsText = selectedDomains?.map(getDomainDisplayName).join(\" + \") || \"\";\n const title = stackName\n ? `Ready to install ${stackName}`\n : `Ready to install your custom stack${domainsText ? ` (${domainsText})` : \"\"}`;\n\n return (\n <Box flexDirection=\"column\" paddingX={2}>\n <Text bold color={CLI_COLORS.SUCCESS}>\n {title}\n </Text>\n <Text> </Text>\n\n {domainSelections && selectedDomains && !stackName && (\n <Box flexDirection=\"column\" marginBottom={1}>\n {selectedDomains.map((domain) => {\n const selections = domainSelections[domain] || {};\n const techs = Object.values(selections).flat();\n if (techs.length === 0) return null;\n return (\n <Text key={domain}>\n <Text bold>{getDomainDisplayName(domain)}:</Text> <Text>{techs.join(\", \")}</Text>\n </Text>\n );\n })}\n </Box>\n )}\n\n <Box flexDirection=\"column\" marginY={1}>\n {technologyCount !== undefined && (\n <Text>\n <Text dimColor>Technologies:</Text> <Text bold>{technologyCount}</Text>\n </Text>\n )}\n {skillCount !== undefined && (\n <Text>\n <Text dimColor>Skills:</Text> <Text bold>{skillCount}</Text>{\" \"}\n <Text color={CLI_COLORS.SUCCESS}>(all verified)</Text>\n </Text>\n )}\n {agentCount !== undefined && (\n <Text>\n <Text dimColor>Agents:</Text> <Text bold>{agentCount}</Text>\n </Text>\n )}\n {installMode && (\n <Text>\n <Text dimColor>Install mode:</Text>{\" \"}\n <Text bold>{installMode === \"plugin\" ? \"Plugin\" : \"Local\"}</Text>\n </Text>\n )}\n </Box>\n\n <Box marginTop={1}>\n <Text dimColor>ENTER install ESC go back</Text>\n </Box>\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAAA;AACA,SAAS,KAAK,MAAM,gBAAgB;AA4C9B,cAaU,YAbV;AA3BC,IAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,WAAS,CAAC,QAAQ,QAAQ;AACxB,QAAI,IAAI,QAAQ;AACd,iBAAW;AAAA,IACb;AACA,QAAI,IAAI,UAAU,QAAQ;AACxB,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AAED,QAAM,cAAc,iBAAiB,IAAI,oBAAoB,EAAE,KAAK,KAAK,KAAK;AAC9E,QAAM,QAAQ,YACV,oBAAoB,SAAS,KAC7B,qCAAqC,cAAc,KAAK,WAAW,MAAM,EAAE;AAE/E,SACE,qBAAC,OAAI,eAAc,UAAS,UAAU,GACpC;AAAA,wBAAC,QAAK,MAAI,MAAC,OAAO,WAAW,SAC1B,iBACH;AAAA,IACA,oBAAC,QAAK,eAAC;AAAA,IAEN,oBAAoB,mBAAmB,CAAC,aACvC,oBAAC,OAAI,eAAc,UAAS,cAAc,GACvC,0BAAgB,IAAI,CAAC,WAAW;AAC/B,YAAM,aAAa,iBAAiB,MAAM,KAAK,CAAC;AAChD,YAAM,QAAQ,OAAO,OAAO,UAAU,EAAE,KAAK;AAC7C,UAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,aACE,qBAAC,QACC;AAAA,6BAAC,QAAK,MAAI,MAAE;AAAA,+BAAqB,MAAM;AAAA,UAAE;AAAA,WAAC;AAAA,QAAO;AAAA,QAAC,oBAAC,QAAM,gBAAM,KAAK,IAAI,GAAE;AAAA,WADjE,MAEX;AAAA,IAEJ,CAAC,GACH;AAAA,IAGF,qBAAC,OAAI,eAAc,UAAS,SAAS,GAClC;AAAA,0BAAoB,UACnB,qBAAC,QACC;AAAA,4BAAC,QAAK,UAAQ,MAAC,2BAAa;AAAA,QAAO;AAAA,QAAC,oBAAC,QAAK,MAAI,MAAE,2BAAgB;AAAA,SAClE;AAAA,MAED,eAAe,UACd,qBAAC,QACC;AAAA,4BAAC,QAAK,UAAQ,MAAC,qBAAO;AAAA,QAAO;AAAA,QAAC,oBAAC,QAAK,MAAI,MAAE,sBAAW;AAAA,QAAQ;AAAA,QAC7D,oBAAC,QAAK,OAAO,WAAW,SAAS,4BAAc;AAAA,SACjD;AAAA,MAED,eAAe,UACd,qBAAC,QACC;AAAA,4BAAC,QAAK,UAAQ,MAAC,qBAAO;AAAA,QAAO;AAAA,QAAC,oBAAC,QAAK,MAAI,MAAE,sBAAW;AAAA,SACvD;AAAA,MAED,eACC,qBAAC,QACC;AAAA,4BAAC,QAAK,UAAQ,MAAC,2BAAa;AAAA,QAAQ;AAAA,QACpC,oBAAC,QAAK,MAAI,MAAE,0BAAgB,WAAW,WAAW,SAAQ;AAAA,SAC5D;AAAA,OAEJ;AAAA,IAEA,oBAAC,OAAI,WAAW,GACd,8BAAC,QAAK,UAAQ,MAAC,uCAAyB,GAC1C;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/components/wizard/step-build.tsx","../src/cli/lib/wizard/index.ts","../src/cli/components/hooks/use-framework-filtering.ts"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport type {\n Domain,\n MergedSkillsMatrix,\n SkillId,\n Subcategory,\n SubcategorySelections,\n} from \"../../types/index.js\";\nimport { validateBuildStep } from \"../../lib/wizard/index.js\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport { useFrameworkFiltering } from \"../hooks/use-framework-filtering.js\";\nimport { useMeasuredHeight } from \"../hooks/use-measured-height.js\";\nimport { CategoryGrid } from \"./category-grid.js\";\nimport { ViewTitle } from \"./view-title.js\";\nimport { getDomainDisplayName } from \"./utils.js\";\n\nexport type StepBuildProps = {\n matrix: MergedSkillsMatrix;\n domain: Domain;\n selectedDomains: Domain[];\n selections: SubcategorySelections;\n allSelections: SkillId[];\n showLabels: boolean;\n expertMode: boolean;\n /** Skill IDs already installed on disk, shown with a dimmed checkmark */\n installedSkillIds?: SkillId[];\n onToggle: (subcategoryId: Subcategory, technologyId: SkillId) => void;\n onToggleLabels: () => void;\n onContinue: () => void;\n onBack: () => void;\n};\n\ntype FooterProps = {\n validationError?: string;\n};\n\nconst Footer: React.FC<FooterProps> = ({ validationError }) => {\n return (\n <Box flexDirection=\"column\" marginTop={1}>\n {validationError && (\n <Box flexDirection=\"column\" marginBottom={1}>\n <Text color={CLI_COLORS.WARNING}>{validationError}</Text>\n <Text dimColor>Press ESC to go back, or select a skill and press ENTER to continue.</Text>\n </Box>\n )}\n </Box>\n );\n};\n\nexport const StepBuild: React.FC<StepBuildProps> = ({\n matrix,\n domain: activeDomain,\n selectedDomains,\n selections,\n allSelections,\n showLabels,\n expertMode,\n installedSkillIds,\n onToggle,\n onToggleLabels,\n onContinue,\n onBack,\n}) => {\n const [validationError, setValidationError] = useState<string | undefined>(undefined);\n const { ref: gridRef, measuredHeight: gridHeight } = useMeasuredHeight();\n\n const categories = useFrameworkFiltering({\n domain: activeDomain,\n allSelections,\n matrix,\n expertMode,\n selections,\n installedSkillIds,\n });\n\n useInput((_input, key) => {\n if (key.return) {\n const validation = validateBuildStep(categories, selections);\n if (validation.valid) {\n setValidationError(undefined);\n onContinue();\n } else {\n setValidationError(validation.message);\n }\n } else if (key.escape) {\n setValidationError(undefined);\n onBack();\n }\n });\n\n return (\n <Box flexDirection=\"column\" width=\"100%\" flexGrow={1} flexBasis={0}>\n <Box\n columnGap={2}\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n marginBottom={1}\n paddingRight={1}\n marginTop={-1}\n borderTop={false}\n borderRight={false}\n borderLeft={false}\n borderColor={CLI_COLORS.NEUTRAL}\n borderStyle=\"single\"\n >\n <Box columnGap={2} flexDirection=\"row\">\n {selectedDomains.map((domain) => {\n const isActive = domain === activeDomain;\n return (\n <Text key={domain} color={isActive ? CLI_COLORS.PRIMARY : undefined} bold={isActive}>\n {getDomainDisplayName(domain)}\n </Text>\n );\n })}\n </Box>\n </Box>\n <ViewTitle>{`[2] Customize your ${getDomainDisplayName(activeDomain)} stack`}</ViewTitle>\n\n <Box ref={gridRef} flexGrow={1} flexBasis={0}>\n <CategoryGrid\n key={activeDomain}\n categories={categories}\n availableHeight={gridHeight}\n expertMode={expertMode}\n showLabels={showLabels}\n onToggle={onToggle}\n onToggleLabels={onToggleLabels}\n />\n </Box>\n\n <Footer validationError={validationError} />\n </Box>\n );\n};\n","export {\n type BuildStepValidation,\n validateBuildStep,\n computeOptionState,\n getSkillDisplayLabel,\n buildCategoriesForDomain,\n} from \"./build-step-logic\";\n","import { useMemo } from \"react\";\nimport type {\n Domain,\n MergedSkillsMatrix,\n SkillId,\n SubcategorySelections,\n} from \"../../types/index.js\";\nimport { buildCategoriesForDomain } from \"../../lib/wizard/index.js\";\nimport type { CategoryRow } from \"../wizard/category-grid.js\";\n\ntype UseFrameworkFilteringOptions = {\n domain: Domain;\n allSelections: SkillId[];\n matrix: MergedSkillsMatrix;\n expertMode: boolean;\n selections: SubcategorySelections;\n installedSkillIds?: SkillId[];\n};\n\nexport function useFrameworkFiltering({\n domain,\n allSelections,\n matrix,\n expertMode,\n selections,\n installedSkillIds,\n}: UseFrameworkFilteringOptions): CategoryRow[] {\n return useMemo(\n () =>\n buildCategoriesForDomain(\n domain,\n allSelections,\n matrix,\n expertMode,\n selections,\n installedSkillIds,\n ),\n [domain, allSelections, matrix, expertMode, selections, installedSkillIds],\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAgB,gBAAgB;AAChC,SAAS,KAAK,MAAM,gBAAgB;;;ACDpC;;;ACAA;AAAA,SAAS,eAAe;AAmBjB,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAgD;AAC9C,SAAO;AAAA,IACL,MACE;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACF,CAAC,QAAQ,eAAe,QAAQ,YAAY,YAAY,iBAAiB;AAAA,EAC3E;AACF;;;AFEQ,SACE,KADF;AAJR,IAAM,SAAgC,CAAC,EAAE,gBAAgB,MAAM;AAC7D,SACE,oBAAC,OAAI,eAAc,UAAS,WAAW,GACpC,6BACC,qBAAC,OAAI,eAAc,UAAS,cAAc,GACxC;AAAA,wBAAC,QAAK,OAAO,WAAW,SAAU,2BAAgB;AAAA,IAClD,oBAAC,QAAK,UAAQ,MAAC,kFAAoE;AAAA,KACrF,GAEJ;AAEJ;AAEO,IAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAA6B,MAAS;AACpF,QAAM,EAAE,KAAK,SAAS,gBAAgB,WAAW,IAAI,kBAAkB;AAEvE,QAAM,aAAa,sBAAsB;AAAA,IACvC,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,WAAS,CAAC,QAAQ,QAAQ;AACxB,QAAI,IAAI,QAAQ;AACd,YAAM,aAAa,kBAAkB,YAAY,UAAU;AAC3D,UAAI,WAAW,OAAO;AACpB,2BAAmB,MAAS;AAC5B,mBAAW;AAAA,MACb,OAAO;AACL,2BAAmB,WAAW,OAAO;AAAA,MACvC;AAAA,IACF,WAAW,IAAI,QAAQ;AACrB,yBAAmB,MAAS;AAC5B,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AAED,SACE,qBAAC,OAAI,eAAc,UAAS,OAAM,QAAO,UAAU,GAAG,WAAW,GAC/D;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,QACX,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,cAAc;AAAA,QACd,cAAc;AAAA,QACd,WAAW;AAAA,QACX,WAAW;AAAA,QACX,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,aAAa,WAAW;AAAA,QACxB,aAAY;AAAA,QAEZ,8BAAC,OAAI,WAAW,GAAG,eAAc,OAC9B,0BAAgB,IAAI,CAAC,WAAW;AAC/B,gBAAM,WAAW,WAAW;AAC5B,iBACE,oBAAC,QAAkB,OAAO,WAAW,WAAW,UAAU,QAAW,MAAM,UACxE,+BAAqB,MAAM,KADnB,MAEX;AAAA,QAEJ,CAAC,GACH;AAAA;AAAA,IACF;AAAA,IACA,oBAAC,aAAW,gCAAsB,qBAAqB,YAAY,CAAC,UAAS;AAAA,IAE7E,oBAAC,OAAI,KAAK,SAAS,UAAU,GAAG,WAAW,GACzC;AAAA,MAAC;AAAA;AAAA,QAEC;AAAA,QACA,iBAAiB;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,MANK;AAAA,IAOP,GACF;AAAA,IAEA,oBAAC,UAAO,iBAAkC;AAAA,KAC5C;AAEJ;","names":[]}
|