@agents-inc/cli 0.48.0 → 0.60.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 +181 -5
- package/README.md +1 -2
- package/dist/{chunk-2DNDAXF6.js → chunk-52M2XF3W.js} +57 -27
- package/dist/chunk-52M2XF3W.js.map +1 -0
- package/dist/{chunk-WSGKCBY5.js → chunk-52XO4ULK.js} +6 -9
- package/dist/chunk-52XO4ULK.js.map +1 -0
- package/dist/{chunk-AMNCCZSG.js → chunk-6G3KZSO4.js} +82 -63
- package/dist/chunk-6G3KZSO4.js.map +1 -0
- package/dist/{chunk-LESHL6SM.js → chunk-6OWHQ7HM.js} +21 -13
- package/dist/chunk-6OWHQ7HM.js.map +1 -0
- package/dist/{chunk-X3SZIBVW.js → chunk-7FMEMXJ4.js} +71 -71
- package/dist/chunk-7FMEMXJ4.js.map +1 -0
- package/dist/{chunk-I52THVF6.js → chunk-AJJJE7F7.js} +2 -2
- package/dist/{chunk-ZML3OCYA.js → chunk-AX3SZZWA.js} +2 -2
- package/dist/{chunk-NJVJ7VO5.js → chunk-BFD5NZQ4.js} +5 -4
- package/dist/chunk-BFD5NZQ4.js.map +1 -0
- package/dist/{chunk-GSPPOXMG.js → chunk-BKJHAJQW.js} +2 -2
- package/dist/{chunk-GSPPOXMG.js.map → chunk-BKJHAJQW.js.map} +1 -1
- package/dist/{chunk-FPTUCWBY.js → chunk-BMJZBLP7.js} +46 -30
- package/dist/chunk-BMJZBLP7.js.map +1 -0
- package/dist/chunk-BNQ5O6LE.js +74 -0
- package/dist/chunk-BNQ5O6LE.js.map +1 -0
- package/dist/{chunk-W62XVWXB.js → chunk-C577AJE7.js} +3 -3
- package/dist/chunk-CIG7IKX3.js +118 -0
- package/dist/chunk-CIG7IKX3.js.map +1 -0
- package/dist/chunk-EC3UJRKZ.js +1534 -0
- package/dist/chunk-EC3UJRKZ.js.map +1 -0
- package/dist/{chunk-IS7GP6XC.js → chunk-EMIUPGPL.js} +57 -52
- package/dist/chunk-EMIUPGPL.js.map +1 -0
- package/dist/chunk-G6WHCALR.js +593 -0
- package/dist/chunk-G6WHCALR.js.map +1 -0
- package/dist/{chunk-OTTITQ7C.js → chunk-H7WJK7NJ.js} +48 -95
- package/dist/chunk-H7WJK7NJ.js.map +1 -0
- package/dist/chunk-HGTC76BX.js +16 -0
- package/dist/chunk-HGTC76BX.js.map +1 -0
- package/dist/{chunk-G5OZQ376.js → chunk-K6OLORQL.js} +6 -6
- package/dist/{chunk-OHDEJEYB.js → chunk-KIWFEBKH.js} +41 -11
- package/dist/chunk-KIWFEBKH.js.map +1 -0
- package/dist/{chunk-YMUWTPOM.js → chunk-LWXRUR6B.js} +92 -100
- package/dist/chunk-LWXRUR6B.js.map +1 -0
- package/dist/{chunk-U2AEK4ZL.js → chunk-MGNYPVOJ.js} +2 -2
- package/dist/chunk-MKCHLXMY.js +40 -0
- package/dist/chunk-MKCHLXMY.js.map +1 -0
- package/dist/{chunk-37QYD33C.js → chunk-MMFQNJPE.js} +2 -2
- package/dist/{chunk-DG2U2WY3.js → chunk-MR6OBL3B.js} +3 -11
- package/dist/{chunk-DG2U2WY3.js.map → chunk-MR6OBL3B.js.map} +1 -1
- package/dist/{chunk-7IAKVZL5.js → chunk-O6BA7Q2B.js} +28 -59
- package/dist/chunk-O6BA7Q2B.js.map +1 -0
- package/dist/chunk-OCEFD7V6.js +201 -0
- package/dist/chunk-OCEFD7V6.js.map +1 -0
- package/dist/{chunk-YZTWZVGX.js → chunk-PUT7X3GA.js} +1 -1
- package/dist/chunk-PUT7X3GA.js.map +1 -0
- package/dist/chunk-RO6LX3UV.js +342 -0
- package/dist/chunk-RO6LX3UV.js.map +1 -0
- package/dist/{chunk-34BP5BC4.js → chunk-SDKCQXWE.js} +2 -2
- package/dist/{chunk-VBAAATPU.js → chunk-SEJF7CGJ.js} +41 -28
- package/dist/chunk-SEJF7CGJ.js.map +1 -0
- package/dist/{chunk-5O6GKXAN.js → chunk-SZRK3VOR.js} +24 -14
- package/dist/chunk-SZRK3VOR.js.map +1 -0
- package/dist/{chunk-5MN5S3DV.js → chunk-TC3NHO34.js} +22 -17
- package/dist/chunk-TC3NHO34.js.map +1 -0
- package/dist/{chunk-SPVSWDFM.js → chunk-TGLRDEEL.js} +8 -14
- package/dist/chunk-TGLRDEEL.js.map +1 -0
- package/dist/{chunk-P2SFRDWI.js → chunk-TZXYBG3R.js} +3634 -2875
- package/dist/chunk-TZXYBG3R.js.map +1 -0
- package/dist/{chunk-2BVZOYJP.js → chunk-VR3CDXDT.js} +2 -6
- package/dist/chunk-VR3CDXDT.js.map +1 -0
- package/dist/{chunk-KPJJOLAQ.js → chunk-WF6RM73R.js} +272 -40
- package/dist/chunk-WF6RM73R.js.map +1 -0
- package/dist/chunk-WYVDNGJB.js +31 -0
- package/dist/chunk-WYVDNGJB.js.map +1 -0
- package/dist/{chunk-F7KTUFGU.js → chunk-X5EG4EFP.js} +3 -2
- package/dist/chunk-X5EG4EFP.js.map +1 -0
- package/dist/{chunk-FHKNG3UA.js → chunk-XUDTFI4M.js} +2 -2
- package/dist/{chunk-AXV7NFFJ.js → chunk-YHCYKUA3.js} +14 -10
- package/dist/chunk-YHCYKUA3.js.map +1 -0
- package/dist/commands/build/marketplace.js +4 -4
- package/dist/commands/build/plugins.js +9 -7
- package/dist/commands/build/plugins.js.map +1 -1
- package/dist/commands/build/stack.js +13 -10
- package/dist/commands/build/stack.js.map +1 -1
- package/dist/commands/compile.js +45 -72
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/config/index.js +7 -5
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/config/path.js +8 -6
- package/dist/commands/config/path.js.map +1 -1
- package/dist/commands/config/show.js +7 -5
- package/dist/commands/diff.js +9 -7
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.js +20 -16
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +196 -94
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +20 -41
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/import/skill.js +10 -18
- package/dist/commands/import/skill.js.map +1 -1
- package/dist/commands/info.js +21 -20
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +41 -435
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +8 -6
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/new/agent.js +28 -15
- package/dist/commands/new/agent.js.map +1 -1
- package/dist/commands/new/marketplace.js +67 -31
- package/dist/commands/new/marketplace.js.map +1 -1
- package/dist/commands/new/skill.js +17 -208
- package/dist/commands/new/skill.js.map +1 -1
- package/dist/commands/outdated.js +16 -10
- package/dist/commands/outdated.js.map +1 -1
- package/dist/commands/search.js +45 -35
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +93 -123
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +11 -9
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.js +42 -267
- package/dist/commands/validate.js.map +1 -1
- package/dist/components/common/confirm.test.js +4 -4
- package/dist/components/skill-search/skill-search.js +3 -3
- package/dist/components/wizard/category-grid.js +3 -2
- package/dist/components/wizard/category-grid.test.js +113 -59
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/checkbox-grid.js +5 -3
- package/dist/components/wizard/checkbox-grid.test.js +6 -5
- package/dist/components/wizard/checkbox-grid.test.js.map +1 -1
- package/dist/components/wizard/domain-selection.js +12 -9
- package/dist/components/wizard/help-modal.js +2 -2
- package/dist/components/wizard/menu-item.js +1 -1
- package/dist/components/wizard/search-modal.js +2 -2
- package/dist/components/wizard/search-modal.test.js +3 -3
- package/dist/components/wizard/search-modal.test.js.map +1 -1
- package/dist/components/wizard/section-progress.js +2 -2
- package/dist/components/wizard/section-progress.test.js +4 -4
- package/dist/components/wizard/section-progress.test.js.map +1 -1
- package/dist/components/wizard/selection-card.js +2 -2
- package/dist/components/wizard/source-grid.js +4 -3
- package/dist/components/wizard/source-grid.test.js +5 -4
- package/dist/components/wizard/source-grid.test.js.map +1 -1
- package/dist/components/wizard/stack-selection.js +9 -8
- package/dist/components/wizard/step-agents.js +11 -8
- package/dist/components/wizard/step-agents.test.js +20 -18
- package/dist/components/wizard/step-agents.test.js.map +1 -1
- package/dist/components/wizard/step-build.js +11 -8
- package/dist/components/wizard/step-build.test.js +18 -36
- package/dist/components/wizard/step-build.test.js.map +1 -1
- package/dist/components/wizard/step-confirm.js +4 -4
- package/dist/components/wizard/step-confirm.test.js +83 -23
- package/dist/components/wizard/step-confirm.test.js.map +1 -1
- package/dist/components/wizard/step-refine.js +2 -2
- package/dist/components/wizard/step-refine.test.js +3 -3
- package/dist/components/wizard/step-settings.js +9 -5
- package/dist/components/wizard/step-settings.test.js +13 -9
- package/dist/components/wizard/step-settings.test.js.map +1 -1
- package/dist/components/wizard/step-sources.js +13 -10
- package/dist/components/wizard/step-sources.test.js +19 -16
- package/dist/components/wizard/step-sources.test.js.map +1 -1
- package/dist/components/wizard/step-stack.js +16 -12
- package/dist/components/wizard/step-stack.test.js +18 -14
- package/dist/components/wizard/step-stack.test.js.map +1 -1
- package/dist/components/wizard/view-title.js +2 -2
- package/dist/components/wizard/wizard-layout.js +10 -8
- package/dist/components/wizard/wizard-tabs.js +2 -2
- package/dist/components/wizard/wizard-tabs.test.js +2 -2
- package/dist/components/wizard/wizard.js +29 -25
- package/dist/config-exports.js +20 -0
- package/dist/config-exports.js.map +1 -0
- package/dist/hooks/init.js +56 -3
- package/dist/hooks/init.js.map +1 -1
- package/dist/loader-2O32KKAQ.js +19 -0
- package/dist/source-loader-A6B3NDI4.js +16 -0
- package/dist/source-loader-A6B3NDI4.js.map +1 -0
- package/dist/source-manager-Q7IQSGIX.js +18 -0
- package/dist/source-manager-Q7IQSGIX.js.map +1 -0
- package/dist/src/agents/meta/agent-summoner/critical-reminders.md +1 -1
- package/dist/src/agents/meta/agent-summoner/critical-requirements.md +1 -1
- package/dist/src/agents/meta/agent-summoner/examples.md +2 -2
- package/dist/src/agents/meta/agent-summoner/output-format.md +1 -1
- package/dist/src/agents/meta/agent-summoner/workflow.md +8 -10
- package/{src/agents/meta/documentor/agent.yaml → dist/src/agents/meta/documentor/metadata.yaml} +1 -0
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +2 -2
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +1 -1
- package/dist/src/agents/meta/skill-summoner/intro.md +1 -1
- package/dist/src/agents/meta/skill-summoner/output-format.md +3 -3
- package/dist/src/agents/meta/skill-summoner/workflow.md +8 -8
- package/dist/stores/wizard-store.js +6 -5
- package/dist/stores/wizard-store.test.js +367 -75
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +5 -1
- package/src/agents/meta/agent-summoner/critical-reminders.md +1 -1
- package/src/agents/meta/agent-summoner/critical-requirements.md +1 -1
- package/src/agents/meta/agent-summoner/examples.md +2 -2
- package/src/agents/meta/agent-summoner/output-format.md +1 -1
- package/src/agents/meta/agent-summoner/workflow.md +8 -10
- package/{dist/src/agents/meta/documentor/agent.yaml → src/agents/meta/documentor/metadata.yaml} +1 -0
- package/src/agents/meta/skill-summoner/critical-reminders.md +2 -2
- package/src/agents/meta/skill-summoner/critical-requirements.md +1 -1
- package/src/agents/meta/skill-summoner/intro.md +1 -1
- package/src/agents/meta/skill-summoner/output-format.md +3 -3
- package/src/agents/meta/skill-summoner/workflow.md +8 -8
- package/src/schemas/agent.schema.json +1 -1
- package/src/schemas/metadata.schema.json +6 -0
- package/src/schemas/project-config.schema.json +0 -3
- package/src/schemas/stacks.schema.json +1 -1
- package/config/skill-categories.yaml +0 -344
- package/config/skill-rules.yaml +0 -740
- package/config/stacks.yaml +0 -1865
- package/dist/chunk-2BVZOYJP.js.map +0 -1
- package/dist/chunk-2DNDAXF6.js.map +0 -1
- package/dist/chunk-5MN5S3DV.js.map +0 -1
- package/dist/chunk-5O6GKXAN.js.map +0 -1
- package/dist/chunk-7IAKVZL5.js.map +0 -1
- package/dist/chunk-AMNCCZSG.js.map +0 -1
- package/dist/chunk-AXV7NFFJ.js.map +0 -1
- package/dist/chunk-AXZNJ5PN.js +0 -99
- package/dist/chunk-AXZNJ5PN.js.map +0 -1
- package/dist/chunk-C7DLY64D.js +0 -115
- package/dist/chunk-C7DLY64D.js.map +0 -1
- package/dist/chunk-F7KTUFGU.js.map +0 -1
- package/dist/chunk-FPTUCWBY.js.map +0 -1
- package/dist/chunk-IS7GP6XC.js.map +0 -1
- package/dist/chunk-KPJJOLAQ.js.map +0 -1
- package/dist/chunk-LESHL6SM.js.map +0 -1
- package/dist/chunk-NJVJ7VO5.js.map +0 -1
- package/dist/chunk-OHDEJEYB.js.map +0 -1
- package/dist/chunk-OTTITQ7C.js.map +0 -1
- package/dist/chunk-P2SFRDWI.js.map +0 -1
- package/dist/chunk-PY2XZUBF.js +0 -29
- package/dist/chunk-PY2XZUBF.js.map +0 -1
- package/dist/chunk-SPVSWDFM.js.map +0 -1
- package/dist/chunk-VBAAATPU.js.map +0 -1
- package/dist/chunk-WSGKCBY5.js.map +0 -1
- package/dist/chunk-X3SZIBVW.js.map +0 -1
- package/dist/chunk-YDASDMTH.js +0 -183
- package/dist/chunk-YDASDMTH.js.map +0 -1
- package/dist/chunk-YMUWTPOM.js.map +0 -1
- package/dist/chunk-YZTWZVGX.js.map +0 -1
- package/dist/commands/config/get.js +0 -61
- package/dist/commands/config/get.js.map +0 -1
- package/dist/commands/config/set-project.js +0 -61
- package/dist/commands/config/set-project.js.map +0 -1
- package/dist/commands/config/unset-project.js +0 -57
- package/dist/commands/config/unset-project.js.map +0 -1
- package/dist/config/skill-categories.yaml +0 -344
- package/dist/config/skill-rules.yaml +0 -740
- package/dist/config/stacks.yaml +0 -1865
- package/dist/source-manager-Y7R6WPOW.js +0 -16
- package/dist/src/agents/migration/cli-migrator/agent.yaml +0 -12
- package/dist/src/agents/migration/cli-migrator/anti-patterns.md +0 -158
- package/dist/src/agents/migration/cli-migrator/conversion-mappings.md +0 -63
- package/dist/src/agents/migration/cli-migrator/critical-reminders.md +0 -17
- package/dist/src/agents/migration/cli-migrator/critical-requirements.md +0 -13
- package/dist/src/agents/migration/cli-migrator/intro.md +0 -15
- package/dist/src/agents/migration/cli-migrator/output-format.md +0 -164
- package/dist/src/agents/migration/cli-migrator/workflow.md +0 -230
- package/src/agents/migration/cli-migrator/agent.yaml +0 -12
- package/src/agents/migration/cli-migrator/anti-patterns.md +0 -158
- package/src/agents/migration/cli-migrator/conversion-mappings.md +0 -63
- package/src/agents/migration/cli-migrator/critical-reminders.md +0 -17
- package/src/agents/migration/cli-migrator/critical-requirements.md +0 -13
- package/src/agents/migration/cli-migrator/intro.md +0 -15
- package/src/agents/migration/cli-migrator/output-format.md +0 -164
- package/src/agents/migration/cli-migrator/workflow.md +0 -230
- /package/dist/{chunk-I52THVF6.js.map → chunk-AJJJE7F7.js.map} +0 -0
- /package/dist/{chunk-ZML3OCYA.js.map → chunk-AX3SZZWA.js.map} +0 -0
- /package/dist/{chunk-W62XVWXB.js.map → chunk-C577AJE7.js.map} +0 -0
- /package/dist/{chunk-G5OZQ376.js.map → chunk-K6OLORQL.js.map} +0 -0
- /package/dist/{chunk-U2AEK4ZL.js.map → chunk-MGNYPVOJ.js.map} +0 -0
- /package/dist/{chunk-37QYD33C.js.map → chunk-MMFQNJPE.js.map} +0 -0
- /package/dist/{chunk-34BP5BC4.js.map → chunk-SDKCQXWE.js.map} +0 -0
- /package/dist/{chunk-FHKNG3UA.js.map → chunk-XUDTFI4M.js.map} +0 -0
- /package/dist/{source-manager-Y7R6WPOW.js.map → loader-2O32KKAQ.js.map} +0 -0
- /package/dist/src/agents/developer/api-developer/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/developer/cli-developer/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/developer/web-architecture/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/developer/web-developer/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/meta/agent-summoner/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/meta/skill-summoner/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/pattern/pattern-scout/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/pattern/web-pattern-critique/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/planning/web-pm/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/researcher/api-researcher/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/researcher/web-researcher/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/reviewer/api-reviewer/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/reviewer/cli-reviewer/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/reviewer/web-reviewer/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/tester/cli-tester/{agent.yaml → metadata.yaml} +0 -0
- /package/dist/src/agents/tester/web-tester/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/developer/api-developer/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/developer/cli-developer/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/developer/web-architecture/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/developer/web-developer/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/meta/agent-summoner/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/meta/skill-summoner/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/pattern/pattern-scout/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/pattern/web-pattern-critique/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/planning/web-pm/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/researcher/api-researcher/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/researcher/web-researcher/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/reviewer/api-reviewer/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/reviewer/cli-reviewer/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/reviewer/web-reviewer/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/tester/cli-tester/{agent.yaml → metadata.yaml} +0 -0
- /package/src/agents/tester/web-tester/{agent.yaml → metadata.yaml} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,182 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
## [0.60.1] - 2026-03-08
|
|
13
|
+
|
|
14
|
+
**Type redundancy cleanup and test infrastructure improvements**
|
|
15
|
+
|
|
16
|
+
- `CategoryDomainMap`, `PluginConfigResult`, and 4 other types simplified with `Pick`/`Omit`/extends
|
|
17
|
+
- `TestSkill` derived from `ExtractedSkillMetadata`, dead alias fields removed, `writeTestSkill` options auto-derived
|
|
18
|
+
|
|
19
|
+
See [changelogs/0.60.1.md](./changelogs/0.60.1.md) for full details.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## [0.60.0] - 2026-03-07
|
|
24
|
+
|
|
25
|
+
**Slug-based skill identity — R-04 Phase 1**
|
|
26
|
+
|
|
27
|
+
- `SkillSlug` union type replaces `SkillDisplayName` with compile-time checked slugs
|
|
28
|
+
- Aliases and per-skill rules removed — slugs derived from metadata, relationships use group-based declarations
|
|
29
|
+
- New relationship types: `CompatibilityGroup`, `SetupPair`, flat `Recommendation`
|
|
30
|
+
|
|
31
|
+
See [changelogs/0.60.0.md](./changelogs/0.60.0.md) for full details.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## [0.59.0] - 2026-03-07
|
|
36
|
+
|
|
37
|
+
**Dual-scope agent installation with per-agent project/global scope**
|
|
38
|
+
|
|
39
|
+
- `AgentScopeConfig` replaces bare agent name arrays — each agent has its own scope
|
|
40
|
+
- Global installation detection in `init` command with project/global/cancel prompt
|
|
41
|
+
- D-37, D-65, B-09 completed
|
|
42
|
+
|
|
43
|
+
See [changelogs/0.59.0.md](./changelogs/0.59.0.md) for full details.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## [0.58.0] - 2026-03-06
|
|
48
|
+
|
|
49
|
+
**Per-skill scope toggle, S key badge, E2E fixes**
|
|
50
|
+
|
|
51
|
+
- S key toggles focused skill's scope (project/global) in build step with [P]/[G] badge
|
|
52
|
+
- Fix `new marketplace` / `new skill` failing in temp dirs (skip detectInstallation with --output)
|
|
53
|
+
- 28 E2E test failures fixed, test suite updated for SkillConfig[] format
|
|
54
|
+
|
|
55
|
+
See [changelogs/0.58.0.md](./changelogs/0.58.0.md) for full details.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## [0.57.0] - 2026-03-02
|
|
60
|
+
|
|
61
|
+
**Per-skill install mode, archive removal, mode migration**
|
|
62
|
+
|
|
63
|
+
- Install mode derived from per-skill source selections (`"local"`, `"plugin"`, `"mixed"`)
|
|
64
|
+
- Archive mechanism replaced with permanent delete — `deleteLocalSkill()` replaces archive/restore
|
|
65
|
+
- Mode migrator handles per-skill local↔plugin transitions in `cc edit`
|
|
66
|
+
|
|
67
|
+
See [changelogs/0.57.0.md](./changelogs/0.57.0.md) for full details.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## [0.56.1] - 2026-03-02
|
|
72
|
+
|
|
73
|
+
**Domain metadata cleanup, D-37 design doc update**
|
|
74
|
+
|
|
75
|
+
- `domain` now explicit in skill/agent metadata (no more category prefix inference)
|
|
76
|
+
- D-37 install mode redesign doc updated for config.ts, dropped `skillOverrides`
|
|
77
|
+
|
|
78
|
+
See [changelogs/0.56.1.md](./changelogs/0.56.1.md) for full details.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## [0.56.0] - 2026-03-02
|
|
83
|
+
|
|
84
|
+
**E2E test coverage, global config detection, pre-commit E2E hook**
|
|
85
|
+
|
|
86
|
+
- 350+ E2E tests covering all commands and wizard flows
|
|
87
|
+
- `agentsinc init` prompts when global config exists but no project config (D-65)
|
|
88
|
+
- E2E tests added to pre-commit hook (D-63)
|
|
89
|
+
|
|
90
|
+
See [changelogs/0.56.0.md](./changelogs/0.56.0.md) for full details.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## [0.55.1] - 2026-03-01
|
|
95
|
+
|
|
96
|
+
**B-08 selective agent removal, D-70 rename Subcategory → Category**
|
|
97
|
+
|
|
98
|
+
- Fixed `uninstall` to selectively remove only config-listed agents instead of wiping the entire agents directory
|
|
99
|
+
- Renamed `Subcategory` type to `Category` across ~64 files — aligns with `category` field in `metadata.yaml`
|
|
100
|
+
|
|
101
|
+
See [changelogs/0.55.1.md](./changelogs/0.55.1.md) for full details.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## [0.55.0] - 2026-03-01
|
|
106
|
+
|
|
107
|
+
**Remove `--dry-run` flag**
|
|
108
|
+
|
|
109
|
+
- Removed `--dry-run` from all commands — wizard confirm step already previews, all operations are local/reversible
|
|
110
|
+
|
|
111
|
+
See [changelogs/0.55.0.md](./changelogs/0.55.0.md) for full details.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## [0.54.0] - 2026-03-01
|
|
116
|
+
|
|
117
|
+
**Config file renames, domain ordering fix**
|
|
118
|
+
|
|
119
|
+
- Renamed `ts-config-*` files to `config-*` — drop prefix now that all configs are TypeScript
|
|
120
|
+
- Fixed domain ordering mismatch — custom domains now appear first in all wizard views
|
|
121
|
+
|
|
122
|
+
See [changelogs/0.54.0.md](./changelogs/0.54.0.md) for full details.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## [0.53.0] - 2026-02-28
|
|
127
|
+
|
|
128
|
+
**Config-types regeneration, sectioned unions, required domain**
|
|
129
|
+
|
|
130
|
+
- Auto-regenerate `config-types.ts` on `new skill` and `new agent` creation
|
|
131
|
+
- Sectioned `// Custom` / `// Marketplace` comments in generated union types
|
|
132
|
+
- Domain now required on all skill metadata — never inferred from category prefix
|
|
133
|
+
|
|
134
|
+
See [changelogs/0.53.0.md](./changelogs/0.53.0.md) for full details.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## [0.52.0] - 2026-02-28
|
|
139
|
+
|
|
140
|
+
**Generated config types, remove defineConfig() runtime dependency**
|
|
141
|
+
|
|
142
|
+
- Generated `config-types.ts` gives users editor autocomplete with zero dependencies
|
|
143
|
+
- Config output uses `satisfies ProjectConfig` instead of `defineConfig()` wrapper
|
|
144
|
+
- Fixes root cause of B-08 (uninstall failing due to jiti import resolution)
|
|
145
|
+
|
|
146
|
+
See [changelogs/0.52.0.md](./changelogs/0.52.0.md) for full details.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## [0.51.0] - 2026-02-28
|
|
151
|
+
|
|
152
|
+
**Install scope tracking, global test isolation**
|
|
153
|
+
|
|
154
|
+
- Add `installScope` to wizard store — track project vs global scope through wizard flow
|
|
155
|
+
- Global `vitest.setup.ts` mocks `os.homedir()` to prevent real global config from leaking into tests
|
|
156
|
+
- Fix 63 test failures across 16 files caused by global config fallback
|
|
157
|
+
|
|
158
|
+
See [changelogs/0.51.0.md](./changelogs/0.51.0.md) for full details.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## [0.50.0] - 2026-02-27
|
|
163
|
+
|
|
164
|
+
**Pre-1.0 cleanup — agent.yaml rename, expert mode removal, scroll hook extraction, DRY consolidation**
|
|
165
|
+
|
|
166
|
+
- Rename `agent.yaml` to `metadata.yaml` across all 17 agents
|
|
167
|
+
- Remove `cli-migrator` agent and expert mode toggle
|
|
168
|
+
- Extract `useSectionScroll` and `useRowScroll` hooks from 6 wizard components
|
|
169
|
+
- Unify scroll rendering, fix domain sort order stability (B-07)
|
|
170
|
+
- Dashboard view when `init` is run on existing project
|
|
171
|
+
|
|
172
|
+
See [changelogs/0.50.0.md](./changelogs/0.50.0.md) for full details.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## [0.49.0] - 2026-02-27
|
|
177
|
+
|
|
178
|
+
**Config file generation for new skill and new marketplace commands**
|
|
179
|
+
|
|
180
|
+
- `new marketplace` scaffolds `config/skill-categories.yaml` and `config/skill-rules.yaml`
|
|
181
|
+
- `new skill` creates or updates config files when running in marketplace context
|
|
182
|
+
- Matrix decomposition (D-50) all 8 phases complete
|
|
183
|
+
|
|
184
|
+
See [changelogs/0.49.0.md](./changelogs/0.49.0.md) for full details.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
12
188
|
## [0.48.0] - 2026-02-27
|
|
13
189
|
|
|
14
190
|
**Matrix decomposition, displayName rename, E2E test infrastructure**
|
|
@@ -138,9 +314,9 @@ See [changelogs/0.41.0.md](./changelogs/0.41.0.md) for full details.
|
|
|
138
314
|
|
|
139
315
|
## [0.40.0] - 2026-02-19
|
|
140
316
|
|
|
141
|
-
**Domain-prefix all
|
|
317
|
+
**Domain-prefix all category keys (D-31), add category enum to metadata schema (D-32)**
|
|
142
318
|
|
|
143
|
-
- Rename all 33 bare
|
|
319
|
+
- Rename all 33 bare category keys to domain-prefixed form (e.g., `framework` → `web-framework`, `methodology` → `shared-methodology`)
|
|
144
320
|
- Add strict category enum validation to metadata schema
|
|
145
321
|
- Simplify `extractSubcategoryFromPath` and `categoryPathSchema` (remove slash-separated paths)
|
|
146
322
|
- Update all YAML configs, JSON schemas, types, source code, and 30+ test files
|
|
@@ -153,7 +329,7 @@ See [changelogs/0.40.0.md](./changelogs/0.40.0.md) for full details.
|
|
|
153
329
|
|
|
154
330
|
**Merge meta-framework into framework, remove web-extras domain, grouped agents step**
|
|
155
331
|
|
|
156
|
-
- Merge `meta-framework`
|
|
332
|
+
- Merge `meta-framework` category into `framework` — meta-frameworks now conflict with base frameworks directly
|
|
157
333
|
- Remove `web-extras` domain and `parentDomain` field — all web categories under single `web` domain
|
|
158
334
|
- Rewrite agents step with domain-grouped layout (Web, API, CLI, Meta) and scroll support
|
|
159
335
|
- Simplify agent preselection from skill-based to domain-based lookup
|
|
@@ -169,7 +345,7 @@ See [changelogs/0.39.0.md](./changelogs/0.39.0.md) for full details.
|
|
|
169
345
|
|
|
170
346
|
- New "Agents" wizard step — users can toggle which agents to compile
|
|
171
347
|
- Agents preselected from actually selected skills (not just domains)
|
|
172
|
-
- Stacks schema enforces valid
|
|
348
|
+
- Stacks schema enforces valid category keys via enum
|
|
173
349
|
- Reusable CheckboxGrid component extracted from domain selection
|
|
174
350
|
|
|
175
351
|
See [changelogs/0.38.0.md](./changelogs/0.38.0.md) for full details.
|
|
@@ -302,7 +478,7 @@ Fixed `cc init` embedding wrong schema reference in generated config.yaml.
|
|
|
302
478
|
|
|
303
479
|
**Multi-skill stack assignments in project config**
|
|
304
480
|
|
|
305
|
-
Stack config now stores multiple skills per
|
|
481
|
+
Stack config now stores multiple skills per category with preloaded flags preserved through the full pipeline.
|
|
306
482
|
|
|
307
483
|
[-> Full release notes](./changelogs/0.29.2.md)
|
|
308
484
|
|
package/README.md
CHANGED
|
@@ -82,7 +82,7 @@ The wizard has three steps:
|
|
|
82
82
|
|
|
83
83
|
## Subagents
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
17 roles across 7 categories:
|
|
86
86
|
|
|
87
87
|
| Category | Subagents |
|
|
88
88
|
| ---------------- | ------------------------------------------------------------------ |
|
|
@@ -92,7 +92,6 @@ The wizard has three steps:
|
|
|
92
92
|
| Researchers | `web-researcher` `api-researcher` |
|
|
93
93
|
| Planning | `web-pm` |
|
|
94
94
|
| Pattern Analysis | `pattern-scout` `web-pattern-critique` |
|
|
95
|
-
| Migration | `cli-migrator` |
|
|
96
95
|
| Documentation | `documentor` |
|
|
97
96
|
| Meta | `skill-summoner` `agent-summoner` |
|
|
98
97
|
|
|
@@ -5,9 +5,12 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
useKeyboardNavigation
|
|
7
7
|
} from "./chunk-KUV24B5M.js";
|
|
8
|
+
import {
|
|
9
|
+
useRowScroll
|
|
10
|
+
} from "./chunk-WYVDNGJB.js";
|
|
8
11
|
import {
|
|
9
12
|
ViewTitle
|
|
10
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-MGNYPVOJ.js";
|
|
11
14
|
import {
|
|
12
15
|
useTextInput
|
|
13
16
|
} from "./chunk-U3IGFMCY.js";
|
|
@@ -16,14 +19,14 @@ import {
|
|
|
16
19
|
addSource,
|
|
17
20
|
getSourceSummary,
|
|
18
21
|
removeSource
|
|
19
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-TZXYBG3R.js";
|
|
20
23
|
import {
|
|
21
24
|
getErrorMessage,
|
|
22
25
|
verbose
|
|
23
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-LWXRUR6B.js";
|
|
24
27
|
import {
|
|
25
28
|
CLI_COLORS
|
|
26
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-6OWHQ7HM.js";
|
|
27
30
|
import {
|
|
28
31
|
init_esm_shims
|
|
29
32
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -78,7 +81,12 @@ function useSourceOperations(projectDir, onReload) {
|
|
|
78
81
|
// src/cli/components/wizard/step-settings.tsx
|
|
79
82
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
80
83
|
var DEFAULT_SOURCE_NAME = "public";
|
|
81
|
-
var
|
|
84
|
+
var SOURCE_LIST_BORDER_LINES = 2;
|
|
85
|
+
var StepSettings = ({
|
|
86
|
+
projectDir,
|
|
87
|
+
availableHeight = 0,
|
|
88
|
+
onClose
|
|
89
|
+
}) => {
|
|
82
90
|
const [summary, setSummary] = useState2(null);
|
|
83
91
|
const addModal = useModalState();
|
|
84
92
|
const {
|
|
@@ -114,6 +122,12 @@ var StepSettings = ({ projectDir, onClose }) => {
|
|
|
114
122
|
{ onEscape: onClose },
|
|
115
123
|
{ wrap: false, vimKeys: false, active: !addModal.isOpen }
|
|
116
124
|
);
|
|
125
|
+
const sourceViewportHeight = availableHeight > SOURCE_LIST_BORDER_LINES ? availableHeight - SOURCE_LIST_BORDER_LINES : 0;
|
|
126
|
+
const { scrollEnabled, scrollTop } = useRowScroll({
|
|
127
|
+
focusedIndex,
|
|
128
|
+
itemCount: sourceCount,
|
|
129
|
+
availableHeight: sourceViewportHeight
|
|
130
|
+
});
|
|
117
131
|
useInput((input, key) => {
|
|
118
132
|
if (statusMessage) {
|
|
119
133
|
clearStatus();
|
|
@@ -162,6 +176,27 @@ var StepSettings = ({ projectDir, onClose }) => {
|
|
|
162
176
|
/* @__PURE__ */ jsx(Text, { dimColor: true, children: "Loading sources..." })
|
|
163
177
|
] });
|
|
164
178
|
}
|
|
179
|
+
const sourceElements = summary?.sources.map((source, index) => {
|
|
180
|
+
const isFocused = index === focusedIndex && !addModal.isOpen;
|
|
181
|
+
const isDefault = source.name === DEFAULT_SOURCE_NAME;
|
|
182
|
+
const checkmark = source.enabled ? "\u2713" : " ";
|
|
183
|
+
const displayName = isDefault ? "Public" : source.name;
|
|
184
|
+
const suffix = isDefault ? " (default)" : "";
|
|
185
|
+
return /* @__PURE__ */ jsxs(Box, { flexShrink: 0, children: [
|
|
186
|
+
/* @__PURE__ */ jsxs(Text, { color: isFocused ? CLI_COLORS.PRIMARY : void 0, bold: isFocused, children: [
|
|
187
|
+
isFocused ? ">" : " ",
|
|
188
|
+
" ",
|
|
189
|
+
checkmark,
|
|
190
|
+
" ",
|
|
191
|
+
displayName
|
|
192
|
+
] }),
|
|
193
|
+
/* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
|
|
194
|
+
" ",
|
|
195
|
+
source.url,
|
|
196
|
+
suffix
|
|
197
|
+
] })
|
|
198
|
+
] }, source.name);
|
|
199
|
+
});
|
|
165
200
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", paddingX: 2, children: [
|
|
166
201
|
/* @__PURE__ */ jsx(ViewTitle, { children: "Skill Sources" }),
|
|
167
202
|
/* @__PURE__ */ jsx(Box, { marginTop: 1 }),
|
|
@@ -174,27 +209,22 @@ var StepSettings = ({ projectDir, onClose }) => {
|
|
|
174
209
|
borderColor: CLI_COLORS.NEUTRAL,
|
|
175
210
|
paddingX: 1,
|
|
176
211
|
marginTop: 1,
|
|
177
|
-
children:
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
source.url,
|
|
194
|
-
suffix
|
|
195
|
-
] })
|
|
196
|
-
] }, source.name);
|
|
197
|
-
})
|
|
212
|
+
children: /* @__PURE__ */ jsx(
|
|
213
|
+
Box,
|
|
214
|
+
{
|
|
215
|
+
flexDirection: "column",
|
|
216
|
+
...scrollEnabled && { height: sourceViewportHeight, overflow: "hidden" },
|
|
217
|
+
children: /* @__PURE__ */ jsx(
|
|
218
|
+
Box,
|
|
219
|
+
{
|
|
220
|
+
flexDirection: "column",
|
|
221
|
+
marginTop: scrollTop > 0 ? -scrollTop : 0,
|
|
222
|
+
...scrollEnabled && { flexShrink: 0 },
|
|
223
|
+
children: sourceElements
|
|
224
|
+
}
|
|
225
|
+
)
|
|
226
|
+
}
|
|
227
|
+
)
|
|
198
228
|
}
|
|
199
229
|
),
|
|
200
230
|
/* @__PURE__ */ jsx(
|
|
@@ -232,4 +262,4 @@ var StepSettings = ({ projectDir, onClose }) => {
|
|
|
232
262
|
export {
|
|
233
263
|
StepSettings
|
|
234
264
|
};
|
|
235
|
-
//# sourceMappingURL=chunk-
|
|
265
|
+
//# sourceMappingURL=chunk-52M2XF3W.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/step-settings.tsx","../src/cli/components/hooks/use-source-operations.ts"],"sourcesContent":["import React, { useState, useEffect, useCallback } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport { ViewTitle } from \"./view-title.js\";\nimport { getSourceSummary, type SourceSummary } from \"../../lib/configuration/source-manager.js\";\nimport { DEFAULT_SOURCE } from \"../../lib/configuration/config.js\";\nimport { useKeyboardNavigation } from \"../hooks/use-keyboard-navigation.js\";\nimport { useModalState } from \"../hooks/use-modal-state.js\";\nimport { useRowScroll } from \"../hooks/use-row-scroll.js\";\nimport { useSourceOperations } from \"../hooks/use-source-operations.js\";\nimport { useTextInput } from \"../hooks/use-text-input.js\";\nimport { verbose } from \"../../utils/logger.js\";\nimport { getErrorMessage } from \"../../utils/errors.js\";\n\nconst DEFAULT_SOURCE_NAME = \"public\";\n\n/** Fixed lines around the source list: border top/bottom (2) */\nconst SOURCE_LIST_BORDER_LINES = 2;\n\nexport type StepSettingsProps = {\n projectDir: string;\n /** Available height in terminal lines for the scrollable source list. 0 = no constraint. */\n availableHeight?: number;\n onClose: () => void;\n};\n\nexport const StepSettings: React.FC<StepSettingsProps> = ({\n projectDir,\n availableHeight = 0,\n onClose,\n}) => {\n const [summary, setSummary] = useState<SourceSummary | null>(null);\n const addModal = useModalState();\n const {\n value: addSourceInput,\n setValue: setAddSourceInput,\n handleInput: handleTextInput,\n } = useTextInput(\"\");\n const [isLoading, setIsLoading] = useState(true);\n\n const loadSummary = useCallback(async () => {\n try {\n const result = await getSourceSummary(projectDir);\n setSummary(result);\n } catch (error) {\n verbose(`Failed to load source summary: ${getErrorMessage(error)}`);\n setSummary({\n sources: [{ name: DEFAULT_SOURCE_NAME, url: DEFAULT_SOURCE, enabled: true }],\n localSkillCount: 0,\n pluginSkillCount: 0,\n });\n }\n setIsLoading(false);\n }, [projectDir]);\n\n useEffect(() => {\n void loadSummary();\n }, [loadSummary]);\n\n const { handleAdd, handleRemove, statusMessage, clearStatus } = useSourceOperations(\n projectDir,\n loadSummary,\n );\n\n const sourceCount = summary?.sources.length ?? 0;\n\n const { focusedIndex, setFocusedIndex } = useKeyboardNavigation(\n sourceCount,\n { onEscape: onClose },\n { wrap: false, vimKeys: false, active: !addModal.isOpen },\n );\n\n // Compute scroll offset for source list\n const sourceViewportHeight =\n availableHeight > SOURCE_LIST_BORDER_LINES ? availableHeight - SOURCE_LIST_BORDER_LINES : 0;\n const { scrollEnabled, scrollTop } = useRowScroll({\n focusedIndex,\n itemCount: sourceCount,\n availableHeight: sourceViewportHeight,\n });\n\n useInput((input, key) => {\n if (statusMessage) {\n clearStatus();\n }\n\n if (addModal.isOpen) {\n if (key.escape) {\n addModal.close();\n setAddSourceInput(\"\");\n return;\n }\n\n if (key.return) {\n if (addSourceInput.trim()) {\n addModal.close();\n setAddSourceInput(\"\");\n void handleAdd(addSourceInput.trim());\n }\n return;\n }\n\n handleTextInput(input, key);\n return;\n }\n\n if (key.return) {\n // Toggle enabled/disabled is a placeholder for future enabledSources store integration\n return;\n }\n\n if (key.backspace || key.delete) {\n if (summary?.sources[focusedIndex]) {\n const source = summary.sources[focusedIndex];\n if (source.name !== DEFAULT_SOURCE_NAME) {\n void handleRemove(source.name).then((success) => {\n if (success) {\n setFocusedIndex((prev) => Math.max(0, prev - 1));\n }\n });\n }\n }\n return;\n }\n\n if (input === \"a\" || input === \"A\") {\n addModal.open(true);\n setAddSourceInput(\"\");\n }\n });\n\n if (isLoading) {\n return (\n <Box flexDirection=\"column\" paddingX={2}>\n <ViewTitle>Skill Sources</ViewTitle>\n <Text dimColor>Loading sources...</Text>\n </Box>\n );\n }\n\n const sourceElements = summary?.sources.map((source, index) => {\n const isFocused = index === focusedIndex && !addModal.isOpen;\n const isDefault = source.name === DEFAULT_SOURCE_NAME;\n const checkmark = source.enabled ? \"\\u2713\" : \" \";\n const displayName = isDefault ? \"Public\" : source.name;\n const suffix = isDefault ? \" (default)\" : \"\";\n\n return (\n <Box key={source.name} flexShrink={0}>\n <Text color={isFocused ? CLI_COLORS.PRIMARY : undefined} bold={isFocused}>\n {isFocused ? \">\" : \" \"} {checkmark} {displayName}\n </Text>\n <Text dimColor>\n {\" \"}\n {source.url}\n {suffix}\n </Text>\n </Box>\n );\n });\n\n return (\n <Box flexDirection=\"column\" paddingX={2}>\n <ViewTitle>Skill Sources</ViewTitle>\n <Box marginTop={1} />\n\n <Text bold>Configured marketplaces:</Text>\n <Box\n flexDirection=\"column\"\n borderStyle=\"round\"\n borderColor={CLI_COLORS.NEUTRAL}\n paddingX={1}\n marginTop={1}\n >\n <Box\n flexDirection=\"column\"\n {...(scrollEnabled && { height: sourceViewportHeight, overflow: \"hidden\" as const })}\n >\n <Box\n flexDirection=\"column\"\n marginTop={scrollTop > 0 ? -scrollTop : 0}\n {...(scrollEnabled && { flexShrink: 0 })}\n >\n {sourceElements}\n </Box>\n </Box>\n </Box>\n\n <Box\n flexDirection=\"column\"\n borderStyle=\"round\"\n borderColor={addModal.isOpen ? CLI_COLORS.PRIMARY : CLI_COLORS.NEUTRAL}\n paddingX={1}\n marginTop={1}\n >\n <Text color={addModal.isOpen ? CLI_COLORS.PRIMARY : undefined}>\n + Add source: {addModal.isOpen ? addSourceInput : \"\"}\n {addModal.isOpen ? \"\\u2588\" : \"\"}\n </Text>\n </Box>\n\n {statusMessage && (\n <Box marginTop={1}>\n <Text color={statusMessage.color}>{statusMessage.text}</Text>\n </Box>\n )}\n\n <Box marginTop={1} flexDirection=\"column\">\n <Text dimColor>Local skills: {summary?.localSkillCount ?? 0} in .claude/skills/</Text>\n <Text dimColor>Plugins: {summary?.pluginSkillCount ?? 0} from installed plugins</Text>\n </Box>\n\n <Box marginTop={1}>\n <Text dimColor>\n {addModal.isOpen ? \"ENTER submit ESC cancel\" : \"A add DEL remove ESC or G to close\"}\n </Text>\n </Box>\n </Box>\n );\n};\n","import { useState, useCallback } from \"react\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport { getErrorMessage } from \"../../utils/errors.js\";\nimport { addSource, removeSource } from \"../../lib/configuration/source-manager.js\";\n\ntype StatusMessage = { text: string; color: \"red\" | \"green\" } | null;\n\ntype UseSourceOperationsResult = {\n handleAdd: (url: string) => Promise<void>;\n handleRemove: (name: string) => Promise<boolean>;\n statusMessage: StatusMessage;\n clearStatus: () => void;\n};\n\nexport function useSourceOperations(\n projectDir: string,\n onReload: () => Promise<void>,\n): UseSourceOperationsResult {\n const [statusMessage, setStatusMessage] = useState<StatusMessage>(null);\n\n const handleAdd = useCallback(\n async (url: string) => {\n try {\n const result = await addSource(projectDir, url);\n setStatusMessage({\n text: `Added \"${result.name}\" (${result.skillCount} skills)`,\n color: CLI_COLORS.SUCCESS,\n });\n await onReload();\n } catch (error) {\n const message = getErrorMessage(error);\n setStatusMessage({ text: `Failed to add source: ${message}`, color: CLI_COLORS.ERROR });\n }\n },\n [projectDir, onReload],\n );\n\n const handleRemove = useCallback(\n async (name: string): Promise<boolean> => {\n try {\n await removeSource(projectDir, name);\n setStatusMessage({ text: `Removed \"${name}\"`, color: CLI_COLORS.SUCCESS });\n await onReload();\n return true;\n } catch (error) {\n const message = getErrorMessage(error);\n setStatusMessage({ text: `Failed to remove: ${message}`, color: CLI_COLORS.ERROR });\n return false;\n }\n },\n [projectDir, onReload],\n );\n\n const clearStatus = useCallback(() => {\n setStatusMessage(null);\n }, []);\n\n return { handleAdd, handleRemove, statusMessage, clearStatus };\n}\n"],"mappings":"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","names":["useState","useCallback","useState","useCallback"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CLI_COLORS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-6OWHQ7HM.js";
|
|
5
5
|
import {
|
|
6
6
|
init_esm_shims
|
|
7
7
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -21,24 +21,21 @@ var GLOBAL_KEYS = {
|
|
|
21
21
|
]
|
|
22
22
|
};
|
|
23
23
|
var GLOBAL_TOGGLES = {
|
|
24
|
-
title: "
|
|
25
|
-
keys: [
|
|
26
|
-
{ key: "E", description: "Toggle expert mode" },
|
|
27
|
-
{ key: "P", description: "Toggle plugin/local install mode" },
|
|
28
|
-
{ key: "?", description: "Toggle this help" }
|
|
29
|
-
]
|
|
24
|
+
title: "Toggles",
|
|
25
|
+
keys: [{ key: "?", description: "Toggle this help" }]
|
|
30
26
|
};
|
|
31
27
|
var BUILD_KEYS = {
|
|
32
28
|
title: "Build Step",
|
|
33
29
|
keys: [
|
|
34
30
|
{ key: "D", description: "Toggle compatibility labels" },
|
|
31
|
+
{ key: "S", description: "Toggle skill scope (project/global)" },
|
|
35
32
|
{ key: "A", description: "Accept stack defaults (stack path only)" },
|
|
36
33
|
{ key: "h/j/k/l", description: "Vim-style navigation" }
|
|
37
34
|
]
|
|
38
35
|
};
|
|
39
36
|
var SOURCES_KEYS = {
|
|
40
37
|
title: "Sources Step",
|
|
41
|
-
keys: [{ key: "
|
|
38
|
+
keys: [{ key: "S", description: "Toggle source settings" }]
|
|
42
39
|
};
|
|
43
40
|
var AGENTS_KEYS = {
|
|
44
41
|
title: "Agents Step",
|
|
@@ -87,4 +84,4 @@ var HelpModal = ({ currentStep }) => {
|
|
|
87
84
|
export {
|
|
88
85
|
HelpModal
|
|
89
86
|
};
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
87
|
+
//# sourceMappingURL=chunk-52XO4ULK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/help-modal.tsx"],"sourcesContent":["import { Box, Text } from \"ink\";\nimport React from \"react\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport type { WizardStep } from \"../../stores/wizard-store.js\";\n\ntype HelpSection = {\n title: string;\n keys: { key: string; description: string }[];\n};\n\nconst GLOBAL_KEYS: HelpSection = {\n title: \"Navigation\",\n keys: [\n { key: \"Arrow keys\", description: \"Move focus\" },\n { key: \"SPACE\", description: \"Toggle selection\" },\n { key: \"ENTER\", description: \"Confirm / continue\" },\n { key: \"ESC\", description: \"Go back\" },\n { key: \"TAB\", description: \"Jump to next section\" },\n ],\n};\n\nconst GLOBAL_TOGGLES: HelpSection = {\n title: \"Toggles\",\n keys: [{ key: \"?\", description: \"Toggle this help\" }],\n};\n\nconst BUILD_KEYS: HelpSection = {\n title: \"Build Step\",\n keys: [\n { key: \"D\", description: \"Toggle compatibility labels\" },\n { key: \"S\", description: \"Toggle skill scope (project/global)\" },\n { key: \"A\", description: \"Accept stack defaults (stack path only)\" },\n { key: \"h/j/k/l\", description: \"Vim-style navigation\" },\n ],\n};\n\nconst SOURCES_KEYS: HelpSection = {\n title: \"Sources Step\",\n keys: [{ key: \"S\", description: \"Toggle source settings\" }],\n};\n\nconst AGENTS_KEYS: HelpSection = {\n title: \"Agents Step\",\n keys: [],\n};\n\nconst STEP_SECTIONS: Partial<Record<WizardStep, HelpSection>> = {\n build: BUILD_KEYS,\n sources: SOURCES_KEYS,\n agents: AGENTS_KEYS,\n};\n\nconst KEY_COLUMN_WIDTH = 14;\n\ntype HelpSectionViewProps = {\n section: HelpSection;\n};\n\nconst HelpSectionView: React.FC<HelpSectionViewProps> = ({ section }) => (\n <Box flexDirection=\"column\" marginTop={1} marginBottom={1}>\n <Text bold>{section.title}</Text>\n {section.keys.map(({ key, description }) => (\n <Box key={key} marginTop={1}>\n <Box width={KEY_COLUMN_WIDTH}>\n <Text backgroundColor=\"black\" color={CLI_COLORS.UNFOCUSED}>\n {\" \"}\n {key}{\" \"}\n </Text>\n </Box>\n <Text>{description}</Text>\n </Box>\n ))}\n </Box>\n);\n\nexport type HelpModalProps = {\n currentStep: WizardStep;\n};\n\nexport const HelpModal: React.FC<HelpModalProps> = ({ currentStep }) => {\n const stepSection = STEP_SECTIONS[currentStep];\n\n return (\n <Box\n flexDirection=\"column\"\n borderStyle=\"single\"\n borderColor={CLI_COLORS.PRIMARY}\n paddingX={2}\n paddingY={1}\n marginTop={1}\n >\n <Text bold color={CLI_COLORS.PRIMARY}>\n Keyboard Shortcuts\n </Text>\n <Text> </Text>\n\n <HelpSectionView section={GLOBAL_KEYS} />\n <HelpSectionView section={GLOBAL_TOGGLES} />\n {stepSection && <HelpSectionView section={stepSection} />}\n\n <Text dimColor>Press ESC or ? to close</Text>\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;AAAA,SAAS,KAAK,YAAY;AA4DtB,cAIM,YAJN;AAlDJ,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,MAAM;AAAA,IACJ,EAAE,KAAK,cAAc,aAAa,aAAa;AAAA,IAC/C,EAAE,KAAK,SAAS,aAAa,mBAAmB;AAAA,IAChD,EAAE,KAAK,SAAS,aAAa,qBAAqB;AAAA,IAClD,EAAE,KAAK,OAAO,aAAa,UAAU;AAAA,IACrC,EAAE,KAAK,OAAO,aAAa,uBAAuB;AAAA,EACpD;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,OAAO;AAAA,EACP,MAAM,CAAC,EAAE,KAAK,KAAK,aAAa,mBAAmB,CAAC;AACtD;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,MAAM;AAAA,IACJ,EAAE,KAAK,KAAK,aAAa,8BAA8B;AAAA,IACvD,EAAE,KAAK,KAAK,aAAa,sCAAsC;AAAA,IAC/D,EAAE,KAAK,KAAK,aAAa,0CAA0C;AAAA,IACnE,EAAE,KAAK,WAAW,aAAa,uBAAuB;AAAA,EACxD;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,OAAO;AAAA,EACP,MAAM,CAAC,EAAE,KAAK,KAAK,aAAa,yBAAyB,CAAC;AAC5D;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,MAAM,CAAC;AACT;AAEA,IAAM,gBAA0D;AAAA,EAC9D,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AACV;AAEA,IAAM,mBAAmB;AAMzB,IAAM,kBAAkD,CAAC,EAAE,QAAQ,MACjE,qBAAC,OAAI,eAAc,UAAS,WAAW,GAAG,cAAc,GACtD;AAAA,sBAAC,QAAK,MAAI,MAAE,kBAAQ,OAAM;AAAA,EACzB,QAAQ,KAAK,IAAI,CAAC,EAAE,KAAK,YAAY,MACpC,qBAAC,OAAc,WAAW,GACxB;AAAA,wBAAC,OAAI,OAAO,kBACV,+BAAC,QAAK,iBAAgB,SAAQ,OAAO,WAAW,WAC7C;AAAA;AAAA,MACA;AAAA,MAAK;AAAA,OACR,GACF;AAAA,IACA,oBAAC,QAAM,uBAAY;AAAA,OAPX,GAQV,CACD;AAAA,GACH;AAOK,IAAM,YAAsC,CAAC,EAAE,YAAY,MAAM;AACtE,QAAM,cAAc,cAAc,WAAW;AAE7C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,aAAY;AAAA,MACZ,aAAa,WAAW;AAAA,MACxB,UAAU;AAAA,MACV,UAAU;AAAA,MACV,WAAW;AAAA,MAEX;AAAA,4BAAC,QAAK,MAAI,MAAC,OAAO,WAAW,SAAS,gCAEtC;AAAA,QACA,oBAAC,QAAK,eAAC;AAAA,QAEP,oBAAC,mBAAgB,SAAS,aAAa;AAAA,QACvC,oBAAC,mBAAgB,SAAS,gBAAgB;AAAA,QACzC,eAAe,oBAAC,mBAAgB,SAAS,aAAa;AAAA,QAEvD,oBAAC,QAAK,UAAQ,MAAC,qCAAuB;AAAA;AAAA;AAAA,EACxC;AAEJ;","names":[]}
|