agents-inc 0.149.2 → 0.151.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 +2287 -0
- package/LICENSE +21 -0
- package/README.md +136 -19
- package/assets/demo.gif +0 -0
- package/assets/demo.tape +266 -0
- package/assets/logo.svg +75 -0
- package/dist/chunk-2RSNKBXC.js +84 -0
- package/dist/chunk-2RSNKBXC.js.map +1 -0
- package/dist/chunk-3LIU2ZEF.js +1355 -0
- package/dist/chunk-3LIU2ZEF.js.map +1 -0
- package/dist/chunk-3XFUQ6OL.js +68 -0
- package/dist/chunk-3XFUQ6OL.js.map +1 -0
- package/dist/chunk-3YGUHWLR.js +258 -0
- package/dist/chunk-3YGUHWLR.js.map +1 -0
- package/dist/chunk-44LLPS2N.js +1135 -0
- package/dist/chunk-44LLPS2N.js.map +1 -0
- package/dist/chunk-4R6PGHQQ.js +300 -0
- package/dist/chunk-4R6PGHQQ.js.map +1 -0
- package/dist/chunk-5V2O6C3T.js +112 -0
- package/dist/chunk-5V2O6C3T.js.map +1 -0
- package/dist/chunk-6RBQBOBS.js +287 -0
- package/dist/chunk-6RBQBOBS.js.map +1 -0
- package/dist/chunk-7QIHKQL5.js +181 -0
- package/dist/chunk-7QIHKQL5.js.map +1 -0
- package/dist/chunk-BNE4HHIH.js +28 -0
- package/dist/chunk-BNE4HHIH.js.map +1 -0
- package/dist/chunk-C55DN7GE.js +35 -0
- package/dist/chunk-C55DN7GE.js.map +1 -0
- package/dist/chunk-DAG2ULNF.js +125 -0
- package/dist/chunk-DAG2ULNF.js.map +1 -0
- package/dist/chunk-DG2NGZ7S.js +10929 -0
- package/dist/chunk-DG2NGZ7S.js.map +1 -0
- package/dist/chunk-DIBCRIMR.js +36 -0
- package/dist/chunk-DIBCRIMR.js.map +1 -0
- package/dist/chunk-DUVWGO6E.js +54 -0
- package/dist/chunk-DUVWGO6E.js.map +1 -0
- package/dist/chunk-EKWAUOQB.js +96 -0
- package/dist/chunk-EKWAUOQB.js.map +1 -0
- package/dist/chunk-ES3NJZON.js +31 -0
- package/dist/chunk-ES3NJZON.js.map +1 -0
- package/dist/chunk-EVXG3X6G.js +179 -0
- package/dist/chunk-EVXG3X6G.js.map +1 -0
- package/dist/chunk-EZ7STXUV.js +349 -0
- package/dist/chunk-EZ7STXUV.js.map +1 -0
- package/dist/chunk-FYPUUYSG.js +31 -0
- package/dist/chunk-FYPUUYSG.js.map +1 -0
- package/dist/chunk-GYG5SE2D.js +81 -0
- package/dist/chunk-GYG5SE2D.js.map +1 -0
- package/dist/chunk-I3XKEGHM.js +16383 -0
- package/dist/chunk-I3XKEGHM.js.map +1 -0
- package/dist/chunk-IHO75PMZ.js +40 -0
- package/dist/chunk-IHO75PMZ.js.map +1 -0
- package/dist/chunk-IOJR5TOY.js +47 -0
- package/dist/chunk-IOJR5TOY.js.map +1 -0
- package/dist/chunk-K3OU6TGX.js +77 -0
- package/dist/chunk-K3OU6TGX.js.map +1 -0
- package/dist/chunk-KIR7VYQD.js +63 -0
- package/dist/chunk-KIR7VYQD.js.map +1 -0
- package/dist/chunk-KOPEM3Q7.js +27 -0
- package/dist/chunk-KOPEM3Q7.js.map +1 -0
- package/dist/chunk-KSZ6PCY4.js +43 -0
- package/dist/chunk-KSZ6PCY4.js.map +1 -0
- package/dist/chunk-LAXAQ3PZ.js +235 -0
- package/dist/chunk-LAXAQ3PZ.js.map +1 -0
- package/dist/chunk-LYYXX2W5.js +87 -0
- package/dist/chunk-LYYXX2W5.js.map +1 -0
- package/dist/chunk-NGLQ5W7U.js +339 -0
- package/dist/chunk-NGLQ5W7U.js.map +1 -0
- package/dist/chunk-NHCGC6DG.js +111 -0
- package/dist/chunk-NHCGC6DG.js.map +1 -0
- package/dist/chunk-NIKUMXE7.js +24 -0
- package/dist/chunk-NIKUMXE7.js.map +1 -0
- package/dist/chunk-NM3EDGB5.js +300 -0
- package/dist/chunk-NM3EDGB5.js.map +1 -0
- package/dist/chunk-O5ASLZ2K.js +270 -0
- package/dist/chunk-O5ASLZ2K.js.map +1 -0
- package/dist/chunk-OJIESW5B.js +174 -0
- package/dist/chunk-OJIESW5B.js.map +1 -0
- package/dist/chunk-OZZGXBCN.js +15 -0
- package/dist/chunk-OZZGXBCN.js.map +1 -0
- package/dist/chunk-P3PN5SVI.js +27 -0
- package/dist/chunk-P3PN5SVI.js.map +1 -0
- package/dist/chunk-P56WJ5FA.js +50 -0
- package/dist/chunk-P56WJ5FA.js.map +1 -0
- package/dist/chunk-PG4G4IIK.js +24 -0
- package/dist/chunk-PG4G4IIK.js.map +1 -0
- package/dist/chunk-PV2HNW4I.js +382 -0
- package/dist/chunk-PV2HNW4I.js.map +1 -0
- package/dist/chunk-QQLRX4KI.js +41 -0
- package/dist/chunk-QQLRX4KI.js.map +1 -0
- package/dist/chunk-QTFQEYDA.js +789 -0
- package/dist/chunk-QTFQEYDA.js.map +1 -0
- package/dist/chunk-RBHYLCUB.js +31 -0
- package/dist/chunk-RBHYLCUB.js.map +1 -0
- package/dist/chunk-SHHOMVWC.js +62 -0
- package/dist/chunk-SHHOMVWC.js.map +1 -0
- package/dist/chunk-SI5FOARI.js +42 -0
- package/dist/chunk-SI5FOARI.js.map +1 -0
- package/dist/chunk-SYUOXSPU.js +510 -0
- package/dist/chunk-SYUOXSPU.js.map +1 -0
- package/dist/chunk-THKIOI32.js +939 -0
- package/dist/chunk-THKIOI32.js.map +1 -0
- package/dist/chunk-TVHRMRD3.js +6014 -0
- package/dist/chunk-TVHRMRD3.js.map +1 -0
- package/dist/chunk-TYJLR32W.js +128 -0
- package/dist/chunk-TYJLR32W.js.map +1 -0
- package/dist/chunk-UFURYGD3.js +20 -0
- package/dist/chunk-UFURYGD3.js.map +1 -0
- package/dist/chunk-UTFN6UJS.js +253 -0
- package/dist/chunk-UTFN6UJS.js.map +1 -0
- package/dist/chunk-V7QOSGQA.js +298 -0
- package/dist/chunk-V7QOSGQA.js.map +1 -0
- package/dist/chunk-VEP23B5W.js +27 -0
- package/dist/chunk-VEP23B5W.js.map +1 -0
- package/dist/chunk-VG2TVBFN.js +52 -0
- package/dist/chunk-VG2TVBFN.js.map +1 -0
- package/dist/chunk-WFWCZEMS.js +92 -0
- package/dist/chunk-WFWCZEMS.js.map +1 -0
- package/dist/chunk-WK4J2CHH.js +430 -0
- package/dist/chunk-WK4J2CHH.js.map +1 -0
- package/dist/chunk-XA57SX4T.js +115 -0
- package/dist/chunk-XA57SX4T.js.map +1 -0
- package/dist/chunk-Y4CXDA3I.js +181 -0
- package/dist/chunk-Y4CXDA3I.js.map +1 -0
- package/dist/chunk-YA4QQKKE.js +51 -0
- package/dist/chunk-YA4QQKKE.js.map +1 -0
- package/dist/chunk-YBVA7GPW.js +27 -0
- package/dist/chunk-YBVA7GPW.js.map +1 -0
- package/dist/chunk-YU2VGX5R.js +4205 -0
- package/dist/chunk-YU2VGX5R.js.map +1 -0
- package/dist/commands/build/marketplace.js +250 -0
- package/dist/commands/build/marketplace.js.map +1 -0
- package/dist/commands/build/plugins.js +176 -0
- package/dist/commands/build/plugins.js.map +1 -0
- package/dist/commands/compile.js +331 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/doctor.js +475 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/edit.js +765 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/eject.js +393 -0
- package/dist/commands/eject.js.map +1 -0
- package/dist/commands/import/skill.js +349 -0
- package/dist/commands/import/skill.js.map +1 -0
- package/dist/commands/init.js +66 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.js +115 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/new/agent.js +304 -0
- package/dist/commands/new/agent.js.map +1 -0
- package/dist/commands/new/marketplace.js +315 -0
- package/dist/commands/new/marketplace.js.map +1 -0
- package/dist/commands/new/skill.js +28 -0
- package/dist/commands/new/skill.js.map +1 -0
- package/dist/commands/search.js +176 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/uninstall.js +570 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.js +368 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/validate.js +581 -0
- package/dist/commands/validate.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/prompt-confirm.js +11 -0
- package/dist/components/common/prompt-confirm.js.map +1 -0
- package/dist/components/common/select-list.js +11 -0
- package/dist/components/common/select-list.js.map +1 -0
- package/dist/components/common/spinner.js +9 -0
- package/dist/components/common/spinner.js.map +1 -0
- package/dist/components/wizard/category-grid.js +16 -0
- package/dist/components/wizard/category-grid.js.map +1 -0
- package/dist/components/wizard/category-grid.test.js +1253 -0
- package/dist/components/wizard/category-grid.test.js.map +1 -0
- package/dist/components/wizard/checkbox-grid.js +14 -0
- package/dist/components/wizard/checkbox-grid.js.map +1 -0
- package/dist/components/wizard/checkbox-grid.test.js +264 -0
- package/dist/components/wizard/checkbox-grid.test.js.map +1 -0
- package/dist/components/wizard/domain-selection.js +22 -0
- package/dist/components/wizard/domain-selection.js.map +1 -0
- package/dist/components/wizard/run-wizard-session.js +47 -0
- package/dist/components/wizard/run-wizard-session.js.map +1 -0
- package/dist/components/wizard/scroll-affordance.js +10 -0
- package/dist/components/wizard/scroll-affordance.js.map +1 -0
- package/dist/components/wizard/search-modal.js +14 -0
- package/dist/components/wizard/search-modal.js.map +1 -0
- package/dist/components/wizard/search-modal.test.js +212 -0
- package/dist/components/wizard/search-modal.test.js.map +1 -0
- package/dist/components/wizard/selection-card.js +10 -0
- package/dist/components/wizard/selection-card.js.map +1 -0
- package/dist/components/wizard/skill-agent-summary.js +16 -0
- package/dist/components/wizard/skill-agent-summary.js.map +1 -0
- package/dist/components/wizard/source-grid.js +23 -0
- package/dist/components/wizard/source-grid.js.map +1 -0
- package/dist/components/wizard/source-grid.test.js +1094 -0
- package/dist/components/wizard/source-grid.test.js.map +1 -0
- package/dist/components/wizard/stack-selection.js +20 -0
- package/dist/components/wizard/stack-selection.js.map +1 -0
- package/dist/components/wizard/step-agents.js +22 -0
- package/dist/components/wizard/step-agents.js.map +1 -0
- package/dist/components/wizard/step-agents.test.js +204 -0
- package/dist/components/wizard/step-agents.test.js.map +1 -0
- package/dist/components/wizard/step-build.js +22 -0
- package/dist/components/wizard/step-build.js.map +1 -0
- package/dist/components/wizard/step-build.test.js +552 -0
- package/dist/components/wizard/step-build.test.js.map +1 -0
- package/dist/components/wizard/step-confirm.js +21 -0
- package/dist/components/wizard/step-confirm.js.map +1 -0
- package/dist/components/wizard/step-confirm.test.js +744 -0
- package/dist/components/wizard/step-confirm.test.js.map +1 -0
- package/dist/components/wizard/step-settings.js +19 -0
- package/dist/components/wizard/step-settings.js.map +1 -0
- package/dist/components/wizard/step-settings.test.js +244 -0
- package/dist/components/wizard/step-settings.test.js.map +1 -0
- package/dist/components/wizard/step-sources.js +28 -0
- package/dist/components/wizard/step-sources.js.map +1 -0
- package/dist/components/wizard/step-sources.test.js +155 -0
- package/dist/components/wizard/step-sources.test.js.map +1 -0
- package/dist/components/wizard/step-stack.js +21 -0
- package/dist/components/wizard/step-stack.js.map +1 -0
- package/dist/components/wizard/step-stack.test.js +262 -0
- package/dist/components/wizard/step-stack.test.js.map +1 -0
- package/dist/components/wizard/summary-panel.js +20 -0
- package/dist/components/wizard/summary-panel.js.map +1 -0
- package/dist/components/wizard/summary-panel.test.js +317 -0
- package/dist/components/wizard/summary-panel.test.js.map +1 -0
- package/dist/components/wizard/toast.js +10 -0
- package/dist/components/wizard/toast.js.map +1 -0
- package/dist/components/wizard/wizard-layout.js +26 -0
- package/dist/components/wizard/wizard-layout.js.map +1 -0
- package/dist/components/wizard/wizard-layout.test.js +200 -0
- package/dist/components/wizard/wizard-layout.test.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.js +20 -0
- package/dist/components/wizard/wizard-tabs.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.test.js +290 -0
- package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
- package/dist/components/wizard/wizard.js +48 -0
- package/dist/components/wizard/wizard.js.map +1 -0
- package/dist/config-exports.js +20 -0
- package/dist/config-exports.js.map +1 -0
- package/dist/copy-local-skills-UPA2GUZV.js +15 -0
- package/dist/copy-local-skills-UPA2GUZV.js.map +1 -0
- package/dist/dist-VNJNNJK7.js +550 -0
- package/dist/dist-VNJNNJK7.js.map +1 -0
- package/dist/hooks/init.js +90 -0
- package/dist/hooks/init.js.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/load-agent-defs-SB4XAOVB.js +16 -0
- package/dist/load-agent-defs-SB4XAOVB.js.map +1 -0
- package/dist/loader-E2ERJYVA.js +23 -0
- package/dist/loader-E2ERJYVA.js.map +1 -0
- package/dist/magic-string.es-5TV73NJD.js +1316 -0
- package/dist/magic-string.es-5TV73NJD.js.map +1 -0
- package/dist/recompile-project-agents-U4ZY2GDX.js +20 -0
- package/dist/recompile-project-agents-U4ZY2GDX.js.map +1 -0
- package/dist/source-loader-5UNRU7EZ.js +20 -0
- package/dist/source-loader-5UNRU7EZ.js.map +1 -0
- package/dist/source-manager-3O54SIIB.js +18 -0
- package/dist/source-manager-3O54SIIB.js.map +1 -0
- package/dist/src/agents/_templates/agent.liquid +161 -0
- package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
- package/dist/src/agents/_templates/methodologies/context-management.liquid +162 -0
- package/dist/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
- package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
- package/dist/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
- package/dist/src/agents/_templates/methodologies/write-verification.liquid +43 -0
- package/dist/src/agents/developer/ai-developer/critical-reminders.md +54 -0
- package/dist/src/agents/developer/ai-developer/critical-requirements.md +59 -0
- package/dist/src/agents/developer/ai-developer/identity.md +51 -0
- package/dist/src/agents/developer/ai-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/ai-developer/output.md +366 -0
- package/dist/src/agents/developer/ai-developer/playbook.md +335 -0
- package/dist/src/agents/developer/api-developer/critical-reminders.md +46 -0
- package/dist/src/agents/developer/api-developer/critical-requirements.md +44 -0
- package/dist/src/agents/developer/api-developer/identity.md +49 -0
- package/dist/src/agents/developer/api-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/api-developer/output.md +432 -0
- package/dist/src/agents/developer/api-developer/playbook.md +352 -0
- package/dist/src/agents/developer/cli-developer/critical-reminders.md +51 -0
- package/dist/src/agents/developer/cli-developer/critical-requirements.md +51 -0
- package/dist/src/agents/developer/cli-developer/identity.md +51 -0
- package/dist/src/agents/developer/cli-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/cli-developer/output.md +285 -0
- package/dist/src/agents/developer/cli-developer/playbook.md +386 -0
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +48 -0
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +65 -0
- package/dist/src/agents/developer/web-architecture/identity.md +64 -0
- package/dist/src/agents/developer/web-architecture/metadata.yaml +12 -0
- package/dist/src/agents/developer/web-architecture/output.md +449 -0
- package/dist/src/agents/developer/web-architecture/playbook.md +481 -0
- package/dist/src/agents/developer/web-developer/critical-reminders.md +40 -0
- package/dist/src/agents/developer/web-developer/critical-requirements.md +39 -0
- package/dist/src/agents/developer/web-developer/identity.md +32 -0
- package/dist/src/agents/developer/web-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/web-developer/output.md +323 -0
- package/dist/src/agents/developer/web-developer/playbook.md +349 -0
- package/dist/src/agents/meta/agent-summoner/critical-reminders.md +45 -0
- package/dist/src/agents/meta/agent-summoner/critical-requirements.md +52 -0
- package/dist/src/agents/meta/agent-summoner/identity.md +34 -0
- package/dist/src/agents/meta/agent-summoner/metadata.yaml +12 -0
- package/dist/src/agents/meta/agent-summoner/output.md +296 -0
- package/dist/src/agents/meta/agent-summoner/playbook.md +1469 -0
- package/dist/src/agents/meta/codex-keeper/critical-reminders.md +39 -0
- package/dist/src/agents/meta/codex-keeper/critical-requirements.md +29 -0
- package/dist/src/agents/meta/codex-keeper/identity.md +45 -0
- package/dist/src/agents/meta/codex-keeper/metadata.yaml +12 -0
- package/dist/src/agents/meta/codex-keeper/output.md +384 -0
- package/dist/src/agents/meta/codex-keeper/playbook.md +1183 -0
- package/dist/src/agents/meta/convention-keeper/critical-reminders.md +32 -0
- package/dist/src/agents/meta/convention-keeper/critical-requirements.md +32 -0
- package/dist/src/agents/meta/convention-keeper/identity.md +33 -0
- package/dist/src/agents/meta/convention-keeper/metadata.yaml +12 -0
- package/dist/src/agents/meta/convention-keeper/output.md +206 -0
- package/dist/src/agents/meta/convention-keeper/playbook.md +180 -0
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +112 -0
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/dist/src/agents/meta/skill-summoner/identity.md +31 -0
- package/dist/src/agents/meta/skill-summoner/metadata.yaml +13 -0
- package/dist/src/agents/meta/skill-summoner/output.md +390 -0
- package/dist/src/agents/meta/skill-summoner/playbook.md +1457 -0
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +71 -0
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +31 -0
- package/dist/src/agents/pattern/pattern-scout/identity.md +25 -0
- package/dist/src/agents/pattern/pattern-scout/metadata.yaml +10 -0
- package/dist/src/agents/pattern/pattern-scout/output.md +290 -0
- package/dist/src/agents/pattern/pattern-scout/playbook.md +1806 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +30 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +28 -0
- package/dist/src/agents/pattern/web-pattern-critique/identity.md +41 -0
- package/dist/src/agents/pattern/web-pattern-critique/metadata.yaml +12 -0
- package/dist/src/agents/pattern/web-pattern-critique/output.md +314 -0
- package/dist/src/agents/pattern/web-pattern-critique/playbook.md +572 -0
- package/dist/src/agents/planning/api-pm/critical-reminders.md +48 -0
- package/dist/src/agents/planning/api-pm/critical-requirements.md +41 -0
- package/dist/src/agents/planning/api-pm/identity.md +39 -0
- package/dist/src/agents/planning/api-pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/api-pm/output.md +475 -0
- package/dist/src/agents/planning/api-pm/playbook.md +129 -0
- package/dist/src/agents/planning/web-pm/critical-reminders.md +36 -0
- package/dist/src/agents/planning/web-pm/critical-requirements.md +32 -0
- package/dist/src/agents/planning/web-pm/identity.md +26 -0
- package/dist/src/agents/planning/web-pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/web-pm/output.md +314 -0
- package/dist/src/agents/planning/web-pm/playbook.md +318 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/dist/src/agents/researcher/api-researcher/critical-requirements.md +28 -0
- package/dist/src/agents/researcher/api-researcher/identity.md +71 -0
- package/dist/src/agents/researcher/api-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/api-researcher/output.md +254 -0
- package/dist/src/agents/researcher/api-researcher/playbook.md +201 -0
- package/dist/src/agents/researcher/web-researcher/critical-reminders.md +39 -0
- package/dist/src/agents/researcher/web-researcher/critical-requirements.md +26 -0
- package/dist/src/agents/researcher/web-researcher/identity.md +69 -0
- package/dist/src/agents/researcher/web-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/web-researcher/output.md +241 -0
- package/dist/src/agents/researcher/web-researcher/playbook.md +217 -0
- package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +40 -0
- package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +37 -0
- package/dist/src/agents/reviewer/ai-reviewer/identity.md +51 -0
- package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
- package/dist/src/agents/reviewer/ai-reviewer/output.md +395 -0
- package/dist/src/agents/reviewer/ai-reviewer/playbook.md +90 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +31 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +27 -0
- package/dist/src/agents/reviewer/api-reviewer/identity.md +51 -0
- package/dist/src/agents/reviewer/api-reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/api-reviewer/output.md +343 -0
- package/dist/src/agents/reviewer/api-reviewer/playbook.md +288 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +33 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +30 -0
- package/dist/src/agents/reviewer/cli-reviewer/identity.md +44 -0
- package/dist/src/agents/reviewer/cli-reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/cli-reviewer/output.md +414 -0
- package/dist/src/agents/reviewer/cli-reviewer/playbook.md +218 -0
- package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +38 -0
- package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +38 -0
- package/dist/src/agents/reviewer/infra-reviewer/identity.md +53 -0
- package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
- package/dist/src/agents/reviewer/infra-reviewer/output.md +364 -0
- package/dist/src/agents/reviewer/infra-reviewer/playbook.md +161 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +31 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +26 -0
- package/dist/src/agents/reviewer/web-reviewer/identity.md +40 -0
- package/dist/src/agents/reviewer/web-reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/web-reviewer/output.md +333 -0
- package/dist/src/agents/reviewer/web-reviewer/playbook.md +156 -0
- package/dist/src/agents/tester/api-tester/critical-reminders.md +41 -0
- package/dist/src/agents/tester/api-tester/critical-requirements.md +41 -0
- package/dist/src/agents/tester/api-tester/identity.md +47 -0
- package/dist/src/agents/tester/api-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/api-tester/output.md +284 -0
- package/dist/src/agents/tester/api-tester/playbook.md +275 -0
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +36 -0
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +36 -0
- package/dist/src/agents/tester/cli-tester/identity.md +43 -0
- package/dist/src/agents/tester/cli-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/cli-tester/output.md +313 -0
- package/dist/src/agents/tester/cli-tester/playbook.md +221 -0
- package/dist/src/agents/tester/web-tester/critical-reminders.md +31 -0
- package/dist/src/agents/tester/web-tester/critical-requirements.md +28 -0
- package/dist/src/agents/tester/web-tester/identity.md +41 -0
- package/dist/src/agents/tester/web-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/web-tester/output.md +321 -0
- package/dist/src/agents/tester/web-tester/playbook.md +428 -0
- package/dist/stores/d227-same-scope-tombstone-duplicate.test.js +118 -0
- package/dist/stores/d227-same-scope-tombstone-duplicate.test.js.map +1 -0
- package/dist/stores/wizard-store.js +21 -0
- package/dist/stores/wizard-store.js.map +1 -0
- package/dist/stores/wizard-store.test.js +3053 -0
- package/dist/stores/wizard-store.test.js.map +1 -0
- package/package.json +130 -12
- package/src/agents/_templates/agent.liquid +161 -0
- package/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
- package/src/agents/_templates/methodologies/context-management.liquid +162 -0
- package/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
- package/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
- package/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
- package/src/agents/_templates/methodologies/write-verification.liquid +43 -0
- package/src/agents/developer/ai-developer/critical-reminders.md +54 -0
- package/src/agents/developer/ai-developer/critical-requirements.md +59 -0
- package/src/agents/developer/ai-developer/identity.md +51 -0
- package/src/agents/developer/ai-developer/metadata.yaml +12 -0
- package/src/agents/developer/ai-developer/output.md +366 -0
- package/src/agents/developer/ai-developer/playbook.md +335 -0
- package/src/agents/developer/api-developer/critical-reminders.md +46 -0
- package/src/agents/developer/api-developer/critical-requirements.md +44 -0
- package/src/agents/developer/api-developer/identity.md +49 -0
- package/src/agents/developer/api-developer/metadata.yaml +12 -0
- package/src/agents/developer/api-developer/output.md +432 -0
- package/src/agents/developer/api-developer/playbook.md +352 -0
- package/src/agents/developer/cli-developer/critical-reminders.md +51 -0
- package/src/agents/developer/cli-developer/critical-requirements.md +51 -0
- package/src/agents/developer/cli-developer/identity.md +51 -0
- package/src/agents/developer/cli-developer/metadata.yaml +12 -0
- package/src/agents/developer/cli-developer/output.md +285 -0
- package/src/agents/developer/cli-developer/playbook.md +386 -0
- package/src/agents/developer/web-architecture/critical-reminders.md +48 -0
- package/src/agents/developer/web-architecture/critical-requirements.md +65 -0
- package/src/agents/developer/web-architecture/identity.md +64 -0
- package/src/agents/developer/web-architecture/metadata.yaml +12 -0
- package/src/agents/developer/web-architecture/output.md +449 -0
- package/src/agents/developer/web-architecture/playbook.md +481 -0
- package/src/agents/developer/web-developer/critical-reminders.md +40 -0
- package/src/agents/developer/web-developer/critical-requirements.md +39 -0
- package/src/agents/developer/web-developer/identity.md +32 -0
- package/src/agents/developer/web-developer/metadata.yaml +12 -0
- package/src/agents/developer/web-developer/output.md +323 -0
- package/src/agents/developer/web-developer/playbook.md +349 -0
- package/src/agents/meta/agent-summoner/critical-reminders.md +45 -0
- package/src/agents/meta/agent-summoner/critical-requirements.md +52 -0
- package/src/agents/meta/agent-summoner/identity.md +34 -0
- package/src/agents/meta/agent-summoner/metadata.yaml +12 -0
- package/src/agents/meta/agent-summoner/output.md +296 -0
- package/src/agents/meta/agent-summoner/playbook.md +1469 -0
- package/src/agents/meta/codex-keeper/critical-reminders.md +39 -0
- package/src/agents/meta/codex-keeper/critical-requirements.md +29 -0
- package/src/agents/meta/codex-keeper/identity.md +45 -0
- package/src/agents/meta/codex-keeper/metadata.yaml +12 -0
- package/src/agents/meta/codex-keeper/output.md +384 -0
- package/src/agents/meta/codex-keeper/playbook.md +1183 -0
- package/src/agents/meta/convention-keeper/critical-reminders.md +32 -0
- package/src/agents/meta/convention-keeper/critical-requirements.md +32 -0
- package/src/agents/meta/convention-keeper/identity.md +33 -0
- package/src/agents/meta/convention-keeper/metadata.yaml +12 -0
- package/src/agents/meta/convention-keeper/output.md +206 -0
- package/src/agents/meta/convention-keeper/playbook.md +180 -0
- package/src/agents/meta/skill-summoner/critical-reminders.md +112 -0
- package/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/src/agents/meta/skill-summoner/identity.md +31 -0
- package/src/agents/meta/skill-summoner/metadata.yaml +13 -0
- package/src/agents/meta/skill-summoner/output.md +390 -0
- package/src/agents/meta/skill-summoner/playbook.md +1457 -0
- package/src/agents/pattern/pattern-scout/critical-reminders.md +71 -0
- package/src/agents/pattern/pattern-scout/critical-requirements.md +31 -0
- package/src/agents/pattern/pattern-scout/identity.md +25 -0
- package/src/agents/pattern/pattern-scout/metadata.yaml +10 -0
- package/src/agents/pattern/pattern-scout/output.md +290 -0
- package/src/agents/pattern/pattern-scout/playbook.md +1806 -0
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +30 -0
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +28 -0
- package/src/agents/pattern/web-pattern-critique/identity.md +41 -0
- package/src/agents/pattern/web-pattern-critique/metadata.yaml +12 -0
- package/src/agents/pattern/web-pattern-critique/output.md +314 -0
- package/src/agents/pattern/web-pattern-critique/playbook.md +572 -0
- package/src/agents/planning/api-pm/critical-reminders.md +48 -0
- package/src/agents/planning/api-pm/critical-requirements.md +41 -0
- package/src/agents/planning/api-pm/identity.md +39 -0
- package/src/agents/planning/api-pm/metadata.yaml +12 -0
- package/src/agents/planning/api-pm/output.md +475 -0
- package/src/agents/planning/api-pm/playbook.md +129 -0
- package/src/agents/planning/web-pm/critical-reminders.md +36 -0
- package/src/agents/planning/web-pm/critical-requirements.md +32 -0
- package/src/agents/planning/web-pm/identity.md +26 -0
- package/src/agents/planning/web-pm/metadata.yaml +12 -0
- package/src/agents/planning/web-pm/output.md +314 -0
- package/src/agents/planning/web-pm/playbook.md +318 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/src/agents/researcher/api-researcher/critical-requirements.md +28 -0
- package/src/agents/researcher/api-researcher/identity.md +71 -0
- package/src/agents/researcher/api-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/api-researcher/output.md +254 -0
- package/src/agents/researcher/api-researcher/playbook.md +201 -0
- package/src/agents/researcher/web-researcher/critical-reminders.md +39 -0
- package/src/agents/researcher/web-researcher/critical-requirements.md +26 -0
- package/src/agents/researcher/web-researcher/identity.md +69 -0
- package/src/agents/researcher/web-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/web-researcher/output.md +241 -0
- package/src/agents/researcher/web-researcher/playbook.md +217 -0
- package/src/agents/reviewer/ai-reviewer/critical-reminders.md +40 -0
- package/src/agents/reviewer/ai-reviewer/critical-requirements.md +37 -0
- package/src/agents/reviewer/ai-reviewer/identity.md +51 -0
- package/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
- package/src/agents/reviewer/ai-reviewer/output.md +395 -0
- package/src/agents/reviewer/ai-reviewer/playbook.md +90 -0
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +31 -0
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +27 -0
- package/src/agents/reviewer/api-reviewer/identity.md +51 -0
- package/src/agents/reviewer/api-reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/api-reviewer/output.md +343 -0
- package/src/agents/reviewer/api-reviewer/playbook.md +288 -0
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +33 -0
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +30 -0
- package/src/agents/reviewer/cli-reviewer/identity.md +44 -0
- package/src/agents/reviewer/cli-reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/cli-reviewer/output.md +414 -0
- package/src/agents/reviewer/cli-reviewer/playbook.md +218 -0
- package/src/agents/reviewer/infra-reviewer/critical-reminders.md +38 -0
- package/src/agents/reviewer/infra-reviewer/critical-requirements.md +38 -0
- package/src/agents/reviewer/infra-reviewer/identity.md +53 -0
- package/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
- package/src/agents/reviewer/infra-reviewer/output.md +364 -0
- package/src/agents/reviewer/infra-reviewer/playbook.md +161 -0
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +31 -0
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +26 -0
- package/src/agents/reviewer/web-reviewer/identity.md +40 -0
- package/src/agents/reviewer/web-reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/web-reviewer/output.md +333 -0
- package/src/agents/reviewer/web-reviewer/playbook.md +156 -0
- package/src/agents/tester/api-tester/critical-reminders.md +41 -0
- package/src/agents/tester/api-tester/critical-requirements.md +41 -0
- package/src/agents/tester/api-tester/identity.md +47 -0
- package/src/agents/tester/api-tester/metadata.yaml +12 -0
- package/src/agents/tester/api-tester/output.md +284 -0
- package/src/agents/tester/api-tester/playbook.md +275 -0
- package/src/agents/tester/cli-tester/critical-reminders.md +36 -0
- package/src/agents/tester/cli-tester/critical-requirements.md +36 -0
- package/src/agents/tester/cli-tester/identity.md +43 -0
- package/src/agents/tester/cli-tester/metadata.yaml +12 -0
- package/src/agents/tester/cli-tester/output.md +313 -0
- package/src/agents/tester/cli-tester/playbook.md +221 -0
- package/src/agents/tester/web-tester/critical-reminders.md +31 -0
- package/src/agents/tester/web-tester/critical-requirements.md +28 -0
- package/src/agents/tester/web-tester/identity.md +41 -0
- package/src/agents/tester/web-tester/metadata.yaml +12 -0
- package/src/agents/tester/web-tester/output.md +321 -0
- package/src/agents/tester/web-tester/playbook.md +428 -0
- package/src/schemas/agent-frontmatter.schema.json +88 -0
- package/src/schemas/agent.schema.json +103 -0
- package/src/schemas/custom-metadata.schema.json +74 -0
- package/src/schemas/hooks.schema.json +47 -0
- package/src/schemas/marketplace.schema.json +119 -0
- package/src/schemas/metadata.schema.json +387 -0
- package/src/schemas/plugin.schema.json +127 -0
- package/src/schemas/project-config.schema.json +189 -0
- package/src/schemas/project-source-config.schema.json +96 -0
- package/src/schemas/skill-frontmatter.schema.json +42 -0
- package/src/schemas/stack.schema.json +191 -0
- package/src/schemas/stacks.schema.json +107 -0
- package/bin/run.js +0 -3
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
validateKebabCaseName
|
|
4
|
+
} from "./chunk-PG4G4IIK.js";
|
|
5
|
+
import {
|
|
6
|
+
FEATURE_FLAGS,
|
|
7
|
+
featureDisabledError
|
|
8
|
+
} from "./chunk-IHO75PMZ.js";
|
|
9
|
+
import {
|
|
10
|
+
BaseCommand,
|
|
11
|
+
EXIT_CODES
|
|
12
|
+
} from "./chunk-7QIHKQL5.js";
|
|
13
|
+
import {
|
|
14
|
+
LOCAL_DEFAULTS,
|
|
15
|
+
computeSkillFolderHash,
|
|
16
|
+
detectInstallation,
|
|
17
|
+
loadConfig,
|
|
18
|
+
loadConfigTypesDataInBackground,
|
|
19
|
+
resolveAuthor,
|
|
20
|
+
toTitleCase,
|
|
21
|
+
writeScaffoldedEntityTypes,
|
|
22
|
+
yamlSchemaComment
|
|
23
|
+
} from "./chunk-TVHRMRD3.js";
|
|
24
|
+
import {
|
|
25
|
+
ensureDir,
|
|
26
|
+
fileExists,
|
|
27
|
+
getErrorMessage,
|
|
28
|
+
skillCategoriesFileSchema,
|
|
29
|
+
verbose,
|
|
30
|
+
writeFile
|
|
31
|
+
} from "./chunk-3LIU2ZEF.js";
|
|
32
|
+
import {
|
|
33
|
+
CLI_INVOKE_COMMAND,
|
|
34
|
+
DEFAULT_VERSION,
|
|
35
|
+
LOCAL_SKILLS_PATH,
|
|
36
|
+
SCHEMA_PATHS,
|
|
37
|
+
SKILLS_DIR_PATH,
|
|
38
|
+
SKILL_CATEGORIES_PATH,
|
|
39
|
+
SKILL_RULES_PATH,
|
|
40
|
+
STANDARD_FILES,
|
|
41
|
+
marketplaceManifestPath
|
|
42
|
+
} from "./chunk-O5ASLZ2K.js";
|
|
43
|
+
import {
|
|
44
|
+
init_esm_shims
|
|
45
|
+
} from "./chunk-P56WJ5FA.js";
|
|
46
|
+
|
|
47
|
+
// src/cli/commands/new/skill.ts
|
|
48
|
+
init_esm_shims();
|
|
49
|
+
import { Args, Flags } from "@oclif/core";
|
|
50
|
+
import path from "path";
|
|
51
|
+
|
|
52
|
+
// src/cli/lib/skills/generators.ts
|
|
53
|
+
init_esm_shims();
|
|
54
|
+
var DEFAULT_CATEGORY_ORDER = 99;
|
|
55
|
+
var CATEGORIES_TS_COMMENT = "// Skill category definitions";
|
|
56
|
+
var RULES_TS_COMMENT = "// Skill rules configuration";
|
|
57
|
+
function formatTsExport(comment, data) {
|
|
58
|
+
const body = JSON.stringify(data, null, 2);
|
|
59
|
+
return `${comment}
|
|
60
|
+
export default ${body};
|
|
61
|
+
`;
|
|
62
|
+
}
|
|
63
|
+
function buildCategoryEntry(category, domain) {
|
|
64
|
+
const categoryPart = category.includes("-") ? category.slice(category.indexOf("-") + 1) : category;
|
|
65
|
+
return {
|
|
66
|
+
id: category,
|
|
67
|
+
displayName: toTitleCase(categoryPart),
|
|
68
|
+
description: `Skills for ${toTitleCase(categoryPart)}`,
|
|
69
|
+
exclusive: true,
|
|
70
|
+
required: false,
|
|
71
|
+
order: DEFAULT_CATEGORY_ORDER,
|
|
72
|
+
custom: true,
|
|
73
|
+
domain
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function generateSkillCategoriesTs(category, domain) {
|
|
77
|
+
const entry = buildCategoryEntry(category, domain);
|
|
78
|
+
const data = {
|
|
79
|
+
version: DEFAULT_VERSION,
|
|
80
|
+
categories: {
|
|
81
|
+
[category]: entry
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
return formatTsExport(CATEGORIES_TS_COMMENT, data);
|
|
85
|
+
}
|
|
86
|
+
function generateSkillRulesTs() {
|
|
87
|
+
const data = {
|
|
88
|
+
version: DEFAULT_VERSION,
|
|
89
|
+
relationships: {
|
|
90
|
+
conflicts: [],
|
|
91
|
+
discourages: [],
|
|
92
|
+
recommends: [],
|
|
93
|
+
requires: [],
|
|
94
|
+
alternatives: []
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
return formatTsExport(RULES_TS_COMMENT, data);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// src/cli/commands/new/skill.ts
|
|
101
|
+
var NewSkill = class _NewSkill extends BaseCommand {
|
|
102
|
+
static summary = "Create a new local skill with proper structure";
|
|
103
|
+
static description = "Create a new local skill scaffold with SKILL.md and metadata.yaml files";
|
|
104
|
+
static examples = [
|
|
105
|
+
{
|
|
106
|
+
description: "Scaffold a skill in the local marketplace",
|
|
107
|
+
command: "<%= config.bin %> <%= command.id %> my-skill"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
description: "Scaffold with explicit category and domain",
|
|
111
|
+
command: "<%= config.bin %> <%= command.id %> my-skill --category web/forms --domain web"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
description: "Overwrite an existing skill",
|
|
115
|
+
command: "<%= config.bin %> <%= command.id %> my-skill --force"
|
|
116
|
+
}
|
|
117
|
+
];
|
|
118
|
+
static args = {
|
|
119
|
+
name: Args.string({
|
|
120
|
+
description: "Name of the skill to create (kebab-case)",
|
|
121
|
+
required: true
|
|
122
|
+
})
|
|
123
|
+
};
|
|
124
|
+
// Override parent baseFlags to drop --source (new skill auto-detects marketplace context)
|
|
125
|
+
static baseFlags = {};
|
|
126
|
+
static flags = {
|
|
127
|
+
author: Flags.string({
|
|
128
|
+
char: "a",
|
|
129
|
+
description: "Author identifier (e.g., @myhandle)",
|
|
130
|
+
required: false
|
|
131
|
+
}),
|
|
132
|
+
category: Flags.string({
|
|
133
|
+
char: "c",
|
|
134
|
+
description: "Skill category",
|
|
135
|
+
default: LOCAL_DEFAULTS.CATEGORY
|
|
136
|
+
}),
|
|
137
|
+
domain: Flags.string({
|
|
138
|
+
char: "d",
|
|
139
|
+
description: "Domain for the skill (e.g., web, api, cli)",
|
|
140
|
+
required: false
|
|
141
|
+
}),
|
|
142
|
+
force: Flags.boolean({
|
|
143
|
+
char: "f",
|
|
144
|
+
description: "Overwrite existing skill",
|
|
145
|
+
default: false
|
|
146
|
+
})
|
|
147
|
+
};
|
|
148
|
+
async run() {
|
|
149
|
+
if (!FEATURE_FLAGS.NEW_SKILL_COMMAND) {
|
|
150
|
+
this.error(featureDisabledError("new skill"), {
|
|
151
|
+
exit: EXIT_CODES.ERROR
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
const { args, flags } = await this.parse(_NewSkill);
|
|
155
|
+
const projectDir = process.cwd();
|
|
156
|
+
await this.ensureInstallation(projectDir);
|
|
157
|
+
const configTypesReady = loadConfigTypesDataInBackground(void 0, projectDir);
|
|
158
|
+
this.printHeader();
|
|
159
|
+
this.validateName(args.name);
|
|
160
|
+
const author = await resolveAuthorOrDefault(flags.author, projectDir);
|
|
161
|
+
const category = flags.category;
|
|
162
|
+
const domain = flags.domain ?? LOCAL_DEFAULTS.DOMAIN;
|
|
163
|
+
const skillsBasePath = await this.resolveSkillsBasePath(projectDir);
|
|
164
|
+
const skillDir = path.join(skillsBasePath, args.name);
|
|
165
|
+
await this.checkExistingDir(skillDir, flags.force);
|
|
166
|
+
this.logSkillInfo(args.name, author, category, skillDir);
|
|
167
|
+
await this.createSkillFiles(
|
|
168
|
+
args.name,
|
|
169
|
+
author,
|
|
170
|
+
category,
|
|
171
|
+
domain,
|
|
172
|
+
skillDir,
|
|
173
|
+
projectDir,
|
|
174
|
+
configTypesReady
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
async ensureInstallation(projectDir) {
|
|
178
|
+
const installation = await detectInstallation(projectDir);
|
|
179
|
+
if (!installation) {
|
|
180
|
+
this.error(`No installation found. Run '${CLI_INVOKE_COMMAND} init' first.`, {
|
|
181
|
+
exit: EXIT_CODES.ERROR
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
printHeader() {
|
|
186
|
+
this.log("");
|
|
187
|
+
this.log("Create New Skill");
|
|
188
|
+
this.log("");
|
|
189
|
+
}
|
|
190
|
+
validateName(name) {
|
|
191
|
+
const validationError = validateKebabCaseName(name, "Skill");
|
|
192
|
+
if (validationError) {
|
|
193
|
+
this.error(validationError, { exit: EXIT_CODES.INVALID_ARGS });
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
async resolveSkillsBasePath(projectDir) {
|
|
197
|
+
const marketplacePath = marketplaceManifestPath(projectDir);
|
|
198
|
+
if (await fileExists(marketplacePath)) {
|
|
199
|
+
this.log(`Detected marketplace context, creating skill in ${SKILLS_DIR_PATH}/`);
|
|
200
|
+
return path.join(projectDir, SKILLS_DIR_PATH);
|
|
201
|
+
}
|
|
202
|
+
return path.join(projectDir, LOCAL_SKILLS_PATH);
|
|
203
|
+
}
|
|
204
|
+
async checkExistingDir(skillDir, force) {
|
|
205
|
+
await this.ensureDirOverwritable(skillDir, force, {
|
|
206
|
+
exists: `Skill directory already exists: ${skillDir}`,
|
|
207
|
+
overwriting: `Overwriting existing skill at ${skillDir}`
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
logSkillInfo(name, author, category, skillDir) {
|
|
211
|
+
this.log(`Skill name: ${name}`);
|
|
212
|
+
this.log(`Author: ${author}`);
|
|
213
|
+
this.log(`Category: ${category}`);
|
|
214
|
+
this.log(`Directory: ${skillDir}`);
|
|
215
|
+
this.log("");
|
|
216
|
+
}
|
|
217
|
+
async createSkillFiles(name, author, category, domain, skillDir, projectDir, configTypesReady) {
|
|
218
|
+
this.log("Creating skill files...");
|
|
219
|
+
try {
|
|
220
|
+
const result = await scaffoldSkillFiles({
|
|
221
|
+
name,
|
|
222
|
+
author,
|
|
223
|
+
category,
|
|
224
|
+
domain,
|
|
225
|
+
skillDir
|
|
226
|
+
});
|
|
227
|
+
this.log("");
|
|
228
|
+
this.logSuccess(`Created ${STANDARD_FILES.SKILL_MD} at ${result.skillMdPath}`);
|
|
229
|
+
this.logSuccess(`Created ${STANDARD_FILES.METADATA_YAML} at ${result.metadataPath}`);
|
|
230
|
+
const marketplacePath = marketplaceManifestPath(projectDir);
|
|
231
|
+
if (await fileExists(marketplacePath)) {
|
|
232
|
+
try {
|
|
233
|
+
await updateSkillRegistryConfig({ projectRoot: projectDir, category, domain });
|
|
234
|
+
} catch (error) {
|
|
235
|
+
this.warn(`Could not update config files: ${getErrorMessage(error)}`);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
try {
|
|
239
|
+
await writeScaffoldedEntityTypes(projectDir, configTypesReady, {
|
|
240
|
+
extraSkillIds: [name],
|
|
241
|
+
extraDomains: [domain],
|
|
242
|
+
extraCategories: [category]
|
|
243
|
+
});
|
|
244
|
+
} catch (error) {
|
|
245
|
+
this.warn(`Could not update ${STANDARD_FILES.CONFIG_TYPES_TS}: ${getErrorMessage(error)}`);
|
|
246
|
+
}
|
|
247
|
+
this.log("");
|
|
248
|
+
this.log(
|
|
249
|
+
`Skill created successfully! Run '${CLI_INVOKE_COMMAND} compile' to include it in your agents.`
|
|
250
|
+
);
|
|
251
|
+
this.log("");
|
|
252
|
+
} catch (error) {
|
|
253
|
+
this.handleError(error);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
async function resolveAuthorOrDefault(authorFlag, projectDir) {
|
|
258
|
+
if (authorFlag) return authorFlag;
|
|
259
|
+
return await resolveAuthor(projectDir) || LOCAL_DEFAULTS.AUTHOR;
|
|
260
|
+
}
|
|
261
|
+
function generateSkillMd(name) {
|
|
262
|
+
const titleName = toTitleCase(name);
|
|
263
|
+
return `---
|
|
264
|
+
name: ${name}
|
|
265
|
+
description: Brief description of this skill
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
# ${titleName}
|
|
269
|
+
|
|
270
|
+
> **Quick Guide:** Add a brief summary of what this skill teaches.
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
<critical_requirements>
|
|
275
|
+
|
|
276
|
+
## CRITICAL: Before Using This Skill
|
|
277
|
+
|
|
278
|
+
**(Add critical requirements here)**
|
|
279
|
+
|
|
280
|
+
</critical_requirements>
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
**When to use:**
|
|
285
|
+
|
|
286
|
+
- Add use cases here
|
|
287
|
+
|
|
288
|
+
**Key patterns covered:**
|
|
289
|
+
|
|
290
|
+
- Add patterns here
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
<patterns>
|
|
295
|
+
|
|
296
|
+
## Core Patterns
|
|
297
|
+
|
|
298
|
+
### Pattern 1: Example Pattern
|
|
299
|
+
|
|
300
|
+
Add your patterns here.
|
|
301
|
+
|
|
302
|
+
</patterns>
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
<critical_reminders>
|
|
307
|
+
|
|
308
|
+
## CRITICAL REMINDERS
|
|
309
|
+
|
|
310
|
+
**(Repeat critical requirements here)**
|
|
311
|
+
|
|
312
|
+
</critical_reminders>
|
|
313
|
+
`;
|
|
314
|
+
}
|
|
315
|
+
function generateMetadataYaml(name, author, category, contentHash, domain) {
|
|
316
|
+
const titleName = toTitleCase(name);
|
|
317
|
+
return `${yamlSchemaComment(SCHEMA_PATHS.customMetadata)}
|
|
318
|
+
custom: true
|
|
319
|
+
domain: ${domain}
|
|
320
|
+
category: ${category}
|
|
321
|
+
author: "${author}"
|
|
322
|
+
displayName: ${titleName}
|
|
323
|
+
slug: ${name}
|
|
324
|
+
cliDescription: Brief description
|
|
325
|
+
usageGuidance: Use when <guidance>.
|
|
326
|
+
contentHash: ${contentHash}
|
|
327
|
+
`;
|
|
328
|
+
}
|
|
329
|
+
async function scaffoldSkillFiles(options) {
|
|
330
|
+
const { name, author, category, domain, skillDir } = options;
|
|
331
|
+
const skillMdContent = generateSkillMd(name);
|
|
332
|
+
const skillMdPath = path.join(skillDir, STANDARD_FILES.SKILL_MD);
|
|
333
|
+
const metadataPath = path.join(skillDir, STANDARD_FILES.METADATA_YAML);
|
|
334
|
+
await writeFile(skillMdPath, skillMdContent);
|
|
335
|
+
const contentHash = await computeSkillFolderHash(skillDir);
|
|
336
|
+
const metadataContent = generateMetadataYaml(name, author, category, contentHash, domain);
|
|
337
|
+
await writeFile(metadataPath, metadataContent);
|
|
338
|
+
return { skillMdPath, metadataPath, contentHash };
|
|
339
|
+
}
|
|
340
|
+
async function updateSkillRegistryConfig(options) {
|
|
341
|
+
const { projectRoot, category, domain } = options;
|
|
342
|
+
const categoriesPath = path.join(projectRoot, SKILL_CATEGORIES_PATH);
|
|
343
|
+
const rulesPath = path.join(projectRoot, SKILL_RULES_PATH);
|
|
344
|
+
if (await fileExists(categoriesPath)) {
|
|
345
|
+
const parsed = await loadConfig(categoriesPath, skillCategoriesFileSchema);
|
|
346
|
+
if (!parsed) {
|
|
347
|
+
throw new Error(
|
|
348
|
+
`Config at ${categoriesPath} has no default export \u2014 delete the file or add \`export default { version, categories: {} }\``
|
|
349
|
+
);
|
|
350
|
+
}
|
|
351
|
+
const categories = parsed.categories;
|
|
352
|
+
if (!categories[category]) {
|
|
353
|
+
const updated = {
|
|
354
|
+
...parsed,
|
|
355
|
+
categories: { ...categories, [category]: buildCategoryEntry(category, domain) }
|
|
356
|
+
};
|
|
357
|
+
await writeFile(categoriesPath, formatTsExport(CATEGORIES_TS_COMMENT2, updated));
|
|
358
|
+
verbose(`Added category '${category}' to ${SKILL_CATEGORIES_PATH}`);
|
|
359
|
+
}
|
|
360
|
+
} else {
|
|
361
|
+
await ensureDir(path.dirname(categoriesPath));
|
|
362
|
+
await writeFile(categoriesPath, generateSkillCategoriesTs(category, domain));
|
|
363
|
+
verbose(`Created ${SKILL_CATEGORIES_PATH}`);
|
|
364
|
+
}
|
|
365
|
+
if (!await fileExists(rulesPath)) {
|
|
366
|
+
await ensureDir(path.dirname(rulesPath));
|
|
367
|
+
await writeFile(rulesPath, generateSkillRulesTs());
|
|
368
|
+
verbose(`Created ${SKILL_RULES_PATH}`);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
var CATEGORIES_TS_COMMENT2 = "// Skill category definitions";
|
|
372
|
+
|
|
373
|
+
export {
|
|
374
|
+
generateSkillCategoriesTs,
|
|
375
|
+
generateSkillRulesTs,
|
|
376
|
+
NewSkill,
|
|
377
|
+
resolveAuthorOrDefault,
|
|
378
|
+
generateSkillMd,
|
|
379
|
+
generateMetadataYaml,
|
|
380
|
+
scaffoldSkillFiles
|
|
381
|
+
};
|
|
382
|
+
//# sourceMappingURL=chunk-PV2HNW4I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/new/skill.ts","../src/cli/lib/skills/generators.ts"],"sourcesContent":["import { Args, Flags } from \"@oclif/core\";\nimport path from \"path\";\nimport { BaseCommand } from \"../../base-command.js\";\nimport { resolveAuthor } from \"../../lib/configuration/index.js\";\nimport { loadConfig } from \"../../lib/configuration/config-loader.js\";\nimport { skillCategoriesFileSchema } from \"../../lib/schemas.js\";\nimport { loadConfigTypesDataInBackground } from \"../../lib/configuration/config-types-writer.js\";\nimport { writeScaffoldedEntityTypes } from \"../../lib/config-gate/index.js\";\nimport { fileExists, writeFile, ensureDir } from \"../../utils/fs.js\";\nimport { getErrorMessage } from \"../../utils/errors.js\";\nimport { verbose } from \"../../utils/logger.js\";\nimport { computeSkillFolderHash } from \"../../lib/versioning.js\";\nimport { validateKebabCaseName } from \"../../lib/validate-kebab-name.js\";\nimport {\n CLI_INVOKE_COMMAND,\n LOCAL_SKILLS_PATH,\n marketplaceManifestPath,\n SCHEMA_PATHS,\n SKILL_CATEGORIES_PATH,\n SKILL_RULES_PATH,\n SKILLS_DIR_PATH,\n STANDARD_FILES,\n} from \"../../consts.js\";\nimport { EXIT_CODES } from \"../../lib/exit-codes.js\";\nimport { FEATURE_FLAGS, featureDisabledError } from \"../../lib/feature-flags.js\";\nimport { yamlSchemaComment } from \"../../utils/yaml-schema.js\";\nimport { detectInstallation } from \"../../lib/installation/index.js\";\nimport { LOCAL_DEFAULTS } from \"../../lib/metadata-keys.js\";\nimport type { CategoryDefinition, CategoryPath } from \"../../types/index.js\";\nimport {\n generateSkillCategoriesTs,\n generateSkillRulesTs,\n buildCategoryEntry,\n formatTsExport,\n} from \"../../lib/skills/generators.js\";\nimport { toTitleCase } from \"../../utils/string.js\";\n\nexport default class NewSkill extends BaseCommand {\n static summary = \"Create a new local skill with proper structure\";\n static description = \"Create a new local skill scaffold with SKILL.md and metadata.yaml files\";\n\n static examples = [\n {\n description: \"Scaffold a skill in the local marketplace\",\n command: \"<%= config.bin %> <%= command.id %> my-skill\",\n },\n {\n description: \"Scaffold with explicit category and domain\",\n command: \"<%= config.bin %> <%= command.id %> my-skill --category web/forms --domain web\",\n },\n {\n description: \"Overwrite an existing skill\",\n command: \"<%= config.bin %> <%= command.id %> my-skill --force\",\n },\n ];\n\n static args = {\n name: Args.string({\n description: \"Name of the skill to create (kebab-case)\",\n required: true,\n }),\n };\n\n // Override parent baseFlags to drop --source (new skill auto-detects marketplace context)\n static baseFlags = {} as (typeof BaseCommand)[\"baseFlags\"];\n\n static flags = {\n author: Flags.string({\n char: \"a\",\n description: \"Author identifier (e.g., @myhandle)\",\n required: false,\n }),\n category: Flags.string({\n char: \"c\",\n description: \"Skill category\",\n default: LOCAL_DEFAULTS.CATEGORY,\n }),\n domain: Flags.string({\n char: \"d\",\n description: \"Domain for the skill (e.g., web, api, cli)\",\n required: false,\n }),\n force: Flags.boolean({\n char: \"f\",\n description: \"Overwrite existing skill\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n if (!FEATURE_FLAGS.NEW_SKILL_COMMAND) {\n this.error(featureDisabledError(\"new skill\"), {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n const { args, flags } = await this.parse(NewSkill);\n const projectDir = process.cwd();\n\n await this.ensureInstallation(projectDir);\n const configTypesReady = loadConfigTypesDataInBackground(undefined, projectDir);\n\n this.printHeader();\n this.validateName(args.name);\n\n const author = await resolveAuthorOrDefault(flags.author, projectDir);\n // Boundary cast: CLI flag accepts custom category values not in the generated union\n const category = flags.category as CategoryPath;\n const domain = flags.domain ?? LOCAL_DEFAULTS.DOMAIN;\n const skillsBasePath = await this.resolveSkillsBasePath(projectDir);\n const skillDir = path.join(skillsBasePath, args.name);\n\n await this.checkExistingDir(skillDir, flags.force);\n this.logSkillInfo(args.name, author, category, skillDir);\n await this.createSkillFiles(\n args.name,\n author,\n category,\n domain,\n skillDir,\n projectDir,\n configTypesReady,\n );\n }\n\n private async ensureInstallation(projectDir: string): Promise<void> {\n const installation = await detectInstallation(projectDir);\n if (!installation) {\n this.error(`No installation found. Run '${CLI_INVOKE_COMMAND} init' first.`, {\n exit: EXIT_CODES.ERROR,\n });\n }\n }\n\n private printHeader(): void {\n this.log(\"\");\n this.log(\"Create New Skill\");\n this.log(\"\");\n }\n\n private validateName(name: string): void {\n const validationError = validateKebabCaseName(name, \"Skill\");\n if (validationError) {\n this.error(validationError, { exit: EXIT_CODES.INVALID_ARGS });\n }\n }\n\n private async resolveSkillsBasePath(projectDir: string): Promise<string> {\n const marketplacePath = marketplaceManifestPath(projectDir);\n if (await fileExists(marketplacePath)) {\n this.log(`Detected marketplace context, creating skill in ${SKILLS_DIR_PATH}/`);\n return path.join(projectDir, SKILLS_DIR_PATH);\n }\n return path.join(projectDir, LOCAL_SKILLS_PATH);\n }\n\n private async checkExistingDir(skillDir: string, force: boolean): Promise<void> {\n await this.ensureDirOverwritable(skillDir, force, {\n exists: `Skill directory already exists: ${skillDir}`,\n overwriting: `Overwriting existing skill at ${skillDir}`,\n });\n }\n\n private logSkillInfo(\n name: string,\n author: string,\n category: CategoryPath,\n skillDir: string,\n ): void {\n this.log(`Skill name: ${name}`);\n this.log(`Author: ${author}`);\n this.log(`Category: ${category}`);\n this.log(`Directory: ${skillDir}`);\n this.log(\"\");\n }\n\n private async createSkillFiles(\n name: string,\n author: string,\n category: CategoryPath,\n domain: string,\n skillDir: string,\n projectDir: string,\n configTypesReady: ReturnType<typeof loadConfigTypesDataInBackground>,\n ): Promise<void> {\n this.log(\"Creating skill files...\");\n\n try {\n const result = await scaffoldSkillFiles({\n name,\n author,\n category,\n domain,\n skillDir,\n });\n\n this.log(\"\");\n this.logSuccess(`Created ${STANDARD_FILES.SKILL_MD} at ${result.skillMdPath}`);\n this.logSuccess(`Created ${STANDARD_FILES.METADATA_YAML} at ${result.metadataPath}`);\n\n const marketplacePath = marketplaceManifestPath(projectDir);\n if (await fileExists(marketplacePath)) {\n try {\n await updateSkillRegistryConfig({ projectRoot: projectDir, category, domain });\n } catch (error) {\n this.warn(`Could not update config files: ${getErrorMessage(error)}`);\n }\n }\n\n try {\n await writeScaffoldedEntityTypes(projectDir, configTypesReady, {\n extraSkillIds: [name],\n extraDomains: [domain],\n extraCategories: [category],\n });\n } catch (error) {\n this.warn(`Could not update ${STANDARD_FILES.CONFIG_TYPES_TS}: ${getErrorMessage(error)}`);\n }\n\n this.log(\"\");\n this.log(\n `Skill created successfully! Run '${CLI_INVOKE_COMMAND} compile' to include it in your agents.`,\n );\n this.log(\"\");\n } catch (error) {\n this.handleError(error);\n }\n }\n}\n\ntype ScaffoldSkillOptions = {\n name: string;\n author: string;\n category: CategoryPath;\n domain: string;\n skillDir: string;\n};\n\ntype ScaffoldSkillResult = {\n skillMdPath: string;\n metadataPath: string;\n contentHash: string;\n};\n\ntype RegistryUpdateOptions = {\n projectRoot: string;\n category: CategoryPath;\n domain: string;\n};\n\nexport async function resolveAuthorOrDefault(\n authorFlag: string | undefined,\n projectDir: string,\n): Promise<string> {\n if (authorFlag) return authorFlag;\n return (await resolveAuthor(projectDir)) || LOCAL_DEFAULTS.AUTHOR;\n}\n\nexport function generateSkillMd(name: string): string {\n const titleName = toTitleCase(name);\n\n return `---\nname: ${name}\ndescription: Brief description of this skill\n---\n\n# ${titleName}\n\n> **Quick Guide:** Add a brief summary of what this skill teaches.\n\n---\n\n<critical_requirements>\n\n## CRITICAL: Before Using This Skill\n\n**(Add critical requirements here)**\n\n</critical_requirements>\n\n---\n\n**When to use:**\n\n- Add use cases here\n\n**Key patterns covered:**\n\n- Add patterns here\n\n---\n\n<patterns>\n\n## Core Patterns\n\n### Pattern 1: Example Pattern\n\nAdd your patterns here.\n\n</patterns>\n\n---\n\n<critical_reminders>\n\n## CRITICAL REMINDERS\n\n**(Repeat critical requirements here)**\n\n</critical_reminders>\n`;\n}\n\nexport function generateMetadataYaml(\n name: string,\n author: string,\n category: CategoryPath,\n contentHash: string,\n domain: string,\n): string {\n const titleName = toTitleCase(name);\n\n return `${yamlSchemaComment(SCHEMA_PATHS.customMetadata)}\ncustom: true\ndomain: ${domain}\ncategory: ${category}\nauthor: \"${author}\"\ndisplayName: ${titleName}\nslug: ${name}\ncliDescription: Brief description\nusageGuidance: Use when <guidance>.\ncontentHash: ${contentHash}\n`;\n}\n\nexport async function scaffoldSkillFiles(\n options: ScaffoldSkillOptions,\n): Promise<ScaffoldSkillResult> {\n const { name, author, category, domain, skillDir } = options;\n\n const skillMdContent = generateSkillMd(name);\n const skillMdPath = path.join(skillDir, STANDARD_FILES.SKILL_MD);\n const metadataPath = path.join(skillDir, STANDARD_FILES.METADATA_YAML);\n\n await writeFile(skillMdPath, skillMdContent);\n\n const contentHash = await computeSkillFolderHash(skillDir);\n const metadataContent = generateMetadataYaml(name, author, category, contentHash, domain);\n await writeFile(metadataPath, metadataContent);\n\n return { skillMdPath, metadataPath, contentHash };\n}\n\nasync function updateSkillRegistryConfig(options: RegistryUpdateOptions): Promise<void> {\n const { projectRoot, category, domain } = options;\n\n const categoriesPath = path.join(projectRoot, SKILL_CATEGORIES_PATH);\n const rulesPath = path.join(projectRoot, SKILL_RULES_PATH);\n\n if (await fileExists(categoriesPath)) {\n const parsed = await loadConfig(categoriesPath, skillCategoriesFileSchema);\n if (!parsed) {\n throw new Error(\n `Config at ${categoriesPath} has no default export — delete the file or add \\`export default { version, categories: {} }\\``,\n );\n }\n // Boundary cast: CategoryMap keys are strict Category; CLI flag may introduce custom category IDs\n const categories = parsed.categories as Record<string, CategoryDefinition>;\n if (!categories[category]) {\n const updated = {\n ...parsed,\n categories: { ...categories, [category]: buildCategoryEntry(category, domain) },\n };\n await writeFile(categoriesPath, formatTsExport(CATEGORIES_TS_COMMENT, updated));\n verbose(`Added category '${category}' to ${SKILL_CATEGORIES_PATH}`);\n }\n } else {\n await ensureDir(path.dirname(categoriesPath));\n await writeFile(categoriesPath, generateSkillCategoriesTs(category, domain));\n verbose(`Created ${SKILL_CATEGORIES_PATH}`);\n }\n\n if (!(await fileExists(rulesPath))) {\n await ensureDir(path.dirname(rulesPath));\n await writeFile(rulesPath, generateSkillRulesTs());\n verbose(`Created ${SKILL_RULES_PATH}`);\n }\n}\n\nconst CATEGORIES_TS_COMMENT = \"// Skill category definitions\";\n","import { DEFAULT_VERSION } from \"../../consts\";\nimport { toTitleCase } from \"../../utils/string\";\nimport type { CategoryPath } from \"../../types/index\";\n\nconst DEFAULT_CATEGORY_ORDER = 99;\n\nconst CATEGORIES_TS_COMMENT = \"// Skill category definitions\";\nconst RULES_TS_COMMENT = \"// Skill rules configuration\";\n\nexport function formatTsExport(comment: string, data: unknown): string {\n const body = JSON.stringify(data, null, 2);\n return `${comment}\\nexport default ${body};\\n`;\n}\n\nexport function buildCategoryEntry(\n category: CategoryPath,\n domain: string,\n): Record<string, unknown> {\n const categoryPart = category.includes(\"-\")\n ? category.slice(category.indexOf(\"-\") + 1)\n : category;\n return {\n id: category,\n displayName: toTitleCase(categoryPart),\n description: `Skills for ${toTitleCase(categoryPart)}`,\n exclusive: true,\n required: false,\n order: DEFAULT_CATEGORY_ORDER,\n custom: true,\n domain,\n };\n}\n\nexport function generateSkillCategoriesTs(category: CategoryPath, domain: string): string {\n const entry = buildCategoryEntry(category, domain);\n const data = {\n version: DEFAULT_VERSION,\n categories: {\n [category]: entry,\n },\n };\n return formatTsExport(CATEGORIES_TS_COMMENT, data);\n}\n\nexport function generateSkillRulesTs(): string {\n const data = {\n version: DEFAULT_VERSION,\n relationships: {\n conflicts: [],\n discourages: [],\n recommends: [],\n requires: [],\n alternatives: [],\n },\n };\n return formatTsExport(RULES_TS_COMMENT, data);\n}\n"],"mappings":"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","names":["CATEGORIES_TS_COMMENT"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
CLI_COLORS,
|
|
4
|
+
UI_SYMBOLS
|
|
5
|
+
} from "./chunk-O5ASLZ2K.js";
|
|
6
|
+
import {
|
|
7
|
+
init_esm_shims
|
|
8
|
+
} from "./chunk-P56WJ5FA.js";
|
|
9
|
+
|
|
10
|
+
// src/cli/components/wizard/selection-card.tsx
|
|
11
|
+
init_esm_shims();
|
|
12
|
+
import { Box, Text } from "ink";
|
|
13
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
var SelectionCard = ({
|
|
15
|
+
label,
|
|
16
|
+
description,
|
|
17
|
+
isFocused,
|
|
18
|
+
marginBottom
|
|
19
|
+
}) => {
|
|
20
|
+
const descriptionLines = Array.isArray(description) ? description : [description];
|
|
21
|
+
return /* @__PURE__ */ jsx(
|
|
22
|
+
Box,
|
|
23
|
+
{
|
|
24
|
+
borderStyle: "round",
|
|
25
|
+
borderColor: isFocused ? CLI_COLORS.PRIMARY : CLI_COLORS.NEUTRAL,
|
|
26
|
+
paddingX: 2,
|
|
27
|
+
paddingY: 1,
|
|
28
|
+
marginBottom,
|
|
29
|
+
width: "100%",
|
|
30
|
+
children: /* @__PURE__ */ jsxs(Box, { flexDirection: "column", gap: 1, children: [
|
|
31
|
+
/* @__PURE__ */ jsx(Text, { color: isFocused ? CLI_COLORS.PRIMARY : void 0, bold: isFocused, children: isFocused ? `${UI_SYMBOLS.CHEVRON} ${label}` : label }),
|
|
32
|
+
descriptionLines.map((line, index) => /* @__PURE__ */ jsx(Text, { dimColor: true, children: line }, index))
|
|
33
|
+
] })
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export {
|
|
39
|
+
SelectionCard
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=chunk-QQLRX4KI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/selection-card.tsx"],"sourcesContent":["import { Box, Text } from \"ink\";\nimport React from \"react\";\nimport { CLI_COLORS, UI_SYMBOLS } from \"../../consts.js\";\n\ntype SelectionCardProps = {\n label: string;\n description: string | string[];\n isFocused: boolean;\n marginBottom?: number;\n};\n\nexport const SelectionCard: React.FC<SelectionCardProps> = ({\n label,\n description,\n isFocused,\n marginBottom,\n}) => {\n const descriptionLines = Array.isArray(description) ? description : [description];\n\n return (\n <Box\n borderStyle=\"round\"\n borderColor={isFocused ? CLI_COLORS.PRIMARY : CLI_COLORS.NEUTRAL}\n paddingX={2}\n paddingY={1}\n marginBottom={marginBottom}\n width=\"100%\"\n >\n <Box flexDirection=\"column\" gap={1}>\n <Text color={isFocused ? CLI_COLORS.PRIMARY : undefined} bold={isFocused}>\n {isFocused ? `${UI_SYMBOLS.CHEVRON} ${label}` : label}\n </Text>\n {descriptionLines.map((line, index) => (\n <Text key={index} dimColor>\n {line}\n </Text>\n ))}\n </Box>\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA;AAAA,SAAS,KAAK,YAAY;AA4BpB,SACE,KADF;AAjBC,IAAM,gBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,mBAAmB,MAAM,QAAQ,WAAW,IAAI,cAAc,CAAC,WAAW;AAEhF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAY;AAAA,MACZ,aAAa,YAAY,WAAW,UAAU,WAAW;AAAA,MACzD,UAAU;AAAA,MACV,UAAU;AAAA,MACV;AAAA,MACA,OAAM;AAAA,MAEN,+BAAC,OAAI,eAAc,UAAS,KAAK,GAC/B;AAAA,4BAAC,QAAK,OAAO,YAAY,WAAW,UAAU,QAAW,MAAM,WAC5D,sBAAY,GAAG,WAAW,OAAO,IAAI,KAAK,KAAK,OAClD;AAAA,QACC,iBAAiB,IAAI,CAAC,MAAM,UAC3B,oBAAC,QAAiB,UAAQ,MACvB,kBADQ,KAEX,CACD;AAAA,SACH;AAAA;AAAA,EACF;AAEJ;","names":[]}
|