@agents-inc/cli 0.74.3 → 0.74.4
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 +11 -0
- package/dist/{chunk-2NWQS7N4.js → chunk-2TRPBOF3.js} +2 -2
- package/dist/{chunk-SFZQL6DJ.js → chunk-3N4MUUAJ.js} +3 -3
- package/dist/{chunk-E74Q7GUE.js → chunk-4OBRPE6A.js} +18 -1
- package/dist/chunk-4OBRPE6A.js.map +1 -0
- package/dist/{chunk-ZD3U734W.js → chunk-55G4HXUJ.js} +15 -15
- package/dist/chunk-55G4HXUJ.js.map +1 -0
- package/dist/{chunk-GJLM53PH.js → chunk-7ET6VTIQ.js} +5 -7
- package/dist/{chunk-GJLM53PH.js.map → chunk-7ET6VTIQ.js.map} +1 -1
- package/dist/{chunk-KSMT5FVM.js → chunk-DBPC4V25.js} +2 -2
- package/dist/{chunk-23OJO4JS.js → chunk-DDBSYZGZ.js} +4 -4
- package/dist/{chunk-OLS55LVJ.js → chunk-FC5VMKXY.js} +8 -8
- package/dist/{chunk-V5HR77EY.js → chunk-FFNBQMMZ.js} +2 -2
- package/dist/{chunk-ZWYCZ7BN.js → chunk-FH74AVEW.js} +2 -2
- package/dist/{chunk-ALCUVCY5.js → chunk-HZ5CCPU4.js} +4 -4
- package/dist/{chunk-DNPJ5GUK.js → chunk-IK6GTV3N.js} +3 -2
- package/dist/{chunk-DNPJ5GUK.js.map → chunk-IK6GTV3N.js.map} +1 -1
- package/dist/{chunk-DUF4UVJB.js → chunk-IN5TKIL3.js} +2 -2
- package/dist/{chunk-AV5KJHP2.js → chunk-JIZKHL5P.js} +2 -2
- package/dist/{chunk-ZNXK2J6R.js → chunk-JUY45EUT.js} +3 -3
- package/dist/{chunk-GDUOOT3J.js → chunk-KDEOCJMS.js} +3 -3
- package/dist/{chunk-XYXDEODG.js → chunk-NEL3MGYH.js} +6 -6
- package/dist/{chunk-TNSVPZHP.js → chunk-NIA3NQBT.js} +2 -2
- package/dist/{chunk-N2HO5IT2.js → chunk-PPMNHCGA.js} +4 -4
- package/dist/{chunk-NUJHWYCR.js → chunk-RINGLIE7.js} +2 -2
- package/dist/{chunk-UVNIFNIN.js → chunk-SDAJFP4I.js} +8 -8
- package/dist/{chunk-BH4LN7XV.js → chunk-TW64EOM7.js} +3 -3
- package/dist/{chunk-EMX7PA2I.js → chunk-XXK6MFOA.js} +1 -12
- package/dist/chunk-XXK6MFOA.js.map +1 -0
- package/dist/{chunk-TUILIOBW.js → chunk-ZFQJ5STW.js} +12 -12
- package/dist/commands/build/plugins.js +4 -4
- package/dist/commands/build/stack.js +4 -4
- package/dist/commands/compile.js +4 -4
- package/dist/commands/config/index.js +4 -4
- package/dist/commands/config/path.js +3 -3
- package/dist/commands/config/show.js +4 -4
- package/dist/commands/diff.js +3 -3
- package/dist/commands/doctor.js +3 -3
- package/dist/commands/edit.js +18 -18
- package/dist/commands/eject.js +4 -5
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/import/skill.js +3 -3
- package/dist/commands/info.js +3 -3
- package/dist/commands/init.js +18 -18
- package/dist/commands/list.js +3 -3
- package/dist/commands/new/agent.js +4 -4
- package/dist/commands/new/marketplace.js +4 -4
- package/dist/commands/new/skill.js +4 -4
- package/dist/commands/outdated.js +3 -3
- package/dist/commands/search.js +3 -3
- package/dist/commands/uninstall.js +3 -3
- package/dist/commands/update.js +4 -4
- package/dist/commands/validate.js +3 -3
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/category-grid.test.js +8 -8
- package/dist/components/wizard/domain-selection.js +6 -6
- package/dist/components/wizard/source-grid.js +2 -2
- package/dist/components/wizard/source-grid.test.js +8 -8
- package/dist/components/wizard/stack-selection.js +5 -5
- package/dist/components/wizard/step-agents.js +6 -6
- package/dist/components/wizard/step-agents.test.js +9 -9
- package/dist/components/wizard/step-build.js +7 -7
- package/dist/components/wizard/step-build.test.js +9 -9
- package/dist/components/wizard/step-confirm.js +4 -4
- package/dist/components/wizard/step-confirm.test.js +7 -7
- package/dist/components/wizard/step-settings.js +4 -4
- package/dist/components/wizard/step-settings.test.js +7 -7
- package/dist/components/wizard/step-sources.js +6 -6
- package/dist/components/wizard/step-sources.test.js +9 -9
- package/dist/components/wizard/step-stack.js +8 -8
- package/dist/components/wizard/step-stack.test.js +9 -9
- package/dist/components/wizard/wizard-layout.js +5 -5
- package/dist/components/wizard/wizard.js +17 -17
- package/dist/hooks/init.js +18 -18
- package/dist/{source-loader-VTNIFSL6.js → source-loader-7GPUP6TG.js} +4 -4
- package/dist/{source-manager-FWAJVMYS.js → source-manager-5FCN2CDH.js} +4 -4
- package/dist/stores/wizard-store.js +4 -4
- package/dist/stores/wizard-store.test.js +8 -9
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-E74Q7GUE.js.map +0 -1
- package/dist/chunk-EMX7PA2I.js.map +0 -1
- package/dist/chunk-ZD3U734W.js.map +0 -1
- /package/dist/{chunk-2NWQS7N4.js.map → chunk-2TRPBOF3.js.map} +0 -0
- /package/dist/{chunk-SFZQL6DJ.js.map → chunk-3N4MUUAJ.js.map} +0 -0
- /package/dist/{chunk-KSMT5FVM.js.map → chunk-DBPC4V25.js.map} +0 -0
- /package/dist/{chunk-23OJO4JS.js.map → chunk-DDBSYZGZ.js.map} +0 -0
- /package/dist/{chunk-OLS55LVJ.js.map → chunk-FC5VMKXY.js.map} +0 -0
- /package/dist/{chunk-V5HR77EY.js.map → chunk-FFNBQMMZ.js.map} +0 -0
- /package/dist/{chunk-ZWYCZ7BN.js.map → chunk-FH74AVEW.js.map} +0 -0
- /package/dist/{chunk-ALCUVCY5.js.map → chunk-HZ5CCPU4.js.map} +0 -0
- /package/dist/{chunk-DUF4UVJB.js.map → chunk-IN5TKIL3.js.map} +0 -0
- /package/dist/{chunk-AV5KJHP2.js.map → chunk-JIZKHL5P.js.map} +0 -0
- /package/dist/{chunk-ZNXK2J6R.js.map → chunk-JUY45EUT.js.map} +0 -0
- /package/dist/{chunk-GDUOOT3J.js.map → chunk-KDEOCJMS.js.map} +0 -0
- /package/dist/{chunk-XYXDEODG.js.map → chunk-NEL3MGYH.js.map} +0 -0
- /package/dist/{chunk-TNSVPZHP.js.map → chunk-NIA3NQBT.js.map} +0 -0
- /package/dist/{chunk-N2HO5IT2.js.map → chunk-PPMNHCGA.js.map} +0 -0
- /package/dist/{chunk-NUJHWYCR.js.map → chunk-RINGLIE7.js.map} +0 -0
- /package/dist/{chunk-UVNIFNIN.js.map → chunk-SDAJFP4I.js.map} +0 -0
- /package/dist/{chunk-BH4LN7XV.js.map → chunk-TW64EOM7.js.map} +0 -0
- /package/dist/{chunk-TUILIOBW.js.map → chunk-ZFQJ5STW.js.map} +0 -0
- /package/dist/{source-loader-VTNIFSL6.js.map → source-loader-7GPUP6TG.js.map} +0 -0
- /package/dist/{source-manager-FWAJVMYS.js.map → source-manager-5FCN2CDH.js.map} +0 -0
|
@@ -2,19 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getDomainDisplayName,
|
|
4
4
|
orderDomains
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-TW64EOM7.js";
|
|
6
6
|
import {
|
|
7
7
|
CheckboxGrid
|
|
8
8
|
} from "./chunk-OV5UJWS5.js";
|
|
9
9
|
import {
|
|
10
10
|
useWizardStore
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-FC5VMKXY.js";
|
|
12
12
|
import {
|
|
13
|
+
matrix,
|
|
13
14
|
typedEntries
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import {
|
|
16
|
-
matrix
|
|
17
|
-
} from "./chunk-E74Q7GUE.js";
|
|
15
|
+
} from "./chunk-4OBRPE6A.js";
|
|
18
16
|
import {
|
|
19
17
|
init_esm_shims
|
|
20
18
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -65,4 +63,4 @@ var DomainSelection = () => {
|
|
|
65
63
|
export {
|
|
66
64
|
DomainSelection
|
|
67
65
|
};
|
|
68
|
-
//# sourceMappingURL=chunk-
|
|
66
|
+
//# sourceMappingURL=chunk-7ET6VTIQ.js.map
|
|
@@ -1 +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 cli: \"Command-line tools\",\n mobile: \"Mobile applications\",\n shared: \"Shared utilities and methodology\",\n};\n\nexport const DomainSelection: React.FC = () => {\n const { selectedDomains, toggleDomain, setStep, setApproach, selectStack } = useWizardStore();\n\n const availableDomains = useMemo((): CheckboxItem<Domain>[] => {\n const matrixDomains = unique(\n typedEntries(matrix.categories)\n .map(([, cat]) => cat?.domain)\n .filter((d): d is Domain => d != null),\n );\n\n const ordered = orderDomains(matrixDomains);\n\n return ordered.map((domain) => ({\n id: domain,\n label: getDomainDisplayName(domain),\n description: BUILT_IN_DOMAIN_DESCRIPTIONS[domain],\n }));\n }, [matrix]);\n\n const handleBack = () => {\n setApproach(null);\n selectStack(null);\n };\n\n return (\n <CheckboxGrid\n title=\"Select domains to configure\"\n // subtitle=\"Select one or more domains, then continue\"\n items={availableDomains}\n selectedIds={selectedDomains}\n onToggle={toggleDomain}\n onContinue={() => setStep(\"build\")}\n onBack={handleBack}\n emptyMessage=\"Please select at least one domain\"\n />\n );\n};\n"],"mappings":"
|
|
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 cli: \"Command-line tools\",\n mobile: \"Mobile applications\",\n shared: \"Shared utilities and methodology\",\n};\n\nexport const DomainSelection: React.FC = () => {\n const { selectedDomains, toggleDomain, setStep, setApproach, selectStack } = useWizardStore();\n\n const availableDomains = useMemo((): CheckboxItem<Domain>[] => {\n const matrixDomains = unique(\n typedEntries(matrix.categories)\n .map(([, cat]) => cat?.domain)\n .filter((d): d is Domain => d != null),\n );\n\n const ordered = orderDomains(matrixDomains);\n\n return ordered.map((domain) => ({\n id: domain,\n label: getDomainDisplayName(domain),\n description: BUILT_IN_DOMAIN_DESCRIPTIONS[domain],\n }));\n }, [matrix]);\n\n const handleBack = () => {\n setApproach(null);\n selectStack(null);\n };\n\n return (\n <CheckboxGrid\n title=\"Select domains to configure\"\n // subtitle=\"Select one or more domains, then continue\"\n items={availableDomains}\n selectedIds={selectedDomains}\n onToggle={toggleDomain}\n onContinue={() => setStep(\"build\")}\n onBack={handleBack}\n emptyMessage=\"Please select at least one domain\"\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAgB,eAAe;AAC/B,SAAS,cAAc;AAyCnB;AAjCJ,IAAM,+BAAuD;AAAA,EAC3D,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AACV;AAEO,IAAM,kBAA4B,MAAM;AAC7C,QAAM,EAAE,iBAAiB,cAAc,SAAS,aAAa,YAAY,IAAI,eAAe;AAE5F,QAAM,mBAAmB,QAAQ,MAA8B;AAC7D,UAAM,gBAAgB;AAAA,MACpB,aAAa,OAAO,UAAU,EAC3B,IAAI,CAAC,CAAC,EAAE,GAAG,MAAM,KAAK,MAAM,EAC5B,OAAO,CAAC,MAAmB,KAAK,IAAI;AAAA,IACzC;AAEA,UAAM,UAAU,aAAa,aAAa;AAE1C,WAAO,QAAQ,IAAI,CAAC,YAAY;AAAA,MAC9B,IAAI;AAAA,MACJ,OAAO,qBAAqB,MAAM;AAAA,MAClC,aAAa,6BAA6B,MAAM;AAAA,IAClD,EAAE;AAAA,EACJ,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,aAAa,MAAM;AACvB,gBAAY,IAAI;AAChB,gBAAY,IAAI;AAAA,EAClB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MAEN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,MACV,YAAY,MAAM,QAAQ,OAAO;AAAA,MACjC,QAAQ;AAAA,MACR,cAAa;AAAA;AAAA,EACf;AAEJ;","names":[]}
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-6VIOO74O.js";
|
|
12
12
|
import {
|
|
13
13
|
getSkillById
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4OBRPE6A.js";
|
|
15
15
|
import {
|
|
16
16
|
CLI_COLORS
|
|
17
17
|
} from "./chunk-EGMQ3SXN.js";
|
|
@@ -341,4 +341,4 @@ var CategoryGrid = ({
|
|
|
341
341
|
export {
|
|
342
342
|
CategoryGrid
|
|
343
343
|
};
|
|
344
|
-
//# sourceMappingURL=chunk-
|
|
344
|
+
//# sourceMappingURL=chunk-DBPC4V25.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
StackSelection
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3N4MUUAJ.js";
|
|
5
5
|
import {
|
|
6
6
|
useMeasuredHeight
|
|
7
7
|
} from "./chunk-K77I4XGL.js";
|
|
8
8
|
import {
|
|
9
9
|
DomainSelection
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-7ET6VTIQ.js";
|
|
11
11
|
import {
|
|
12
12
|
ViewTitle
|
|
13
13
|
} from "./chunk-AQYAVLZK.js";
|
|
14
14
|
import {
|
|
15
15
|
useWizardStore
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-FC5VMKXY.js";
|
|
17
17
|
import {
|
|
18
18
|
init_esm_shims
|
|
19
19
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -37,4 +37,4 @@ var StepStack = ({ onCancel }) => {
|
|
|
37
37
|
export {
|
|
38
38
|
StepStack
|
|
39
39
|
};
|
|
40
|
-
//# sourceMappingURL=chunk-
|
|
40
|
+
//# sourceMappingURL=chunk-DDBSYZGZ.js.map
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
import {
|
|
3
3
|
deriveInstallMode,
|
|
4
4
|
resolveAlias
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-55G4HXUJ.js";
|
|
6
6
|
import {
|
|
7
|
-
isCategory
|
|
8
|
-
|
|
9
|
-
typedKeys
|
|
10
|
-
} from "./chunk-EMX7PA2I.js";
|
|
7
|
+
isCategory
|
|
8
|
+
} from "./chunk-XXK6MFOA.js";
|
|
11
9
|
import {
|
|
12
10
|
getSkillById,
|
|
13
|
-
matrix
|
|
14
|
-
|
|
11
|
+
matrix,
|
|
12
|
+
typedEntries,
|
|
13
|
+
typedKeys
|
|
14
|
+
} from "./chunk-4OBRPE6A.js";
|
|
15
15
|
import {
|
|
16
16
|
warn
|
|
17
17
|
} from "./chunk-4CRWKTNQ.js";
|
|
@@ -518,4 +518,4 @@ var useWizardStore = create((set, get) => ({
|
|
|
518
518
|
export {
|
|
519
519
|
useWizardStore
|
|
520
520
|
};
|
|
521
|
-
//# sourceMappingURL=chunk-
|
|
521
|
+
//# sourceMappingURL=chunk-FC5VMKXY.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
typedEntries
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-4OBRPE6A.js";
|
|
5
5
|
import {
|
|
6
6
|
init_esm_shims
|
|
7
7
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -363,4 +363,4 @@ export {
|
|
|
363
363
|
createMockCompileConfig,
|
|
364
364
|
testSkillToResolvedSkill
|
|
365
365
|
};
|
|
366
|
-
//# sourceMappingURL=chunk-
|
|
366
|
+
//# sourceMappingURL=chunk-FFNBQMMZ.js.map
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-KYULKBFC.js";
|
|
12
12
|
import {
|
|
13
13
|
useWizardStore
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-FC5VMKXY.js";
|
|
15
15
|
import {
|
|
16
16
|
HOTKEY_ACCEPT_DEFAULTS,
|
|
17
17
|
HOTKEY_HELP,
|
|
@@ -203,4 +203,4 @@ var WizardLayout = ({
|
|
|
203
203
|
export {
|
|
204
204
|
WizardLayout
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=chunk-
|
|
206
|
+
//# sourceMappingURL=chunk-FH74AVEW.js.map
|
|
@@ -10,13 +10,13 @@ import {
|
|
|
10
10
|
} from "./chunk-MWGDG4QN.js";
|
|
11
11
|
import {
|
|
12
12
|
SourceGrid
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-IK6GTV3N.js";
|
|
14
14
|
import {
|
|
15
15
|
ViewTitle
|
|
16
16
|
} from "./chunk-AQYAVLZK.js";
|
|
17
17
|
import {
|
|
18
18
|
useWizardStore
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-FC5VMKXY.js";
|
|
20
20
|
import {
|
|
21
21
|
HOTKEY_SET_ALL_LOCAL,
|
|
22
22
|
HOTKEY_SET_ALL_PLUGIN,
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
import {
|
|
28
28
|
resolveAllSources,
|
|
29
29
|
searchExtraSources
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-55G4HXUJ.js";
|
|
31
31
|
import {
|
|
32
32
|
CLI_COLORS,
|
|
33
33
|
DEFAULT_BRANDING
|
|
@@ -181,4 +181,4 @@ var StepSources = ({ projectDir, onContinue, onBack }) => {
|
|
|
181
181
|
export {
|
|
182
182
|
StepSources
|
|
183
183
|
};
|
|
184
|
-
//# sourceMappingURL=chunk-
|
|
184
|
+
//# sourceMappingURL=chunk-HZ5CCPU4.js.map
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
getSkillById,
|
|
16
16
|
matrix
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-4OBRPE6A.js";
|
|
18
18
|
import {
|
|
19
19
|
CLI_COLORS,
|
|
20
20
|
SOURCE_DISPLAY_NAMES
|
|
@@ -51,6 +51,7 @@ function useSourceGridSearchModal({
|
|
|
51
51
|
const row = rows[rowIndex];
|
|
52
52
|
if (!row || !onSearch) return;
|
|
53
53
|
const alias = matrix.slugMap.idToSlug[row.skillId];
|
|
54
|
+
if (!alias) return;
|
|
54
55
|
setSearchAlias(alias);
|
|
55
56
|
searchModal.open(rowIndex);
|
|
56
57
|
onSearchStateChange?.(true);
|
|
@@ -259,4 +260,4 @@ var SourceGrid = ({
|
|
|
259
260
|
export {
|
|
260
261
|
SourceGrid
|
|
261
262
|
};
|
|
262
|
-
//# sourceMappingURL=chunk-
|
|
263
|
+
//# sourceMappingURL=chunk-IK6GTV3N.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/components/wizard/source-grid.tsx","../src/cli/components/hooks/use-source-grid-search-modal.ts"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport type { BoundSkillCandidate, SkillAlias, SkillId } from \"../../types/index.js\";\nimport { CLI_COLORS, SOURCE_DISPLAY_NAMES } from \"../../consts.js\";\nimport { getSkillById } from \"../../lib/matrix/matrix-provider.js\";\nimport { useFocusedListItem } from \"../hooks/use-focused-list-item.js\";\nimport { useSectionScroll } from \"../hooks/use-section-scroll.js\";\nimport { useSourceGridSearchModal } from \"../hooks/use-source-grid-search-modal.js\";\nimport { SearchModal } from \"./search-modal.js\";\n\nconst SEARCH_PILL_LABEL = \"\\u2315 Search\";\n\nexport type SourceOption = {\n id: string;\n selected: boolean;\n installed: boolean;\n};\n\nexport type SourceRow = {\n skillId: SkillId;\n options: SourceOption[];\n};\n\nexport type SourceGridProps = {\n rows: SourceRow[];\n /** Available height in terminal lines for the scrollable viewport. 0 = no constraint. */\n availableHeight?: number;\n onSelect: (skillId: SkillId, sourceId: string) => void;\n onSearch?: (alias: SkillAlias) => Promise<BoundSkillCandidate[]>;\n onBind?: (candidate: BoundSkillCandidate) => void;\n onSearchStateChange?: (active: boolean) => void;\n /** Optional initial focus row (default: 0). Use with React `key` to reset. */\n defaultFocusedRow?: number;\n /** Optional initial focus col (default: 0). Use with React `key` to reset. */\n defaultFocusedCol?: number;\n /** Optional callback fired whenever the focused position changes */\n onFocusChange?: (row: number, col: number) => void;\n};\n\ntype SearchPillProps = {\n isFocused: boolean;\n};\n\nconst SearchPill: React.FC<SearchPillProps> = ({ isFocused }) => {\n const borderColor = isFocused ? CLI_COLORS.UNFOCUSED : CLI_COLORS.NEUTRAL;\n\n return (\n <Box marginRight={1} borderColor={borderColor} borderStyle=\"single\" borderDimColor={!isFocused}>\n <Text dimColor={!isFocused} bold={isFocused}>\n {\" \"}\n {SEARCH_PILL_LABEL}{\" \"}\n </Text>\n </Box>\n );\n};\n\ntype SourceSectionProps = {\n row: SourceRow;\n isFocused: boolean;\n focusedOptionIndex: number;\n showSearchPill: boolean;\n};\n\nfunction formatSourceLabel(option: SourceOption): string {\n const displayName = SOURCE_DISPLAY_NAMES[option.id] ?? option.id;\n const prefix = option.installed ? \"\\u2713 \" : \"\";\n return `${prefix}${displayName}`;\n}\n\nconst SourceTag: React.FC<{ option: SourceOption; isFocused: boolean }> = ({\n option,\n isFocused,\n}) => {\n const getBorderColor = (): string => {\n if (isFocused) {\n return option.selected ? CLI_COLORS.PRIMARY : CLI_COLORS.UNFOCUSED;\n }\n return option.selected ? CLI_COLORS.PRIMARY : CLI_COLORS.NEUTRAL;\n };\n\n const textColor = option.selected ? CLI_COLORS.PRIMARY : CLI_COLORS.NEUTRAL;\n const isBold = isFocused || option.selected;\n\n return (\n <Box\n marginRight={1}\n borderColor={getBorderColor()}\n borderStyle=\"single\"\n borderDimColor={!isFocused && !option.selected}\n >\n <Text color={textColor} bold={isBold} dimColor={false}>\n {\" \"}\n {formatSourceLabel(option)}{\" \"}\n </Text>\n </Box>\n );\n};\n\nconst SourceSection: React.FC<SourceSectionProps> = ({\n row,\n isFocused,\n focusedOptionIndex,\n showSearchPill,\n}) => {\n const searchPillIndex = row.options.length;\n\n return (\n <Box flexDirection=\"column\" marginTop={1}>\n <Box flexDirection=\"row\">\n <Text>{getSkillById(row.skillId).displayName}</Text>\n </Box>\n\n <Box flexDirection=\"row\" flexWrap=\"wrap\" marginTop={0}>\n {row.options.map((option, index) => (\n <SourceTag\n key={option.id}\n option={option}\n isFocused={isFocused && index === focusedOptionIndex}\n />\n ))}\n {showSearchPill && (\n <SearchPill isFocused={isFocused && focusedOptionIndex === searchPillIndex} />\n )}\n </Box>\n </Box>\n );\n};\n\n/** Total navigable columns for a row (options + search pill if applicable) */\nconst getNavigableCount = (row: SourceRow, showSearchPill: boolean): number => {\n return row.options.length + (showSearchPill ? 1 : 0);\n};\n\nexport const SourceGrid: React.FC<SourceGridProps> = ({\n rows,\n availableHeight = 0,\n onSelect,\n onSearch,\n onBind,\n onSearchStateChange,\n defaultFocusedRow = 0,\n defaultFocusedCol = 0,\n onFocusChange,\n}) => {\n const {\n searchModal,\n searchResults,\n searchAlias,\n handleSearchTrigger,\n handleBind,\n handleCloseSearch,\n } = useSourceGridSearchModal({ rows, onSearch, onBind, onSearchStateChange });\n\n const showSearchPill = !!onSearch;\n\n const getColCount = useCallback(\n (row: number): number => {\n const rowData = rows[row];\n return rowData ? getNavigableCount(rowData, showSearchPill) : 0;\n },\n [rows, showSearchPill],\n );\n\n const { focusedRow, focusedCol, moveFocus } = useFocusedListItem(rows.length, getColCount, {\n wrap: true,\n onChange: onFocusChange,\n initialRow: defaultFocusedRow,\n initialCol: defaultFocusedCol,\n });\n\n const { setSectionRef, scrollEnabled, scrollTopPx } = useSectionScroll({\n sectionCount: rows.length,\n focusedIndex: focusedRow,\n availableHeight,\n });\n\n useInput(\n useCallback(\n (\n input: string,\n key: {\n leftArrow: boolean;\n rightArrow: boolean;\n upArrow: boolean;\n downArrow: boolean;\n return: boolean;\n },\n ) => {\n if (input === \" \") {\n const currentRow = rows[focusedRow];\n if (!currentRow) return;\n if (showSearchPill && focusedCol === currentRow.options.length) {\n void handleSearchTrigger(focusedRow);\n return;\n }\n if (focusedCol < currentRow.options.length) {\n const currentOption = currentRow.options[focusedCol];\n if (currentOption) {\n onSelect(currentRow.skillId, currentOption.id);\n }\n }\n return;\n }\n\n const isLeft = key.leftArrow;\n const isRight = key.rightArrow;\n const isUp = key.upArrow;\n const isDown = key.downArrow;\n\n if (isLeft) {\n moveFocus(\"left\");\n } else if (isRight) {\n moveFocus(\"right\");\n } else if (isUp) {\n moveFocus(\"up\");\n } else if (isDown) {\n moveFocus(\"down\");\n }\n },\n [rows, focusedRow, focusedCol, onSelect, showSearchPill, handleSearchTrigger, moveFocus],\n ),\n { isActive: !searchModal.isOpen },\n );\n\n if (rows.length === 0) {\n return (\n <Box flexDirection=\"column\">\n <Text dimColor>No skills to display.</Text>\n </Box>\n );\n }\n\n const noShrink = scrollEnabled ? { flexShrink: 0 } : {};\n\n const sectionElements = rows.map((row, rowIndex) => (\n <Box key={row.skillId} ref={(el) => setSectionRef(rowIndex, el)} {...noShrink}>\n <SourceSection\n row={row}\n isFocused={rowIndex === focusedRow}\n focusedOptionIndex={focusedCol}\n showSearchPill={showSearchPill}\n />\n </Box>\n ));\n\n const searchModalElement = searchModal.isOpen && (\n <SearchModal\n results={searchResults}\n alias={searchAlias}\n onBind={handleBind}\n onClose={handleCloseSearch}\n />\n );\n\n return (\n <Box\n flexDirection=\"column\"\n {...(scrollEnabled ? { height: availableHeight } : { flexGrow: 1 })}\n >\n <Box flexDirection=\"column\" overflow=\"hidden\" flexGrow={1}>\n <Box flexDirection=\"column\" marginTop={scrollTopPx > 0 ? -scrollTopPx : 0} {...noShrink}>\n {sectionElements}\n </Box>\n </Box>\n {searchModalElement}\n </Box>\n );\n};\n","import { useCallback, useState } from \"react\";\nimport type { BoundSkillCandidate, SkillAlias } from \"../../types/index.js\";\nimport { matrix } from \"../../lib/matrix/matrix-provider.js\";\nimport { useModalState } from \"./use-modal-state.js\";\nimport type { SourceRow } from \"../wizard/source-grid.js\";\n\ntype UseSourceGridSearchModalOptions = {\n rows: SourceRow[];\n onSearch?: (alias: SkillAlias) => Promise<BoundSkillCandidate[]>;\n onBind?: (candidate: BoundSkillCandidate) => void;\n onSearchStateChange?: (active: boolean) => void;\n};\n\ntype UseSourceGridSearchModalResult = {\n searchModal: { isOpen: boolean };\n searchResults: BoundSkillCandidate[];\n searchAlias: string;\n handleSearchTrigger: (rowIndex: number) => Promise<void>;\n handleBind: (candidate: BoundSkillCandidate) => void;\n handleCloseSearch: () => void;\n};\n\nexport function useSourceGridSearchModal({\n rows,\n onSearch,\n onBind,\n onSearchStateChange,\n}: UseSourceGridSearchModalOptions): UseSourceGridSearchModalResult {\n const searchModal = useModalState<number>();\n const [searchResults, setSearchResults] = useState<BoundSkillCandidate[]>([]);\n const [searchAlias, setSearchAlias] = useState(\"\");\n\n const resetSearch = useCallback(() => {\n searchModal.close();\n setSearchResults([]);\n setSearchAlias(\"\");\n onSearchStateChange?.(false);\n }, [onSearchStateChange, searchModal]);\n\n const handleSearchTrigger = useCallback(\n async (rowIndex: number) => {\n const row = rows[rowIndex];\n if (!row || !onSearch) return;\n\n const alias = matrix.slugMap.idToSlug[row.skillId];\n setSearchAlias(alias);\n searchModal.open(rowIndex);\n onSearchStateChange?.(true);\n\n const results = await onSearch(alias);\n setSearchResults(results);\n },\n [rows, onSearch, onSearchStateChange, searchModal],\n );\n\n const handleBind = useCallback(\n (candidate: BoundSkillCandidate) => {\n onBind?.(candidate);\n resetSearch();\n },\n [onBind, resetSearch],\n );\n\n const handleCloseSearch = useCallback(() => {\n resetSearch();\n }, [resetSearch]);\n\n return {\n searchModal: { isOpen: searchModal.isOpen },\n searchResults,\n searchAlias,\n handleSearchTrigger,\n handleBind,\n handleCloseSearch,\n };\n}\n"],"mappings":"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","names":["useCallback","useCallback"]}
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/source-grid.tsx","../src/cli/components/hooks/use-source-grid-search-modal.ts"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport type { BoundSkillCandidate, SkillAlias, SkillId } from \"../../types/index.js\";\nimport { CLI_COLORS, SOURCE_DISPLAY_NAMES } from \"../../consts.js\";\nimport { getSkillById } from \"../../lib/matrix/matrix-provider.js\";\nimport { useFocusedListItem } from \"../hooks/use-focused-list-item.js\";\nimport { useSectionScroll } from \"../hooks/use-section-scroll.js\";\nimport { useSourceGridSearchModal } from \"../hooks/use-source-grid-search-modal.js\";\nimport { SearchModal } from \"./search-modal.js\";\n\nconst SEARCH_PILL_LABEL = \"\\u2315 Search\";\n\nexport type SourceOption = {\n id: string;\n selected: boolean;\n installed: boolean;\n};\n\nexport type SourceRow = {\n skillId: SkillId;\n options: SourceOption[];\n};\n\nexport type SourceGridProps = {\n rows: SourceRow[];\n /** Available height in terminal lines for the scrollable viewport. 0 = no constraint. */\n availableHeight?: number;\n onSelect: (skillId: SkillId, sourceId: string) => void;\n onSearch?: (alias: SkillAlias) => Promise<BoundSkillCandidate[]>;\n onBind?: (candidate: BoundSkillCandidate) => void;\n onSearchStateChange?: (active: boolean) => void;\n /** Optional initial focus row (default: 0). Use with React `key` to reset. */\n defaultFocusedRow?: number;\n /** Optional initial focus col (default: 0). Use with React `key` to reset. */\n defaultFocusedCol?: number;\n /** Optional callback fired whenever the focused position changes */\n onFocusChange?: (row: number, col: number) => void;\n};\n\ntype SearchPillProps = {\n isFocused: boolean;\n};\n\nconst SearchPill: React.FC<SearchPillProps> = ({ isFocused }) => {\n const borderColor = isFocused ? CLI_COLORS.UNFOCUSED : CLI_COLORS.NEUTRAL;\n\n return (\n <Box marginRight={1} borderColor={borderColor} borderStyle=\"single\" borderDimColor={!isFocused}>\n <Text dimColor={!isFocused} bold={isFocused}>\n {\" \"}\n {SEARCH_PILL_LABEL}{\" \"}\n </Text>\n </Box>\n );\n};\n\ntype SourceSectionProps = {\n row: SourceRow;\n isFocused: boolean;\n focusedOptionIndex: number;\n showSearchPill: boolean;\n};\n\nfunction formatSourceLabel(option: SourceOption): string {\n const displayName = SOURCE_DISPLAY_NAMES[option.id] ?? option.id;\n const prefix = option.installed ? \"\\u2713 \" : \"\";\n return `${prefix}${displayName}`;\n}\n\nconst SourceTag: React.FC<{ option: SourceOption; isFocused: boolean }> = ({\n option,\n isFocused,\n}) => {\n const getBorderColor = (): string => {\n if (isFocused) {\n return option.selected ? CLI_COLORS.PRIMARY : CLI_COLORS.UNFOCUSED;\n }\n return option.selected ? CLI_COLORS.PRIMARY : CLI_COLORS.NEUTRAL;\n };\n\n const textColor = option.selected ? CLI_COLORS.PRIMARY : CLI_COLORS.NEUTRAL;\n const isBold = isFocused || option.selected;\n\n return (\n <Box\n marginRight={1}\n borderColor={getBorderColor()}\n borderStyle=\"single\"\n borderDimColor={!isFocused && !option.selected}\n >\n <Text color={textColor} bold={isBold} dimColor={false}>\n {\" \"}\n {formatSourceLabel(option)}{\" \"}\n </Text>\n </Box>\n );\n};\n\nconst SourceSection: React.FC<SourceSectionProps> = ({\n row,\n isFocused,\n focusedOptionIndex,\n showSearchPill,\n}) => {\n const searchPillIndex = row.options.length;\n\n return (\n <Box flexDirection=\"column\" marginTop={1}>\n <Box flexDirection=\"row\">\n <Text>{getSkillById(row.skillId).displayName}</Text>\n </Box>\n\n <Box flexDirection=\"row\" flexWrap=\"wrap\" marginTop={0}>\n {row.options.map((option, index) => (\n <SourceTag\n key={option.id}\n option={option}\n isFocused={isFocused && index === focusedOptionIndex}\n />\n ))}\n {showSearchPill && (\n <SearchPill isFocused={isFocused && focusedOptionIndex === searchPillIndex} />\n )}\n </Box>\n </Box>\n );\n};\n\n/** Total navigable columns for a row (options + search pill if applicable) */\nconst getNavigableCount = (row: SourceRow, showSearchPill: boolean): number => {\n return row.options.length + (showSearchPill ? 1 : 0);\n};\n\nexport const SourceGrid: React.FC<SourceGridProps> = ({\n rows,\n availableHeight = 0,\n onSelect,\n onSearch,\n onBind,\n onSearchStateChange,\n defaultFocusedRow = 0,\n defaultFocusedCol = 0,\n onFocusChange,\n}) => {\n const {\n searchModal,\n searchResults,\n searchAlias,\n handleSearchTrigger,\n handleBind,\n handleCloseSearch,\n } = useSourceGridSearchModal({ rows, onSearch, onBind, onSearchStateChange });\n\n const showSearchPill = !!onSearch;\n\n const getColCount = useCallback(\n (row: number): number => {\n const rowData = rows[row];\n return rowData ? getNavigableCount(rowData, showSearchPill) : 0;\n },\n [rows, showSearchPill],\n );\n\n const { focusedRow, focusedCol, moveFocus } = useFocusedListItem(rows.length, getColCount, {\n wrap: true,\n onChange: onFocusChange,\n initialRow: defaultFocusedRow,\n initialCol: defaultFocusedCol,\n });\n\n const { setSectionRef, scrollEnabled, scrollTopPx } = useSectionScroll({\n sectionCount: rows.length,\n focusedIndex: focusedRow,\n availableHeight,\n });\n\n useInput(\n useCallback(\n (\n input: string,\n key: {\n leftArrow: boolean;\n rightArrow: boolean;\n upArrow: boolean;\n downArrow: boolean;\n return: boolean;\n },\n ) => {\n if (input === \" \") {\n const currentRow = rows[focusedRow];\n if (!currentRow) return;\n if (showSearchPill && focusedCol === currentRow.options.length) {\n void handleSearchTrigger(focusedRow);\n return;\n }\n if (focusedCol < currentRow.options.length) {\n const currentOption = currentRow.options[focusedCol];\n if (currentOption) {\n onSelect(currentRow.skillId, currentOption.id);\n }\n }\n return;\n }\n\n const isLeft = key.leftArrow;\n const isRight = key.rightArrow;\n const isUp = key.upArrow;\n const isDown = key.downArrow;\n\n if (isLeft) {\n moveFocus(\"left\");\n } else if (isRight) {\n moveFocus(\"right\");\n } else if (isUp) {\n moveFocus(\"up\");\n } else if (isDown) {\n moveFocus(\"down\");\n }\n },\n [rows, focusedRow, focusedCol, onSelect, showSearchPill, handleSearchTrigger, moveFocus],\n ),\n { isActive: !searchModal.isOpen },\n );\n\n if (rows.length === 0) {\n return (\n <Box flexDirection=\"column\">\n <Text dimColor>No skills to display.</Text>\n </Box>\n );\n }\n\n const noShrink = scrollEnabled ? { flexShrink: 0 } : {};\n\n const sectionElements = rows.map((row, rowIndex) => (\n <Box key={row.skillId} ref={(el) => setSectionRef(rowIndex, el)} {...noShrink}>\n <SourceSection\n row={row}\n isFocused={rowIndex === focusedRow}\n focusedOptionIndex={focusedCol}\n showSearchPill={showSearchPill}\n />\n </Box>\n ));\n\n const searchModalElement = searchModal.isOpen && (\n <SearchModal\n results={searchResults}\n alias={searchAlias}\n onBind={handleBind}\n onClose={handleCloseSearch}\n />\n );\n\n return (\n <Box\n flexDirection=\"column\"\n {...(scrollEnabled ? { height: availableHeight } : { flexGrow: 1 })}\n >\n <Box flexDirection=\"column\" overflow=\"hidden\" flexGrow={1}>\n <Box flexDirection=\"column\" marginTop={scrollTopPx > 0 ? -scrollTopPx : 0} {...noShrink}>\n {sectionElements}\n </Box>\n </Box>\n {searchModalElement}\n </Box>\n );\n};\n","import { useCallback, useState } from \"react\";\nimport type { BoundSkillCandidate, SkillAlias } from \"../../types/index.js\";\nimport { matrix } from \"../../lib/matrix/matrix-provider.js\";\nimport { useModalState } from \"./use-modal-state.js\";\nimport type { SourceRow } from \"../wizard/source-grid.js\";\n\ntype UseSourceGridSearchModalOptions = {\n rows: SourceRow[];\n onSearch?: (alias: SkillAlias) => Promise<BoundSkillCandidate[]>;\n onBind?: (candidate: BoundSkillCandidate) => void;\n onSearchStateChange?: (active: boolean) => void;\n};\n\ntype UseSourceGridSearchModalResult = {\n searchModal: { isOpen: boolean };\n searchResults: BoundSkillCandidate[];\n searchAlias: string;\n handleSearchTrigger: (rowIndex: number) => Promise<void>;\n handleBind: (candidate: BoundSkillCandidate) => void;\n handleCloseSearch: () => void;\n};\n\nexport function useSourceGridSearchModal({\n rows,\n onSearch,\n onBind,\n onSearchStateChange,\n}: UseSourceGridSearchModalOptions): UseSourceGridSearchModalResult {\n const searchModal = useModalState<number>();\n const [searchResults, setSearchResults] = useState<BoundSkillCandidate[]>([]);\n const [searchAlias, setSearchAlias] = useState(\"\");\n\n const resetSearch = useCallback(() => {\n searchModal.close();\n setSearchResults([]);\n setSearchAlias(\"\");\n onSearchStateChange?.(false);\n }, [onSearchStateChange, searchModal]);\n\n const handleSearchTrigger = useCallback(\n async (rowIndex: number) => {\n const row = rows[rowIndex];\n if (!row || !onSearch) return;\n\n const alias = matrix.slugMap.idToSlug[row.skillId];\n if (!alias) return;\n setSearchAlias(alias);\n searchModal.open(rowIndex);\n onSearchStateChange?.(true);\n\n const results = await onSearch(alias);\n setSearchResults(results);\n },\n [rows, onSearch, onSearchStateChange, searchModal],\n );\n\n const handleBind = useCallback(\n (candidate: BoundSkillCandidate) => {\n onBind?.(candidate);\n resetSearch();\n },\n [onBind, resetSearch],\n );\n\n const handleCloseSearch = useCallback(() => {\n resetSearch();\n }, [resetSearch]);\n\n return {\n searchModal: { isOpen: searchModal.isOpen },\n searchResults,\n searchAlias,\n handleSearchTrigger,\n handleBind,\n handleCloseSearch,\n };\n}\n"],"mappings":"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","names":["useCallback","useCallback"]}
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
addSource,
|
|
28
28
|
getSourceSummary,
|
|
29
29
|
removeSource
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-55G4HXUJ.js";
|
|
31
31
|
import {
|
|
32
32
|
getErrorMessage,
|
|
33
33
|
verbose
|
|
@@ -270,4 +270,4 @@ var StepSettings = ({
|
|
|
270
270
|
export {
|
|
271
271
|
StepSettings
|
|
272
272
|
};
|
|
273
|
-
//# sourceMappingURL=chunk-
|
|
273
|
+
//# sourceMappingURL=chunk-IN5TKIL3.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
loadConfigTypesDataInBackground,
|
|
8
8
|
regenerateConfigTypes,
|
|
9
9
|
resolveAuthor
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-55G4HXUJ.js";
|
|
11
11
|
import {
|
|
12
12
|
BaseCommand,
|
|
13
13
|
EXIT_CODES
|
|
@@ -339,4 +339,4 @@ export {
|
|
|
339
339
|
generateSkillRulesTs,
|
|
340
340
|
NewSkill
|
|
341
341
|
};
|
|
342
|
-
//# sourceMappingURL=chunk-
|
|
342
|
+
//# sourceMappingURL=chunk-JIZKHL5P.js.map
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
resolveAgents,
|
|
18
18
|
writeContentHash,
|
|
19
19
|
writePluginManifest
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-55G4HXUJ.js";
|
|
21
21
|
import {
|
|
22
22
|
loadAllAgents,
|
|
23
23
|
loadProjectAgents
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
import {
|
|
26
26
|
typedEntries,
|
|
27
27
|
typedKeys
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-4OBRPE6A.js";
|
|
29
29
|
import {
|
|
30
30
|
agentFrontmatterValidationSchema,
|
|
31
31
|
copy,
|
|
@@ -327,4 +327,4 @@ export {
|
|
|
327
327
|
compileAllAgentPlugins,
|
|
328
328
|
printAgentCompilationSummary
|
|
329
329
|
};
|
|
330
|
-
//# sourceMappingURL=chunk-
|
|
330
|
+
//# sourceMappingURL=chunk-JUY45EUT.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
FRAMEWORK_CATEGORY
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-NIA3NQBT.js";
|
|
5
5
|
import {
|
|
6
6
|
SKILLS,
|
|
7
7
|
TEST_CATEGORIES,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
createTestSkill,
|
|
16
16
|
renderSkillMd,
|
|
17
17
|
testSkillToResolvedSkill
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-FFNBQMMZ.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esm_shims
|
|
21
21
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -686,4 +686,4 @@ export {
|
|
|
686
686
|
ALL_SKILLS_MULTI_DOMAIN_MATRIX,
|
|
687
687
|
REACT_HONO_FRAMEWORK_API_MATRIX
|
|
688
688
|
};
|
|
689
|
-
//# sourceMappingURL=chunk-
|
|
689
|
+
//# sourceMappingURL=chunk-KDEOCJMS.js.map
|
|
@@ -4,17 +4,17 @@ import {
|
|
|
4
4
|
} from "./chunk-K77I4XGL.js";
|
|
5
5
|
import {
|
|
6
6
|
CategoryGrid
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-DBPC4V25.js";
|
|
8
8
|
import {
|
|
9
9
|
getDomainDisplayName,
|
|
10
10
|
orderDomains
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-TW64EOM7.js";
|
|
12
12
|
import {
|
|
13
13
|
ViewTitle
|
|
14
14
|
} from "./chunk-AQYAVLZK.js";
|
|
15
15
|
import {
|
|
16
16
|
useWizardStore
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-FC5VMKXY.js";
|
|
18
18
|
import {
|
|
19
19
|
KEY_LABEL_ENTER,
|
|
20
20
|
KEY_LABEL_ESC
|
|
@@ -22,11 +22,11 @@ import {
|
|
|
22
22
|
import {
|
|
23
23
|
getAvailableSkills,
|
|
24
24
|
resolveAlias
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-55G4HXUJ.js";
|
|
26
26
|
import {
|
|
27
27
|
getSkillById,
|
|
28
28
|
matrix
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-4OBRPE6A.js";
|
|
30
30
|
import {
|
|
31
31
|
CLI_COLORS
|
|
32
32
|
} from "./chunk-EGMQ3SXN.js";
|
|
@@ -243,4 +243,4 @@ export {
|
|
|
243
243
|
validateBuildStep,
|
|
244
244
|
StepBuild
|
|
245
245
|
};
|
|
246
|
-
//# sourceMappingURL=chunk-
|
|
246
|
+
//# sourceMappingURL=chunk-NEL3MGYH.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
TEST_CATEGORIES
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FFNBQMMZ.js";
|
|
5
5
|
import {
|
|
6
6
|
init_esm_shims
|
|
7
7
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -73,4 +73,4 @@ export {
|
|
|
73
73
|
CLI_FRAMEWORK_CATEGORY,
|
|
74
74
|
FRAMEWORK_CATEGORY
|
|
75
75
|
};
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
76
|
+
//# sourceMappingURL=chunk-NIA3NQBT.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
Wizard
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZFQJ5STW.js";
|
|
5
5
|
import {
|
|
6
6
|
SelectList
|
|
7
7
|
} from "./chunk-WF5PMBIR.js";
|
|
@@ -30,10 +30,10 @@ import {
|
|
|
30
30
|
installPluginConfig,
|
|
31
31
|
loadProjectConfig,
|
|
32
32
|
loadSkillsMatrixFromSource
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-55G4HXUJ.js";
|
|
34
34
|
import {
|
|
35
35
|
getSkillById
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-4OBRPE6A.js";
|
|
37
37
|
import {
|
|
38
38
|
BaseCommand,
|
|
39
39
|
EXIT_CODES
|
|
@@ -562,4 +562,4 @@ export {
|
|
|
562
562
|
showDashboard,
|
|
563
563
|
Init
|
|
564
564
|
};
|
|
565
|
-
//# sourceMappingURL=chunk-
|
|
565
|
+
//# sourceMappingURL=chunk-PPMNHCGA.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getDomainDisplayName
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TW64EOM7.js";
|
|
5
5
|
import {
|
|
6
6
|
ViewTitle
|
|
7
7
|
} from "./chunk-AQYAVLZK.js";
|
|
@@ -123,4 +123,4 @@ var StepConfirm = ({
|
|
|
123
123
|
export {
|
|
124
124
|
StepConfirm
|
|
125
125
|
};
|
|
126
|
-
//# sourceMappingURL=chunk-
|
|
126
|
+
//# sourceMappingURL=chunk-RINGLIE7.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-K77I4XGL.js";
|
|
5
5
|
import {
|
|
6
6
|
getDomainDisplayName
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TW64EOM7.js";
|
|
8
8
|
import {
|
|
9
9
|
useRowScroll
|
|
10
10
|
} from "./chunk-XMLCXRTS.js";
|
|
@@ -13,14 +13,14 @@ import {
|
|
|
13
13
|
} from "./chunk-AQYAVLZK.js";
|
|
14
14
|
import {
|
|
15
15
|
useWizardStore
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-FC5VMKXY.js";
|
|
17
17
|
import {
|
|
18
|
-
isAgentName
|
|
19
|
-
|
|
20
|
-
} from "./chunk-EMX7PA2I.js";
|
|
18
|
+
isAgentName
|
|
19
|
+
} from "./chunk-XXK6MFOA.js";
|
|
21
20
|
import {
|
|
22
|
-
matrix
|
|
23
|
-
|
|
21
|
+
matrix,
|
|
22
|
+
typedKeys
|
|
23
|
+
} from "./chunk-4OBRPE6A.js";
|
|
24
24
|
import {
|
|
25
25
|
CLI_COLORS,
|
|
26
26
|
UI_SYMBOLS
|
|
@@ -268,4 +268,4 @@ var StepAgents = () => {
|
|
|
268
268
|
export {
|
|
269
269
|
StepAgents
|
|
270
270
|
};
|
|
271
|
-
//# sourceMappingURL=chunk-
|
|
271
|
+
//# sourceMappingURL=chunk-SDAJFP4I.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
isDomain
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XXK6MFOA.js";
|
|
5
5
|
import {
|
|
6
6
|
findStack
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4OBRPE6A.js";
|
|
8
8
|
import {
|
|
9
9
|
BUILT_IN_DOMAIN_ORDER
|
|
10
10
|
} from "./chunk-EGMQ3SXN.js";
|
|
@@ -40,4 +40,4 @@ export {
|
|
|
40
40
|
getStackName,
|
|
41
41
|
orderDomains
|
|
42
42
|
};
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-TW64EOM7.js.map
|
|
@@ -8,15 +8,6 @@ import {
|
|
|
8
8
|
init_esm_shims
|
|
9
9
|
} from "./chunk-DHET7RCE.js";
|
|
10
10
|
|
|
11
|
-
// src/cli/utils/typed-object.ts
|
|
12
|
-
init_esm_shims();
|
|
13
|
-
function typedEntries(obj) {
|
|
14
|
-
return Object.entries(obj);
|
|
15
|
-
}
|
|
16
|
-
function typedKeys(obj) {
|
|
17
|
-
return Object.keys(obj);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
11
|
// src/cli/utils/type-guards.ts
|
|
21
12
|
init_esm_shims();
|
|
22
13
|
function isCategory(value) {
|
|
@@ -30,10 +21,8 @@ function isAgentName(value) {
|
|
|
30
21
|
}
|
|
31
22
|
|
|
32
23
|
export {
|
|
33
|
-
typedEntries,
|
|
34
|
-
typedKeys,
|
|
35
24
|
isCategory,
|
|
36
25
|
isDomain,
|
|
37
26
|
isAgentName
|
|
38
27
|
};
|
|
39
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# sourceMappingURL=chunk-XXK6MFOA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/utils/type-guards.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"],"mappings":";;;;;;;;;;;AAAA;AAKO,SAAS,WAAW,OAAkC;AAC3D,SAAQ,WAAiC,SAAS,KAAK;AACzD;AAGO,SAAS,SAAS,OAAgC;AACvD,SAAQ,QAA8B,SAAS,KAAK;AACtD;AAGO,SAAS,YAAY,OAAmC;AAC7D,SAAQ,YAAkC,SAAS,KAAK;AAC1D;","names":[]}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
WizardLayout
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FH74AVEW.js";
|
|
5
5
|
import {
|
|
6
6
|
StepSettings
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IN5TKIL3.js";
|
|
8
8
|
import {
|
|
9
9
|
StepSources
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HZ5CCPU4.js";
|
|
11
11
|
import {
|
|
12
12
|
StepStack
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-DDBSYZGZ.js";
|
|
14
14
|
import {
|
|
15
15
|
StepAgents
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-SDAJFP4I.js";
|
|
17
17
|
import {
|
|
18
18
|
StepBuild
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-NEL3MGYH.js";
|
|
20
20
|
import {
|
|
21
21
|
StepConfirm
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-RINGLIE7.js";
|
|
23
23
|
import {
|
|
24
24
|
getStackName
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-TW64EOM7.js";
|
|
26
26
|
import {
|
|
27
27
|
useWizardStore
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-FC5VMKXY.js";
|
|
29
29
|
import {
|
|
30
30
|
cliTheme
|
|
31
31
|
} from "./chunk-T5DJCIUP.js";
|
|
@@ -39,11 +39,11 @@ import {
|
|
|
39
39
|
import {
|
|
40
40
|
resolveAlias,
|
|
41
41
|
validateSelection
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-55G4HXUJ.js";
|
|
43
43
|
import {
|
|
44
44
|
findStack,
|
|
45
45
|
matrix
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-4OBRPE6A.js";
|
|
47
47
|
import {
|
|
48
48
|
CLI_COLORS
|
|
49
49
|
} from "./chunk-EGMQ3SXN.js";
|
|
@@ -339,4 +339,4 @@ var Wizard = ({
|
|
|
339
339
|
export {
|
|
340
340
|
Wizard
|
|
341
341
|
};
|
|
342
|
-
//# sourceMappingURL=chunk-
|
|
342
|
+
//# sourceMappingURL=chunk-ZFQJ5STW.js.map
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
import {
|
|
3
3
|
compileAllAgentPlugins,
|
|
4
4
|
printAgentCompilationSummary
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-JUY45EUT.js";
|
|
6
6
|
import {
|
|
7
7
|
compileAllSkillPlugins,
|
|
8
8
|
compileSkillPlugin,
|
|
9
9
|
printCompilationSummary
|
|
10
|
-
} from "../../chunk-
|
|
10
|
+
} from "../../chunk-55G4HXUJ.js";
|
|
11
11
|
import "../../chunk-RRBWNEG3.js";
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
12
|
+
import "../../chunk-XXK6MFOA.js";
|
|
13
|
+
import "../../chunk-4OBRPE6A.js";
|
|
14
14
|
import {
|
|
15
15
|
BaseCommand
|
|
16
16
|
} from "../../chunk-IJLAVOKZ.js";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getAgentDefinitions
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-JUY45EUT.js";
|
|
5
5
|
import {
|
|
6
6
|
compileStackPlugin,
|
|
7
7
|
loadStacks,
|
|
8
8
|
printStackCompilationSummary
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-55G4HXUJ.js";
|
|
10
10
|
import "../../chunk-RRBWNEG3.js";
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
11
|
+
import "../../chunk-XXK6MFOA.js";
|
|
12
|
+
import "../../chunk-4OBRPE6A.js";
|
|
13
13
|
import {
|
|
14
14
|
BaseCommand,
|
|
15
15
|
EXIT_CODES
|