@claude-collective/cli 0.21.0 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +174 -0
- package/README.md +41 -27
- package/config/skills-matrix.yaml +38 -37
- package/config/stacks.yaml +8 -14
- package/dist/{chunk-ZNIDWLL5.js → chunk-3X5D7RM5.js} +4 -3
- package/dist/chunk-3X5D7RM5.js.map +1 -0
- package/dist/chunk-4S4FCAA2.js +100 -0
- package/dist/chunk-4S4FCAA2.js.map +1 -0
- package/dist/chunk-4WGN6SUE.js +197 -0
- package/dist/chunk-4WGN6SUE.js.map +1 -0
- package/dist/{chunk-DHET7RCE.js → chunk-AWKZ5BDL.js} +9 -2
- package/dist/{chunk-DHET7RCE.js.map → chunk-AWKZ5BDL.js.map} +1 -1
- package/dist/{chunk-6Q3Y7KVB.js → chunk-DBRUQQUF.js} +8 -2
- package/dist/chunk-DBRUQQUF.js.map +1 -0
- package/dist/{chunk-OQYYMQJR.js → chunk-ETCVEV3S.js} +8 -11
- package/dist/chunk-ETCVEV3S.js.map +1 -0
- package/dist/{chunk-ZSVMS677.js → chunk-F4RD5FYM.js} +2 -2
- package/dist/chunk-F4RD5FYM.js.map +1 -0
- package/dist/{chunk-5KXUDHAB.js → chunk-GGFOD5PK.js} +6 -9
- package/dist/chunk-GGFOD5PK.js.map +1 -0
- package/dist/{chunk-UMORK7OK.js → chunk-H7SSBSPR.js} +2 -2
- package/dist/chunk-H7SSBSPR.js.map +1 -0
- package/dist/chunk-HWD32NP7.js +19 -0
- package/dist/chunk-HWD32NP7.js.map +1 -0
- package/dist/{chunk-HGCBZUH5.js → chunk-IAYAE6MG.js} +9 -10
- package/dist/chunk-IAYAE6MG.js.map +1 -0
- package/dist/{chunk-RTE64SJA.js → chunk-IXBCRT3F.js} +2 -2
- package/dist/chunk-IXBCRT3F.js.map +1 -0
- package/dist/{chunk-WFEFICFM.js → chunk-KWYO3M5Q.js} +5 -5
- package/dist/chunk-KWYO3M5Q.js.map +1 -0
- package/dist/{chunk-HEOHU5EZ.js → chunk-MCTSHLAF.js} +22 -11
- package/dist/chunk-MCTSHLAF.js.map +1 -0
- package/dist/chunk-MH66WDFV.js +251 -0
- package/dist/chunk-MH66WDFV.js.map +1 -0
- package/dist/{chunk-2LSGX6R4.js → chunk-MTPM7BX5.js} +83 -25
- package/dist/chunk-MTPM7BX5.js.map +1 -0
- package/dist/chunk-NQJ47R4N.js +1092 -0
- package/dist/chunk-NQJ47R4N.js.map +1 -0
- package/dist/chunk-NRC7XYCI.js +211 -0
- package/dist/chunk-NRC7XYCI.js.map +1 -0
- package/dist/{chunk-FJFEKPXF.js → chunk-O6ZTD7ZI.js} +14 -3
- package/dist/chunk-O6ZTD7ZI.js.map +1 -0
- package/dist/chunk-OBXAY23Y.js +56 -0
- package/dist/chunk-OBXAY23Y.js.map +1 -0
- package/dist/{chunk-XY3XDVMI.js → chunk-QR2EBWL2.js} +3 -3
- package/dist/{chunk-66UDJBF6.js → chunk-REJGRCVQ.js} +2 -2
- package/dist/{chunk-CBLPAMZO.js → chunk-TMED5DQ2.js} +68 -42
- package/dist/chunk-TMED5DQ2.js.map +1 -0
- package/dist/{chunk-Q3J43SF3.js → chunk-U7HFKR74.js} +2 -2
- package/dist/chunk-U7HFKR74.js.map +1 -0
- package/dist/{chunk-3EHUF54X.js → chunk-UEMRJI2K.js} +17 -4
- package/dist/chunk-UEMRJI2K.js.map +1 -0
- package/dist/{chunk-Z2CWURZ6.js → chunk-UNN7523L.js} +2 -2
- package/dist/chunk-V2ZIH7HV.js +29 -0
- package/dist/chunk-V2ZIH7HV.js.map +1 -0
- package/dist/{chunk-ZEI3ZUDU.js → chunk-VVYNZZUX.js} +7 -15
- package/dist/chunk-VVYNZZUX.js.map +1 -0
- package/dist/chunk-WXS4S3MA.js +220 -0
- package/dist/chunk-WXS4S3MA.js.map +1 -0
- package/dist/{chunk-A46TPNBJ.js → chunk-XENOESJZ.js} +7 -16
- package/dist/chunk-XENOESJZ.js.map +1 -0
- package/dist/chunk-YDBSSAJ6.js +4207 -0
- package/dist/chunk-YDBSSAJ6.js.map +1 -0
- package/dist/chunk-ZDREFYD2.js +696 -0
- package/dist/chunk-ZDREFYD2.js.map +1 -0
- package/dist/chunk-ZW2PELOH.js +197 -0
- package/dist/chunk-ZW2PELOH.js.map +1 -0
- package/dist/cli/defaults/agent-mappings.yaml +0 -1
- package/dist/commands/build/marketplace.js +15 -13
- package/dist/commands/build/marketplace.js.map +1 -1
- package/dist/commands/build/plugins.js +13 -229
- package/dist/commands/build/plugins.js.map +1 -1
- package/dist/commands/build/stack.js +11 -18
- package/dist/commands/build/stack.js.map +1 -1
- package/dist/commands/compile.js +36 -58
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/config/get.js +8 -8
- package/dist/commands/config/get.js.map +1 -1
- package/dist/commands/config/index.js +7 -7
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/config/path.js +6 -6
- package/dist/commands/config/path.js.map +1 -1
- package/dist/commands/config/set-project.js +8 -8
- package/dist/commands/config/set-project.js.map +1 -1
- package/dist/commands/config/show.js +7 -7
- package/dist/commands/config/unset-project.js +8 -8
- package/dist/commands/config/unset-project.js.map +1 -1
- package/dist/commands/diff.js +10 -16
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.js +18 -51
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +87 -57
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +17 -49
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/import/skill.js +26 -26
- package/dist/commands/import/skill.js.map +1 -1
- package/dist/commands/info.js +15 -17
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +45 -722
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +8 -87
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/new/agent.js +8 -12
- package/dist/commands/new/agent.js.map +1 -1
- package/dist/commands/new/skill.js +6 -6
- package/dist/commands/new/skill.js.map +1 -1
- package/dist/commands/outdated.js +15 -19
- package/dist/commands/outdated.js.map +1 -1
- package/dist/commands/search.js +21 -34
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +15 -14
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +13 -24
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.js +44 -487
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/version/bump.js +11 -11
- package/dist/commands/version/bump.js.map +1 -1
- package/dist/commands/version/index.js +9 -10
- package/dist/commands/version/index.js.map +1 -1
- package/dist/commands/version/set.js +10 -8
- package/dist/commands/version/set.js.map +1 -1
- package/dist/commands/version/show.js +9 -10
- package/dist/commands/version/show.js.map +1 -1
- package/dist/components/common/confirm.js +2 -2
- package/dist/components/common/confirm.test.js +203 -0
- package/dist/components/common/confirm.test.js.map +1 -0
- package/dist/components/common/message.js +1 -1
- package/dist/components/common/spinner.js +1 -1
- package/dist/components/common/spinner.js.map +1 -1
- package/dist/components/skill-search/skill-search.js +3 -3
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/category-grid.test.js +132 -78
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/menu-item.js +2 -2
- package/dist/components/wizard/search-modal.js +9 -0
- package/dist/components/wizard/search-modal.js.map +1 -0
- package/dist/components/wizard/search-modal.test.js +216 -0
- package/dist/components/wizard/search-modal.test.js.map +1 -0
- package/dist/components/wizard/section-progress.js +2 -2
- package/dist/components/wizard/section-progress.test.js +4 -4
- package/dist/components/wizard/section-progress.test.js.map +1 -1
- package/dist/components/wizard/source-grid.js +10 -0
- package/dist/components/wizard/source-grid.js.map +1 -0
- package/dist/components/wizard/source-grid.test.js +500 -0
- package/dist/components/wizard/source-grid.test.js.map +1 -0
- package/dist/components/wizard/step-approach.js +7 -6
- package/dist/components/wizard/step-approach.test.js +115 -0
- package/dist/components/wizard/step-approach.test.js.map +1 -0
- package/dist/components/wizard/step-build.js +9 -4
- package/dist/components/wizard/step-build.test.js +103 -122
- package/dist/components/wizard/step-build.test.js.map +1 -1
- package/dist/components/wizard/step-confirm.js +3 -2
- package/dist/components/wizard/step-confirm.test.js +364 -0
- package/dist/components/wizard/step-confirm.test.js.map +1 -0
- package/dist/components/wizard/step-refine.js +2 -2
- package/dist/components/wizard/step-refine.test.js +19 -13
- package/dist/components/wizard/step-refine.test.js.map +1 -1
- package/dist/components/wizard/step-settings.js +14 -0
- package/dist/components/wizard/step-settings.js.map +1 -0
- package/dist/components/wizard/step-settings.test.js +240 -0
- package/dist/components/wizard/step-settings.test.js.map +1 -0
- package/dist/components/wizard/step-sources.js +17 -0
- package/dist/components/wizard/step-sources.js.map +1 -0
- package/dist/components/wizard/step-sources.test.js +290 -0
- package/dist/components/wizard/step-sources.test.js.map +1 -0
- package/dist/components/wizard/step-stack.js +7 -6
- package/dist/components/wizard/step-stack.test.js +344 -0
- package/dist/components/wizard/step-stack.test.js.map +1 -0
- package/dist/components/wizard/view-title.js +2 -2
- package/dist/components/wizard/wizard-layout.js +6 -5
- package/dist/components/wizard/wizard-tabs.js +2 -2
- package/dist/components/wizard/wizard-tabs.test.js +292 -0
- package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
- package/dist/components/wizard/wizard.js +22 -14
- package/dist/config/skills-matrix.yaml +38 -37
- package/dist/config/stacks.yaml +8 -14
- package/dist/hooks/init.js +5 -5
- package/dist/hooks/init.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{magic-string.es-RGXYGAW3.js → magic-string.es-PAH2SOTR.js} +2 -2
- package/dist/source-manager-DSYZEVGZ.js +16 -0
- package/dist/source-manager-DSYZEVGZ.js.map +1 -0
- package/dist/src/agents/developer/api-developer/agent.yaml +1 -1
- package/dist/src/agents/developer/cli-developer/agent.yaml +1 -1
- package/dist/src/agents/developer/web-architecture/agent.yaml +1 -1
- package/dist/src/agents/developer/web-developer/agent.yaml +1 -1
- package/dist/src/agents/meta/agent-summoner/agent.yaml +1 -1
- package/dist/src/agents/meta/documentor/agent.yaml +1 -1
- package/dist/src/agents/meta/skill-summoner/agent.yaml +1 -1
- package/dist/src/agents/migration/cli-migrator/agent.yaml +1 -1
- package/dist/src/agents/pattern/pattern-scout/agent.yaml +1 -1
- package/dist/src/agents/pattern/web-pattern-critique/agent.yaml +1 -1
- package/dist/src/agents/planning/web-pm/agent.yaml +1 -1
- package/dist/src/agents/researcher/api-researcher/agent.yaml +1 -1
- package/dist/src/agents/researcher/web-researcher/agent.yaml +1 -1
- package/dist/src/agents/reviewer/api-reviewer/agent.yaml +1 -1
- package/dist/src/agents/reviewer/cli-reviewer/agent.yaml +1 -1
- package/dist/src/agents/reviewer/web-reviewer/agent.yaml +1 -1
- package/dist/src/agents/tester/cli-tester/agent.yaml +1 -1
- package/dist/src/agents/tester/web-tester/agent.yaml +1 -1
- package/dist/stores/wizard-store.js +4 -3
- package/dist/stores/wizard-store.test.js +51 -82
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +5 -3
- package/src/agents/developer/api-developer/agent.yaml +1 -1
- package/src/agents/developer/cli-developer/agent.yaml +1 -1
- package/src/agents/developer/web-architecture/agent.yaml +1 -1
- package/src/agents/developer/web-developer/agent.yaml +1 -1
- package/src/agents/meta/agent-summoner/agent.yaml +1 -1
- package/src/agents/meta/documentor/agent.yaml +1 -1
- package/src/agents/meta/skill-summoner/agent.yaml +1 -1
- package/src/agents/migration/cli-migrator/agent.yaml +1 -1
- package/src/agents/pattern/pattern-scout/agent.yaml +1 -1
- package/src/agents/pattern/web-pattern-critique/agent.yaml +1 -1
- package/src/agents/planning/web-pm/agent.yaml +1 -1
- package/src/agents/researcher/api-researcher/agent.yaml +1 -1
- package/src/agents/researcher/web-researcher/agent.yaml +1 -1
- package/src/agents/reviewer/api-reviewer/agent.yaml +1 -1
- package/src/agents/reviewer/cli-reviewer/agent.yaml +1 -1
- package/src/agents/reviewer/web-reviewer/agent.yaml +1 -1
- package/src/agents/tester/cli-tester/agent.yaml +1 -1
- package/src/agents/tester/web-tester/agent.yaml +1 -1
- package/dist/chunk-2LSGX6R4.js.map +0 -1
- package/dist/chunk-2OKUEELH.js +0 -32
- package/dist/chunk-2OKUEELH.js.map +0 -1
- package/dist/chunk-374JNMR6.js +0 -212
- package/dist/chunk-374JNMR6.js.map +0 -1
- package/dist/chunk-3EHUF54X.js.map +0 -1
- package/dist/chunk-3XR4PALU.js +0 -529
- package/dist/chunk-3XR4PALU.js.map +0 -1
- package/dist/chunk-5K2ZLUO5.js +0 -57
- package/dist/chunk-5K2ZLUO5.js.map +0 -1
- package/dist/chunk-5KXUDHAB.js.map +0 -1
- package/dist/chunk-6Q3Y7KVB.js.map +0 -1
- package/dist/chunk-7SLV7CMF.js +0 -615
- package/dist/chunk-7SLV7CMF.js.map +0 -1
- package/dist/chunk-A46TPNBJ.js.map +0 -1
- package/dist/chunk-AL74GBW4.js +0 -69
- package/dist/chunk-AL74GBW4.js.map +0 -1
- package/dist/chunk-BQX23RBV.js +0 -191
- package/dist/chunk-BQX23RBV.js.map +0 -1
- package/dist/chunk-CA4LH4LI.js +0 -132
- package/dist/chunk-CA4LH4LI.js.map +0 -1
- package/dist/chunk-CBLPAMZO.js.map +0 -1
- package/dist/chunk-CKPQHGXR.js +0 -417
- package/dist/chunk-CKPQHGXR.js.map +0 -1
- package/dist/chunk-CXOFOJCN.js +0 -80
- package/dist/chunk-CXOFOJCN.js.map +0 -1
- package/dist/chunk-EHGD7HIE.js +0 -104
- package/dist/chunk-EHGD7HIE.js.map +0 -1
- package/dist/chunk-EHS3TWWP.js +0 -95
- package/dist/chunk-EHS3TWWP.js.map +0 -1
- package/dist/chunk-FJFEKPXF.js.map +0 -1
- package/dist/chunk-HEOHU5EZ.js.map +0 -1
- package/dist/chunk-HGCBZUH5.js.map +0 -1
- package/dist/chunk-HPGFY5ZN.js +0 -114
- package/dist/chunk-HPGFY5ZN.js.map +0 -1
- package/dist/chunk-INJ2EFRW.js +0 -127
- package/dist/chunk-INJ2EFRW.js.map +0 -1
- package/dist/chunk-IOBFMF6X.js +0 -61
- package/dist/chunk-IOBFMF6X.js.map +0 -1
- package/dist/chunk-KH3HA7J7.js +0 -116
- package/dist/chunk-KH3HA7J7.js.map +0 -1
- package/dist/chunk-N6JNE326.js +0 -261
- package/dist/chunk-N6JNE326.js.map +0 -1
- package/dist/chunk-NAGU7TVZ.js +0 -36
- package/dist/chunk-NAGU7TVZ.js.map +0 -1
- package/dist/chunk-OQYYMQJR.js.map +0 -1
- package/dist/chunk-PLZOUVDD.js +0 -419
- package/dist/chunk-PLZOUVDD.js.map +0 -1
- package/dist/chunk-Q3J43SF3.js.map +0 -1
- package/dist/chunk-RTE64SJA.js.map +0 -1
- package/dist/chunk-T25OEQFI.js +0 -26
- package/dist/chunk-T25OEQFI.js.map +0 -1
- package/dist/chunk-UMORK7OK.js.map +0 -1
- package/dist/chunk-VFHWU7JU.js +0 -287
- package/dist/chunk-VFHWU7JU.js.map +0 -1
- package/dist/chunk-VS4GVTZE.js +0 -91
- package/dist/chunk-VS4GVTZE.js.map +0 -1
- package/dist/chunk-WFEFICFM.js.map +0 -1
- package/dist/chunk-WG6KIAPK.js +0 -54
- package/dist/chunk-WG6KIAPK.js.map +0 -1
- package/dist/chunk-ZEI3ZUDU.js.map +0 -1
- package/dist/chunk-ZNIDWLL5.js.map +0 -1
- package/dist/chunk-ZSVMS677.js.map +0 -1
- /package/dist/{chunk-XY3XDVMI.js.map → chunk-QR2EBWL2.js.map} +0 -0
- /package/dist/{chunk-66UDJBF6.js.map → chunk-REJGRCVQ.js.map} +0 -0
- /package/dist/{chunk-Z2CWURZ6.js.map → chunk-UNN7523L.js.map} +0 -0
- /package/dist/{magic-string.es-RGXYGAW3.js.map → magic-string.es-PAH2SOTR.js.map} +0 -0
|
@@ -0,0 +1,696 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
init_esm_shims
|
|
4
|
+
} from "./chunk-AWKZ5BDL.js";
|
|
5
|
+
|
|
6
|
+
// src/cli/utils/logger.ts
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
var verboseMode = false;
|
|
9
|
+
function setVerbose(enabled) {
|
|
10
|
+
verboseMode = enabled;
|
|
11
|
+
}
|
|
12
|
+
function verbose(msg) {
|
|
13
|
+
if (verboseMode) {
|
|
14
|
+
console.log(` ${msg}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function warn(msg) {
|
|
18
|
+
console.warn(` Warning: ${msg}`);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/cli/utils/fs.ts
|
|
22
|
+
init_esm_shims();
|
|
23
|
+
import fs from "fs-extra";
|
|
24
|
+
import fg from "fast-glob";
|
|
25
|
+
import path from "path";
|
|
26
|
+
async function readFile(filePath) {
|
|
27
|
+
return fs.readFile(filePath, "utf-8");
|
|
28
|
+
}
|
|
29
|
+
async function readFileOptional(filePath, fallback = "") {
|
|
30
|
+
try {
|
|
31
|
+
return await fs.readFile(filePath, "utf-8");
|
|
32
|
+
} catch {
|
|
33
|
+
return fallback;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function fileExists(filePath) {
|
|
37
|
+
return fs.pathExists(filePath);
|
|
38
|
+
}
|
|
39
|
+
async function directoryExists(dirPath) {
|
|
40
|
+
try {
|
|
41
|
+
const stat = await fs.stat(dirPath);
|
|
42
|
+
return stat.isDirectory();
|
|
43
|
+
} catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async function listDirectories(dirPath) {
|
|
48
|
+
try {
|
|
49
|
+
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
50
|
+
return entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
51
|
+
} catch {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function glob(pattern, cwd) {
|
|
56
|
+
return fg(pattern, { cwd, onlyFiles: true });
|
|
57
|
+
}
|
|
58
|
+
async function writeFile(filePath, content) {
|
|
59
|
+
await fs.ensureDir(path.dirname(filePath));
|
|
60
|
+
await fs.writeFile(filePath, content, "utf-8");
|
|
61
|
+
}
|
|
62
|
+
async function ensureDir(dirPath) {
|
|
63
|
+
await fs.ensureDir(dirPath);
|
|
64
|
+
}
|
|
65
|
+
async function remove(filePath) {
|
|
66
|
+
await fs.remove(filePath);
|
|
67
|
+
}
|
|
68
|
+
async function copy(src, dest) {
|
|
69
|
+
await fs.copy(src, dest);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// src/cli/lib/schemas.ts
|
|
73
|
+
init_esm_shims();
|
|
74
|
+
import { z } from "zod";
|
|
75
|
+
var domainSchema = z.enum([
|
|
76
|
+
"web",
|
|
77
|
+
"web-extras",
|
|
78
|
+
"api",
|
|
79
|
+
"cli",
|
|
80
|
+
"mobile",
|
|
81
|
+
"shared"
|
|
82
|
+
]);
|
|
83
|
+
var skillSourceTypeSchema = z.enum([
|
|
84
|
+
"public",
|
|
85
|
+
"private",
|
|
86
|
+
"local"
|
|
87
|
+
]);
|
|
88
|
+
var skillSourceSchema = z.object({
|
|
89
|
+
name: z.string(),
|
|
90
|
+
type: skillSourceTypeSchema,
|
|
91
|
+
url: z.string().optional(),
|
|
92
|
+
version: z.string().optional(),
|
|
93
|
+
installed: z.boolean(),
|
|
94
|
+
installMode: z.enum(["plugin", "local"]).optional()
|
|
95
|
+
}).passthrough();
|
|
96
|
+
var boundSkillSchema = z.object({
|
|
97
|
+
id: z.string(),
|
|
98
|
+
sourceUrl: z.string(),
|
|
99
|
+
sourceName: z.string(),
|
|
100
|
+
boundTo: z.string(),
|
|
101
|
+
description: z.string().optional()
|
|
102
|
+
});
|
|
103
|
+
var subcategorySchema = z.enum([
|
|
104
|
+
// Web
|
|
105
|
+
"framework",
|
|
106
|
+
"meta-framework",
|
|
107
|
+
"styling",
|
|
108
|
+
"client-state",
|
|
109
|
+
"server-state",
|
|
110
|
+
"forms",
|
|
111
|
+
"testing",
|
|
112
|
+
"ui-components",
|
|
113
|
+
"mocking",
|
|
114
|
+
"error-handling",
|
|
115
|
+
"i18n",
|
|
116
|
+
"file-upload",
|
|
117
|
+
"files",
|
|
118
|
+
"utilities",
|
|
119
|
+
"realtime",
|
|
120
|
+
"animation",
|
|
121
|
+
"pwa",
|
|
122
|
+
"accessibility",
|
|
123
|
+
"web-performance",
|
|
124
|
+
// API
|
|
125
|
+
"api",
|
|
126
|
+
"database",
|
|
127
|
+
"auth",
|
|
128
|
+
"observability",
|
|
129
|
+
"analytics",
|
|
130
|
+
"email",
|
|
131
|
+
"performance",
|
|
132
|
+
// Mobile
|
|
133
|
+
"mobile-framework",
|
|
134
|
+
// Shared / Infrastructure
|
|
135
|
+
"monorepo",
|
|
136
|
+
"tooling",
|
|
137
|
+
"security",
|
|
138
|
+
"methodology",
|
|
139
|
+
"research",
|
|
140
|
+
"reviewing",
|
|
141
|
+
"ci-cd",
|
|
142
|
+
// CLI
|
|
143
|
+
"cli-framework",
|
|
144
|
+
"cli-prompts",
|
|
145
|
+
"cli-testing"
|
|
146
|
+
]);
|
|
147
|
+
var agentNameSchema = z.enum([
|
|
148
|
+
// Developers
|
|
149
|
+
"web-developer",
|
|
150
|
+
"api-developer",
|
|
151
|
+
"cli-developer",
|
|
152
|
+
"web-architecture",
|
|
153
|
+
// Meta
|
|
154
|
+
"agent-summoner",
|
|
155
|
+
"documentor",
|
|
156
|
+
"skill-summoner",
|
|
157
|
+
// Migration
|
|
158
|
+
"cli-migrator",
|
|
159
|
+
// Pattern
|
|
160
|
+
"pattern-scout",
|
|
161
|
+
"web-pattern-critique",
|
|
162
|
+
// Planning
|
|
163
|
+
"web-pm",
|
|
164
|
+
// Researchers
|
|
165
|
+
"api-researcher",
|
|
166
|
+
"web-researcher",
|
|
167
|
+
// Reviewers
|
|
168
|
+
"api-reviewer",
|
|
169
|
+
"cli-reviewer",
|
|
170
|
+
"web-reviewer",
|
|
171
|
+
// Testers
|
|
172
|
+
"cli-tester",
|
|
173
|
+
"web-tester"
|
|
174
|
+
]);
|
|
175
|
+
var modelNameSchema = z.enum([
|
|
176
|
+
"sonnet",
|
|
177
|
+
"opus",
|
|
178
|
+
"haiku",
|
|
179
|
+
"inherit"
|
|
180
|
+
]);
|
|
181
|
+
var permissionModeSchema = z.enum([
|
|
182
|
+
"default",
|
|
183
|
+
"acceptEdits",
|
|
184
|
+
"dontAsk",
|
|
185
|
+
"bypassPermissions",
|
|
186
|
+
"plan",
|
|
187
|
+
"delegate"
|
|
188
|
+
]);
|
|
189
|
+
var skillDisplayNameSchema = z.enum([
|
|
190
|
+
// Frameworks
|
|
191
|
+
"react",
|
|
192
|
+
"vue",
|
|
193
|
+
"angular",
|
|
194
|
+
"solidjs",
|
|
195
|
+
// Meta-frameworks
|
|
196
|
+
"nextjs-app-router",
|
|
197
|
+
"nextjs-server-actions",
|
|
198
|
+
"remix",
|
|
199
|
+
"nuxt",
|
|
200
|
+
// Styling
|
|
201
|
+
"scss-modules",
|
|
202
|
+
"cva",
|
|
203
|
+
"tailwind",
|
|
204
|
+
// Client State
|
|
205
|
+
"zustand",
|
|
206
|
+
"redux-toolkit",
|
|
207
|
+
"pinia",
|
|
208
|
+
"ngrx-signalstore",
|
|
209
|
+
"jotai",
|
|
210
|
+
"mobx",
|
|
211
|
+
// Server State / Data Fetching
|
|
212
|
+
"react-query",
|
|
213
|
+
"swr",
|
|
214
|
+
"graphql-apollo",
|
|
215
|
+
"graphql-urql",
|
|
216
|
+
"trpc",
|
|
217
|
+
// Forms & Validation
|
|
218
|
+
"react-hook-form",
|
|
219
|
+
"vee-validate",
|
|
220
|
+
"zod-validation",
|
|
221
|
+
// Testing
|
|
222
|
+
"vitest",
|
|
223
|
+
"playwright-e2e",
|
|
224
|
+
"cypress-e2e",
|
|
225
|
+
"react-testing-library",
|
|
226
|
+
"vue-test-utils",
|
|
227
|
+
"msw",
|
|
228
|
+
// UI Components
|
|
229
|
+
"shadcn-ui",
|
|
230
|
+
"tanstack-table",
|
|
231
|
+
"radix-ui",
|
|
232
|
+
// Backend - API Framework
|
|
233
|
+
"hono",
|
|
234
|
+
"express",
|
|
235
|
+
"fastify",
|
|
236
|
+
// Backend - Database
|
|
237
|
+
"drizzle",
|
|
238
|
+
"prisma",
|
|
239
|
+
// Backend - Auth
|
|
240
|
+
"better-auth",
|
|
241
|
+
// Backend - Observability
|
|
242
|
+
"axiom-pino-sentry",
|
|
243
|
+
// Backend - Analytics
|
|
244
|
+
"posthog",
|
|
245
|
+
"posthog-flags",
|
|
246
|
+
// Backend - Email
|
|
247
|
+
"resend",
|
|
248
|
+
// Backend - CI/CD
|
|
249
|
+
"github-actions",
|
|
250
|
+
// Mobile
|
|
251
|
+
"react-native",
|
|
252
|
+
"expo",
|
|
253
|
+
// Setup / Infrastructure
|
|
254
|
+
"turborepo",
|
|
255
|
+
"tooling",
|
|
256
|
+
"posthog-setup",
|
|
257
|
+
"env",
|
|
258
|
+
"observability-setup",
|
|
259
|
+
"email-setup",
|
|
260
|
+
// Animation / PWA / Realtime / etc.
|
|
261
|
+
"framer-motion",
|
|
262
|
+
"css-animations",
|
|
263
|
+
"view-transitions",
|
|
264
|
+
"storybook",
|
|
265
|
+
"error-boundaries",
|
|
266
|
+
"accessibility",
|
|
267
|
+
"websockets",
|
|
268
|
+
"sse",
|
|
269
|
+
"socket-io",
|
|
270
|
+
"service-workers",
|
|
271
|
+
"file-upload",
|
|
272
|
+
"image-handling",
|
|
273
|
+
"date-fns",
|
|
274
|
+
// Backend-specific category skills
|
|
275
|
+
"api-testing",
|
|
276
|
+
"api-performance",
|
|
277
|
+
"web-performance",
|
|
278
|
+
// Security
|
|
279
|
+
"security",
|
|
280
|
+
// CLI
|
|
281
|
+
"commander",
|
|
282
|
+
"cli-commander",
|
|
283
|
+
"oclif",
|
|
284
|
+
// Reviewing / Meta
|
|
285
|
+
"reviewing",
|
|
286
|
+
"cli-reviewing",
|
|
287
|
+
"research-methodology",
|
|
288
|
+
// Methodology
|
|
289
|
+
"investigation-requirements",
|
|
290
|
+
"anti-over-engineering",
|
|
291
|
+
"success-criteria",
|
|
292
|
+
"write-verification",
|
|
293
|
+
"improvement-protocol",
|
|
294
|
+
"context-management"
|
|
295
|
+
]);
|
|
296
|
+
var SKILL_ID_PATTERN = /^(web|api|cli|mobile|infra|meta|security)-.+-.+$/;
|
|
297
|
+
var skillIdSchema = z.string().regex(
|
|
298
|
+
SKILL_ID_PATTERN,
|
|
299
|
+
"Must be a valid skill ID (e.g., 'web-framework-react')"
|
|
300
|
+
);
|
|
301
|
+
var categoryPathSchema = z.string().refine(
|
|
302
|
+
(val) => {
|
|
303
|
+
if (val === "local") return true;
|
|
304
|
+
if (/^(web|api|cli|mobile|infra|meta|security)\/.+$/.test(val)) return true;
|
|
305
|
+
if (/^(web|api|cli|mobile|infra|meta|security)-.+$/.test(val)) return true;
|
|
306
|
+
return subcategorySchema.safeParse(val).success;
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
message: "Must be a valid category path (e.g., 'web/framework', 'web-framework', 'testing', or 'local')"
|
|
310
|
+
}
|
|
311
|
+
);
|
|
312
|
+
var agentHookActionSchema = z.object({
|
|
313
|
+
type: z.enum(["command", "script", "prompt"]),
|
|
314
|
+
command: z.string().optional(),
|
|
315
|
+
script: z.string().optional(),
|
|
316
|
+
prompt: z.string().optional()
|
|
317
|
+
});
|
|
318
|
+
var agentHookDefinitionSchema = z.object({
|
|
319
|
+
matcher: z.string().optional(),
|
|
320
|
+
hooks: z.array(agentHookActionSchema).optional()
|
|
321
|
+
});
|
|
322
|
+
var hooksRecordSchema = z.record(z.string(), z.array(agentHookDefinitionSchema));
|
|
323
|
+
var skillAssignmentSchema = z.object({
|
|
324
|
+
id: skillIdSchema,
|
|
325
|
+
preloaded: z.boolean().optional(),
|
|
326
|
+
local: z.boolean().optional(),
|
|
327
|
+
path: z.string().optional()
|
|
328
|
+
});
|
|
329
|
+
var skillFrontmatterSchema = z.object({
|
|
330
|
+
name: skillIdSchema,
|
|
331
|
+
description: z.string(),
|
|
332
|
+
model: modelNameSchema.optional()
|
|
333
|
+
});
|
|
334
|
+
var skillFrontmatterLoaderSchema = z.object({
|
|
335
|
+
name: z.string(),
|
|
336
|
+
description: z.string(),
|
|
337
|
+
model: modelNameSchema.optional()
|
|
338
|
+
});
|
|
339
|
+
var skillMetadataConfigSchema = z.object({
|
|
340
|
+
category: categoryPathSchema.optional(),
|
|
341
|
+
category_exclusive: z.boolean().optional(),
|
|
342
|
+
author: z.string().optional(),
|
|
343
|
+
version: z.string().optional(),
|
|
344
|
+
tags: z.array(z.string()).optional(),
|
|
345
|
+
requires: z.array(skillIdSchema).optional(),
|
|
346
|
+
compatible_with: z.array(skillIdSchema).optional(),
|
|
347
|
+
conflicts_with: z.array(skillIdSchema).optional()
|
|
348
|
+
});
|
|
349
|
+
var pluginAuthorSchema = z.object({
|
|
350
|
+
name: z.string(),
|
|
351
|
+
email: z.string().optional()
|
|
352
|
+
});
|
|
353
|
+
var pluginManifestSchema = z.object({
|
|
354
|
+
name: z.string(),
|
|
355
|
+
version: z.string().optional(),
|
|
356
|
+
description: z.string().optional(),
|
|
357
|
+
author: pluginAuthorSchema.optional(),
|
|
358
|
+
keywords: z.array(z.string()).optional(),
|
|
359
|
+
commands: z.union([z.string(), z.array(z.string())]).optional(),
|
|
360
|
+
agents: z.union([z.string(), z.array(z.string())]).optional(),
|
|
361
|
+
skills: z.union([z.string(), z.array(z.string())]).optional(),
|
|
362
|
+
hooks: z.union([z.string(), hooksRecordSchema]).optional()
|
|
363
|
+
});
|
|
364
|
+
var agentYamlConfigSchema = z.object({
|
|
365
|
+
id: agentNameSchema,
|
|
366
|
+
title: z.string(),
|
|
367
|
+
description: z.string(),
|
|
368
|
+
model: modelNameSchema.optional(),
|
|
369
|
+
tools: z.array(z.string()),
|
|
370
|
+
disallowed_tools: z.array(z.string()).optional(),
|
|
371
|
+
permission_mode: permissionModeSchema.optional(),
|
|
372
|
+
hooks: hooksRecordSchema.optional(),
|
|
373
|
+
output_format: z.string().optional()
|
|
374
|
+
});
|
|
375
|
+
var projectConfigSchema = z.object({
|
|
376
|
+
version: z.literal("1").optional(),
|
|
377
|
+
name: z.string(),
|
|
378
|
+
description: z.string().optional(),
|
|
379
|
+
agents: z.array(z.string()),
|
|
380
|
+
skills: z.array(skillIdSchema),
|
|
381
|
+
author: z.string().optional(),
|
|
382
|
+
installMode: z.enum(["local", "plugin"]).optional(),
|
|
383
|
+
stack: z.record(z.string(), z.record(subcategorySchema, skillIdSchema)).optional(),
|
|
384
|
+
source: z.string().optional(),
|
|
385
|
+
marketplace: z.string().optional(),
|
|
386
|
+
agents_source: z.string().optional()
|
|
387
|
+
});
|
|
388
|
+
var projectConfigLoaderSchema = z.object({
|
|
389
|
+
version: z.literal("1").optional(),
|
|
390
|
+
name: z.string().optional(),
|
|
391
|
+
description: z.string().optional(),
|
|
392
|
+
agents: z.array(z.string()).optional(),
|
|
393
|
+
skills: z.array(skillIdSchema).optional(),
|
|
394
|
+
author: z.string().optional(),
|
|
395
|
+
installMode: z.enum(["local", "plugin"]).optional(),
|
|
396
|
+
stack: z.record(z.string(), z.record(z.string(), skillIdSchema)).optional(),
|
|
397
|
+
source: z.string().optional(),
|
|
398
|
+
marketplace: z.string().optional(),
|
|
399
|
+
agents_source: z.string().optional()
|
|
400
|
+
}).passthrough();
|
|
401
|
+
var validationResultSchema = z.object({
|
|
402
|
+
valid: z.boolean(),
|
|
403
|
+
errors: z.array(z.string()),
|
|
404
|
+
warnings: z.array(z.string())
|
|
405
|
+
});
|
|
406
|
+
var categoryDefinitionSchema = z.object({
|
|
407
|
+
id: subcategorySchema,
|
|
408
|
+
displayName: z.string(),
|
|
409
|
+
description: z.string(),
|
|
410
|
+
domain: domainSchema.optional(),
|
|
411
|
+
parent_domain: domainSchema.optional(),
|
|
412
|
+
exclusive: z.boolean(),
|
|
413
|
+
required: z.boolean(),
|
|
414
|
+
order: z.number(),
|
|
415
|
+
icon: z.string().optional()
|
|
416
|
+
});
|
|
417
|
+
var skillRefInYaml = z.string();
|
|
418
|
+
var conflictRuleSchema = z.object({
|
|
419
|
+
skills: z.array(skillRefInYaml),
|
|
420
|
+
reason: z.string()
|
|
421
|
+
});
|
|
422
|
+
var discourageRuleSchema = z.object({
|
|
423
|
+
skills: z.array(skillRefInYaml),
|
|
424
|
+
reason: z.string()
|
|
425
|
+
});
|
|
426
|
+
var recommendRuleSchema = z.object({
|
|
427
|
+
when: skillRefInYaml,
|
|
428
|
+
suggest: z.array(skillRefInYaml),
|
|
429
|
+
reason: z.string()
|
|
430
|
+
});
|
|
431
|
+
var requireRuleSchema = z.object({
|
|
432
|
+
skill: skillRefInYaml,
|
|
433
|
+
needs: z.array(skillRefInYaml),
|
|
434
|
+
needs_any: z.boolean().optional(),
|
|
435
|
+
reason: z.string()
|
|
436
|
+
});
|
|
437
|
+
var alternativeGroupSchema = z.object({
|
|
438
|
+
purpose: z.string(),
|
|
439
|
+
skills: z.array(skillRefInYaml)
|
|
440
|
+
});
|
|
441
|
+
var relationshipDefinitionsSchema = z.object({
|
|
442
|
+
conflicts: z.array(conflictRuleSchema),
|
|
443
|
+
discourages: z.array(discourageRuleSchema),
|
|
444
|
+
recommends: z.array(recommendRuleSchema),
|
|
445
|
+
requires: z.array(requireRuleSchema),
|
|
446
|
+
alternatives: z.array(alternativeGroupSchema)
|
|
447
|
+
});
|
|
448
|
+
var skillsMatrixConfigSchema = z.object({
|
|
449
|
+
version: z.string(),
|
|
450
|
+
categories: z.record(subcategorySchema, categoryDefinitionSchema),
|
|
451
|
+
relationships: relationshipDefinitionsSchema,
|
|
452
|
+
skill_aliases: z.record(skillDisplayNameSchema, skillIdSchema)
|
|
453
|
+
});
|
|
454
|
+
var localRawMetadataSchema = z.object({
|
|
455
|
+
cli_name: z.string().optional(),
|
|
456
|
+
cli_description: z.string().optional(),
|
|
457
|
+
category: categoryPathSchema.optional(),
|
|
458
|
+
category_exclusive: z.boolean().optional(),
|
|
459
|
+
usage_guidance: z.string().optional(),
|
|
460
|
+
tags: z.array(z.string()).optional(),
|
|
461
|
+
compatible_with: z.array(skillIdSchema).optional(),
|
|
462
|
+
conflicts_with: z.array(skillIdSchema).optional(),
|
|
463
|
+
requires: z.array(skillIdSchema).optional(),
|
|
464
|
+
requires_setup: z.array(skillIdSchema).optional(),
|
|
465
|
+
provides_setup_for: z.array(skillIdSchema).optional()
|
|
466
|
+
}).passthrough();
|
|
467
|
+
var localSkillMetadataSchema = z.object({
|
|
468
|
+
forked_from: z.object({
|
|
469
|
+
skill_id: skillIdSchema,
|
|
470
|
+
content_hash: z.string(),
|
|
471
|
+
date: z.string()
|
|
472
|
+
}).optional()
|
|
473
|
+
}).passthrough();
|
|
474
|
+
var stackAgentConfigSchema = z.record(
|
|
475
|
+
z.string(),
|
|
476
|
+
z.string()
|
|
477
|
+
);
|
|
478
|
+
var stackSchema = z.object({
|
|
479
|
+
id: z.string(),
|
|
480
|
+
name: z.string(),
|
|
481
|
+
description: z.string(),
|
|
482
|
+
agents: z.record(z.string(), stackAgentConfigSchema),
|
|
483
|
+
philosophy: z.string().optional()
|
|
484
|
+
});
|
|
485
|
+
var stacksConfigSchema = z.object({
|
|
486
|
+
stacks: z.array(stackSchema)
|
|
487
|
+
});
|
|
488
|
+
var marketplaceRemoteSourceSchema = z.object({
|
|
489
|
+
source: z.enum(["github", "url"]),
|
|
490
|
+
repo: z.string().optional(),
|
|
491
|
+
url: z.string().optional(),
|
|
492
|
+
ref: z.string().optional()
|
|
493
|
+
});
|
|
494
|
+
var marketplacePluginSchema = z.object({
|
|
495
|
+
name: z.string(),
|
|
496
|
+
source: z.union([z.string(), marketplaceRemoteSourceSchema]),
|
|
497
|
+
description: z.string().optional(),
|
|
498
|
+
version: z.string().optional(),
|
|
499
|
+
author: pluginAuthorSchema.optional(),
|
|
500
|
+
category: z.string().optional(),
|
|
501
|
+
keywords: z.array(z.string()).optional()
|
|
502
|
+
});
|
|
503
|
+
var marketplaceOwnerSchema = z.object({
|
|
504
|
+
name: z.string(),
|
|
505
|
+
email: z.string().optional()
|
|
506
|
+
});
|
|
507
|
+
var marketplaceMetadataSchema = z.object({
|
|
508
|
+
pluginRoot: z.string().optional()
|
|
509
|
+
});
|
|
510
|
+
var marketplaceSchema = z.object({
|
|
511
|
+
$schema: z.string().optional(),
|
|
512
|
+
name: z.string(),
|
|
513
|
+
version: z.string(),
|
|
514
|
+
description: z.string().optional(),
|
|
515
|
+
owner: marketplaceOwnerSchema,
|
|
516
|
+
metadata: marketplaceMetadataSchema.optional(),
|
|
517
|
+
plugins: z.array(marketplacePluginSchema)
|
|
518
|
+
});
|
|
519
|
+
var versionedMetadataSchema = z.object({
|
|
520
|
+
version: z.number(),
|
|
521
|
+
content_hash: z.string().optional(),
|
|
522
|
+
updated: z.string().optional()
|
|
523
|
+
}).passthrough();
|
|
524
|
+
var defaultMappingsSchema = z.object({
|
|
525
|
+
skill_to_agents: z.record(z.string(), z.array(z.string())),
|
|
526
|
+
preloaded_skills: z.record(z.string(), z.array(z.string())),
|
|
527
|
+
subcategory_aliases: z.record(z.string(), z.string())
|
|
528
|
+
});
|
|
529
|
+
var permissionConfigSchema = z.object({
|
|
530
|
+
allow: z.array(z.string()).optional(),
|
|
531
|
+
deny: z.array(z.string()).optional()
|
|
532
|
+
});
|
|
533
|
+
var settingsFileSchema = z.object({
|
|
534
|
+
permissions: permissionConfigSchema.optional()
|
|
535
|
+
}).passthrough();
|
|
536
|
+
var importedSkillMetadataSchema = z.object({
|
|
537
|
+
forked_from: z.object({
|
|
538
|
+
source: z.string(),
|
|
539
|
+
skill_name: z.string(),
|
|
540
|
+
content_hash: z.string(),
|
|
541
|
+
date: z.string()
|
|
542
|
+
}).optional()
|
|
543
|
+
}).passthrough();
|
|
544
|
+
var projectSourceConfigSchema = z.object({
|
|
545
|
+
source: z.string().optional(),
|
|
546
|
+
author: z.string().optional(),
|
|
547
|
+
marketplace: z.string().optional(),
|
|
548
|
+
agents_source: z.string().optional(),
|
|
549
|
+
sources: z.array(
|
|
550
|
+
z.object({
|
|
551
|
+
name: z.string(),
|
|
552
|
+
url: z.string(),
|
|
553
|
+
description: z.string().optional(),
|
|
554
|
+
ref: z.string().optional()
|
|
555
|
+
})
|
|
556
|
+
).optional(),
|
|
557
|
+
boundSkills: z.array(boundSkillSchema).optional()
|
|
558
|
+
}).passthrough();
|
|
559
|
+
var KEBAB_CASE_PATTERN = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;
|
|
560
|
+
var agentYamlGenerationSchema = z.object({
|
|
561
|
+
$schema: z.string().optional(),
|
|
562
|
+
id: z.string().min(1),
|
|
563
|
+
title: z.string().min(1),
|
|
564
|
+
description: z.string().min(1),
|
|
565
|
+
model: modelNameSchema.optional(),
|
|
566
|
+
tools: z.array(z.string()),
|
|
567
|
+
disallowed_tools: z.array(z.string()).optional(),
|
|
568
|
+
permission_mode: permissionModeSchema.optional(),
|
|
569
|
+
hooks: hooksRecordSchema.optional(),
|
|
570
|
+
output_format: z.string().optional()
|
|
571
|
+
}).strict();
|
|
572
|
+
var agentFrontmatterValidationSchema = z.object({
|
|
573
|
+
name: z.string().regex(KEBAB_CASE_PATTERN).min(1),
|
|
574
|
+
description: z.string().min(1),
|
|
575
|
+
tools: z.string().optional(),
|
|
576
|
+
disallowedTools: z.string().optional(),
|
|
577
|
+
model: modelNameSchema.optional(),
|
|
578
|
+
permissionMode: permissionModeSchema.optional(),
|
|
579
|
+
skills: z.array(z.string().min(1)).optional(),
|
|
580
|
+
hooks: hooksRecordSchema.optional()
|
|
581
|
+
}).strict();
|
|
582
|
+
var skillFrontmatterValidationSchema = z.object({
|
|
583
|
+
name: z.string().min(1),
|
|
584
|
+
description: z.string().min(1),
|
|
585
|
+
"disable-model-invocation": z.boolean().optional(),
|
|
586
|
+
"user-invocable": z.boolean().optional(),
|
|
587
|
+
"allowed-tools": z.string().optional(),
|
|
588
|
+
model: modelNameSchema.optional(),
|
|
589
|
+
context: z.enum(["fork"]).optional(),
|
|
590
|
+
agent: z.string().optional(),
|
|
591
|
+
"argument-hint": z.string().optional()
|
|
592
|
+
}).strict();
|
|
593
|
+
var metadataValidationSchema = z.object({
|
|
594
|
+
category: z.string(),
|
|
595
|
+
category_exclusive: z.boolean().optional(),
|
|
596
|
+
author: z.string().regex(/^@[a-z][a-z0-9-]*$/),
|
|
597
|
+
version: z.number().int().min(1).optional(),
|
|
598
|
+
cli_name: z.string().min(1).max(30),
|
|
599
|
+
cli_description: z.string().min(1).max(60),
|
|
600
|
+
usage_guidance: z.string().min(10),
|
|
601
|
+
requires: z.array(z.string().min(1)).optional(),
|
|
602
|
+
compatible_with: z.array(z.string().min(1)).optional(),
|
|
603
|
+
conflicts_with: z.array(z.string().min(1)).optional(),
|
|
604
|
+
tags: z.array(z.string().regex(/^[a-z][a-z0-9-]*$/)).optional(),
|
|
605
|
+
requires_setup: z.array(z.string().min(1)).optional(),
|
|
606
|
+
provides_setup_for: z.array(z.string().min(1)).optional(),
|
|
607
|
+
content_hash: z.string().regex(/^[a-f0-9]{7}$/).optional(),
|
|
608
|
+
updated: z.string().optional(),
|
|
609
|
+
forked_from: z.object({
|
|
610
|
+
skill_id: z.string(),
|
|
611
|
+
version: z.number().int().min(1).optional(),
|
|
612
|
+
content_hash: z.string(),
|
|
613
|
+
source: z.string().optional(),
|
|
614
|
+
date: z.string()
|
|
615
|
+
}).optional()
|
|
616
|
+
}).strict();
|
|
617
|
+
var stackSkillAssignmentSchema = z.object({
|
|
618
|
+
id: z.string().min(1),
|
|
619
|
+
preloaded: z.boolean().optional()
|
|
620
|
+
}).strict();
|
|
621
|
+
var stackConfigValidationSchema = z.object({
|
|
622
|
+
id: z.string().regex(KEBAB_CASE_PATTERN).optional(),
|
|
623
|
+
name: z.string().min(1),
|
|
624
|
+
version: z.string(),
|
|
625
|
+
author: z.string().min(1),
|
|
626
|
+
description: z.string().optional(),
|
|
627
|
+
created: z.string().optional(),
|
|
628
|
+
updated: z.string().optional(),
|
|
629
|
+
framework: z.string().optional(),
|
|
630
|
+
skills: z.array(stackSkillAssignmentSchema).min(1),
|
|
631
|
+
agents: z.array(z.string().regex(KEBAB_CASE_PATTERN)).min(1),
|
|
632
|
+
agent_skills: z.record(z.string(), z.record(z.string(), z.array(stackSkillAssignmentSchema))).optional(),
|
|
633
|
+
philosophy: z.string().optional(),
|
|
634
|
+
principles: z.array(z.string().min(1)).optional(),
|
|
635
|
+
tags: z.array(z.string().regex(KEBAB_CASE_PATTERN)).optional(),
|
|
636
|
+
overrides: z.record(
|
|
637
|
+
z.string(),
|
|
638
|
+
z.object({
|
|
639
|
+
alternatives: z.array(z.string().min(1)).optional(),
|
|
640
|
+
locked: z.boolean().optional()
|
|
641
|
+
}).strict()
|
|
642
|
+
).optional(),
|
|
643
|
+
metrics: z.object({
|
|
644
|
+
upvotes: z.number().int().min(0).optional(),
|
|
645
|
+
downloads: z.number().int().min(0).optional()
|
|
646
|
+
}).strict().optional(),
|
|
647
|
+
hooks: z.record(
|
|
648
|
+
z.string(),
|
|
649
|
+
z.array(
|
|
650
|
+
z.object({
|
|
651
|
+
matcher: z.string().optional(),
|
|
652
|
+
hooks: z.array(agentHookActionSchema).min(1)
|
|
653
|
+
})
|
|
654
|
+
)
|
|
655
|
+
).optional()
|
|
656
|
+
}).strict();
|
|
657
|
+
|
|
658
|
+
export {
|
|
659
|
+
setVerbose,
|
|
660
|
+
verbose,
|
|
661
|
+
warn,
|
|
662
|
+
readFile,
|
|
663
|
+
readFileOptional,
|
|
664
|
+
fileExists,
|
|
665
|
+
directoryExists,
|
|
666
|
+
listDirectories,
|
|
667
|
+
glob,
|
|
668
|
+
writeFile,
|
|
669
|
+
ensureDir,
|
|
670
|
+
remove,
|
|
671
|
+
copy,
|
|
672
|
+
skillDisplayNameSchema,
|
|
673
|
+
skillIdSchema,
|
|
674
|
+
categoryPathSchema,
|
|
675
|
+
hooksRecordSchema,
|
|
676
|
+
skillFrontmatterLoaderSchema,
|
|
677
|
+
skillMetadataConfigSchema,
|
|
678
|
+
pluginAuthorSchema,
|
|
679
|
+
pluginManifestSchema,
|
|
680
|
+
agentYamlConfigSchema,
|
|
681
|
+
projectConfigLoaderSchema,
|
|
682
|
+
skillsMatrixConfigSchema,
|
|
683
|
+
localRawMetadataSchema,
|
|
684
|
+
localSkillMetadataSchema,
|
|
685
|
+
stacksConfigSchema,
|
|
686
|
+
marketplaceSchema,
|
|
687
|
+
settingsFileSchema,
|
|
688
|
+
importedSkillMetadataSchema,
|
|
689
|
+
projectSourceConfigSchema,
|
|
690
|
+
agentYamlGenerationSchema,
|
|
691
|
+
agentFrontmatterValidationSchema,
|
|
692
|
+
skillFrontmatterValidationSchema,
|
|
693
|
+
metadataValidationSchema,
|
|
694
|
+
stackConfigValidationSchema
|
|
695
|
+
};
|
|
696
|
+
//# sourceMappingURL=chunk-ZDREFYD2.js.map
|