@agents-inc/cli 0.74.13 → 0.75.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 +25 -0
- package/dist/{chunk-6W4H2K3Z.js → chunk-5BGBH3KD.js} +34 -20
- package/dist/chunk-5BGBH3KD.js.map +1 -0
- package/dist/{chunk-4CRWKTNQ.js → chunk-6C66NL4X.js} +2 -8
- package/dist/chunk-6C66NL4X.js.map +1 -0
- package/dist/{chunk-A5TTDOP4.js → chunk-7QAVO7VN.js} +43 -14
- package/dist/{chunk-A5TTDOP4.js.map → chunk-7QAVO7VN.js.map} +1 -1
- package/dist/{chunk-HT5KOOUQ.js → chunk-AOZBHMYL.js} +1 -2
- package/dist/chunk-AOZBHMYL.js.map +1 -0
- package/dist/{chunk-EWGFIBBU.js → chunk-BVSWWBPE.js} +4 -4
- package/dist/{chunk-MYSIW4HY.js → chunk-CUCF5LM4.js} +4 -4
- package/dist/{chunk-7X4F4HCO.js → chunk-DFKNFZI2.js} +4 -4
- package/dist/{chunk-JQSJH72Q.js → chunk-FHHTDPMW.js} +4 -4
- package/dist/{chunk-746DCNGM.js → chunk-FYYIRFYT.js} +3 -3
- package/dist/{chunk-2YFC7IJ6.js → chunk-GCT7LSYW.js} +3 -3
- package/dist/{chunk-TKNPMYKJ.js → chunk-GMUOEQOY.js} +4 -4
- package/dist/{chunk-NG2GGK6P.js → chunk-HKIQA4F6.js} +3813 -2751
- package/dist/chunk-HKIQA4F6.js.map +1 -0
- package/dist/{chunk-ZU7AOE3X.js → chunk-JGSPESM3.js} +2 -6
- package/dist/chunk-JGSPESM3.js.map +1 -0
- package/dist/{chunk-GHBZ7NUI.js → chunk-JOTAIMTC.js} +19 -7
- package/dist/chunk-JOTAIMTC.js.map +1 -0
- package/dist/{chunk-IJLAVOKZ.js → chunk-KDYE3AGL.js} +2 -2
- package/dist/{chunk-NKKYTCBH.js → chunk-PSU42CXK.js} +609 -118
- package/dist/chunk-PSU42CXK.js.map +1 -0
- package/dist/{chunk-BM5Y6LIC.js → chunk-Q72ZBA4X.js} +2 -2
- package/dist/{chunk-SASGCSBZ.js → chunk-QN3V3ES7.js} +6 -6
- package/dist/{chunk-RKZFLLER.js → chunk-SPATQKH6.js} +2 -2
- package/dist/{chunk-SRIH4U5Y.js → chunk-SYGXJBG6.js} +14 -3
- package/dist/chunk-SYGXJBG6.js.map +1 -0
- package/dist/{chunk-IJNNVCS4.js → chunk-TYM4D3OF.js} +2 -2
- package/dist/{chunk-ARGCINJC.js → chunk-U5R4M7MA.js} +6 -8
- package/dist/chunk-U5R4M7MA.js.map +1 -0
- package/dist/{chunk-LVNNP7T4.js → chunk-U6A4YFOF.js} +3 -3
- package/dist/{chunk-ICJV3JJF.js → chunk-UQKCYLOA.js} +26 -67
- package/dist/chunk-UQKCYLOA.js.map +1 -0
- package/dist/{chunk-NPMGVQM4.js → chunk-VU4ZCRZS.js} +5 -5
- package/dist/{chunk-7Q6RMYR3.js → chunk-W22IYRZV.js} +2 -2
- package/dist/{chunk-4EPFKZB5.js → chunk-WXC2Y5TF.js} +22 -16
- package/dist/chunk-WXC2Y5TF.js.map +1 -0
- package/dist/{chunk-RRBWNEG3.js → chunk-XHTN56UT.js} +2 -2
- package/dist/{chunk-W6NWOYMS.js → chunk-XZ57QYVI.js} +3 -3
- package/dist/{chunk-OZ4DXMRF.js → chunk-ZZJ6H6VB.js} +2 -2
- package/dist/commands/build/marketplace.js +4 -4
- package/dist/commands/build/plugins.js +8 -8
- package/dist/commands/build/stack.js +8 -8
- package/dist/commands/compile.js +8 -8
- package/dist/commands/config/index.js +8 -8
- package/dist/commands/config/path.js +7 -7
- package/dist/commands/config/show.js +8 -8
- package/dist/commands/diff.js +7 -7
- package/dist/commands/doctor.js +7 -7
- package/dist/commands/edit.js +22 -22
- package/dist/commands/eject.js +7 -7
- package/dist/commands/import/skill.js +7 -7
- package/dist/commands/info.js +7 -15
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +22 -22
- package/dist/commands/list.js +7 -7
- package/dist/commands/new/agent.js +8 -8
- package/dist/commands/new/marketplace.js +9 -9
- package/dist/commands/new/skill.js +8 -8
- package/dist/commands/outdated.js +7 -7
- package/dist/commands/search.js +11 -12
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +7 -7
- package/dist/commands/update.js +8 -8
- package/dist/commands/validate.js +7 -7
- package/dist/components/skill-search/skill-search.js +1 -1
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/category-grid.test.js +16 -17
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/domain-selection.js +9 -9
- package/dist/components/wizard/source-grid.js +2 -2
- package/dist/components/wizard/source-grid.test.js +11 -11
- package/dist/components/wizard/stack-selection.js +8 -8
- package/dist/components/wizard/step-agents.js +9 -9
- package/dist/components/wizard/step-agents.test.js +12 -12
- package/dist/components/wizard/step-build.js +10 -10
- package/dist/components/wizard/step-build.test.js +12 -12
- package/dist/components/wizard/step-confirm.js +4 -4
- package/dist/components/wizard/step-confirm.test.js +10 -10
- package/dist/components/wizard/step-settings.js +7 -7
- package/dist/components/wizard/step-settings.test.js +10 -10
- package/dist/components/wizard/step-sources.js +9 -9
- package/dist/components/wizard/step-sources.test.js +12 -12
- package/dist/components/wizard/step-stack.js +11 -11
- package/dist/components/wizard/step-stack.test.js +12 -12
- package/dist/components/wizard/wizard-layout.js +8 -8
- package/dist/components/wizard/wizard.js +20 -20
- package/dist/config-exports.js +1 -1
- package/dist/hooks/init.js +22 -22
- package/dist/{loader-NHUCFMFQ.js → loader-TK7YS2I5.js} +4 -4
- package/dist/plugins/dummy-skill/.claude-plugin/.content-hash +1 -0
- package/dist/plugins/dummy-skill/.claude-plugin/plugin.json +13 -0
- package/dist/{source-loader-42GVUFZA.js → source-loader-UQXJVVSO.js} +7 -7
- package/dist/source-manager-HS2ZT4XE.js +19 -0
- package/dist/stores/wizard-store.js +7 -7
- package/dist/stores/wizard-store.test.js +10 -10
- package/package.json +1 -1
- package/src/schemas/custom-metadata.schema.json +0 -7
- package/src/schemas/metadata.schema.json +0 -7
- package/dist/chunk-4CRWKTNQ.js.map +0 -1
- package/dist/chunk-4EPFKZB5.js.map +0 -1
- package/dist/chunk-6W4H2K3Z.js.map +0 -1
- package/dist/chunk-ARGCINJC.js.map +0 -1
- package/dist/chunk-GHBZ7NUI.js.map +0 -1
- package/dist/chunk-HT5KOOUQ.js.map +0 -1
- package/dist/chunk-ICJV3JJF.js.map +0 -1
- package/dist/chunk-NG2GGK6P.js.map +0 -1
- package/dist/chunk-NKKYTCBH.js.map +0 -1
- package/dist/chunk-SRIH4U5Y.js.map +0 -1
- package/dist/chunk-ZU7AOE3X.js.map +0 -1
- package/dist/source-manager-WRZBOTEH.js +0 -19
- /package/dist/{chunk-EWGFIBBU.js.map → chunk-BVSWWBPE.js.map} +0 -0
- /package/dist/{chunk-MYSIW4HY.js.map → chunk-CUCF5LM4.js.map} +0 -0
- /package/dist/{chunk-7X4F4HCO.js.map → chunk-DFKNFZI2.js.map} +0 -0
- /package/dist/{chunk-JQSJH72Q.js.map → chunk-FHHTDPMW.js.map} +0 -0
- /package/dist/{chunk-746DCNGM.js.map → chunk-FYYIRFYT.js.map} +0 -0
- /package/dist/{chunk-2YFC7IJ6.js.map → chunk-GCT7LSYW.js.map} +0 -0
- /package/dist/{chunk-TKNPMYKJ.js.map → chunk-GMUOEQOY.js.map} +0 -0
- /package/dist/{chunk-IJLAVOKZ.js.map → chunk-KDYE3AGL.js.map} +0 -0
- /package/dist/{chunk-BM5Y6LIC.js.map → chunk-Q72ZBA4X.js.map} +0 -0
- /package/dist/{chunk-SASGCSBZ.js.map → chunk-QN3V3ES7.js.map} +0 -0
- /package/dist/{chunk-RKZFLLER.js.map → chunk-SPATQKH6.js.map} +0 -0
- /package/dist/{chunk-IJNNVCS4.js.map → chunk-TYM4D3OF.js.map} +0 -0
- /package/dist/{chunk-LVNNP7T4.js.map → chunk-U6A4YFOF.js.map} +0 -0
- /package/dist/{chunk-NPMGVQM4.js.map → chunk-VU4ZCRZS.js.map} +0 -0
- /package/dist/{chunk-7Q6RMYR3.js.map → chunk-W22IYRZV.js.map} +0 -0
- /package/dist/{chunk-RRBWNEG3.js.map → chunk-XHTN56UT.js.map} +0 -0
- /package/dist/{chunk-W6NWOYMS.js.map → chunk-XZ57QYVI.js.map} +0 -0
- /package/dist/{chunk-OZ4DXMRF.js.map → chunk-ZZJ6H6VB.js.map} +0 -0
- /package/dist/{loader-NHUCFMFQ.js.map → loader-TK7YS2I5.js.map} +0 -0
- /package/dist/{source-loader-42GVUFZA.js.map → source-loader-UQXJVVSO.js.map} +0 -0
- /package/dist/{source-manager-WRZBOTEH.js.map → source-manager-HS2ZT4XE.js.map} +0 -0
package/dist/commands/init.js
CHANGED
|
@@ -4,27 +4,27 @@ import {
|
|
|
4
4
|
formatDashboardText,
|
|
5
5
|
getDashboardData,
|
|
6
6
|
showDashboard
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-QN3V3ES7.js";
|
|
8
|
+
import "../chunk-7QAVO7VN.js";
|
|
9
|
+
import "../chunk-ZZJ6H6VB.js";
|
|
10
10
|
import "../chunk-SXGBPQY6.js";
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-FYYIRFYT.js";
|
|
12
|
+
import "../chunk-DFKNFZI2.js";
|
|
13
13
|
import "../chunk-V36FRPAU.js";
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-GMUOEQOY.js";
|
|
15
|
+
import "../chunk-GCT7LSYW.js";
|
|
16
|
+
import "../chunk-FHHTDPMW.js";
|
|
17
|
+
import "../chunk-WXC2Y5TF.js";
|
|
18
18
|
import "../chunk-K77I4XGL.js";
|
|
19
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-SPATQKH6.js";
|
|
20
20
|
import "../chunk-MWGDG4QN.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-W22IYRZV.js";
|
|
22
22
|
import "../chunk-7SOPVGDV.js";
|
|
23
23
|
import "../chunk-UFKDY45I.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-JOTAIMTC.js";
|
|
25
25
|
import "../chunk-P2FHS5IS.js";
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-CUCF5LM4.js";
|
|
27
|
+
import "../chunk-U6A4YFOF.js";
|
|
28
28
|
import "../chunk-CBXMOWQY.js";
|
|
29
29
|
import "../chunk-XMLCXRTS.js";
|
|
30
30
|
import "../chunk-JNQKCZA3.js";
|
|
@@ -32,19 +32,19 @@ import "../chunk-AUNBGZS4.js";
|
|
|
32
32
|
import "../chunk-2PZ7LBFT.js";
|
|
33
33
|
import "../chunk-WF5PMBIR.js";
|
|
34
34
|
import "../chunk-KUV24B5M.js";
|
|
35
|
-
import "../chunk-
|
|
35
|
+
import "../chunk-BVSWWBPE.js";
|
|
36
36
|
import "../chunk-T5DJCIUP.js";
|
|
37
37
|
import "../chunk-U3IGFMCY.js";
|
|
38
38
|
import "../chunk-CBYRFAUN.js";
|
|
39
39
|
import "../chunk-CXRVM7BA.js";
|
|
40
|
-
import "../chunk-
|
|
41
|
-
import "../chunk-
|
|
42
|
-
import "../chunk-
|
|
43
|
-
import "../chunk-
|
|
44
|
-
import "../chunk-
|
|
45
|
-
import "../chunk-
|
|
40
|
+
import "../chunk-5BGBH3KD.js";
|
|
41
|
+
import "../chunk-XHTN56UT.js";
|
|
42
|
+
import "../chunk-HKIQA4F6.js";
|
|
43
|
+
import "../chunk-KDYE3AGL.js";
|
|
44
|
+
import "../chunk-6C66NL4X.js";
|
|
45
|
+
import "../chunk-SYGXJBG6.js";
|
|
46
46
|
import "../chunk-EGMQ3SXN.js";
|
|
47
|
-
import "../chunk-
|
|
47
|
+
import "../chunk-PSU42CXK.js";
|
|
48
48
|
import "../chunk-DHET7RCE.js";
|
|
49
49
|
export {
|
|
50
50
|
Init as default,
|
package/dist/commands/list.js
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
import {
|
|
3
3
|
formatInstallationDisplay,
|
|
4
4
|
getInstallationInfo
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-5BGBH3KD.js";
|
|
6
|
+
import "../chunk-XHTN56UT.js";
|
|
7
|
+
import "../chunk-HKIQA4F6.js";
|
|
8
8
|
import {
|
|
9
9
|
BaseCommand
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-KDYE3AGL.js";
|
|
11
|
+
import "../chunk-6C66NL4X.js";
|
|
12
|
+
import "../chunk-SYGXJBG6.js";
|
|
13
13
|
import {
|
|
14
14
|
CLI_BIN_NAME,
|
|
15
15
|
DEFAULT_BRANDING
|
|
16
16
|
} from "../chunk-EGMQ3SXN.js";
|
|
17
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-PSU42CXK.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esm_shims
|
|
20
20
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getAgentDefinitions
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-VU4ZCRZS.js";
|
|
5
5
|
import {
|
|
6
6
|
isClaudeCLIAvailable,
|
|
7
7
|
loadConfigTypesDataInBackground,
|
|
8
8
|
regenerateConfigTypes,
|
|
9
9
|
resolveSource
|
|
10
|
-
} from "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
10
|
+
} from "../../chunk-5BGBH3KD.js";
|
|
11
|
+
import "../../chunk-XHTN56UT.js";
|
|
12
|
+
import "../../chunk-HKIQA4F6.js";
|
|
13
13
|
import {
|
|
14
14
|
BaseCommand,
|
|
15
15
|
EXIT_CODES
|
|
16
|
-
} from "../../chunk-
|
|
16
|
+
} from "../../chunk-KDYE3AGL.js";
|
|
17
17
|
import {
|
|
18
18
|
fileExists,
|
|
19
19
|
getErrorMessage,
|
|
20
20
|
readFile
|
|
21
|
-
} from "../../chunk-
|
|
22
|
-
import "../../chunk-
|
|
21
|
+
} from "../../chunk-6C66NL4X.js";
|
|
22
|
+
import "../../chunk-SYGXJBG6.js";
|
|
23
23
|
import {
|
|
24
24
|
CLAUDE_DIR,
|
|
25
25
|
CLI_COLORS,
|
|
26
26
|
STANDARD_FILES
|
|
27
27
|
} from "../../chunk-EGMQ3SXN.js";
|
|
28
|
-
import "../../chunk-
|
|
28
|
+
import "../../chunk-PSU42CXK.js";
|
|
29
29
|
import {
|
|
30
30
|
init_esm_shims
|
|
31
31
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -2,31 +2,31 @@
|
|
|
2
2
|
import {
|
|
3
3
|
generateSkillCategoriesTs,
|
|
4
4
|
generateSkillRulesTs
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-U5R4M7MA.js";
|
|
6
6
|
import {
|
|
7
7
|
generateMarketplace,
|
|
8
8
|
writeMarketplace
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-Q72ZBA4X.js";
|
|
10
10
|
import {
|
|
11
11
|
LOCAL_DEFAULTS,
|
|
12
12
|
compileAllSkillPlugins,
|
|
13
13
|
generateConfigSource,
|
|
14
14
|
loadConfigTypesDataInBackground,
|
|
15
15
|
regenerateConfigTypes
|
|
16
|
-
} from "../../chunk-
|
|
17
|
-
import "../../chunk-
|
|
18
|
-
import "../../chunk-
|
|
16
|
+
} from "../../chunk-5BGBH3KD.js";
|
|
17
|
+
import "../../chunk-XHTN56UT.js";
|
|
18
|
+
import "../../chunk-HKIQA4F6.js";
|
|
19
19
|
import {
|
|
20
20
|
BaseCommand,
|
|
21
21
|
EXIT_CODES
|
|
22
|
-
} from "../../chunk-
|
|
22
|
+
} from "../../chunk-KDYE3AGL.js";
|
|
23
23
|
import {
|
|
24
24
|
directoryExists,
|
|
25
25
|
ensureDir,
|
|
26
26
|
getErrorMessage,
|
|
27
27
|
writeFile
|
|
28
|
-
} from "../../chunk-
|
|
29
|
-
import "../../chunk-
|
|
28
|
+
} from "../../chunk-6C66NL4X.js";
|
|
29
|
+
import "../../chunk-SYGXJBG6.js";
|
|
30
30
|
import {
|
|
31
31
|
CLAUDE_SRC_DIR,
|
|
32
32
|
CLI_BIN_NAME,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
STACKS_FILE_PATH,
|
|
39
39
|
STANDARD_FILES
|
|
40
40
|
} from "../../chunk-EGMQ3SXN.js";
|
|
41
|
-
import "../../chunk-
|
|
41
|
+
import "../../chunk-PSU42CXK.js";
|
|
42
42
|
import {
|
|
43
43
|
init_esm_shims
|
|
44
44
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -7,15 +7,15 @@ import {
|
|
|
7
7
|
generateSkillRulesTs,
|
|
8
8
|
toTitleCase,
|
|
9
9
|
validateSkillName
|
|
10
|
-
} from "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
14
|
-
import "../../chunk-
|
|
15
|
-
import "../../chunk-
|
|
16
|
-
import "../../chunk-
|
|
10
|
+
} from "../../chunk-U5R4M7MA.js";
|
|
11
|
+
import "../../chunk-5BGBH3KD.js";
|
|
12
|
+
import "../../chunk-XHTN56UT.js";
|
|
13
|
+
import "../../chunk-HKIQA4F6.js";
|
|
14
|
+
import "../../chunk-KDYE3AGL.js";
|
|
15
|
+
import "../../chunk-6C66NL4X.js";
|
|
16
|
+
import "../../chunk-SYGXJBG6.js";
|
|
17
17
|
import "../../chunk-EGMQ3SXN.js";
|
|
18
|
-
import "../../chunk-
|
|
18
|
+
import "../../chunk-PSU42CXK.js";
|
|
19
19
|
import "../../chunk-DHET7RCE.js";
|
|
20
20
|
export {
|
|
21
21
|
NewSkill as default,
|
|
@@ -3,25 +3,25 @@ import {
|
|
|
3
3
|
compareLocalSkillsWithSource,
|
|
4
4
|
detectInstallation,
|
|
5
5
|
loadSkillsMatrixFromSource
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
6
|
+
} from "../chunk-5BGBH3KD.js";
|
|
7
|
+
import "../chunk-XHTN56UT.js";
|
|
8
8
|
import {
|
|
9
9
|
typedEntries
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-HKIQA4F6.js";
|
|
11
11
|
import {
|
|
12
12
|
BaseCommand,
|
|
13
13
|
EXIT_CODES
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-KDYE3AGL.js";
|
|
15
15
|
import {
|
|
16
16
|
fileExists,
|
|
17
17
|
getErrorMessage
|
|
18
|
-
} from "../chunk-
|
|
19
|
-
import "../chunk-
|
|
18
|
+
} from "../chunk-6C66NL4X.js";
|
|
19
|
+
import "../chunk-SYGXJBG6.js";
|
|
20
20
|
import {
|
|
21
21
|
CLI_BIN_NAME,
|
|
22
22
|
LOCAL_SKILLS_PATH
|
|
23
23
|
} from "../chunk-EGMQ3SXN.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-PSU42CXK.js";
|
|
25
25
|
import {
|
|
26
26
|
init_esm_shims
|
|
27
27
|
} from "../chunk-DHET7RCE.js";
|
package/dist/commands/search.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
SkillSearch
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-AOZBHMYL.js";
|
|
5
5
|
import "../chunk-T5DJCIUP.js";
|
|
6
6
|
import "../chunk-U3IGFMCY.js";
|
|
7
7
|
import "../chunk-CBYRFAUN.js";
|
|
@@ -14,29 +14,29 @@ import {
|
|
|
14
14
|
fetchFromSource,
|
|
15
15
|
loadSkillsMatrixFromSource,
|
|
16
16
|
resolveAllSources
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-5BGBH3KD.js";
|
|
18
18
|
import {
|
|
19
19
|
parseFrontmatter
|
|
20
|
-
} from "../chunk-
|
|
21
|
-
import "../chunk-
|
|
20
|
+
} from "../chunk-XHTN56UT.js";
|
|
21
|
+
import "../chunk-HKIQA4F6.js";
|
|
22
22
|
import {
|
|
23
23
|
BaseCommand,
|
|
24
24
|
EXIT_CODES
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-KDYE3AGL.js";
|
|
26
26
|
import {
|
|
27
27
|
copy,
|
|
28
28
|
ensureDir,
|
|
29
29
|
fileExists,
|
|
30
30
|
listDirectories,
|
|
31
31
|
readFile
|
|
32
|
-
} from "../chunk-
|
|
33
|
-
import "../chunk-
|
|
32
|
+
} from "../chunk-6C66NL4X.js";
|
|
33
|
+
import "../chunk-SYGXJBG6.js";
|
|
34
34
|
import {
|
|
35
35
|
DEFAULT_SKILLS_SUBDIR,
|
|
36
36
|
LOCAL_SKILLS_PATH,
|
|
37
37
|
STANDARD_FILES
|
|
38
38
|
} from "../chunk-EGMQ3SXN.js";
|
|
39
|
-
import "../chunk-
|
|
39
|
+
import "../chunk-PSU42CXK.js";
|
|
40
40
|
import {
|
|
41
41
|
init_esm_shims
|
|
42
42
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -66,7 +66,7 @@ function matchesQuery(skill, query) {
|
|
|
66
66
|
if (skill.slug.toLowerCase().includes(lowerQuery)) return true;
|
|
67
67
|
if (skill.description.toLowerCase().includes(lowerQuery)) return true;
|
|
68
68
|
if (skill.category.toLowerCase().includes(lowerQuery)) return true;
|
|
69
|
-
return
|
|
69
|
+
return false;
|
|
70
70
|
}
|
|
71
71
|
function matchesCategory(skill, category) {
|
|
72
72
|
const lowerCategory = category.toLowerCase();
|
|
@@ -102,7 +102,6 @@ async function fetchSkillsFromSource(source, forceRefresh) {
|
|
|
102
102
|
displayName: skillDir,
|
|
103
103
|
// Boundary cast: external source skills have no real category; "imported" is a display-only placeholder
|
|
104
104
|
category: "imported",
|
|
105
|
-
tags: [],
|
|
106
105
|
author: `@${source.name}`,
|
|
107
106
|
conflictsWith: [],
|
|
108
107
|
isRecommended: false,
|
|
@@ -122,7 +121,7 @@ async function fetchSkillsFromSource(source, forceRefresh) {
|
|
|
122
121
|
}
|
|
123
122
|
var Search = class _Search extends BaseCommand {
|
|
124
123
|
static summary = "Search available skills";
|
|
125
|
-
static description = "Search skills by ID, alias, description,
|
|
124
|
+
static description = "Search skills by ID, alias, description, or category. Run without arguments or with -i for interactive mode with multi-select.";
|
|
126
125
|
static examples = [
|
|
127
126
|
{
|
|
128
127
|
description: "Search for React skills",
|
|
@@ -143,7 +142,7 @@ var Search = class _Search extends BaseCommand {
|
|
|
143
142
|
];
|
|
144
143
|
static args = {
|
|
145
144
|
query: Args.string({
|
|
146
|
-
description: "Search query (matches name, description, category
|
|
145
|
+
description: "Search query (matches name, description, category)",
|
|
147
146
|
required: false
|
|
148
147
|
})
|
|
149
148
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/commands/search.tsx","../../src/cli/components/skill-search/index.ts"],"sourcesContent":["import { Args, Flags } from \"@oclif/core\";\nimport { printTable } from \"@oclif/table\";\nimport { render } from \"ink\";\nimport path from \"path\";\nimport { sortBy } from \"remeda\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { SkillSearch, type SkillSearchResult } from \"../components/skill-search/index.js\";\nimport type { SourcedSkill } from \"../components/skill-search/skill-search.js\";\nimport { DEFAULT_SKILLS_SUBDIR, LOCAL_SKILLS_PATH, STANDARD_FILES } from \"../consts.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport { resolveAllSources, type SourceEntry } from \"../lib/configuration/index.js\";\nimport {\n loadSkillsMatrixFromSource,\n fetchFromSource,\n parseFrontmatter,\n} from \"../lib/loading/index.js\";\nimport type { CategoryPath, ResolvedSkill, SkillSlug } from \"../types/index.js\";\nimport { listDirectories, fileExists, readFile, copy, ensureDir } from \"../utils/fs.js\";\nimport { SUCCESS_MESSAGES, STATUS_MESSAGES, INFO_MESSAGES } from \"../utils/messages.js\";\n\nconst MAX_DESCRIPTION_WIDTH = 50;\n\nfunction truncate(str: string, maxLength: number): string {\n if (str.length <= maxLength) return str;\n return `${str.slice(0, maxLength - 3)}...`;\n}\n\nfunction matchesQuery(skill: ResolvedSkill, query: string): boolean {\n const lowerQuery = query.toLowerCase();\n\n if (skill.id.toLowerCase().includes(lowerQuery)) return true;\n if (skill.displayName.toLowerCase().includes(lowerQuery)) return true;\n if (skill.slug.toLowerCase().includes(lowerQuery)) return true;\n if (skill.description.toLowerCase().includes(lowerQuery)) return true;\n if (skill.category.toLowerCase().includes(lowerQuery)) return true;\n\n return skill.tags.some((tag) => tag.toLowerCase().includes(lowerQuery));\n}\n\nfunction matchesCategory(skill: ResolvedSkill, category: string): boolean {\n const lowerCategory = category.toLowerCase();\n return skill.category.toLowerCase().includes(lowerCategory);\n}\n\nfunction toSourcedSkill(\n skill: ResolvedSkill,\n sourceName: string,\n sourceUrl?: string,\n): SourcedSkill {\n return {\n ...skill,\n sourceName,\n sourceUrl,\n };\n}\n\nasync function fetchSkillsFromSource(\n source: SourceEntry,\n forceRefresh: boolean,\n): Promise<SourcedSkill[]> {\n try {\n const result = await fetchFromSource(source.url, { forceRefresh });\n const skillsDir = path.join(result.path, DEFAULT_SKILLS_SUBDIR);\n\n if (!(await fileExists(skillsDir))) {\n return [];\n }\n\n const skillDirs = await listDirectories(skillsDir);\n const skills: SourcedSkill[] = [];\n\n for (const skillDir of skillDirs) {\n const skillMdPath = path.join(skillsDir, skillDir, STANDARD_FILES.SKILL_MD);\n if (!(await fileExists(skillMdPath))) continue;\n\n const content = await readFile(skillMdPath);\n const frontmatter = parseFrontmatter(content, skillMdPath);\n if (!frontmatter) continue;\n\n skills.push({\n id: frontmatter.name,\n description: frontmatter.description,\n // Boundary cast: directory name used as slug for third-party source skill\n slug: skillDir as SkillSlug,\n displayName: skillDir,\n // Boundary cast: external source skills have no real category; \"imported\" is a display-only placeholder\n category: \"imported\" as CategoryPath,\n tags: [],\n author: `@${source.name}`,\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n sourceName: source.name,\n sourceUrl: source.url,\n path: path.join(skillsDir, skillDir),\n });\n }\n\n return skills;\n } catch {\n // Source unavailable, return empty\n return [];\n }\n}\n\nexport default class Search extends BaseCommand {\n static summary = \"Search available skills\";\n static description =\n \"Search skills by ID, alias, description, category, or tags. \" +\n \"Run without arguments or with -i for interactive mode with multi-select.\";\n\n static examples = [\n {\n description: \"Search for React skills\",\n command: \"<%= config.bin %> search react\",\n },\n {\n description: \"Interactive search mode\",\n command: \"<%= config.bin %> search\",\n },\n {\n description: \"Interactive with pre-filled query\",\n command: \"<%= config.bin %> search -i react\",\n },\n {\n description: \"Search with category filter\",\n command: \"<%= config.bin %> search state -c frontend\",\n },\n ];\n\n static args = {\n query: Args.string({\n description: \"Search query (matches name, description, category, tags)\",\n required: false,\n }),\n };\n\n static flags = {\n ...BaseCommand.baseFlags,\n interactive: Flags.boolean({\n char: \"i\",\n description: \"Launch interactive search with multi-select\",\n default: false,\n }),\n category: Flags.string({\n char: \"c\",\n description: \"Filter by category\",\n required: false,\n }),\n refresh: Flags.boolean({\n description: \"Force refresh from remote sources\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(Search);\n const projectDir = process.cwd();\n\n const isInteractive = flags.interactive || !args.query;\n\n if (isInteractive) {\n await this.runInteractive(args.query, flags.refresh, projectDir);\n } else {\n await this.runStatic(args.query!, flags);\n }\n }\n\n private async runInteractive(\n initialQuery: string | undefined,\n forceRefresh: boolean,\n projectDir: string,\n ): Promise<void> {\n this.log(\"Loading skills from all sources...\");\n\n try {\n const { matrix, sourcePath } = await loadSkillsMatrixFromSource({\n sourceFlag: undefined,\n projectDir,\n forceRefresh,\n });\n\n const primarySkills = Object.values(matrix.skills)\n .filter((skill): skill is ResolvedSkill => skill !== undefined)\n .map((skill) => toSourcedSkill(skill, \"marketplace\", sourcePath));\n\n const { extras } = await resolveAllSources(projectDir);\n\n const extraSkillArrays = await Promise.all(\n extras.map((source) => fetchSkillsFromSource(source, forceRefresh)),\n );\n\n const allSkills: SourcedSkill[] = [...primarySkills, ...extraSkillArrays.flat()];\n const sourceCount = 1 + extras.length;\n\n this.log(`Loaded ${allSkills.length} skills from ${sourceCount} source(s)`);\n this.log(\"\");\n\n const searchResultPromise = new Promise<SkillSearchResult>((resolve) => {\n const { waitUntilExit } = render(\n <SkillSearch\n skills={allSkills}\n sourceCount={sourceCount}\n initialQuery={initialQuery}\n onComplete={(result) => {\n resolve(result);\n }}\n onCancel={() => {\n resolve({ selectedSkills: [], cancelled: true });\n }}\n />,\n );\n\n waitUntilExit().then(() => {\n resolve({ selectedSkills: [], cancelled: true });\n });\n });\n\n const searchResult = await searchResultPromise;\n\n if (searchResult.cancelled) {\n this.log(\"Search cancelled\");\n this.exit(EXIT_CODES.CANCELLED);\n }\n\n if (searchResult.selectedSkills.length === 0) {\n this.log(\"No skills selected\");\n return;\n }\n\n this.log(\"\");\n this.log(`Importing ${searchResult.selectedSkills.length} skill(s)...`);\n\n const destDir = path.join(projectDir, LOCAL_SKILLS_PATH);\n\n for (const skill of searchResult.selectedSkills) {\n if (skill.path) {\n const destPath = path.join(destDir, skill.id);\n await ensureDir(path.dirname(destPath));\n await copy(skill.path, destPath);\n this.logSuccess(`Imported: ${skill.id}`);\n } else {\n this.warn(`Skipping ${skill.id}: No source path available`);\n }\n }\n\n this.log(\"\");\n this.logSuccess(SUCCESS_MESSAGES.IMPORT_COMPLETE);\n this.log(`Skills location: ${destDir}`);\n this.log(INFO_MESSAGES.RUN_COMPILE);\n } catch (error) {\n this.handleError(error);\n }\n }\n\n private async runStatic(\n query: string,\n flags: { source?: string; category?: string },\n ): Promise<void> {\n try {\n this.log(STATUS_MESSAGES.LOADING_SKILLS);\n\n const { matrix, sourcePath, isLocal } = await loadSkillsMatrixFromSource({\n sourceFlag: flags.source,\n });\n\n this.log(`Loaded from ${isLocal ? \"local\" : \"remote\"}: ${sourcePath}`);\n\n const allSkills = Object.values(matrix.skills).filter(\n (skill): skill is ResolvedSkill => skill !== undefined,\n );\n\n let results = allSkills.filter((skill) => matchesQuery(skill, query));\n\n if (flags.category) {\n results = results.filter((skill) => matchesCategory(skill, flags.category!));\n }\n\n results = sortBy(results, (r) => r.displayName.toLowerCase());\n\n this.log(\"\");\n if (results.length === 0) {\n this.warn(`No skills found matching \"${query}\"`);\n if (flags.category) {\n this.logInfo(`Category filter: ${flags.category}`);\n }\n } else {\n this.logInfo(\n `Found ${results.length} skill${results.length === 1 ? \"\" : \"s\"} matching \"${query}\"`,\n );\n if (flags.category) {\n this.logInfo(`Category filter: ${flags.category}`);\n }\n this.log(\"\");\n\n printTable({\n data: results.map((skill) => ({\n id: skill.displayName,\n category: skill.category,\n description: truncate(skill.description, MAX_DESCRIPTION_WIDTH),\n })),\n columns: [\n { key: \"id\", name: \"ID\" },\n { key: \"category\", name: \"Category\" },\n { key: \"description\", name: \"Description\" },\n ],\n headerOptions: { bold: true },\n });\n }\n this.log(\"\");\n } catch (error) {\n this.handleError(error);\n }\n }\n}\n","export { SkillSearch, type SkillSearchResult } from \"./skill-search.js\";\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/commands/search.tsx","../../src/cli/components/skill-search/index.ts"],"sourcesContent":["import { Args, Flags } from \"@oclif/core\";\nimport { printTable } from \"@oclif/table\";\nimport { render } from \"ink\";\nimport path from \"path\";\nimport { sortBy } from \"remeda\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { SkillSearch, type SkillSearchResult } from \"../components/skill-search/index.js\";\nimport type { SourcedSkill } from \"../components/skill-search/skill-search.js\";\nimport { DEFAULT_SKILLS_SUBDIR, LOCAL_SKILLS_PATH, STANDARD_FILES } from \"../consts.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport { resolveAllSources, type SourceEntry } from \"../lib/configuration/index.js\";\nimport {\n loadSkillsMatrixFromSource,\n fetchFromSource,\n parseFrontmatter,\n} from \"../lib/loading/index.js\";\nimport type { CategoryPath, ResolvedSkill, SkillSlug } from \"../types/index.js\";\nimport { listDirectories, fileExists, readFile, copy, ensureDir } from \"../utils/fs.js\";\nimport { SUCCESS_MESSAGES, STATUS_MESSAGES, INFO_MESSAGES } from \"../utils/messages.js\";\n\nconst MAX_DESCRIPTION_WIDTH = 50;\n\nfunction truncate(str: string, maxLength: number): string {\n if (str.length <= maxLength) return str;\n return `${str.slice(0, maxLength - 3)}...`;\n}\n\nfunction matchesQuery(skill: ResolvedSkill, query: string): boolean {\n const lowerQuery = query.toLowerCase();\n\n if (skill.id.toLowerCase().includes(lowerQuery)) return true;\n if (skill.displayName.toLowerCase().includes(lowerQuery)) return true;\n if (skill.slug.toLowerCase().includes(lowerQuery)) return true;\n if (skill.description.toLowerCase().includes(lowerQuery)) return true;\n if (skill.category.toLowerCase().includes(lowerQuery)) return true;\n\n return false;\n}\n\nfunction matchesCategory(skill: ResolvedSkill, category: string): boolean {\n const lowerCategory = category.toLowerCase();\n return skill.category.toLowerCase().includes(lowerCategory);\n}\n\nfunction toSourcedSkill(\n skill: ResolvedSkill,\n sourceName: string,\n sourceUrl?: string,\n): SourcedSkill {\n return {\n ...skill,\n sourceName,\n sourceUrl,\n };\n}\n\nasync function fetchSkillsFromSource(\n source: SourceEntry,\n forceRefresh: boolean,\n): Promise<SourcedSkill[]> {\n try {\n const result = await fetchFromSource(source.url, { forceRefresh });\n const skillsDir = path.join(result.path, DEFAULT_SKILLS_SUBDIR);\n\n if (!(await fileExists(skillsDir))) {\n return [];\n }\n\n const skillDirs = await listDirectories(skillsDir);\n const skills: SourcedSkill[] = [];\n\n for (const skillDir of skillDirs) {\n const skillMdPath = path.join(skillsDir, skillDir, STANDARD_FILES.SKILL_MD);\n if (!(await fileExists(skillMdPath))) continue;\n\n const content = await readFile(skillMdPath);\n const frontmatter = parseFrontmatter(content, skillMdPath);\n if (!frontmatter) continue;\n\n skills.push({\n id: frontmatter.name,\n description: frontmatter.description,\n // Boundary cast: directory name used as slug for third-party source skill\n slug: skillDir as SkillSlug,\n displayName: skillDir,\n // Boundary cast: external source skills have no real category; \"imported\" is a display-only placeholder\n category: \"imported\" as CategoryPath,\n author: `@${source.name}`,\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n sourceName: source.name,\n sourceUrl: source.url,\n path: path.join(skillsDir, skillDir),\n });\n }\n\n return skills;\n } catch {\n // Source unavailable, return empty\n return [];\n }\n}\n\nexport default class Search extends BaseCommand {\n static summary = \"Search available skills\";\n static description =\n \"Search skills by ID, alias, description, or category. \" +\n \"Run without arguments or with -i for interactive mode with multi-select.\";\n\n static examples = [\n {\n description: \"Search for React skills\",\n command: \"<%= config.bin %> search react\",\n },\n {\n description: \"Interactive search mode\",\n command: \"<%= config.bin %> search\",\n },\n {\n description: \"Interactive with pre-filled query\",\n command: \"<%= config.bin %> search -i react\",\n },\n {\n description: \"Search with category filter\",\n command: \"<%= config.bin %> search state -c frontend\",\n },\n ];\n\n static args = {\n query: Args.string({\n description: \"Search query (matches name, description, category)\",\n required: false,\n }),\n };\n\n static flags = {\n ...BaseCommand.baseFlags,\n interactive: Flags.boolean({\n char: \"i\",\n description: \"Launch interactive search with multi-select\",\n default: false,\n }),\n category: Flags.string({\n char: \"c\",\n description: \"Filter by category\",\n required: false,\n }),\n refresh: Flags.boolean({\n description: \"Force refresh from remote sources\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(Search);\n const projectDir = process.cwd();\n\n const isInteractive = flags.interactive || !args.query;\n\n if (isInteractive) {\n await this.runInteractive(args.query, flags.refresh, projectDir);\n } else {\n await this.runStatic(args.query!, flags);\n }\n }\n\n private async runInteractive(\n initialQuery: string | undefined,\n forceRefresh: boolean,\n projectDir: string,\n ): Promise<void> {\n this.log(\"Loading skills from all sources...\");\n\n try {\n const { matrix, sourcePath } = await loadSkillsMatrixFromSource({\n sourceFlag: undefined,\n projectDir,\n forceRefresh,\n });\n\n const primarySkills = Object.values(matrix.skills)\n .filter((skill): skill is ResolvedSkill => skill !== undefined)\n .map((skill) => toSourcedSkill(skill, \"marketplace\", sourcePath));\n\n const { extras } = await resolveAllSources(projectDir);\n\n const extraSkillArrays = await Promise.all(\n extras.map((source) => fetchSkillsFromSource(source, forceRefresh)),\n );\n\n const allSkills: SourcedSkill[] = [...primarySkills, ...extraSkillArrays.flat()];\n const sourceCount = 1 + extras.length;\n\n this.log(`Loaded ${allSkills.length} skills from ${sourceCount} source(s)`);\n this.log(\"\");\n\n const searchResultPromise = new Promise<SkillSearchResult>((resolve) => {\n const { waitUntilExit } = render(\n <SkillSearch\n skills={allSkills}\n sourceCount={sourceCount}\n initialQuery={initialQuery}\n onComplete={(result) => {\n resolve(result);\n }}\n onCancel={() => {\n resolve({ selectedSkills: [], cancelled: true });\n }}\n />,\n );\n\n waitUntilExit().then(() => {\n resolve({ selectedSkills: [], cancelled: true });\n });\n });\n\n const searchResult = await searchResultPromise;\n\n if (searchResult.cancelled) {\n this.log(\"Search cancelled\");\n this.exit(EXIT_CODES.CANCELLED);\n }\n\n if (searchResult.selectedSkills.length === 0) {\n this.log(\"No skills selected\");\n return;\n }\n\n this.log(\"\");\n this.log(`Importing ${searchResult.selectedSkills.length} skill(s)...`);\n\n const destDir = path.join(projectDir, LOCAL_SKILLS_PATH);\n\n for (const skill of searchResult.selectedSkills) {\n if (skill.path) {\n const destPath = path.join(destDir, skill.id);\n await ensureDir(path.dirname(destPath));\n await copy(skill.path, destPath);\n this.logSuccess(`Imported: ${skill.id}`);\n } else {\n this.warn(`Skipping ${skill.id}: No source path available`);\n }\n }\n\n this.log(\"\");\n this.logSuccess(SUCCESS_MESSAGES.IMPORT_COMPLETE);\n this.log(`Skills location: ${destDir}`);\n this.log(INFO_MESSAGES.RUN_COMPILE);\n } catch (error) {\n this.handleError(error);\n }\n }\n\n private async runStatic(\n query: string,\n flags: { source?: string; category?: string },\n ): Promise<void> {\n try {\n this.log(STATUS_MESSAGES.LOADING_SKILLS);\n\n const { matrix, sourcePath, isLocal } = await loadSkillsMatrixFromSource({\n sourceFlag: flags.source,\n });\n\n this.log(`Loaded from ${isLocal ? \"local\" : \"remote\"}: ${sourcePath}`);\n\n const allSkills = Object.values(matrix.skills).filter(\n (skill): skill is ResolvedSkill => skill !== undefined,\n );\n\n let results = allSkills.filter((skill) => matchesQuery(skill, query));\n\n if (flags.category) {\n results = results.filter((skill) => matchesCategory(skill, flags.category!));\n }\n\n results = sortBy(results, (r) => r.displayName.toLowerCase());\n\n this.log(\"\");\n if (results.length === 0) {\n this.warn(`No skills found matching \"${query}\"`);\n if (flags.category) {\n this.logInfo(`Category filter: ${flags.category}`);\n }\n } else {\n this.logInfo(\n `Found ${results.length} skill${results.length === 1 ? \"\" : \"s\"} matching \"${query}\"`,\n );\n if (flags.category) {\n this.logInfo(`Category filter: ${flags.category}`);\n }\n this.log(\"\");\n\n printTable({\n data: results.map((skill) => ({\n id: skill.displayName,\n category: skill.category,\n description: truncate(skill.description, MAX_DESCRIPTION_WIDTH),\n })),\n columns: [\n { key: \"id\", name: \"ID\" },\n { key: \"category\", name: \"Category\" },\n { key: \"description\", name: \"Description\" },\n ],\n headerOptions: { bold: true },\n });\n }\n this.log(\"\");\n } catch (error) {\n this.handleError(error);\n }\n }\n}\n","export { SkillSearch, type SkillSearchResult } from \"./skill-search.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAS,MAAM,aAAa;AAC5B,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AACvB,OAAO,UAAU;AACjB,SAAS,cAAc;;;ACJvB;;;AD2MU;AAtLV,IAAM,wBAAwB;AAE9B,SAAS,SAAS,KAAa,WAA2B;AACxD,MAAI,IAAI,UAAU,UAAW,QAAO;AACpC,SAAO,GAAG,IAAI,MAAM,GAAG,YAAY,CAAC,CAAC;AACvC;AAEA,SAAS,aAAa,OAAsB,OAAwB;AAClE,QAAM,aAAa,MAAM,YAAY;AAErC,MAAI,MAAM,GAAG,YAAY,EAAE,SAAS,UAAU,EAAG,QAAO;AACxD,MAAI,MAAM,YAAY,YAAY,EAAE,SAAS,UAAU,EAAG,QAAO;AACjE,MAAI,MAAM,KAAK,YAAY,EAAE,SAAS,UAAU,EAAG,QAAO;AAC1D,MAAI,MAAM,YAAY,YAAY,EAAE,SAAS,UAAU,EAAG,QAAO;AACjE,MAAI,MAAM,SAAS,YAAY,EAAE,SAAS,UAAU,EAAG,QAAO;AAE9D,SAAO;AACT;AAEA,SAAS,gBAAgB,OAAsB,UAA2B;AACxE,QAAM,gBAAgB,SAAS,YAAY;AAC3C,SAAO,MAAM,SAAS,YAAY,EAAE,SAAS,aAAa;AAC5D;AAEA,SAAS,eACP,OACA,YACA,WACc;AACd,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF;AACF;AAEA,eAAe,sBACb,QACA,cACyB;AACzB,MAAI;AACF,UAAM,SAAS,MAAM,gBAAgB,OAAO,KAAK,EAAE,aAAa,CAAC;AACjE,UAAM,YAAY,KAAK,KAAK,OAAO,MAAM,qBAAqB;AAE9D,QAAI,CAAE,MAAM,WAAW,SAAS,GAAI;AAClC,aAAO,CAAC;AAAA,IACV;AAEA,UAAM,YAAY,MAAM,gBAAgB,SAAS;AACjD,UAAM,SAAyB,CAAC;AAEhC,eAAW,YAAY,WAAW;AAChC,YAAM,cAAc,KAAK,KAAK,WAAW,UAAU,eAAe,QAAQ;AAC1E,UAAI,CAAE,MAAM,WAAW,WAAW,EAAI;AAEtC,YAAM,UAAU,MAAM,SAAS,WAAW;AAC1C,YAAM,cAAc,iBAAiB,SAAS,WAAW;AACzD,UAAI,CAAC,YAAa;AAElB,aAAO,KAAK;AAAA,QACV,IAAI,YAAY;AAAA,QAChB,aAAa,YAAY;AAAA;AAAA,QAEzB,MAAM;AAAA,QACN,aAAa;AAAA;AAAA,QAEb,UAAU;AAAA,QACV,QAAQ,IAAI,OAAO,IAAI;AAAA,QACvB,eAAe,CAAC;AAAA,QAChB,eAAe;AAAA,QACf,UAAU,CAAC;AAAA,QACX,cAAc,CAAC;AAAA,QACf,aAAa,CAAC;AAAA,QACd,gBAAgB,CAAC;AAAA,QACjB,YAAY,OAAO;AAAA,QACnB,WAAW,OAAO;AAAA,QAClB,MAAM,KAAK,KAAK,WAAW,QAAQ;AAAA,MACrC,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT,QAAQ;AAEN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,IAAqB,SAArB,MAAqB,gBAAe,YAAY;AAAA,EAC9C,OAAO,UAAU;AAAA,EACjB,OAAO,cACL;AAAA,EAGF,OAAO,WAAW;AAAA,IAChB;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,OAAO,OAAO;AAAA,IACZ,OAAO,KAAK,OAAO;AAAA,MACjB,aAAa;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,QAAQ;AAAA,IACb,GAAG,YAAY;AAAA,IACf,aAAa,MAAM,QAAQ;AAAA,MACzB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,IACD,UAAU,MAAM,OAAO;AAAA,MACrB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AAAA,IACD,SAAS,MAAM,QAAQ;AAAA,MACrB,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,OAAM;AAC/C,UAAM,aAAa,QAAQ,IAAI;AAE/B,UAAM,gBAAgB,MAAM,eAAe,CAAC,KAAK;AAEjD,QAAI,eAAe;AACjB,YAAM,KAAK,eAAe,KAAK,OAAO,MAAM,SAAS,UAAU;AAAA,IACjE,OAAO;AACL,YAAM,KAAK,UAAU,KAAK,OAAQ,KAAK;AAAA,IACzC;AAAA,EACF;AAAA,EAEA,MAAc,eACZ,cACA,cACA,YACe;AACf,SAAK,IAAI,oCAAoC;AAE7C,QAAI;AACF,YAAM,EAAE,QAAQ,WAAW,IAAI,MAAM,2BAA2B;AAAA,QAC9D,YAAY;AAAA,QACZ;AAAA,QACA;AAAA,MACF,CAAC;AAED,YAAM,gBAAgB,OAAO,OAAO,OAAO,MAAM,EAC9C,OAAO,CAAC,UAAkC,UAAU,MAAS,EAC7D,IAAI,CAAC,UAAU,eAAe,OAAO,eAAe,UAAU,CAAC;AAElE,YAAM,EAAE,OAAO,IAAI,MAAM,kBAAkB,UAAU;AAErD,YAAM,mBAAmB,MAAM,QAAQ;AAAA,QACrC,OAAO,IAAI,CAAC,WAAW,sBAAsB,QAAQ,YAAY,CAAC;AAAA,MACpE;AAEA,YAAM,YAA4B,CAAC,GAAG,eAAe,GAAG,iBAAiB,KAAK,CAAC;AAC/E,YAAM,cAAc,IAAI,OAAO;AAE/B,WAAK,IAAI,UAAU,UAAU,MAAM,gBAAgB,WAAW,YAAY;AAC1E,WAAK,IAAI,EAAE;AAEX,YAAM,sBAAsB,IAAI,QAA2B,CAAC,YAAY;AACtE,cAAM,EAAE,cAAc,IAAI;AAAA,UACxB;AAAA,YAAC;AAAA;AAAA,cACC,QAAQ;AAAA,cACR;AAAA,cACA;AAAA,cACA,YAAY,CAAC,WAAW;AACtB,wBAAQ,MAAM;AAAA,cAChB;AAAA,cACA,UAAU,MAAM;AACd,wBAAQ,EAAE,gBAAgB,CAAC,GAAG,WAAW,KAAK,CAAC;AAAA,cACjD;AAAA;AAAA,UACF;AAAA,QACF;AAEA,sBAAc,EAAE,KAAK,MAAM;AACzB,kBAAQ,EAAE,gBAAgB,CAAC,GAAG,WAAW,KAAK,CAAC;AAAA,QACjD,CAAC;AAAA,MACH,CAAC;AAED,YAAM,eAAe,MAAM;AAE3B,UAAI,aAAa,WAAW;AAC1B,aAAK,IAAI,kBAAkB;AAC3B,aAAK,KAAK,WAAW,SAAS;AAAA,MAChC;AAEA,UAAI,aAAa,eAAe,WAAW,GAAG;AAC5C,aAAK,IAAI,oBAAoB;AAC7B;AAAA,MACF;AAEA,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,aAAa,aAAa,eAAe,MAAM,cAAc;AAEtE,YAAM,UAAU,KAAK,KAAK,YAAY,iBAAiB;AAEvD,iBAAW,SAAS,aAAa,gBAAgB;AAC/C,YAAI,MAAM,MAAM;AACd,gBAAM,WAAW,KAAK,KAAK,SAAS,MAAM,EAAE;AAC5C,gBAAM,UAAU,KAAK,QAAQ,QAAQ,CAAC;AACtC,gBAAM,KAAK,MAAM,MAAM,QAAQ;AAC/B,eAAK,WAAW,aAAa,MAAM,EAAE,EAAE;AAAA,QACzC,OAAO;AACL,eAAK,KAAK,YAAY,MAAM,EAAE,4BAA4B;AAAA,QAC5D;AAAA,MACF;AAEA,WAAK,IAAI,EAAE;AACX,WAAK,WAAW,iBAAiB,eAAe;AAChD,WAAK,IAAI,oBAAoB,OAAO,EAAE;AACtC,WAAK,IAAI,cAAc,WAAW;AAAA,IACpC,SAAS,OAAO;AACd,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,MAAc,UACZ,OACA,OACe;AACf,QAAI;AACF,WAAK,IAAI,gBAAgB,cAAc;AAEvC,YAAM,EAAE,QAAQ,YAAY,QAAQ,IAAI,MAAM,2BAA2B;AAAA,QACvE,YAAY,MAAM;AAAA,MACpB,CAAC;AAED,WAAK,IAAI,eAAe,UAAU,UAAU,QAAQ,KAAK,UAAU,EAAE;AAErE,YAAM,YAAY,OAAO,OAAO,OAAO,MAAM,EAAE;AAAA,QAC7C,CAAC,UAAkC,UAAU;AAAA,MAC/C;AAEA,UAAI,UAAU,UAAU,OAAO,CAAC,UAAU,aAAa,OAAO,KAAK,CAAC;AAEpE,UAAI,MAAM,UAAU;AAClB,kBAAU,QAAQ,OAAO,CAAC,UAAU,gBAAgB,OAAO,MAAM,QAAS,CAAC;AAAA,MAC7E;AAEA,gBAAU,OAAO,SAAS,CAAC,MAAM,EAAE,YAAY,YAAY,CAAC;AAE5D,WAAK,IAAI,EAAE;AACX,UAAI,QAAQ,WAAW,GAAG;AACxB,aAAK,KAAK,6BAA6B,KAAK,GAAG;AAC/C,YAAI,MAAM,UAAU;AAClB,eAAK,QAAQ,oBAAoB,MAAM,QAAQ,EAAE;AAAA,QACnD;AAAA,MACF,OAAO;AACL,aAAK;AAAA,UACH,SAAS,QAAQ,MAAM,SAAS,QAAQ,WAAW,IAAI,KAAK,GAAG,cAAc,KAAK;AAAA,QACpF;AACA,YAAI,MAAM,UAAU;AAClB,eAAK,QAAQ,oBAAoB,MAAM,QAAQ,EAAE;AAAA,QACnD;AACA,aAAK,IAAI,EAAE;AAEX,mBAAW;AAAA,UACT,MAAM,QAAQ,IAAI,CAAC,WAAW;AAAA,YAC5B,IAAI,MAAM;AAAA,YACV,UAAU,MAAM;AAAA,YAChB,aAAa,SAAS,MAAM,aAAa,qBAAqB;AAAA,UAChE,EAAE;AAAA,UACF,SAAS;AAAA,YACP,EAAE,KAAK,MAAM,MAAM,KAAK;AAAA,YACxB,EAAE,KAAK,YAAY,MAAM,WAAW;AAAA,YACpC,EAAE,KAAK,eAAe,MAAM,cAAc;AAAA,UAC5C;AAAA,UACA,eAAe,EAAE,MAAM,KAAK;AAAA,QAC9B,CAAC;AAAA,MACH;AACA,WAAK,IAAI,EAAE;AAAA,IACb,SAAS,OAAO;AACd,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF;AACF;","names":[]}
|
|
@@ -13,27 +13,27 @@ import {
|
|
|
13
13
|
listPluginNames,
|
|
14
14
|
loadProjectSourceConfig,
|
|
15
15
|
readForkedFromMetadata
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-5BGBH3KD.js";
|
|
17
|
+
import "../chunk-XHTN56UT.js";
|
|
18
|
+
import "../chunk-HKIQA4F6.js";
|
|
19
19
|
import {
|
|
20
20
|
BaseCommand,
|
|
21
21
|
EXIT_CODES
|
|
22
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-KDYE3AGL.js";
|
|
23
23
|
import {
|
|
24
24
|
directoryExists,
|
|
25
25
|
getErrorMessage,
|
|
26
26
|
listDirectories,
|
|
27
27
|
remove
|
|
28
|
-
} from "../chunk-
|
|
29
|
-
import "../chunk-
|
|
28
|
+
} from "../chunk-6C66NL4X.js";
|
|
29
|
+
import "../chunk-SYGXJBG6.js";
|
|
30
30
|
import {
|
|
31
31
|
CLAUDE_DIR,
|
|
32
32
|
CLAUDE_SRC_DIR,
|
|
33
33
|
CLI_COLORS,
|
|
34
34
|
DEFAULT_BRANDING
|
|
35
35
|
} from "../chunk-EGMQ3SXN.js";
|
|
36
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-PSU42CXK.js";
|
|
37
37
|
import {
|
|
38
38
|
init_esm_shims
|
|
39
39
|
} from "../chunk-DHET7RCE.js";
|
package/dist/commands/update.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "../chunk-N6S7ZRIL.js";
|
|
5
5
|
import {
|
|
6
6
|
recompileAgents
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-VU4ZCRZS.js";
|
|
8
8
|
import {
|
|
9
9
|
ERROR_MESSAGES,
|
|
10
10
|
INFO_MESSAGES,
|
|
@@ -15,26 +15,26 @@ import {
|
|
|
15
15
|
compareLocalSkillsWithSource,
|
|
16
16
|
injectForkedFromMetadata,
|
|
17
17
|
loadSkillsMatrixFromSource
|
|
18
|
-
} from "../chunk-
|
|
19
|
-
import "../chunk-
|
|
18
|
+
} from "../chunk-5BGBH3KD.js";
|
|
19
|
+
import "../chunk-XHTN56UT.js";
|
|
20
20
|
import {
|
|
21
21
|
matrix
|
|
22
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-HKIQA4F6.js";
|
|
23
23
|
import {
|
|
24
24
|
BaseCommand,
|
|
25
25
|
EXIT_CODES
|
|
26
|
-
} from "../chunk-
|
|
26
|
+
} from "../chunk-KDYE3AGL.js";
|
|
27
27
|
import {
|
|
28
28
|
copy,
|
|
29
29
|
fileExists,
|
|
30
30
|
getErrorMessage
|
|
31
|
-
} from "../chunk-
|
|
32
|
-
import "../chunk-
|
|
31
|
+
} from "../chunk-6C66NL4X.js";
|
|
32
|
+
import "../chunk-SYGXJBG6.js";
|
|
33
33
|
import {
|
|
34
34
|
CLI_BIN_NAME,
|
|
35
35
|
LOCAL_SKILLS_PATH
|
|
36
36
|
} from "../chunk-EGMQ3SXN.js";
|
|
37
|
-
import "../chunk-
|
|
37
|
+
import "../chunk-PSU42CXK.js";
|
|
38
38
|
import {
|
|
39
39
|
init_esm_shims
|
|
40
40
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -11,17 +11,17 @@ import {
|
|
|
11
11
|
validateAllPlugins,
|
|
12
12
|
validateAllSchemas,
|
|
13
13
|
validatePlugin
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-5BGBH3KD.js";
|
|
15
15
|
import {
|
|
16
16
|
parseFrontmatter
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-XHTN56UT.js";
|
|
18
18
|
import {
|
|
19
19
|
matrix
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-HKIQA4F6.js";
|
|
21
21
|
import {
|
|
22
22
|
BaseCommand,
|
|
23
23
|
EXIT_CODES
|
|
24
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-KDYE3AGL.js";
|
|
25
25
|
import {
|
|
26
26
|
SKILL_ID_PATTERN,
|
|
27
27
|
directoryExists,
|
|
@@ -31,14 +31,14 @@ import {
|
|
|
31
31
|
metadataValidationSchema,
|
|
32
32
|
readFile,
|
|
33
33
|
setVerbose
|
|
34
|
-
} from "../chunk-
|
|
35
|
-
import "../chunk-
|
|
34
|
+
} from "../chunk-6C66NL4X.js";
|
|
35
|
+
import "../chunk-SYGXJBG6.js";
|
|
36
36
|
import {
|
|
37
37
|
SKILLS_DIR_PATH,
|
|
38
38
|
SKILL_CATEGORIES_PATH,
|
|
39
39
|
STANDARD_FILES
|
|
40
40
|
} from "../chunk-EGMQ3SXN.js";
|
|
41
|
-
import "../chunk-
|
|
41
|
+
import "../chunk-PSU42CXK.js";
|
|
42
42
|
import {
|
|
43
43
|
init_esm_shims
|
|
44
44
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CategoryGrid
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-JOTAIMTC.js";
|
|
5
5
|
import "../../chunk-P2FHS5IS.js";
|
|
6
6
|
import "../../chunk-AUNBGZS4.js";
|
|
7
7
|
import "../../chunk-CBYRFAUN.js";
|
|
8
|
-
import "../../chunk-
|
|
8
|
+
import "../../chunk-HKIQA4F6.js";
|
|
9
9
|
import "../../chunk-EGMQ3SXN.js";
|
|
10
10
|
import "../../chunk-DHET7RCE.js";
|
|
11
11
|
export {
|
|
@@ -14,9 +14,9 @@ import {
|
|
|
14
14
|
} from "../../chunk-66UDJBF6.js";
|
|
15
15
|
import {
|
|
16
16
|
CATEGORY_GRID_MATRIX
|
|
17
|
-
} from "../../chunk-
|
|
18
|
-
import "../../chunk-
|
|
19
|
-
import "../../chunk-
|
|
17
|
+
} from "../../chunk-UQKCYLOA.js";
|
|
18
|
+
import "../../chunk-TYM4D3OF.js";
|
|
19
|
+
import "../../chunk-JGSPESM3.js";
|
|
20
20
|
import {
|
|
21
21
|
afterEach,
|
|
22
22
|
beforeEach,
|
|
@@ -27,21 +27,21 @@ import {
|
|
|
27
27
|
} from "../../chunk-XY3XDVMI.js";
|
|
28
28
|
import {
|
|
29
29
|
CategoryGrid
|
|
30
|
-
} from "../../chunk-
|
|
30
|
+
} from "../../chunk-JOTAIMTC.js";
|
|
31
31
|
import "../../chunk-P2FHS5IS.js";
|
|
32
32
|
import "../../chunk-AUNBGZS4.js";
|
|
33
|
-
import "../../chunk-
|
|
33
|
+
import "../../chunk-BVSWWBPE.js";
|
|
34
34
|
import "../../chunk-CBYRFAUN.js";
|
|
35
|
-
import "../../chunk-
|
|
36
|
-
import "../../chunk-
|
|
35
|
+
import "../../chunk-5BGBH3KD.js";
|
|
36
|
+
import "../../chunk-XHTN56UT.js";
|
|
37
37
|
import {
|
|
38
38
|
BUILT_IN_MATRIX,
|
|
39
39
|
initializeMatrix
|
|
40
|
-
} from "../../chunk-
|
|
41
|
-
import "../../chunk-
|
|
42
|
-
import "../../chunk-
|
|
40
|
+
} from "../../chunk-HKIQA4F6.js";
|
|
41
|
+
import "../../chunk-6C66NL4X.js";
|
|
42
|
+
import "../../chunk-SYGXJBG6.js";
|
|
43
43
|
import "../../chunk-EGMQ3SXN.js";
|
|
44
|
-
import "../../chunk-
|
|
44
|
+
import "../../chunk-PSU42CXK.js";
|
|
45
45
|
import {
|
|
46
46
|
init_esm_shims
|
|
47
47
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -86,7 +86,7 @@ var defaultCategories = [
|
|
|
86
86
|
state: { status: "recommended", reason: "Modern utility-first CSS" }
|
|
87
87
|
}),
|
|
88
88
|
createOption("web-styling-cva"),
|
|
89
|
-
createOption("web-framework-nuxt")
|
|
89
|
+
createOption("web-meta-framework-nuxt")
|
|
90
90
|
],
|
|
91
91
|
{ required: true }
|
|
92
92
|
),
|
|
@@ -132,7 +132,7 @@ var categoriesWithFramework = [
|
|
|
132
132
|
state: { status: "recommended", reason: "Modern utility-first CSS" }
|
|
133
133
|
}),
|
|
134
134
|
createOption("web-styling-cva"),
|
|
135
|
-
createOption("web-framework-nuxt")
|
|
135
|
+
createOption("web-meta-framework-nuxt")
|
|
136
136
|
],
|
|
137
137
|
{ required: true }
|
|
138
138
|
),
|
|
@@ -998,10 +998,9 @@ describe("CategoryGrid component", () => {
|
|
|
998
998
|
"web-framework-vue-composition-api",
|
|
999
999
|
"web-framework-angular-standalone",
|
|
1000
1000
|
"web-framework-solidjs",
|
|
1001
|
-
"web-framework-nuxt",
|
|
1002
|
-
"web-framework-remix",
|
|
1003
|
-
"web-framework-nextjs
|
|
1004
|
-
"web-framework-nextjs-server-actions",
|
|
1001
|
+
"web-meta-framework-nuxt",
|
|
1002
|
+
"web-meta-framework-remix",
|
|
1003
|
+
"web-meta-framework-nextjs",
|
|
1005
1004
|
"web-styling-tailwind",
|
|
1006
1005
|
"web-styling-scss-modules"
|
|
1007
1006
|
];
|