@agents-inc/cli 0.32.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 +462 -0
- package/LICENSE +21 -0
- package/README.md +179 -0
- package/config/skills-matrix.yaml +926 -0
- package/config/stacks.yaml +2186 -0
- package/dist/chunk-3ZOIOVKT.js +365 -0
- package/dist/chunk-3ZOIOVKT.js.map +1 -0
- package/dist/chunk-4RAY5AOI.js +78 -0
- package/dist/chunk-4RAY5AOI.js.map +1 -0
- package/dist/chunk-5PIKNCZX.js +234 -0
- package/dist/chunk-5PIKNCZX.js.map +1 -0
- package/dist/chunk-66UDJBF6.js +96 -0
- package/dist/chunk-66UDJBF6.js.map +1 -0
- package/dist/chunk-7SOPVGDV.js +24 -0
- package/dist/chunk-7SOPVGDV.js.map +1 -0
- package/dist/chunk-A27LOC4Z.js +95 -0
- package/dist/chunk-A27LOC4Z.js.map +1 -0
- package/dist/chunk-B2UBHA66.js +301 -0
- package/dist/chunk-B2UBHA66.js.map +1 -0
- package/dist/chunk-BZN2Z5P7.js +882 -0
- package/dist/chunk-BZN2Z5P7.js.map +1 -0
- package/dist/chunk-BZQBJP34.js +186 -0
- package/dist/chunk-BZQBJP34.js.map +1 -0
- package/dist/chunk-DC5AK3LW.js +105 -0
- package/dist/chunk-DC5AK3LW.js.map +1 -0
- package/dist/chunk-DHET7RCE.js +50 -0
- package/dist/chunk-DHET7RCE.js.map +1 -0
- package/dist/chunk-EMJ2ZKS7.js +346 -0
- package/dist/chunk-EMJ2ZKS7.js.map +1 -0
- package/dist/chunk-FJQRVFMB.js +48 -0
- package/dist/chunk-FJQRVFMB.js.map +1 -0
- package/dist/chunk-FZGYSLJL.js +85 -0
- package/dist/chunk-FZGYSLJL.js.map +1 -0
- package/dist/chunk-H566H3MQ.js +87 -0
- package/dist/chunk-H566H3MQ.js.map +1 -0
- package/dist/chunk-IYG2LAIM.js +90 -0
- package/dist/chunk-IYG2LAIM.js.map +1 -0
- package/dist/chunk-IZZ4IIEG.js +29 -0
- package/dist/chunk-IZZ4IIEG.js.map +1 -0
- package/dist/chunk-JMVWYAHT.js +63 -0
- package/dist/chunk-JMVWYAHT.js.map +1 -0
- package/dist/chunk-LAPCUV4D.js +191 -0
- package/dist/chunk-LAPCUV4D.js.map +1 -0
- package/dist/chunk-LGUI3PMO.js +109 -0
- package/dist/chunk-LGUI3PMO.js.map +1 -0
- package/dist/chunk-MM7NK5N2.js +4542 -0
- package/dist/chunk-MM7NK5N2.js.map +1 -0
- package/dist/chunk-N6S7ZRIL.js +31 -0
- package/dist/chunk-N6S7ZRIL.js.map +1 -0
- package/dist/chunk-O4D67NN7.js +24 -0
- package/dist/chunk-O4D67NN7.js.map +1 -0
- package/dist/chunk-ODUOU55D.js +56 -0
- package/dist/chunk-ODUOU55D.js.map +1 -0
- package/dist/chunk-OGJIZ6QH.js +497 -0
- package/dist/chunk-OGJIZ6QH.js.map +1 -0
- package/dist/chunk-OMV7TLWD.js +340 -0
- package/dist/chunk-OMV7TLWD.js.map +1 -0
- package/dist/chunk-PBEHPQLK.js +146 -0
- package/dist/chunk-PBEHPQLK.js.map +1 -0
- package/dist/chunk-QPTOIZAT.js +32 -0
- package/dist/chunk-QPTOIZAT.js.map +1 -0
- package/dist/chunk-R3XFQKPG.js +111 -0
- package/dist/chunk-R3XFQKPG.js.map +1 -0
- package/dist/chunk-R74PZWQS.js +69 -0
- package/dist/chunk-R74PZWQS.js.map +1 -0
- package/dist/chunk-SO22IQPY.js +45 -0
- package/dist/chunk-SO22IQPY.js.map +1 -0
- package/dist/chunk-T4EXUIBY.js +19 -0
- package/dist/chunk-T4EXUIBY.js.map +1 -0
- package/dist/chunk-U3IGFMCY.js +31 -0
- package/dist/chunk-U3IGFMCY.js.map +1 -0
- package/dist/chunk-UICL22RT.js +318 -0
- package/dist/chunk-UICL22RT.js.map +1 -0
- package/dist/chunk-UX2H2K2G.js +183 -0
- package/dist/chunk-UX2H2K2G.js.map +1 -0
- package/dist/chunk-W2ZSCZ2U.js +93 -0
- package/dist/chunk-W2ZSCZ2U.js.map +1 -0
- package/dist/chunk-WEUVWHMA.js +189 -0
- package/dist/chunk-WEUVWHMA.js.map +1 -0
- package/dist/chunk-XY3XDVMI.js +15599 -0
- package/dist/chunk-XY3XDVMI.js.map +1 -0
- package/dist/chunk-YND42IXK.js +233 -0
- package/dist/chunk-YND42IXK.js.map +1 -0
- package/dist/chunk-YZTWZVGX.js +41 -0
- package/dist/chunk-YZTWZVGX.js.map +1 -0
- package/dist/chunk-Z4TWOP3H.js +81 -0
- package/dist/chunk-Z4TWOP3H.js.map +1 -0
- package/dist/cli/defaults/agent-mappings.yaml +271 -0
- package/dist/commands/build/marketplace.js +252 -0
- package/dist/commands/build/marketplace.js.map +1 -0
- package/dist/commands/build/plugins.js +114 -0
- package/dist/commands/build/plugins.js.map +1 -0
- package/dist/commands/build/stack.js +153 -0
- package/dist/commands/build/stack.js.map +1 -0
- package/dist/commands/compile.js +354 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/config/get.js +61 -0
- package/dist/commands/config/get.js.map +1 -0
- package/dist/commands/config/index.js +23 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/config/path.js +34 -0
- package/dist/commands/config/path.js.map +1 -0
- package/dist/commands/config/set-project.js +61 -0
- package/dist/commands/config/set-project.js.map +1 -0
- package/dist/commands/config/show.js +14 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/config/unset-project.js +57 -0
- package/dist/commands/config/unset-project.js.map +1 -0
- package/dist/commands/diff.js +742 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/doctor.js +370 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/edit.js +301 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/eject.js +262 -0
- package/dist/commands/eject.js.map +1 -0
- package/dist/commands/import/skill.js +361 -0
- package/dist/commands/import/skill.js.map +1 -0
- package/dist/commands/info.js +217 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.js +443 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.js +49 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/new/agent.js +224 -0
- package/dist/commands/new/agent.js.map +1 -0
- package/dist/commands/new/skill.js +199 -0
- package/dist/commands/new/skill.js.map +1 -0
- package/dist/commands/outdated.js +176 -0
- package/dist/commands/outdated.js.map +1 -0
- package/dist/commands/search.js +288 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/uninstall.js +302 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.js +304 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/validate.js +389 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/version/bump.js +79 -0
- package/dist/commands/version/bump.js.map +1 -0
- package/dist/commands/version/index.js +54 -0
- package/dist/commands/version/index.js.map +1 -0
- package/dist/commands/version/set.js +86 -0
- package/dist/commands/version/set.js.map +1 -0
- package/dist/commands/version/show.js +54 -0
- package/dist/commands/version/show.js.map +1 -0
- package/dist/components/common/confirm.js +9 -0
- package/dist/components/common/confirm.js.map +1 -0
- 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 +20 -0
- package/dist/components/common/message.js.map +1 -0
- package/dist/components/common/spinner.js +14 -0
- package/dist/components/common/spinner.js.map +1 -0
- package/dist/components/skill-search/skill-search.js +12 -0
- package/dist/components/skill-search/skill-search.js.map +1 -0
- package/dist/components/wizard/category-grid.js +11 -0
- package/dist/components/wizard/category-grid.js.map +1 -0
- package/dist/components/wizard/category-grid.test.js +997 -0
- package/dist/components/wizard/category-grid.test.js.map +1 -0
- package/dist/components/wizard/domain-selection.js +14 -0
- package/dist/components/wizard/domain-selection.js.map +1 -0
- package/dist/components/wizard/help-modal.js +10 -0
- package/dist/components/wizard/help-modal.js.map +1 -0
- package/dist/components/wizard/menu-item.js +10 -0
- package/dist/components/wizard/menu-item.js.map +1 -0
- package/dist/components/wizard/search-modal.js +11 -0
- package/dist/components/wizard/search-modal.js.map +1 -0
- package/dist/components/wizard/search-modal.test.js +218 -0
- package/dist/components/wizard/search-modal.test.js.map +1 -0
- package/dist/components/wizard/section-progress.js +10 -0
- package/dist/components/wizard/section-progress.js.map +1 -0
- package/dist/components/wizard/section-progress.test.js +192 -0
- package/dist/components/wizard/section-progress.test.js.map +1 -0
- package/dist/components/wizard/source-grid.js +14 -0
- package/dist/components/wizard/source-grid.js.map +1 -0
- package/dist/components/wizard/source-grid.test.js +504 -0
- package/dist/components/wizard/source-grid.test.js.map +1 -0
- package/dist/components/wizard/stack-selection.js +17 -0
- package/dist/components/wizard/stack-selection.js.map +1 -0
- package/dist/components/wizard/step-build.js +17 -0
- package/dist/components/wizard/step-build.js.map +1 -0
- package/dist/components/wizard/step-build.test.js +600 -0
- package/dist/components/wizard/step-build.test.js.map +1 -0
- package/dist/components/wizard/step-confirm.js +12 -0
- package/dist/components/wizard/step-confirm.js.map +1 -0
- package/dist/components/wizard/step-confirm.test.js +366 -0
- package/dist/components/wizard/step-confirm.test.js.map +1 -0
- package/dist/components/wizard/step-refine.js +10 -0
- package/dist/components/wizard/step-refine.js.map +1 -0
- package/dist/components/wizard/step-refine.test.js +237 -0
- package/dist/components/wizard/step-refine.test.js.map +1 -0
- package/dist/components/wizard/step-settings.js +17 -0
- package/dist/components/wizard/step-settings.js.map +1 -0
- package/dist/components/wizard/step-settings.test.js +243 -0
- package/dist/components/wizard/step-settings.test.js.map +1 -0
- package/dist/components/wizard/step-sources.js +20 -0
- package/dist/components/wizard/step-sources.js.map +1 -0
- package/dist/components/wizard/step-sources.test.js +294 -0
- package/dist/components/wizard/step-sources.test.js.map +1 -0
- package/dist/components/wizard/step-stack.js +19 -0
- package/dist/components/wizard/step-stack.js.map +1 -0
- package/dist/components/wizard/step-stack.test.js +357 -0
- package/dist/components/wizard/step-stack.test.js.map +1 -0
- package/dist/components/wizard/view-title.js +10 -0
- package/dist/components/wizard/view-title.js.map +1 -0
- package/dist/components/wizard/wizard-layout.js +16 -0
- package/dist/components/wizard/wizard-layout.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.js +14 -0
- package/dist/components/wizard/wizard-tabs.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.test.js +294 -0
- package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
- package/dist/components/wizard/wizard.js +35 -0
- package/dist/components/wizard/wizard.js.map +1 -0
- package/dist/config/skills-matrix.yaml +926 -0
- package/dist/config/stacks.yaml +2186 -0
- package/dist/hooks/init.js +40 -0
- package/dist/hooks/init.js.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/magic-string.es-RGXYGAW3.js +1316 -0
- package/dist/magic-string.es-RGXYGAW3.js.map +1 -0
- package/dist/source-manager-SBPPLOQQ.js +16 -0
- package/dist/source-manager-SBPPLOQQ.js.map +1 -0
- package/dist/src/agents/_templates/agent.liquid +140 -0
- package/dist/src/agents/developer/api-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/api-developer/critical-reminders.md +23 -0
- package/dist/src/agents/developer/api-developer/critical-requirements.md +11 -0
- package/dist/src/agents/developer/api-developer/examples.md +72 -0
- package/dist/src/agents/developer/api-developer/intro.md +22 -0
- package/dist/src/agents/developer/api-developer/output-format.md +359 -0
- package/dist/src/agents/developer/api-developer/workflow.md +471 -0
- package/dist/src/agents/developer/cli-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/cli-developer/critical-reminders.md +28 -0
- package/dist/src/agents/developer/cli-developer/critical-requirements.md +15 -0
- package/dist/src/agents/developer/cli-developer/examples.md +68 -0
- package/dist/src/agents/developer/cli-developer/intro.md +23 -0
- package/dist/src/agents/developer/cli-developer/output-format.md +216 -0
- package/dist/src/agents/developer/cli-developer/workflow.md +509 -0
- package/dist/src/agents/developer/web-architecture/agent.yaml +12 -0
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +27 -0
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +35 -0
- package/dist/src/agents/developer/web-architecture/examples.md +187 -0
- package/dist/src/agents/developer/web-architecture/intro.md +35 -0
- package/dist/src/agents/developer/web-architecture/output-format.md +261 -0
- package/dist/src/agents/developer/web-architecture/workflow.md +599 -0
- package/dist/src/agents/developer/web-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/web-developer/critical-reminders.md +17 -0
- package/dist/src/agents/developer/web-developer/critical-requirements.md +15 -0
- package/dist/src/agents/developer/web-developer/examples.md +109 -0
- package/dist/src/agents/developer/web-developer/intro.md +5 -0
- package/dist/src/agents/developer/web-developer/output-format.md +213 -0
- package/dist/src/agents/developer/web-developer/workflow.md +459 -0
- package/dist/src/agents/meta/agent-summoner/agent.yaml +12 -0
- package/dist/src/agents/meta/agent-summoner/critical-reminders.md +31 -0
- package/dist/src/agents/meta/agent-summoner/critical-requirements.md +27 -0
- package/dist/src/agents/meta/agent-summoner/examples.md +176 -0
- package/dist/src/agents/meta/agent-summoner/intro.md +9 -0
- package/dist/src/agents/meta/agent-summoner/output-format.md +115 -0
- package/dist/src/agents/meta/agent-summoner/workflow.md +1540 -0
- package/dist/src/agents/meta/documentor/agent.yaml +11 -0
- package/dist/src/agents/meta/documentor/critical-reminders.md +23 -0
- package/dist/src/agents/meta/documentor/critical-requirements.md +13 -0
- package/dist/src/agents/meta/documentor/examples.md +147 -0
- package/dist/src/agents/meta/documentor/intro.md +11 -0
- package/dist/src/agents/meta/documentor/output-format.md +237 -0
- package/dist/src/agents/meta/documentor/workflow.md +1271 -0
- package/dist/src/agents/meta/skill-summoner/agent.yaml +13 -0
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +73 -0
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/dist/src/agents/meta/skill-summoner/examples.md +116 -0
- package/dist/src/agents/meta/skill-summoner/intro.md +5 -0
- package/dist/src/agents/meta/skill-summoner/output-format.md +279 -0
- package/dist/src/agents/meta/skill-summoner/workflow.md +1485 -0
- package/dist/src/agents/migration/cli-migrator/agent.yaml +12 -0
- package/dist/src/agents/migration/cli-migrator/anti-patterns.md +158 -0
- package/dist/src/agents/migration/cli-migrator/conversion-mappings.md +63 -0
- package/dist/src/agents/migration/cli-migrator/critical-reminders.md +17 -0
- package/dist/src/agents/migration/cli-migrator/critical-requirements.md +13 -0
- package/dist/src/agents/migration/cli-migrator/intro.md +15 -0
- package/dist/src/agents/migration/cli-migrator/output-format.md +164 -0
- package/dist/src/agents/migration/cli-migrator/workflow.md +230 -0
- package/dist/src/agents/pattern/pattern-scout/agent.yaml +10 -0
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +58 -0
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +17 -0
- package/dist/src/agents/pattern/pattern-scout/examples.md +93 -0
- package/dist/src/agents/pattern/pattern-scout/intro.md +3 -0
- package/dist/src/agents/pattern/pattern-scout/output-format.md +196 -0
- package/dist/src/agents/pattern/pattern-scout/workflow.md +1901 -0
- package/dist/src/agents/pattern/web-pattern-critique/agent.yaml +12 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +13 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +11 -0
- package/dist/src/agents/pattern/web-pattern-critique/examples.md +56 -0
- package/dist/src/agents/pattern/web-pattern-critique/intro.md +5 -0
- package/dist/src/agents/pattern/web-pattern-critique/output-format.md +257 -0
- package/dist/src/agents/pattern/web-pattern-critique/workflow.md +674 -0
- package/dist/src/agents/planning/web-pm/agent.yaml +12 -0
- package/dist/src/agents/planning/web-pm/critical-reminders.md +21 -0
- package/dist/src/agents/planning/web-pm/critical-requirements.md +17 -0
- package/dist/src/agents/planning/web-pm/examples.md +85 -0
- package/dist/src/agents/planning/web-pm/intro.md +3 -0
- package/dist/src/agents/planning/web-pm/output-format.md +228 -0
- package/dist/src/agents/planning/web-pm/workflow.md +393 -0
- package/dist/src/agents/researcher/api-researcher/agent.yaml +10 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/dist/src/agents/researcher/api-researcher/critical-requirements.md +13 -0
- package/dist/src/agents/researcher/api-researcher/examples.md +116 -0
- package/dist/src/agents/researcher/api-researcher/intro.md +32 -0
- package/dist/src/agents/researcher/api-researcher/output-format.md +135 -0
- package/dist/src/agents/researcher/api-researcher/workflow.md +261 -0
- package/dist/src/agents/researcher/web-researcher/agent.yaml +10 -0
- package/dist/src/agents/researcher/web-researcher/critical-reminders.md +23 -0
- package/dist/src/agents/researcher/web-researcher/critical-requirements.md +11 -0
- package/dist/src/agents/researcher/web-researcher/examples.md +126 -0
- package/dist/src/agents/researcher/web-researcher/intro.md +31 -0
- package/dist/src/agents/researcher/web-researcher/output-format.md +112 -0
- package/dist/src/agents/researcher/web-researcher/workflow.md +322 -0
- package/dist/src/agents/reviewer/api-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +16 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +13 -0
- package/dist/src/agents/reviewer/api-reviewer/examples.md +54 -0
- package/dist/src/agents/reviewer/api-reviewer/intro.md +22 -0
- package/dist/src/agents/reviewer/api-reviewer/output-format.md +288 -0
- package/dist/src/agents/reviewer/api-reviewer/workflow.md +369 -0
- package/dist/src/agents/reviewer/cli-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +17 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +13 -0
- package/dist/src/agents/reviewer/cli-reviewer/examples.md +83 -0
- package/dist/src/agents/reviewer/cli-reviewer/intro.md +21 -0
- package/dist/src/agents/reviewer/cli-reviewer/output-format.md +330 -0
- package/dist/src/agents/reviewer/cli-reviewer/workflow.md +294 -0
- package/dist/src/agents/reviewer/web-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +17 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +11 -0
- package/dist/src/agents/reviewer/web-reviewer/examples.md +79 -0
- package/dist/src/agents/reviewer/web-reviewer/intro.md +20 -0
- package/dist/src/agents/reviewer/web-reviewer/output-format.md +253 -0
- package/dist/src/agents/reviewer/web-reviewer/workflow.md +228 -0
- package/dist/src/agents/tester/cli-tester/agent.yaml +12 -0
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +19 -0
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +17 -0
- package/dist/src/agents/tester/cli-tester/examples.md +80 -0
- package/dist/src/agents/tester/cli-tester/intro.md +19 -0
- package/dist/src/agents/tester/cli-tester/output-format.md +232 -0
- package/dist/src/agents/tester/cli-tester/workflow.md +304 -0
- package/dist/src/agents/tester/web-tester/agent.yaml +12 -0
- package/dist/src/agents/tester/web-tester/critical-reminders.md +15 -0
- package/dist/src/agents/tester/web-tester/critical-requirements.md +11 -0
- package/dist/src/agents/tester/web-tester/examples.md +68 -0
- package/dist/src/agents/tester/web-tester/intro.md +18 -0
- package/dist/src/agents/tester/web-tester/output-format.md +252 -0
- package/dist/src/agents/tester/web-tester/workflow.md +507 -0
- package/dist/stores/wizard-store.js +13 -0
- package/dist/stores/wizard-store.js.map +1 -0
- package/dist/stores/wizard-store.test.js +689 -0
- package/dist/stores/wizard-store.test.js.map +1 -0
- package/package.json +134 -0
- package/src/agents/_templates/agent.liquid +140 -0
- package/src/agents/developer/api-developer/agent.yaml +12 -0
- package/src/agents/developer/api-developer/critical-reminders.md +23 -0
- package/src/agents/developer/api-developer/critical-requirements.md +11 -0
- package/src/agents/developer/api-developer/examples.md +72 -0
- package/src/agents/developer/api-developer/intro.md +22 -0
- package/src/agents/developer/api-developer/output-format.md +359 -0
- package/src/agents/developer/api-developer/workflow.md +471 -0
- package/src/agents/developer/cli-developer/agent.yaml +12 -0
- package/src/agents/developer/cli-developer/critical-reminders.md +28 -0
- package/src/agents/developer/cli-developer/critical-requirements.md +15 -0
- package/src/agents/developer/cli-developer/examples.md +68 -0
- package/src/agents/developer/cli-developer/intro.md +23 -0
- package/src/agents/developer/cli-developer/output-format.md +216 -0
- package/src/agents/developer/cli-developer/workflow.md +509 -0
- package/src/agents/developer/web-architecture/agent.yaml +12 -0
- package/src/agents/developer/web-architecture/critical-reminders.md +27 -0
- package/src/agents/developer/web-architecture/critical-requirements.md +35 -0
- package/src/agents/developer/web-architecture/examples.md +187 -0
- package/src/agents/developer/web-architecture/intro.md +35 -0
- package/src/agents/developer/web-architecture/output-format.md +261 -0
- package/src/agents/developer/web-architecture/workflow.md +599 -0
- package/src/agents/developer/web-developer/agent.yaml +12 -0
- package/src/agents/developer/web-developer/critical-reminders.md +17 -0
- package/src/agents/developer/web-developer/critical-requirements.md +15 -0
- package/src/agents/developer/web-developer/examples.md +109 -0
- package/src/agents/developer/web-developer/intro.md +5 -0
- package/src/agents/developer/web-developer/output-format.md +213 -0
- package/src/agents/developer/web-developer/workflow.md +459 -0
- package/src/agents/meta/agent-summoner/agent.yaml +12 -0
- package/src/agents/meta/agent-summoner/critical-reminders.md +31 -0
- package/src/agents/meta/agent-summoner/critical-requirements.md +27 -0
- package/src/agents/meta/agent-summoner/examples.md +176 -0
- package/src/agents/meta/agent-summoner/intro.md +9 -0
- package/src/agents/meta/agent-summoner/output-format.md +115 -0
- package/src/agents/meta/agent-summoner/workflow.md +1540 -0
- package/src/agents/meta/documentor/agent.yaml +11 -0
- package/src/agents/meta/documentor/critical-reminders.md +23 -0
- package/src/agents/meta/documentor/critical-requirements.md +13 -0
- package/src/agents/meta/documentor/examples.md +147 -0
- package/src/agents/meta/documentor/intro.md +11 -0
- package/src/agents/meta/documentor/output-format.md +237 -0
- package/src/agents/meta/documentor/workflow.md +1271 -0
- package/src/agents/meta/skill-summoner/agent.yaml +13 -0
- package/src/agents/meta/skill-summoner/critical-reminders.md +73 -0
- package/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/src/agents/meta/skill-summoner/examples.md +116 -0
- package/src/agents/meta/skill-summoner/intro.md +5 -0
- package/src/agents/meta/skill-summoner/output-format.md +279 -0
- package/src/agents/meta/skill-summoner/workflow.md +1485 -0
- package/src/agents/migration/cli-migrator/agent.yaml +12 -0
- package/src/agents/migration/cli-migrator/anti-patterns.md +158 -0
- package/src/agents/migration/cli-migrator/conversion-mappings.md +63 -0
- package/src/agents/migration/cli-migrator/critical-reminders.md +17 -0
- package/src/agents/migration/cli-migrator/critical-requirements.md +13 -0
- package/src/agents/migration/cli-migrator/intro.md +15 -0
- package/src/agents/migration/cli-migrator/output-format.md +164 -0
- package/src/agents/migration/cli-migrator/workflow.md +230 -0
- package/src/agents/pattern/pattern-scout/agent.yaml +10 -0
- package/src/agents/pattern/pattern-scout/critical-reminders.md +58 -0
- package/src/agents/pattern/pattern-scout/critical-requirements.md +17 -0
- package/src/agents/pattern/pattern-scout/examples.md +93 -0
- package/src/agents/pattern/pattern-scout/intro.md +3 -0
- package/src/agents/pattern/pattern-scout/output-format.md +196 -0
- package/src/agents/pattern/pattern-scout/workflow.md +1901 -0
- package/src/agents/pattern/web-pattern-critique/agent.yaml +12 -0
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +13 -0
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +11 -0
- package/src/agents/pattern/web-pattern-critique/examples.md +56 -0
- package/src/agents/pattern/web-pattern-critique/intro.md +5 -0
- package/src/agents/pattern/web-pattern-critique/output-format.md +257 -0
- package/src/agents/pattern/web-pattern-critique/workflow.md +674 -0
- package/src/agents/planning/web-pm/agent.yaml +12 -0
- package/src/agents/planning/web-pm/critical-reminders.md +21 -0
- package/src/agents/planning/web-pm/critical-requirements.md +17 -0
- package/src/agents/planning/web-pm/examples.md +85 -0
- package/src/agents/planning/web-pm/intro.md +3 -0
- package/src/agents/planning/web-pm/output-format.md +228 -0
- package/src/agents/planning/web-pm/workflow.md +393 -0
- package/src/agents/researcher/api-researcher/agent.yaml +10 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/src/agents/researcher/api-researcher/critical-requirements.md +13 -0
- package/src/agents/researcher/api-researcher/examples.md +116 -0
- package/src/agents/researcher/api-researcher/intro.md +32 -0
- package/src/agents/researcher/api-researcher/output-format.md +135 -0
- package/src/agents/researcher/api-researcher/workflow.md +261 -0
- package/src/agents/researcher/web-researcher/agent.yaml +10 -0
- package/src/agents/researcher/web-researcher/critical-reminders.md +23 -0
- package/src/agents/researcher/web-researcher/critical-requirements.md +11 -0
- package/src/agents/researcher/web-researcher/examples.md +126 -0
- package/src/agents/researcher/web-researcher/intro.md +31 -0
- package/src/agents/researcher/web-researcher/output-format.md +112 -0
- package/src/agents/researcher/web-researcher/workflow.md +322 -0
- package/src/agents/reviewer/api-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +16 -0
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +13 -0
- package/src/agents/reviewer/api-reviewer/examples.md +54 -0
- package/src/agents/reviewer/api-reviewer/intro.md +22 -0
- package/src/agents/reviewer/api-reviewer/output-format.md +288 -0
- package/src/agents/reviewer/api-reviewer/workflow.md +369 -0
- package/src/agents/reviewer/cli-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +17 -0
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +13 -0
- package/src/agents/reviewer/cli-reviewer/examples.md +83 -0
- package/src/agents/reviewer/cli-reviewer/intro.md +21 -0
- package/src/agents/reviewer/cli-reviewer/output-format.md +330 -0
- package/src/agents/reviewer/cli-reviewer/workflow.md +294 -0
- package/src/agents/reviewer/web-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +17 -0
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +11 -0
- package/src/agents/reviewer/web-reviewer/examples.md +79 -0
- package/src/agents/reviewer/web-reviewer/intro.md +20 -0
- package/src/agents/reviewer/web-reviewer/output-format.md +253 -0
- package/src/agents/reviewer/web-reviewer/workflow.md +228 -0
- package/src/agents/tester/cli-tester/agent.yaml +12 -0
- package/src/agents/tester/cli-tester/critical-reminders.md +19 -0
- package/src/agents/tester/cli-tester/critical-requirements.md +17 -0
- package/src/agents/tester/cli-tester/examples.md +80 -0
- package/src/agents/tester/cli-tester/intro.md +19 -0
- package/src/agents/tester/cli-tester/output-format.md +232 -0
- package/src/agents/tester/cli-tester/workflow.md +304 -0
- package/src/agents/tester/web-tester/agent.yaml +12 -0
- package/src/agents/tester/web-tester/critical-reminders.md +15 -0
- package/src/agents/tester/web-tester/critical-requirements.md +11 -0
- package/src/agents/tester/web-tester/examples.md +68 -0
- package/src/agents/tester/web-tester/intro.md +18 -0
- package/src/agents/tester/web-tester/output-format.md +252 -0
- package/src/agents/tester/web-tester/workflow.md +507 -0
- package/src/schemas/agent-frontmatter.schema.json +84 -0
- package/src/schemas/agent.schema.json +93 -0
- package/src/schemas/hooks.schema.json +47 -0
- package/src/schemas/marketplace.schema.json +119 -0
- package/src/schemas/metadata.schema.json +113 -0
- package/src/schemas/plugin.schema.json +130 -0
- package/src/schemas/project-config.schema.json +125 -0
- package/src/schemas/project-source-config.schema.json +81 -0
- package/src/schemas/skill-frontmatter.schema.json +42 -0
- package/src/schemas/skills-matrix.schema.json +467 -0
- package/src/schemas/stack.schema.json +191 -0
- package/src/schemas/stacks.schema.json +111 -0
|
@@ -0,0 +1,882 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
init_esm_shims
|
|
4
|
+
} from "./chunk-DHET7RCE.js";
|
|
5
|
+
|
|
6
|
+
// src/cli/utils/errors.ts
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
function getErrorMessage(error) {
|
|
9
|
+
return error instanceof Error ? error.message : String(error);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// src/cli/utils/logger.ts
|
|
13
|
+
init_esm_shims();
|
|
14
|
+
var verboseMode = false;
|
|
15
|
+
function setVerbose(enabled) {
|
|
16
|
+
verboseMode = enabled;
|
|
17
|
+
}
|
|
18
|
+
function verbose(msg) {
|
|
19
|
+
if (verboseMode) {
|
|
20
|
+
console.log(` ${msg}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function log(msg) {
|
|
24
|
+
console.log(msg);
|
|
25
|
+
}
|
|
26
|
+
function warn(msg) {
|
|
27
|
+
console.warn(` Warning: ${msg}`);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// src/cli/utils/fs.ts
|
|
31
|
+
init_esm_shims();
|
|
32
|
+
import fs from "fs-extra";
|
|
33
|
+
import fg from "fast-glob";
|
|
34
|
+
import path from "path";
|
|
35
|
+
async function readFile(filePath) {
|
|
36
|
+
return fs.readFile(filePath, "utf-8");
|
|
37
|
+
}
|
|
38
|
+
async function readFileSafe(filePath, maxSizeBytes) {
|
|
39
|
+
const stats = await fs.stat(filePath);
|
|
40
|
+
if (stats.size > maxSizeBytes) {
|
|
41
|
+
throw new Error(
|
|
42
|
+
`File too large: '${filePath}' is ${stats.size} bytes (limit: ${maxSizeBytes} bytes)`
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
return fs.readFile(filePath, "utf-8");
|
|
46
|
+
}
|
|
47
|
+
async function readFileOptional(filePath, fallback = "") {
|
|
48
|
+
try {
|
|
49
|
+
return await fs.readFile(filePath, "utf-8");
|
|
50
|
+
} catch {
|
|
51
|
+
return fallback;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function fileExists(filePath) {
|
|
55
|
+
return fs.pathExists(filePath);
|
|
56
|
+
}
|
|
57
|
+
async function directoryExists(dirPath) {
|
|
58
|
+
try {
|
|
59
|
+
const stat = await fs.stat(dirPath);
|
|
60
|
+
return stat.isDirectory();
|
|
61
|
+
} catch {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async function listDirectories(dirPath) {
|
|
66
|
+
try {
|
|
67
|
+
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
68
|
+
return entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
69
|
+
} catch {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async function glob(pattern, cwd) {
|
|
74
|
+
return fg(pattern, { cwd, onlyFiles: true });
|
|
75
|
+
}
|
|
76
|
+
async function writeFile(filePath, content) {
|
|
77
|
+
await fs.ensureDir(path.dirname(filePath));
|
|
78
|
+
await fs.writeFile(filePath, content, "utf-8");
|
|
79
|
+
}
|
|
80
|
+
async function ensureDir(dirPath) {
|
|
81
|
+
await fs.ensureDir(dirPath);
|
|
82
|
+
}
|
|
83
|
+
async function remove(filePath) {
|
|
84
|
+
await fs.remove(filePath);
|
|
85
|
+
}
|
|
86
|
+
async function copy(src, dest) {
|
|
87
|
+
await fs.copy(src, dest);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// src/cli/lib/schemas.ts
|
|
91
|
+
init_esm_shims();
|
|
92
|
+
import { z } from "zod";
|
|
93
|
+
var domainSchema = z.enum([
|
|
94
|
+
"web",
|
|
95
|
+
"web-extras",
|
|
96
|
+
"api",
|
|
97
|
+
"cli",
|
|
98
|
+
"mobile",
|
|
99
|
+
"shared"
|
|
100
|
+
]);
|
|
101
|
+
var skillSourceTypeSchema = z.enum([
|
|
102
|
+
"public",
|
|
103
|
+
"private",
|
|
104
|
+
"local"
|
|
105
|
+
]);
|
|
106
|
+
var boundSkillSchema = z.object({
|
|
107
|
+
id: z.string(),
|
|
108
|
+
sourceUrl: z.string(),
|
|
109
|
+
sourceName: z.string(),
|
|
110
|
+
boundTo: z.string(),
|
|
111
|
+
description: z.string().optional()
|
|
112
|
+
});
|
|
113
|
+
var subcategorySchema = z.enum([
|
|
114
|
+
// Web
|
|
115
|
+
"framework",
|
|
116
|
+
"meta-framework",
|
|
117
|
+
"styling",
|
|
118
|
+
"client-state",
|
|
119
|
+
"server-state",
|
|
120
|
+
"forms",
|
|
121
|
+
"testing",
|
|
122
|
+
"ui-components",
|
|
123
|
+
"mocking",
|
|
124
|
+
"error-handling",
|
|
125
|
+
"i18n",
|
|
126
|
+
"file-upload",
|
|
127
|
+
"files",
|
|
128
|
+
"utilities",
|
|
129
|
+
"realtime",
|
|
130
|
+
"animation",
|
|
131
|
+
"pwa",
|
|
132
|
+
"accessibility",
|
|
133
|
+
"web-performance",
|
|
134
|
+
// API
|
|
135
|
+
"api",
|
|
136
|
+
"database",
|
|
137
|
+
"auth",
|
|
138
|
+
"observability",
|
|
139
|
+
"analytics",
|
|
140
|
+
"email",
|
|
141
|
+
"performance",
|
|
142
|
+
// Mobile
|
|
143
|
+
"mobile-framework",
|
|
144
|
+
// Shared / Infrastructure
|
|
145
|
+
"monorepo",
|
|
146
|
+
"tooling",
|
|
147
|
+
"security",
|
|
148
|
+
"methodology",
|
|
149
|
+
"research",
|
|
150
|
+
"reviewing",
|
|
151
|
+
"ci-cd",
|
|
152
|
+
// CLI
|
|
153
|
+
"cli-framework",
|
|
154
|
+
"cli-prompts",
|
|
155
|
+
"cli-testing"
|
|
156
|
+
]);
|
|
157
|
+
var agentNameSchema = z.enum([
|
|
158
|
+
// Developers
|
|
159
|
+
"web-developer",
|
|
160
|
+
"api-developer",
|
|
161
|
+
"cli-developer",
|
|
162
|
+
"web-architecture",
|
|
163
|
+
// Meta
|
|
164
|
+
"agent-summoner",
|
|
165
|
+
"documentor",
|
|
166
|
+
"skill-summoner",
|
|
167
|
+
// Migration
|
|
168
|
+
"cli-migrator",
|
|
169
|
+
// Pattern
|
|
170
|
+
"pattern-scout",
|
|
171
|
+
"web-pattern-critique",
|
|
172
|
+
// Planning
|
|
173
|
+
"web-pm",
|
|
174
|
+
// Researchers
|
|
175
|
+
"api-researcher",
|
|
176
|
+
"web-researcher",
|
|
177
|
+
// Reviewers
|
|
178
|
+
"api-reviewer",
|
|
179
|
+
"cli-reviewer",
|
|
180
|
+
"web-reviewer",
|
|
181
|
+
// Testers
|
|
182
|
+
"cli-tester",
|
|
183
|
+
"web-tester"
|
|
184
|
+
]);
|
|
185
|
+
var modelNameSchema = z.enum([
|
|
186
|
+
"sonnet",
|
|
187
|
+
"opus",
|
|
188
|
+
"haiku",
|
|
189
|
+
"inherit"
|
|
190
|
+
]);
|
|
191
|
+
var permissionModeSchema = z.enum([
|
|
192
|
+
"default",
|
|
193
|
+
"acceptEdits",
|
|
194
|
+
"dontAsk",
|
|
195
|
+
"bypassPermissions",
|
|
196
|
+
"plan",
|
|
197
|
+
"delegate"
|
|
198
|
+
]);
|
|
199
|
+
var skillDisplayNameSchema = z.enum([
|
|
200
|
+
// Frameworks
|
|
201
|
+
"react",
|
|
202
|
+
"vue",
|
|
203
|
+
"angular",
|
|
204
|
+
"solidjs",
|
|
205
|
+
// Meta-frameworks
|
|
206
|
+
"nextjs-app-router",
|
|
207
|
+
"nextjs-server-actions",
|
|
208
|
+
"remix",
|
|
209
|
+
"nuxt",
|
|
210
|
+
// Styling
|
|
211
|
+
"scss-modules",
|
|
212
|
+
"cva",
|
|
213
|
+
"tailwind",
|
|
214
|
+
// Client State
|
|
215
|
+
"zustand",
|
|
216
|
+
"redux-toolkit",
|
|
217
|
+
"pinia",
|
|
218
|
+
"ngrx-signalstore",
|
|
219
|
+
"jotai",
|
|
220
|
+
"mobx",
|
|
221
|
+
// Server State / Data Fetching
|
|
222
|
+
"react-query",
|
|
223
|
+
"swr",
|
|
224
|
+
"graphql-apollo",
|
|
225
|
+
"graphql-urql",
|
|
226
|
+
"trpc",
|
|
227
|
+
// Forms & Validation
|
|
228
|
+
"react-hook-form",
|
|
229
|
+
"vee-validate",
|
|
230
|
+
"zod-validation",
|
|
231
|
+
// Testing
|
|
232
|
+
"vitest",
|
|
233
|
+
"playwright-e2e",
|
|
234
|
+
"cypress-e2e",
|
|
235
|
+
"react-testing-library",
|
|
236
|
+
"vue-test-utils",
|
|
237
|
+
"msw",
|
|
238
|
+
// UI Components
|
|
239
|
+
"shadcn-ui",
|
|
240
|
+
"tanstack-table",
|
|
241
|
+
"radix-ui",
|
|
242
|
+
// Backend - API Framework
|
|
243
|
+
"hono",
|
|
244
|
+
"express",
|
|
245
|
+
"fastify",
|
|
246
|
+
// Backend - Database
|
|
247
|
+
"drizzle",
|
|
248
|
+
"prisma",
|
|
249
|
+
// Backend - Auth
|
|
250
|
+
"better-auth",
|
|
251
|
+
// Backend - Observability
|
|
252
|
+
"axiom-pino-sentry",
|
|
253
|
+
// Backend - Analytics
|
|
254
|
+
"posthog",
|
|
255
|
+
"posthog-flags",
|
|
256
|
+
// Backend - Email
|
|
257
|
+
"resend",
|
|
258
|
+
// Backend - CI/CD
|
|
259
|
+
"github-actions",
|
|
260
|
+
// Mobile
|
|
261
|
+
"react-native",
|
|
262
|
+
"expo",
|
|
263
|
+
// Setup / Infrastructure
|
|
264
|
+
"turborepo",
|
|
265
|
+
"tooling",
|
|
266
|
+
"posthog-setup",
|
|
267
|
+
"env",
|
|
268
|
+
"observability-setup",
|
|
269
|
+
"email-setup",
|
|
270
|
+
// Animation / PWA / Realtime / etc.
|
|
271
|
+
"framer-motion",
|
|
272
|
+
"css-animations",
|
|
273
|
+
"view-transitions",
|
|
274
|
+
"storybook",
|
|
275
|
+
"error-boundaries",
|
|
276
|
+
"accessibility",
|
|
277
|
+
"websockets",
|
|
278
|
+
"sse",
|
|
279
|
+
"socket-io",
|
|
280
|
+
"service-workers",
|
|
281
|
+
"file-upload",
|
|
282
|
+
"image-handling",
|
|
283
|
+
"date-fns",
|
|
284
|
+
// Backend-specific category skills
|
|
285
|
+
"api-testing",
|
|
286
|
+
"api-performance",
|
|
287
|
+
"web-performance",
|
|
288
|
+
// Security
|
|
289
|
+
"security",
|
|
290
|
+
// CLI
|
|
291
|
+
"commander",
|
|
292
|
+
"cli-commander",
|
|
293
|
+
"oclif",
|
|
294
|
+
// Reviewing / Meta
|
|
295
|
+
"reviewing",
|
|
296
|
+
"cli-reviewing",
|
|
297
|
+
"research-methodology",
|
|
298
|
+
// Methodology
|
|
299
|
+
"investigation-requirements",
|
|
300
|
+
"anti-over-engineering",
|
|
301
|
+
"success-criteria",
|
|
302
|
+
"write-verification",
|
|
303
|
+
"improvement-protocol",
|
|
304
|
+
"context-management"
|
|
305
|
+
]);
|
|
306
|
+
var SKILL_ID_PATTERN = /^(web|api|cli|mobile|infra|meta|security)-.+-.+$/;
|
|
307
|
+
var skillIdSchema = z.string().regex(
|
|
308
|
+
SKILL_ID_PATTERN,
|
|
309
|
+
"Must be a valid skill ID (e.g., 'web-framework-react')"
|
|
310
|
+
);
|
|
311
|
+
var categoryPathSchema = z.string().refine(
|
|
312
|
+
(val) => {
|
|
313
|
+
if (val === "local") return true;
|
|
314
|
+
if (/^(web|api|cli|mobile|infra|meta|security)\/.+$/.test(val)) return true;
|
|
315
|
+
if (/^(web|api|cli|mobile|infra|meta|security)-.+$/.test(val)) return true;
|
|
316
|
+
return subcategorySchema.safeParse(val).success;
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
message: "Must be a valid category path (e.g., 'web/framework', 'web-framework', 'testing', or 'local')"
|
|
320
|
+
}
|
|
321
|
+
);
|
|
322
|
+
var agentHookActionSchema = z.object({
|
|
323
|
+
type: z.enum(["command", "script", "prompt"]),
|
|
324
|
+
command: z.string().optional(),
|
|
325
|
+
script: z.string().optional(),
|
|
326
|
+
prompt: z.string().optional()
|
|
327
|
+
});
|
|
328
|
+
var agentHookDefinitionSchema = z.object({
|
|
329
|
+
matcher: z.string().optional(),
|
|
330
|
+
hooks: z.array(agentHookActionSchema).optional()
|
|
331
|
+
});
|
|
332
|
+
var hooksRecordSchema = z.record(z.string(), z.array(agentHookDefinitionSchema));
|
|
333
|
+
var strictAgentHookDefinitionSchema = z.object({
|
|
334
|
+
matcher: z.string().optional(),
|
|
335
|
+
hooks: z.array(agentHookActionSchema).min(1)
|
|
336
|
+
});
|
|
337
|
+
var strictHooksRecordSchema = z.record(
|
|
338
|
+
z.string(),
|
|
339
|
+
z.array(strictAgentHookDefinitionSchema)
|
|
340
|
+
);
|
|
341
|
+
var skillAssignmentSchema = z.object({
|
|
342
|
+
id: skillIdSchema,
|
|
343
|
+
preloaded: z.boolean().optional(),
|
|
344
|
+
local: z.boolean().optional(),
|
|
345
|
+
path: z.string().optional()
|
|
346
|
+
});
|
|
347
|
+
var skillFrontmatterLoaderSchema = z.object({
|
|
348
|
+
name: z.string(),
|
|
349
|
+
description: z.string(),
|
|
350
|
+
model: modelNameSchema.optional()
|
|
351
|
+
});
|
|
352
|
+
var skillMetadataLoaderSchema = z.object({
|
|
353
|
+
category: categoryPathSchema.optional(),
|
|
354
|
+
category_exclusive: z.boolean().optional(),
|
|
355
|
+
author: z.string().optional(),
|
|
356
|
+
version: z.union([z.string(), z.number()]).transform(String).optional(),
|
|
357
|
+
tags: z.array(z.string()).optional(),
|
|
358
|
+
requires: z.array(skillIdSchema).optional(),
|
|
359
|
+
compatible_with: z.array(skillIdSchema).optional(),
|
|
360
|
+
conflicts_with: z.array(skillIdSchema).optional()
|
|
361
|
+
}).passthrough();
|
|
362
|
+
var pluginAuthorSchema = z.object({
|
|
363
|
+
name: z.string().min(1),
|
|
364
|
+
email: z.string().optional()
|
|
365
|
+
});
|
|
366
|
+
var pluginManifestSchema = z.object({
|
|
367
|
+
name: z.string(),
|
|
368
|
+
version: z.string().optional(),
|
|
369
|
+
description: z.string().optional(),
|
|
370
|
+
author: pluginAuthorSchema.optional(),
|
|
371
|
+
keywords: z.array(z.string()).optional(),
|
|
372
|
+
commands: z.union([z.string(), z.array(z.string())]).optional(),
|
|
373
|
+
agents: z.union([z.string(), z.array(z.string())]).optional(),
|
|
374
|
+
skills: z.union([z.string(), z.array(z.string())]).optional(),
|
|
375
|
+
hooks: z.union([z.string(), hooksRecordSchema]).optional()
|
|
376
|
+
});
|
|
377
|
+
var pluginManifestValidationSchema = z.object({
|
|
378
|
+
name: z.string().min(1),
|
|
379
|
+
version: z.string().optional(),
|
|
380
|
+
description: z.string().optional(),
|
|
381
|
+
author: pluginAuthorSchema.optional(),
|
|
382
|
+
keywords: z.array(z.string()).optional(),
|
|
383
|
+
commands: z.union([z.string(), z.array(z.string())]).optional(),
|
|
384
|
+
agents: z.union([z.string(), z.array(z.string())]).optional(),
|
|
385
|
+
skills: z.union([z.string(), z.array(z.string())]).optional(),
|
|
386
|
+
hooks: z.union([z.string(), strictHooksRecordSchema]).optional()
|
|
387
|
+
}).strict();
|
|
388
|
+
var agentYamlConfigSchema = z.object({
|
|
389
|
+
id: agentNameSchema,
|
|
390
|
+
title: z.string(),
|
|
391
|
+
description: z.string(),
|
|
392
|
+
model: modelNameSchema.optional(),
|
|
393
|
+
tools: z.array(z.string()),
|
|
394
|
+
disallowed_tools: z.array(z.string()).optional(),
|
|
395
|
+
permission_mode: permissionModeSchema.optional(),
|
|
396
|
+
hooks: hooksRecordSchema.optional(),
|
|
397
|
+
output_format: z.string().optional()
|
|
398
|
+
});
|
|
399
|
+
var skillAssignmentElementSchema = z.union([skillIdSchema, skillAssignmentSchema]);
|
|
400
|
+
var stackAgentConfigSchema = z.record(
|
|
401
|
+
z.string(),
|
|
402
|
+
z.union([skillAssignmentElementSchema, z.array(skillAssignmentElementSchema)])
|
|
403
|
+
);
|
|
404
|
+
var projectConfigLoaderSchema = z.object({
|
|
405
|
+
version: z.literal("1").optional(),
|
|
406
|
+
/** Project/plugin name in kebab-case */
|
|
407
|
+
name: z.string().optional(),
|
|
408
|
+
description: z.string().optional(),
|
|
409
|
+
/** Agent IDs to compile (e.g., ["web-developer", "api-developer"]) */
|
|
410
|
+
agents: z.array(z.string()).optional(),
|
|
411
|
+
/** Flat list of all skill IDs used by this project */
|
|
412
|
+
skills: z.array(skillIdSchema).optional(),
|
|
413
|
+
/** Author handle (e.g., "@vince") */
|
|
414
|
+
author: z.string().optional(),
|
|
415
|
+
/** "local" = .claude/agents, "plugin" = .claude/plugins/ (DEFAULT_PLUGIN_NAME) */
|
|
416
|
+
installMode: z.enum(["local", "plugin"]).optional(),
|
|
417
|
+
/** Agent-to-subcategory-to-skill mappings from selected stack (accepts same formats as stacks.yaml) */
|
|
418
|
+
stack: z.record(z.string(), stackAgentConfigSchema).optional(),
|
|
419
|
+
/** Skills source path or URL (e.g., "github:my-org/skills") */
|
|
420
|
+
source: z.string().optional(),
|
|
421
|
+
/** Marketplace identifier for plugin installation */
|
|
422
|
+
marketplace: z.string().optional(),
|
|
423
|
+
/** Separate source for agents when different from skills source */
|
|
424
|
+
agents_source: z.string().optional()
|
|
425
|
+
}).passthrough();
|
|
426
|
+
var projectConfigValidationSchema = z.object({
|
|
427
|
+
version: z.literal("1").optional(),
|
|
428
|
+
/** Project/plugin name in kebab-case */
|
|
429
|
+
name: z.string(),
|
|
430
|
+
description: z.string().optional(),
|
|
431
|
+
/** Agent IDs to compile (e.g., ["web-developer", "api-developer"]) */
|
|
432
|
+
agents: z.array(z.string()),
|
|
433
|
+
/** Flat list of all skill IDs used by this project */
|
|
434
|
+
skills: z.array(skillIdSchema),
|
|
435
|
+
/** Author handle (e.g., "@vince") */
|
|
436
|
+
author: z.string().optional(),
|
|
437
|
+
/** "local" = .claude/agents, "plugin" = .claude/plugins/ (DEFAULT_PLUGIN_NAME) */
|
|
438
|
+
installMode: z.enum(["local", "plugin"]),
|
|
439
|
+
/** Agent-to-subcategory-to-skill mappings from selected stack */
|
|
440
|
+
stack: z.record(z.string(), stackAgentConfigSchema),
|
|
441
|
+
/** Skills source path or URL (e.g., "github:my-org/skills") */
|
|
442
|
+
source: z.string(),
|
|
443
|
+
/** Marketplace identifier for plugin installation */
|
|
444
|
+
marketplace: z.string().optional(),
|
|
445
|
+
/** Separate source for agents when different from skills source */
|
|
446
|
+
agents_source: z.string().optional()
|
|
447
|
+
});
|
|
448
|
+
var categoryDefinitionSchema = z.object({
|
|
449
|
+
id: subcategorySchema,
|
|
450
|
+
displayName: z.string(),
|
|
451
|
+
description: z.string(),
|
|
452
|
+
domain: domainSchema.optional(),
|
|
453
|
+
parent_domain: domainSchema.optional(),
|
|
454
|
+
exclusive: z.boolean(),
|
|
455
|
+
required: z.boolean(),
|
|
456
|
+
order: z.number(),
|
|
457
|
+
icon: z.string().optional()
|
|
458
|
+
});
|
|
459
|
+
var skillRefInYaml = z.string();
|
|
460
|
+
var conflictRuleSchema = z.object({
|
|
461
|
+
skills: z.array(skillRefInYaml).min(2),
|
|
462
|
+
reason: z.string()
|
|
463
|
+
});
|
|
464
|
+
var discourageRuleSchema = z.object({
|
|
465
|
+
skills: z.array(skillRefInYaml).min(2),
|
|
466
|
+
reason: z.string()
|
|
467
|
+
});
|
|
468
|
+
var recommendRuleSchema = z.object({
|
|
469
|
+
when: skillRefInYaml,
|
|
470
|
+
suggest: z.array(skillRefInYaml).min(1),
|
|
471
|
+
reason: z.string()
|
|
472
|
+
});
|
|
473
|
+
var requireRuleSchema = z.object({
|
|
474
|
+
skill: skillRefInYaml,
|
|
475
|
+
needs: z.array(skillRefInYaml).min(1),
|
|
476
|
+
needs_any: z.boolean().optional(),
|
|
477
|
+
reason: z.string()
|
|
478
|
+
});
|
|
479
|
+
var alternativeGroupSchema = z.object({
|
|
480
|
+
purpose: z.string(),
|
|
481
|
+
skills: z.array(skillRefInYaml).min(1)
|
|
482
|
+
});
|
|
483
|
+
var relationshipDefinitionsSchema = z.object({
|
|
484
|
+
conflicts: z.array(conflictRuleSchema),
|
|
485
|
+
discourages: z.array(discourageRuleSchema),
|
|
486
|
+
recommends: z.array(recommendRuleSchema),
|
|
487
|
+
requires: z.array(requireRuleSchema),
|
|
488
|
+
alternatives: z.array(alternativeGroupSchema)
|
|
489
|
+
});
|
|
490
|
+
var skillsMatrixConfigSchema = z.object({
|
|
491
|
+
version: z.string(),
|
|
492
|
+
categories: z.record(subcategorySchema, categoryDefinitionSchema),
|
|
493
|
+
relationships: relationshipDefinitionsSchema,
|
|
494
|
+
skill_aliases: z.record(skillDisplayNameSchema, skillIdSchema)
|
|
495
|
+
});
|
|
496
|
+
var localRawMetadataSchema = z.object({
|
|
497
|
+
/** Short name shown in the wizard grid (e.g., "my-custom-react") */
|
|
498
|
+
cli_name: z.string().optional(),
|
|
499
|
+
/** One-line description for the wizard */
|
|
500
|
+
cli_description: z.string().optional(),
|
|
501
|
+
/** Subcategory to place this skill in (e.g., "web-framework") */
|
|
502
|
+
category: categoryPathSchema.optional(),
|
|
503
|
+
/** If true, only one skill from this category can be selected */
|
|
504
|
+
category_exclusive: z.boolean().optional(),
|
|
505
|
+
/** When an AI agent should invoke this skill */
|
|
506
|
+
usage_guidance: z.string().optional(),
|
|
507
|
+
tags: z.array(z.string()).optional(),
|
|
508
|
+
/** Framework skills this is compatible with (for Build step filtering) */
|
|
509
|
+
compatible_with: z.array(skillIdSchema).optional(),
|
|
510
|
+
/** Skills that cannot coexist with this one */
|
|
511
|
+
conflicts_with: z.array(skillIdSchema).optional(),
|
|
512
|
+
/** Skills that must be selected before this one */
|
|
513
|
+
requires: z.array(skillIdSchema).optional(),
|
|
514
|
+
/** Setup skills that must be installed first (e.g., env setup) */
|
|
515
|
+
requires_setup: z.array(skillIdSchema).optional(),
|
|
516
|
+
/** Usage skills this setup skill configures (inverse relationship) */
|
|
517
|
+
provides_setup_for: z.array(skillIdSchema).optional()
|
|
518
|
+
}).passthrough();
|
|
519
|
+
var localSkillMetadataSchema = z.object({
|
|
520
|
+
forked_from: z.object({
|
|
521
|
+
/** Original skill ID before forking (e.g., "web-framework-react") */
|
|
522
|
+
skill_id: skillIdSchema,
|
|
523
|
+
/** SHA hash of the original content at fork time (for diff detection) */
|
|
524
|
+
content_hash: z.string(),
|
|
525
|
+
/** ISO date when the fork was created */
|
|
526
|
+
date: z.string()
|
|
527
|
+
}).optional()
|
|
528
|
+
}).passthrough();
|
|
529
|
+
var stackSchema = z.object({
|
|
530
|
+
id: z.string().min(1),
|
|
531
|
+
name: z.string().min(1),
|
|
532
|
+
description: z.string(),
|
|
533
|
+
/** Maps agent IDs to their subcategory-to-skill assignments */
|
|
534
|
+
agents: z.record(z.string(), stackAgentConfigSchema),
|
|
535
|
+
/** High-level philosophy guiding this stack's technology choices */
|
|
536
|
+
philosophy: z.string().optional()
|
|
537
|
+
});
|
|
538
|
+
var stacksConfigSchema = z.object({
|
|
539
|
+
stacks: z.array(stackSchema).min(1)
|
|
540
|
+
});
|
|
541
|
+
var marketplaceRemoteSourceSchema = z.object({
|
|
542
|
+
source: z.enum(["github", "url"]),
|
|
543
|
+
repo: z.string().optional(),
|
|
544
|
+
url: z.string().optional(),
|
|
545
|
+
ref: z.string().optional()
|
|
546
|
+
});
|
|
547
|
+
var marketplacePluginSchema = z.object({
|
|
548
|
+
name: z.string().min(1),
|
|
549
|
+
/** Local directory path (relative to pluginRoot) or remote source config */
|
|
550
|
+
source: z.union([z.string(), marketplaceRemoteSourceSchema]),
|
|
551
|
+
description: z.string().optional(),
|
|
552
|
+
version: z.string().optional(),
|
|
553
|
+
author: pluginAuthorSchema.optional(),
|
|
554
|
+
/** Marketplace category for grouping (e.g., "framework", "testing") */
|
|
555
|
+
category: z.string().optional(),
|
|
556
|
+
keywords: z.array(z.string()).optional()
|
|
557
|
+
});
|
|
558
|
+
var marketplaceOwnerSchema = z.object({
|
|
559
|
+
name: z.string().min(1),
|
|
560
|
+
email: z.string().optional()
|
|
561
|
+
});
|
|
562
|
+
var marketplaceMetadataSchema = z.object({
|
|
563
|
+
/** Base directory for resolving plugin source paths (e.g., "plugins/") */
|
|
564
|
+
pluginRoot: z.string().optional()
|
|
565
|
+
});
|
|
566
|
+
var marketplaceSchema = z.object({
|
|
567
|
+
$schema: z.string().optional(),
|
|
568
|
+
name: z.string().min(1),
|
|
569
|
+
version: z.string().min(1),
|
|
570
|
+
description: z.string().optional(),
|
|
571
|
+
owner: marketplaceOwnerSchema,
|
|
572
|
+
metadata: marketplaceMetadataSchema.optional(),
|
|
573
|
+
plugins: z.array(marketplacePluginSchema).min(1)
|
|
574
|
+
});
|
|
575
|
+
var versionedMetadataSchema = z.object({
|
|
576
|
+
/** Content version integer (incremented on each publish) */
|
|
577
|
+
version: z.number(),
|
|
578
|
+
/** Short SHA hash of skill content for change detection */
|
|
579
|
+
content_hash: z.string().optional(),
|
|
580
|
+
/** ISO date of last update */
|
|
581
|
+
updated: z.string().optional()
|
|
582
|
+
}).passthrough();
|
|
583
|
+
var defaultMappingsSchema = z.object({
|
|
584
|
+
/** Maps skill IDs to the agent IDs that should receive them */
|
|
585
|
+
skill_to_agents: z.record(z.string(), z.array(z.string())),
|
|
586
|
+
/** Maps agent IDs to skill IDs that should be preloaded (embedded) instead of dynamic */
|
|
587
|
+
preloaded_skills: z.record(z.string(), z.array(z.string())),
|
|
588
|
+
/** Maps agent IDs to skill ID prefixes they should receive by default */
|
|
589
|
+
agent_skill_prefixes: z.record(z.string(), z.array(z.string())).optional(),
|
|
590
|
+
/** Maps subcategory names to their short aliases (e.g., "framework" -> "react") */
|
|
591
|
+
subcategory_aliases: z.record(z.string(), z.string())
|
|
592
|
+
});
|
|
593
|
+
var permissionConfigSchema = z.object({
|
|
594
|
+
/** Tool names or patterns to explicitly allow */
|
|
595
|
+
allow: z.array(z.string()).optional(),
|
|
596
|
+
/** Tool names or patterns to explicitly deny */
|
|
597
|
+
deny: z.array(z.string()).optional()
|
|
598
|
+
});
|
|
599
|
+
var settingsFileSchema = z.object({
|
|
600
|
+
permissions: permissionConfigSchema.optional()
|
|
601
|
+
}).passthrough();
|
|
602
|
+
var importedSkillMetadataSchema = z.object({
|
|
603
|
+
forked_from: z.object({
|
|
604
|
+
/** Source URL or identifier where the skill was imported from */
|
|
605
|
+
source: z.string(),
|
|
606
|
+
/** Original skill name in the source */
|
|
607
|
+
skill_name: z.string(),
|
|
608
|
+
/** SHA hash of the original content at import time */
|
|
609
|
+
content_hash: z.string(),
|
|
610
|
+
/** ISO date when the import was performed */
|
|
611
|
+
date: z.string()
|
|
612
|
+
}).optional()
|
|
613
|
+
}).passthrough();
|
|
614
|
+
var brandingConfigSchema = z.object({
|
|
615
|
+
/** Custom CLI name (e.g., "Acme Dev Tools") */
|
|
616
|
+
name: z.string().optional(),
|
|
617
|
+
/** Custom tagline shown in wizard header */
|
|
618
|
+
tagline: z.string().optional()
|
|
619
|
+
});
|
|
620
|
+
var projectSourceConfigSchema = z.object({
|
|
621
|
+
/** Primary skills source (path or URL) */
|
|
622
|
+
source: z.string().optional(),
|
|
623
|
+
/** Author handle for this project's config */
|
|
624
|
+
author: z.string().optional(),
|
|
625
|
+
/** Marketplace identifier for plugin installation */
|
|
626
|
+
marketplace: z.string().optional(),
|
|
627
|
+
/** Separate source for agent definitions (when different from skills) */
|
|
628
|
+
agents_source: z.string().optional(),
|
|
629
|
+
/** Additional skill sources (private marketplaces, custom repos) */
|
|
630
|
+
sources: z.array(
|
|
631
|
+
z.object({
|
|
632
|
+
/** Display name for the source (shown in wizard) */
|
|
633
|
+
name: z.string(),
|
|
634
|
+
/** Source URL (e.g., "github:acme-corp/claude-skills") */
|
|
635
|
+
url: z.string(),
|
|
636
|
+
description: z.string().optional(),
|
|
637
|
+
/** Git ref (branch/tag/commit) for the source */
|
|
638
|
+
ref: z.string().optional()
|
|
639
|
+
})
|
|
640
|
+
).optional(),
|
|
641
|
+
/** Skills explicitly bound to subcategories via search (from Step Sources) */
|
|
642
|
+
boundSkills: z.array(boundSkillSchema).optional(),
|
|
643
|
+
/** Branding overrides for white-labeling the CLI */
|
|
644
|
+
branding: brandingConfigSchema.optional(),
|
|
645
|
+
/** Custom skills directory override (default: "src/skills") */
|
|
646
|
+
skills_dir: z.string().optional(),
|
|
647
|
+
/** Custom agents directory override (default: "src/agents") */
|
|
648
|
+
agents_dir: z.string().optional(),
|
|
649
|
+
/** Custom stacks file path override (default: "config/stacks.yaml") */
|
|
650
|
+
stacks_file: z.string().optional(),
|
|
651
|
+
/** Custom matrix file path override (default: "config/skills-matrix.yaml") */
|
|
652
|
+
matrix_file: z.string().optional()
|
|
653
|
+
}).passthrough();
|
|
654
|
+
var projectSourceConfigValidationSchema = z.object({
|
|
655
|
+
source: z.string().optional(),
|
|
656
|
+
author: z.string().optional(),
|
|
657
|
+
marketplace: z.string().optional(),
|
|
658
|
+
agents_source: z.string().optional(),
|
|
659
|
+
sources: z.array(
|
|
660
|
+
z.object({
|
|
661
|
+
name: z.string(),
|
|
662
|
+
url: z.string(),
|
|
663
|
+
description: z.string().optional(),
|
|
664
|
+
ref: z.string().optional()
|
|
665
|
+
})
|
|
666
|
+
).optional(),
|
|
667
|
+
boundSkills: z.array(boundSkillSchema).optional(),
|
|
668
|
+
branding: brandingConfigSchema.optional(),
|
|
669
|
+
skills_dir: z.string().optional(),
|
|
670
|
+
agents_dir: z.string().optional(),
|
|
671
|
+
stacks_file: z.string().optional(),
|
|
672
|
+
matrix_file: z.string().optional()
|
|
673
|
+
});
|
|
674
|
+
var KEBAB_CASE_PATTERN = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;
|
|
675
|
+
var agentYamlGenerationSchema = z.object({
|
|
676
|
+
$schema: z.string().optional(),
|
|
677
|
+
id: z.string().min(1),
|
|
678
|
+
title: z.string().min(1),
|
|
679
|
+
description: z.string().min(1),
|
|
680
|
+
model: modelNameSchema.optional(),
|
|
681
|
+
tools: z.array(z.string()).min(1),
|
|
682
|
+
disallowed_tools: z.array(z.string()).optional(),
|
|
683
|
+
permission_mode: permissionModeSchema.optional(),
|
|
684
|
+
hooks: strictHooksRecordSchema.optional(),
|
|
685
|
+
output_format: z.string().optional()
|
|
686
|
+
}).strict();
|
|
687
|
+
var agentFrontmatterValidationSchema = z.object({
|
|
688
|
+
/** Agent name in kebab-case (becomes the Task tool identifier) */
|
|
689
|
+
name: z.string().regex(KEBAB_CASE_PATTERN).min(1),
|
|
690
|
+
description: z.string().min(1),
|
|
691
|
+
/** Comma-separated list of allowed tools */
|
|
692
|
+
tools: z.string().optional(),
|
|
693
|
+
/** Comma-separated list of denied tools */
|
|
694
|
+
disallowedTools: z.string().optional(),
|
|
695
|
+
model: modelNameSchema.optional(),
|
|
696
|
+
permissionMode: permissionModeSchema.optional(),
|
|
697
|
+
/** Skill names to preload (embed in agent prompt) */
|
|
698
|
+
skills: z.array(z.string().min(1)).optional(),
|
|
699
|
+
hooks: strictHooksRecordSchema.optional()
|
|
700
|
+
}).strict();
|
|
701
|
+
var skillFrontmatterValidationSchema = z.object({
|
|
702
|
+
name: z.string().min(1),
|
|
703
|
+
description: z.string().min(1),
|
|
704
|
+
/** If true, Claude cannot invoke this skill on its own */
|
|
705
|
+
"disable-model-invocation": z.boolean().optional(),
|
|
706
|
+
/** If true, user can invoke this skill directly */
|
|
707
|
+
"user-invocable": z.boolean().optional(),
|
|
708
|
+
/** Comma-separated list of tools this skill can use */
|
|
709
|
+
"allowed-tools": z.string().optional(),
|
|
710
|
+
model: modelNameSchema.optional(),
|
|
711
|
+
/** "fork" means skill runs in a forked context (separate conversation) */
|
|
712
|
+
context: z.enum(["fork"]).optional(),
|
|
713
|
+
/** Agent name this skill is scoped to */
|
|
714
|
+
agent: z.string().optional(),
|
|
715
|
+
/** Hint text shown when user invokes the skill */
|
|
716
|
+
"argument-hint": z.string().optional()
|
|
717
|
+
}).strict();
|
|
718
|
+
var metadataValidationSchema = z.object({
|
|
719
|
+
/** Subcategory path (e.g., "web/framework") */
|
|
720
|
+
category: z.string(),
|
|
721
|
+
category_exclusive: z.boolean().optional(),
|
|
722
|
+
/** Author handle — must start with @ (e.g., "@vince") */
|
|
723
|
+
author: z.string().regex(/^@[a-z][a-z0-9-]*$/),
|
|
724
|
+
/** Content version integer, incremented on each publish */
|
|
725
|
+
version: z.number().int().min(1).optional(),
|
|
726
|
+
/** Short display name for the wizard grid (max 30 chars) */
|
|
727
|
+
cli_name: z.string().min(1).max(30),
|
|
728
|
+
/** One-line description for the wizard (max 60 chars) */
|
|
729
|
+
cli_description: z.string().min(1).max(60),
|
|
730
|
+
/** When an AI agent should invoke this skill (min 10 chars to ensure usefulness) */
|
|
731
|
+
usage_guidance: z.string().min(10),
|
|
732
|
+
requires: z.array(z.string().min(1)).optional(),
|
|
733
|
+
compatible_with: z.array(z.string().min(1)).optional(),
|
|
734
|
+
conflicts_with: z.array(z.string().min(1)).optional(),
|
|
735
|
+
/** Searchable tags — kebab-case only */
|
|
736
|
+
tags: z.array(z.string().regex(/^[a-z][a-z0-9-]*$/)).optional(),
|
|
737
|
+
requires_setup: z.array(z.string().min(1)).optional(),
|
|
738
|
+
provides_setup_for: z.array(z.string().min(1)).optional(),
|
|
739
|
+
/** 7-char hex SHA of skill content (for change detection) */
|
|
740
|
+
content_hash: z.string().regex(/^[a-f0-9]{7}$/).optional(),
|
|
741
|
+
/** ISO date of last update */
|
|
742
|
+
updated: z.string().optional(),
|
|
743
|
+
/** Provenance tracking when skill was forked from another */
|
|
744
|
+
forked_from: z.object({
|
|
745
|
+
/** Original skill ID */
|
|
746
|
+
skill_id: z.string(),
|
|
747
|
+
/** Version of the original at fork time */
|
|
748
|
+
version: z.number().int().min(1).optional(),
|
|
749
|
+
/** Content hash of the original at fork time */
|
|
750
|
+
content_hash: z.string(),
|
|
751
|
+
/** Source URL or identifier */
|
|
752
|
+
source: z.string().optional(),
|
|
753
|
+
/** ISO date of the fork */
|
|
754
|
+
date: z.string()
|
|
755
|
+
}).optional()
|
|
756
|
+
}).strict();
|
|
757
|
+
var stackSkillAssignmentSchema = z.object({
|
|
758
|
+
id: z.string().min(1),
|
|
759
|
+
/** If true, skill content is embedded in the compiled agent prompt */
|
|
760
|
+
preloaded: z.boolean().optional()
|
|
761
|
+
}).strict();
|
|
762
|
+
var stackConfigValidationSchema = z.object({
|
|
763
|
+
/** Unique stack identifier in kebab-case */
|
|
764
|
+
id: z.string().regex(KEBAB_CASE_PATTERN).optional(),
|
|
765
|
+
name: z.string().min(1),
|
|
766
|
+
version: z.string(),
|
|
767
|
+
author: z.string().min(1),
|
|
768
|
+
description: z.string().optional(),
|
|
769
|
+
/** ISO date when this stack was first created */
|
|
770
|
+
created: z.string().optional(),
|
|
771
|
+
/** ISO date of last update */
|
|
772
|
+
updated: z.string().optional(),
|
|
773
|
+
/** Primary framework this stack is designed for (e.g., "nextjs", "remix") */
|
|
774
|
+
framework: z.string().optional(),
|
|
775
|
+
/** All skills used in this stack (flat list, at least one required) */
|
|
776
|
+
skills: z.array(stackSkillAssignmentSchema).min(1),
|
|
777
|
+
/** Agent IDs this stack compiles (at least one required) */
|
|
778
|
+
agents: z.array(z.string().regex(KEBAB_CASE_PATTERN)).min(1),
|
|
779
|
+
/** Per-agent skill assignments: { agentId: { subcategory: [skillAssignment] } } */
|
|
780
|
+
agent_skills: z.record(z.string(), z.record(z.string(), z.array(stackSkillAssignmentSchema))).optional(),
|
|
781
|
+
/** High-level philosophy guiding technology choices */
|
|
782
|
+
philosophy: z.string().optional(),
|
|
783
|
+
/** Guiding principles for agents using this stack */
|
|
784
|
+
principles: z.array(z.string().min(1)).optional(),
|
|
785
|
+
tags: z.array(z.string().regex(KEBAB_CASE_PATTERN)).optional(),
|
|
786
|
+
/** Per-skill overrides: alternative suggestions and lock status */
|
|
787
|
+
overrides: z.record(
|
|
788
|
+
z.string(),
|
|
789
|
+
z.object({
|
|
790
|
+
/** Suggested alternative skill IDs if this one is swapped */
|
|
791
|
+
alternatives: z.array(z.string().min(1)).optional(),
|
|
792
|
+
/** If true, this skill cannot be swapped by the user */
|
|
793
|
+
locked: z.boolean().optional()
|
|
794
|
+
}).strict()
|
|
795
|
+
).optional(),
|
|
796
|
+
/** Community metrics for sorting/ranking */
|
|
797
|
+
metrics: z.object({
|
|
798
|
+
upvotes: z.number().int().min(0).optional(),
|
|
799
|
+
downloads: z.number().int().min(0).optional()
|
|
800
|
+
}).strict().optional(),
|
|
801
|
+
/** Lifecycle hooks triggered by file changes or commands */
|
|
802
|
+
hooks: z.record(
|
|
803
|
+
z.string(),
|
|
804
|
+
z.array(
|
|
805
|
+
z.object({
|
|
806
|
+
/** Glob pattern to match file paths (e.g., "*.tsx") */
|
|
807
|
+
matcher: z.string().optional(),
|
|
808
|
+
hooks: z.array(agentHookActionSchema).min(1)
|
|
809
|
+
})
|
|
810
|
+
)
|
|
811
|
+
).optional()
|
|
812
|
+
}).strict();
|
|
813
|
+
function formatZodErrors(issues) {
|
|
814
|
+
return issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; ");
|
|
815
|
+
}
|
|
816
|
+
function validateNestingDepth(value, maxDepth) {
|
|
817
|
+
function check(val, depth) {
|
|
818
|
+
if (depth > maxDepth) return false;
|
|
819
|
+
if (Array.isArray(val)) {
|
|
820
|
+
return val.every((item) => check(item, depth + 1));
|
|
821
|
+
}
|
|
822
|
+
if (val !== null && typeof val === "object") {
|
|
823
|
+
return Object.values(val).every((v) => check(v, depth + 1));
|
|
824
|
+
}
|
|
825
|
+
return true;
|
|
826
|
+
}
|
|
827
|
+
return check(value, 0);
|
|
828
|
+
}
|
|
829
|
+
function warnUnknownFields(parsed, expectedKeys, context) {
|
|
830
|
+
const expectedSet = new Set(expectedKeys);
|
|
831
|
+
const unknownKeys = Object.keys(parsed).filter((k) => !expectedSet.has(k));
|
|
832
|
+
if (unknownKeys.length > 0) {
|
|
833
|
+
warn(`Unknown fields in ${context}: ${unknownKeys.join(", ")}`);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
export {
|
|
838
|
+
getErrorMessage,
|
|
839
|
+
setVerbose,
|
|
840
|
+
verbose,
|
|
841
|
+
log,
|
|
842
|
+
warn,
|
|
843
|
+
readFile,
|
|
844
|
+
readFileSafe,
|
|
845
|
+
readFileOptional,
|
|
846
|
+
fileExists,
|
|
847
|
+
directoryExists,
|
|
848
|
+
listDirectories,
|
|
849
|
+
glob,
|
|
850
|
+
writeFile,
|
|
851
|
+
ensureDir,
|
|
852
|
+
remove,
|
|
853
|
+
copy,
|
|
854
|
+
skillDisplayNameSchema,
|
|
855
|
+
SKILL_ID_PATTERN,
|
|
856
|
+
skillIdSchema,
|
|
857
|
+
categoryPathSchema,
|
|
858
|
+
hooksRecordSchema,
|
|
859
|
+
skillFrontmatterLoaderSchema,
|
|
860
|
+
skillMetadataLoaderSchema,
|
|
861
|
+
pluginAuthorSchema,
|
|
862
|
+
pluginManifestSchema,
|
|
863
|
+
agentYamlConfigSchema,
|
|
864
|
+
projectConfigLoaderSchema,
|
|
865
|
+
skillsMatrixConfigSchema,
|
|
866
|
+
localRawMetadataSchema,
|
|
867
|
+
localSkillMetadataSchema,
|
|
868
|
+
stacksConfigSchema,
|
|
869
|
+
marketplaceSchema,
|
|
870
|
+
settingsFileSchema,
|
|
871
|
+
importedSkillMetadataSchema,
|
|
872
|
+
projectSourceConfigSchema,
|
|
873
|
+
agentYamlGenerationSchema,
|
|
874
|
+
agentFrontmatterValidationSchema,
|
|
875
|
+
skillFrontmatterValidationSchema,
|
|
876
|
+
metadataValidationSchema,
|
|
877
|
+
stackConfigValidationSchema,
|
|
878
|
+
formatZodErrors,
|
|
879
|
+
validateNestingDepth,
|
|
880
|
+
warnUnknownFields
|
|
881
|
+
};
|
|
882
|
+
//# sourceMappingURL=chunk-BZN2Z5P7.js.map
|