@agents-inc/cli 0.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +462 -0
- package/LICENSE +21 -0
- package/README.md +179 -0
- package/config/skills-matrix.yaml +926 -0
- package/config/stacks.yaml +2186 -0
- package/dist/chunk-3ZOIOVKT.js +365 -0
- package/dist/chunk-3ZOIOVKT.js.map +1 -0
- package/dist/chunk-4RAY5AOI.js +78 -0
- package/dist/chunk-4RAY5AOI.js.map +1 -0
- package/dist/chunk-5PIKNCZX.js +234 -0
- package/dist/chunk-5PIKNCZX.js.map +1 -0
- package/dist/chunk-66UDJBF6.js +96 -0
- package/dist/chunk-66UDJBF6.js.map +1 -0
- package/dist/chunk-7SOPVGDV.js +24 -0
- package/dist/chunk-7SOPVGDV.js.map +1 -0
- package/dist/chunk-A27LOC4Z.js +95 -0
- package/dist/chunk-A27LOC4Z.js.map +1 -0
- package/dist/chunk-B2UBHA66.js +301 -0
- package/dist/chunk-B2UBHA66.js.map +1 -0
- package/dist/chunk-BZN2Z5P7.js +882 -0
- package/dist/chunk-BZN2Z5P7.js.map +1 -0
- package/dist/chunk-BZQBJP34.js +186 -0
- package/dist/chunk-BZQBJP34.js.map +1 -0
- package/dist/chunk-DC5AK3LW.js +105 -0
- package/dist/chunk-DC5AK3LW.js.map +1 -0
- package/dist/chunk-DHET7RCE.js +50 -0
- package/dist/chunk-DHET7RCE.js.map +1 -0
- package/dist/chunk-EMJ2ZKS7.js +346 -0
- package/dist/chunk-EMJ2ZKS7.js.map +1 -0
- package/dist/chunk-FJQRVFMB.js +48 -0
- package/dist/chunk-FJQRVFMB.js.map +1 -0
- package/dist/chunk-FZGYSLJL.js +85 -0
- package/dist/chunk-FZGYSLJL.js.map +1 -0
- package/dist/chunk-H566H3MQ.js +87 -0
- package/dist/chunk-H566H3MQ.js.map +1 -0
- package/dist/chunk-IYG2LAIM.js +90 -0
- package/dist/chunk-IYG2LAIM.js.map +1 -0
- package/dist/chunk-IZZ4IIEG.js +29 -0
- package/dist/chunk-IZZ4IIEG.js.map +1 -0
- package/dist/chunk-JMVWYAHT.js +63 -0
- package/dist/chunk-JMVWYAHT.js.map +1 -0
- package/dist/chunk-LAPCUV4D.js +191 -0
- package/dist/chunk-LAPCUV4D.js.map +1 -0
- package/dist/chunk-LGUI3PMO.js +109 -0
- package/dist/chunk-LGUI3PMO.js.map +1 -0
- package/dist/chunk-MM7NK5N2.js +4542 -0
- package/dist/chunk-MM7NK5N2.js.map +1 -0
- package/dist/chunk-N6S7ZRIL.js +31 -0
- package/dist/chunk-N6S7ZRIL.js.map +1 -0
- package/dist/chunk-O4D67NN7.js +24 -0
- package/dist/chunk-O4D67NN7.js.map +1 -0
- package/dist/chunk-ODUOU55D.js +56 -0
- package/dist/chunk-ODUOU55D.js.map +1 -0
- package/dist/chunk-OGJIZ6QH.js +497 -0
- package/dist/chunk-OGJIZ6QH.js.map +1 -0
- package/dist/chunk-OMV7TLWD.js +340 -0
- package/dist/chunk-OMV7TLWD.js.map +1 -0
- package/dist/chunk-PBEHPQLK.js +146 -0
- package/dist/chunk-PBEHPQLK.js.map +1 -0
- package/dist/chunk-QPTOIZAT.js +32 -0
- package/dist/chunk-QPTOIZAT.js.map +1 -0
- package/dist/chunk-R3XFQKPG.js +111 -0
- package/dist/chunk-R3XFQKPG.js.map +1 -0
- package/dist/chunk-R74PZWQS.js +69 -0
- package/dist/chunk-R74PZWQS.js.map +1 -0
- package/dist/chunk-SO22IQPY.js +45 -0
- package/dist/chunk-SO22IQPY.js.map +1 -0
- package/dist/chunk-T4EXUIBY.js +19 -0
- package/dist/chunk-T4EXUIBY.js.map +1 -0
- package/dist/chunk-U3IGFMCY.js +31 -0
- package/dist/chunk-U3IGFMCY.js.map +1 -0
- package/dist/chunk-UICL22RT.js +318 -0
- package/dist/chunk-UICL22RT.js.map +1 -0
- package/dist/chunk-UX2H2K2G.js +183 -0
- package/dist/chunk-UX2H2K2G.js.map +1 -0
- package/dist/chunk-W2ZSCZ2U.js +93 -0
- package/dist/chunk-W2ZSCZ2U.js.map +1 -0
- package/dist/chunk-WEUVWHMA.js +189 -0
- package/dist/chunk-WEUVWHMA.js.map +1 -0
- package/dist/chunk-XY3XDVMI.js +15599 -0
- package/dist/chunk-XY3XDVMI.js.map +1 -0
- package/dist/chunk-YND42IXK.js +233 -0
- package/dist/chunk-YND42IXK.js.map +1 -0
- package/dist/chunk-YZTWZVGX.js +41 -0
- package/dist/chunk-YZTWZVGX.js.map +1 -0
- package/dist/chunk-Z4TWOP3H.js +81 -0
- package/dist/chunk-Z4TWOP3H.js.map +1 -0
- package/dist/cli/defaults/agent-mappings.yaml +271 -0
- package/dist/commands/build/marketplace.js +252 -0
- package/dist/commands/build/marketplace.js.map +1 -0
- package/dist/commands/build/plugins.js +114 -0
- package/dist/commands/build/plugins.js.map +1 -0
- package/dist/commands/build/stack.js +153 -0
- package/dist/commands/build/stack.js.map +1 -0
- package/dist/commands/compile.js +354 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/config/get.js +61 -0
- package/dist/commands/config/get.js.map +1 -0
- package/dist/commands/config/index.js +23 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/config/path.js +34 -0
- package/dist/commands/config/path.js.map +1 -0
- package/dist/commands/config/set-project.js +61 -0
- package/dist/commands/config/set-project.js.map +1 -0
- package/dist/commands/config/show.js +14 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/config/unset-project.js +57 -0
- package/dist/commands/config/unset-project.js.map +1 -0
- package/dist/commands/diff.js +742 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/doctor.js +370 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/edit.js +301 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/eject.js +262 -0
- package/dist/commands/eject.js.map +1 -0
- package/dist/commands/import/skill.js +361 -0
- package/dist/commands/import/skill.js.map +1 -0
- package/dist/commands/info.js +217 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.js +443 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.js +49 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/new/agent.js +224 -0
- package/dist/commands/new/agent.js.map +1 -0
- package/dist/commands/new/skill.js +199 -0
- package/dist/commands/new/skill.js.map +1 -0
- package/dist/commands/outdated.js +176 -0
- package/dist/commands/outdated.js.map +1 -0
- package/dist/commands/search.js +288 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/uninstall.js +302 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.js +304 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/validate.js +389 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/version/bump.js +79 -0
- package/dist/commands/version/bump.js.map +1 -0
- package/dist/commands/version/index.js +54 -0
- package/dist/commands/version/index.js.map +1 -0
- package/dist/commands/version/set.js +86 -0
- package/dist/commands/version/set.js.map +1 -0
- package/dist/commands/version/show.js +54 -0
- package/dist/commands/version/show.js.map +1 -0
- package/dist/components/common/confirm.js +9 -0
- package/dist/components/common/confirm.js.map +1 -0
- package/dist/components/common/confirm.test.js +203 -0
- package/dist/components/common/confirm.test.js.map +1 -0
- package/dist/components/common/message.js +20 -0
- package/dist/components/common/message.js.map +1 -0
- package/dist/components/common/spinner.js +14 -0
- package/dist/components/common/spinner.js.map +1 -0
- package/dist/components/skill-search/skill-search.js +12 -0
- package/dist/components/skill-search/skill-search.js.map +1 -0
- package/dist/components/wizard/category-grid.js +11 -0
- package/dist/components/wizard/category-grid.js.map +1 -0
- package/dist/components/wizard/category-grid.test.js +997 -0
- package/dist/components/wizard/category-grid.test.js.map +1 -0
- package/dist/components/wizard/domain-selection.js +14 -0
- package/dist/components/wizard/domain-selection.js.map +1 -0
- package/dist/components/wizard/help-modal.js +10 -0
- package/dist/components/wizard/help-modal.js.map +1 -0
- package/dist/components/wizard/menu-item.js +10 -0
- package/dist/components/wizard/menu-item.js.map +1 -0
- package/dist/components/wizard/search-modal.js +11 -0
- package/dist/components/wizard/search-modal.js.map +1 -0
- package/dist/components/wizard/search-modal.test.js +218 -0
- package/dist/components/wizard/search-modal.test.js.map +1 -0
- package/dist/components/wizard/section-progress.js +10 -0
- package/dist/components/wizard/section-progress.js.map +1 -0
- package/dist/components/wizard/section-progress.test.js +192 -0
- package/dist/components/wizard/section-progress.test.js.map +1 -0
- package/dist/components/wizard/source-grid.js +14 -0
- package/dist/components/wizard/source-grid.js.map +1 -0
- package/dist/components/wizard/source-grid.test.js +504 -0
- package/dist/components/wizard/source-grid.test.js.map +1 -0
- package/dist/components/wizard/stack-selection.js +17 -0
- package/dist/components/wizard/stack-selection.js.map +1 -0
- package/dist/components/wizard/step-build.js +17 -0
- package/dist/components/wizard/step-build.js.map +1 -0
- package/dist/components/wizard/step-build.test.js +600 -0
- package/dist/components/wizard/step-build.test.js.map +1 -0
- package/dist/components/wizard/step-confirm.js +12 -0
- package/dist/components/wizard/step-confirm.js.map +1 -0
- package/dist/components/wizard/step-confirm.test.js +366 -0
- package/dist/components/wizard/step-confirm.test.js.map +1 -0
- package/dist/components/wizard/step-refine.js +10 -0
- package/dist/components/wizard/step-refine.js.map +1 -0
- package/dist/components/wizard/step-refine.test.js +237 -0
- package/dist/components/wizard/step-refine.test.js.map +1 -0
- package/dist/components/wizard/step-settings.js +17 -0
- package/dist/components/wizard/step-settings.js.map +1 -0
- package/dist/components/wizard/step-settings.test.js +243 -0
- package/dist/components/wizard/step-settings.test.js.map +1 -0
- package/dist/components/wizard/step-sources.js +20 -0
- package/dist/components/wizard/step-sources.js.map +1 -0
- package/dist/components/wizard/step-sources.test.js +294 -0
- package/dist/components/wizard/step-sources.test.js.map +1 -0
- package/dist/components/wizard/step-stack.js +19 -0
- package/dist/components/wizard/step-stack.js.map +1 -0
- package/dist/components/wizard/step-stack.test.js +357 -0
- package/dist/components/wizard/step-stack.test.js.map +1 -0
- package/dist/components/wizard/view-title.js +10 -0
- package/dist/components/wizard/view-title.js.map +1 -0
- package/dist/components/wizard/wizard-layout.js +16 -0
- package/dist/components/wizard/wizard-layout.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.js +14 -0
- package/dist/components/wizard/wizard-tabs.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.test.js +294 -0
- package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
- package/dist/components/wizard/wizard.js +35 -0
- package/dist/components/wizard/wizard.js.map +1 -0
- package/dist/config/skills-matrix.yaml +926 -0
- package/dist/config/stacks.yaml +2186 -0
- package/dist/hooks/init.js +40 -0
- package/dist/hooks/init.js.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/magic-string.es-RGXYGAW3.js +1316 -0
- package/dist/magic-string.es-RGXYGAW3.js.map +1 -0
- package/dist/source-manager-SBPPLOQQ.js +16 -0
- package/dist/source-manager-SBPPLOQQ.js.map +1 -0
- package/dist/src/agents/_templates/agent.liquid +140 -0
- package/dist/src/agents/developer/api-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/api-developer/critical-reminders.md +23 -0
- package/dist/src/agents/developer/api-developer/critical-requirements.md +11 -0
- package/dist/src/agents/developer/api-developer/examples.md +72 -0
- package/dist/src/agents/developer/api-developer/intro.md +22 -0
- package/dist/src/agents/developer/api-developer/output-format.md +359 -0
- package/dist/src/agents/developer/api-developer/workflow.md +471 -0
- package/dist/src/agents/developer/cli-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/cli-developer/critical-reminders.md +28 -0
- package/dist/src/agents/developer/cli-developer/critical-requirements.md +15 -0
- package/dist/src/agents/developer/cli-developer/examples.md +68 -0
- package/dist/src/agents/developer/cli-developer/intro.md +23 -0
- package/dist/src/agents/developer/cli-developer/output-format.md +216 -0
- package/dist/src/agents/developer/cli-developer/workflow.md +509 -0
- package/dist/src/agents/developer/web-architecture/agent.yaml +12 -0
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +27 -0
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +35 -0
- package/dist/src/agents/developer/web-architecture/examples.md +187 -0
- package/dist/src/agents/developer/web-architecture/intro.md +35 -0
- package/dist/src/agents/developer/web-architecture/output-format.md +261 -0
- package/dist/src/agents/developer/web-architecture/workflow.md +599 -0
- package/dist/src/agents/developer/web-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/web-developer/critical-reminders.md +17 -0
- package/dist/src/agents/developer/web-developer/critical-requirements.md +15 -0
- package/dist/src/agents/developer/web-developer/examples.md +109 -0
- package/dist/src/agents/developer/web-developer/intro.md +5 -0
- package/dist/src/agents/developer/web-developer/output-format.md +213 -0
- package/dist/src/agents/developer/web-developer/workflow.md +459 -0
- package/dist/src/agents/meta/agent-summoner/agent.yaml +12 -0
- package/dist/src/agents/meta/agent-summoner/critical-reminders.md +31 -0
- package/dist/src/agents/meta/agent-summoner/critical-requirements.md +27 -0
- package/dist/src/agents/meta/agent-summoner/examples.md +176 -0
- package/dist/src/agents/meta/agent-summoner/intro.md +9 -0
- package/dist/src/agents/meta/agent-summoner/output-format.md +115 -0
- package/dist/src/agents/meta/agent-summoner/workflow.md +1540 -0
- package/dist/src/agents/meta/documentor/agent.yaml +11 -0
- package/dist/src/agents/meta/documentor/critical-reminders.md +23 -0
- package/dist/src/agents/meta/documentor/critical-requirements.md +13 -0
- package/dist/src/agents/meta/documentor/examples.md +147 -0
- package/dist/src/agents/meta/documentor/intro.md +11 -0
- package/dist/src/agents/meta/documentor/output-format.md +237 -0
- package/dist/src/agents/meta/documentor/workflow.md +1271 -0
- package/dist/src/agents/meta/skill-summoner/agent.yaml +13 -0
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +73 -0
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/dist/src/agents/meta/skill-summoner/examples.md +116 -0
- package/dist/src/agents/meta/skill-summoner/intro.md +5 -0
- package/dist/src/agents/meta/skill-summoner/output-format.md +279 -0
- package/dist/src/agents/meta/skill-summoner/workflow.md +1485 -0
- package/dist/src/agents/migration/cli-migrator/agent.yaml +12 -0
- package/dist/src/agents/migration/cli-migrator/anti-patterns.md +158 -0
- package/dist/src/agents/migration/cli-migrator/conversion-mappings.md +63 -0
- package/dist/src/agents/migration/cli-migrator/critical-reminders.md +17 -0
- package/dist/src/agents/migration/cli-migrator/critical-requirements.md +13 -0
- package/dist/src/agents/migration/cli-migrator/intro.md +15 -0
- package/dist/src/agents/migration/cli-migrator/output-format.md +164 -0
- package/dist/src/agents/migration/cli-migrator/workflow.md +230 -0
- package/dist/src/agents/pattern/pattern-scout/agent.yaml +10 -0
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +58 -0
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +17 -0
- package/dist/src/agents/pattern/pattern-scout/examples.md +93 -0
- package/dist/src/agents/pattern/pattern-scout/intro.md +3 -0
- package/dist/src/agents/pattern/pattern-scout/output-format.md +196 -0
- package/dist/src/agents/pattern/pattern-scout/workflow.md +1901 -0
- package/dist/src/agents/pattern/web-pattern-critique/agent.yaml +12 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +13 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +11 -0
- package/dist/src/agents/pattern/web-pattern-critique/examples.md +56 -0
- package/dist/src/agents/pattern/web-pattern-critique/intro.md +5 -0
- package/dist/src/agents/pattern/web-pattern-critique/output-format.md +257 -0
- package/dist/src/agents/pattern/web-pattern-critique/workflow.md +674 -0
- package/dist/src/agents/planning/web-pm/agent.yaml +12 -0
- package/dist/src/agents/planning/web-pm/critical-reminders.md +21 -0
- package/dist/src/agents/planning/web-pm/critical-requirements.md +17 -0
- package/dist/src/agents/planning/web-pm/examples.md +85 -0
- package/dist/src/agents/planning/web-pm/intro.md +3 -0
- package/dist/src/agents/planning/web-pm/output-format.md +228 -0
- package/dist/src/agents/planning/web-pm/workflow.md +393 -0
- package/dist/src/agents/researcher/api-researcher/agent.yaml +10 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/dist/src/agents/researcher/api-researcher/critical-requirements.md +13 -0
- package/dist/src/agents/researcher/api-researcher/examples.md +116 -0
- package/dist/src/agents/researcher/api-researcher/intro.md +32 -0
- package/dist/src/agents/researcher/api-researcher/output-format.md +135 -0
- package/dist/src/agents/researcher/api-researcher/workflow.md +261 -0
- package/dist/src/agents/researcher/web-researcher/agent.yaml +10 -0
- package/dist/src/agents/researcher/web-researcher/critical-reminders.md +23 -0
- package/dist/src/agents/researcher/web-researcher/critical-requirements.md +11 -0
- package/dist/src/agents/researcher/web-researcher/examples.md +126 -0
- package/dist/src/agents/researcher/web-researcher/intro.md +31 -0
- package/dist/src/agents/researcher/web-researcher/output-format.md +112 -0
- package/dist/src/agents/researcher/web-researcher/workflow.md +322 -0
- package/dist/src/agents/reviewer/api-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +16 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +13 -0
- package/dist/src/agents/reviewer/api-reviewer/examples.md +54 -0
- package/dist/src/agents/reviewer/api-reviewer/intro.md +22 -0
- package/dist/src/agents/reviewer/api-reviewer/output-format.md +288 -0
- package/dist/src/agents/reviewer/api-reviewer/workflow.md +369 -0
- package/dist/src/agents/reviewer/cli-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +17 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +13 -0
- package/dist/src/agents/reviewer/cli-reviewer/examples.md +83 -0
- package/dist/src/agents/reviewer/cli-reviewer/intro.md +21 -0
- package/dist/src/agents/reviewer/cli-reviewer/output-format.md +330 -0
- package/dist/src/agents/reviewer/cli-reviewer/workflow.md +294 -0
- package/dist/src/agents/reviewer/web-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +17 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +11 -0
- package/dist/src/agents/reviewer/web-reviewer/examples.md +79 -0
- package/dist/src/agents/reviewer/web-reviewer/intro.md +20 -0
- package/dist/src/agents/reviewer/web-reviewer/output-format.md +253 -0
- package/dist/src/agents/reviewer/web-reviewer/workflow.md +228 -0
- package/dist/src/agents/tester/cli-tester/agent.yaml +12 -0
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +19 -0
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +17 -0
- package/dist/src/agents/tester/cli-tester/examples.md +80 -0
- package/dist/src/agents/tester/cli-tester/intro.md +19 -0
- package/dist/src/agents/tester/cli-tester/output-format.md +232 -0
- package/dist/src/agents/tester/cli-tester/workflow.md +304 -0
- package/dist/src/agents/tester/web-tester/agent.yaml +12 -0
- package/dist/src/agents/tester/web-tester/critical-reminders.md +15 -0
- package/dist/src/agents/tester/web-tester/critical-requirements.md +11 -0
- package/dist/src/agents/tester/web-tester/examples.md +68 -0
- package/dist/src/agents/tester/web-tester/intro.md +18 -0
- package/dist/src/agents/tester/web-tester/output-format.md +252 -0
- package/dist/src/agents/tester/web-tester/workflow.md +507 -0
- package/dist/stores/wizard-store.js +13 -0
- package/dist/stores/wizard-store.js.map +1 -0
- package/dist/stores/wizard-store.test.js +689 -0
- package/dist/stores/wizard-store.test.js.map +1 -0
- package/package.json +134 -0
- package/src/agents/_templates/agent.liquid +140 -0
- package/src/agents/developer/api-developer/agent.yaml +12 -0
- package/src/agents/developer/api-developer/critical-reminders.md +23 -0
- package/src/agents/developer/api-developer/critical-requirements.md +11 -0
- package/src/agents/developer/api-developer/examples.md +72 -0
- package/src/agents/developer/api-developer/intro.md +22 -0
- package/src/agents/developer/api-developer/output-format.md +359 -0
- package/src/agents/developer/api-developer/workflow.md +471 -0
- package/src/agents/developer/cli-developer/agent.yaml +12 -0
- package/src/agents/developer/cli-developer/critical-reminders.md +28 -0
- package/src/agents/developer/cli-developer/critical-requirements.md +15 -0
- package/src/agents/developer/cli-developer/examples.md +68 -0
- package/src/agents/developer/cli-developer/intro.md +23 -0
- package/src/agents/developer/cli-developer/output-format.md +216 -0
- package/src/agents/developer/cli-developer/workflow.md +509 -0
- package/src/agents/developer/web-architecture/agent.yaml +12 -0
- package/src/agents/developer/web-architecture/critical-reminders.md +27 -0
- package/src/agents/developer/web-architecture/critical-requirements.md +35 -0
- package/src/agents/developer/web-architecture/examples.md +187 -0
- package/src/agents/developer/web-architecture/intro.md +35 -0
- package/src/agents/developer/web-architecture/output-format.md +261 -0
- package/src/agents/developer/web-architecture/workflow.md +599 -0
- package/src/agents/developer/web-developer/agent.yaml +12 -0
- package/src/agents/developer/web-developer/critical-reminders.md +17 -0
- package/src/agents/developer/web-developer/critical-requirements.md +15 -0
- package/src/agents/developer/web-developer/examples.md +109 -0
- package/src/agents/developer/web-developer/intro.md +5 -0
- package/src/agents/developer/web-developer/output-format.md +213 -0
- package/src/agents/developer/web-developer/workflow.md +459 -0
- package/src/agents/meta/agent-summoner/agent.yaml +12 -0
- package/src/agents/meta/agent-summoner/critical-reminders.md +31 -0
- package/src/agents/meta/agent-summoner/critical-requirements.md +27 -0
- package/src/agents/meta/agent-summoner/examples.md +176 -0
- package/src/agents/meta/agent-summoner/intro.md +9 -0
- package/src/agents/meta/agent-summoner/output-format.md +115 -0
- package/src/agents/meta/agent-summoner/workflow.md +1540 -0
- package/src/agents/meta/documentor/agent.yaml +11 -0
- package/src/agents/meta/documentor/critical-reminders.md +23 -0
- package/src/agents/meta/documentor/critical-requirements.md +13 -0
- package/src/agents/meta/documentor/examples.md +147 -0
- package/src/agents/meta/documentor/intro.md +11 -0
- package/src/agents/meta/documentor/output-format.md +237 -0
- package/src/agents/meta/documentor/workflow.md +1271 -0
- package/src/agents/meta/skill-summoner/agent.yaml +13 -0
- package/src/agents/meta/skill-summoner/critical-reminders.md +73 -0
- package/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/src/agents/meta/skill-summoner/examples.md +116 -0
- package/src/agents/meta/skill-summoner/intro.md +5 -0
- package/src/agents/meta/skill-summoner/output-format.md +279 -0
- package/src/agents/meta/skill-summoner/workflow.md +1485 -0
- package/src/agents/migration/cli-migrator/agent.yaml +12 -0
- package/src/agents/migration/cli-migrator/anti-patterns.md +158 -0
- package/src/agents/migration/cli-migrator/conversion-mappings.md +63 -0
- package/src/agents/migration/cli-migrator/critical-reminders.md +17 -0
- package/src/agents/migration/cli-migrator/critical-requirements.md +13 -0
- package/src/agents/migration/cli-migrator/intro.md +15 -0
- package/src/agents/migration/cli-migrator/output-format.md +164 -0
- package/src/agents/migration/cli-migrator/workflow.md +230 -0
- package/src/agents/pattern/pattern-scout/agent.yaml +10 -0
- package/src/agents/pattern/pattern-scout/critical-reminders.md +58 -0
- package/src/agents/pattern/pattern-scout/critical-requirements.md +17 -0
- package/src/agents/pattern/pattern-scout/examples.md +93 -0
- package/src/agents/pattern/pattern-scout/intro.md +3 -0
- package/src/agents/pattern/pattern-scout/output-format.md +196 -0
- package/src/agents/pattern/pattern-scout/workflow.md +1901 -0
- package/src/agents/pattern/web-pattern-critique/agent.yaml +12 -0
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +13 -0
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +11 -0
- package/src/agents/pattern/web-pattern-critique/examples.md +56 -0
- package/src/agents/pattern/web-pattern-critique/intro.md +5 -0
- package/src/agents/pattern/web-pattern-critique/output-format.md +257 -0
- package/src/agents/pattern/web-pattern-critique/workflow.md +674 -0
- package/src/agents/planning/web-pm/agent.yaml +12 -0
- package/src/agents/planning/web-pm/critical-reminders.md +21 -0
- package/src/agents/planning/web-pm/critical-requirements.md +17 -0
- package/src/agents/planning/web-pm/examples.md +85 -0
- package/src/agents/planning/web-pm/intro.md +3 -0
- package/src/agents/planning/web-pm/output-format.md +228 -0
- package/src/agents/planning/web-pm/workflow.md +393 -0
- package/src/agents/researcher/api-researcher/agent.yaml +10 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/src/agents/researcher/api-researcher/critical-requirements.md +13 -0
- package/src/agents/researcher/api-researcher/examples.md +116 -0
- package/src/agents/researcher/api-researcher/intro.md +32 -0
- package/src/agents/researcher/api-researcher/output-format.md +135 -0
- package/src/agents/researcher/api-researcher/workflow.md +261 -0
- package/src/agents/researcher/web-researcher/agent.yaml +10 -0
- package/src/agents/researcher/web-researcher/critical-reminders.md +23 -0
- package/src/agents/researcher/web-researcher/critical-requirements.md +11 -0
- package/src/agents/researcher/web-researcher/examples.md +126 -0
- package/src/agents/researcher/web-researcher/intro.md +31 -0
- package/src/agents/researcher/web-researcher/output-format.md +112 -0
- package/src/agents/researcher/web-researcher/workflow.md +322 -0
- package/src/agents/reviewer/api-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +16 -0
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +13 -0
- package/src/agents/reviewer/api-reviewer/examples.md +54 -0
- package/src/agents/reviewer/api-reviewer/intro.md +22 -0
- package/src/agents/reviewer/api-reviewer/output-format.md +288 -0
- package/src/agents/reviewer/api-reviewer/workflow.md +369 -0
- package/src/agents/reviewer/cli-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +17 -0
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +13 -0
- package/src/agents/reviewer/cli-reviewer/examples.md +83 -0
- package/src/agents/reviewer/cli-reviewer/intro.md +21 -0
- package/src/agents/reviewer/cli-reviewer/output-format.md +330 -0
- package/src/agents/reviewer/cli-reviewer/workflow.md +294 -0
- package/src/agents/reviewer/web-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +17 -0
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +11 -0
- package/src/agents/reviewer/web-reviewer/examples.md +79 -0
- package/src/agents/reviewer/web-reviewer/intro.md +20 -0
- package/src/agents/reviewer/web-reviewer/output-format.md +253 -0
- package/src/agents/reviewer/web-reviewer/workflow.md +228 -0
- package/src/agents/tester/cli-tester/agent.yaml +12 -0
- package/src/agents/tester/cli-tester/critical-reminders.md +19 -0
- package/src/agents/tester/cli-tester/critical-requirements.md +17 -0
- package/src/agents/tester/cli-tester/examples.md +80 -0
- package/src/agents/tester/cli-tester/intro.md +19 -0
- package/src/agents/tester/cli-tester/output-format.md +232 -0
- package/src/agents/tester/cli-tester/workflow.md +304 -0
- package/src/agents/tester/web-tester/agent.yaml +12 -0
- package/src/agents/tester/web-tester/critical-reminders.md +15 -0
- package/src/agents/tester/web-tester/critical-requirements.md +11 -0
- package/src/agents/tester/web-tester/examples.md +68 -0
- package/src/agents/tester/web-tester/intro.md +18 -0
- package/src/agents/tester/web-tester/output-format.md +252 -0
- package/src/agents/tester/web-tester/workflow.md +507 -0
- package/src/schemas/agent-frontmatter.schema.json +84 -0
- package/src/schemas/agent.schema.json +93 -0
- package/src/schemas/hooks.schema.json +47 -0
- package/src/schemas/marketplace.schema.json +119 -0
- package/src/schemas/metadata.schema.json +113 -0
- package/src/schemas/plugin.schema.json +130 -0
- package/src/schemas/project-config.schema.json +125 -0
- package/src/schemas/project-source-config.schema.json +81 -0
- package/src/schemas/skill-frontmatter.schema.json +42 -0
- package/src/schemas/skills-matrix.schema.json +467 -0
- package/src/schemas/stack.schema.json +191 -0
- package/src/schemas/stacks.schema.json +111 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
CLI_COLORS,
|
|
4
|
+
DEFAULT_BRANDING,
|
|
5
|
+
UI_SYMBOLS
|
|
6
|
+
} from "./chunk-LAPCUV4D.js";
|
|
7
|
+
import {
|
|
8
|
+
init_esm_shims
|
|
9
|
+
} from "./chunk-DHET7RCE.js";
|
|
10
|
+
|
|
11
|
+
// src/cli/components/wizard/wizard-tabs.tsx
|
|
12
|
+
init_esm_shims();
|
|
13
|
+
import { Box, Text } from "ink";
|
|
14
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
+
var WIZARD_STEPS = [
|
|
16
|
+
{ id: "stack", label: "Stack", number: 1 },
|
|
17
|
+
{ id: "build", label: "Build", number: 2 },
|
|
18
|
+
{ id: "sources", label: "Sources", number: 3 },
|
|
19
|
+
{ id: "confirm", label: "Confirm", number: 4 }
|
|
20
|
+
];
|
|
21
|
+
function formatStepLabel(stepId) {
|
|
22
|
+
const step = WIZARD_STEPS.find((s) => s.id === stepId);
|
|
23
|
+
if (!step) return { prefix: "", label: stepId, full: stepId };
|
|
24
|
+
const prefix = `[${step.number}]`;
|
|
25
|
+
return { prefix, label: step.label, full: `${prefix} ${step.label}` };
|
|
26
|
+
}
|
|
27
|
+
var getStepState = (stepId, currentStep, completedSteps, skippedSteps) => {
|
|
28
|
+
if (completedSteps.includes(stepId)) return "completed";
|
|
29
|
+
if (stepId === currentStep) return "current";
|
|
30
|
+
if (skippedSteps.includes(stepId)) return "skipped";
|
|
31
|
+
return "pending";
|
|
32
|
+
};
|
|
33
|
+
var STEP_STATE_SYMBOLS = {
|
|
34
|
+
completed: UI_SYMBOLS.SELECTED,
|
|
35
|
+
current: UI_SYMBOLS.CURRENT,
|
|
36
|
+
pending: UI_SYMBOLS.UNSELECTED,
|
|
37
|
+
skipped: UI_SYMBOLS.SKIPPED
|
|
38
|
+
};
|
|
39
|
+
var Tab = ({ step, state }) => {
|
|
40
|
+
const symbol = STEP_STATE_SYMBOLS[state];
|
|
41
|
+
const label = `${symbol} [${step.number}] ${step.label}`;
|
|
42
|
+
switch (state) {
|
|
43
|
+
case "current":
|
|
44
|
+
return /* @__PURE__ */ jsx(Text, { color: CLI_COLORS.PRIMARY, children: label });
|
|
45
|
+
case "completed":
|
|
46
|
+
return /* @__PURE__ */ jsx(Text, { children: label });
|
|
47
|
+
case "skipped":
|
|
48
|
+
return /* @__PURE__ */ jsx(Text, { dimColor: true, children: label });
|
|
49
|
+
case "pending":
|
|
50
|
+
default:
|
|
51
|
+
return /* @__PURE__ */ jsx(Text, { color: CLI_COLORS.UNFOCUSED, children: label });
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
var WizardTabs = ({
|
|
55
|
+
steps,
|
|
56
|
+
currentStep,
|
|
57
|
+
completedSteps,
|
|
58
|
+
skippedSteps = [],
|
|
59
|
+
version,
|
|
60
|
+
brandingName
|
|
61
|
+
}) => {
|
|
62
|
+
const displayName = brandingName ?? DEFAULT_BRANDING.NAME;
|
|
63
|
+
return /* @__PURE__ */ jsxs(
|
|
64
|
+
Box,
|
|
65
|
+
{
|
|
66
|
+
flexDirection: "row",
|
|
67
|
+
columnGap: 2,
|
|
68
|
+
borderRight: false,
|
|
69
|
+
borderLeft: false,
|
|
70
|
+
borderColor: "blackBright",
|
|
71
|
+
borderStyle: "single",
|
|
72
|
+
paddingRight: 1,
|
|
73
|
+
children: [
|
|
74
|
+
/* @__PURE__ */ jsx(Text, { bold: true, color: CLI_COLORS.PRIMARY, children: displayName }),
|
|
75
|
+
steps.map((step) => {
|
|
76
|
+
const state = getStepState(step.id, currentStep, completedSteps, skippedSteps);
|
|
77
|
+
return /* @__PURE__ */ jsx(Tab, { step, state }, step.id);
|
|
78
|
+
}),
|
|
79
|
+
/* @__PURE__ */ jsx(Box, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ jsx(Text, { dimColor: true, children: `v${version}` }) })
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export {
|
|
86
|
+
WIZARD_STEPS,
|
|
87
|
+
formatStepLabel,
|
|
88
|
+
WizardTabs
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=chunk-IYG2LAIM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/wizard-tabs.tsx"],"sourcesContent":["import React from \"react\";\nimport { Box, Text } from \"ink\";\nimport { CLI_COLORS, DEFAULT_BRANDING, UI_SYMBOLS } from \"../../consts.js\";\nimport type { WizardStep } from \"../../stores/wizard-store.js\";\n\ntype WizardTabStep = {\n id: string;\n label: string;\n number: number;\n};\n\nexport type WizardTabsProps = {\n steps: WizardTabStep[];\n currentStep: string;\n completedSteps: string[];\n skippedSteps?: string[];\n version?: string;\n brandingName?: string;\n};\n\nexport const WIZARD_STEPS: WizardTabStep[] = [\n { id: \"stack\", label: \"Stack\", number: 1 },\n { id: \"build\", label: \"Build\", number: 2 },\n { id: \"sources\", label: \"Sources\", number: 3 },\n { id: \"confirm\", label: \"Confirm\", number: 4 },\n];\n\ntype FormattedStepLabel = {\n /** The step number indicator, e.g. \"[1]\" */\n prefix: string;\n /** The step label text, e.g. \"Stack\" */\n label: string;\n /** The complete formatted string, e.g. \"[1] Stack\" */\n full: string;\n};\n\n/** Format a wizard step as its tab label parts and full string, e.g. \"[1] Stack\" */\nexport function formatStepLabel(stepId: WizardStep): FormattedStepLabel {\n const step = WIZARD_STEPS.find((s) => s.id === stepId);\n if (!step) return { prefix: \"\", label: stepId, full: stepId };\n const prefix = `[${step.number}]`;\n return { prefix, label: step.label, full: `${prefix} ${step.label}` };\n}\n\ntype StepState = \"completed\" | \"current\" | \"pending\" | \"skipped\";\n\nconst getStepState = (\n stepId: string,\n currentStep: string,\n completedSteps: string[],\n skippedSteps: string[],\n): StepState => {\n if (completedSteps.includes(stepId)) return \"completed\";\n if (stepId === currentStep) return \"current\";\n if (skippedSteps.includes(stepId)) return \"skipped\";\n return \"pending\";\n};\n\ntype TabProps = {\n step: WizardTabStep;\n state: StepState;\n};\n\nconst STEP_STATE_SYMBOLS: Record<StepState, string> = {\n completed: UI_SYMBOLS.SELECTED,\n current: UI_SYMBOLS.CURRENT,\n pending: UI_SYMBOLS.UNSELECTED,\n skipped: UI_SYMBOLS.SKIPPED,\n};\n\nconst Tab: React.FC<TabProps> = ({ step, state }) => {\n const symbol = STEP_STATE_SYMBOLS[state];\n const label = `${symbol} [${step.number}] ${step.label}`;\n\n switch (state) {\n case \"current\":\n return <Text color={CLI_COLORS.PRIMARY}>{label}</Text>;\n case \"completed\":\n return <Text>{label}</Text>;\n case \"skipped\":\n return <Text dimColor>{label}</Text>;\n case \"pending\":\n default:\n return <Text color={CLI_COLORS.UNFOCUSED}>{label}</Text>;\n }\n};\n\nexport const WizardTabs: React.FC<WizardTabsProps> = ({\n steps,\n currentStep,\n completedSteps,\n skippedSteps = [],\n version,\n brandingName,\n}) => {\n const displayName = brandingName ?? DEFAULT_BRANDING.NAME;\n\n return (\n <Box\n flexDirection=\"row\"\n columnGap={2}\n borderRight={false}\n borderLeft={false}\n borderColor=\"blackBright\"\n borderStyle=\"single\"\n paddingRight={1}\n >\n <Text bold color={CLI_COLORS.PRIMARY}>\n {displayName}\n </Text>\n {steps.map((step) => {\n const state = getStepState(step.id, currentStep, completedSteps, skippedSteps);\n\n return <Tab key={step.id} step={step} state={state} />;\n })}\n <Box flexGrow={1} justifyContent=\"flex-end\">\n <Text dimColor>{`v${version}`}</Text>\n </Box>\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;;;AAAA;AACA,SAAS,KAAK,YAAY;AA2Eb,cAsBT,YAtBS;AAxDN,IAAM,eAAgC;AAAA,EAC3C,EAAE,IAAI,SAAS,OAAO,SAAS,QAAQ,EAAE;AAAA,EACzC,EAAE,IAAI,SAAS,OAAO,SAAS,QAAQ,EAAE;AAAA,EACzC,EAAE,IAAI,WAAW,OAAO,WAAW,QAAQ,EAAE;AAAA,EAC7C,EAAE,IAAI,WAAW,OAAO,WAAW,QAAQ,EAAE;AAC/C;AAYO,SAAS,gBAAgB,QAAwC;AACtE,QAAM,OAAO,aAAa,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM;AACrD,MAAI,CAAC,KAAM,QAAO,EAAE,QAAQ,IAAI,OAAO,QAAQ,MAAM,OAAO;AAC5D,QAAM,SAAS,IAAI,KAAK,MAAM;AAC9B,SAAO,EAAE,QAAQ,OAAO,KAAK,OAAO,MAAM,GAAG,MAAM,IAAI,KAAK,KAAK,GAAG;AACtE;AAIA,IAAM,eAAe,CACnB,QACA,aACA,gBACA,iBACc;AACd,MAAI,eAAe,SAAS,MAAM,EAAG,QAAO;AAC5C,MAAI,WAAW,YAAa,QAAO;AACnC,MAAI,aAAa,SAAS,MAAM,EAAG,QAAO;AAC1C,SAAO;AACT;AAOA,IAAM,qBAAgD;AAAA,EACpD,WAAW,WAAW;AAAA,EACtB,SAAS,WAAW;AAAA,EACpB,SAAS,WAAW;AAAA,EACpB,SAAS,WAAW;AACtB;AAEA,IAAM,MAA0B,CAAC,EAAE,MAAM,MAAM,MAAM;AACnD,QAAM,SAAS,mBAAmB,KAAK;AACvC,QAAM,QAAQ,GAAG,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK;AAEtD,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,oBAAC,QAAK,OAAO,WAAW,SAAU,iBAAM;AAAA,IACjD,KAAK;AACH,aAAO,oBAAC,QAAM,iBAAM;AAAA,IACtB,KAAK;AACH,aAAO,oBAAC,QAAK,UAAQ,MAAE,iBAAM;AAAA,IAC/B,KAAK;AAAA,IACL;AACE,aAAO,oBAAC,QAAK,OAAO,WAAW,WAAY,iBAAM;AAAA,EACrD;AACF;AAEO,IAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe,CAAC;AAAA,EAChB;AAAA,EACA;AACF,MAAM;AACJ,QAAM,cAAc,gBAAgB,iBAAiB;AAErD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,cAAc;AAAA,MAEd;AAAA,4BAAC,QAAK,MAAI,MAAC,OAAO,WAAW,SAC1B,uBACH;AAAA,QACC,MAAM,IAAI,CAAC,SAAS;AACnB,gBAAM,QAAQ,aAAa,KAAK,IAAI,aAAa,gBAAgB,YAAY;AAE7E,iBAAO,oBAAC,OAAkB,MAAY,SAArB,KAAK,EAA8B;AAAA,QACtD,CAAC;AAAA,QACD,oBAAC,OAAI,UAAU,GAAG,gBAAe,YAC/B,8BAAC,QAAK,UAAQ,MAAE,cAAI,OAAO,IAAG,GAChC;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
StackSelection
|
|
4
|
+
} from "./chunk-LGUI3PMO.js";
|
|
5
|
+
import {
|
|
6
|
+
DomainSelection
|
|
7
|
+
} from "./chunk-H566H3MQ.js";
|
|
8
|
+
import {
|
|
9
|
+
useWizardStore
|
|
10
|
+
} from "./chunk-3ZOIOVKT.js";
|
|
11
|
+
import {
|
|
12
|
+
init_esm_shims
|
|
13
|
+
} from "./chunk-DHET7RCE.js";
|
|
14
|
+
|
|
15
|
+
// src/cli/components/wizard/step-stack.tsx
|
|
16
|
+
init_esm_shims();
|
|
17
|
+
import { jsx } from "react/jsx-runtime";
|
|
18
|
+
var StepStack = ({ matrix, onCancel }) => {
|
|
19
|
+
const { approach } = useWizardStore();
|
|
20
|
+
if (approach !== null) {
|
|
21
|
+
return /* @__PURE__ */ jsx(DomainSelection, {});
|
|
22
|
+
}
|
|
23
|
+
return /* @__PURE__ */ jsx(StackSelection, { matrix, onCancel });
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export {
|
|
27
|
+
StepStack
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=chunk-IZZ4IIEG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/step-stack.tsx"],"sourcesContent":["import React from \"react\";\nimport { useWizardStore } from \"../../stores/wizard-store.js\";\nimport type { MergedSkillsMatrix } from \"../../types/index.js\";\nimport { StackSelection } from \"./stack-selection.js\";\nimport { DomainSelection } from \"./domain-selection.js\";\n\ntype StepStackProps = {\n matrix: MergedSkillsMatrix;\n onCancel?: () => void;\n};\n\n/**\n * Unified first step of the wizard.\n *\n * Sub-step 1 (approach is null): Shows stacks + \"Start from scratch\" in a single list.\n * Sub-step 2 (approach is set): Shows domain selection with pre-selected domains.\n *\n * After domain selection, proceeds to the \"build\" step.\n */\nexport const StepStack: React.FC<StepStackProps> = ({ matrix, onCancel }) => {\n const { approach } = useWizardStore();\n\n if (approach !== null) {\n return <DomainSelection />;\n }\n\n return <StackSelection matrix={matrix} onCancel={onCancel} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAuBW;AAJJ,IAAM,YAAsC,CAAC,EAAE,QAAQ,SAAS,MAAM;AAC3E,QAAM,EAAE,SAAS,IAAI,eAAe;AAEpC,MAAI,aAAa,MAAM;AACrB,WAAO,oBAAC,mBAAgB;AAAA,EAC1B;AAEA,SAAO,oBAAC,kBAAe,QAAgB,UAAoB;AAC7D;","names":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
init_esm_shims
|
|
4
|
+
} from "./chunk-DHET7RCE.js";
|
|
5
|
+
|
|
6
|
+
// src/cli/components/hooks/use-keyboard-navigation.ts
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
import { useState, useCallback, useRef, useEffect } from "react";
|
|
9
|
+
import { useInput } from "ink";
|
|
10
|
+
function useKeyboardNavigation(itemCount, handlers = {}, options = {}) {
|
|
11
|
+
const { onEnter, onEscape } = handlers;
|
|
12
|
+
const { wrap = true, vimKeys = true, active = true } = options;
|
|
13
|
+
const [focusedIndex, setFocusedIndex] = useState(0);
|
|
14
|
+
const focusedIndexRef = useRef(focusedIndex);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
focusedIndexRef.current = focusedIndex;
|
|
17
|
+
}, [focusedIndex]);
|
|
18
|
+
const moveUp = useCallback(() => {
|
|
19
|
+
setFocusedIndex((prev) => {
|
|
20
|
+
if (wrap) {
|
|
21
|
+
return (prev - 1 + itemCount) % itemCount;
|
|
22
|
+
}
|
|
23
|
+
return Math.max(0, prev - 1);
|
|
24
|
+
});
|
|
25
|
+
}, [itemCount, wrap]);
|
|
26
|
+
const moveDown = useCallback(() => {
|
|
27
|
+
setFocusedIndex((prev) => {
|
|
28
|
+
if (wrap) {
|
|
29
|
+
return (prev + 1) % itemCount;
|
|
30
|
+
}
|
|
31
|
+
return Math.min(itemCount - 1, prev + 1);
|
|
32
|
+
});
|
|
33
|
+
}, [itemCount, wrap]);
|
|
34
|
+
useInput(
|
|
35
|
+
useCallback(
|
|
36
|
+
(input, key) => {
|
|
37
|
+
if (!active) return;
|
|
38
|
+
if (key.escape) {
|
|
39
|
+
onEscape?.();
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (key.return) {
|
|
43
|
+
onEnter?.(focusedIndexRef.current);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (key.upArrow || vimKeys && input === "k") {
|
|
47
|
+
moveUp();
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (key.downArrow || vimKeys && input === "j") {
|
|
51
|
+
moveDown();
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
[active, onEnter, onEscape, vimKeys, moveUp, moveDown]
|
|
55
|
+
)
|
|
56
|
+
);
|
|
57
|
+
return { focusedIndex, setFocusedIndex };
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export {
|
|
61
|
+
useKeyboardNavigation
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=chunk-JMVWYAHT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/hooks/use-keyboard-navigation.ts"],"sourcesContent":["import type { Dispatch, SetStateAction } from \"react\";\nimport { useState, useCallback, useRef, useEffect } from \"react\";\nimport { useInput } from \"ink\";\n\ntype KeyboardNavigationHandlers = {\n onEnter?: (focusedIndex: number) => void;\n onEscape?: () => void;\n};\n\ntype KeyboardNavigationOptions = {\n wrap?: boolean;\n vimKeys?: boolean;\n active?: boolean;\n};\n\nexport function useKeyboardNavigation(\n itemCount: number,\n handlers: KeyboardNavigationHandlers = {},\n options: KeyboardNavigationOptions = {},\n): {\n focusedIndex: number;\n setFocusedIndex: Dispatch<SetStateAction<number>>;\n} {\n const { onEnter, onEscape } = handlers;\n const { wrap = true, vimKeys = true, active = true } = options;\n\n const [focusedIndex, setFocusedIndex] = useState(0);\n const focusedIndexRef = useRef(focusedIndex);\n\n useEffect(() => {\n focusedIndexRef.current = focusedIndex;\n }, [focusedIndex]);\n\n const moveUp = useCallback(() => {\n setFocusedIndex((prev) => {\n if (wrap) {\n return (prev - 1 + itemCount) % itemCount;\n }\n return Math.max(0, prev - 1);\n });\n }, [itemCount, wrap]);\n\n const moveDown = useCallback(() => {\n setFocusedIndex((prev) => {\n if (wrap) {\n return (prev + 1) % itemCount;\n }\n return Math.min(itemCount - 1, prev + 1);\n });\n }, [itemCount, wrap]);\n\n useInput(\n useCallback(\n (\n input: string,\n key: { upArrow: boolean; downArrow: boolean; return: boolean; escape: boolean },\n ) => {\n if (!active) return;\n\n if (key.escape) {\n onEscape?.();\n return;\n }\n\n if (key.return) {\n onEnter?.(focusedIndexRef.current);\n return;\n }\n\n if (key.upArrow || (vimKeys && input === \"k\")) {\n moveUp();\n return;\n }\n\n if (key.downArrow || (vimKeys && input === \"j\")) {\n moveDown();\n }\n },\n [active, onEnter, onEscape, vimKeys, moveUp, moveDown],\n ),\n );\n\n return { focusedIndex, setFocusedIndex };\n}\n"],"mappings":";;;;;;AAAA;AACA,SAAS,UAAU,aAAa,QAAQ,iBAAiB;AACzD,SAAS,gBAAgB;AAalB,SAAS,sBACd,WACA,WAAuC,CAAC,GACxC,UAAqC,CAAC,GAItC;AACA,QAAM,EAAE,SAAS,SAAS,IAAI;AAC9B,QAAM,EAAE,OAAO,MAAM,UAAU,MAAM,SAAS,KAAK,IAAI;AAEvD,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,CAAC;AAClD,QAAM,kBAAkB,OAAO,YAAY;AAE3C,YAAU,MAAM;AACd,oBAAgB,UAAU;AAAA,EAC5B,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,SAAS,YAAY,MAAM;AAC/B,oBAAgB,CAAC,SAAS;AACxB,UAAI,MAAM;AACR,gBAAQ,OAAO,IAAI,aAAa;AAAA,MAClC;AACA,aAAO,KAAK,IAAI,GAAG,OAAO,CAAC;AAAA,IAC7B,CAAC;AAAA,EACH,GAAG,CAAC,WAAW,IAAI,CAAC;AAEpB,QAAM,WAAW,YAAY,MAAM;AACjC,oBAAgB,CAAC,SAAS;AACxB,UAAI,MAAM;AACR,gBAAQ,OAAO,KAAK;AAAA,MACtB;AACA,aAAO,KAAK,IAAI,YAAY,GAAG,OAAO,CAAC;AAAA,IACzC,CAAC;AAAA,EACH,GAAG,CAAC,WAAW,IAAI,CAAC;AAEpB;AAAA,IACE;AAAA,MACE,CACE,OACA,QACG;AACH,YAAI,CAAC,OAAQ;AAEb,YAAI,IAAI,QAAQ;AACd,qBAAW;AACX;AAAA,QACF;AAEA,YAAI,IAAI,QAAQ;AACd,oBAAU,gBAAgB,OAAO;AACjC;AAAA,QACF;AAEA,YAAI,IAAI,WAAY,WAAW,UAAU,KAAM;AAC7C,iBAAO;AACP;AAAA,QACF;AAEA,YAAI,IAAI,aAAc,WAAW,UAAU,KAAM;AAC/C,mBAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,CAAC,QAAQ,SAAS,UAAU,SAAS,QAAQ,QAAQ;AAAA,IACvD;AAAA,EACF;AAEA,SAAO,EAAE,cAAc,gBAAgB;AACzC;","names":[]}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
init_esm_shims
|
|
4
|
+
} from "./chunk-DHET7RCE.js";
|
|
5
|
+
|
|
6
|
+
// src/cli/consts.ts
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
import path from "path";
|
|
9
|
+
import os from "os";
|
|
10
|
+
import { fileURLToPath } from "url";
|
|
11
|
+
var __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
var __dirname = path.dirname(__filename);
|
|
13
|
+
var isInDist = __dirname.includes("/dist");
|
|
14
|
+
var CLI_ROOT = isInDist ? path.resolve(__dirname, "..") : path.resolve(__dirname, "../..");
|
|
15
|
+
var PROJECT_ROOT = CLI_ROOT;
|
|
16
|
+
var CLAUDE_DIR = ".claude";
|
|
17
|
+
var CLAUDE_SRC_DIR = ".claude-src";
|
|
18
|
+
var PLUGINS_SUBDIR = "plugins";
|
|
19
|
+
var PLUGIN_MANIFEST_DIR = ".claude-plugin";
|
|
20
|
+
var PLUGIN_MANIFEST_FILE = "plugin.json";
|
|
21
|
+
var DEFAULT_PLUGIN_NAME = "agents-inc";
|
|
22
|
+
var CACHE_DIR = path.join(os.homedir(), ".cache", DEFAULT_PLUGIN_NAME);
|
|
23
|
+
var SKILLS_MATRIX_PATH = "config/skills-matrix.yaml";
|
|
24
|
+
var STACKS_FILE_PATH = "config/stacks.yaml";
|
|
25
|
+
var SKILLS_DIR_PATH = "src/skills";
|
|
26
|
+
var LOCAL_SKILLS_PATH = ".claude/skills";
|
|
27
|
+
var ARCHIVED_SKILLS_DIR_NAME = "_archived";
|
|
28
|
+
var DIRS = {
|
|
29
|
+
agents: "src/agents",
|
|
30
|
+
skills: "src/skills",
|
|
31
|
+
stacks: "src/stacks",
|
|
32
|
+
templates: "src/agents/_templates",
|
|
33
|
+
commands: "src/commands"
|
|
34
|
+
};
|
|
35
|
+
var STANDARD_FILES = {
|
|
36
|
+
SKILL_MD: "SKILL.md",
|
|
37
|
+
METADATA_YAML: "metadata.yaml",
|
|
38
|
+
METADATA_JSON: "metadata.json",
|
|
39
|
+
CONFIG_YAML: "config.yaml",
|
|
40
|
+
SKILLS_MATRIX_YAML: "skills-matrix.yaml",
|
|
41
|
+
AGENT_YAML: "agent.yaml",
|
|
42
|
+
PLUGIN_JSON: "plugin.json",
|
|
43
|
+
CLAUDE_MD: "CLAUDE.md",
|
|
44
|
+
REFERENCE_MD: "reference.md",
|
|
45
|
+
INTRO_MD: "intro.md",
|
|
46
|
+
WORKFLOW_MD: "workflow.md",
|
|
47
|
+
EXAMPLES_MD: "examples.md",
|
|
48
|
+
OUTPUT_FORMAT_MD: "output-format.md",
|
|
49
|
+
CRITICAL_REQUIREMENTS_MD: "critical-requirements.md",
|
|
50
|
+
CRITICAL_REMINDERS_MD: "critical-reminders.md"
|
|
51
|
+
};
|
|
52
|
+
var STANDARD_DIRS = {
|
|
53
|
+
EXAMPLES: "examples",
|
|
54
|
+
SCRIPTS: "scripts",
|
|
55
|
+
SKILLS: "skills"
|
|
56
|
+
};
|
|
57
|
+
var DEFAULT_VERSION = "1.0.0";
|
|
58
|
+
var DEFAULT_DISPLAY_VERSION = "0.0.0";
|
|
59
|
+
var SCHEMA_PKG_PREFIX = "https://raw.githubusercontent.com/claude-collective/cli/main/src/schemas";
|
|
60
|
+
var SCHEMA_PATHS = {
|
|
61
|
+
agent: `${SCHEMA_PKG_PREFIX}/agent.schema.json`,
|
|
62
|
+
metadata: `${SCHEMA_PKG_PREFIX}/metadata.schema.json`,
|
|
63
|
+
marketplace: `${SCHEMA_PKG_PREFIX}/marketplace.schema.json`,
|
|
64
|
+
projectConfig: `${SCHEMA_PKG_PREFIX}/project-config.schema.json`,
|
|
65
|
+
projectSourceConfig: `${SCHEMA_PKG_PREFIX}/project-source-config.schema.json`,
|
|
66
|
+
skillsMatrix: `${SCHEMA_PKG_PREFIX}/skills-matrix.schema.json`,
|
|
67
|
+
stacks: `${SCHEMA_PKG_PREFIX}/stacks.schema.json`
|
|
68
|
+
};
|
|
69
|
+
function yamlSchemaComment(schemaPath) {
|
|
70
|
+
return `# yaml-language-server: $schema=${schemaPath}`;
|
|
71
|
+
}
|
|
72
|
+
var YAML_FORMATTING = {
|
|
73
|
+
INDENT: 2,
|
|
74
|
+
LINE_WIDTH: 120,
|
|
75
|
+
/** lineWidth: 0 disables wrapping — used for metadata files */
|
|
76
|
+
LINE_WIDTH_NONE: 0
|
|
77
|
+
};
|
|
78
|
+
var UI_SYMBOLS = {
|
|
79
|
+
CHECKBOX_CHECKED: "[x]",
|
|
80
|
+
CHECKBOX_UNCHECKED: "[ ]",
|
|
81
|
+
CHEVRON: "\u276F",
|
|
82
|
+
CHEVRON_SPACER: " ",
|
|
83
|
+
SELECTED: "\u2713",
|
|
84
|
+
UNSELECTED: "\u25CB",
|
|
85
|
+
CURRENT: "\u25CF",
|
|
86
|
+
SKIPPED: "\u2013",
|
|
87
|
+
DISCOURAGED: "!",
|
|
88
|
+
DISABLED: "\u2013",
|
|
89
|
+
SCROLL_UP: "\u25B2",
|
|
90
|
+
SCROLL_DOWN: "\u25BC"
|
|
91
|
+
};
|
|
92
|
+
var UI_LAYOUT = {
|
|
93
|
+
MAX_VISIBLE_RESULTS: 10,
|
|
94
|
+
DESCRIPTION_WIDTH: 30,
|
|
95
|
+
COPIED_MESSAGE_TIMEOUT_MS: 2e3,
|
|
96
|
+
FALLBACK_MESSAGE_TIMEOUT_MS: 3e3
|
|
97
|
+
};
|
|
98
|
+
var GITHUB_SOURCE = {
|
|
99
|
+
HTTPS_PREFIX: "https://github.com/",
|
|
100
|
+
GITHUB_PREFIX: "github:",
|
|
101
|
+
GH_PREFIX: "gh:"
|
|
102
|
+
};
|
|
103
|
+
var DEFAULT_SKILLS_SUBDIR = "skills";
|
|
104
|
+
var HASH_PREFIX_LENGTH = 7;
|
|
105
|
+
var CACHE_HASH_LENGTH = 16;
|
|
106
|
+
var CACHE_READABLE_PREFIX_LENGTH = 32;
|
|
107
|
+
var ONE_MB = 1024 * 1024;
|
|
108
|
+
var MAX_MARKETPLACE_FILE_SIZE = 10 * ONE_MB;
|
|
109
|
+
var MAX_PLUGIN_FILE_SIZE = ONE_MB;
|
|
110
|
+
var MAX_CONFIG_FILE_SIZE = ONE_MB;
|
|
111
|
+
var MAX_JSON_NESTING_DEPTH = 10;
|
|
112
|
+
var MAX_MARKETPLACE_PLUGINS = 1e4;
|
|
113
|
+
var SCROLL_VIEWPORT = {
|
|
114
|
+
/** Height of the "N more above" scroll indicator */
|
|
115
|
+
SCROLL_INDICATOR_HEIGHT: 1,
|
|
116
|
+
/** Estimated lines per category name row (including top margin) */
|
|
117
|
+
CATEGORY_NAME_LINES: 2,
|
|
118
|
+
/** Estimated average width of a single skill tag in characters (borders + padding + label) */
|
|
119
|
+
AVG_TAG_WIDTH: 22,
|
|
120
|
+
/** Margin between category sections (marginTop on CategorySection) */
|
|
121
|
+
CATEGORY_MARGIN_LINES: 1,
|
|
122
|
+
/** Minimum rows to show at least 1 category before enabling scroll */
|
|
123
|
+
MIN_VIEWPORT_ROWS: 5,
|
|
124
|
+
/** Minimum terminal height to show the wizard at all */
|
|
125
|
+
MIN_TERMINAL_HEIGHT: 15
|
|
126
|
+
};
|
|
127
|
+
var DEFAULT_BRANDING = {
|
|
128
|
+
NAME: "Agents Inc.",
|
|
129
|
+
TAGLINE: "AI-powered development tools"
|
|
130
|
+
};
|
|
131
|
+
var CLI_COLORS = {
|
|
132
|
+
PRIMARY: "cyan",
|
|
133
|
+
SUCCESS: "green",
|
|
134
|
+
ERROR: "red",
|
|
135
|
+
WARNING: "yellow",
|
|
136
|
+
INFO: "blue",
|
|
137
|
+
NEUTRAL: "gray",
|
|
138
|
+
FOCUS: "cyan",
|
|
139
|
+
UNFOCUSED: "white"
|
|
140
|
+
};
|
|
141
|
+
var DEFAULT_SCRATCH_DOMAINS = ["web", "web-extras", "api", "mobile"];
|
|
142
|
+
var DEFAULT_PRESELECTED_SKILLS = [
|
|
143
|
+
"meta-methodology-anti-over-engineering",
|
|
144
|
+
"meta-methodology-context-management",
|
|
145
|
+
"meta-methodology-improvement-protocol",
|
|
146
|
+
"meta-methodology-investigation-requirements",
|
|
147
|
+
"meta-methodology-success-criteria",
|
|
148
|
+
"meta-methodology-write-verification"
|
|
149
|
+
];
|
|
150
|
+
|
|
151
|
+
export {
|
|
152
|
+
PROJECT_ROOT,
|
|
153
|
+
CLAUDE_DIR,
|
|
154
|
+
CLAUDE_SRC_DIR,
|
|
155
|
+
PLUGINS_SUBDIR,
|
|
156
|
+
PLUGIN_MANIFEST_DIR,
|
|
157
|
+
PLUGIN_MANIFEST_FILE,
|
|
158
|
+
DEFAULT_PLUGIN_NAME,
|
|
159
|
+
CACHE_DIR,
|
|
160
|
+
SKILLS_MATRIX_PATH,
|
|
161
|
+
STACKS_FILE_PATH,
|
|
162
|
+
SKILLS_DIR_PATH,
|
|
163
|
+
LOCAL_SKILLS_PATH,
|
|
164
|
+
ARCHIVED_SKILLS_DIR_NAME,
|
|
165
|
+
DIRS,
|
|
166
|
+
STANDARD_FILES,
|
|
167
|
+
STANDARD_DIRS,
|
|
168
|
+
DEFAULT_VERSION,
|
|
169
|
+
DEFAULT_DISPLAY_VERSION,
|
|
170
|
+
SCHEMA_PATHS,
|
|
171
|
+
yamlSchemaComment,
|
|
172
|
+
YAML_FORMATTING,
|
|
173
|
+
UI_SYMBOLS,
|
|
174
|
+
UI_LAYOUT,
|
|
175
|
+
GITHUB_SOURCE,
|
|
176
|
+
DEFAULT_SKILLS_SUBDIR,
|
|
177
|
+
HASH_PREFIX_LENGTH,
|
|
178
|
+
CACHE_HASH_LENGTH,
|
|
179
|
+
CACHE_READABLE_PREFIX_LENGTH,
|
|
180
|
+
MAX_MARKETPLACE_FILE_SIZE,
|
|
181
|
+
MAX_PLUGIN_FILE_SIZE,
|
|
182
|
+
MAX_CONFIG_FILE_SIZE,
|
|
183
|
+
MAX_JSON_NESTING_DEPTH,
|
|
184
|
+
MAX_MARKETPLACE_PLUGINS,
|
|
185
|
+
SCROLL_VIEWPORT,
|
|
186
|
+
DEFAULT_BRANDING,
|
|
187
|
+
CLI_COLORS,
|
|
188
|
+
DEFAULT_SCRATCH_DOMAINS,
|
|
189
|
+
DEFAULT_PRESELECTED_SKILLS
|
|
190
|
+
};
|
|
191
|
+
//# sourceMappingURL=chunk-LAPCUV4D.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/consts.ts"],"sourcesContent":["import path from \"path\";\nimport os from \"os\";\nimport { fileURLToPath } from \"url\";\nimport type { Domain, SkillId } from \"./types/index.js\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// After tsup build, dist/ is flat, so we go up one level from dist/ to get CLI root\n// In development (src/cli/consts.ts), we go up two levels\nconst isInDist = __dirname.includes(\"/dist\");\nconst CLI_ROOT = isInDist ? path.resolve(__dirname, \"..\") : path.resolve(__dirname, \"../..\");\nexport const PROJECT_ROOT = CLI_ROOT;\n\nexport const CLAUDE_DIR = \".claude\";\nexport const CLAUDE_SRC_DIR = \".claude-src\";\nexport const PLUGINS_SUBDIR = \"plugins\";\nexport const PLUGIN_MANIFEST_DIR = \".claude-plugin\";\nexport const PLUGIN_MANIFEST_FILE = \"plugin.json\";\nexport const DEFAULT_PLUGIN_NAME = \"agents-inc\";\n\nexport const CACHE_DIR = path.join(os.homedir(), \".cache\", DEFAULT_PLUGIN_NAME);\n\nexport const SKILLS_MATRIX_PATH = \"config/skills-matrix.yaml\";\nexport const STACKS_FILE_PATH = \"config/stacks.yaml\";\nexport const SKILLS_DIR_PATH = \"src/skills\";\nexport const LOCAL_SKILLS_PATH = \".claude/skills\";\nexport const ARCHIVED_SKILLS_DIR_NAME = \"_archived\";\n\nexport const DIRS = {\n agents: \"src/agents\",\n skills: \"src/skills\",\n stacks: \"src/stacks\",\n templates: \"src/agents/_templates\",\n commands: \"src/commands\",\n} as const;\n\nexport const STANDARD_FILES = {\n SKILL_MD: \"SKILL.md\",\n METADATA_YAML: \"metadata.yaml\",\n METADATA_JSON: \"metadata.json\",\n CONFIG_YAML: \"config.yaml\",\n SKILLS_MATRIX_YAML: \"skills-matrix.yaml\",\n AGENT_YAML: \"agent.yaml\",\n PLUGIN_JSON: \"plugin.json\",\n CLAUDE_MD: \"CLAUDE.md\",\n REFERENCE_MD: \"reference.md\",\n INTRO_MD: \"intro.md\",\n WORKFLOW_MD: \"workflow.md\",\n EXAMPLES_MD: \"examples.md\",\n OUTPUT_FORMAT_MD: \"output-format.md\",\n CRITICAL_REQUIREMENTS_MD: \"critical-requirements.md\",\n CRITICAL_REMINDERS_MD: \"critical-reminders.md\",\n} as const;\n\nexport const STANDARD_DIRS = {\n EXAMPLES: \"examples\",\n SCRIPTS: \"scripts\",\n SKILLS: \"skills\",\n} as const;\n\nexport const DEFAULT_VERSION = \"1.0.0\";\n\n// \"0.0.0\" indicates no version was explicitly set\nexport const DEFAULT_DISPLAY_VERSION = \"0.0.0\";\n\n// JSON Schema URLs for yaml-language-server $schema comments.\n// Uses raw.githubusercontent.com so schemas resolve without requiring the CLI as a dependency.\nconst SCHEMA_PKG_PREFIX =\n \"https://raw.githubusercontent.com/claude-collective/cli/main/src/schemas\";\n\nexport const SCHEMA_PATHS = {\n agent: `${SCHEMA_PKG_PREFIX}/agent.schema.json`,\n metadata: `${SCHEMA_PKG_PREFIX}/metadata.schema.json`,\n marketplace: `${SCHEMA_PKG_PREFIX}/marketplace.schema.json`,\n projectConfig: `${SCHEMA_PKG_PREFIX}/project-config.schema.json`,\n projectSourceConfig: `${SCHEMA_PKG_PREFIX}/project-source-config.schema.json`,\n skillsMatrix: `${SCHEMA_PKG_PREFIX}/skills-matrix.schema.json`,\n stacks: `${SCHEMA_PKG_PREFIX}/stacks.schema.json`,\n} as const;\n\n/** Generates a yaml-language-server schema comment for the top of YAML files. */\nexport function yamlSchemaComment(schemaPath: string): string {\n return `# yaml-language-server: $schema=${schemaPath}`;\n}\n\nexport const YAML_FORMATTING = {\n INDENT: 2,\n LINE_WIDTH: 120,\n /** lineWidth: 0 disables wrapping — used for metadata files */\n LINE_WIDTH_NONE: 0,\n} as const;\n\nexport const UI_SYMBOLS = {\n CHECKBOX_CHECKED: \"[x]\",\n CHECKBOX_UNCHECKED: \"[ ]\",\n CHEVRON: \"\\u276F\",\n CHEVRON_SPACER: \" \",\n SELECTED: \"\\u2713\",\n UNSELECTED: \"\\u25CB\",\n CURRENT: \"\\u25CF\",\n SKIPPED: \"\\u2013\",\n DISCOURAGED: \"!\",\n DISABLED: \"\\u2013\",\n SCROLL_UP: \"\\u25B2\",\n SCROLL_DOWN: \"\\u25BC\",\n} as const;\n\nexport const UI_LAYOUT = {\n MAX_VISIBLE_RESULTS: 10,\n DESCRIPTION_WIDTH: 30,\n COPIED_MESSAGE_TIMEOUT_MS: 2000,\n FALLBACK_MESSAGE_TIMEOUT_MS: 3000,\n} as const;\n\nexport const GITHUB_SOURCE = {\n HTTPS_PREFIX: \"https://github.com/\",\n GITHUB_PREFIX: \"github:\",\n GH_PREFIX: \"gh:\",\n} as const;\n\nexport const DEFAULT_SKILLS_SUBDIR = \"skills\";\n\nexport const HASH_PREFIX_LENGTH = 7;\n\n/** Hex chars from SHA-256 hash used in cache directory names (64 bits of collision resistance) */\nexport const CACHE_HASH_LENGTH = 16;\n\n/** Max chars of human-readable prefix in cache directory names (for debugging) */\nexport const CACHE_READABLE_PREFIX_LENGTH = 32;\n\n// File size limits for parsing boundaries (DoS prevention)\nconst ONE_MB = 1024 * 1024;\nexport const MAX_MARKETPLACE_FILE_SIZE = 10 * ONE_MB;\nexport const MAX_PLUGIN_FILE_SIZE = ONE_MB;\nexport const MAX_CONFIG_FILE_SIZE = ONE_MB;\n\nexport const MAX_JSON_NESTING_DEPTH = 10;\nexport const MAX_MARKETPLACE_PLUGINS = 10_000;\n\nexport const SCROLL_VIEWPORT = {\n /** Height of the \"N more above\" scroll indicator */\n SCROLL_INDICATOR_HEIGHT: 1,\n /** Estimated lines per category name row (including top margin) */\n CATEGORY_NAME_LINES: 2,\n /** Estimated average width of a single skill tag in characters (borders + padding + label) */\n AVG_TAG_WIDTH: 22,\n /** Margin between category sections (marginTop on CategorySection) */\n CATEGORY_MARGIN_LINES: 1,\n /** Minimum rows to show at least 1 category before enabling scroll */\n MIN_VIEWPORT_ROWS: 5,\n /** Minimum terminal height to show the wizard at all */\n MIN_TERMINAL_HEIGHT: 15,\n} as const;\n\nexport const DEFAULT_BRANDING = {\n NAME: \"Agents Inc.\",\n TAGLINE: \"AI-powered development tools\",\n} as const;\n\nexport const CLI_COLORS = {\n PRIMARY: \"cyan\",\n SUCCESS: \"green\",\n ERROR: \"red\",\n WARNING: \"yellow\",\n INFO: \"blue\",\n NEUTRAL: \"gray\",\n FOCUS: \"cyan\",\n UNFOCUSED: \"white\",\n} as const;\n\n/** Default domains pre-selected when \"Start from scratch\" is chosen (all except CLI) */\nexport const DEFAULT_SCRATCH_DOMAINS: readonly Domain[] = [\"web\", \"web-extras\", \"api\", \"mobile\"];\n\nexport const DEFAULT_PRESELECTED_SKILLS: readonly SkillId[] = [\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-context-management\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n];\n"],"mappings":";;;;;;AAAA;AAAA,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,SAAS,qBAAqB;AAG9B,IAAM,aAAa,cAAc,YAAY,GAAG;AAChD,IAAM,YAAY,KAAK,QAAQ,UAAU;AAIzC,IAAM,WAAW,UAAU,SAAS,OAAO;AAC3C,IAAM,WAAW,WAAW,KAAK,QAAQ,WAAW,IAAI,IAAI,KAAK,QAAQ,WAAW,OAAO;AACpF,IAAM,eAAe;AAErB,IAAM,aAAa;AACnB,IAAM,iBAAiB;AACvB,IAAM,iBAAiB;AACvB,IAAM,sBAAsB;AAC5B,IAAM,uBAAuB;AAC7B,IAAM,sBAAsB;AAE5B,IAAM,YAAY,KAAK,KAAK,GAAG,QAAQ,GAAG,UAAU,mBAAmB;AAEvE,IAAM,qBAAqB;AAC3B,IAAM,mBAAmB;AACzB,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAC1B,IAAM,2BAA2B;AAEjC,IAAM,OAAO;AAAA,EAClB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU;AACZ;AAEO,IAAM,iBAAiB;AAAA,EAC5B,UAAU;AAAA,EACV,eAAe;AAAA,EACf,eAAe;AAAA,EACf,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,cAAc;AAAA,EACd,UAAU;AAAA,EACV,aAAa;AAAA,EACb,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,0BAA0B;AAAA,EAC1B,uBAAuB;AACzB;AAEO,IAAM,gBAAgB;AAAA,EAC3B,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AACV;AAEO,IAAM,kBAAkB;AAGxB,IAAM,0BAA0B;AAIvC,IAAM,oBACJ;AAEK,IAAM,eAAe;AAAA,EAC1B,OAAO,GAAG,iBAAiB;AAAA,EAC3B,UAAU,GAAG,iBAAiB;AAAA,EAC9B,aAAa,GAAG,iBAAiB;AAAA,EACjC,eAAe,GAAG,iBAAiB;AAAA,EACnC,qBAAqB,GAAG,iBAAiB;AAAA,EACzC,cAAc,GAAG,iBAAiB;AAAA,EAClC,QAAQ,GAAG,iBAAiB;AAC9B;AAGO,SAAS,kBAAkB,YAA4B;AAC5D,SAAO,mCAAmC,UAAU;AACtD;AAEO,IAAM,kBAAkB;AAAA,EAC7B,QAAQ;AAAA,EACR,YAAY;AAAA;AAAA,EAEZ,iBAAiB;AACnB;AAEO,IAAM,aAAa;AAAA,EACxB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,aAAa;AAAA,EACb,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AACf;AAEO,IAAM,YAAY;AAAA,EACvB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,2BAA2B;AAAA,EAC3B,6BAA6B;AAC/B;AAEO,IAAM,gBAAgB;AAAA,EAC3B,cAAc;AAAA,EACd,eAAe;AAAA,EACf,WAAW;AACb;AAEO,IAAM,wBAAwB;AAE9B,IAAM,qBAAqB;AAG3B,IAAM,oBAAoB;AAG1B,IAAM,+BAA+B;AAG5C,IAAM,SAAS,OAAO;AACf,IAAM,4BAA4B,KAAK;AACvC,IAAM,uBAAuB;AAC7B,IAAM,uBAAuB;AAE7B,IAAM,yBAAyB;AAC/B,IAAM,0BAA0B;AAEhC,IAAM,kBAAkB;AAAA;AAAA,EAE7B,yBAAyB;AAAA;AAAA,EAEzB,qBAAqB;AAAA;AAAA,EAErB,eAAe;AAAA;AAAA,EAEf,uBAAuB;AAAA;AAAA,EAEvB,mBAAmB;AAAA;AAAA,EAEnB,qBAAqB;AACvB;AAEO,IAAM,mBAAmB;AAAA,EAC9B,MAAM;AAAA,EACN,SAAS;AACX;AAEO,IAAM,aAAa;AAAA,EACxB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AACb;AAGO,IAAM,0BAA6C,CAAC,OAAO,cAAc,OAAO,QAAQ;AAExF,IAAM,6BAAiD;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
ViewTitle
|
|
4
|
+
} from "./chunk-O4D67NN7.js";
|
|
5
|
+
import {
|
|
6
|
+
getDomainsFromStack
|
|
7
|
+
} from "./chunk-SO22IQPY.js";
|
|
8
|
+
import {
|
|
9
|
+
MenuItem
|
|
10
|
+
} from "./chunk-QPTOIZAT.js";
|
|
11
|
+
import {
|
|
12
|
+
useWizardStore
|
|
13
|
+
} from "./chunk-3ZOIOVKT.js";
|
|
14
|
+
import {
|
|
15
|
+
DEFAULT_SCRATCH_DOMAINS
|
|
16
|
+
} from "./chunk-LAPCUV4D.js";
|
|
17
|
+
import {
|
|
18
|
+
init_esm_shims
|
|
19
|
+
} from "./chunk-DHET7RCE.js";
|
|
20
|
+
|
|
21
|
+
// src/cli/components/wizard/stack-selection.tsx
|
|
22
|
+
init_esm_shims();
|
|
23
|
+
import { useState } from "react";
|
|
24
|
+
import { Box, Text, useInput } from "ink";
|
|
25
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
26
|
+
var INITIAL_FOCUSED_INDEX = 0;
|
|
27
|
+
var SCRATCH_LABEL = "Start from scratch";
|
|
28
|
+
var SCRATCH_DESCRIPTION = "Select domains and skills manually";
|
|
29
|
+
var EXTRA_ITEMS_COUNT = 1;
|
|
30
|
+
var DIVIDER_WIDTH = 30;
|
|
31
|
+
var StackSelection = ({ matrix, onCancel }) => {
|
|
32
|
+
const { selectStack, setApproach, setStackAction, populateFromSkillIds, toggleDomain } = useWizardStore();
|
|
33
|
+
const [focusedIndex, setFocusedIndex] = useState(INITIAL_FOCUSED_INDEX);
|
|
34
|
+
const stacks = matrix.suggestedStacks;
|
|
35
|
+
const stackCount = stacks.length;
|
|
36
|
+
const scratchIndex = stackCount;
|
|
37
|
+
const totalItems = stackCount + EXTRA_ITEMS_COUNT;
|
|
38
|
+
useInput((input, key) => {
|
|
39
|
+
if (key.escape) {
|
|
40
|
+
if (onCancel) {
|
|
41
|
+
onCancel();
|
|
42
|
+
}
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (key.return) {
|
|
46
|
+
if (focusedIndex === scratchIndex) {
|
|
47
|
+
selectStack(null);
|
|
48
|
+
setApproach("scratch");
|
|
49
|
+
for (const domain of DEFAULT_SCRATCH_DOMAINS) {
|
|
50
|
+
toggleDomain(domain);
|
|
51
|
+
}
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const focusedStack = stacks[focusedIndex];
|
|
55
|
+
if (focusedStack) {
|
|
56
|
+
selectStack(focusedStack.id);
|
|
57
|
+
setStackAction("customize");
|
|
58
|
+
populateFromSkillIds(focusedStack.allSkillIds, matrix.skills, matrix.categories);
|
|
59
|
+
const stackDomains = getDomainsFromStack(focusedStack, matrix.categories);
|
|
60
|
+
for (const domain of stackDomains) {
|
|
61
|
+
toggleDomain(domain);
|
|
62
|
+
}
|
|
63
|
+
setApproach("stack");
|
|
64
|
+
}
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (key.upArrow || input === "k") {
|
|
68
|
+
setFocusedIndex((prev) => Math.max(0, prev - 1));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (key.downArrow || input === "j") {
|
|
72
|
+
setFocusedIndex((prev) => Math.min(totalItems - 1, prev + 1));
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
|
|
76
|
+
/* @__PURE__ */ jsx(ViewTitle, { children: "Choose a stack" }),
|
|
77
|
+
/* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginTop: 1, children: [
|
|
78
|
+
stacks.map((stack, index) => /* @__PURE__ */ jsx(
|
|
79
|
+
MenuItem,
|
|
80
|
+
{
|
|
81
|
+
label: stack.name,
|
|
82
|
+
description: stack.description,
|
|
83
|
+
isFocused: index === focusedIndex
|
|
84
|
+
},
|
|
85
|
+
stack.id
|
|
86
|
+
)),
|
|
87
|
+
stackCount > 0 && /* @__PURE__ */ jsx(Box, { marginTop: 1, children: /* @__PURE__ */ jsx(Text, { dimColor: true, children: "\u2500".repeat(DIVIDER_WIDTH) }) }),
|
|
88
|
+
/* @__PURE__ */ jsx(Box, { marginTop: stackCount > 0 ? 0 : void 0, children: /* @__PURE__ */ jsx(
|
|
89
|
+
MenuItem,
|
|
90
|
+
{
|
|
91
|
+
label: SCRATCH_LABEL,
|
|
92
|
+
description: SCRATCH_DESCRIPTION,
|
|
93
|
+
isFocused: focusedIndex === scratchIndex
|
|
94
|
+
}
|
|
95
|
+
) })
|
|
96
|
+
] }),
|
|
97
|
+
/* @__PURE__ */ jsx(Box, { marginTop: 1, children: /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
|
|
98
|
+
"\u2191",
|
|
99
|
+
"/",
|
|
100
|
+
"\u2193",
|
|
101
|
+
" navigate ENTER select ESC quit"
|
|
102
|
+
] }) })
|
|
103
|
+
] });
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export {
|
|
107
|
+
StackSelection
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=chunk-LGUI3PMO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/stack-selection.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport { DEFAULT_SCRATCH_DOMAINS } from \"../../consts.js\";\nimport { useWizardStore } from \"../../stores/wizard-store.js\";\nimport type { MergedSkillsMatrix } from \"../../types/index.js\";\nimport { getDomainsFromStack } from \"./utils.js\";\nimport { MenuItem } from \"./menu-item.js\";\nimport { ViewTitle } from \"./view-title.js\";\n\nconst INITIAL_FOCUSED_INDEX = 0;\nconst SCRATCH_LABEL = \"Start from scratch\";\nconst SCRATCH_DESCRIPTION = \"Select domains and skills manually\";\n\n/** Number of extra items after the stack list (scratch option) */\nconst EXTRA_ITEMS_COUNT = 1;\n\n/** Width of the horizontal divider between stack list and scratch option */\nconst DIVIDER_WIDTH = 30;\n\nexport type StackSelectionProps = {\n matrix: MergedSkillsMatrix;\n onCancel?: () => void;\n};\n\nexport const StackSelection: React.FC<StackSelectionProps> = ({ matrix, onCancel }) => {\n const { selectStack, setApproach, setStackAction, populateFromSkillIds, toggleDomain } =\n useWizardStore();\n const [focusedIndex, setFocusedIndex] = useState(INITIAL_FOCUSED_INDEX);\n\n const stacks = matrix.suggestedStacks;\n const stackCount = stacks.length;\n const scratchIndex = stackCount;\n const totalItems = stackCount + EXTRA_ITEMS_COUNT;\n\n useInput((input, key) => {\n if (key.escape) {\n if (onCancel) {\n onCancel();\n }\n return;\n }\n\n if (key.return) {\n if (focusedIndex === scratchIndex) {\n selectStack(null);\n setApproach(\"scratch\");\n\n for (const domain of DEFAULT_SCRATCH_DOMAINS) {\n toggleDomain(domain);\n }\n return;\n }\n\n const focusedStack = stacks[focusedIndex];\n if (focusedStack) {\n selectStack(focusedStack.id);\n setStackAction(\"customize\");\n populateFromSkillIds(focusedStack.allSkillIds, matrix.skills, matrix.categories);\n\n const stackDomains = getDomainsFromStack(focusedStack, matrix.categories);\n for (const domain of stackDomains) {\n toggleDomain(domain);\n }\n\n setApproach(\"stack\");\n }\n return;\n }\n\n if (key.upArrow || input === \"k\") {\n setFocusedIndex((prev) => Math.max(0, prev - 1));\n return;\n }\n if (key.downArrow || input === \"j\") {\n setFocusedIndex((prev) => Math.min(totalItems - 1, prev + 1));\n }\n });\n\n return (\n <Box flexDirection=\"column\">\n <ViewTitle>Choose a stack</ViewTitle>\n <Box flexDirection=\"column\" marginTop={1}>\n {stacks.map((stack, index) => (\n <MenuItem\n key={stack.id}\n label={stack.name}\n description={stack.description}\n isFocused={index === focusedIndex}\n />\n ))}\n {stackCount > 0 && (\n <Box marginTop={1}>\n <Text dimColor>{\"\\u2500\".repeat(DIVIDER_WIDTH)}</Text>\n </Box>\n )}\n <Box marginTop={stackCount > 0 ? 0 : undefined}>\n <MenuItem\n label={SCRATCH_LABEL}\n description={SCRATCH_DESCRIPTION}\n isFocused={focusedIndex === scratchIndex}\n />\n </Box>\n </Box>\n <Box marginTop={1}>\n <Text dimColor>\n {\"\\u2191\"}/{\"\\u2193\"} navigate ENTER select ESC quit\n </Text>\n </Box>\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAgB,gBAAgB;AAChC,SAAS,KAAK,MAAM,gBAAgB;AA+E9B,cACA,YADA;AAvEN,IAAM,wBAAwB;AAC9B,IAAM,gBAAgB;AACtB,IAAM,sBAAsB;AAG5B,IAAM,oBAAoB;AAG1B,IAAM,gBAAgB;AAOf,IAAM,iBAAgD,CAAC,EAAE,QAAQ,SAAS,MAAM;AACrF,QAAM,EAAE,aAAa,aAAa,gBAAgB,sBAAsB,aAAa,IACnF,eAAe;AACjB,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,qBAAqB;AAEtE,QAAM,SAAS,OAAO;AACtB,QAAM,aAAa,OAAO;AAC1B,QAAM,eAAe;AACrB,QAAM,aAAa,aAAa;AAEhC,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,UAAI,UAAU;AACZ,iBAAS;AAAA,MACX;AACA;AAAA,IACF;AAEA,QAAI,IAAI,QAAQ;AACd,UAAI,iBAAiB,cAAc;AACjC,oBAAY,IAAI;AAChB,oBAAY,SAAS;AAErB,mBAAW,UAAU,yBAAyB;AAC5C,uBAAa,MAAM;AAAA,QACrB;AACA;AAAA,MACF;AAEA,YAAM,eAAe,OAAO,YAAY;AACxC,UAAI,cAAc;AAChB,oBAAY,aAAa,EAAE;AAC3B,uBAAe,WAAW;AAC1B,6BAAqB,aAAa,aAAa,OAAO,QAAQ,OAAO,UAAU;AAE/E,cAAM,eAAe,oBAAoB,cAAc,OAAO,UAAU;AACxE,mBAAW,UAAU,cAAc;AACjC,uBAAa,MAAM;AAAA,QACrB;AAEA,oBAAY,OAAO;AAAA,MACrB;AACA;AAAA,IACF;AAEA,QAAI,IAAI,WAAW,UAAU,KAAK;AAChC,sBAAgB,CAAC,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,CAAC;AAC/C;AAAA,IACF;AACA,QAAI,IAAI,aAAa,UAAU,KAAK;AAClC,sBAAgB,CAAC,SAAS,KAAK,IAAI,aAAa,GAAG,OAAO,CAAC,CAAC;AAAA,IAC9D;AAAA,EACF,CAAC;AAED,SACE,qBAAC,OAAI,eAAc,UACjB;AAAA,wBAAC,aAAU,4BAAc;AAAA,IACzB,qBAAC,OAAI,eAAc,UAAS,WAAW,GACpC;AAAA,aAAO,IAAI,CAAC,OAAO,UAClB;AAAA,QAAC;AAAA;AAAA,UAEC,OAAO,MAAM;AAAA,UACb,aAAa,MAAM;AAAA,UACnB,WAAW,UAAU;AAAA;AAAA,QAHhB,MAAM;AAAA,MAIb,CACD;AAAA,MACA,aAAa,KACZ,oBAAC,OAAI,WAAW,GACd,8BAAC,QAAK,UAAQ,MAAE,mBAAS,OAAO,aAAa,GAAE,GACjD;AAAA,MAEF,oBAAC,OAAI,WAAW,aAAa,IAAI,IAAI,QACnC;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,UACP,aAAa;AAAA,UACb,WAAW,iBAAiB;AAAA;AAAA,MAC9B,GACF;AAAA,OACF;AAAA,IACA,oBAAC,OAAI,WAAW,GACd,+BAAC,QAAK,UAAQ,MACX;AAAA;AAAA,MAAS;AAAA,MAAE;AAAA,MAAS;AAAA,OACvB,GACF;AAAA,KACF;AAEJ;","names":[]}
|