agents-inc 0.152.1 → 0.153.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/README.md +31 -35
- package/dist/{chunk-LDP5ASDM.js → chunk-2HC2SNRP.js} +2 -15
- package/dist/chunk-2HC2SNRP.js.map +1 -0
- package/dist/{chunk-WKTHWQKM.js → chunk-35VOK7XE.js} +1338 -2573
- package/dist/chunk-35VOK7XE.js.map +1 -0
- package/dist/{chunk-SX5H6TSC.js → chunk-4VYALFQZ.js} +11 -8
- package/dist/chunk-4VYALFQZ.js.map +1 -0
- package/dist/{chunk-KXYVJGJP.js → chunk-6CNRMCFM.js} +3 -2
- package/dist/{chunk-KXYVJGJP.js.map → chunk-6CNRMCFM.js.map} +1 -1
- package/dist/{chunk-LZ52XEPR.js → chunk-ACKC577F.js} +7 -6
- package/dist/chunk-ACKC577F.js.map +1 -0
- package/dist/{chunk-XHUODHZ4.js → chunk-BMGBA6HJ.js} +22 -49
- package/dist/chunk-BMGBA6HJ.js.map +1 -0
- package/dist/{chunk-FVDKAVOL.js → chunk-EFU6P3B7.js} +18 -51
- package/dist/chunk-EFU6P3B7.js.map +1 -0
- package/dist/{chunk-STMHDOZD.js → chunk-F7Z5I6GU.js} +12 -9
- package/dist/chunk-F7Z5I6GU.js.map +1 -0
- package/dist/{chunk-E5X6RJ4E.js → chunk-FIHTAFST.js} +29 -26
- package/dist/chunk-FIHTAFST.js.map +1 -0
- package/dist/{chunk-QZZJFYUQ.js → chunk-FRWKCE6R.js} +3 -3
- package/dist/chunk-FRWKCE6R.js.map +1 -0
- package/dist/{chunk-5UWKOOIS.js → chunk-HEBPKK5L.js} +129 -195
- package/dist/chunk-HEBPKK5L.js.map +1 -0
- package/dist/{chunk-MJ2KHG24.js → chunk-IO4VEW5U.js} +6 -6
- package/dist/{chunk-MJ2KHG24.js.map → chunk-IO4VEW5U.js.map} +1 -1
- package/dist/{chunk-TUPYW2IQ.js → chunk-JC7DBPRD.js} +9 -12
- package/dist/chunk-JC7DBPRD.js.map +1 -0
- package/dist/{chunk-5GUOIJSG.js → chunk-JFAUQDZM.js} +3 -15
- package/dist/chunk-JFAUQDZM.js.map +1 -0
- package/dist/{chunk-ZL7PFNHN.js → chunk-K3O3YQYG.js} +2 -2
- package/dist/{chunk-SKQWRUPX.js → chunk-K7PJDWER.js} +59 -33
- package/dist/chunk-K7PJDWER.js.map +1 -0
- package/dist/{chunk-MVR3SYMN.js → chunk-KET3EVGX.js} +4 -3
- package/dist/{chunk-MVR3SYMN.js.map → chunk-KET3EVGX.js.map} +1 -1
- package/dist/{chunk-MWG4VU64.js → chunk-M5HSTNYU.js} +50 -56
- package/dist/chunk-M5HSTNYU.js.map +1 -0
- package/dist/{chunk-TJJPWUMA.js → chunk-NSJ2S7R5.js} +3 -2
- package/dist/{chunk-TJJPWUMA.js.map → chunk-NSJ2S7R5.js.map} +1 -1
- package/dist/{chunk-IHUY4M22.js → chunk-NXGMM5YN.js} +4 -4
- package/dist/chunk-NXQAY5U7.js +18441 -0
- package/dist/chunk-NXQAY5U7.js.map +1 -0
- package/dist/{chunk-Q2KG7UV3.js → chunk-OJJLYHM3.js} +2 -1
- package/dist/{chunk-Q2KG7UV3.js.map → chunk-OJJLYHM3.js.map} +1 -1
- package/dist/{chunk-PZIZNMHK.js → chunk-ORJ5Y222.js} +159 -138
- package/dist/chunk-ORJ5Y222.js.map +1 -0
- package/dist/{chunk-NR3OZGL4.js → chunk-OZXAJNLA.js} +2 -1
- package/dist/{chunk-NR3OZGL4.js.map → chunk-OZXAJNLA.js.map} +1 -1
- package/dist/{chunk-MM7CTTAV.js → chunk-Q5FLW4JG.js} +2 -2
- package/dist/{chunk-MM7CTTAV.js.map → chunk-Q5FLW4JG.js.map} +1 -1
- package/dist/{chunk-GRVKW3CC.js → chunk-R4SEU3DF.js} +3 -2
- package/dist/{chunk-GRVKW3CC.js.map → chunk-R4SEU3DF.js.map} +1 -1
- package/dist/{chunk-76ADG7LQ.js → chunk-R54KIGN2.js} +8 -22
- package/dist/chunk-R54KIGN2.js.map +1 -0
- package/dist/{chunk-SBHBBZKF.js → chunk-REKOWTIB.js} +25 -120
- package/dist/chunk-REKOWTIB.js.map +1 -0
- package/dist/chunk-TY6CAOL7.js +40 -0
- package/dist/chunk-TY6CAOL7.js.map +1 -0
- package/dist/{chunk-BNSRA6HL.js → chunk-U2DNAHFE.js} +39 -176
- package/dist/chunk-U2DNAHFE.js.map +1 -0
- package/dist/{chunk-PMM2MYMA.js → chunk-U2YSGBHA.js} +624 -349
- package/dist/chunk-U2YSGBHA.js.map +1 -0
- package/dist/{chunk-DTSG5XZB.js → chunk-V3ENMW7G.js} +3 -3
- package/dist/{chunk-L7SZXUBJ.js → chunk-VECFAKM5.js} +7 -6
- package/dist/{chunk-L7SZXUBJ.js.map → chunk-VECFAKM5.js.map} +1 -1
- package/dist/chunk-VGEBYCQZ.js +59 -0
- package/dist/chunk-VGEBYCQZ.js.map +1 -0
- package/dist/chunk-VZRO7RYT.js +3694 -0
- package/dist/chunk-VZRO7RYT.js.map +1 -0
- package/dist/{chunk-LASI35KT.js → chunk-WDAO3RUY.js} +14 -28
- package/dist/chunk-WDAO3RUY.js.map +1 -0
- package/dist/{chunk-MQ7FLIYS.js → chunk-WG6V6VJV.js} +3 -2
- package/dist/{chunk-MQ7FLIYS.js.map → chunk-WG6V6VJV.js.map} +1 -1
- package/dist/chunk-X5XJ6WKO.js +284 -0
- package/dist/chunk-X5XJ6WKO.js.map +1 -0
- package/dist/{chunk-RNJWAKMO.js → chunk-XGMOXMS4.js} +9 -8
- package/dist/chunk-XGMOXMS4.js.map +1 -0
- package/dist/{chunk-IUQBOCSU.js → chunk-ZBPEFQ4G.js} +2 -1
- package/dist/{chunk-IUQBOCSU.js.map → chunk-ZBPEFQ4G.js.map} +1 -1
- package/dist/{chunk-QRDTLVXG.js → chunk-ZNDLUWWD.js} +9 -22
- package/dist/chunk-ZNDLUWWD.js.map +1 -0
- package/dist/commands/build/marketplace.js +114 -35
- package/dist/commands/build/marketplace.js.map +1 -1
- package/dist/commands/build/plugins.js +9 -10
- package/dist/commands/build/plugins.js.map +1 -1
- package/dist/commands/compile.js +97 -70
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/doctor.js +793 -64
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +169 -208
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +24 -39
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/init.js +41 -46
- package/dist/commands/list.js +10 -12
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/search.js +20 -81
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +25 -31
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +82 -332
- package/dist/commands/update.js.map +1 -1
- package/dist/components/common/confirm.js +1 -1
- package/dist/components/common/prompt-confirm.js +1 -1
- package/dist/components/common/select-list.js +2 -2
- package/dist/components/common/spinner.js +1 -1
- package/dist/components/wizard/category-grid.js +5 -6
- package/dist/components/wizard/checkbox-grid.js +5 -6
- package/dist/components/wizard/domain-selection.js +12 -13
- package/dist/components/wizard/run-wizard-session.js +30 -36
- package/dist/components/wizard/scroll-affordance.js +2 -2
- package/dist/components/wizard/skill-agent-summary.js +7 -7
- package/dist/components/wizard/source-grid.js +6 -11
- package/dist/components/wizard/stack-selection.js +9 -9
- package/dist/components/wizard/step-agents.js +12 -12
- package/dist/components/wizard/step-build.js +10 -11
- package/dist/components/wizard/step-confirm.js +11 -11
- package/dist/components/wizard/step-sources.js +11 -17
- package/dist/components/wizard/step-stack.js +10 -10
- package/dist/components/wizard/summary-panel.js +10 -10
- package/dist/components/wizard/toast.js +2 -2
- package/dist/components/wizard/wizard-layout.js +15 -16
- package/dist/components/wizard/wizard-tabs.js +6 -12
- package/dist/components/wizard/wizard.js +29 -35
- package/dist/config-exports.js +1 -1
- package/dist/copy-local-skills-KF2RAVD3.js +14 -0
- package/dist/hooks/init.js +49 -48
- package/dist/hooks/init.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/load-agent-defs-DGXGBU3Q.js +15 -0
- package/dist/{loader-5JP4S7CJ.js → loader-4U7UCE2Y.js} +7 -5
- package/dist/recompile-project-agents-CJVBAWDJ.js +20 -0
- package/dist/{source-loader-MZYCPL2S.js → source-loader-ZNSYJJCI.js} +6 -6
- package/dist/src/agents/developer/ai-developer/identity.md +4 -4
- package/dist/src/agents/developer/ai-developer/playbook.md +1 -1
- package/dist/src/agents/developer/api-developer/identity.md +4 -4
- package/dist/src/agents/developer/api-developer/metadata.yaml +1 -1
- package/dist/src/agents/developer/cli-developer/identity.md +4 -4
- package/dist/src/agents/developer/web-developer/identity.md +2 -2
- package/dist/src/agents/developer/web-developer/metadata.yaml +1 -1
- package/dist/src/agents/meta/agent-summoner/identity.md +4 -5
- package/dist/src/agents/meta/agent-summoner/output.md +2 -2
- package/dist/src/agents/meta/agent-summoner/playbook.md +15 -16
- package/dist/src/agents/meta/codex-keeper/identity.md +4 -4
- package/dist/src/agents/meta/codex-keeper/playbook.md +1 -1
- package/dist/src/agents/meta/convention-keeper/identity.md +1 -1
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +0 -34
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +27 -3
- package/dist/src/agents/meta/skill-summoner/identity.md +2 -2
- package/{src/agents/planning/web-pm → dist/src/agents/planning/pm}/critical-reminders.md +10 -7
- package/dist/src/agents/planning/{web-pm → pm}/critical-requirements.md +8 -4
- package/dist/src/agents/planning/pm/identity.md +47 -0
- package/dist/src/agents/planning/pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/{web-pm → pm}/output.md +7 -90
- package/dist/src/agents/planning/pm/playbook.md +185 -0
- package/dist/src/agents/researcher/ai-researcher/critical-reminders.md +58 -0
- package/dist/src/agents/researcher/ai-researcher/critical-requirements.md +40 -0
- package/dist/src/agents/researcher/ai-researcher/identity.md +86 -0
- package/dist/src/agents/researcher/ai-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/ai-researcher/output.md +363 -0
- package/dist/src/agents/researcher/ai-researcher/playbook.md +545 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +16 -0
- package/dist/src/agents/researcher/api-researcher/identity.md +7 -7
- package/dist/src/agents/researcher/cli-researcher/critical-reminders.md +50 -0
- package/dist/src/agents/researcher/cli-researcher/critical-requirements.md +36 -0
- package/dist/src/agents/researcher/cli-researcher/identity.md +87 -0
- package/dist/src/agents/researcher/cli-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/cli-researcher/output.md +343 -0
- package/dist/src/agents/researcher/cli-researcher/playbook.md +370 -0
- package/dist/src/agents/researcher/web-researcher/identity.md +5 -6
- package/dist/src/agents/reviewer/reviewer/critical-reminders.md +29 -0
- package/dist/src/agents/reviewer/reviewer/critical-requirements.md +31 -0
- package/dist/src/agents/reviewer/reviewer/identity.md +41 -0
- package/dist/src/agents/reviewer/reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/reviewer/output.md +202 -0
- package/dist/src/agents/reviewer/reviewer/playbook.md +141 -0
- package/dist/src/agents/tester/ai-tester/critical-reminders.md +48 -0
- package/dist/src/agents/tester/ai-tester/critical-requirements.md +49 -0
- package/dist/src/agents/tester/ai-tester/identity.md +62 -0
- package/dist/src/agents/tester/ai-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/ai-tester/output.md +375 -0
- package/dist/src/agents/tester/ai-tester/playbook.md +789 -0
- package/dist/src/agents/tester/api-tester/identity.md +3 -3
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +3 -3
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +2 -2
- package/dist/src/agents/tester/cli-tester/identity.md +3 -3
- package/dist/src/agents/tester/cli-tester/output.md +4 -4
- package/dist/src/agents/tester/cli-tester/playbook.md +3 -3
- package/dist/src/agents/tester/web-tester/identity.md +3 -3
- package/dist/stores/wizard-store.js +8 -6
- package/package.json +13 -2
- package/src/agents/developer/ai-developer/identity.md +4 -4
- package/src/agents/developer/ai-developer/playbook.md +1 -1
- package/src/agents/developer/api-developer/identity.md +4 -4
- package/src/agents/developer/api-developer/metadata.yaml +1 -1
- package/src/agents/developer/cli-developer/identity.md +4 -4
- package/src/agents/developer/web-developer/identity.md +2 -2
- package/src/agents/developer/web-developer/metadata.yaml +1 -1
- package/src/agents/meta/agent-summoner/identity.md +4 -5
- package/src/agents/meta/agent-summoner/output.md +2 -2
- package/src/agents/meta/agent-summoner/playbook.md +15 -16
- package/src/agents/meta/codex-keeper/identity.md +4 -4
- package/src/agents/meta/codex-keeper/playbook.md +1 -1
- package/src/agents/meta/convention-keeper/identity.md +1 -1
- package/src/agents/meta/skill-summoner/critical-reminders.md +0 -34
- package/src/agents/meta/skill-summoner/critical-requirements.md +27 -3
- package/src/agents/meta/skill-summoner/identity.md +2 -2
- package/{dist/src/agents/planning/web-pm → src/agents/planning/pm}/critical-reminders.md +10 -7
- package/src/agents/planning/{web-pm → pm}/critical-requirements.md +8 -4
- package/src/agents/planning/pm/identity.md +47 -0
- package/src/agents/planning/pm/metadata.yaml +12 -0
- package/src/agents/planning/{web-pm → pm}/output.md +7 -90
- package/src/agents/planning/pm/playbook.md +185 -0
- package/src/agents/researcher/ai-researcher/critical-reminders.md +58 -0
- package/src/agents/researcher/ai-researcher/critical-requirements.md +40 -0
- package/src/agents/researcher/ai-researcher/identity.md +86 -0
- package/src/agents/researcher/ai-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/ai-researcher/output.md +363 -0
- package/src/agents/researcher/ai-researcher/playbook.md +545 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +16 -0
- package/src/agents/researcher/api-researcher/identity.md +7 -7
- package/src/agents/researcher/cli-researcher/critical-reminders.md +50 -0
- package/src/agents/researcher/cli-researcher/critical-requirements.md +36 -0
- package/src/agents/researcher/cli-researcher/identity.md +87 -0
- package/src/agents/researcher/cli-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/cli-researcher/output.md +343 -0
- package/src/agents/researcher/cli-researcher/playbook.md +370 -0
- package/src/agents/researcher/web-researcher/identity.md +5 -6
- package/src/agents/reviewer/reviewer/critical-reminders.md +29 -0
- package/src/agents/reviewer/reviewer/critical-requirements.md +31 -0
- package/src/agents/reviewer/reviewer/identity.md +41 -0
- package/src/agents/reviewer/reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/reviewer/output.md +202 -0
- package/src/agents/reviewer/reviewer/playbook.md +141 -0
- package/src/agents/tester/ai-tester/critical-reminders.md +48 -0
- package/src/agents/tester/ai-tester/critical-requirements.md +49 -0
- package/src/agents/tester/ai-tester/identity.md +62 -0
- package/src/agents/tester/ai-tester/metadata.yaml +12 -0
- package/src/agents/tester/ai-tester/output.md +375 -0
- package/src/agents/tester/ai-tester/playbook.md +789 -0
- package/src/agents/tester/api-tester/identity.md +3 -3
- package/src/agents/tester/cli-tester/critical-reminders.md +3 -3
- package/src/agents/tester/cli-tester/critical-requirements.md +2 -2
- package/src/agents/tester/cli-tester/identity.md +3 -3
- package/src/agents/tester/cli-tester/output.md +4 -4
- package/src/agents/tester/cli-tester/playbook.md +3 -3
- package/src/agents/tester/web-tester/identity.md +3 -3
- package/src/schemas/metadata.schema.json +31 -2
- package/src/schemas/project-config.schema.json +61 -15
- package/src/schemas/project-source-config.schema.json +0 -47
- package/dist/chunk-5GUOIJSG.js.map +0 -1
- package/dist/chunk-5UWKOOIS.js.map +0 -1
- package/dist/chunk-76ADG7LQ.js.map +0 -1
- package/dist/chunk-BNSRA6HL.js.map +0 -1
- package/dist/chunk-E5X6RJ4E.js.map +0 -1
- package/dist/chunk-EEPELKOM.js +0 -5938
- package/dist/chunk-EEPELKOM.js.map +0 -1
- package/dist/chunk-F7T5AFFN.js +0 -20
- package/dist/chunk-F7T5AFFN.js.map +0 -1
- package/dist/chunk-FVDKAVOL.js.map +0 -1
- package/dist/chunk-KFB5CRXZ.js +0 -377
- package/dist/chunk-KFB5CRXZ.js.map +0 -1
- package/dist/chunk-KR65TPKC.js +0 -664
- package/dist/chunk-KR65TPKC.js.map +0 -1
- package/dist/chunk-LASI35KT.js.map +0 -1
- package/dist/chunk-LDP5ASDM.js.map +0 -1
- package/dist/chunk-LZ52XEPR.js.map +0 -1
- package/dist/chunk-M7HO7NBK.js +0 -88
- package/dist/chunk-M7HO7NBK.js.map +0 -1
- package/dist/chunk-MWG4VU64.js.map +0 -1
- package/dist/chunk-ODNDXQH2.js +0 -77
- package/dist/chunk-ODNDXQH2.js.map +0 -1
- package/dist/chunk-P44SXVH3.js +0 -80
- package/dist/chunk-P44SXVH3.js.map +0 -1
- package/dist/chunk-PMM2MYMA.js.map +0 -1
- package/dist/chunk-PZIZNMHK.js.map +0 -1
- package/dist/chunk-Q45ZU6HD.js +0 -37
- package/dist/chunk-Q45ZU6HD.js.map +0 -1
- package/dist/chunk-QRDTLVXG.js.map +0 -1
- package/dist/chunk-QZZJFYUQ.js.map +0 -1
- package/dist/chunk-R5NOI2LP.js +0 -170
- package/dist/chunk-R5NOI2LP.js.map +0 -1
- package/dist/chunk-RNJWAKMO.js.map +0 -1
- package/dist/chunk-SBHBBZKF.js.map +0 -1
- package/dist/chunk-SKQWRUPX.js.map +0 -1
- package/dist/chunk-STMHDOZD.js.map +0 -1
- package/dist/chunk-SX5H6TSC.js.map +0 -1
- package/dist/chunk-TUPYW2IQ.js.map +0 -1
- package/dist/chunk-UBEDZ4FD.js +0 -4198
- package/dist/chunk-UBEDZ4FD.js.map +0 -1
- package/dist/chunk-VY6MNOXL.js +0 -20
- package/dist/chunk-VY6MNOXL.js.map +0 -1
- package/dist/chunk-WBCPLH66.js +0 -42
- package/dist/chunk-WBCPLH66.js.map +0 -1
- package/dist/chunk-WKTHWQKM.js.map +0 -1
- package/dist/chunk-XHUODHZ4.js.map +0 -1
- package/dist/chunk-ZPPHXXAP.js +0 -252
- package/dist/chunk-ZPPHXXAP.js.map +0 -1
- package/dist/commands/import/skill.js +0 -344
- package/dist/commands/import/skill.js.map +0 -1
- package/dist/commands/new/agent.js +0 -300
- package/dist/commands/new/agent.js.map +0 -1
- package/dist/commands/new/marketplace.js +0 -310
- package/dist/commands/new/marketplace.js.map +0 -1
- package/dist/commands/new/skill.js +0 -26
- package/dist/commands/validate.js +0 -575
- package/dist/commands/validate.js.map +0 -1
- package/dist/components/wizard/search-modal.js +0 -13
- package/dist/components/wizard/selection-card.js +0 -9
- package/dist/components/wizard/step-settings.js +0 -18
- package/dist/copy-local-skills-6EMVN7RB.js +0 -14
- package/dist/load-agent-defs-BWOUVEAR.js +0 -15
- package/dist/load-agent-defs-BWOUVEAR.js.map +0 -1
- package/dist/loader-5JP4S7CJ.js.map +0 -1
- package/dist/recompile-project-agents-6DL45TDI.js +0 -19
- package/dist/recompile-project-agents-6DL45TDI.js.map +0 -1
- package/dist/source-loader-MZYCPL2S.js.map +0 -1
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +0 -48
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +0 -65
- package/dist/src/agents/developer/web-architecture/identity.md +0 -64
- package/dist/src/agents/developer/web-architecture/metadata.yaml +0 -12
- package/dist/src/agents/developer/web-architecture/output.md +0 -449
- package/dist/src/agents/developer/web-architecture/playbook.md +0 -481
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +0 -71
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +0 -31
- package/dist/src/agents/pattern/pattern-scout/identity.md +0 -25
- package/dist/src/agents/pattern/pattern-scout/metadata.yaml +0 -10
- package/dist/src/agents/pattern/pattern-scout/output.md +0 -290
- package/dist/src/agents/pattern/pattern-scout/playbook.md +0 -1806
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +0 -30
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +0 -28
- package/dist/src/agents/pattern/web-pattern-critique/identity.md +0 -41
- package/dist/src/agents/pattern/web-pattern-critique/metadata.yaml +0 -12
- package/dist/src/agents/pattern/web-pattern-critique/output.md +0 -314
- package/dist/src/agents/pattern/web-pattern-critique/playbook.md +0 -572
- package/dist/src/agents/planning/api-pm/critical-reminders.md +0 -48
- package/dist/src/agents/planning/api-pm/critical-requirements.md +0 -41
- package/dist/src/agents/planning/api-pm/identity.md +0 -39
- package/dist/src/agents/planning/api-pm/metadata.yaml +0 -12
- package/dist/src/agents/planning/api-pm/output.md +0 -475
- package/dist/src/agents/planning/api-pm/playbook.md +0 -129
- package/dist/src/agents/planning/web-pm/identity.md +0 -26
- package/dist/src/agents/planning/web-pm/metadata.yaml +0 -12
- package/dist/src/agents/planning/web-pm/playbook.md +0 -318
- package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +0 -40
- package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +0 -37
- package/dist/src/agents/reviewer/ai-reviewer/identity.md +0 -51
- package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +0 -10
- package/dist/src/agents/reviewer/ai-reviewer/output.md +0 -395
- package/dist/src/agents/reviewer/ai-reviewer/playbook.md +0 -90
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +0 -31
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +0 -27
- package/dist/src/agents/reviewer/api-reviewer/identity.md +0 -51
- package/dist/src/agents/reviewer/api-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/api-reviewer/output.md +0 -343
- package/dist/src/agents/reviewer/api-reviewer/playbook.md +0 -288
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +0 -33
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +0 -30
- package/dist/src/agents/reviewer/cli-reviewer/identity.md +0 -44
- package/dist/src/agents/reviewer/cli-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/cli-reviewer/output.md +0 -414
- package/dist/src/agents/reviewer/cli-reviewer/playbook.md +0 -218
- package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +0 -38
- package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +0 -38
- package/dist/src/agents/reviewer/infra-reviewer/identity.md +0 -53
- package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +0 -10
- package/dist/src/agents/reviewer/infra-reviewer/output.md +0 -364
- package/dist/src/agents/reviewer/infra-reviewer/playbook.md +0 -161
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +0 -31
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +0 -26
- package/dist/src/agents/reviewer/web-reviewer/identity.md +0 -40
- package/dist/src/agents/reviewer/web-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/web-reviewer/output.md +0 -333
- package/dist/src/agents/reviewer/web-reviewer/playbook.md +0 -156
- package/src/agents/developer/web-architecture/critical-reminders.md +0 -48
- package/src/agents/developer/web-architecture/critical-requirements.md +0 -65
- package/src/agents/developer/web-architecture/identity.md +0 -64
- package/src/agents/developer/web-architecture/metadata.yaml +0 -12
- package/src/agents/developer/web-architecture/output.md +0 -449
- package/src/agents/developer/web-architecture/playbook.md +0 -481
- package/src/agents/pattern/pattern-scout/critical-reminders.md +0 -71
- package/src/agents/pattern/pattern-scout/critical-requirements.md +0 -31
- package/src/agents/pattern/pattern-scout/identity.md +0 -25
- package/src/agents/pattern/pattern-scout/metadata.yaml +0 -10
- package/src/agents/pattern/pattern-scout/output.md +0 -290
- package/src/agents/pattern/pattern-scout/playbook.md +0 -1806
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +0 -30
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +0 -28
- package/src/agents/pattern/web-pattern-critique/identity.md +0 -41
- package/src/agents/pattern/web-pattern-critique/metadata.yaml +0 -12
- package/src/agents/pattern/web-pattern-critique/output.md +0 -314
- package/src/agents/pattern/web-pattern-critique/playbook.md +0 -572
- package/src/agents/planning/api-pm/critical-reminders.md +0 -48
- package/src/agents/planning/api-pm/critical-requirements.md +0 -41
- package/src/agents/planning/api-pm/identity.md +0 -39
- package/src/agents/planning/api-pm/metadata.yaml +0 -12
- package/src/agents/planning/api-pm/output.md +0 -475
- package/src/agents/planning/api-pm/playbook.md +0 -129
- package/src/agents/planning/web-pm/identity.md +0 -26
- package/src/agents/planning/web-pm/metadata.yaml +0 -12
- package/src/agents/planning/web-pm/playbook.md +0 -318
- package/src/agents/reviewer/ai-reviewer/critical-reminders.md +0 -40
- package/src/agents/reviewer/ai-reviewer/critical-requirements.md +0 -37
- package/src/agents/reviewer/ai-reviewer/identity.md +0 -51
- package/src/agents/reviewer/ai-reviewer/metadata.yaml +0 -10
- package/src/agents/reviewer/ai-reviewer/output.md +0 -395
- package/src/agents/reviewer/ai-reviewer/playbook.md +0 -90
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +0 -31
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +0 -27
- package/src/agents/reviewer/api-reviewer/identity.md +0 -51
- package/src/agents/reviewer/api-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/api-reviewer/output.md +0 -343
- package/src/agents/reviewer/api-reviewer/playbook.md +0 -288
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +0 -33
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +0 -30
- package/src/agents/reviewer/cli-reviewer/identity.md +0 -44
- package/src/agents/reviewer/cli-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/cli-reviewer/output.md +0 -414
- package/src/agents/reviewer/cli-reviewer/playbook.md +0 -218
- package/src/agents/reviewer/infra-reviewer/critical-reminders.md +0 -38
- package/src/agents/reviewer/infra-reviewer/critical-requirements.md +0 -38
- package/src/agents/reviewer/infra-reviewer/identity.md +0 -53
- package/src/agents/reviewer/infra-reviewer/metadata.yaml +0 -10
- package/src/agents/reviewer/infra-reviewer/output.md +0 -364
- package/src/agents/reviewer/infra-reviewer/playbook.md +0 -161
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +0 -31
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +0 -26
- package/src/agents/reviewer/web-reviewer/identity.md +0 -40
- package/src/agents/reviewer/web-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/web-reviewer/output.md +0 -333
- package/src/agents/reviewer/web-reviewer/playbook.md +0 -156
- /package/dist/{chunk-ZL7PFNHN.js.map → chunk-K3O3YQYG.js.map} +0 -0
- /package/dist/{chunk-IHUY4M22.js.map → chunk-NXGMM5YN.js.map} +0 -0
- /package/dist/{chunk-DTSG5XZB.js.map → chunk-V3ENMW7G.js.map} +0 -0
- /package/dist/{commands/new/skill.js.map → copy-local-skills-KF2RAVD3.js.map} +0 -0
- /package/dist/{components/wizard/search-modal.js.map → load-agent-defs-DGXGBU3Q.js.map} +0 -0
- /package/dist/{components/wizard/selection-card.js.map → loader-4U7UCE2Y.js.map} +0 -0
- /package/dist/{components/wizard/step-settings.js.map → recompile-project-agents-CJVBAWDJ.js.map} +0 -0
- /package/dist/{copy-local-skills-6EMVN7RB.js.map → source-loader-ZNSYJJCI.js.map} +0 -0
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
+
DOMAIN_ORDER,
|
|
3
4
|
deriveInstallMode,
|
|
4
5
|
getAvailableSkills,
|
|
6
|
+
getCellState,
|
|
5
7
|
getUnmetRequiredBy,
|
|
6
8
|
isActiveAt,
|
|
7
|
-
isCompatibleWithSelections,
|
|
8
9
|
isGlobalTombstone,
|
|
9
10
|
isProjectOwned
|
|
10
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-NXQAY5U7.js";
|
|
11
12
|
import {
|
|
12
13
|
warn
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-U2YSGBHA.js";
|
|
14
15
|
import {
|
|
15
16
|
getCategoryDomain,
|
|
16
17
|
getSkillById,
|
|
17
18
|
matrix
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-35VOK7XE.js";
|
|
19
20
|
import {
|
|
20
21
|
typedEntries,
|
|
21
22
|
typedFromEntries,
|
|
@@ -23,14 +24,14 @@ import {
|
|
|
23
24
|
typedValues
|
|
24
25
|
} from "./chunk-VASLW636.js";
|
|
25
26
|
import {
|
|
26
|
-
BUILT_IN_DOMAIN_ORDER,
|
|
27
27
|
DEFAULT_PUBLIC_SOURCE_NAME,
|
|
28
|
+
DEFAULT_SCRATCH_DOMAINS,
|
|
28
29
|
EJECT_SOURCE,
|
|
29
|
-
FALLBACK_DOMAIN
|
|
30
|
-
|
|
30
|
+
FALLBACK_DOMAIN,
|
|
31
|
+
INSTALL_MODES
|
|
32
|
+
} from "./chunk-R54KIGN2.js";
|
|
31
33
|
|
|
32
34
|
// src/cli/stores/wizard-store.ts
|
|
33
|
-
import { flatMap } from "remeda";
|
|
34
35
|
import { create } from "zustand";
|
|
35
36
|
|
|
36
37
|
// src/cli/lib/wizard/build-step-logic.ts
|
|
@@ -122,9 +123,9 @@ function classifyDiffRow(skill, prevKeySet, prevSourceMap) {
|
|
|
122
123
|
const key = skillSlotKey(skill.id, skill.scope);
|
|
123
124
|
const isNew = prevKeySet === null || !prevKeySet.has(key);
|
|
124
125
|
const prevSource = prevSourceMap?.get(key);
|
|
125
|
-
const
|
|
126
|
-
if (
|
|
127
|
-
return { id: skill.id, source: skill.source, status: "
|
|
126
|
+
const modeChanged = !isNew && prevSource != null && prevSource !== skill.source;
|
|
127
|
+
if (modeChanged) {
|
|
128
|
+
return { id: skill.id, source: skill.source, status: "mode-changed" };
|
|
128
129
|
}
|
|
129
130
|
return { id: skill.id, source: skill.source, status: isNew ? "added" : "unchanged" };
|
|
130
131
|
}
|
|
@@ -140,53 +141,48 @@ function toRemovedAgentRow(agent) {
|
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
// src/cli/lib/wizard/build-step-logic.ts
|
|
143
|
-
|
|
144
|
-
var WEB_DOMAIN_ID = "web";
|
|
145
|
-
function getSelectedFrameworks(selections) {
|
|
146
|
-
return (selections[FRAMEWORK_CATEGORY_ID] ?? []).map((alias) => getSkillById(alias).id);
|
|
147
|
-
}
|
|
148
|
-
function isCompatibleWithSelectedFrameworks(skillId, selectedFrameworkIds) {
|
|
149
|
-
return isCompatibleWithSelections(getSkillById(skillId), selectedFrameworkIds);
|
|
150
|
-
}
|
|
151
|
-
function buildCategoriesForDomain(domain, allSelections, selections, installedSkillIds, skillConfigs, filterIncompatible) {
|
|
152
|
-
const selectedFrameworkIds = getSelectedFrameworks(selections);
|
|
153
|
-
const shouldFilter = filterIncompatible && domain === WEB_DOMAIN_ID && selectedFrameworkIds.length > 0;
|
|
144
|
+
function buildCategoriesForDomain(domain, allSelections, installedSkillIds, skillConfigs) {
|
|
154
145
|
const categories = sortBy(
|
|
155
146
|
typedValues(matrix.categories).filter((cat) => cat.domain === domain),
|
|
147
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- CategoryDefinition declares this required, but an auto-synthesized category for a custom skill can arrive without it — the type is stricter than the data
|
|
156
148
|
(cat) => cat.order ?? 0
|
|
157
149
|
);
|
|
158
150
|
const categoryRows = categories.map((cat) => {
|
|
159
151
|
const skillOptions = getAvailableSkills(cat.id, allSelections);
|
|
160
|
-
const filteredOptions = shouldFilter && cat.id !== FRAMEWORK_CATEGORY_ID ? skillOptions.filter(
|
|
161
|
-
(skill) => isCompatibleWithSelectedFrameworks(skill.id, selectedFrameworkIds)
|
|
162
|
-
) : skillOptions;
|
|
163
|
-
const isExclusive = cat.exclusive ?? true;
|
|
164
152
|
const sortedOptions = sortBy(
|
|
165
|
-
|
|
153
|
+
skillOptions,
|
|
166
154
|
(skill) => getSkillById(skill.id).displayName.toLowerCase()
|
|
167
155
|
);
|
|
168
156
|
const options = sortedOptions.map((skill) => {
|
|
169
157
|
const activeConfig = skillConfigs?.find((sc) => sc.id === skill.id && !sc.excluded);
|
|
170
158
|
const excludedConfig = skillConfigs?.find((sc) => sc.id === skill.id && sc.excluded);
|
|
171
159
|
const { secondaryScope } = deriveScopeBadges(activeConfig, excludedConfig);
|
|
160
|
+
const local = getSkillById(skill.id).local;
|
|
161
|
+
const requiredBy = skill.selected ? void 0 : getUnmetRequiredBy(skill.id, allSelections);
|
|
172
162
|
return {
|
|
173
163
|
id: skill.id,
|
|
174
|
-
|
|
164
|
+
// The cell verdict, not the raw advisory: inside a pick-one category
|
|
165
|
+
// the shared semantics forgive what the swap resolves.
|
|
166
|
+
state: getCellState(skill.id, allSelections),
|
|
175
167
|
selected: skill.selected,
|
|
176
|
-
local
|
|
168
|
+
...local !== void 0 && { local },
|
|
177
169
|
installed: installedSkillIds?.includes(skill.id) || false,
|
|
178
|
-
scope: activeConfig
|
|
179
|
-
secondaryScope,
|
|
180
|
-
source: activeConfig
|
|
170
|
+
...activeConfig?.scope !== void 0 && { scope: activeConfig.scope },
|
|
171
|
+
...secondaryScope !== void 0 && { secondaryScope },
|
|
172
|
+
...activeConfig?.source !== void 0 && { source: activeConfig.source },
|
|
181
173
|
hasUnmetRequirements: skill.hasUnmetRequirements,
|
|
182
|
-
|
|
183
|
-
|
|
174
|
+
...skill.unmetRequirementsReason !== void 0 && {
|
|
175
|
+
unmetRequirementsReason: skill.unmetRequirementsReason
|
|
176
|
+
},
|
|
177
|
+
...requiredBy !== void 0 && { requiredBy }
|
|
184
178
|
};
|
|
185
179
|
});
|
|
186
180
|
return {
|
|
187
181
|
id: cat.id,
|
|
188
182
|
displayName: cat.displayName,
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- CategoryDefinition declares this required, but an auto-synthesized category for a custom skill can arrive without it — the type is stricter than the data
|
|
189
184
|
required: cat.required ?? false,
|
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- CategoryDefinition declares this required, but an auto-synthesized category for a custom skill can arrive without it — the type is stricter than the data
|
|
190
186
|
exclusive: cat.exclusive ?? true,
|
|
191
187
|
options
|
|
192
188
|
};
|
|
@@ -196,10 +192,10 @@ function buildCategoriesForDomain(domain, allSelections, selections, installedSk
|
|
|
196
192
|
|
|
197
193
|
// src/cli/lib/wizard/domain-order.ts
|
|
198
194
|
function orderDomains(domains) {
|
|
199
|
-
const builtInSet = new Set(
|
|
195
|
+
const builtInSet = new Set(DOMAIN_ORDER);
|
|
200
196
|
return [
|
|
201
197
|
...domains.filter((d) => !builtInSet.has(d)).sort(),
|
|
202
|
-
...
|
|
198
|
+
...DOMAIN_ORDER.filter((d) => domains.includes(d))
|
|
203
199
|
];
|
|
204
200
|
}
|
|
205
201
|
|
|
@@ -221,28 +217,6 @@ function createDefaultSkillConfig(id) {
|
|
|
221
217
|
const primarySource = primarySourceName(skill);
|
|
222
218
|
return { id, scope: "global", source: primarySource ?? DEFAULT_PUBLIC_SOURCE_NAME };
|
|
223
219
|
}
|
|
224
|
-
function findIncompatibleWebSkills(webSelections, skillConfigs) {
|
|
225
|
-
const frameworkSelections = webSelections[FRAMEWORK_CATEGORY_ID] ?? [];
|
|
226
|
-
if (frameworkSelections.length === 0) return /* @__PURE__ */ new Set();
|
|
227
|
-
const excludedIds = new Set(skillConfigs.filter((s) => s.excluded).map((s) => s.id));
|
|
228
|
-
const selectedFrameworkIds = frameworkSelections.map((alias) => getSkillById(alias).id);
|
|
229
|
-
return new Set(
|
|
230
|
-
flatMap(
|
|
231
|
-
typedEntries(webSelections),
|
|
232
|
-
([cat, skills]) => cat === FRAMEWORK_CATEGORY_ID || !skills ? [] : skills.filter(
|
|
233
|
-
(id) => !excludedIds.has(id) && !isCompatibleWithSelectedFrameworks(id, selectedFrameworkIds)
|
|
234
|
-
)
|
|
235
|
-
)
|
|
236
|
-
);
|
|
237
|
-
}
|
|
238
|
-
function removeSkillsFromSelections(selections, toRemove) {
|
|
239
|
-
return typedFromEntries(
|
|
240
|
-
typedEntries(selections).map(([cat, skills]) => [
|
|
241
|
-
cat,
|
|
242
|
-
skills?.filter((id) => !toRemove.has(id)) ?? []
|
|
243
|
-
])
|
|
244
|
-
);
|
|
245
|
-
}
|
|
246
220
|
function hasProjectActive(configs, id) {
|
|
247
221
|
return configs.some((sc) => sc.id === id && isActiveAt(sc, "project"));
|
|
248
222
|
}
|
|
@@ -259,7 +233,10 @@ function isDualScopePair(configs, id) {
|
|
|
259
233
|
return hasProjectActive(configs, id) && hasGlobalTombstone(configs, id);
|
|
260
234
|
}
|
|
261
235
|
function isGloballyLockedSkill(installed, liveConfigs, id) {
|
|
262
|
-
return hasGlobalActive(installed, id) || hasGlobalTombstone(installed, id) && hasGlobalActive(liveConfigs, id)
|
|
236
|
+
return hasGlobalActive(installed, id) || hasGlobalTombstone(installed, id) && hasGlobalActive(liveConfigs, id);
|
|
237
|
+
}
|
|
238
|
+
function blocksExclusiveSwap(installed, liveConfigs, id) {
|
|
239
|
+
return isGloballyLockedSkill(installed, liveConfigs, id) || isDualScopePair(liveConfigs, id);
|
|
263
240
|
}
|
|
264
241
|
function wouldOverwriteGlobalEject(config, liveConfigs, installedSkillConfigs) {
|
|
265
242
|
if (config.scope !== "project" || config.source !== EJECT_SOURCE) return false;
|
|
@@ -308,9 +285,11 @@ function reconcileSkillConfigs(configs, added, removed, installedSkillConfigs, i
|
|
|
308
285
|
}
|
|
309
286
|
const existingExcluded = result.find((sc) => sc.id === id && sc.excluded);
|
|
310
287
|
if (existingExcluded) {
|
|
311
|
-
result = result.map(
|
|
312
|
-
(sc
|
|
313
|
-
|
|
288
|
+
result = result.map((sc) => {
|
|
289
|
+
if (sc.id !== id || !sc.excluded) return sc;
|
|
290
|
+
const { excluded: _excluded, ...active } = sc;
|
|
291
|
+
return active;
|
|
292
|
+
});
|
|
314
293
|
} else if (!result.some((sc) => sc.id === id)) {
|
|
315
294
|
result = [...result, buildSkillConfigForId(id, installedSkillConfigs)];
|
|
316
295
|
}
|
|
@@ -338,9 +317,11 @@ function applyAgentToggle(configs, agent, isSelected) {
|
|
|
338
317
|
}
|
|
339
318
|
const existingExcluded = configs.find((ac) => ac.name === agent && ac.excluded);
|
|
340
319
|
if (existingExcluded) {
|
|
341
|
-
return configs.map(
|
|
342
|
-
(ac
|
|
343
|
-
|
|
320
|
+
return configs.map((ac) => {
|
|
321
|
+
if (ac.name !== agent || !ac.excluded) return ac;
|
|
322
|
+
const { excluded: _excluded, ...active } = ac;
|
|
323
|
+
return active;
|
|
324
|
+
});
|
|
344
325
|
}
|
|
345
326
|
return [...configs, { name: agent, scope: "global" }];
|
|
346
327
|
}
|
|
@@ -387,40 +368,26 @@ function buildAgentConfigForName(name, savedConfigs) {
|
|
|
387
368
|
function restoreSkillConfigs(existingConfigs, restoredIds) {
|
|
388
369
|
const restoredSet = new Set(restoredIds);
|
|
389
370
|
const existingIds = new Set(existingConfigs.map((sc) => sc.id));
|
|
390
|
-
const updated = existingConfigs.map(
|
|
391
|
-
(
|
|
392
|
-
|
|
371
|
+
const updated = existingConfigs.map((sc) => {
|
|
372
|
+
if (!restoredSet.has(sc.id) || !sc.excluded) return sc;
|
|
373
|
+
const { excluded: _excluded, ...active } = sc;
|
|
374
|
+
return active;
|
|
375
|
+
});
|
|
393
376
|
const newConfigs = restoredIds.filter((id) => !existingIds.has(id)).map(createDefaultSkillConfig);
|
|
394
377
|
return [...updated, ...newConfigs];
|
|
395
378
|
}
|
|
396
379
|
var DOMAIN_AGENTS = {
|
|
397
|
-
web: [
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
"web-tester",
|
|
402
|
-
"web-pm",
|
|
403
|
-
"web-architecture"
|
|
404
|
-
],
|
|
405
|
-
api: ["api-developer", "api-reviewer", "api-researcher"],
|
|
406
|
-
cli: ["cli-developer", "cli-tester", "cli-reviewer"]
|
|
380
|
+
web: ["web-developer", "web-researcher", "web-tester", "pm", "reviewer"],
|
|
381
|
+
api: ["api-developer", "api-researcher", "api-tester", "pm", "reviewer"],
|
|
382
|
+
cli: ["cli-developer", "cli-tester", "cli-researcher", "pm", "reviewer"],
|
|
383
|
+
ai: ["ai-developer", "ai-researcher", "ai-tester", "pm", "reviewer"]
|
|
407
384
|
};
|
|
408
|
-
var SOURCE_SORT_TIER_LOCAL = 1;
|
|
409
|
-
var SOURCE_SORT_TIER_SCOPED = 2;
|
|
410
|
-
var SOURCE_SORT_TIER_PUBLIC = 3;
|
|
411
|
-
var SOURCE_SORT_TIER_THIRD_PARTY = 4;
|
|
412
|
-
function getSourceSortTier(source) {
|
|
413
|
-
if (source.type === "local") return SOURCE_SORT_TIER_LOCAL;
|
|
414
|
-
if (source.primary) return SOURCE_SORT_TIER_SCOPED;
|
|
415
|
-
if (source.type === "public") return SOURCE_SORT_TIER_PUBLIC;
|
|
416
|
-
return SOURCE_SORT_TIER_THIRD_PARTY;
|
|
417
|
-
}
|
|
418
385
|
function resolveSkillForPopulation(skillId) {
|
|
419
386
|
const { skills } = matrix;
|
|
420
387
|
const skill = skills[skillId];
|
|
421
388
|
if (!skill?.category) {
|
|
422
389
|
warn(
|
|
423
|
-
`Installed skill '${skillId}' is
|
|
390
|
+
`Installed skill '${skillId}' is not present in the loaded source \u2014 it may have been removed or renamed`
|
|
424
391
|
);
|
|
425
392
|
return null;
|
|
426
393
|
}
|
|
@@ -439,33 +406,17 @@ function addToDomainSelections(selections, domain, category, skillId) {
|
|
|
439
406
|
skillList.push(skillId);
|
|
440
407
|
return true;
|
|
441
408
|
}
|
|
442
|
-
function
|
|
443
|
-
return
|
|
444
|
-
id: bound.sourceName,
|
|
445
|
-
selected: selectedSource === bound.sourceName,
|
|
446
|
-
installed: false
|
|
447
|
-
}));
|
|
409
|
+
function marketplaceSourceName(skill) {
|
|
410
|
+
return skill.availableSources?.find((source) => source.type !== "local")?.name ?? DEFAULT_PUBLIC_SOURCE_NAME;
|
|
448
411
|
}
|
|
449
|
-
function
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
})) : [
|
|
458
|
-
{
|
|
459
|
-
id: DEFAULT_PUBLIC_SOURCE_NAME,
|
|
460
|
-
selected: selectedSource === DEFAULT_PUBLIC_SOURCE_NAME,
|
|
461
|
-
installed: false
|
|
462
|
-
}
|
|
463
|
-
];
|
|
464
|
-
const withEject = baseOptions.some((o) => o.id === EJECT_SOURCE) ? baseOptions : [
|
|
465
|
-
{ id: EJECT_SOURCE, selected: selectedSource === EJECT_SOURCE, installed: false },
|
|
466
|
-
...baseOptions
|
|
467
|
-
];
|
|
468
|
-
return [...withEject, ...buildBoundSkillOptions(boundSkills, skill.slug, selectedSource)];
|
|
412
|
+
function sourceForInstallMode(skill, mode) {
|
|
413
|
+
return mode === "eject" ? EJECT_SOURCE : marketplaceSourceName(skill);
|
|
414
|
+
}
|
|
415
|
+
function installModeOfSource(source) {
|
|
416
|
+
return source === EJECT_SOURCE ? "eject" : "plugin";
|
|
417
|
+
}
|
|
418
|
+
function buildInstallModeOptions(selectedMode) {
|
|
419
|
+
return INSTALL_MODES.map((mode) => ({ mode, selected: mode === selectedMode }));
|
|
469
420
|
}
|
|
470
421
|
function collectRemovedInstalledEntries(installedSkillConfigs, skillConfigs) {
|
|
471
422
|
if (!installedSkillConfigs) return [];
|
|
@@ -483,10 +434,11 @@ function collectInstalledSkillSlots(installedSkillConfigs) {
|
|
|
483
434
|
function addedSlotFlag(installedSkillSlots, id, scope) {
|
|
484
435
|
return installedSkillSlots.has(skillSlotKey(id, scope)) ? {} : { added: true };
|
|
485
436
|
}
|
|
486
|
-
function
|
|
487
|
-
|
|
437
|
+
function withSelectedMode(options, source) {
|
|
438
|
+
const mode = installModeOfSource(source);
|
|
439
|
+
return options.map((option) => ({ ...option, selected: option.mode === mode }));
|
|
488
440
|
}
|
|
489
|
-
function resolveSkillRowInputs(id, skillConfigs
|
|
441
|
+
function resolveSkillRowInputs(id, skillConfigs) {
|
|
490
442
|
const skill = getSkillById(id);
|
|
491
443
|
const configEntry = skillConfigs.find((sc) => sc.id === skill.id);
|
|
492
444
|
const selectedSource = resolveEffectiveSource(
|
|
@@ -497,13 +449,13 @@ function resolveSkillRowInputs(id, skillConfigs, boundSkills) {
|
|
|
497
449
|
return {
|
|
498
450
|
skillId: skill.id,
|
|
499
451
|
configEntry,
|
|
500
|
-
options:
|
|
452
|
+
options: buildInstallModeOptions(installModeOfSource(selectedSource))
|
|
501
453
|
};
|
|
502
454
|
}
|
|
503
455
|
function toPendingRemovalRow(skillId, options, removedInstalledEntry) {
|
|
504
456
|
return {
|
|
505
457
|
skillId,
|
|
506
|
-
options:
|
|
458
|
+
options: withSelectedMode(options, removedInstalledEntry.source),
|
|
507
459
|
scope: removedInstalledEntry.scope,
|
|
508
460
|
disabled: true
|
|
509
461
|
};
|
|
@@ -515,7 +467,7 @@ function isSlotAlreadyRendered(rows, removedInstalledEntry) {
|
|
|
515
467
|
function toLockedGlobalRow(skillId, options, installedSource, installedSkillSlots) {
|
|
516
468
|
return {
|
|
517
469
|
skillId,
|
|
518
|
-
options:
|
|
470
|
+
options: withSelectedMode(options, installedSource),
|
|
519
471
|
scope: "global",
|
|
520
472
|
readOnly: true,
|
|
521
473
|
...addedSlotFlag(installedSkillSlots, skillId, "global")
|
|
@@ -551,7 +503,7 @@ function classifySkillSourceRows(skillId, options, context) {
|
|
|
551
503
|
{
|
|
552
504
|
skillId,
|
|
553
505
|
options,
|
|
554
|
-
scope: configEntry
|
|
506
|
+
...configEntry?.scope !== void 0 && { scope: configEntry.scope },
|
|
555
507
|
...readOnly ? { readOnly: true } : {},
|
|
556
508
|
...addedSlotFlag(installedSkillSlots, skillId, configEntry?.scope)
|
|
557
509
|
}
|
|
@@ -570,6 +522,17 @@ var WIZARD_STEP_ORDER = [
|
|
|
570
522
|
"agents",
|
|
571
523
|
"confirm"
|
|
572
524
|
];
|
|
525
|
+
function offersStacks() {
|
|
526
|
+
return matrix.suggestedStacks.length > 0;
|
|
527
|
+
}
|
|
528
|
+
function getActiveStepFlow() {
|
|
529
|
+
if (offersStacks()) return [...WIZARD_STEP_ORDER];
|
|
530
|
+
return WIZARD_STEP_ORDER.filter((step) => step !== "stack");
|
|
531
|
+
}
|
|
532
|
+
function stepsBefore(flow, step) {
|
|
533
|
+
const index = flow.indexOf(step);
|
|
534
|
+
return index < 0 ? [] : flow.slice(0, index);
|
|
535
|
+
}
|
|
573
536
|
var createInitialState = (overrides) => ({
|
|
574
537
|
step: "stack",
|
|
575
538
|
approach: null,
|
|
@@ -581,17 +544,13 @@ var createInitialState = (overrides) => ({
|
|
|
581
544
|
/** Snapshot of domainSelections from populateFromSkillIds, used to restore on domain re-toggle */
|
|
582
545
|
_stackDomainSelections: null,
|
|
583
546
|
showLabels: false,
|
|
584
|
-
filterIncompatible: false,
|
|
585
547
|
skillConfigs: [],
|
|
586
548
|
focusedSkillId: null,
|
|
587
549
|
unresolvableSkillIds: [],
|
|
588
|
-
customizeSources: false,
|
|
589
|
-
showSettings: false,
|
|
590
550
|
showInfo: false,
|
|
591
551
|
selectedAgents: [],
|
|
592
552
|
agentConfigs: [],
|
|
593
553
|
focusedAgentId: null,
|
|
594
|
-
boundSkills: [],
|
|
595
554
|
installedSkillConfigs: null,
|
|
596
555
|
installedAgentConfigs: null,
|
|
597
556
|
isInitMode: false,
|
|
@@ -620,11 +579,30 @@ var useWizardStore = create((set, get) => ({
|
|
|
620
579
|
skillConfigs: [],
|
|
621
580
|
selectedAgents: [],
|
|
622
581
|
agentConfigs: [],
|
|
623
|
-
boundSkills: [],
|
|
624
582
|
currentDomainIndex: 0,
|
|
625
583
|
stackAction: null
|
|
626
584
|
}),
|
|
627
585
|
setStackAction: (action) => set({ stackAction: action }),
|
|
586
|
+
startFromScratch: () => {
|
|
587
|
+
get().selectStack(null);
|
|
588
|
+
get().setApproach("scratch");
|
|
589
|
+
const { globalAgentPreselections, globalPreselections } = get();
|
|
590
|
+
if (globalAgentPreselections) {
|
|
591
|
+
set({
|
|
592
|
+
selectedAgents: globalAgentPreselections.agents,
|
|
593
|
+
agentConfigs: globalAgentPreselections.configs
|
|
594
|
+
});
|
|
595
|
+
}
|
|
596
|
+
if (globalPreselections?.length) {
|
|
597
|
+
get().populateFromSkillIds(
|
|
598
|
+
globalPreselections.map((skill) => skill.id),
|
|
599
|
+
globalPreselections
|
|
600
|
+
);
|
|
601
|
+
}
|
|
602
|
+
for (const domain of DEFAULT_SCRATCH_DOMAINS) {
|
|
603
|
+
if (!get().selectedDomains.includes(domain)) get().toggleDomain(domain);
|
|
604
|
+
}
|
|
605
|
+
},
|
|
628
606
|
populateFromSkillIds: (skillIds, savedConfigs) => set(() => {
|
|
629
607
|
const domainSelections = {};
|
|
630
608
|
const resolvedSkillIds = [];
|
|
@@ -640,11 +618,6 @@ var useWizardStore = create((set, get) => ({
|
|
|
640
618
|
resolvedSkillIds.push(techId);
|
|
641
619
|
}
|
|
642
620
|
}
|
|
643
|
-
if (unresolvableSkillIds.length > 0) {
|
|
644
|
-
warn(
|
|
645
|
-
`${unresolvableSkillIds.length} installed skill(s) could not be resolved and were skipped`
|
|
646
|
-
);
|
|
647
|
-
}
|
|
648
621
|
const selectedDomains = orderDomains(typedKeys(domainSelections));
|
|
649
622
|
const skillConfigs = resolvedSkillIds.map(
|
|
650
623
|
(id) => buildSkillConfigForId(id, savedConfigs)
|
|
@@ -701,7 +674,7 @@ var useWizardStore = create((set, get) => ({
|
|
|
701
674
|
}
|
|
702
675
|
if (isSelected) {
|
|
703
676
|
const categoryDef = matrix.categories[category];
|
|
704
|
-
if (categoryDef?.exclusive && categoryDef
|
|
677
|
+
if (categoryDef?.exclusive && categoryDef.required) {
|
|
705
678
|
const categorySkillCount = typedValues(matrix.skills).filter(
|
|
706
679
|
(s) => s.category === category
|
|
707
680
|
).length;
|
|
@@ -712,7 +685,7 @@ var useWizardStore = create((set, get) => ({
|
|
|
712
685
|
}
|
|
713
686
|
if (exclusive && !isSelected) {
|
|
714
687
|
const wouldDropLockedSkill = currentSelections.some(
|
|
715
|
-
(selectedId) =>
|
|
688
|
+
(selectedId) => blocksExclusiveSwap(installed, state.skillConfigs, selectedId)
|
|
716
689
|
);
|
|
717
690
|
if (wouldDropLockedSkill && !state.isEditingFromGlobalScope) {
|
|
718
691
|
return { toastMessage: TOAST_MESSAGES.GLOBAL_SKILLS_LOCKED };
|
|
@@ -776,33 +749,6 @@ var useWizardStore = create((set, get) => ({
|
|
|
776
749
|
}
|
|
777
750
|
},
|
|
778
751
|
toggleShowLabels: () => set((state) => ({ showLabels: !state.showLabels })),
|
|
779
|
-
toggleFilterIncompatible: () => set((state) => {
|
|
780
|
-
if (state.filterIncompatible) return { filterIncompatible: false };
|
|
781
|
-
const webSelections = state.domainSelections.web;
|
|
782
|
-
if (!webSelections) return { filterIncompatible: true };
|
|
783
|
-
const removed = findIncompatibleWebSkills(webSelections, state.skillConfigs);
|
|
784
|
-
if (removed.size === 0) return { filterIncompatible: true };
|
|
785
|
-
const installed = state.installedSkillConfigs ?? [];
|
|
786
|
-
const removesLockedGlobal = [...removed].some(
|
|
787
|
-
(id) => hasGlobalActive(installed, id) || hasGlobalTombstone(installed, id) && hasGlobalActive(state.skillConfigs, id)
|
|
788
|
-
);
|
|
789
|
-
if (removesLockedGlobal && !state.isEditingFromGlobalScope) {
|
|
790
|
-
return { toastMessage: TOAST_MESSAGES.GLOBAL_SKILLS_LOCKED };
|
|
791
|
-
}
|
|
792
|
-
return {
|
|
793
|
-
filterIncompatible: true,
|
|
794
|
-
domainSelections: {
|
|
795
|
-
...state.domainSelections,
|
|
796
|
-
web: removeSkillsFromSelections(webSelections, removed)
|
|
797
|
-
},
|
|
798
|
-
// Global-scope edit: clean uninstall, no tombstone (D-233 Scenario C).
|
|
799
|
-
skillConfigs: applySkillRemoval(
|
|
800
|
-
state.skillConfigs,
|
|
801
|
-
removed,
|
|
802
|
-
state.isEditingFromGlobalScope ? null : state.installedSkillConfigs
|
|
803
|
-
)
|
|
804
|
-
};
|
|
805
|
-
}),
|
|
806
752
|
deriveInstallMode: () => {
|
|
807
753
|
const { skillConfigs } = get();
|
|
808
754
|
return deriveInstallMode(skillConfigs);
|
|
@@ -837,40 +783,23 @@ var useWizardStore = create((set, get) => ({
|
|
|
837
783
|
const categories = buildCategoriesForDomain(
|
|
838
784
|
domain,
|
|
839
785
|
state.getAllSelectedTechnologies(),
|
|
840
|
-
state.domainSelections[domain] ?? {},
|
|
841
786
|
void 0,
|
|
842
|
-
state.skillConfigs
|
|
843
|
-
state.filterIncompatible
|
|
787
|
+
state.skillConfigs
|
|
844
788
|
);
|
|
845
789
|
set({ focusedSkillId: categories[0]?.options[0]?.id ?? null });
|
|
846
790
|
},
|
|
847
|
-
|
|
791
|
+
setInstallMode: (skillId, mode, scope) => set((state) => {
|
|
848
792
|
if (!skillId) {
|
|
849
|
-
warn("Ignoring
|
|
850
|
-
return state;
|
|
851
|
-
}
|
|
852
|
-
if (!sourceId) {
|
|
853
|
-
warn(`Ignoring setSourceSelection call with empty sourceId for skill '${skillId}'`);
|
|
793
|
+
warn("Ignoring setInstallMode call with empty skillId");
|
|
854
794
|
return state;
|
|
855
795
|
}
|
|
796
|
+
const source = sourceForInstallMode(getSkillById(skillId), mode);
|
|
856
797
|
return {
|
|
857
|
-
skillConfigs: withActiveEntrySource(state.skillConfigs, skillId, scope,
|
|
798
|
+
skillConfigs: withActiveEntrySource(state.skillConfigs, skillId, scope, source)
|
|
858
799
|
};
|
|
859
800
|
}),
|
|
860
|
-
setCustomizeSources: (customize) => set({ customizeSources: customize }),
|
|
861
|
-
toggleSettings: () => set((state) => ({ showSettings: !state.showSettings })),
|
|
862
801
|
toggleInfo: () => set((state) => ({ showInfo: !state.showInfo })),
|
|
863
802
|
setToastMessage: (message) => set({ toastMessage: message }),
|
|
864
|
-
bindSkill: (skill) => set((state) => {
|
|
865
|
-
const exists = state.boundSkills.some(
|
|
866
|
-
(b) => b.id === skill.id && b.sourceUrl === skill.sourceUrl
|
|
867
|
-
);
|
|
868
|
-
if (exists) {
|
|
869
|
-
warn(`Skill '${skill.id}' from '${skill.sourceUrl}' is already bound \u2014 skipping duplicate`);
|
|
870
|
-
return state;
|
|
871
|
-
}
|
|
872
|
-
return { boundSkills: [...state.boundSkills, skill] };
|
|
873
|
-
}),
|
|
874
803
|
goBack: () => set((state) => {
|
|
875
804
|
if (state.history.length === 0) return state;
|
|
876
805
|
const history = [...state.history];
|
|
@@ -923,7 +852,10 @@ var useWizardStore = create((set, get) => ({
|
|
|
923
852
|
}),
|
|
924
853
|
setFocusedAgentId: (id) => set({ focusedAgentId: id }),
|
|
925
854
|
preselectAgentsFromDomains: () => set((state) => {
|
|
926
|
-
|
|
855
|
+
if (state.selectedStackId) return state;
|
|
856
|
+
const sorted = [
|
|
857
|
+
...new Set(state.selectedDomains.flatMap((domain) => DOMAIN_AGENTS[domain] ?? []))
|
|
858
|
+
].sort();
|
|
927
859
|
const roster = new Set(sorted);
|
|
928
860
|
const merged = sorted.map((name) => buildAgentConfigForName(name, state.agentConfigs));
|
|
929
861
|
const retained = state.agentConfigs.filter((ac) => survivesRosterRebuild(ac, roster));
|
|
@@ -962,7 +894,7 @@ var useWizardStore = create((set, get) => ({
|
|
|
962
894
|
const state = get();
|
|
963
895
|
const isStackDefaults = state.approach === "stack" && !!state.selectedStackId && state.stackAction === "defaults";
|
|
964
896
|
const skippedSteps = isStackDefaults ? ["build", "sources", "agents"] : [];
|
|
965
|
-
const precedingSteps =
|
|
897
|
+
const precedingSteps = stepsBefore(getActiveStepFlow(), state.step);
|
|
966
898
|
const completedSteps = precedingSteps.filter((step) => !skippedSteps.includes(step));
|
|
967
899
|
return { completedSteps, skippedSteps };
|
|
968
900
|
},
|
|
@@ -988,26 +920,22 @@ var useWizardStore = create((set, get) => ({
|
|
|
988
920
|
set((state) => ({
|
|
989
921
|
// Never touch tombstones (see setAllSourcesEject) — the excluded global tombstone keeps its
|
|
990
922
|
// marketplace source describing the masked global install (D-265).
|
|
991
|
-
skillConfigs: state.skillConfigs.map(
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
(source) => source.type !== "local"
|
|
995
|
-
);
|
|
996
|
-
return marketplaceSource ? { ...sc, source: marketplaceSource.name } : sc;
|
|
997
|
-
})
|
|
923
|
+
skillConfigs: state.skillConfigs.map(
|
|
924
|
+
(sc) => sc.excluded ? sc : { ...sc, source: marketplaceSourceName(getSkillById(sc.id)) }
|
|
925
|
+
)
|
|
998
926
|
}));
|
|
999
927
|
},
|
|
1000
928
|
buildSourceRows: () => {
|
|
1001
929
|
const state = get();
|
|
1002
930
|
const selectedTechnologies = get().getAllSelectedTechnologies();
|
|
1003
|
-
const { skillConfigs
|
|
931
|
+
const { skillConfigs } = state;
|
|
1004
932
|
const selectedSet = new Set(selectedTechnologies);
|
|
1005
933
|
const inheritedSkillIds = skillConfigs.filter((sc) => !sc.excluded && !selectedSet.has(sc.id)).map((sc) => sc.id);
|
|
1006
934
|
const allActiveIds = /* @__PURE__ */ new Set([...inheritedSkillIds, ...selectedTechnologies]);
|
|
1007
935
|
const excludedGlobalIds = skillConfigs.filter((sc) => isGlobalTombstone(sc) && !allActiveIds.has(sc.id)).map((sc) => sc.id);
|
|
1008
936
|
const liveSkillIds = [...inheritedSkillIds, ...selectedTechnologies, ...excludedGlobalIds];
|
|
1009
937
|
const installedSkillSlots = collectInstalledSkillSlots(state.installedSkillConfigs);
|
|
1010
|
-
const resolveRowInputs = (id) => resolveSkillRowInputs(id, skillConfigs
|
|
938
|
+
const resolveRowInputs = (id) => resolveSkillRowInputs(id, skillConfigs);
|
|
1011
939
|
const liveRows = liveSkillIds.flatMap((id) => {
|
|
1012
940
|
const { skillId, configEntry, options } = resolveRowInputs(id);
|
|
1013
941
|
return classifySkillSourceRows(skillId, options, {
|
|
@@ -1071,6 +999,7 @@ function hydrateForEdit(initialStep, options) {
|
|
|
1071
999
|
});
|
|
1072
1000
|
useWizardStore.getState().seedFocusedSkillForActiveDomain();
|
|
1073
1001
|
}
|
|
1002
|
+
var FIRST_STEP_WITHOUT_STACKS = "domains";
|
|
1074
1003
|
function hydrateForInit(options) {
|
|
1075
1004
|
const {
|
|
1076
1005
|
initialDomains,
|
|
@@ -1098,6 +1027,10 @@ function hydrateForInit(options) {
|
|
|
1098
1027
|
}
|
|
1099
1028
|
} : {}
|
|
1100
1029
|
});
|
|
1030
|
+
if (!offersStacks()) {
|
|
1031
|
+
useWizardStore.getState().startFromScratch();
|
|
1032
|
+
useWizardStore.setState({ step: FIRST_STEP_WITHOUT_STACKS, history: [] });
|
|
1033
|
+
}
|
|
1101
1034
|
useWizardStore.getState().seedFocusedSkillForActiveDomain();
|
|
1102
1035
|
}
|
|
1103
1036
|
|
|
@@ -1108,8 +1041,9 @@ export {
|
|
|
1108
1041
|
buildCategoriesForDomain,
|
|
1109
1042
|
orderDomains,
|
|
1110
1043
|
WIZARD_STEP_ORDER,
|
|
1044
|
+
getActiveStepFlow,
|
|
1111
1045
|
createInitialState,
|
|
1112
1046
|
useWizardStore,
|
|
1113
1047
|
hydrateWizardStore
|
|
1114
1048
|
};
|
|
1115
|
-
//# sourceMappingURL=chunk-
|
|
1049
|
+
//# sourceMappingURL=chunk-HEBPKK5L.js.map
|