agents-inc 0.152.1 → 0.154.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/README.md +31 -35
- package/dist/{chunk-FVDKAVOL.js → chunk-2IMYK4WN.js} +18 -51
- package/dist/chunk-2IMYK4WN.js.map +1 -0
- package/dist/{chunk-PMM2MYMA.js → chunk-4VCWL2IG.js} +649 -357
- package/dist/chunk-4VCWL2IG.js.map +1 -0
- package/dist/{chunk-PZIZNMHK.js → chunk-5MFJ24VM.js} +237 -150
- package/dist/chunk-5MFJ24VM.js.map +1 -0
- package/dist/{chunk-KXYVJGJP.js → chunk-6CNRMCFM.js} +3 -2
- package/dist/{chunk-KXYVJGJP.js.map → chunk-6CNRMCFM.js.map} +1 -1
- package/dist/chunk-7VZV4O6B.js +40 -0
- package/dist/chunk-7VZV4O6B.js.map +1 -0
- package/dist/{chunk-SX5H6TSC.js → chunk-AKQ5QISO.js} +11 -8
- package/dist/chunk-AKQ5QISO.js.map +1 -0
- package/dist/{chunk-BNSRA6HL.js → chunk-AURY6RT6.js} +39 -176
- package/dist/chunk-AURY6RT6.js.map +1 -0
- package/dist/{chunk-LZ52XEPR.js → chunk-B66SC72V.js} +7 -6
- package/dist/chunk-B66SC72V.js.map +1 -0
- package/dist/{chunk-LASI35KT.js → chunk-BZ4CZBOM.js} +14 -28
- package/dist/chunk-BZ4CZBOM.js.map +1 -0
- package/dist/chunk-CBF4ZYV3.js +18540 -0
- package/dist/chunk-CBF4ZYV3.js.map +1 -0
- package/dist/{chunk-5GUOIJSG.js → chunk-CHNA5RVS.js} +3 -15
- package/dist/chunk-CHNA5RVS.js.map +1 -0
- package/dist/{chunk-LDP5ASDM.js → chunk-DRKSYJZ2.js} +2 -19
- package/dist/chunk-DRKSYJZ2.js.map +1 -0
- package/dist/chunk-FMYHWKGG.js +325 -0
- package/dist/chunk-FMYHWKGG.js.map +1 -0
- package/dist/{chunk-SKQWRUPX.js → chunk-GUDGCFSF.js} +59 -33
- package/dist/chunk-GUDGCFSF.js.map +1 -0
- package/dist/{chunk-WKTHWQKM.js → chunk-IPJOMAWC.js} +5070 -6305
- package/dist/chunk-IPJOMAWC.js.map +1 -0
- package/dist/chunk-IXEDSKMH.js +48 -0
- package/dist/chunk-IXEDSKMH.js.map +1 -0
- package/dist/{chunk-TUPYW2IQ.js → chunk-JC7DBPRD.js} +9 -12
- package/dist/chunk-JC7DBPRD.js.map +1 -0
- package/dist/{chunk-ZL7PFNHN.js → chunk-K3O3YQYG.js} +2 -2
- package/dist/{chunk-QRDTLVXG.js → chunk-LA3JPESW.js} +9 -22
- package/dist/chunk-LA3JPESW.js.map +1 -0
- package/dist/{chunk-MWG4VU64.js → chunk-MJFIO5SX.js} +50 -74
- package/dist/chunk-MJFIO5SX.js.map +1 -0
- package/dist/{chunk-L7SZXUBJ.js → chunk-NFH6SA62.js} +7 -6
- package/dist/{chunk-L7SZXUBJ.js.map → chunk-NFH6SA62.js.map} +1 -1
- package/dist/{chunk-GRVKW3CC.js → chunk-NKCY2ULI.js} +3 -2
- package/dist/{chunk-GRVKW3CC.js.map → chunk-NKCY2ULI.js.map} +1 -1
- package/dist/{chunk-TJJPWUMA.js → chunk-NSJ2S7R5.js} +3 -2
- package/dist/{chunk-TJJPWUMA.js.map → chunk-NSJ2S7R5.js.map} +1 -1
- package/dist/{chunk-Q2KG7UV3.js → chunk-OJJLYHM3.js} +2 -1
- package/dist/{chunk-Q2KG7UV3.js.map → chunk-OJJLYHM3.js.map} +1 -1
- package/dist/{chunk-MJ2KHG24.js → chunk-ONWEOS77.js} +6 -6
- package/dist/{chunk-MJ2KHG24.js.map → chunk-ONWEOS77.js.map} +1 -1
- package/dist/{chunk-NR3OZGL4.js → chunk-OZXAJNLA.js} +2 -1
- package/dist/{chunk-NR3OZGL4.js.map → chunk-OZXAJNLA.js.map} +1 -1
- package/dist/{chunk-QZZJFYUQ.js → chunk-PRJD5MMQ.js} +3 -3
- package/dist/chunk-PRJD5MMQ.js.map +1 -0
- package/dist/{chunk-MM7CTTAV.js → chunk-Q5FLW4JG.js} +2 -2
- package/dist/{chunk-MM7CTTAV.js.map → chunk-Q5FLW4JG.js.map} +1 -1
- package/dist/{chunk-5UWKOOIS.js → chunk-QQTYMW7N.js} +131 -209
- package/dist/chunk-QQTYMW7N.js.map +1 -0
- package/dist/{chunk-MVR3SYMN.js → chunk-QUDQTO3O.js} +4 -3
- package/dist/{chunk-MVR3SYMN.js.map → chunk-QUDQTO3O.js.map} +1 -1
- package/dist/{chunk-76ADG7LQ.js → chunk-R54KIGN2.js} +8 -22
- package/dist/chunk-R54KIGN2.js.map +1 -0
- package/dist/{chunk-XHUODHZ4.js → chunk-R7JV22QK.js} +22 -49
- package/dist/chunk-R7JV22QK.js.map +1 -0
- package/dist/{chunk-E5X6RJ4E.js → chunk-TUQF577Z.js} +56 -53
- package/dist/chunk-TUQF577Z.js.map +1 -0
- package/dist/{chunk-IHUY4M22.js → chunk-UW44KSYL.js} +4 -4
- package/dist/{chunk-DTSG5XZB.js → chunk-V3ENMW7G.js} +3 -3
- package/dist/chunk-VZRO7RYT.js +3694 -0
- package/dist/chunk-VZRO7RYT.js.map +1 -0
- package/dist/{chunk-MQ7FLIYS.js → chunk-WRRP47PY.js} +3 -2
- package/dist/{chunk-MQ7FLIYS.js.map → chunk-WRRP47PY.js.map} +1 -1
- package/dist/{chunk-RNJWAKMO.js → chunk-XGMOXMS4.js} +9 -8
- package/dist/chunk-XGMOXMS4.js.map +1 -0
- package/dist/{chunk-STMHDOZD.js → chunk-XMEIVWAS.js} +12 -9
- package/dist/chunk-XMEIVWAS.js.map +1 -0
- package/dist/{chunk-IUQBOCSU.js → chunk-ZBPEFQ4G.js} +2 -1
- package/dist/{chunk-IUQBOCSU.js.map → chunk-ZBPEFQ4G.js.map} +1 -1
- package/dist/chunk-ZU6DAR4S.js +223 -0
- package/dist/chunk-ZU6DAR4S.js.map +1 -0
- package/dist/commands/build/marketplace.js +115 -35
- package/dist/commands/build/marketplace.js.map +1 -1
- package/dist/commands/build/plugins.js +9 -10
- package/dist/commands/build/plugins.js.map +1 -1
- package/dist/commands/compile.js +135 -70
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/doctor.js +793 -64
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +231 -236
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +24 -39
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/init.js +41 -46
- package/dist/commands/list.js +10 -12
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/search.js +35 -88
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +212 -167
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +82 -332
- package/dist/commands/update.js.map +1 -1
- package/dist/components/common/confirm.js +1 -1
- package/dist/components/common/prompt-confirm.js +1 -1
- package/dist/components/common/select-list.js +2 -2
- package/dist/components/common/spinner.js +1 -1
- package/dist/components/wizard/category-grid.js +5 -6
- package/dist/components/wizard/checkbox-grid.js +5 -6
- package/dist/components/wizard/domain-selection.js +12 -13
- package/dist/components/wizard/run-wizard-session.js +30 -36
- package/dist/components/wizard/scroll-affordance.js +2 -2
- package/dist/components/wizard/skill-agent-summary.js +7 -7
- package/dist/components/wizard/source-grid.js +6 -11
- package/dist/components/wizard/stack-selection.js +9 -9
- package/dist/components/wizard/step-agents.js +12 -12
- package/dist/components/wizard/step-build.js +10 -11
- package/dist/components/wizard/step-confirm.js +11 -11
- package/dist/components/wizard/step-sources.js +11 -17
- package/dist/components/wizard/step-stack.js +10 -10
- package/dist/components/wizard/summary-panel.js +10 -10
- package/dist/components/wizard/toast.js +2 -2
- package/dist/components/wizard/wizard-layout.js +15 -16
- package/dist/components/wizard/wizard-tabs.js +6 -12
- package/dist/components/wizard/wizard.js +29 -35
- package/dist/config-exports.js +1 -1
- package/dist/copy-local-skills-WVHJFRPK.js +14 -0
- package/dist/hooks/init.js +49 -48
- package/dist/hooks/init.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/load-agent-defs-5OT54J5M.js +15 -0
- package/dist/{loader-5JP4S7CJ.js → loader-JIZDTR4G.js} +7 -5
- package/dist/recompile-project-agents-VREEPBDV.js +20 -0
- package/dist/{source-loader-MZYCPL2S.js → source-loader-OE6EJFPU.js} +6 -6
- package/dist/src/agents/developer/ai-developer/identity.md +4 -4
- package/dist/src/agents/developer/ai-developer/playbook.md +1 -1
- package/dist/src/agents/developer/api-developer/identity.md +4 -4
- package/dist/src/agents/developer/api-developer/metadata.yaml +1 -1
- package/dist/src/agents/developer/cli-developer/identity.md +4 -4
- package/dist/src/agents/developer/web-developer/identity.md +2 -2
- package/dist/src/agents/developer/web-developer/metadata.yaml +1 -1
- package/dist/src/agents/meta/agent-summoner/identity.md +4 -5
- package/dist/src/agents/meta/agent-summoner/output.md +2 -2
- package/dist/src/agents/meta/agent-summoner/playbook.md +15 -16
- package/dist/src/agents/meta/codex-keeper/identity.md +4 -4
- package/dist/src/agents/meta/codex-keeper/playbook.md +1 -1
- package/dist/src/agents/meta/convention-keeper/identity.md +1 -1
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +0 -34
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +27 -3
- package/dist/src/agents/meta/skill-summoner/identity.md +2 -2
- package/{src/agents/planning/web-pm → dist/src/agents/planning/pm}/critical-reminders.md +10 -7
- package/dist/src/agents/planning/{web-pm → pm}/critical-requirements.md +8 -4
- package/dist/src/agents/planning/pm/identity.md +47 -0
- package/dist/src/agents/planning/pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/{web-pm → pm}/output.md +7 -90
- package/dist/src/agents/planning/pm/playbook.md +185 -0
- package/dist/src/agents/researcher/ai-researcher/critical-reminders.md +58 -0
- package/dist/src/agents/researcher/ai-researcher/critical-requirements.md +40 -0
- package/dist/src/agents/researcher/ai-researcher/identity.md +86 -0
- package/dist/src/agents/researcher/ai-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/ai-researcher/output.md +363 -0
- package/dist/src/agents/researcher/ai-researcher/playbook.md +545 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +16 -0
- package/dist/src/agents/researcher/api-researcher/identity.md +7 -7
- package/dist/src/agents/researcher/cli-researcher/critical-reminders.md +50 -0
- package/dist/src/agents/researcher/cli-researcher/critical-requirements.md +36 -0
- package/dist/src/agents/researcher/cli-researcher/identity.md +87 -0
- package/dist/src/agents/researcher/cli-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/cli-researcher/output.md +343 -0
- package/dist/src/agents/researcher/cli-researcher/playbook.md +370 -0
- package/dist/src/agents/researcher/web-researcher/identity.md +5 -6
- package/dist/src/agents/reviewer/reviewer/critical-reminders.md +29 -0
- package/dist/src/agents/reviewer/reviewer/critical-requirements.md +31 -0
- package/dist/src/agents/reviewer/reviewer/identity.md +41 -0
- package/dist/src/agents/reviewer/reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/reviewer/output.md +202 -0
- package/dist/src/agents/reviewer/reviewer/playbook.md +141 -0
- package/dist/src/agents/tester/ai-tester/critical-reminders.md +48 -0
- package/dist/src/agents/tester/ai-tester/critical-requirements.md +49 -0
- package/dist/src/agents/tester/ai-tester/identity.md +62 -0
- package/dist/src/agents/tester/ai-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/ai-tester/output.md +375 -0
- package/dist/src/agents/tester/ai-tester/playbook.md +789 -0
- package/dist/src/agents/tester/api-tester/identity.md +3 -3
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +3 -3
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +2 -2
- package/dist/src/agents/tester/cli-tester/identity.md +3 -3
- package/dist/src/agents/tester/cli-tester/output.md +4 -4
- package/dist/src/agents/tester/cli-tester/playbook.md +3 -3
- package/dist/src/agents/tester/web-tester/identity.md +3 -3
- package/dist/stores/wizard-store.js +8 -6
- package/package.json +13 -2
- package/src/agents/developer/ai-developer/identity.md +4 -4
- package/src/agents/developer/ai-developer/playbook.md +1 -1
- package/src/agents/developer/api-developer/identity.md +4 -4
- package/src/agents/developer/api-developer/metadata.yaml +1 -1
- package/src/agents/developer/cli-developer/identity.md +4 -4
- package/src/agents/developer/web-developer/identity.md +2 -2
- package/src/agents/developer/web-developer/metadata.yaml +1 -1
- package/src/agents/meta/agent-summoner/identity.md +4 -5
- package/src/agents/meta/agent-summoner/output.md +2 -2
- package/src/agents/meta/agent-summoner/playbook.md +15 -16
- package/src/agents/meta/codex-keeper/identity.md +4 -4
- package/src/agents/meta/codex-keeper/playbook.md +1 -1
- package/src/agents/meta/convention-keeper/identity.md +1 -1
- package/src/agents/meta/skill-summoner/critical-reminders.md +0 -34
- package/src/agents/meta/skill-summoner/critical-requirements.md +27 -3
- package/src/agents/meta/skill-summoner/identity.md +2 -2
- package/{dist/src/agents/planning/web-pm → src/agents/planning/pm}/critical-reminders.md +10 -7
- package/src/agents/planning/{web-pm → pm}/critical-requirements.md +8 -4
- package/src/agents/planning/pm/identity.md +47 -0
- package/src/agents/planning/pm/metadata.yaml +12 -0
- package/src/agents/planning/{web-pm → pm}/output.md +7 -90
- package/src/agents/planning/pm/playbook.md +185 -0
- package/src/agents/researcher/ai-researcher/critical-reminders.md +58 -0
- package/src/agents/researcher/ai-researcher/critical-requirements.md +40 -0
- package/src/agents/researcher/ai-researcher/identity.md +86 -0
- package/src/agents/researcher/ai-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/ai-researcher/output.md +363 -0
- package/src/agents/researcher/ai-researcher/playbook.md +545 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +16 -0
- package/src/agents/researcher/api-researcher/identity.md +7 -7
- package/src/agents/researcher/cli-researcher/critical-reminders.md +50 -0
- package/src/agents/researcher/cli-researcher/critical-requirements.md +36 -0
- package/src/agents/researcher/cli-researcher/identity.md +87 -0
- package/src/agents/researcher/cli-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/cli-researcher/output.md +343 -0
- package/src/agents/researcher/cli-researcher/playbook.md +370 -0
- package/src/agents/researcher/web-researcher/identity.md +5 -6
- package/src/agents/reviewer/reviewer/critical-reminders.md +29 -0
- package/src/agents/reviewer/reviewer/critical-requirements.md +31 -0
- package/src/agents/reviewer/reviewer/identity.md +41 -0
- package/src/agents/reviewer/reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/reviewer/output.md +202 -0
- package/src/agents/reviewer/reviewer/playbook.md +141 -0
- package/src/agents/tester/ai-tester/critical-reminders.md +48 -0
- package/src/agents/tester/ai-tester/critical-requirements.md +49 -0
- package/src/agents/tester/ai-tester/identity.md +62 -0
- package/src/agents/tester/ai-tester/metadata.yaml +12 -0
- package/src/agents/tester/ai-tester/output.md +375 -0
- package/src/agents/tester/ai-tester/playbook.md +789 -0
- package/src/agents/tester/api-tester/identity.md +3 -3
- package/src/agents/tester/cli-tester/critical-reminders.md +3 -3
- package/src/agents/tester/cli-tester/critical-requirements.md +2 -2
- package/src/agents/tester/cli-tester/identity.md +3 -3
- package/src/agents/tester/cli-tester/output.md +4 -4
- package/src/agents/tester/cli-tester/playbook.md +3 -3
- package/src/agents/tester/web-tester/identity.md +3 -3
- package/src/schemas/metadata.schema.json +31 -2
- package/src/schemas/plugin.schema.json +3 -0
- package/src/schemas/project-config.schema.json +61 -15
- package/src/schemas/project-source-config.schema.json +0 -47
- package/dist/chunk-5GUOIJSG.js.map +0 -1
- package/dist/chunk-5UWKOOIS.js.map +0 -1
- package/dist/chunk-76ADG7LQ.js.map +0 -1
- package/dist/chunk-BNSRA6HL.js.map +0 -1
- package/dist/chunk-E5X6RJ4E.js.map +0 -1
- package/dist/chunk-EEPELKOM.js +0 -5938
- package/dist/chunk-EEPELKOM.js.map +0 -1
- package/dist/chunk-F7T5AFFN.js +0 -20
- package/dist/chunk-F7T5AFFN.js.map +0 -1
- package/dist/chunk-FVDKAVOL.js.map +0 -1
- package/dist/chunk-KFB5CRXZ.js +0 -377
- package/dist/chunk-KFB5CRXZ.js.map +0 -1
- package/dist/chunk-KR65TPKC.js +0 -664
- package/dist/chunk-KR65TPKC.js.map +0 -1
- package/dist/chunk-LASI35KT.js.map +0 -1
- package/dist/chunk-LDP5ASDM.js.map +0 -1
- package/dist/chunk-LZ52XEPR.js.map +0 -1
- package/dist/chunk-M7HO7NBK.js +0 -88
- package/dist/chunk-M7HO7NBK.js.map +0 -1
- package/dist/chunk-MWG4VU64.js.map +0 -1
- package/dist/chunk-ODNDXQH2.js +0 -77
- package/dist/chunk-ODNDXQH2.js.map +0 -1
- package/dist/chunk-P44SXVH3.js +0 -80
- package/dist/chunk-P44SXVH3.js.map +0 -1
- package/dist/chunk-PMM2MYMA.js.map +0 -1
- package/dist/chunk-PZIZNMHK.js.map +0 -1
- package/dist/chunk-Q45ZU6HD.js +0 -37
- package/dist/chunk-Q45ZU6HD.js.map +0 -1
- package/dist/chunk-QRDTLVXG.js.map +0 -1
- package/dist/chunk-QZZJFYUQ.js.map +0 -1
- package/dist/chunk-R5NOI2LP.js +0 -170
- package/dist/chunk-R5NOI2LP.js.map +0 -1
- package/dist/chunk-RNJWAKMO.js.map +0 -1
- package/dist/chunk-SBHBBZKF.js +0 -284
- package/dist/chunk-SBHBBZKF.js.map +0 -1
- package/dist/chunk-SKQWRUPX.js.map +0 -1
- package/dist/chunk-STMHDOZD.js.map +0 -1
- package/dist/chunk-SX5H6TSC.js.map +0 -1
- package/dist/chunk-TUPYW2IQ.js.map +0 -1
- package/dist/chunk-UBEDZ4FD.js +0 -4198
- package/dist/chunk-UBEDZ4FD.js.map +0 -1
- package/dist/chunk-VY6MNOXL.js +0 -20
- package/dist/chunk-VY6MNOXL.js.map +0 -1
- package/dist/chunk-WBCPLH66.js +0 -42
- package/dist/chunk-WBCPLH66.js.map +0 -1
- package/dist/chunk-WKTHWQKM.js.map +0 -1
- package/dist/chunk-XHUODHZ4.js.map +0 -1
- package/dist/chunk-ZPPHXXAP.js +0 -252
- package/dist/chunk-ZPPHXXAP.js.map +0 -1
- package/dist/commands/import/skill.js +0 -344
- package/dist/commands/import/skill.js.map +0 -1
- package/dist/commands/new/agent.js +0 -300
- package/dist/commands/new/agent.js.map +0 -1
- package/dist/commands/new/marketplace.js +0 -310
- package/dist/commands/new/marketplace.js.map +0 -1
- package/dist/commands/new/skill.js +0 -26
- package/dist/commands/validate.js +0 -575
- package/dist/commands/validate.js.map +0 -1
- package/dist/components/wizard/search-modal.js +0 -13
- package/dist/components/wizard/selection-card.js +0 -9
- package/dist/components/wizard/step-settings.js +0 -18
- package/dist/copy-local-skills-6EMVN7RB.js +0 -14
- package/dist/load-agent-defs-BWOUVEAR.js +0 -15
- package/dist/load-agent-defs-BWOUVEAR.js.map +0 -1
- package/dist/loader-5JP4S7CJ.js.map +0 -1
- package/dist/recompile-project-agents-6DL45TDI.js +0 -19
- package/dist/recompile-project-agents-6DL45TDI.js.map +0 -1
- package/dist/source-loader-MZYCPL2S.js.map +0 -1
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +0 -48
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +0 -65
- package/dist/src/agents/developer/web-architecture/identity.md +0 -64
- package/dist/src/agents/developer/web-architecture/metadata.yaml +0 -12
- package/dist/src/agents/developer/web-architecture/output.md +0 -449
- package/dist/src/agents/developer/web-architecture/playbook.md +0 -481
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +0 -71
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +0 -31
- package/dist/src/agents/pattern/pattern-scout/identity.md +0 -25
- package/dist/src/agents/pattern/pattern-scout/metadata.yaml +0 -10
- package/dist/src/agents/pattern/pattern-scout/output.md +0 -290
- package/dist/src/agents/pattern/pattern-scout/playbook.md +0 -1806
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +0 -30
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +0 -28
- package/dist/src/agents/pattern/web-pattern-critique/identity.md +0 -41
- package/dist/src/agents/pattern/web-pattern-critique/metadata.yaml +0 -12
- package/dist/src/agents/pattern/web-pattern-critique/output.md +0 -314
- package/dist/src/agents/pattern/web-pattern-critique/playbook.md +0 -572
- package/dist/src/agents/planning/api-pm/critical-reminders.md +0 -48
- package/dist/src/agents/planning/api-pm/critical-requirements.md +0 -41
- package/dist/src/agents/planning/api-pm/identity.md +0 -39
- package/dist/src/agents/planning/api-pm/metadata.yaml +0 -12
- package/dist/src/agents/planning/api-pm/output.md +0 -475
- package/dist/src/agents/planning/api-pm/playbook.md +0 -129
- package/dist/src/agents/planning/web-pm/identity.md +0 -26
- package/dist/src/agents/planning/web-pm/metadata.yaml +0 -12
- package/dist/src/agents/planning/web-pm/playbook.md +0 -318
- package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +0 -40
- package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +0 -37
- package/dist/src/agents/reviewer/ai-reviewer/identity.md +0 -51
- package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +0 -10
- package/dist/src/agents/reviewer/ai-reviewer/output.md +0 -395
- package/dist/src/agents/reviewer/ai-reviewer/playbook.md +0 -90
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +0 -31
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +0 -27
- package/dist/src/agents/reviewer/api-reviewer/identity.md +0 -51
- package/dist/src/agents/reviewer/api-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/api-reviewer/output.md +0 -343
- package/dist/src/agents/reviewer/api-reviewer/playbook.md +0 -288
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +0 -33
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +0 -30
- package/dist/src/agents/reviewer/cli-reviewer/identity.md +0 -44
- package/dist/src/agents/reviewer/cli-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/cli-reviewer/output.md +0 -414
- package/dist/src/agents/reviewer/cli-reviewer/playbook.md +0 -218
- package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +0 -38
- package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +0 -38
- package/dist/src/agents/reviewer/infra-reviewer/identity.md +0 -53
- package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +0 -10
- package/dist/src/agents/reviewer/infra-reviewer/output.md +0 -364
- package/dist/src/agents/reviewer/infra-reviewer/playbook.md +0 -161
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +0 -31
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +0 -26
- package/dist/src/agents/reviewer/web-reviewer/identity.md +0 -40
- package/dist/src/agents/reviewer/web-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/web-reviewer/output.md +0 -333
- package/dist/src/agents/reviewer/web-reviewer/playbook.md +0 -156
- package/src/agents/developer/web-architecture/critical-reminders.md +0 -48
- package/src/agents/developer/web-architecture/critical-requirements.md +0 -65
- package/src/agents/developer/web-architecture/identity.md +0 -64
- package/src/agents/developer/web-architecture/metadata.yaml +0 -12
- package/src/agents/developer/web-architecture/output.md +0 -449
- package/src/agents/developer/web-architecture/playbook.md +0 -481
- package/src/agents/pattern/pattern-scout/critical-reminders.md +0 -71
- package/src/agents/pattern/pattern-scout/critical-requirements.md +0 -31
- package/src/agents/pattern/pattern-scout/identity.md +0 -25
- package/src/agents/pattern/pattern-scout/metadata.yaml +0 -10
- package/src/agents/pattern/pattern-scout/output.md +0 -290
- package/src/agents/pattern/pattern-scout/playbook.md +0 -1806
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +0 -30
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +0 -28
- package/src/agents/pattern/web-pattern-critique/identity.md +0 -41
- package/src/agents/pattern/web-pattern-critique/metadata.yaml +0 -12
- package/src/agents/pattern/web-pattern-critique/output.md +0 -314
- package/src/agents/pattern/web-pattern-critique/playbook.md +0 -572
- package/src/agents/planning/api-pm/critical-reminders.md +0 -48
- package/src/agents/planning/api-pm/critical-requirements.md +0 -41
- package/src/agents/planning/api-pm/identity.md +0 -39
- package/src/agents/planning/api-pm/metadata.yaml +0 -12
- package/src/agents/planning/api-pm/output.md +0 -475
- package/src/agents/planning/api-pm/playbook.md +0 -129
- package/src/agents/planning/web-pm/identity.md +0 -26
- package/src/agents/planning/web-pm/metadata.yaml +0 -12
- package/src/agents/planning/web-pm/playbook.md +0 -318
- package/src/agents/reviewer/ai-reviewer/critical-reminders.md +0 -40
- package/src/agents/reviewer/ai-reviewer/critical-requirements.md +0 -37
- package/src/agents/reviewer/ai-reviewer/identity.md +0 -51
- package/src/agents/reviewer/ai-reviewer/metadata.yaml +0 -10
- package/src/agents/reviewer/ai-reviewer/output.md +0 -395
- package/src/agents/reviewer/ai-reviewer/playbook.md +0 -90
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +0 -31
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +0 -27
- package/src/agents/reviewer/api-reviewer/identity.md +0 -51
- package/src/agents/reviewer/api-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/api-reviewer/output.md +0 -343
- package/src/agents/reviewer/api-reviewer/playbook.md +0 -288
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +0 -33
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +0 -30
- package/src/agents/reviewer/cli-reviewer/identity.md +0 -44
- package/src/agents/reviewer/cli-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/cli-reviewer/output.md +0 -414
- package/src/agents/reviewer/cli-reviewer/playbook.md +0 -218
- package/src/agents/reviewer/infra-reviewer/critical-reminders.md +0 -38
- package/src/agents/reviewer/infra-reviewer/critical-requirements.md +0 -38
- package/src/agents/reviewer/infra-reviewer/identity.md +0 -53
- package/src/agents/reviewer/infra-reviewer/metadata.yaml +0 -10
- package/src/agents/reviewer/infra-reviewer/output.md +0 -364
- package/src/agents/reviewer/infra-reviewer/playbook.md +0 -161
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +0 -31
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +0 -26
- package/src/agents/reviewer/web-reviewer/identity.md +0 -40
- package/src/agents/reviewer/web-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/web-reviewer/output.md +0 -333
- package/src/agents/reviewer/web-reviewer/playbook.md +0 -156
- /package/dist/{chunk-ZL7PFNHN.js.map → chunk-K3O3YQYG.js.map} +0 -0
- /package/dist/{chunk-IHUY4M22.js.map → chunk-UW44KSYL.js.map} +0 -0
- /package/dist/{chunk-DTSG5XZB.js.map → chunk-V3ENMW7G.js.map} +0 -0
- /package/dist/{commands/new/skill.js.map → copy-local-skills-WVHJFRPK.js.map} +0 -0
- /package/dist/{components/wizard/search-modal.js.map → load-agent-defs-5OT54J5M.js.map} +0 -0
- /package/dist/{components/wizard/selection-card.js.map → loader-JIZDTR4G.js.map} +0 -0
- /package/dist/{components/wizard/step-settings.js.map → recompile-project-agents-VREEPBDV.js.map} +0 -0
- /package/dist/{copy-local-skills-6EMVN7RB.js.map → source-loader-OE6EJFPU.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,63 @@ Each release has detailed notes in its own file under [`changelogs/`](./changelo
|
|
|
7
7
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
8
8
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
9
9
|
|
|
10
|
+
## [0.154.0] - 2026-08-10
|
|
11
|
+
|
|
12
|
+
**The wizard stops reaching through the lock**
|
|
13
|
+
|
|
14
|
+
- A skill's `metadata.yaml` category now reaches the marketplace it is published to, so `build marketplace` stops reporting every plugin as uncategorized (CLI-481)
|
|
15
|
+
- A skill that reaches no sub-agent says so, at both the wizard and `compile` (CLI-491)
|
|
16
|
+
- Generated files order themselves, so a re-emit is a fixed point and an unchanged agent stops being rewritten (CLI-478)
|
|
17
|
+
- The Sources step's bulk install-mode hotkeys are withdrawn: in a project edit they rewrote inherited global rows the per-row toggle deliberately cannot reach, and really installed plugins (CLI-479)
|
|
18
|
+
- Project configurations carry the project's own name (CLI-482)
|
|
19
|
+
- Uninstall promises exactly what it removes — one plan, rendered and executed (CLI-494)
|
|
20
|
+
- One operation owns removing sub-agents and tidying their directory (CLI-495)
|
|
21
|
+
- The removal plan is honest when the configuration cannot be read: the compiled agents are named as kept, and why (CLI-470)
|
|
22
|
+
- Emptied `.claude/skills/` and `.claude/agents/` are removed, and a project-only install stops pre-creating an empty global agents directory (CLI-480)
|
|
23
|
+
- A sub-agent moved from global to project scope keeps its skill catalogue — it was silently shrinking from seven skills to four (CLI-483)
|
|
24
|
+
- `list` counts the plugin skills a project owns, instead of reporting `Skills: 0` from a project directory (CLI-484)
|
|
25
|
+
- `init` names the configuration that actually holds the agent-skill assignments (CLI-485)
|
|
26
|
+
- A refusal no longer paints over a live loading spinner (CLI-486)
|
|
27
|
+
- A moved source is downloaded once per run, not once per load — a full duplicate tarball for `github:` sources (CLI-487)
|
|
28
|
+
- The home root stops calling the global configuration a project one, in `compile`, `edit` and `doctor` (CLI-488)
|
|
29
|
+
- The plugin-to-eject direction of a mode switch reports the copies it made (CLI-489)
|
|
30
|
+
- `search` names the skill and the source it found, in the columns whose headers claim them (CLI-490)
|
|
31
|
+
|
|
32
|
+
See [changelogs/0.154.0.md](./changelogs/0.154.0.md) for full details.
|
|
33
|
+
|
|
34
|
+
## [0.153.0] - 2026-08-09
|
|
35
|
+
|
|
36
|
+
**One marketplace at a time**
|
|
37
|
+
|
|
38
|
+
- Sources revalidate by ETag — one conditional request per source per process, stale-if-error offline, ~1.15s when current (CLI-465)
|
|
39
|
+
- Skill relationship rules cover the full catalog, replayed by one contract-scenario table in every consumer (CLI-389)
|
|
40
|
+
- Preload defaults derive from the catalog at load time; the generated stack-preloads artifact is gone (CLI-390)
|
|
41
|
+
- 28 user journeys documented with four assertion surfaces, and the e2e suite audited to drive them from scratch (CLI-444)
|
|
42
|
+
- `update` wraps `claude plugin update` — plugin skills update in place, sub-agents keep their pointers, ejected skills untouched (CLI-428)
|
|
43
|
+
- Stacks scope to the source that declares them; a stackless custom source gets no stack step (CLI-451)
|
|
44
|
+
- `--source` narrows to `init`; every other command reads the configured source (CLI-466)
|
|
45
|
+
- One PM serves every domain, parameterized by skills (CLI-398)
|
|
46
|
+
- One reviewer serves every domain, same shape (CLI-399)
|
|
47
|
+
- The agent roster sheds retired agents and dangling cross-references (CLI-400)
|
|
48
|
+
- `pretest` builds, so a green `npm test` describes the current source (CLI-457)
|
|
49
|
+
- turbo already hashes the matrix dependency into the build key — measured, disproven as a bug, recorded in turbo.json (CLI-458)
|
|
50
|
+
- A direct `vitest run` refuses a stale dist outright via globalSetup (CLI-460)
|
|
51
|
+
- A project compile stays inside the project — no more writes to the global install or other registered projects (CLI-438)
|
|
52
|
+
- A fresh pick during a project edit defaults global and stays overridable (CLI-442)
|
|
53
|
+
- Removing the project half of a dual-scope pair removes exactly that half (CLI-443)
|
|
54
|
+
- A stack's declared sub-agent roster is what installs (CLI-441)
|
|
55
|
+
- Plugin banners render identically on init and edit (CLI-439)
|
|
56
|
+
- The propagated-recompile summary reports what actually recompiled (CLI-440)
|
|
57
|
+
- Unparseable local skill metadata is a hard error with the file named (CLI-445)
|
|
58
|
+
- Schema-invalid metadata dies just as loudly; edit refuses it, doctor validates content (CLI-446)
|
|
59
|
+
- Built-in relationship rules narrow to the marketplace being loaded — 2384 spurious warnings on custom sources go to zero (CLI-471)
|
|
60
|
+
- Source switching is removed; the CLI models one marketplace at a time (CLI-450)
|
|
61
|
+
- `import`, `new` and `validate` retire with the feature flags that hid them (CLI-452)
|
|
62
|
+
- Dead operational helpers deleted (CLI-459)
|
|
63
|
+
- The dead stack installer deleted with its suites (CLI-461)
|
|
64
|
+
|
|
65
|
+
See [changelogs/0.153.0.md](./changelogs/0.153.0.md) for full details.
|
|
66
|
+
|
|
10
67
|
## [0.152.1] - 2026-08-06
|
|
11
68
|
|
|
12
69
|
**The README's documentation links work again**
|
package/README.md
CHANGED
|
@@ -67,32 +67,33 @@ npx agents-inc init
|
|
|
67
67
|
|
|
68
68
|
## Skills
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
| Domain
|
|
73
|
-
|
|
|
74
|
-
| Web
|
|
75
|
-
| API
|
|
76
|
-
| AI
|
|
77
|
-
| Mobile
|
|
78
|
-
|
|
|
79
|
-
|
|
|
80
|
-
|
|
|
70
|
+
Over 200 skills across 9 domains:
|
|
71
|
+
|
|
72
|
+
| Domain | Skills |
|
|
73
|
+
| ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
74
|
+
| Web | React, Vue, Angular, Svelte, SolidJS, Next.js, Remix, Nuxt, SvelteKit, Astro, Qwik, Tailwind, SCSS Modules, Zustand, Redux, Pinia, Vitest, Playwright, Storybook, and more |
|
|
75
|
+
| API | Hono, Express, Fastify, NestJS, Elysia, Drizzle, Prisma, PostgreSQL, MongoDB, Redis, Stripe, and more |
|
|
76
|
+
| AI | Anthropic SDK, OpenAI SDK, Vercel AI SDK, LangChain, LlamaIndex, Pinecone, ChromaDB, and more |
|
|
77
|
+
| Mobile | React Native, Expo |
|
|
78
|
+
| Desktop | Tauri, Electron, Electron Forge, electron-updater |
|
|
79
|
+
| CLI | oclif + Ink, Commander, Clack |
|
|
80
|
+
| Infra | Docker, GitHub Actions, Cloudflare Workers |
|
|
81
|
+
| Shared | Turborepo, ESLint + Prettier, Code Reviewing, Auth Security |
|
|
82
|
+
| Meta | Research Methodology, CLI Reviewing |
|
|
81
83
|
|
|
82
84
|
Browse the full catalog on the [Plugin Marketplace](https://github.com/agents-inc/skills).
|
|
83
85
|
|
|
84
86
|
## Subagents
|
|
85
87
|
|
|
86
|
-
| Category
|
|
87
|
-
|
|
|
88
|
-
| Developers
|
|
89
|
-
|
|
|
90
|
-
| Testers
|
|
91
|
-
| Researchers
|
|
92
|
-
| Planning
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
| Meta | `skill-summoner` `agent-summoner` `convention-keeper` |
|
|
88
|
+
| Category | Subagents |
|
|
89
|
+
| ------------- | --------------------------------------------------------------------------------------- |
|
|
90
|
+
| Developers | `web-developer` `api-developer` `cli-developer` `ai-developer` |
|
|
91
|
+
| Reviewer | `reviewer` — one cross-domain reviewer; domain checklists via `meta-reviewing-*` skills |
|
|
92
|
+
| Testers | `web-tester` `api-tester` `cli-tester` `ai-tester` |
|
|
93
|
+
| Researchers | `web-researcher` `api-researcher` `cli-researcher` `ai-researcher` |
|
|
94
|
+
| Planning | `pm` — one cross-domain planner; domain frameworks via `meta-planning-*` skills |
|
|
95
|
+
| Documentation | `codex-keeper` |
|
|
96
|
+
| Meta | `skill-summoner` `agent-summoner` `convention-keeper` |
|
|
96
97
|
|
|
97
98
|
Each subagent is composed from modular partials (role, workflow, output format) plus its assigned skills. Everything is ejectable.
|
|
98
99
|
|
|
@@ -105,18 +106,14 @@ Each subagent is composed from modular partials (role, workflow, output format)
|
|
|
105
106
|
| `init` | Interactive setup wizard: pick a stack, customize skills, compile subagents |
|
|
106
107
|
| `edit` | Modify skill selection via the interactive wizard |
|
|
107
108
|
| `compile` | Recompile subagents after changes |
|
|
108
|
-
| `update` |
|
|
109
|
+
| `update` | Refresh the marketplaces this installation uses (ejected skills are yours) |
|
|
109
110
|
| `search` | Search skills across all sources |
|
|
110
111
|
|
|
111
112
|
### Customization
|
|
112
113
|
|
|
113
|
-
| Command
|
|
114
|
-
|
|
|
115
|
-
| `eject <type>`
|
|
116
|
-
| `import skill` | Import a skill from an external GitHub repository |
|
|
117
|
-
| `new skill` | (IN PROGRESS) Scaffold a new local skill |
|
|
118
|
-
| `new agent` | (IN PROGRESS) Scaffold a new custom subagent |
|
|
119
|
-
| `new marketplace` | (IN PROGRESS) Scaffold a new marketplace project |
|
|
114
|
+
| Command | Description |
|
|
115
|
+
| -------------- | ------------------------------------------------------------------------- |
|
|
116
|
+
| `eject <type>` | Export for customization (`agent-partials`, `templates`, `skills`, `all`) |
|
|
120
117
|
|
|
121
118
|
### Build
|
|
122
119
|
|
|
@@ -127,12 +124,11 @@ Each subagent is composed from modular partials (role, workflow, output format)
|
|
|
127
124
|
|
|
128
125
|
### Diagnostics
|
|
129
126
|
|
|
130
|
-
| Command | Description
|
|
131
|
-
| ----------- |
|
|
132
|
-
| `doctor` |
|
|
133
|
-
| `list` | Show installed skills and agents
|
|
134
|
-
| `
|
|
135
|
-
| `uninstall` | Remove Agents Inc from your project |
|
|
127
|
+
| Command | Description |
|
|
128
|
+
| ----------- | ------------------------------------------------------------- |
|
|
129
|
+
| `doctor` | Validate installed content, then diagnose the install's state |
|
|
130
|
+
| `list` | Show installed skills and agents |
|
|
131
|
+
| `uninstall` | Remove Agents Inc from your project |
|
|
136
132
|
|
|
137
133
|
Run `agents-inc --help` for full usage, or see the [full commands reference](https://github.com/agents-inc/agents-inc/blob/main/apps/www/src/content/docs/docs/reference/commands.md).
|
|
138
134
|
|
|
@@ -2,26 +2,25 @@
|
|
|
2
2
|
import {
|
|
3
3
|
useMeasuredHeight
|
|
4
4
|
} from "./chunk-TSIU7DME.js";
|
|
5
|
-
import {
|
|
6
|
-
useRowScroll
|
|
7
|
-
} from "./chunk-DTSG5XZB.js";
|
|
8
5
|
import {
|
|
9
6
|
useKeyboardNavigation
|
|
10
7
|
} from "./chunk-XVAQG2CV.js";
|
|
8
|
+
import {
|
|
9
|
+
useRowScroll
|
|
10
|
+
} from "./chunk-V3ENMW7G.js";
|
|
11
11
|
import {
|
|
12
12
|
useWizardStore
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-QQTYMW7N.js";
|
|
14
14
|
import {
|
|
15
15
|
matrix
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-IPJOMAWC.js";
|
|
17
17
|
import {
|
|
18
18
|
typedKeys
|
|
19
19
|
} from "./chunk-VASLW636.js";
|
|
20
20
|
import {
|
|
21
21
|
CLI_COLORS,
|
|
22
|
-
DEFAULT_SCRATCH_DOMAINS,
|
|
23
22
|
UI_SYMBOLS
|
|
24
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-R54KIGN2.js";
|
|
25
24
|
|
|
26
25
|
// src/cli/components/wizard/stack-selection.tsx
|
|
27
26
|
import { groupBy } from "remeda";
|
|
@@ -46,13 +45,13 @@ function compareGroupLabels(a, b) {
|
|
|
46
45
|
function groupStacks(stacks) {
|
|
47
46
|
const byLabel = groupBy(stacks, (stack) => stack.group || void 0);
|
|
48
47
|
const ungrouped = stacks.filter((stack) => !stack.group).map(toStackItem);
|
|
49
|
-
const
|
|
50
|
-
if (
|
|
48
|
+
const labelled = Object.entries(byLabel).sort(([a], [b]) => compareGroupLabels(a, b));
|
|
49
|
+
if (labelled.length === 0) {
|
|
51
50
|
return [{ label: "", items: ungrouped }];
|
|
52
51
|
}
|
|
53
|
-
const groups =
|
|
52
|
+
const groups = labelled.map(([label, stacksInGroup]) => ({
|
|
54
53
|
label,
|
|
55
|
-
items:
|
|
54
|
+
items: stacksInGroup.map(toStackItem)
|
|
56
55
|
}));
|
|
57
56
|
return ungrouped.length > 0 ? [...groups, { label: OTHER_FRAMEWORKS_LABEL, items: ungrouped }] : groups;
|
|
58
57
|
}
|
|
@@ -74,8 +73,8 @@ function isRowFocused(row, focusedId) {
|
|
|
74
73
|
var StackRow = ({ item, isFocused }) => {
|
|
75
74
|
const pointer = isFocused ? UI_SYMBOLS.CHEVRON : UI_SYMBOLS.CHEVRON_SPACER;
|
|
76
75
|
return /* @__PURE__ */ jsx(Box, { flexShrink: 0, children: /* @__PURE__ */ jsxs(Text, { children: [
|
|
77
|
-
/* @__PURE__ */ jsx(Text, { color:
|
|
78
|
-
/* @__PURE__ */ jsxs(Text, { color:
|
|
76
|
+
/* @__PURE__ */ jsx(Text, { ...isFocused && { color: CLI_COLORS.PRIMARY }, children: pointer }),
|
|
77
|
+
/* @__PURE__ */ jsxs(Text, { ...isFocused && { color: CLI_COLORS.PRIMARY }, bold: isFocused, children: [
|
|
79
78
|
" ",
|
|
80
79
|
item.name
|
|
81
80
|
] }),
|
|
@@ -88,8 +87,8 @@ var StackRow = ({ item, isFocused }) => {
|
|
|
88
87
|
var ScratchRow = ({ isFocused }) => {
|
|
89
88
|
const pointer = isFocused ? UI_SYMBOLS.CHEVRON : UI_SYMBOLS.CHEVRON_SPACER;
|
|
90
89
|
return /* @__PURE__ */ jsx(Box, { flexShrink: 0, children: /* @__PURE__ */ jsxs(Text, { children: [
|
|
91
|
-
/* @__PURE__ */ jsx(Text, { color:
|
|
92
|
-
/* @__PURE__ */ jsxs(Text, { color:
|
|
90
|
+
/* @__PURE__ */ jsx(Text, { ...isFocused && { color: CLI_COLORS.PRIMARY }, children: pointer }),
|
|
91
|
+
/* @__PURE__ */ jsxs(Text, { ...isFocused && { color: CLI_COLORS.PRIMARY }, bold: isFocused, children: [
|
|
93
92
|
" ",
|
|
94
93
|
SCRATCH_LABEL
|
|
95
94
|
] }),
|
|
@@ -106,7 +105,7 @@ var StackSelection = ({ onCancel }) => {
|
|
|
106
105
|
setStackAction,
|
|
107
106
|
populateFromSkillIds,
|
|
108
107
|
preselectAgentsFromStack,
|
|
109
|
-
|
|
108
|
+
startFromScratch,
|
|
110
109
|
setStep
|
|
111
110
|
} = useWizardStore();
|
|
112
111
|
const stacks = matrix.suggestedStacks;
|
|
@@ -114,7 +113,7 @@ var StackSelection = ({ onCancel }) => {
|
|
|
114
113
|
const rows = useMemo(() => buildStackRows(groups), [groups]);
|
|
115
114
|
const focusableIds = useMemo(() => buildFocusableIds(groups), [groups]);
|
|
116
115
|
const { focusedIndex } = useKeyboardNavigation(focusableIds.length, {
|
|
117
|
-
onEscape: onCancel,
|
|
116
|
+
...onCancel !== void 0 && { onEscape: onCancel },
|
|
118
117
|
onEnter: (index) => handleSelect(focusableIds[index] ?? "scratch")
|
|
119
118
|
});
|
|
120
119
|
const focusedId = focusableIds[focusedIndex] ?? "scratch";
|
|
@@ -128,39 +127,6 @@ var StackSelection = ({ onCancel }) => {
|
|
|
128
127
|
itemCount: rows.length,
|
|
129
128
|
availableHeight: listHeight
|
|
130
129
|
});
|
|
131
|
-
function restoreGlobalAgentPreselections() {
|
|
132
|
-
const globalAgentPre = useWizardStore.getState().globalAgentPreselections;
|
|
133
|
-
if (globalAgentPre) {
|
|
134
|
-
useWizardStore.setState({
|
|
135
|
-
selectedAgents: globalAgentPre.agents,
|
|
136
|
-
agentConfigs: globalAgentPre.configs
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
function preselectGlobalSkills() {
|
|
141
|
-
const globalPreselections = useWizardStore.getState().globalPreselections;
|
|
142
|
-
if (globalPreselections?.length) {
|
|
143
|
-
populateFromSkillIds(
|
|
144
|
-
globalPreselections.map((s) => s.id),
|
|
145
|
-
globalPreselections
|
|
146
|
-
);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
function addScratchDomains() {
|
|
150
|
-
for (const domain of DEFAULT_SCRATCH_DOMAINS) {
|
|
151
|
-
if (!useWizardStore.getState().selectedDomains.includes(domain)) {
|
|
152
|
-
toggleDomain(domain);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
function startFromScratch() {
|
|
157
|
-
selectStack(null);
|
|
158
|
-
setApproach("scratch");
|
|
159
|
-
restoreGlobalAgentPreselections();
|
|
160
|
-
preselectGlobalSkills();
|
|
161
|
-
addScratchDomains();
|
|
162
|
-
setStep("domains");
|
|
163
|
-
}
|
|
164
130
|
function applyStack(stack) {
|
|
165
131
|
selectStack(stack.id);
|
|
166
132
|
setStackAction("customize");
|
|
@@ -176,6 +142,7 @@ var StackSelection = ({ onCancel }) => {
|
|
|
176
142
|
function handleSelect(selectedId) {
|
|
177
143
|
if (selectedId === "scratch") {
|
|
178
144
|
startFromScratch();
|
|
145
|
+
setStep("domains");
|
|
179
146
|
return;
|
|
180
147
|
}
|
|
181
148
|
const focusedStack = stacks.find((s) => s.id === selectedId);
|
|
@@ -228,4 +195,4 @@ var StackSelection = ({ onCancel }) => {
|
|
|
228
195
|
export {
|
|
229
196
|
StackSelection
|
|
230
197
|
};
|
|
231
|
-
//# sourceMappingURL=chunk-
|
|
198
|
+
//# sourceMappingURL=chunk-2IMYK4WN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/stack-selection.tsx"],"sourcesContent":["import { groupBy } from \"remeda\";\nimport { useKeyboardNavigation } from \"../hooks/use-keyboard-navigation.js\";\nimport { Box, Text } from \"ink\";\nimport React, { useMemo } from \"react\";\nimport { CLI_COLORS, UI_SYMBOLS } from \"../../consts.js\";\nimport { matrix } from \"../../lib/matrix/matrix-provider.js\";\nimport { useWizardStore } from \"../../stores/wizard-store.js\";\nimport { useMeasuredHeight } from \"../hooks/use-measured-height.js\";\nimport { useRowScroll } from \"../hooks/use-row-scroll.js\";\n\nimport type { AgentName, ResolvedStack } from \"../../types/index.js\";\nimport { typedKeys } from \"../../utils/typed-object.js\";\n\ntype StackItem = Pick<ResolvedStack, \"id\" | \"name\" | \"description\">;\ntype StackGroup = { label: string; items: StackItem[] };\n/** A focusable row id: a stack id, or the \"scratch\" sentinel for the \"Start from scratch\" row. */\ntype FocusId = string;\n\nconst OTHER_FRAMEWORKS_LABEL = \"Other Frameworks\";\nconst GROUP_ORDER: string[] = [\"React\", \"CLI\"];\nconst SCRATCH_LABEL = \"Start from scratch\";\nconst SCRATCH_DESCRIPTION = \"Select domains and skills manually\";\n\ntype GroupableStack = Pick<ResolvedStack, \"id\" | \"name\" | \"description\" | \"group\">;\n\nfunction toStackItem(stack: GroupableStack): StackItem {\n return { id: stack.id, name: stack.name, description: stack.description };\n}\n\n/** GROUP_ORDER labels first (in order), then unknown labels alphabetically. */\nfunction compareGroupLabels(a: string, b: string): number {\n const ai = GROUP_ORDER.indexOf(a);\n const bi = GROUP_ORDER.indexOf(b);\n if (ai !== -1 && bi !== -1) return ai - bi;\n if (ai !== -1) return -1;\n if (bi !== -1) return 1;\n return a.localeCompare(b);\n}\n\nfunction groupStacks(stacks: GroupableStack[]): StackGroup[] {\n // `|| undefined` keeps an empty-string group ungrouped; groupBy drops undefined keys.\n const byLabel = groupBy(stacks, (stack) => stack.group || undefined);\n const ungrouped = stacks.filter((stack) => !stack.group).map(toStackItem);\n\n // No explicit groups — flat list, no headers\n const labelled = Object.entries(byLabel).sort(([a], [b]) => compareGroupLabels(a, b));\n if (labelled.length === 0) {\n return [{ label: \"\", items: ungrouped }];\n }\n\n const groups = labelled.map(([label, stacksInGroup]) => ({\n label,\n items: stacksInGroup.map(toStackItem),\n }));\n return ungrouped.length > 0\n ? [...groups, { label: OTHER_FRAMEWORKS_LABEL, items: ungrouped }]\n : groups;\n}\n\nfunction buildFocusableIds(groups: StackGroup[]): FocusId[] {\n return [...groups.flatMap((g) => g.items.map((i) => i.id)), \"scratch\"];\n}\n\ntype StackListRow =\n | { type: \"header\"; label: string }\n | { type: \"spacer\" }\n | { type: \"stack\"; item: StackItem }\n | { type: \"scratch\" };\n\n/** One row per rendered line — headers, spacers, stack items, then the scratch row. */\nfunction buildStackRows(groups: StackGroup[]): StackListRow[] {\n const groupRows = groups.flatMap((group, groupIndex): StackListRow[] => [\n ...(groupIndex > 0 ? [{ type: \"spacer\" as const }] : []),\n ...(group.label ? [{ type: \"header\" as const, label: group.label }] : []),\n ...group.items.map((item): StackListRow => ({ type: \"stack\", item })),\n ]);\n return [...groupRows, { type: \"spacer\" }, { type: \"scratch\" }];\n}\n\nfunction isRowFocused(row: StackListRow, focusedId: FocusId): boolean {\n if (row.type === \"stack\") return row.item.id === focusedId;\n return row.type === \"scratch\" && focusedId === \"scratch\";\n}\n\nconst StackRow: React.FC<{ item: StackItem; isFocused: boolean }> = ({ item, isFocused }) => {\n const pointer = isFocused ? UI_SYMBOLS.CHEVRON : UI_SYMBOLS.CHEVRON_SPACER;\n return (\n <Box flexShrink={0}>\n <Text>\n <Text {...(isFocused && { color: CLI_COLORS.PRIMARY })}>{pointer}</Text>\n <Text {...(isFocused && { color: CLI_COLORS.PRIMARY })} bold={isFocused}>\n {\" \"}\n {item.name}\n </Text>\n <Text dimColor>\n {\" \"}\n {item.description}\n </Text>\n </Text>\n </Box>\n );\n};\n\nconst ScratchRow: React.FC<{ isFocused: boolean }> = ({ isFocused }) => {\n const pointer = isFocused ? UI_SYMBOLS.CHEVRON : UI_SYMBOLS.CHEVRON_SPACER;\n return (\n <Box flexShrink={0}>\n <Text>\n <Text {...(isFocused && { color: CLI_COLORS.PRIMARY })}>{pointer}</Text>\n <Text {...(isFocused && { color: CLI_COLORS.PRIMARY })} bold={isFocused}>\n {\" \"}\n {SCRATCH_LABEL}\n </Text>\n <Text dimColor>\n {\" \"}\n {SCRATCH_DESCRIPTION}\n </Text>\n </Text>\n </Box>\n );\n};\n\nexport type StackSelectionProps = {\n onCancel?: (() => void) | undefined;\n};\n\nexport const StackSelection: React.FC<StackSelectionProps> = ({ onCancel }) => {\n const {\n selectStack,\n setApproach,\n setStackAction,\n populateFromSkillIds,\n preselectAgentsFromStack,\n startFromScratch,\n setStep,\n } = useWizardStore();\n\n const stacks = matrix.suggestedStacks;\n const groups = useMemo(() => groupStacks(stacks), [stacks]);\n const rows = useMemo(() => buildStackRows(groups), [groups]);\n const focusableIds = useMemo(() => buildFocusableIds(groups), [groups]);\n\n const { focusedIndex } = useKeyboardNavigation(focusableIds.length, {\n ...(onCancel !== undefined && { onEscape: onCancel }),\n onEnter: (index) => handleSelect(focusableIds[index] ?? \"scratch\"),\n });\n const focusedId: FocusId = focusableIds[focusedIndex] ?? \"scratch\";\n const { ref: listRef, measuredHeight: listHeight } = useMeasuredHeight();\n\n const focusedVisualRow = useMemo(\n () => rows.findIndex((row) => isRowFocused(row, focusedId)),\n [rows, focusedId],\n );\n\n const { scrollEnabled, scrollTop } = useRowScroll({\n focusedIndex: focusedVisualRow,\n itemCount: rows.length,\n availableHeight: listHeight,\n });\n\n // The stack's own skills merged with the global preselections, and its agent\n // keys merged with the global agent preselections.\n function applyStack(stack: ResolvedStack): void {\n selectStack(stack.id);\n setStackAction(\"customize\");\n\n const stackAgents = typedKeys<AgentName>(stack.skills);\n preselectAgentsFromStack(stackAgents);\n\n const globalPreselections = useWizardStore.getState().globalPreselections;\n const globalIds = globalPreselections?.map((s) => s.id) ?? [];\n const mergedIds = [...new Set([...stack.allSkillIds, ...globalIds])];\n populateFromSkillIds(mergedIds, globalPreselections ?? undefined);\n\n setApproach(\"stack\");\n setStep(\"domains\");\n }\n\n function handleSelect(selectedId: FocusId): void {\n if (selectedId === \"scratch\") {\n startFromScratch();\n setStep(\"domains\");\n return;\n }\n\n const focusedStack = stacks.find((s) => s.id === selectedId);\n if (focusedStack) applyStack(focusedStack);\n }\n\n return (\n <Box ref={listRef} flexDirection=\"column\" flexGrow={1} flexBasis={0}>\n <Box\n flexDirection=\"column\"\n flexGrow={1}\n {...(scrollEnabled && { overflow: \"hidden\" as const })}\n >\n <Box\n flexDirection=\"column\"\n marginTop={scrollTop > 0 ? -scrollTop : 0}\n {...(scrollEnabled && { flexShrink: 0 })}\n >\n {rows.map((row, index) => {\n switch (row.type) {\n case \"spacer\":\n return (\n <Box key={`spacer-${index}`} flexShrink={0}>\n <Text> </Text>\n </Box>\n );\n case \"header\":\n return (\n <Box key={`header-${row.label}`} flexShrink={0}>\n <Text dimColor bold>\n {\" \"}\n {row.label}\n </Text>\n </Box>\n );\n case \"stack\":\n return (\n <StackRow\n key={row.item.id}\n item={row.item}\n isFocused={row.item.id === focusedId}\n />\n );\n case \"scratch\":\n return <ScratchRow key=\"scratch\" isFocused={focusedId === \"scratch\"} />;\n default: {\n const _exhaustive: never = row;\n return _exhaustive;\n }\n }\n })}\n </Box>\n </Box>\n </Box>\n );\n};\n"],"mappings":"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","names":[]}
|