agents-inc 0.152.0 → 0.153.0
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 +44 -0
- package/README.md +44 -48
- package/dist/{chunk-LDP5ASDM.js → chunk-2HC2SNRP.js} +2 -15
- package/dist/chunk-2HC2SNRP.js.map +1 -0
- package/dist/{chunk-WKTHWQKM.js → chunk-35VOK7XE.js} +1338 -2573
- package/dist/chunk-35VOK7XE.js.map +1 -0
- package/dist/{chunk-SX5H6TSC.js → chunk-4VYALFQZ.js} +11 -8
- package/dist/chunk-4VYALFQZ.js.map +1 -0
- package/dist/{chunk-KXYVJGJP.js → chunk-6CNRMCFM.js} +3 -2
- package/dist/{chunk-KXYVJGJP.js.map → chunk-6CNRMCFM.js.map} +1 -1
- package/dist/{chunk-LZ52XEPR.js → chunk-ACKC577F.js} +7 -6
- package/dist/chunk-ACKC577F.js.map +1 -0
- package/dist/{chunk-XHUODHZ4.js → chunk-BMGBA6HJ.js} +22 -49
- package/dist/chunk-BMGBA6HJ.js.map +1 -0
- package/dist/{chunk-FVDKAVOL.js → chunk-EFU6P3B7.js} +18 -51
- package/dist/chunk-EFU6P3B7.js.map +1 -0
- package/dist/{chunk-STMHDOZD.js → chunk-F7Z5I6GU.js} +12 -9
- package/dist/chunk-F7Z5I6GU.js.map +1 -0
- package/dist/{chunk-E5X6RJ4E.js → chunk-FIHTAFST.js} +29 -26
- package/dist/chunk-FIHTAFST.js.map +1 -0
- package/dist/{chunk-QZZJFYUQ.js → chunk-FRWKCE6R.js} +3 -3
- package/dist/chunk-FRWKCE6R.js.map +1 -0
- package/dist/{chunk-5UWKOOIS.js → chunk-HEBPKK5L.js} +129 -195
- package/dist/chunk-HEBPKK5L.js.map +1 -0
- package/dist/{chunk-MJ2KHG24.js → chunk-IO4VEW5U.js} +6 -6
- package/dist/{chunk-MJ2KHG24.js.map → chunk-IO4VEW5U.js.map} +1 -1
- package/dist/{chunk-TUPYW2IQ.js → chunk-JC7DBPRD.js} +9 -12
- package/dist/chunk-JC7DBPRD.js.map +1 -0
- package/dist/{chunk-5GUOIJSG.js → chunk-JFAUQDZM.js} +3 -15
- package/dist/chunk-JFAUQDZM.js.map +1 -0
- package/dist/{chunk-ZL7PFNHN.js → chunk-K3O3YQYG.js} +2 -2
- package/dist/{chunk-SKQWRUPX.js → chunk-K7PJDWER.js} +59 -33
- package/dist/chunk-K7PJDWER.js.map +1 -0
- package/dist/{chunk-MVR3SYMN.js → chunk-KET3EVGX.js} +4 -3
- package/dist/{chunk-MVR3SYMN.js.map → chunk-KET3EVGX.js.map} +1 -1
- package/dist/{chunk-MWG4VU64.js → chunk-M5HSTNYU.js} +50 -56
- package/dist/chunk-M5HSTNYU.js.map +1 -0
- package/dist/{chunk-TJJPWUMA.js → chunk-NSJ2S7R5.js} +3 -2
- package/dist/{chunk-TJJPWUMA.js.map → chunk-NSJ2S7R5.js.map} +1 -1
- package/dist/{chunk-IHUY4M22.js → chunk-NXGMM5YN.js} +4 -4
- package/dist/chunk-NXQAY5U7.js +18441 -0
- package/dist/chunk-NXQAY5U7.js.map +1 -0
- package/dist/{chunk-Q2KG7UV3.js → chunk-OJJLYHM3.js} +2 -1
- package/dist/{chunk-Q2KG7UV3.js.map → chunk-OJJLYHM3.js.map} +1 -1
- package/dist/{chunk-PZIZNMHK.js → chunk-ORJ5Y222.js} +159 -138
- package/dist/chunk-ORJ5Y222.js.map +1 -0
- package/dist/{chunk-NR3OZGL4.js → chunk-OZXAJNLA.js} +2 -1
- package/dist/{chunk-NR3OZGL4.js.map → chunk-OZXAJNLA.js.map} +1 -1
- package/dist/{chunk-MM7CTTAV.js → chunk-Q5FLW4JG.js} +2 -2
- package/dist/{chunk-MM7CTTAV.js.map → chunk-Q5FLW4JG.js.map} +1 -1
- package/dist/{chunk-GRVKW3CC.js → chunk-R4SEU3DF.js} +3 -2
- package/dist/{chunk-GRVKW3CC.js.map → chunk-R4SEU3DF.js.map} +1 -1
- package/dist/{chunk-76ADG7LQ.js → chunk-R54KIGN2.js} +8 -22
- package/dist/chunk-R54KIGN2.js.map +1 -0
- package/dist/{chunk-SBHBBZKF.js → chunk-REKOWTIB.js} +25 -120
- package/dist/chunk-REKOWTIB.js.map +1 -0
- package/dist/chunk-TY6CAOL7.js +40 -0
- package/dist/chunk-TY6CAOL7.js.map +1 -0
- package/dist/{chunk-BNSRA6HL.js → chunk-U2DNAHFE.js} +39 -176
- package/dist/chunk-U2DNAHFE.js.map +1 -0
- package/dist/{chunk-PMM2MYMA.js → chunk-U2YSGBHA.js} +624 -349
- package/dist/chunk-U2YSGBHA.js.map +1 -0
- package/dist/{chunk-DTSG5XZB.js → chunk-V3ENMW7G.js} +3 -3
- package/dist/{chunk-L7SZXUBJ.js → chunk-VECFAKM5.js} +7 -6
- package/dist/{chunk-L7SZXUBJ.js.map → chunk-VECFAKM5.js.map} +1 -1
- package/dist/chunk-VGEBYCQZ.js +59 -0
- package/dist/chunk-VGEBYCQZ.js.map +1 -0
- package/dist/chunk-VZRO7RYT.js +3694 -0
- package/dist/chunk-VZRO7RYT.js.map +1 -0
- package/dist/{chunk-LASI35KT.js → chunk-WDAO3RUY.js} +14 -28
- package/dist/chunk-WDAO3RUY.js.map +1 -0
- package/dist/{chunk-MQ7FLIYS.js → chunk-WG6V6VJV.js} +3 -2
- package/dist/{chunk-MQ7FLIYS.js.map → chunk-WG6V6VJV.js.map} +1 -1
- package/dist/chunk-X5XJ6WKO.js +284 -0
- package/dist/chunk-X5XJ6WKO.js.map +1 -0
- package/dist/{chunk-RNJWAKMO.js → chunk-XGMOXMS4.js} +9 -8
- package/dist/chunk-XGMOXMS4.js.map +1 -0
- package/dist/{chunk-IUQBOCSU.js → chunk-ZBPEFQ4G.js} +2 -1
- package/dist/{chunk-IUQBOCSU.js.map → chunk-ZBPEFQ4G.js.map} +1 -1
- package/dist/{chunk-QRDTLVXG.js → chunk-ZNDLUWWD.js} +9 -22
- package/dist/chunk-ZNDLUWWD.js.map +1 -0
- package/dist/commands/build/marketplace.js +114 -35
- package/dist/commands/build/marketplace.js.map +1 -1
- package/dist/commands/build/plugins.js +9 -10
- package/dist/commands/build/plugins.js.map +1 -1
- package/dist/commands/compile.js +97 -70
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/doctor.js +793 -64
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +169 -208
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +24 -39
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/init.js +41 -46
- package/dist/commands/list.js +10 -12
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/search.js +20 -81
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +25 -31
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +82 -332
- package/dist/commands/update.js.map +1 -1
- package/dist/components/common/confirm.js +1 -1
- package/dist/components/common/prompt-confirm.js +1 -1
- package/dist/components/common/select-list.js +2 -2
- package/dist/components/common/spinner.js +1 -1
- package/dist/components/wizard/category-grid.js +5 -6
- package/dist/components/wizard/checkbox-grid.js +5 -6
- package/dist/components/wizard/domain-selection.js +12 -13
- package/dist/components/wizard/run-wizard-session.js +30 -36
- package/dist/components/wizard/scroll-affordance.js +2 -2
- package/dist/components/wizard/skill-agent-summary.js +7 -7
- package/dist/components/wizard/source-grid.js +6 -11
- package/dist/components/wizard/stack-selection.js +9 -9
- package/dist/components/wizard/step-agents.js +12 -12
- package/dist/components/wizard/step-build.js +10 -11
- package/dist/components/wizard/step-confirm.js +11 -11
- package/dist/components/wizard/step-sources.js +11 -17
- package/dist/components/wizard/step-stack.js +10 -10
- package/dist/components/wizard/summary-panel.js +10 -10
- package/dist/components/wizard/toast.js +2 -2
- package/dist/components/wizard/wizard-layout.js +15 -16
- package/dist/components/wizard/wizard-tabs.js +6 -12
- package/dist/components/wizard/wizard.js +29 -35
- package/dist/config-exports.js +1 -1
- package/dist/copy-local-skills-KF2RAVD3.js +14 -0
- package/dist/hooks/init.js +49 -48
- package/dist/hooks/init.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/load-agent-defs-DGXGBU3Q.js +15 -0
- package/dist/{loader-5JP4S7CJ.js → loader-4U7UCE2Y.js} +7 -5
- package/dist/recompile-project-agents-CJVBAWDJ.js +20 -0
- package/dist/{source-loader-MZYCPL2S.js → source-loader-ZNSYJJCI.js} +6 -6
- package/dist/src/agents/developer/ai-developer/identity.md +4 -4
- package/dist/src/agents/developer/ai-developer/playbook.md +1 -1
- package/dist/src/agents/developer/api-developer/identity.md +4 -4
- package/dist/src/agents/developer/api-developer/metadata.yaml +1 -1
- package/dist/src/agents/developer/cli-developer/identity.md +4 -4
- package/dist/src/agents/developer/web-developer/identity.md +2 -2
- package/dist/src/agents/developer/web-developer/metadata.yaml +1 -1
- package/dist/src/agents/meta/agent-summoner/identity.md +4 -5
- package/dist/src/agents/meta/agent-summoner/output.md +2 -2
- package/dist/src/agents/meta/agent-summoner/playbook.md +15 -16
- package/dist/src/agents/meta/codex-keeper/identity.md +4 -4
- package/dist/src/agents/meta/codex-keeper/playbook.md +1 -1
- package/dist/src/agents/meta/convention-keeper/identity.md +1 -1
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +0 -34
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +27 -3
- package/dist/src/agents/meta/skill-summoner/identity.md +2 -2
- package/{src/agents/planning/web-pm → dist/src/agents/planning/pm}/critical-reminders.md +10 -7
- package/dist/src/agents/planning/{web-pm → pm}/critical-requirements.md +8 -4
- package/dist/src/agents/planning/pm/identity.md +47 -0
- package/dist/src/agents/planning/pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/{web-pm → pm}/output.md +7 -90
- package/dist/src/agents/planning/pm/playbook.md +185 -0
- package/dist/src/agents/researcher/ai-researcher/critical-reminders.md +58 -0
- package/dist/src/agents/researcher/ai-researcher/critical-requirements.md +40 -0
- package/dist/src/agents/researcher/ai-researcher/identity.md +86 -0
- package/dist/src/agents/researcher/ai-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/ai-researcher/output.md +363 -0
- package/dist/src/agents/researcher/ai-researcher/playbook.md +545 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +16 -0
- package/dist/src/agents/researcher/api-researcher/identity.md +7 -7
- package/dist/src/agents/researcher/cli-researcher/critical-reminders.md +50 -0
- package/dist/src/agents/researcher/cli-researcher/critical-requirements.md +36 -0
- package/dist/src/agents/researcher/cli-researcher/identity.md +87 -0
- package/dist/src/agents/researcher/cli-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/cli-researcher/output.md +343 -0
- package/dist/src/agents/researcher/cli-researcher/playbook.md +370 -0
- package/dist/src/agents/researcher/web-researcher/identity.md +5 -6
- package/dist/src/agents/reviewer/reviewer/critical-reminders.md +29 -0
- package/dist/src/agents/reviewer/reviewer/critical-requirements.md +31 -0
- package/dist/src/agents/reviewer/reviewer/identity.md +41 -0
- package/dist/src/agents/reviewer/reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/reviewer/output.md +202 -0
- package/dist/src/agents/reviewer/reviewer/playbook.md +141 -0
- package/dist/src/agents/tester/ai-tester/critical-reminders.md +48 -0
- package/dist/src/agents/tester/ai-tester/critical-requirements.md +49 -0
- package/dist/src/agents/tester/ai-tester/identity.md +62 -0
- package/dist/src/agents/tester/ai-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/ai-tester/output.md +375 -0
- package/dist/src/agents/tester/ai-tester/playbook.md +789 -0
- package/dist/src/agents/tester/api-tester/identity.md +3 -3
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +3 -3
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +2 -2
- package/dist/src/agents/tester/cli-tester/identity.md +3 -3
- package/dist/src/agents/tester/cli-tester/output.md +4 -4
- package/dist/src/agents/tester/cli-tester/playbook.md +3 -3
- package/dist/src/agents/tester/web-tester/identity.md +3 -3
- package/dist/stores/wizard-store.js +8 -6
- package/package.json +13 -2
- package/src/agents/developer/ai-developer/identity.md +4 -4
- package/src/agents/developer/ai-developer/playbook.md +1 -1
- package/src/agents/developer/api-developer/identity.md +4 -4
- package/src/agents/developer/api-developer/metadata.yaml +1 -1
- package/src/agents/developer/cli-developer/identity.md +4 -4
- package/src/agents/developer/web-developer/identity.md +2 -2
- package/src/agents/developer/web-developer/metadata.yaml +1 -1
- package/src/agents/meta/agent-summoner/identity.md +4 -5
- package/src/agents/meta/agent-summoner/output.md +2 -2
- package/src/agents/meta/agent-summoner/playbook.md +15 -16
- package/src/agents/meta/codex-keeper/identity.md +4 -4
- package/src/agents/meta/codex-keeper/playbook.md +1 -1
- package/src/agents/meta/convention-keeper/identity.md +1 -1
- package/src/agents/meta/skill-summoner/critical-reminders.md +0 -34
- package/src/agents/meta/skill-summoner/critical-requirements.md +27 -3
- package/src/agents/meta/skill-summoner/identity.md +2 -2
- package/{dist/src/agents/planning/web-pm → src/agents/planning/pm}/critical-reminders.md +10 -7
- package/src/agents/planning/{web-pm → pm}/critical-requirements.md +8 -4
- package/src/agents/planning/pm/identity.md +47 -0
- package/src/agents/planning/pm/metadata.yaml +12 -0
- package/src/agents/planning/{web-pm → pm}/output.md +7 -90
- package/src/agents/planning/pm/playbook.md +185 -0
- package/src/agents/researcher/ai-researcher/critical-reminders.md +58 -0
- package/src/agents/researcher/ai-researcher/critical-requirements.md +40 -0
- package/src/agents/researcher/ai-researcher/identity.md +86 -0
- package/src/agents/researcher/ai-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/ai-researcher/output.md +363 -0
- package/src/agents/researcher/ai-researcher/playbook.md +545 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +16 -0
- package/src/agents/researcher/api-researcher/identity.md +7 -7
- package/src/agents/researcher/cli-researcher/critical-reminders.md +50 -0
- package/src/agents/researcher/cli-researcher/critical-requirements.md +36 -0
- package/src/agents/researcher/cli-researcher/identity.md +87 -0
- package/src/agents/researcher/cli-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/cli-researcher/output.md +343 -0
- package/src/agents/researcher/cli-researcher/playbook.md +370 -0
- package/src/agents/researcher/web-researcher/identity.md +5 -6
- package/src/agents/reviewer/reviewer/critical-reminders.md +29 -0
- package/src/agents/reviewer/reviewer/critical-requirements.md +31 -0
- package/src/agents/reviewer/reviewer/identity.md +41 -0
- package/src/agents/reviewer/reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/reviewer/output.md +202 -0
- package/src/agents/reviewer/reviewer/playbook.md +141 -0
- package/src/agents/tester/ai-tester/critical-reminders.md +48 -0
- package/src/agents/tester/ai-tester/critical-requirements.md +49 -0
- package/src/agents/tester/ai-tester/identity.md +62 -0
- package/src/agents/tester/ai-tester/metadata.yaml +12 -0
- package/src/agents/tester/ai-tester/output.md +375 -0
- package/src/agents/tester/ai-tester/playbook.md +789 -0
- package/src/agents/tester/api-tester/identity.md +3 -3
- package/src/agents/tester/cli-tester/critical-reminders.md +3 -3
- package/src/agents/tester/cli-tester/critical-requirements.md +2 -2
- package/src/agents/tester/cli-tester/identity.md +3 -3
- package/src/agents/tester/cli-tester/output.md +4 -4
- package/src/agents/tester/cli-tester/playbook.md +3 -3
- package/src/agents/tester/web-tester/identity.md +3 -3
- package/src/schemas/metadata.schema.json +31 -2
- package/src/schemas/project-config.schema.json +61 -15
- package/src/schemas/project-source-config.schema.json +0 -47
- package/dist/chunk-5GUOIJSG.js.map +0 -1
- package/dist/chunk-5UWKOOIS.js.map +0 -1
- package/dist/chunk-76ADG7LQ.js.map +0 -1
- package/dist/chunk-BNSRA6HL.js.map +0 -1
- package/dist/chunk-E5X6RJ4E.js.map +0 -1
- package/dist/chunk-EEPELKOM.js +0 -5938
- package/dist/chunk-EEPELKOM.js.map +0 -1
- package/dist/chunk-F7T5AFFN.js +0 -20
- package/dist/chunk-F7T5AFFN.js.map +0 -1
- package/dist/chunk-FVDKAVOL.js.map +0 -1
- package/dist/chunk-KFB5CRXZ.js +0 -377
- package/dist/chunk-KFB5CRXZ.js.map +0 -1
- package/dist/chunk-KR65TPKC.js +0 -664
- package/dist/chunk-KR65TPKC.js.map +0 -1
- package/dist/chunk-LASI35KT.js.map +0 -1
- package/dist/chunk-LDP5ASDM.js.map +0 -1
- package/dist/chunk-LZ52XEPR.js.map +0 -1
- package/dist/chunk-M7HO7NBK.js +0 -88
- package/dist/chunk-M7HO7NBK.js.map +0 -1
- package/dist/chunk-MWG4VU64.js.map +0 -1
- package/dist/chunk-ODNDXQH2.js +0 -77
- package/dist/chunk-ODNDXQH2.js.map +0 -1
- package/dist/chunk-P44SXVH3.js +0 -80
- package/dist/chunk-P44SXVH3.js.map +0 -1
- package/dist/chunk-PMM2MYMA.js.map +0 -1
- package/dist/chunk-PZIZNMHK.js.map +0 -1
- package/dist/chunk-Q45ZU6HD.js +0 -37
- package/dist/chunk-Q45ZU6HD.js.map +0 -1
- package/dist/chunk-QRDTLVXG.js.map +0 -1
- package/dist/chunk-QZZJFYUQ.js.map +0 -1
- package/dist/chunk-R5NOI2LP.js +0 -170
- package/dist/chunk-R5NOI2LP.js.map +0 -1
- package/dist/chunk-RNJWAKMO.js.map +0 -1
- package/dist/chunk-SBHBBZKF.js.map +0 -1
- package/dist/chunk-SKQWRUPX.js.map +0 -1
- package/dist/chunk-STMHDOZD.js.map +0 -1
- package/dist/chunk-SX5H6TSC.js.map +0 -1
- package/dist/chunk-TUPYW2IQ.js.map +0 -1
- package/dist/chunk-UBEDZ4FD.js +0 -4198
- package/dist/chunk-UBEDZ4FD.js.map +0 -1
- package/dist/chunk-VY6MNOXL.js +0 -20
- package/dist/chunk-VY6MNOXL.js.map +0 -1
- package/dist/chunk-WBCPLH66.js +0 -42
- package/dist/chunk-WBCPLH66.js.map +0 -1
- package/dist/chunk-WKTHWQKM.js.map +0 -1
- package/dist/chunk-XHUODHZ4.js.map +0 -1
- package/dist/chunk-ZPPHXXAP.js +0 -252
- package/dist/chunk-ZPPHXXAP.js.map +0 -1
- package/dist/commands/import/skill.js +0 -344
- package/dist/commands/import/skill.js.map +0 -1
- package/dist/commands/new/agent.js +0 -300
- package/dist/commands/new/agent.js.map +0 -1
- package/dist/commands/new/marketplace.js +0 -310
- package/dist/commands/new/marketplace.js.map +0 -1
- package/dist/commands/new/skill.js +0 -26
- package/dist/commands/validate.js +0 -575
- package/dist/commands/validate.js.map +0 -1
- package/dist/components/wizard/search-modal.js +0 -13
- package/dist/components/wizard/selection-card.js +0 -9
- package/dist/components/wizard/step-settings.js +0 -18
- package/dist/copy-local-skills-6EMVN7RB.js +0 -14
- package/dist/load-agent-defs-BWOUVEAR.js +0 -15
- package/dist/load-agent-defs-BWOUVEAR.js.map +0 -1
- package/dist/loader-5JP4S7CJ.js.map +0 -1
- package/dist/recompile-project-agents-6DL45TDI.js +0 -19
- package/dist/recompile-project-agents-6DL45TDI.js.map +0 -1
- package/dist/source-loader-MZYCPL2S.js.map +0 -1
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +0 -48
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +0 -65
- package/dist/src/agents/developer/web-architecture/identity.md +0 -64
- package/dist/src/agents/developer/web-architecture/metadata.yaml +0 -12
- package/dist/src/agents/developer/web-architecture/output.md +0 -449
- package/dist/src/agents/developer/web-architecture/playbook.md +0 -481
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +0 -71
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +0 -31
- package/dist/src/agents/pattern/pattern-scout/identity.md +0 -25
- package/dist/src/agents/pattern/pattern-scout/metadata.yaml +0 -10
- package/dist/src/agents/pattern/pattern-scout/output.md +0 -290
- package/dist/src/agents/pattern/pattern-scout/playbook.md +0 -1806
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +0 -30
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +0 -28
- package/dist/src/agents/pattern/web-pattern-critique/identity.md +0 -41
- package/dist/src/agents/pattern/web-pattern-critique/metadata.yaml +0 -12
- package/dist/src/agents/pattern/web-pattern-critique/output.md +0 -314
- package/dist/src/agents/pattern/web-pattern-critique/playbook.md +0 -572
- package/dist/src/agents/planning/api-pm/critical-reminders.md +0 -48
- package/dist/src/agents/planning/api-pm/critical-requirements.md +0 -41
- package/dist/src/agents/planning/api-pm/identity.md +0 -39
- package/dist/src/agents/planning/api-pm/metadata.yaml +0 -12
- package/dist/src/agents/planning/api-pm/output.md +0 -475
- package/dist/src/agents/planning/api-pm/playbook.md +0 -129
- package/dist/src/agents/planning/web-pm/identity.md +0 -26
- package/dist/src/agents/planning/web-pm/metadata.yaml +0 -12
- package/dist/src/agents/planning/web-pm/playbook.md +0 -318
- package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +0 -40
- package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +0 -37
- package/dist/src/agents/reviewer/ai-reviewer/identity.md +0 -51
- package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +0 -10
- package/dist/src/agents/reviewer/ai-reviewer/output.md +0 -395
- package/dist/src/agents/reviewer/ai-reviewer/playbook.md +0 -90
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +0 -31
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +0 -27
- package/dist/src/agents/reviewer/api-reviewer/identity.md +0 -51
- package/dist/src/agents/reviewer/api-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/api-reviewer/output.md +0 -343
- package/dist/src/agents/reviewer/api-reviewer/playbook.md +0 -288
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +0 -33
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +0 -30
- package/dist/src/agents/reviewer/cli-reviewer/identity.md +0 -44
- package/dist/src/agents/reviewer/cli-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/cli-reviewer/output.md +0 -414
- package/dist/src/agents/reviewer/cli-reviewer/playbook.md +0 -218
- package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +0 -38
- package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +0 -38
- package/dist/src/agents/reviewer/infra-reviewer/identity.md +0 -53
- package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +0 -10
- package/dist/src/agents/reviewer/infra-reviewer/output.md +0 -364
- package/dist/src/agents/reviewer/infra-reviewer/playbook.md +0 -161
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +0 -31
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +0 -26
- package/dist/src/agents/reviewer/web-reviewer/identity.md +0 -40
- package/dist/src/agents/reviewer/web-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/web-reviewer/output.md +0 -333
- package/dist/src/agents/reviewer/web-reviewer/playbook.md +0 -156
- package/src/agents/developer/web-architecture/critical-reminders.md +0 -48
- package/src/agents/developer/web-architecture/critical-requirements.md +0 -65
- package/src/agents/developer/web-architecture/identity.md +0 -64
- package/src/agents/developer/web-architecture/metadata.yaml +0 -12
- package/src/agents/developer/web-architecture/output.md +0 -449
- package/src/agents/developer/web-architecture/playbook.md +0 -481
- package/src/agents/pattern/pattern-scout/critical-reminders.md +0 -71
- package/src/agents/pattern/pattern-scout/critical-requirements.md +0 -31
- package/src/agents/pattern/pattern-scout/identity.md +0 -25
- package/src/agents/pattern/pattern-scout/metadata.yaml +0 -10
- package/src/agents/pattern/pattern-scout/output.md +0 -290
- package/src/agents/pattern/pattern-scout/playbook.md +0 -1806
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +0 -30
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +0 -28
- package/src/agents/pattern/web-pattern-critique/identity.md +0 -41
- package/src/agents/pattern/web-pattern-critique/metadata.yaml +0 -12
- package/src/agents/pattern/web-pattern-critique/output.md +0 -314
- package/src/agents/pattern/web-pattern-critique/playbook.md +0 -572
- package/src/agents/planning/api-pm/critical-reminders.md +0 -48
- package/src/agents/planning/api-pm/critical-requirements.md +0 -41
- package/src/agents/planning/api-pm/identity.md +0 -39
- package/src/agents/planning/api-pm/metadata.yaml +0 -12
- package/src/agents/planning/api-pm/output.md +0 -475
- package/src/agents/planning/api-pm/playbook.md +0 -129
- package/src/agents/planning/web-pm/identity.md +0 -26
- package/src/agents/planning/web-pm/metadata.yaml +0 -12
- package/src/agents/planning/web-pm/playbook.md +0 -318
- package/src/agents/reviewer/ai-reviewer/critical-reminders.md +0 -40
- package/src/agents/reviewer/ai-reviewer/critical-requirements.md +0 -37
- package/src/agents/reviewer/ai-reviewer/identity.md +0 -51
- package/src/agents/reviewer/ai-reviewer/metadata.yaml +0 -10
- package/src/agents/reviewer/ai-reviewer/output.md +0 -395
- package/src/agents/reviewer/ai-reviewer/playbook.md +0 -90
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +0 -31
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +0 -27
- package/src/agents/reviewer/api-reviewer/identity.md +0 -51
- package/src/agents/reviewer/api-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/api-reviewer/output.md +0 -343
- package/src/agents/reviewer/api-reviewer/playbook.md +0 -288
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +0 -33
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +0 -30
- package/src/agents/reviewer/cli-reviewer/identity.md +0 -44
- package/src/agents/reviewer/cli-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/cli-reviewer/output.md +0 -414
- package/src/agents/reviewer/cli-reviewer/playbook.md +0 -218
- package/src/agents/reviewer/infra-reviewer/critical-reminders.md +0 -38
- package/src/agents/reviewer/infra-reviewer/critical-requirements.md +0 -38
- package/src/agents/reviewer/infra-reviewer/identity.md +0 -53
- package/src/agents/reviewer/infra-reviewer/metadata.yaml +0 -10
- package/src/agents/reviewer/infra-reviewer/output.md +0 -364
- package/src/agents/reviewer/infra-reviewer/playbook.md +0 -161
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +0 -31
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +0 -26
- package/src/agents/reviewer/web-reviewer/identity.md +0 -40
- package/src/agents/reviewer/web-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/web-reviewer/output.md +0 -333
- package/src/agents/reviewer/web-reviewer/playbook.md +0 -156
- /package/dist/{chunk-ZL7PFNHN.js.map → chunk-K3O3YQYG.js.map} +0 -0
- /package/dist/{chunk-IHUY4M22.js.map → chunk-NXGMM5YN.js.map} +0 -0
- /package/dist/{chunk-DTSG5XZB.js.map → chunk-V3ENMW7G.js.map} +0 -0
- /package/dist/{commands/new/skill.js.map → copy-local-skills-KF2RAVD3.js.map} +0 -0
- /package/dist/{components/wizard/search-modal.js.map → load-agent-defs-DGXGBU3Q.js.map} +0 -0
- /package/dist/{components/wizard/selection-card.js.map → loader-4U7UCE2Y.js.map} +0 -0
- /package/dist/{components/wizard/step-settings.js.map → recompile-project-agents-CJVBAWDJ.js.map} +0 -0
- /package/dist/{copy-local-skills-6EMVN7RB.js.map → source-loader-ZNSYJJCI.js.map} +0 -0
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
PROJECT_ROOT,
|
|
12
12
|
STANDARD_DIRS,
|
|
13
13
|
STANDARD_FILES
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-R54KIGN2.js";
|
|
15
15
|
|
|
16
16
|
// src/cli/lib/loading/loader.ts
|
|
17
17
|
import { parse as parseYaml2 } from "yaml";
|
|
@@ -173,10 +173,11 @@ function warn(msg, options) {
|
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
// src/cli/lib/schemas.ts
|
|
176
|
-
import { z } from "zod";
|
|
176
|
+
import { z as z2 } from "zod";
|
|
177
177
|
import { partition } from "remeda";
|
|
178
178
|
|
|
179
179
|
// src/cli/lib/schema-validator.ts
|
|
180
|
+
import "zod";
|
|
180
181
|
function formatZodIssue(issue) {
|
|
181
182
|
const path3 = issue.path.join(".");
|
|
182
183
|
if (issue.code === "unrecognized_keys") {
|
|
@@ -190,10 +191,14 @@ function formatZodErrors(error) {
|
|
|
190
191
|
|
|
191
192
|
// src/cli/types/generated/source-types.ts
|
|
192
193
|
var SKILL_SLUGS = [
|
|
194
|
+
"ai-planning",
|
|
195
|
+
"ai-reviewing",
|
|
193
196
|
"angular-standalone",
|
|
194
197
|
"ant-design",
|
|
195
198
|
"anthropic-sdk",
|
|
196
199
|
"api-performance",
|
|
200
|
+
"api-planning",
|
|
201
|
+
"api-reviewing",
|
|
197
202
|
"apollo-server",
|
|
198
203
|
"app-links",
|
|
199
204
|
"appwrite",
|
|
@@ -201,6 +206,7 @@ var SKILL_SLUGS = [
|
|
|
201
206
|
"auth-security",
|
|
202
207
|
"aws-sdk",
|
|
203
208
|
"axiom-pino-sentry",
|
|
209
|
+
"base-ui",
|
|
204
210
|
"better-auth-drizzle-hono",
|
|
205
211
|
"biome",
|
|
206
212
|
"ble-nfc",
|
|
@@ -212,15 +218,19 @@ var SKILL_SLUGS = [
|
|
|
212
218
|
"claude-vision",
|
|
213
219
|
"clerk",
|
|
214
220
|
"cli-commander",
|
|
221
|
+
"cli-planning",
|
|
215
222
|
"cli-reviewing",
|
|
216
223
|
"cloudflare-workers",
|
|
217
224
|
"cockroachdb",
|
|
218
225
|
"cohere-sdk",
|
|
226
|
+
"component-library",
|
|
227
|
+
"composable-components",
|
|
219
228
|
"css-animations",
|
|
220
229
|
"cva",
|
|
221
230
|
"cypress-e2e",
|
|
222
231
|
"d3",
|
|
223
232
|
"date-fns",
|
|
233
|
+
"design-tokens",
|
|
224
234
|
"detox",
|
|
225
235
|
"dnd-kit",
|
|
226
236
|
"docker",
|
|
@@ -260,6 +270,7 @@ var SKILL_SLUGS = [
|
|
|
260
270
|
"hono",
|
|
261
271
|
"huggingface-inference",
|
|
262
272
|
"image-handling",
|
|
273
|
+
"infra-reviewing",
|
|
263
274
|
"jotai",
|
|
264
275
|
"knex",
|
|
265
276
|
"kubernetes",
|
|
@@ -354,6 +365,7 @@ var SKILL_SLUGS = [
|
|
|
354
365
|
"sqlite-powersync",
|
|
355
366
|
"sse",
|
|
356
367
|
"sst",
|
|
368
|
+
"stack-detect",
|
|
357
369
|
"storybook",
|
|
358
370
|
"strapi",
|
|
359
371
|
"strategies",
|
|
@@ -377,6 +389,7 @@ var SKILL_SLUGS = [
|
|
|
377
389
|
"tauri-plugins",
|
|
378
390
|
"tauri-security",
|
|
379
391
|
"terraform",
|
|
392
|
+
"theming",
|
|
380
393
|
"tiptap",
|
|
381
394
|
"together-ai",
|
|
382
395
|
"tool-use-patterns",
|
|
@@ -395,6 +408,7 @@ var SKILL_SLUGS = [
|
|
|
395
408
|
"vercel-postgres",
|
|
396
409
|
"view-transitions",
|
|
397
410
|
"vision-camera",
|
|
411
|
+
"visual-regression",
|
|
398
412
|
"vite",
|
|
399
413
|
"vitepress",
|
|
400
414
|
"vitest",
|
|
@@ -407,12 +421,255 @@ var SKILL_SLUGS = [
|
|
|
407
421
|
"weaviate",
|
|
408
422
|
"web-accessibility",
|
|
409
423
|
"web-performance",
|
|
424
|
+
"web-planning",
|
|
425
|
+
"web-reviewing",
|
|
410
426
|
"webhooks",
|
|
411
427
|
"websockets",
|
|
428
|
+
"xquik",
|
|
412
429
|
"yoga",
|
|
413
430
|
"zod-validation",
|
|
414
431
|
"zustand"
|
|
415
432
|
];
|
|
433
|
+
var SKILL_IDS = [
|
|
434
|
+
"ai-infrastructure-huggingface-inference",
|
|
435
|
+
"ai-infrastructure-litellm",
|
|
436
|
+
"ai-infrastructure-modal",
|
|
437
|
+
"ai-infrastructure-ollama",
|
|
438
|
+
"ai-infrastructure-replicate",
|
|
439
|
+
"ai-infrastructure-together-ai",
|
|
440
|
+
"ai-observability-langfuse",
|
|
441
|
+
"ai-observability-promptfoo",
|
|
442
|
+
"ai-orchestration-langchain",
|
|
443
|
+
"ai-orchestration-llamaindex",
|
|
444
|
+
"ai-orchestration-vercel-ai-sdk",
|
|
445
|
+
"ai-patterns-tool-use-patterns",
|
|
446
|
+
"ai-provider-anthropic-sdk",
|
|
447
|
+
"ai-provider-claude-vision",
|
|
448
|
+
"ai-provider-cohere-sdk",
|
|
449
|
+
"ai-provider-elevenlabs",
|
|
450
|
+
"ai-provider-google-gemini-sdk",
|
|
451
|
+
"ai-provider-mistral-sdk",
|
|
452
|
+
"ai-provider-openai-sdk",
|
|
453
|
+
"ai-provider-openai-whisper",
|
|
454
|
+
"api-analytics-posthog-analytics",
|
|
455
|
+
"api-analytics-setup-posthog",
|
|
456
|
+
"api-auth-better-auth-drizzle-hono",
|
|
457
|
+
"api-auth-clerk",
|
|
458
|
+
"api-auth-nextauth",
|
|
459
|
+
"api-baas-appwrite",
|
|
460
|
+
"api-baas-firebase",
|
|
461
|
+
"api-baas-neon",
|
|
462
|
+
"api-baas-planetscale",
|
|
463
|
+
"api-baas-supabase",
|
|
464
|
+
"api-baas-turso",
|
|
465
|
+
"api-caching-strategies",
|
|
466
|
+
"api-cms-payload",
|
|
467
|
+
"api-cms-sanity",
|
|
468
|
+
"api-cms-strapi",
|
|
469
|
+
"api-commerce-stripe",
|
|
470
|
+
"api-database-cockroachdb",
|
|
471
|
+
"api-database-drizzle",
|
|
472
|
+
"api-database-edgedb",
|
|
473
|
+
"api-database-knex",
|
|
474
|
+
"api-database-mongodb",
|
|
475
|
+
"api-database-mongoose",
|
|
476
|
+
"api-database-mysql",
|
|
477
|
+
"api-database-postgresql",
|
|
478
|
+
"api-database-prisma",
|
|
479
|
+
"api-database-redis",
|
|
480
|
+
"api-database-sequelize",
|
|
481
|
+
"api-database-surrealdb",
|
|
482
|
+
"api-database-typeorm",
|
|
483
|
+
"api-database-upstash",
|
|
484
|
+
"api-database-vercel-kv",
|
|
485
|
+
"api-database-vercel-postgres",
|
|
486
|
+
"api-email-resend-react-email",
|
|
487
|
+
"api-email-setup-resend",
|
|
488
|
+
"api-flags-posthog-flags",
|
|
489
|
+
"api-framework-elysia",
|
|
490
|
+
"api-framework-express",
|
|
491
|
+
"api-framework-fastify",
|
|
492
|
+
"api-framework-hono",
|
|
493
|
+
"api-framework-nestjs",
|
|
494
|
+
"api-graphql-apollo-server",
|
|
495
|
+
"api-graphql-mercurius",
|
|
496
|
+
"api-graphql-yoga",
|
|
497
|
+
"api-messaging-webhooks",
|
|
498
|
+
"api-observability-axiom-pino-sentry",
|
|
499
|
+
"api-observability-setup-axiom-pino-sentry",
|
|
500
|
+
"api-performance-api-performance",
|
|
501
|
+
"api-queue-bullmq",
|
|
502
|
+
"api-search-elasticsearch",
|
|
503
|
+
"api-search-meilisearch",
|
|
504
|
+
"api-search-xquik",
|
|
505
|
+
"api-specs-openapi",
|
|
506
|
+
"api-vector-db-chroma",
|
|
507
|
+
"api-vector-db-pinecone",
|
|
508
|
+
"api-vector-db-qdrant",
|
|
509
|
+
"api-vector-db-weaviate",
|
|
510
|
+
"cli-framework-cli-commander",
|
|
511
|
+
"cli-framework-oclif-ink",
|
|
512
|
+
"cli-prompts-clack",
|
|
513
|
+
"desktop-backend-tauri",
|
|
514
|
+
"desktop-framework-electron",
|
|
515
|
+
"desktop-framework-tauri",
|
|
516
|
+
"desktop-ipc-electron",
|
|
517
|
+
"desktop-mobile-tauri",
|
|
518
|
+
"desktop-multiwindow-electron",
|
|
519
|
+
"desktop-multiwindow-tauri",
|
|
520
|
+
"desktop-packaging-electron-forge",
|
|
521
|
+
"desktop-packaging-tauri",
|
|
522
|
+
"desktop-plugins-tauri",
|
|
523
|
+
"desktop-security-electron",
|
|
524
|
+
"desktop-security-tauri",
|
|
525
|
+
"desktop-storage-electron",
|
|
526
|
+
"desktop-testing-electron",
|
|
527
|
+
"desktop-ui-electron",
|
|
528
|
+
"desktop-updates-electron-updater",
|
|
529
|
+
"infra-ci-cd-docker",
|
|
530
|
+
"infra-ci-cd-github-actions",
|
|
531
|
+
"infra-ci-cd-turborepo-ci",
|
|
532
|
+
"infra-config-setup-env",
|
|
533
|
+
"infra-containers-kubernetes",
|
|
534
|
+
"infra-iac-pulumi",
|
|
535
|
+
"infra-iac-sst",
|
|
536
|
+
"infra-iac-terraform",
|
|
537
|
+
"infra-platform-aws-sdk",
|
|
538
|
+
"infra-platform-cloudflare-workers",
|
|
539
|
+
"infra-platform-netlify",
|
|
540
|
+
"infra-platform-vercel",
|
|
541
|
+
"meta-config-stack-detect",
|
|
542
|
+
"meta-design-composable-components",
|
|
543
|
+
"meta-design-expressive-typescript",
|
|
544
|
+
"meta-methodology-research-methodology",
|
|
545
|
+
"meta-planning-ai-planning",
|
|
546
|
+
"meta-planning-api-planning",
|
|
547
|
+
"meta-planning-cli-planning",
|
|
548
|
+
"meta-planning-web-planning",
|
|
549
|
+
"meta-reviewing-ai-reviewing",
|
|
550
|
+
"meta-reviewing-api-reviewing",
|
|
551
|
+
"meta-reviewing-cli-reviewing",
|
|
552
|
+
"meta-reviewing-infra-reviewing",
|
|
553
|
+
"meta-reviewing-reviewing",
|
|
554
|
+
"meta-reviewing-web-reviewing",
|
|
555
|
+
"mobile-animation-gesture-handler",
|
|
556
|
+
"mobile-animation-reanimated",
|
|
557
|
+
"mobile-animation-skia",
|
|
558
|
+
"mobile-background-tasks",
|
|
559
|
+
"mobile-camera-vision-camera",
|
|
560
|
+
"mobile-deep-linking-app-links",
|
|
561
|
+
"mobile-deployment-eas",
|
|
562
|
+
"mobile-framework-expo",
|
|
563
|
+
"mobile-framework-react-native",
|
|
564
|
+
"mobile-hardware-ble-nfc",
|
|
565
|
+
"mobile-navigation-expo-router",
|
|
566
|
+
"mobile-navigation-react-navigation",
|
|
567
|
+
"mobile-notifications-push",
|
|
568
|
+
"mobile-performance-react-native",
|
|
569
|
+
"mobile-security-react-native",
|
|
570
|
+
"mobile-storage-mmkv",
|
|
571
|
+
"mobile-storage-sqlite-powersync",
|
|
572
|
+
"mobile-storage-watermelondb",
|
|
573
|
+
"mobile-styling-nativewind",
|
|
574
|
+
"mobile-styling-unistyles",
|
|
575
|
+
"mobile-testing-detox",
|
|
576
|
+
"mobile-testing-maestro",
|
|
577
|
+
"mobile-ui-components-react-native-paper",
|
|
578
|
+
"mobile-ui-components-tamagui",
|
|
579
|
+
"shared-monorepo-nx",
|
|
580
|
+
"shared-monorepo-pnpm-workspaces",
|
|
581
|
+
"shared-monorepo-turborepo",
|
|
582
|
+
"shared-security-auth-security",
|
|
583
|
+
"shared-tooling-biome",
|
|
584
|
+
"shared-tooling-changesets",
|
|
585
|
+
"shared-tooling-eslint-prettier",
|
|
586
|
+
"shared-tooling-git-hooks",
|
|
587
|
+
"shared-tooling-typescript-config",
|
|
588
|
+
"web-3d-react-three-fiber",
|
|
589
|
+
"web-accessibility-web-accessibility",
|
|
590
|
+
"web-animation-css-animations",
|
|
591
|
+
"web-animation-framer-motion",
|
|
592
|
+
"web-animation-view-transitions",
|
|
593
|
+
"web-data-fetching-graphql-apollo",
|
|
594
|
+
"web-data-fetching-graphql-urql",
|
|
595
|
+
"web-data-fetching-swr",
|
|
596
|
+
"web-data-fetching-trpc",
|
|
597
|
+
"web-dataviz-d3",
|
|
598
|
+
"web-dataviz-recharts",
|
|
599
|
+
"web-dnd-dnd-kit",
|
|
600
|
+
"web-editor-lexical",
|
|
601
|
+
"web-editor-tiptap",
|
|
602
|
+
"web-error-handling-error-boundaries",
|
|
603
|
+
"web-error-handling-result-types",
|
|
604
|
+
"web-files-file-upload-patterns",
|
|
605
|
+
"web-files-image-handling",
|
|
606
|
+
"web-forms-react-hook-form",
|
|
607
|
+
"web-forms-tanstack-form",
|
|
608
|
+
"web-forms-vee-validate",
|
|
609
|
+
"web-forms-zod-validation",
|
|
610
|
+
"web-framework-angular-standalone",
|
|
611
|
+
"web-framework-react",
|
|
612
|
+
"web-framework-solidjs",
|
|
613
|
+
"web-framework-svelte",
|
|
614
|
+
"web-framework-vue-composition-api",
|
|
615
|
+
"web-i18n-next-intl",
|
|
616
|
+
"web-i18n-react-intl",
|
|
617
|
+
"web-i18n-vue-i18n",
|
|
618
|
+
"web-maps-leaflet",
|
|
619
|
+
"web-maps-mapbox",
|
|
620
|
+
"web-meta-framework-astro",
|
|
621
|
+
"web-meta-framework-docusaurus",
|
|
622
|
+
"web-meta-framework-nextjs",
|
|
623
|
+
"web-meta-framework-nuxt",
|
|
624
|
+
"web-meta-framework-qwik",
|
|
625
|
+
"web-meta-framework-remix",
|
|
626
|
+
"web-meta-framework-sveltekit",
|
|
627
|
+
"web-meta-framework-vitepress",
|
|
628
|
+
"web-mocks-msw",
|
|
629
|
+
"web-performance-web-performance",
|
|
630
|
+
"web-pwa-offline-first",
|
|
631
|
+
"web-pwa-service-workers",
|
|
632
|
+
"web-realtime-socket-io",
|
|
633
|
+
"web-realtime-sse",
|
|
634
|
+
"web-realtime-websockets",
|
|
635
|
+
"web-routing-react-router",
|
|
636
|
+
"web-routing-tanstack-router",
|
|
637
|
+
"web-server-state-react-query",
|
|
638
|
+
"web-state-jotai",
|
|
639
|
+
"web-state-mobx",
|
|
640
|
+
"web-state-ngrx-signalstore",
|
|
641
|
+
"web-state-pinia",
|
|
642
|
+
"web-state-redux-toolkit",
|
|
643
|
+
"web-state-zustand",
|
|
644
|
+
"web-styling-cva",
|
|
645
|
+
"web-styling-design-tokens",
|
|
646
|
+
"web-styling-scss-modules",
|
|
647
|
+
"web-styling-tailwind",
|
|
648
|
+
"web-styling-theming",
|
|
649
|
+
"web-testing-cypress-e2e",
|
|
650
|
+
"web-testing-playwright-e2e",
|
|
651
|
+
"web-testing-react-testing-library",
|
|
652
|
+
"web-testing-visual-regression",
|
|
653
|
+
"web-testing-vitest",
|
|
654
|
+
"web-testing-vue-test-utils",
|
|
655
|
+
"web-tooling-component-library",
|
|
656
|
+
"web-tooling-storybook",
|
|
657
|
+
"web-tooling-vite",
|
|
658
|
+
"web-ui-ant-design",
|
|
659
|
+
"web-ui-base-ui",
|
|
660
|
+
"web-ui-chakra-ui",
|
|
661
|
+
"web-ui-headless-ui",
|
|
662
|
+
"web-ui-mantine",
|
|
663
|
+
"web-ui-mui",
|
|
664
|
+
"web-ui-radix-ui",
|
|
665
|
+
"web-ui-shadcn-ui",
|
|
666
|
+
"web-ui-tanstack-table",
|
|
667
|
+
"web-ui-vuetify",
|
|
668
|
+
"web-utilities-date-fns",
|
|
669
|
+
"web-utilities-native-js",
|
|
670
|
+
"web-utilities-rxjs",
|
|
671
|
+
"web-utilities-vueuse"
|
|
672
|
+
];
|
|
416
673
|
var CATEGORIES = [
|
|
417
674
|
"ai-infrastructure",
|
|
418
675
|
"ai-observability",
|
|
@@ -426,16 +683,19 @@ var CATEGORIES = [
|
|
|
426
683
|
"api-caching",
|
|
427
684
|
"api-cms",
|
|
428
685
|
"api-commerce",
|
|
429
|
-
"api-
|
|
686
|
+
"api-db-host",
|
|
687
|
+
"api-document",
|
|
430
688
|
"api-email",
|
|
431
|
-
"api-framework",
|
|
432
689
|
"api-graphql",
|
|
690
|
+
"api-kv",
|
|
433
691
|
"api-messaging",
|
|
434
692
|
"api-observability",
|
|
693
|
+
"api-orm",
|
|
435
694
|
"api-performance",
|
|
436
695
|
"api-queue",
|
|
437
696
|
"api-search",
|
|
438
697
|
"api-specs",
|
|
698
|
+
"api-sql-engine",
|
|
439
699
|
"api-vector-db",
|
|
440
700
|
"cli-framework",
|
|
441
701
|
"cli-prompts",
|
|
@@ -458,6 +718,7 @@ var CATEGORIES = [
|
|
|
458
718
|
"infra-platform",
|
|
459
719
|
"meta-design",
|
|
460
720
|
"meta-methodology",
|
|
721
|
+
"meta-planning",
|
|
461
722
|
"meta-reviewing",
|
|
462
723
|
"mobile-animation",
|
|
463
724
|
"mobile-background",
|
|
@@ -474,8 +735,10 @@ var CATEGORIES = [
|
|
|
474
735
|
"mobile-styling",
|
|
475
736
|
"mobile-testing",
|
|
476
737
|
"mobile-ui-components",
|
|
738
|
+
"shared-lint",
|
|
477
739
|
"shared-monorepo",
|
|
478
740
|
"shared-security",
|
|
741
|
+
"shared-task-runner",
|
|
479
742
|
"shared-tooling",
|
|
480
743
|
"web-3d",
|
|
481
744
|
"web-accessibility",
|
|
@@ -483,12 +746,16 @@ var CATEGORIES = [
|
|
|
483
746
|
"web-client-state",
|
|
484
747
|
"web-dataviz",
|
|
485
748
|
"web-dnd",
|
|
749
|
+
"web-docs",
|
|
750
|
+
"web-e2e",
|
|
486
751
|
"web-editor",
|
|
487
752
|
"web-error-handling",
|
|
488
753
|
"web-file-upload",
|
|
489
754
|
"web-files",
|
|
755
|
+
"web-form-library",
|
|
490
756
|
"web-forms",
|
|
491
757
|
"web-framework",
|
|
758
|
+
"web-graphql-client",
|
|
492
759
|
"web-i18n",
|
|
493
760
|
"web-maps",
|
|
494
761
|
"web-meta-framework",
|
|
@@ -497,11 +764,14 @@ var CATEGORIES = [
|
|
|
497
764
|
"web-pwa",
|
|
498
765
|
"web-realtime",
|
|
499
766
|
"web-routing",
|
|
767
|
+
"web-rpc",
|
|
500
768
|
"web-server-state",
|
|
769
|
+
"web-streaming",
|
|
501
770
|
"web-styling",
|
|
502
771
|
"web-testing",
|
|
503
772
|
"web-tooling",
|
|
504
773
|
"web-ui-components",
|
|
774
|
+
"web-ui-kit",
|
|
505
775
|
"web-utilities"
|
|
506
776
|
];
|
|
507
777
|
var DOMAINS = [
|
|
@@ -518,26 +788,21 @@ var DOMAINS = [
|
|
|
518
788
|
var AGENT_NAMES = [
|
|
519
789
|
"agent-summoner",
|
|
520
790
|
"ai-developer",
|
|
521
|
-
"ai-
|
|
791
|
+
"ai-researcher",
|
|
792
|
+
"ai-tester",
|
|
522
793
|
"api-developer",
|
|
523
|
-
"api-pm",
|
|
524
794
|
"api-researcher",
|
|
525
|
-
"api-reviewer",
|
|
526
795
|
"api-tester",
|
|
527
796
|
"cli-developer",
|
|
528
|
-
"cli-
|
|
797
|
+
"cli-researcher",
|
|
529
798
|
"cli-tester",
|
|
530
799
|
"codex-keeper",
|
|
531
800
|
"convention-keeper",
|
|
532
|
-
"
|
|
533
|
-
"
|
|
801
|
+
"pm",
|
|
802
|
+
"reviewer",
|
|
534
803
|
"skill-summoner",
|
|
535
|
-
"web-architecture",
|
|
536
804
|
"web-developer",
|
|
537
|
-
"web-pattern-critique",
|
|
538
|
-
"web-pm",
|
|
539
805
|
"web-researcher",
|
|
540
|
-
"web-reviewer",
|
|
541
806
|
"web-tester"
|
|
542
807
|
];
|
|
543
808
|
|
|
@@ -554,17 +819,10 @@ var PERMISSION_MODES = [
|
|
|
554
819
|
];
|
|
555
820
|
|
|
556
821
|
// src/cli/lib/schemas.ts
|
|
557
|
-
var
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
boundTo: z.string(),
|
|
562
|
-
description: z.string().optional()
|
|
563
|
-
});
|
|
564
|
-
var modelNameSchema = z.enum(MODEL_NAMES);
|
|
565
|
-
var effortLevelSchema = z.enum(EFFORT_NAMES);
|
|
566
|
-
var permissionModeSchema = z.enum(PERMISSION_MODES);
|
|
567
|
-
var skillSlugSchema = z.enum(SKILL_SLUGS);
|
|
822
|
+
var modelNameSchema = z2.enum(MODEL_NAMES);
|
|
823
|
+
var effortLevelSchema = z2.enum(EFFORT_NAMES);
|
|
824
|
+
var permissionModeSchema = z2.enum(PERMISSION_MODES);
|
|
825
|
+
var skillSlugSchema = z2.enum(SKILL_SLUGS);
|
|
568
826
|
function validateCategoryField(val, ctx) {
|
|
569
827
|
if (!val.category) return;
|
|
570
828
|
if (val.custom) {
|
|
@@ -584,7 +842,7 @@ function validateCategoryField(val, ctx) {
|
|
|
584
842
|
}
|
|
585
843
|
}
|
|
586
844
|
}
|
|
587
|
-
var categoryPathSchema =
|
|
845
|
+
var categoryPathSchema = z2.string().refine(
|
|
588
846
|
(val) => {
|
|
589
847
|
if (val === LOCAL_PSEUDO_CATEGORY) return true;
|
|
590
848
|
if (CATEGORIES.includes(val)) return true;
|
|
@@ -594,456 +852,426 @@ var categoryPathSchema = z.string().refine(
|
|
|
594
852
|
message: "Must be a valid category path (e.g., 'web-framework', 'shared-testing', or 'local')"
|
|
595
853
|
}
|
|
596
854
|
);
|
|
597
|
-
var agentHookActionSchema =
|
|
598
|
-
type:
|
|
599
|
-
command:
|
|
600
|
-
script:
|
|
601
|
-
prompt:
|
|
855
|
+
var agentHookActionSchema = z2.object({
|
|
856
|
+
type: z2.enum(["command", "script", "prompt"]),
|
|
857
|
+
command: z2.string().exactOptional(),
|
|
858
|
+
script: z2.string().exactOptional(),
|
|
859
|
+
prompt: z2.string().exactOptional()
|
|
602
860
|
});
|
|
603
|
-
var agentHookDefinitionSchema =
|
|
604
|
-
matcher:
|
|
605
|
-
hooks:
|
|
861
|
+
var agentHookDefinitionSchema = z2.object({
|
|
862
|
+
matcher: z2.string().exactOptional(),
|
|
863
|
+
hooks: z2.array(agentHookActionSchema).exactOptional()
|
|
606
864
|
});
|
|
607
|
-
var hooksRecordSchema =
|
|
608
|
-
var strictAgentHookDefinitionSchema =
|
|
609
|
-
matcher:
|
|
610
|
-
hooks:
|
|
865
|
+
var hooksRecordSchema = z2.record(z2.string(), z2.array(agentHookDefinitionSchema));
|
|
866
|
+
var strictAgentHookDefinitionSchema = z2.object({
|
|
867
|
+
matcher: z2.string().exactOptional(),
|
|
868
|
+
hooks: z2.array(agentHookActionSchema).min(1)
|
|
611
869
|
});
|
|
612
|
-
var strictHooksRecordSchema =
|
|
613
|
-
|
|
614
|
-
|
|
870
|
+
var strictHooksRecordSchema = z2.record(
|
|
871
|
+
z2.string(),
|
|
872
|
+
z2.array(strictAgentHookDefinitionSchema)
|
|
615
873
|
);
|
|
616
|
-
var skillAssignmentSchema =
|
|
617
|
-
id:
|
|
618
|
-
preloaded:
|
|
619
|
-
local:
|
|
620
|
-
path:
|
|
874
|
+
var skillAssignmentSchema = z2.object({
|
|
875
|
+
id: z2.string(),
|
|
876
|
+
preloaded: z2.boolean().exactOptional(),
|
|
877
|
+
local: z2.boolean().exactOptional(),
|
|
878
|
+
path: z2.string().exactOptional()
|
|
621
879
|
});
|
|
622
|
-
var skillFrontmatterLoaderSchema =
|
|
880
|
+
var skillFrontmatterLoaderSchema = z2.object({
|
|
623
881
|
/** Lenient (any string): local/custom skills have non-builtin IDs */
|
|
624
|
-
name:
|
|
625
|
-
description:
|
|
626
|
-
model: modelNameSchema.
|
|
882
|
+
name: z2.string(),
|
|
883
|
+
description: z2.string(),
|
|
884
|
+
model: modelNameSchema.exactOptional()
|
|
627
885
|
});
|
|
628
|
-
var skillMetadataLoaderSchema =
|
|
886
|
+
var skillMetadataLoaderSchema = z2.object({
|
|
629
887
|
// Field accepts any string; cross-field validation in superRefine enforces strict/custom rules
|
|
630
|
-
category:
|
|
631
|
-
author:
|
|
632
|
-
domain:
|
|
633
|
-
custom:
|
|
888
|
+
category: z2.string().exactOptional(),
|
|
889
|
+
author: z2.string().exactOptional(),
|
|
890
|
+
domain: z2.string(),
|
|
891
|
+
custom: z2.boolean().exactOptional()
|
|
634
892
|
}).passthrough().superRefine(validateCategoryField);
|
|
635
|
-
var matrixRawMetadataSchema =
|
|
893
|
+
var matrixRawMetadataSchema = z2.object({
|
|
636
894
|
category: categoryPathSchema,
|
|
637
|
-
author:
|
|
638
|
-
displayName:
|
|
639
|
-
slug:
|
|
640
|
-
cliDescription:
|
|
641
|
-
usageGuidance:
|
|
895
|
+
author: z2.string(),
|
|
896
|
+
displayName: z2.string().exactOptional(),
|
|
897
|
+
slug: z2.string(),
|
|
898
|
+
cliDescription: z2.string().exactOptional(),
|
|
899
|
+
usageGuidance: z2.string().exactOptional(),
|
|
642
900
|
// Boundary cast: domain is a string at the YAML parse boundary; narrowed to Domain type
|
|
643
|
-
domain:
|
|
644
|
-
custom:
|
|
901
|
+
domain: z2.string(),
|
|
902
|
+
custom: z2.boolean().exactOptional()
|
|
645
903
|
});
|
|
646
|
-
var pluginAuthorSchema =
|
|
647
|
-
name:
|
|
648
|
-
email:
|
|
904
|
+
var pluginAuthorSchema = z2.object({
|
|
905
|
+
name: z2.string().min(1),
|
|
906
|
+
email: z2.string().exactOptional()
|
|
649
907
|
});
|
|
650
|
-
var pluginManifestObjectSchema =
|
|
651
|
-
name:
|
|
652
|
-
version:
|
|
653
|
-
description:
|
|
654
|
-
author: pluginAuthorSchema.
|
|
655
|
-
keywords:
|
|
656
|
-
commands:
|
|
657
|
-
agents:
|
|
658
|
-
skills:
|
|
659
|
-
hooks:
|
|
908
|
+
var pluginManifestObjectSchema = z2.object({
|
|
909
|
+
name: z2.string(),
|
|
910
|
+
version: z2.string().exactOptional(),
|
|
911
|
+
description: z2.string().exactOptional(),
|
|
912
|
+
author: pluginAuthorSchema.exactOptional(),
|
|
913
|
+
keywords: z2.array(z2.string()).exactOptional(),
|
|
914
|
+
commands: z2.union([z2.string(), z2.array(z2.string())]).exactOptional(),
|
|
915
|
+
agents: z2.union([z2.string(), z2.array(z2.string())]).exactOptional(),
|
|
916
|
+
skills: z2.union([z2.string(), z2.array(z2.string())]).exactOptional(),
|
|
917
|
+
hooks: z2.union([z2.string(), hooksRecordSchema]).exactOptional()
|
|
660
918
|
});
|
|
661
919
|
var pluginManifestSchema = pluginManifestObjectSchema;
|
|
662
920
|
var pluginManifestValidationSchema = pluginManifestObjectSchema.strict();
|
|
663
|
-
var agentYamlConfigSchema =
|
|
664
|
-
id:
|
|
665
|
-
title:
|
|
666
|
-
description:
|
|
667
|
-
model: modelNameSchema.
|
|
668
|
-
effort: effortLevelSchema.
|
|
669
|
-
tools:
|
|
670
|
-
disallowedTools:
|
|
671
|
-
permissionMode: permissionModeSchema.
|
|
672
|
-
hooks: hooksRecordSchema.
|
|
673
|
-
outputFormat:
|
|
674
|
-
domain:
|
|
675
|
-
custom:
|
|
921
|
+
var agentYamlConfigSchema = z2.object({
|
|
922
|
+
id: z2.string(),
|
|
923
|
+
title: z2.string(),
|
|
924
|
+
description: z2.string(),
|
|
925
|
+
model: modelNameSchema.exactOptional(),
|
|
926
|
+
effort: effortLevelSchema.exactOptional(),
|
|
927
|
+
tools: z2.array(z2.string()),
|
|
928
|
+
disallowedTools: z2.array(z2.string()).exactOptional(),
|
|
929
|
+
permissionMode: permissionModeSchema.exactOptional(),
|
|
930
|
+
hooks: hooksRecordSchema.exactOptional(),
|
|
931
|
+
outputFormat: z2.string().exactOptional(),
|
|
932
|
+
domain: z2.string().exactOptional(),
|
|
933
|
+
custom: z2.boolean().exactOptional()
|
|
676
934
|
});
|
|
677
|
-
var skillAssignmentElementSchema =
|
|
678
|
-
|
|
935
|
+
var skillAssignmentElementSchema = z2.union([
|
|
936
|
+
z2.string(),
|
|
679
937
|
skillAssignmentSchema
|
|
680
938
|
]);
|
|
681
|
-
var stackAgentConfigSchema =
|
|
682
|
-
|
|
683
|
-
|
|
939
|
+
var stackAgentConfigSchema = z2.record(
|
|
940
|
+
z2.string(),
|
|
941
|
+
z2.union([skillAssignmentElementSchema, z2.array(skillAssignmentElementSchema)])
|
|
684
942
|
);
|
|
685
|
-
var projectConfigLoaderSchema =
|
|
943
|
+
var projectConfigLoaderSchema = z2.object({
|
|
686
944
|
/** Project/plugin name in kebab-case */
|
|
687
|
-
name:
|
|
688
|
-
description:
|
|
945
|
+
name: z2.string().exactOptional(),
|
|
946
|
+
description: z2.string().exactOptional(),
|
|
689
947
|
/** Per-agent configuration with scope (e.g., [{ name: "web-developer", scope: "project" }]) */
|
|
690
|
-
agents:
|
|
691
|
-
|
|
692
|
-
name:
|
|
693
|
-
scope:
|
|
948
|
+
agents: z2.array(
|
|
949
|
+
z2.object({
|
|
950
|
+
name: z2.string(),
|
|
951
|
+
scope: z2.enum(["project", "global"]),
|
|
694
952
|
/** Per-agent overrides of the agent's own metadata defaults */
|
|
695
|
-
model: modelNameSchema.
|
|
696
|
-
effort: effortLevelSchema.
|
|
697
|
-
excluded:
|
|
953
|
+
model: modelNameSchema.exactOptional(),
|
|
954
|
+
effort: effortLevelSchema.exactOptional(),
|
|
955
|
+
excluded: z2.boolean().exactOptional()
|
|
698
956
|
})
|
|
699
|
-
).
|
|
957
|
+
).exactOptional(),
|
|
700
958
|
/** Per-skill configuration with scope and source */
|
|
701
|
-
skills:
|
|
702
|
-
|
|
703
|
-
id:
|
|
704
|
-
scope:
|
|
705
|
-
source:
|
|
706
|
-
excluded:
|
|
959
|
+
skills: z2.array(
|
|
960
|
+
z2.object({
|
|
961
|
+
id: z2.string(),
|
|
962
|
+
scope: z2.enum(["project", "global"]),
|
|
963
|
+
source: z2.string(),
|
|
964
|
+
excluded: z2.boolean().exactOptional()
|
|
707
965
|
})
|
|
708
|
-
).
|
|
966
|
+
).exactOptional(),
|
|
709
967
|
/** Author handle (e.g., "@vince") */
|
|
710
|
-
author:
|
|
968
|
+
author: z2.string().exactOptional(),
|
|
711
969
|
/** Selected domains from the wizard (persisted for edit mode restoration) */
|
|
712
|
-
|
|
713
|
-
/** Selected agents from the wizard (persisted for edit mode restoration) */
|
|
714
|
-
selectedAgents: z.array(z.string()).optional(),
|
|
970
|
+
selectedDomains: z2.array(z2.string()).exactOptional(),
|
|
715
971
|
/** Agent-to-category-to-skill mappings from selected stack (accepts same formats as stacks.ts) */
|
|
716
|
-
stack:
|
|
972
|
+
stack: z2.record(z2.string(), stackAgentConfigSchema).exactOptional(),
|
|
717
973
|
/** Skills source path or URL (e.g., "github:my-org/skills") */
|
|
718
|
-
source:
|
|
974
|
+
source: z2.string().exactOptional(),
|
|
719
975
|
/** Marketplace identifier for plugin installation */
|
|
720
|
-
marketplace:
|
|
976
|
+
marketplace: z2.string().exactOptional(),
|
|
721
977
|
/** Separate source for agents when different from skills source */
|
|
722
|
-
agentsSource:
|
|
978
|
+
agentsSource: z2.string().exactOptional(),
|
|
723
979
|
/** Tracked project installation paths (global config only) */
|
|
724
|
-
projects:
|
|
980
|
+
projects: z2.array(z2.string()).exactOptional()
|
|
725
981
|
}).passthrough();
|
|
726
|
-
var categoryDefinitionSchema =
|
|
727
|
-
id:
|
|
728
|
-
displayName:
|
|
729
|
-
description:
|
|
730
|
-
domain:
|
|
731
|
-
exclusive:
|
|
732
|
-
required:
|
|
733
|
-
order:
|
|
734
|
-
icon:
|
|
982
|
+
var categoryDefinitionSchema = z2.object({
|
|
983
|
+
id: z2.string(),
|
|
984
|
+
displayName: z2.string(),
|
|
985
|
+
description: z2.string(),
|
|
986
|
+
domain: z2.string().exactOptional(),
|
|
987
|
+
exclusive: z2.boolean(),
|
|
988
|
+
required: z2.boolean(),
|
|
989
|
+
order: z2.number(),
|
|
990
|
+
icon: z2.string().exactOptional()
|
|
735
991
|
});
|
|
736
992
|
var skillRefInRules = skillSlugSchema;
|
|
737
|
-
var skillGroupRuleSchema =
|
|
738
|
-
skills:
|
|
739
|
-
reason:
|
|
993
|
+
var skillGroupRuleSchema = z2.object({
|
|
994
|
+
skills: z2.array(skillRefInRules).min(2),
|
|
995
|
+
reason: z2.string()
|
|
740
996
|
});
|
|
741
997
|
var conflictRuleSchema = skillGroupRuleSchema;
|
|
742
998
|
var discourageRuleSchema = skillGroupRuleSchema;
|
|
743
|
-
var
|
|
999
|
+
var requireRuleSchema = z2.object({
|
|
744
1000
|
skill: skillRefInRules,
|
|
745
|
-
|
|
1001
|
+
needs: z2.array(skillRefInRules).min(1),
|
|
1002
|
+
needsAny: z2.boolean().exactOptional(),
|
|
1003
|
+
reason: z2.string()
|
|
746
1004
|
});
|
|
747
|
-
var
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
needs: z.array(skillRefInRules).min(1),
|
|
751
|
-
needsAny: z.boolean().optional(),
|
|
752
|
-
reason: z.string()
|
|
1005
|
+
var alternativeGroupSchema = z2.object({
|
|
1006
|
+
purpose: z2.string(),
|
|
1007
|
+
skills: z2.array(skillRefInRules).min(1)
|
|
753
1008
|
});
|
|
754
|
-
var
|
|
755
|
-
|
|
756
|
-
|
|
1009
|
+
var relationshipDefinitionsSchema = z2.object({
|
|
1010
|
+
conflicts: z2.array(conflictRuleSchema),
|
|
1011
|
+
discourages: z2.array(discourageRuleSchema),
|
|
1012
|
+
requires: z2.array(requireRuleSchema),
|
|
1013
|
+
alternatives: z2.array(alternativeGroupSchema)
|
|
757
1014
|
});
|
|
758
|
-
var
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
recommends: z.array(recommendationSchema),
|
|
762
|
-
requires: z.array(requireRuleSchema),
|
|
763
|
-
alternatives: z.array(alternativeGroupSchema),
|
|
764
|
-
compatibleWith: z.array(compatibilityGroupSchema).optional().default([])
|
|
1015
|
+
var skillCategoriesFileSchema = z2.object({
|
|
1016
|
+
version: z2.string(),
|
|
1017
|
+
categories: z2.record(z2.string(), categoryDefinitionSchema)
|
|
765
1018
|
});
|
|
766
|
-
var
|
|
767
|
-
version:
|
|
768
|
-
|
|
1019
|
+
var skillRulesFileSchema = z2.object({
|
|
1020
|
+
version: z2.string(),
|
|
1021
|
+
relationships: relationshipDefinitionsSchema.exactOptional()
|
|
769
1022
|
});
|
|
770
|
-
var
|
|
771
|
-
version: z.string(),
|
|
772
|
-
relationships: relationshipDefinitionsSchema.optional()
|
|
773
|
-
});
|
|
774
|
-
var localRawMetadataSchema = z.object({
|
|
1023
|
+
var localRawMetadataSchema = z2.object({
|
|
775
1024
|
/** Short name shown in the wizard grid (e.g., "my-custom-react") */
|
|
776
|
-
displayName:
|
|
1025
|
+
displayName: z2.string(),
|
|
777
1026
|
/** Kebab-case short key for alias resolution (e.g., "react") */
|
|
778
|
-
slug:
|
|
1027
|
+
slug: z2.string(),
|
|
779
1028
|
/** One-line description for the wizard */
|
|
780
|
-
cliDescription:
|
|
1029
|
+
cliDescription: z2.string().exactOptional(),
|
|
781
1030
|
/** Category to place this skill in (e.g., "web-framework") */
|
|
782
1031
|
// Field accepts any string; cross-field validation in superRefine enforces strict/custom rules
|
|
783
|
-
category:
|
|
1032
|
+
category: z2.string(),
|
|
784
1033
|
/** When an AI agent should invoke this skill */
|
|
785
|
-
usageGuidance:
|
|
1034
|
+
usageGuidance: z2.string().exactOptional(),
|
|
786
1035
|
/** Domain this skill belongs to (e.g., "web", "api", "cli") */
|
|
787
|
-
domain:
|
|
1036
|
+
domain: z2.string(),
|
|
788
1037
|
/** True if this skill was created outside the CLI's built-in vocabulary */
|
|
789
|
-
custom:
|
|
1038
|
+
custom: z2.boolean().exactOptional()
|
|
790
1039
|
}).passthrough().superRefine(validateCategoryField);
|
|
791
|
-
var localSkillMetadataSchema =
|
|
792
|
-
forkedFrom:
|
|
1040
|
+
var localSkillMetadataSchema = z2.object({
|
|
1041
|
+
forkedFrom: z2.object({
|
|
793
1042
|
/** Original skill ID before forking — lenient (any string) since custom/extra-source skills have non-builtin IDs */
|
|
794
|
-
skillId:
|
|
1043
|
+
skillId: z2.string(),
|
|
795
1044
|
/** SHA hash of the original content at fork time (for diff detection) */
|
|
796
|
-
contentHash:
|
|
1045
|
+
contentHash: z2.string(),
|
|
797
1046
|
/** ISO date when the fork was created */
|
|
798
|
-
date:
|
|
1047
|
+
date: z2.string(),
|
|
799
1048
|
/** Source URL the skill was installed from (e.g., "github:agents-inc/skills") */
|
|
800
|
-
source:
|
|
801
|
-
}).
|
|
1049
|
+
source: z2.string().exactOptional()
|
|
1050
|
+
}).exactOptional()
|
|
802
1051
|
}).passthrough();
|
|
803
|
-
var stackSchema =
|
|
804
|
-
id:
|
|
805
|
-
name:
|
|
806
|
-
description:
|
|
1052
|
+
var stackSchema = z2.object({
|
|
1053
|
+
id: z2.string().min(1),
|
|
1054
|
+
name: z2.string().min(1),
|
|
1055
|
+
description: z2.string(),
|
|
807
1056
|
/** Maps agent IDs to their category-to-skill assignments */
|
|
808
|
-
agents:
|
|
1057
|
+
agents: z2.record(z2.string(), stackAgentConfigSchema),
|
|
809
1058
|
/** High-level philosophy guiding this stack's technology choices */
|
|
810
|
-
philosophy:
|
|
1059
|
+
philosophy: z2.string().exactOptional()
|
|
811
1060
|
});
|
|
812
|
-
var stacksConfigSchema =
|
|
813
|
-
stacks:
|
|
1061
|
+
var stacksConfigSchema = z2.object({
|
|
1062
|
+
stacks: z2.array(stackSchema).min(1)
|
|
814
1063
|
});
|
|
815
|
-
var marketplaceRemoteSourceSchema =
|
|
816
|
-
source:
|
|
817
|
-
repo:
|
|
818
|
-
url:
|
|
819
|
-
ref:
|
|
1064
|
+
var marketplaceRemoteSourceSchema = z2.object({
|
|
1065
|
+
source: z2.enum(["github", "url"]),
|
|
1066
|
+
repo: z2.string().exactOptional(),
|
|
1067
|
+
url: z2.string().exactOptional(),
|
|
1068
|
+
ref: z2.string().exactOptional()
|
|
820
1069
|
});
|
|
821
|
-
var marketplacePluginSchema =
|
|
822
|
-
name:
|
|
1070
|
+
var marketplacePluginSchema = z2.object({
|
|
1071
|
+
name: z2.string().min(1),
|
|
823
1072
|
/** Local directory path (relative to pluginRoot) or remote source config */
|
|
824
|
-
source:
|
|
825
|
-
description:
|
|
826
|
-
version:
|
|
827
|
-
author: pluginAuthorSchema.
|
|
1073
|
+
source: z2.union([z2.string(), marketplaceRemoteSourceSchema]),
|
|
1074
|
+
description: z2.string().exactOptional(),
|
|
1075
|
+
version: z2.string().exactOptional(),
|
|
1076
|
+
author: pluginAuthorSchema.exactOptional(),
|
|
828
1077
|
/** Lenient: external data may have any category string or none at all */
|
|
829
|
-
category:
|
|
830
|
-
keywords:
|
|
1078
|
+
category: z2.string().exactOptional(),
|
|
1079
|
+
keywords: z2.array(z2.string()).exactOptional()
|
|
831
1080
|
});
|
|
832
1081
|
var marketplaceOwnerSchema = pluginAuthorSchema;
|
|
833
|
-
var marketplaceMetadataSchema =
|
|
1082
|
+
var marketplaceMetadataSchema = z2.object({
|
|
834
1083
|
/** Base directory for resolving plugin source paths (e.g., "plugins/") */
|
|
835
|
-
pluginRoot:
|
|
1084
|
+
pluginRoot: z2.string().exactOptional()
|
|
836
1085
|
});
|
|
837
|
-
var marketplaceSchema =
|
|
838
|
-
$schema:
|
|
839
|
-
name:
|
|
840
|
-
version:
|
|
841
|
-
description:
|
|
1086
|
+
var marketplaceSchema = z2.object({
|
|
1087
|
+
$schema: z2.string().exactOptional(),
|
|
1088
|
+
name: z2.string().min(1),
|
|
1089
|
+
version: z2.string().min(1),
|
|
1090
|
+
description: z2.string().exactOptional(),
|
|
842
1091
|
owner: marketplaceOwnerSchema,
|
|
843
|
-
metadata: marketplaceMetadataSchema.
|
|
844
|
-
plugins:
|
|
1092
|
+
metadata: marketplaceMetadataSchema.exactOptional(),
|
|
1093
|
+
plugins: z2.array(marketplacePluginSchema).min(1)
|
|
1094
|
+
});
|
|
1095
|
+
var sourceRevalidationSchema = z2.object({
|
|
1096
|
+
/** The tarball URL giget resolved for this source. */
|
|
1097
|
+
tar: z2.string().min(1),
|
|
1098
|
+
etag: z2.string().min(1).exactOptional()
|
|
845
1099
|
});
|
|
846
|
-
var permissionConfigSchema =
|
|
1100
|
+
var permissionConfigSchema = z2.object({
|
|
847
1101
|
/** Tool names or patterns to explicitly allow */
|
|
848
|
-
allow:
|
|
1102
|
+
allow: z2.array(z2.string()).exactOptional(),
|
|
849
1103
|
/** Tool names or patterns to explicitly deny */
|
|
850
|
-
deny:
|
|
1104
|
+
deny: z2.array(z2.string()).exactOptional()
|
|
851
1105
|
});
|
|
852
|
-
var settingsFileSchema =
|
|
853
|
-
permissions: permissionConfigSchema.
|
|
1106
|
+
var settingsFileSchema = z2.object({
|
|
1107
|
+
permissions: permissionConfigSchema.exactOptional()
|
|
854
1108
|
}).passthrough();
|
|
855
|
-
var
|
|
856
|
-
forkedFrom: z.object({
|
|
857
|
-
/** Source URL or identifier where the skill was imported from */
|
|
858
|
-
source: z.string(),
|
|
859
|
-
/** Original skill name in the source */
|
|
860
|
-
skillName: z.string(),
|
|
861
|
-
/** SHA hash of the original content at import time */
|
|
862
|
-
contentHash: z.string(),
|
|
863
|
-
/** ISO date when the import was performed */
|
|
864
|
-
date: z.string()
|
|
865
|
-
}).optional()
|
|
866
|
-
}).passthrough();
|
|
867
|
-
var brandingConfigSchema = z.object({
|
|
1109
|
+
var brandingConfigSchema = z2.object({
|
|
868
1110
|
/** Custom CLI name (e.g., "Acme Dev Tools") */
|
|
869
|
-
name:
|
|
1111
|
+
name: z2.string().exactOptional(),
|
|
870
1112
|
/** Custom tagline shown in wizard header */
|
|
871
|
-
tagline:
|
|
1113
|
+
tagline: z2.string().exactOptional()
|
|
872
1114
|
});
|
|
873
|
-
var projectSourceConfigSchema =
|
|
1115
|
+
var projectSourceConfigSchema = z2.object({
|
|
874
1116
|
/** Primary skills source (path or URL) */
|
|
875
|
-
source:
|
|
1117
|
+
source: z2.string().exactOptional(),
|
|
876
1118
|
/** Author handle for this project's config */
|
|
877
|
-
author:
|
|
1119
|
+
author: z2.string().exactOptional(),
|
|
878
1120
|
/** Marketplace identifier for plugin installation */
|
|
879
|
-
marketplace:
|
|
1121
|
+
marketplace: z2.string().exactOptional(),
|
|
880
1122
|
/** Separate source for agent definitions (when different from skills) */
|
|
881
|
-
agentsSource:
|
|
882
|
-
/** Additional skill sources (private marketplaces, custom repos) */
|
|
883
|
-
sources: z.array(
|
|
884
|
-
z.object({
|
|
885
|
-
/** Display name for the source (shown in wizard) */
|
|
886
|
-
name: z.string(),
|
|
887
|
-
/** Source URL (e.g., "github:acme-corp/claude-skills") */
|
|
888
|
-
url: z.string(),
|
|
889
|
-
description: z.string().optional(),
|
|
890
|
-
/** Git ref (branch/tag/commit) for the source */
|
|
891
|
-
ref: z.string().optional()
|
|
892
|
-
})
|
|
893
|
-
).optional(),
|
|
894
|
-
/** Skills explicitly bound to categories via search (from Step Sources) */
|
|
895
|
-
boundSkills: z.array(boundSkillSchema).optional(),
|
|
1123
|
+
agentsSource: z2.string().exactOptional(),
|
|
896
1124
|
/** Branding overrides for white-labeling the CLI */
|
|
897
|
-
branding: brandingConfigSchema.
|
|
1125
|
+
branding: brandingConfigSchema.exactOptional(),
|
|
898
1126
|
/** Custom skills directory override (default: "src/skills") */
|
|
899
|
-
skillsDir:
|
|
1127
|
+
skillsDir: z2.string().exactOptional(),
|
|
900
1128
|
/** Custom agents directory override (default: "src/agents") */
|
|
901
|
-
agentsDir:
|
|
1129
|
+
agentsDir: z2.string().exactOptional(),
|
|
902
1130
|
/** Custom stacks file path override (default: "config/stacks.ts") */
|
|
903
|
-
stacksFile:
|
|
1131
|
+
stacksFile: z2.string().exactOptional(),
|
|
904
1132
|
/** Custom categories file path override (default: "config/skill-categories.ts") */
|
|
905
|
-
categoriesFile:
|
|
1133
|
+
categoriesFile: z2.string().exactOptional(),
|
|
906
1134
|
/** Custom rules file path override (default: "config/skill-rules.ts") */
|
|
907
|
-
rulesFile:
|
|
1135
|
+
rulesFile: z2.string().exactOptional()
|
|
908
1136
|
}).passthrough();
|
|
909
|
-
var agentYamlGenerationSchema =
|
|
910
|
-
$schema:
|
|
911
|
-
id:
|
|
912
|
-
title:
|
|
913
|
-
description:
|
|
914
|
-
model: modelNameSchema.
|
|
915
|
-
effort: effortLevelSchema.
|
|
916
|
-
tools:
|
|
917
|
-
disallowedTools:
|
|
918
|
-
permissionMode: permissionModeSchema.
|
|
919
|
-
hooks: strictHooksRecordSchema.
|
|
920
|
-
outputFormat:
|
|
921
|
-
domain:
|
|
922
|
-
custom:
|
|
1137
|
+
var agentYamlGenerationSchema = z2.object({
|
|
1138
|
+
$schema: z2.string().exactOptional(),
|
|
1139
|
+
id: z2.string().min(1),
|
|
1140
|
+
title: z2.string().min(1),
|
|
1141
|
+
description: z2.string().min(1),
|
|
1142
|
+
model: modelNameSchema.exactOptional(),
|
|
1143
|
+
effort: effortLevelSchema.exactOptional(),
|
|
1144
|
+
tools: z2.array(z2.string()).min(1),
|
|
1145
|
+
disallowedTools: z2.array(z2.string()).exactOptional(),
|
|
1146
|
+
permissionMode: permissionModeSchema.exactOptional(),
|
|
1147
|
+
hooks: strictHooksRecordSchema.exactOptional(),
|
|
1148
|
+
outputFormat: z2.string().exactOptional(),
|
|
1149
|
+
domain: z2.string().exactOptional(),
|
|
1150
|
+
custom: z2.boolean().exactOptional()
|
|
923
1151
|
}).strict();
|
|
924
|
-
var agentFrontmatterValidationSchema =
|
|
1152
|
+
var agentFrontmatterValidationSchema = z2.object({
|
|
925
1153
|
/** Agent name in kebab-case (becomes the Task tool identifier) */
|
|
926
|
-
name:
|
|
927
|
-
description:
|
|
1154
|
+
name: z2.string().regex(KEBAB_CASE_PATTERN).min(1),
|
|
1155
|
+
description: z2.string().min(1),
|
|
928
1156
|
/** Comma-separated list of allowed tools */
|
|
929
|
-
tools:
|
|
1157
|
+
tools: z2.string().exactOptional(),
|
|
930
1158
|
/** Comma-separated list of denied tools */
|
|
931
|
-
disallowedTools:
|
|
932
|
-
model: modelNameSchema.
|
|
933
|
-
effort: effortLevelSchema.
|
|
934
|
-
permissionMode: permissionModeSchema.
|
|
1159
|
+
disallowedTools: z2.string().exactOptional(),
|
|
1160
|
+
model: modelNameSchema.exactOptional(),
|
|
1161
|
+
effort: effortLevelSchema.exactOptional(),
|
|
1162
|
+
permissionMode: permissionModeSchema.exactOptional(),
|
|
935
1163
|
/** Skill names to preload (embed in agent prompt) */
|
|
936
|
-
skills:
|
|
937
|
-
hooks: strictHooksRecordSchema.
|
|
1164
|
+
skills: z2.array(z2.string().min(1)).exactOptional(),
|
|
1165
|
+
hooks: strictHooksRecordSchema.exactOptional()
|
|
938
1166
|
}).strict();
|
|
939
|
-
var skillFrontmatterValidationSchema =
|
|
940
|
-
name:
|
|
941
|
-
description:
|
|
1167
|
+
var skillFrontmatterValidationSchema = z2.object({
|
|
1168
|
+
name: z2.string().min(1),
|
|
1169
|
+
description: z2.string().min(1),
|
|
942
1170
|
/** If true, Claude cannot invoke this skill on its own */
|
|
943
|
-
"disable-model-invocation":
|
|
1171
|
+
"disable-model-invocation": z2.boolean().exactOptional(),
|
|
944
1172
|
/** If true, user can invoke this skill directly */
|
|
945
|
-
"user-invocable":
|
|
1173
|
+
"user-invocable": z2.boolean().exactOptional(),
|
|
946
1174
|
/** Comma-separated list of tools this skill can use */
|
|
947
|
-
"allowed-tools":
|
|
948
|
-
model: modelNameSchema.
|
|
1175
|
+
"allowed-tools": z2.string().exactOptional(),
|
|
1176
|
+
model: modelNameSchema.exactOptional(),
|
|
949
1177
|
/** "fork" means skill runs in a forked context (separate conversation) */
|
|
950
|
-
context:
|
|
1178
|
+
context: z2.enum(["fork"]).exactOptional(),
|
|
951
1179
|
/** Agent name this skill is scoped to */
|
|
952
|
-
agent:
|
|
1180
|
+
agent: z2.string().exactOptional(),
|
|
953
1181
|
/** Hint text shown when user invokes the skill */
|
|
954
|
-
"argument-hint":
|
|
1182
|
+
"argument-hint": z2.string().exactOptional()
|
|
955
1183
|
}).strict();
|
|
956
|
-
var forkedFromSchema =
|
|
1184
|
+
var forkedFromSchema = z2.object({
|
|
957
1185
|
/** Original skill ID */
|
|
958
|
-
skillId:
|
|
1186
|
+
skillId: z2.string(),
|
|
959
1187
|
/** Version of the original at fork time */
|
|
960
|
-
version:
|
|
1188
|
+
version: z2.number().int().min(1).exactOptional(),
|
|
961
1189
|
/** Content hash of the original at fork time */
|
|
962
|
-
contentHash:
|
|
1190
|
+
contentHash: z2.string(),
|
|
963
1191
|
/** Source URL or identifier */
|
|
964
|
-
source:
|
|
1192
|
+
source: z2.string().exactOptional(),
|
|
965
1193
|
/** ISO date of the fork */
|
|
966
|
-
date:
|
|
1194
|
+
date: z2.string()
|
|
967
1195
|
});
|
|
968
1196
|
var CLI_DESCRIPTION_MAX_LENGTH = 60;
|
|
969
|
-
var skillMetadataBaseSchema =
|
|
1197
|
+
var skillMetadataBaseSchema = z2.object({
|
|
970
1198
|
/** Author handle — must start with @ (e.g., "@vince") */
|
|
971
|
-
author:
|
|
1199
|
+
author: z2.string().regex(AUTHOR_HANDLE_PATTERN),
|
|
972
1200
|
/** Short display name for the wizard grid (max 30 chars) */
|
|
973
|
-
displayName:
|
|
1201
|
+
displayName: z2.string().min(1).max(30),
|
|
974
1202
|
/** One-line description for the wizard (max 60 chars recommended; over-length is a validation warning) */
|
|
975
|
-
cliDescription:
|
|
1203
|
+
cliDescription: z2.string().min(1).max(CLI_DESCRIPTION_MAX_LENGTH),
|
|
976
1204
|
/** When an AI agent should invoke this skill (min 10 chars to ensure usefulness) */
|
|
977
|
-
usageGuidance:
|
|
1205
|
+
usageGuidance: z2.string().min(10),
|
|
978
1206
|
/** 7-char hex SHA of skill content (for change detection) */
|
|
979
|
-
contentHash:
|
|
1207
|
+
contentHash: z2.string().regex(/^[a-f0-9]{7}$/).exactOptional(),
|
|
980
1208
|
/** ISO date of last update */
|
|
981
|
-
updated:
|
|
1209
|
+
updated: z2.string().exactOptional(),
|
|
982
1210
|
/** Provenance tracking when skill was forked from another */
|
|
983
|
-
forkedFrom: forkedFromSchema.
|
|
1211
|
+
forkedFrom: forkedFromSchema.exactOptional(),
|
|
984
1212
|
/** Domain assignment from metadata */
|
|
985
|
-
domain:
|
|
1213
|
+
domain: z2.string().exactOptional(),
|
|
986
1214
|
/** True if this skill was created outside the CLI's built-in vocabulary */
|
|
987
|
-
custom:
|
|
1215
|
+
custom: z2.boolean().exactOptional()
|
|
988
1216
|
});
|
|
989
1217
|
var metadataValidationSchema = skillMetadataBaseSchema.extend({
|
|
990
1218
|
/** Domain-prefixed category — must be a known built-in category */
|
|
991
|
-
category:
|
|
1219
|
+
category: z2.enum(CATEGORIES),
|
|
992
1220
|
/** Kebab-case short key — must be a known built-in slug */
|
|
993
|
-
slug:
|
|
1221
|
+
slug: z2.enum(SKILL_SLUGS)
|
|
994
1222
|
}).strict();
|
|
995
1223
|
var customMetadataValidationSchema = skillMetadataBaseSchema.extend({
|
|
996
1224
|
/** Any string category — custom skills may define their own categories */
|
|
997
|
-
category:
|
|
1225
|
+
category: z2.string(),
|
|
998
1226
|
/** Kebab-case short key for alias resolution, search, and relationship rules */
|
|
999
|
-
slug:
|
|
1227
|
+
slug: z2.string().regex(/^[a-z][a-z0-9-]*$/).min(1).max(50)
|
|
1000
1228
|
});
|
|
1001
|
-
var stackSkillAssignmentSchema =
|
|
1002
|
-
id:
|
|
1229
|
+
var stackSkillAssignmentSchema = z2.object({
|
|
1230
|
+
id: z2.string().min(1),
|
|
1003
1231
|
/** If true, skill content is embedded in the compiled agent prompt */
|
|
1004
|
-
preloaded:
|
|
1232
|
+
preloaded: z2.boolean().exactOptional()
|
|
1005
1233
|
}).strict();
|
|
1006
|
-
var stackConfigValidationSchema =
|
|
1234
|
+
var stackConfigValidationSchema = z2.object({
|
|
1007
1235
|
/** Unique stack identifier in kebab-case */
|
|
1008
|
-
id:
|
|
1009
|
-
name:
|
|
1010
|
-
version:
|
|
1011
|
-
author:
|
|
1012
|
-
description:
|
|
1236
|
+
id: z2.string().regex(KEBAB_CASE_PATTERN).exactOptional(),
|
|
1237
|
+
name: z2.string().min(1),
|
|
1238
|
+
version: z2.string(),
|
|
1239
|
+
author: z2.string().min(1),
|
|
1240
|
+
description: z2.string().exactOptional(),
|
|
1013
1241
|
/** ISO date when this stack was first created */
|
|
1014
|
-
created:
|
|
1242
|
+
created: z2.string().exactOptional(),
|
|
1015
1243
|
/** ISO date of last update */
|
|
1016
|
-
updated:
|
|
1244
|
+
updated: z2.string().exactOptional(),
|
|
1017
1245
|
/** Primary framework this stack is designed for (e.g., "nextjs", "remix") */
|
|
1018
|
-
framework:
|
|
1246
|
+
framework: z2.string().exactOptional(),
|
|
1019
1247
|
/** All skills used in this stack (flat list, at least one required) */
|
|
1020
|
-
skills:
|
|
1248
|
+
skills: z2.array(stackSkillAssignmentSchema).min(1),
|
|
1021
1249
|
/** Agent IDs this stack compiles (at least one required) */
|
|
1022
|
-
agents:
|
|
1250
|
+
agents: z2.array(z2.string().regex(KEBAB_CASE_PATTERN)).min(1),
|
|
1023
1251
|
/** Per-agent skill assignments: { agentId: { category: [skillAssignment] } } */
|
|
1024
|
-
agentSkills:
|
|
1252
|
+
agentSkills: z2.record(z2.string(), z2.record(z2.string(), z2.array(stackSkillAssignmentSchema))).exactOptional(),
|
|
1025
1253
|
/** High-level philosophy guiding technology choices */
|
|
1026
|
-
philosophy:
|
|
1254
|
+
philosophy: z2.string().exactOptional(),
|
|
1027
1255
|
/** Guiding principles for agents using this stack */
|
|
1028
|
-
principles:
|
|
1029
|
-
tags:
|
|
1256
|
+
principles: z2.array(z2.string().min(1)).exactOptional(),
|
|
1257
|
+
tags: z2.array(z2.string().regex(KEBAB_CASE_PATTERN)).exactOptional(),
|
|
1030
1258
|
/** Per-skill overrides: alternative suggestions and lock status */
|
|
1031
|
-
overrides:
|
|
1032
|
-
|
|
1033
|
-
|
|
1259
|
+
overrides: z2.record(
|
|
1260
|
+
z2.string(),
|
|
1261
|
+
z2.object({
|
|
1034
1262
|
/** Suggested alternative skill IDs if this one is swapped */
|
|
1035
|
-
alternatives:
|
|
1263
|
+
alternatives: z2.array(z2.string().min(1)).exactOptional(),
|
|
1036
1264
|
/** If true, this skill cannot be swapped by the user */
|
|
1037
|
-
locked:
|
|
1265
|
+
locked: z2.boolean().exactOptional()
|
|
1038
1266
|
}).strict()
|
|
1039
|
-
).
|
|
1267
|
+
).exactOptional(),
|
|
1040
1268
|
/** Community metrics for sorting/ranking */
|
|
1041
|
-
metrics:
|
|
1042
|
-
upvotes:
|
|
1043
|
-
downloads:
|
|
1044
|
-
}).strict().
|
|
1269
|
+
metrics: z2.object({
|
|
1270
|
+
upvotes: z2.number().int().min(0).exactOptional(),
|
|
1271
|
+
downloads: z2.number().int().min(0).exactOptional()
|
|
1272
|
+
}).strict().exactOptional(),
|
|
1045
1273
|
/** Lifecycle hooks triggered by file changes or commands */
|
|
1046
|
-
hooks: strictHooksRecordSchema.
|
|
1274
|
+
hooks: strictHooksRecordSchema.exactOptional()
|
|
1047
1275
|
}).strict();
|
|
1048
1276
|
function formatZodIssues(issues) {
|
|
1049
1277
|
return issues.map(formatZodIssue).join("; ");
|
|
@@ -1052,6 +1280,21 @@ function validateSkillMetadata(rawMetadata) {
|
|
|
1052
1280
|
const schema = isCustomMetadata(rawMetadata) ? customMetadataValidationSchema : metadataValidationSchema;
|
|
1053
1281
|
return schema.safeParse(rawMetadata);
|
|
1054
1282
|
}
|
|
1283
|
+
function describeMetadataSchemaFailure(issues, rawMetadata) {
|
|
1284
|
+
const [absent, malformed] = partition(issues, (issue) => isAbsentField(issue, rawMetadata));
|
|
1285
|
+
return [
|
|
1286
|
+
...absent.length > 0 ? [nameMissingFields(absent)] : [],
|
|
1287
|
+
...malformed.map(formatZodIssue)
|
|
1288
|
+
].join("; ");
|
|
1289
|
+
}
|
|
1290
|
+
function isAbsentField(issue, rawMetadata) {
|
|
1291
|
+
const [field, ...nested] = issue.path;
|
|
1292
|
+
return nested.length === 0 && typeof field === "string" && rawMetadata[field] === void 0;
|
|
1293
|
+
}
|
|
1294
|
+
function nameMissingFields(absent) {
|
|
1295
|
+
const fields = absent.map((issue) => issue.path.join("."));
|
|
1296
|
+
return `missing required ${fields.length === 1 ? "field" : "fields"}: ${fields.join(", ")}`;
|
|
1297
|
+
}
|
|
1055
1298
|
function isOverLengthCliDescription(issue) {
|
|
1056
1299
|
return issue.code === "too_big" && issue.path.length === 1 && issue.path[0] === "cliDescription";
|
|
1057
1300
|
}
|
|
@@ -1097,6 +1340,30 @@ function warnUnknownFields(parsed, expectedKeys, context) {
|
|
|
1097
1340
|
}
|
|
1098
1341
|
|
|
1099
1342
|
// src/cli/lib/loading/loader.ts
|
|
1343
|
+
async function readSkillMetadata(metadataPath) {
|
|
1344
|
+
let parsed;
|
|
1345
|
+
try {
|
|
1346
|
+
parsed = parseYaml2(await readFile(metadataPath));
|
|
1347
|
+
} catch (error) {
|
|
1348
|
+
return { usable: false, reason: getErrorMessage(error) };
|
|
1349
|
+
}
|
|
1350
|
+
if (!isFieldMapping(parsed)) {
|
|
1351
|
+
return { usable: false, reason: `expected metadata fields, found ${nameYamlValue(parsed)}` };
|
|
1352
|
+
}
|
|
1353
|
+
const validated = localRawMetadataSchema.safeParse(parsed);
|
|
1354
|
+
if (!validated.success) {
|
|
1355
|
+
return { usable: false, reason: describeMetadataSchemaFailure(validated.error.issues, parsed) };
|
|
1356
|
+
}
|
|
1357
|
+
return { usable: true, metadata: validated.data };
|
|
1358
|
+
}
|
|
1359
|
+
function isFieldMapping(value) {
|
|
1360
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1361
|
+
}
|
|
1362
|
+
function nameYamlValue(value) {
|
|
1363
|
+
if (value === null || value === void 0) return "an empty file";
|
|
1364
|
+
if (Array.isArray(value)) return "a list";
|
|
1365
|
+
return `a ${typeof value}`;
|
|
1366
|
+
}
|
|
1100
1367
|
function parseFrontmatter(content, filePath) {
|
|
1101
1368
|
const rawFrontmatter = extractFrontmatter(content);
|
|
1102
1369
|
if (rawFrontmatter === null) return null;
|
|
@@ -1119,7 +1386,7 @@ async function loadAgentsFromDir(agentsDir, sourceRoot, options) {
|
|
|
1119
1386
|
agents[config.id] = {
|
|
1120
1387
|
title: config.title,
|
|
1121
1388
|
description: config.description,
|
|
1122
|
-
model: config.model,
|
|
1389
|
+
...config.model !== void 0 && { model: config.model },
|
|
1123
1390
|
tools: config.tools,
|
|
1124
1391
|
path: path2.dirname(file),
|
|
1125
1392
|
sourceRoot,
|
|
@@ -1222,7 +1489,7 @@ async function loadSkillsByIds(skillIds, projectRoot) {
|
|
|
1222
1489
|
skills[canonicalId] = skillDef;
|
|
1223
1490
|
verbose(`Loaded skill: ${canonicalId} (from ${directoryPath})`);
|
|
1224
1491
|
} catch (error) {
|
|
1225
|
-
warn(`Could not load skill '${skillId}': ${error}`);
|
|
1492
|
+
warn(`Could not load skill '${skillId}': ${getErrorMessage(error)}`);
|
|
1226
1493
|
}
|
|
1227
1494
|
}
|
|
1228
1495
|
return skills;
|
|
@@ -1230,8 +1497,9 @@ async function loadSkillsByIds(skillIds, projectRoot) {
|
|
|
1230
1497
|
async function loadSkillsFromDir(skillsDir, options = {}) {
|
|
1231
1498
|
const { pathPrefix = "", requireMetadata = false } = options;
|
|
1232
1499
|
const skills = {};
|
|
1500
|
+
const unusableMetadata = [];
|
|
1233
1501
|
if (!await directoryExists(skillsDir)) {
|
|
1234
|
-
return skills;
|
|
1502
|
+
return { skills, unusableMetadata };
|
|
1235
1503
|
}
|
|
1236
1504
|
const skillFiles = await glob(`**/${STANDARD_FILES.SKILL_MD}`, skillsDir);
|
|
1237
1505
|
for (const skillFile of skillFiles) {
|
|
@@ -1248,6 +1516,12 @@ async function loadSkillsFromDir(skillsDir, options = {}) {
|
|
|
1248
1516
|
);
|
|
1249
1517
|
continue;
|
|
1250
1518
|
}
|
|
1519
|
+
const metadata = await readSkillMetadata(metadataPath);
|
|
1520
|
+
if (!metadata.usable) {
|
|
1521
|
+
unusableMetadata.push({ skillDirName, metadataPath, reason: metadata.reason });
|
|
1522
|
+
verbose(` Unusable ${STANDARD_FILES.METADATA_YAML} in '${skillDirName}'`);
|
|
1523
|
+
continue;
|
|
1524
|
+
}
|
|
1251
1525
|
}
|
|
1252
1526
|
try {
|
|
1253
1527
|
const content = await readFile(skillPath);
|
|
@@ -1264,28 +1538,21 @@ async function loadSkillsFromDir(skillsDir, options = {}) {
|
|
|
1264
1538
|
};
|
|
1265
1539
|
verbose(` Loaded skill: ${canonicalId}`);
|
|
1266
1540
|
} catch (error) {
|
|
1267
|
-
verbose(` Failed to load skill: ${skillFile} - ${error}`);
|
|
1541
|
+
verbose(` Failed to load skill: ${skillFile} - ${getErrorMessage(error)}`);
|
|
1268
1542
|
}
|
|
1269
1543
|
}
|
|
1270
|
-
return skills;
|
|
1544
|
+
return { skills, unusableMetadata };
|
|
1271
1545
|
}
|
|
1272
1546
|
async function loadPluginSkills(pluginDir) {
|
|
1273
|
-
|
|
1547
|
+
const { skills } = await loadSkillsFromDir(path2.join(pluginDir, "skills"), {
|
|
1274
1548
|
pathPrefix: "skills",
|
|
1275
1549
|
requireMetadata: false
|
|
1276
1550
|
});
|
|
1551
|
+
return skills;
|
|
1277
1552
|
}
|
|
1278
1553
|
|
|
1279
1554
|
export {
|
|
1280
1555
|
getErrorMessage,
|
|
1281
|
-
setVerbose,
|
|
1282
|
-
verbose,
|
|
1283
|
-
log,
|
|
1284
|
-
enableBuffering,
|
|
1285
|
-
drainBuffer,
|
|
1286
|
-
disableBuffering,
|
|
1287
|
-
warn,
|
|
1288
|
-
extractFrontmatter,
|
|
1289
1556
|
GlobalPairWriteViolation,
|
|
1290
1557
|
withGateToken,
|
|
1291
1558
|
assertGateToken,
|
|
@@ -1301,12 +1568,19 @@ export {
|
|
|
1301
1568
|
ensureDir,
|
|
1302
1569
|
remove,
|
|
1303
1570
|
copy,
|
|
1571
|
+
setVerbose,
|
|
1572
|
+
verbose,
|
|
1573
|
+
log,
|
|
1574
|
+
enableBuffering,
|
|
1575
|
+
drainBuffer,
|
|
1576
|
+
disableBuffering,
|
|
1577
|
+
warn,
|
|
1304
1578
|
formatZodErrors,
|
|
1579
|
+
SKILL_IDS,
|
|
1305
1580
|
DOMAINS,
|
|
1306
1581
|
AGENT_NAMES,
|
|
1307
1582
|
MODEL_NAMES,
|
|
1308
1583
|
EFFORT_NAMES,
|
|
1309
|
-
modelNameSchema,
|
|
1310
1584
|
skillMetadataLoaderSchema,
|
|
1311
1585
|
matrixRawMetadataSchema,
|
|
1312
1586
|
pluginManifestSchema,
|
|
@@ -1314,12 +1588,11 @@ export {
|
|
|
1314
1588
|
projectConfigLoaderSchema,
|
|
1315
1589
|
skillCategoriesFileSchema,
|
|
1316
1590
|
skillRulesFileSchema,
|
|
1317
|
-
localRawMetadataSchema,
|
|
1318
1591
|
localSkillMetadataSchema,
|
|
1319
1592
|
stacksConfigSchema,
|
|
1320
1593
|
marketplaceSchema,
|
|
1594
|
+
sourceRevalidationSchema,
|
|
1321
1595
|
settingsFileSchema,
|
|
1322
|
-
importedSkillMetadataSchema,
|
|
1323
1596
|
projectSourceConfigSchema,
|
|
1324
1597
|
agentYamlGenerationSchema,
|
|
1325
1598
|
agentFrontmatterValidationSchema,
|
|
@@ -1331,6 +1604,8 @@ export {
|
|
|
1331
1604
|
splitMetadataValidationIssues,
|
|
1332
1605
|
validateNestingDepth,
|
|
1333
1606
|
warnUnknownFields,
|
|
1607
|
+
extractFrontmatter,
|
|
1608
|
+
readSkillMetadata,
|
|
1334
1609
|
parseFrontmatter,
|
|
1335
1610
|
loadAllAgents,
|
|
1336
1611
|
loadMergedAgents,
|
|
@@ -1339,4 +1614,4 @@ export {
|
|
|
1339
1614
|
loadSkillsFromDir,
|
|
1340
1615
|
loadPluginSkills
|
|
1341
1616
|
};
|
|
1342
|
-
//# sourceMappingURL=chunk-
|
|
1617
|
+
//# sourceMappingURL=chunk-U2YSGBHA.js.map
|