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
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-JFLVEFFP.js";
|
|
5
5
|
|
|
6
6
|
// src/cli/components/common/prompt-confirm.tsx
|
|
7
|
+
import "react";
|
|
7
8
|
async function promptValue(build, options) {
|
|
8
9
|
return new Promise((resolve) => {
|
|
9
10
|
const instance = render(
|
|
@@ -30,4 +31,4 @@ export {
|
|
|
30
31
|
promptValue,
|
|
31
32
|
promptConfirm
|
|
32
33
|
};
|
|
33
|
-
//# sourceMappingURL=chunk-
|
|
34
|
+
//# sourceMappingURL=chunk-OJJLYHM3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/components/common/prompt-confirm.tsx"],"sourcesContent":["import React from \"react\";\nimport { render } from \"../render.js\";\n\nexport type ConfirmHandlers = {\n onConfirm: () => void;\n onCancel: () => void;\n};\n\nexport type PromptValueOptions<T> = {\n /** Value resolved when the Ink app exits before any callback fires (Ctrl+C / render failure). */\n onExit: T;\n /** Call instance.clear() before unmount — repaints a clean terminal (used by the dashboard). */\n clearOnResolve?: boolean;\n};\n\n/**\n * Renders an Ink prompt and resolves with the value produced by its callbacks.\n * First-wins: the first resolve (a callback or the app-exit fallback) settles the\n * promise; later resolves are ignored. The element is unmounted at the resolution\n * site (optionally cleared first). Callers own exit policy (exit codes, logging).\n */\nexport async function promptValue<T>(\n build: (resolve: (value: T) => void) => React.ReactElement,\n options: PromptValueOptions<T>,\n): Promise<T> {\n return new Promise<T>((resolve) => {\n const instance = render(\n build((value) => {\n if (options.clearOnResolve) instance.clear();\n instance.unmount();\n resolve(value);\n }),\n );\n // App exit without a callback (e.g. Ctrl+C) or a render failure counts as the\n // fallback; resolve is first-wins, so a prior callback value is unaffected.\n instance.waitUntilExit().then(\n () => resolve(options.onExit),\n () => resolve(options.onExit),\n );\n });\n}\n\n/**\n * Renders a confirm UI and resolves with the user's choice. The element is\n * unmounted as soon as either handler fires; a clean exit or render failure\n * without a choice resolves as \"cancelled\". Callers own exit policy.\n */\nexport async function promptConfirm(\n build: (handlers: ConfirmHandlers) => React.ReactElement,\n): Promise<\"confirmed\" | \"cancelled\"> {\n return promptValue<\"confirmed\" | \"cancelled\">(\n (resolve) =>\n build({ onConfirm: () => resolve(\"confirmed\"), onCancel: () => resolve(\"cancelled\") }),\n { onExit: \"cancelled\" },\n );\n}\n"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/common/prompt-confirm.tsx"],"sourcesContent":["import React from \"react\";\nimport { render } from \"../render.js\";\n\nexport type ConfirmHandlers = {\n onConfirm: () => void;\n onCancel: () => void;\n};\n\nexport type PromptValueOptions<T> = {\n /** Value resolved when the Ink app exits before any callback fires (Ctrl+C / render failure). */\n onExit: T;\n /** Call instance.clear() before unmount — repaints a clean terminal (used by the dashboard). */\n clearOnResolve?: boolean;\n};\n\n/**\n * Renders an Ink prompt and resolves with the value produced by its callbacks.\n * First-wins: the first resolve (a callback or the app-exit fallback) settles the\n * promise; later resolves are ignored. The element is unmounted at the resolution\n * site (optionally cleared first). Callers own exit policy (exit codes, logging).\n */\nexport async function promptValue<T>(\n build: (resolve: (value: T) => void) => React.ReactElement,\n options: PromptValueOptions<T>,\n): Promise<T> {\n return new Promise<T>((resolve) => {\n const instance = render(\n build((value) => {\n if (options.clearOnResolve) instance.clear();\n instance.unmount();\n resolve(value);\n }),\n );\n // App exit without a callback (e.g. Ctrl+C) or a render failure counts as the\n // fallback; resolve is first-wins, so a prior callback value is unaffected.\n instance.waitUntilExit().then(\n () => resolve(options.onExit),\n () => resolve(options.onExit),\n );\n });\n}\n\n/**\n * Renders a confirm UI and resolves with the user's choice. The element is\n * unmounted as soon as either handler fires; a clean exit or render failure\n * without a choice resolves as \"cancelled\". Callers own exit policy.\n */\nexport async function promptConfirm(\n build: (handlers: ConfirmHandlers) => React.ReactElement,\n): Promise<\"confirmed\" | \"cancelled\"> {\n return promptValue<\"confirmed\" | \"cancelled\">(\n (resolve) =>\n build({ onConfirm: () => resolve(\"confirmed\"), onCancel: () => resolve(\"cancelled\") }),\n { onExit: \"cancelled\" },\n );\n}\n"],"mappings":";;;;;;AAAA,OAAkB;AAqBlB,eAAsB,YACpB,OACA,SACY;AACZ,SAAO,IAAI,QAAW,CAAC,YAAY;AACjC,UAAM,WAAW;AAAA,MACf,MAAM,CAAC,UAAU;AACf,YAAI,QAAQ,eAAgB,UAAS,MAAM;AAC3C,iBAAS,QAAQ;AACjB,gBAAQ,KAAK;AAAA,MACf,CAAC;AAAA,IACH;AAGA,aAAS,cAAc,EAAE;AAAA,MACvB,MAAM,QAAQ,QAAQ,MAAM;AAAA,MAC5B,MAAM,QAAQ,QAAQ,MAAM;AAAA,IAC9B;AAAA,EACF,CAAC;AACH;AAOA,eAAsB,cACpB,OACoC;AACpC,SAAO;AAAA,IACL,CAAC,YACC,MAAM,EAAE,WAAW,MAAM,QAAQ,WAAW,GAAG,UAAU,MAAM,QAAQ,WAAW,EAAE,CAAC;AAAA,IACvF,EAAE,QAAQ,YAAY;AAAA,EACxB;AACF;","names":[]}
|
|
@@ -1,64 +1,69 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
SelectList
|
|
4
|
+
} from "./chunk-XGMOXMS4.js";
|
|
2
5
|
import {
|
|
3
6
|
promptValue
|
|
4
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-OJJLYHM3.js";
|
|
8
|
+
import {
|
|
9
|
+
Spinner
|
|
10
|
+
} from "./chunk-ZBPEFQ4G.js";
|
|
5
11
|
import {
|
|
6
12
|
runWizardSession
|
|
7
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-KET3EVGX.js";
|
|
8
14
|
import {
|
|
9
15
|
useTerminalDimensions
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import {
|
|
12
|
-
SelectList
|
|
13
|
-
} from "./chunk-RNJWAKMO.js";
|
|
14
|
-
import {
|
|
15
|
-
Spinner
|
|
16
|
-
} from "./chunk-IUQBOCSU.js";
|
|
17
|
-
import {
|
|
18
|
-
STATUS_MESSAGES,
|
|
19
|
-
SUCCESS_MESSAGES
|
|
20
|
-
} from "./chunk-ODNDXQH2.js";
|
|
16
|
+
} from "./chunk-M5HSTNYU.js";
|
|
21
17
|
import {
|
|
22
18
|
compileAgentsAllScopes,
|
|
23
19
|
loadSource,
|
|
24
20
|
writeProjectConfig
|
|
25
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-F7Z5I6GU.js";
|
|
26
22
|
import {
|
|
27
|
-
discoverInstalledSkills
|
|
28
|
-
|
|
29
|
-
pluginInstallFailureError
|
|
30
|
-
} from "./chunk-SBHBBZKF.js";
|
|
23
|
+
discoverInstalledSkills
|
|
24
|
+
} from "./chunk-REKOWTIB.js";
|
|
31
25
|
import {
|
|
32
26
|
copyLocalSkills
|
|
33
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-NXGMM5YN.js";
|
|
34
28
|
import {
|
|
35
29
|
loadAgentDefs
|
|
36
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-FRWKCE6R.js";
|
|
37
31
|
import {
|
|
38
32
|
render
|
|
39
33
|
} from "./chunk-JFLVEFFP.js";
|
|
40
34
|
import {
|
|
41
35
|
orderDomains
|
|
42
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-HEBPKK5L.js";
|
|
43
37
|
import {
|
|
44
38
|
BaseCommand,
|
|
45
39
|
EXIT_CODES
|
|
46
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-X5XJ6WKO.js";
|
|
47
41
|
import {
|
|
48
42
|
clearTerminalScreen
|
|
49
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-K3O3YQYG.js";
|
|
50
44
|
import {
|
|
45
|
+
DEFAULT_SELECTION_OPTIONS,
|
|
46
|
+
INSTALL_MODE_DESCRIPTIONS,
|
|
51
47
|
INSTALL_MODE_LABELS,
|
|
48
|
+
STATUS_MESSAGES,
|
|
49
|
+
SUCCESS_MESSAGES,
|
|
50
|
+
activeAgentNames,
|
|
52
51
|
buildAgentScopeMap,
|
|
53
52
|
deriveInstallMode,
|
|
54
53
|
detectGlobalInstallation,
|
|
55
54
|
detectInstallation,
|
|
55
|
+
detectProjectInstallation,
|
|
56
56
|
getInstallationInfo,
|
|
57
57
|
isHomeDirectory,
|
|
58
|
+
isScopePairCompatible,
|
|
58
59
|
loadProjectConfig,
|
|
59
60
|
loadProjectConfigFromDir,
|
|
60
|
-
resolveInstallPaths
|
|
61
|
-
|
|
61
|
+
resolveInstallPaths,
|
|
62
|
+
seedPayloadSchema,
|
|
63
|
+
sharedConfigExistingInstall,
|
|
64
|
+
sharedConfigGlobalInstall,
|
|
65
|
+
validateSelection
|
|
66
|
+
} from "./chunk-NXQAY5U7.js";
|
|
62
67
|
import {
|
|
63
68
|
AGENT_NAMES,
|
|
64
69
|
fileExists,
|
|
@@ -66,10 +71,10 @@ import {
|
|
|
66
71
|
readFileSafe,
|
|
67
72
|
settingsFileSchema,
|
|
68
73
|
warn
|
|
69
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-U2YSGBHA.js";
|
|
70
75
|
import {
|
|
71
76
|
getCategoryDomain
|
|
72
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-35VOK7XE.js";
|
|
73
78
|
import {
|
|
74
79
|
ASCII_LOGO,
|
|
75
80
|
CLAUDE_DIR,
|
|
@@ -82,50 +87,14 @@ import {
|
|
|
82
87
|
EJECT_SOURCE,
|
|
83
88
|
MAX_CONFIG_FILE_SIZE,
|
|
84
89
|
STANDARD_FILES
|
|
85
|
-
} from "./chunk-
|
|
90
|
+
} from "./chunk-R54KIGN2.js";
|
|
86
91
|
|
|
87
92
|
// src/cli/commands/init.tsx
|
|
88
93
|
import os from "os";
|
|
94
|
+
import "react";
|
|
89
95
|
import { Flags } from "@oclif/core";
|
|
90
96
|
import { Box as Box2, Text as Text2, useApp } from "ink";
|
|
91
97
|
|
|
92
|
-
// src/cli/lib/seed/seed-schema.ts
|
|
93
|
-
import { z } from "zod";
|
|
94
|
-
var SEED_VERSION = 3;
|
|
95
|
-
var seedModelSchema = z.enum(["opus", "fable", "sonnet", "haiku"]);
|
|
96
|
-
var seedEffortSchema = z.enum(["low", "medium", "high", "xhigh", "max"]);
|
|
97
|
-
var seedLoadStateSchema = z.enum(["lazy", "preloaded"]);
|
|
98
|
-
var seedSkillSchema = z.object({
|
|
99
|
-
install: z.enum(["plugin", "eject"]),
|
|
100
|
-
scope: z.enum(["project", "global"]),
|
|
101
|
-
/** Sub-agent id -> load state; presence is assignment. */
|
|
102
|
-
assignments: z.record(z.string(), seedLoadStateSchema)
|
|
103
|
-
});
|
|
104
|
-
var seedAgentSchema = z.object({
|
|
105
|
-
/** Explicitly switched on (bare) or off. Absent means "whatever the assignments imply". */
|
|
106
|
-
on: z.boolean().optional(),
|
|
107
|
-
model: seedModelSchema.optional(),
|
|
108
|
-
effort: seedEffortSchema.optional(),
|
|
109
|
-
/**
|
|
110
|
-
* Which `.claude/agents` directory this sub-agent's front-matter is written to. Absent means
|
|
111
|
-
* `project` — the CLI's own default, so a resting choice never has to travel.
|
|
112
|
-
*/
|
|
113
|
-
scope: z.enum(["project", "global"]).optional()
|
|
114
|
-
});
|
|
115
|
-
var seedPayloadSchema = z.object({
|
|
116
|
-
v: z.literal(SEED_VERSION),
|
|
117
|
-
/**
|
|
118
|
-
* Diagnostics only. A mismatch with this CLI's matrix must never fail a decode — it explains
|
|
119
|
-
* why some ids were skipped, it does not decide whether to try.
|
|
120
|
-
*/
|
|
121
|
-
matrixVersion: z.string(),
|
|
122
|
-
stackId: z.string().nullable(),
|
|
123
|
-
/** Sparse — presence is selection. `remembered` never leaves the browser. */
|
|
124
|
-
skills: z.record(z.string(), seedSkillSchema),
|
|
125
|
-
/** Sparse — an agent with nothing to say has no entry. */
|
|
126
|
-
agents: z.record(z.string(), seedAgentSchema)
|
|
127
|
-
});
|
|
128
|
-
|
|
129
98
|
// src/cli/lib/seed/fetch-seed.ts
|
|
130
99
|
var SEED_API_URL = process.env.AGENTS_INC_API_URL ?? "https://api.agentsinc.sh";
|
|
131
100
|
var SEED_USER_AGENT = "agents-inc-cli";
|
|
@@ -190,19 +159,30 @@ function readAgentMap(agents) {
|
|
|
190
159
|
}
|
|
191
160
|
return { known, switchedOff, unknown };
|
|
192
161
|
}
|
|
162
|
+
function seedAgentScope(entry) {
|
|
163
|
+
return entry?.scope ?? DEFAULT_SELECTION_OPTIONS.scope;
|
|
164
|
+
}
|
|
193
165
|
function agentScopeConfig(name, entry) {
|
|
194
166
|
return {
|
|
195
167
|
name,
|
|
196
|
-
scope: entry
|
|
168
|
+
scope: seedAgentScope(entry),
|
|
197
169
|
...entry?.model !== void 0 && { model: entry.model },
|
|
198
170
|
...entry?.effort !== void 0 && { effort: entry.effort }
|
|
199
171
|
};
|
|
200
172
|
}
|
|
173
|
+
function unwritableAssignmentsError(assignments) {
|
|
174
|
+
return [
|
|
175
|
+
"This configuration cannot be installed: a project-scoped skill never reaches a sub-agent that rests at global scope, so these assignments have nowhere to be written:",
|
|
176
|
+
...assignments.map(({ skillId, agent }) => ` ${skillId} -> ${agent}`),
|
|
177
|
+
"Re-share it with each sub-agent above pinned to the project, or each skill above at global scope."
|
|
178
|
+
].join("\n");
|
|
179
|
+
}
|
|
201
180
|
function seedToWizardResult(payload, matrix) {
|
|
202
181
|
const domainSelections = {};
|
|
203
182
|
const assignedStack = {};
|
|
204
183
|
const skills = [];
|
|
205
184
|
const skippedSkillIds = [];
|
|
185
|
+
const unwritable = [];
|
|
206
186
|
const agentNames = /* @__PURE__ */ new Set();
|
|
207
187
|
const agentMap = readAgentMap(payload.agents);
|
|
208
188
|
const skippedAgentNames = new Set(agentMap.unknown);
|
|
@@ -229,10 +209,15 @@ function seedToWizardResult(payload, matrix) {
|
|
|
229
209
|
continue;
|
|
230
210
|
}
|
|
231
211
|
const agent = agentName;
|
|
212
|
+
if (!isScopePairCompatible(entry.scope, seedAgentScope(agentMap.known.get(agent)))) {
|
|
213
|
+
unwritable.push({ skillId: id, agent });
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
232
216
|
agentNames.add(agent);
|
|
233
217
|
addToAgentStack(assignedStack, agent, category, toSkillAssignment(id, load));
|
|
234
218
|
}
|
|
235
219
|
}
|
|
220
|
+
if (unwritable.length > 0) throw new Error(unwritableAssignmentsError(unwritable));
|
|
236
221
|
for (const [name, entry] of agentMap.known) {
|
|
237
222
|
if (entry.on === true) agentNames.add(name);
|
|
238
223
|
}
|
|
@@ -247,12 +232,17 @@ function seedToWizardResult(payload, matrix) {
|
|
|
247
232
|
domainSelections,
|
|
248
233
|
selectedDomains: orderDomains(Object.keys(domainSelections)),
|
|
249
234
|
// Nothing was dropped from a *saved config* — the skipped ids came off the wire and are
|
|
250
|
-
// reported to the user directly, so there is no
|
|
235
|
+
// reported to the user directly, so there is no config removal to explain.
|
|
251
236
|
unresolvableSkillIds: [],
|
|
252
237
|
cancelled: false,
|
|
253
|
-
//
|
|
254
|
-
//
|
|
255
|
-
|
|
238
|
+
// Revalidated here rather than taken on trust from the app that built the payload. That app
|
|
239
|
+
// validated against ITS catalog; this one skips ids it does not know and carries its own
|
|
240
|
+
// relationship rules, so a configuration that was consistent where it was authored can
|
|
241
|
+
// arrive with a requirement genuinely unmet. Running the same validator the wizard runs
|
|
242
|
+
// makes that this catalog's verdict on what it can install — reported through the spine
|
|
243
|
+
// `init` already has, beside the skips that explain it — rather than a fault in what was
|
|
244
|
+
// shared.
|
|
245
|
+
validation: validateSelection(skills.map((skill) => skill.id))
|
|
256
246
|
},
|
|
257
247
|
skippedSkillIds,
|
|
258
248
|
skippedAgentNames: [...skippedAgentNames]
|
|
@@ -260,6 +250,8 @@ function seedToWizardResult(payload, matrix) {
|
|
|
260
250
|
}
|
|
261
251
|
|
|
262
252
|
// src/cli/lib/permission-checker.tsx
|
|
253
|
+
import "react";
|
|
254
|
+
import "zod";
|
|
263
255
|
import { Text, Box } from "ink";
|
|
264
256
|
import path from "path";
|
|
265
257
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -392,6 +384,9 @@ async function runDashboardFlow(projectDir, config, origin, log) {
|
|
|
392
384
|
}
|
|
393
385
|
return true;
|
|
394
386
|
}
|
|
387
|
+
function writesGlobalContent(result) {
|
|
388
|
+
return result.skills.some((skill) => skill.scope === "global") || result.agentConfigs.some((agent) => agent.scope === "global");
|
|
389
|
+
}
|
|
395
390
|
var Init = class _Init extends BaseCommand {
|
|
396
391
|
static summary = `Initialize ${DEFAULT_BRANDING.NAME} in this project`;
|
|
397
392
|
static description = "Interactive wizard to set up skills and agents. Supports Plugin Mode (native install) and Eject Mode (copy to .claude/).";
|
|
@@ -403,17 +398,13 @@ var Init = class _Init extends BaseCommand {
|
|
|
403
398
|
{
|
|
404
399
|
description: "Initialize from a custom marketplace",
|
|
405
400
|
command: "<%= config.bin %> <%= command.id %> --source github:org/marketplace"
|
|
406
|
-
},
|
|
407
|
-
{
|
|
408
|
-
description: "Force refresh skills from remote",
|
|
409
|
-
command: "<%= config.bin %> <%= command.id %> --refresh"
|
|
410
401
|
}
|
|
411
402
|
];
|
|
412
403
|
static flags = {
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
description: "
|
|
416
|
-
|
|
404
|
+
source: Flags.string({
|
|
405
|
+
char: "s",
|
|
406
|
+
description: "Skills source path or URL",
|
|
407
|
+
required: false
|
|
417
408
|
}),
|
|
418
409
|
from: Flags.string({
|
|
419
410
|
description: "Install a configuration shared from agentsinc.sh by its id, without the wizard",
|
|
@@ -428,9 +419,11 @@ var Init = class _Init extends BaseCommand {
|
|
|
428
419
|
async run() {
|
|
429
420
|
const { flags } = await this.parse(_Init);
|
|
430
421
|
const projectDir = process.cwd();
|
|
422
|
+
await this.ensureConfigReadable(projectDir);
|
|
431
423
|
if (!flags.from && await this.showDashboardIfInitialized(projectDir)) return;
|
|
432
|
-
const selection = flags.from ? await this.selectionFromSharedConfig(flags.from, flags) : await this.selectionFromWizard(flags, projectDir);
|
|
424
|
+
const selection = flags.from ? await this.selectionFromSharedConfig(flags.from, flags, projectDir) : await this.selectionFromWizard(flags, projectDir);
|
|
433
425
|
if (!selection) this.exit(EXIT_CODES.CANCELLED);
|
|
426
|
+
this.reportValidationErrors(selection.result.validation);
|
|
434
427
|
if (selection.result.skills.length === 0 && selection.result.selectedAgents.length === 0) {
|
|
435
428
|
this.error(selection.emptyMessage, { exit: EXIT_CODES.ERROR });
|
|
436
429
|
}
|
|
@@ -472,18 +465,23 @@ var Init = class _Init extends BaseCommand {
|
|
|
472
465
|
/**
|
|
473
466
|
* The `--from <id>` producer: fetch and map, no wizard. Nothing here may assume a TTY — running
|
|
474
467
|
* headless is most of why the flag exists.
|
|
468
|
+
*
|
|
469
|
+
* It is also greenfield-only, which is what the two refusals are: a shared configuration is
|
|
470
|
+
* installed whole, so anything it would have to install over has to be uninstalled first.
|
|
475
471
|
*/
|
|
476
|
-
async selectionFromSharedConfig(id, flags) {
|
|
472
|
+
async selectionFromSharedConfig(id, flags, projectDir) {
|
|
473
|
+
await this.refuseInstalledProject(projectDir);
|
|
477
474
|
this.log(`Fetching configuration ${id}...`);
|
|
478
475
|
const fetched = await fetchSeedConfig(id);
|
|
479
476
|
if (!fetched.ok) {
|
|
480
477
|
this.error(fetched.error, { exit: EXIT_CODES.ERROR });
|
|
481
478
|
}
|
|
482
479
|
const { sourceResult } = await this.loadSourceOrFail(flags);
|
|
483
|
-
const { result, skippedSkillIds, skippedAgentNames } =
|
|
480
|
+
const { result, skippedSkillIds, skippedAgentNames } = this.decodeSeedOrFail(
|
|
484
481
|
fetched.payload,
|
|
485
482
|
sourceResult.matrix
|
|
486
483
|
);
|
|
484
|
+
await this.refuseBlockingGlobalInstall(result);
|
|
487
485
|
if (skippedSkillIds.length > 0) {
|
|
488
486
|
this.warn(
|
|
489
487
|
`Skipped ${skippedSkillIds.length} skill(s) this catalog does not know: ${skippedSkillIds.join(", ")}`
|
|
@@ -507,6 +505,47 @@ var Init = class _Init extends BaseCommand {
|
|
|
507
505
|
emptyMessage: `Configuration '${id}' contains no skills this catalog can install.`
|
|
508
506
|
};
|
|
509
507
|
}
|
|
508
|
+
/**
|
|
509
|
+
* Refuses to install a shared configuration into a directory that already has one.
|
|
510
|
+
*
|
|
511
|
+
* Project-scoped detection rather than `detectInstallation`, whose global fallback would refuse
|
|
512
|
+
* every clean project on a machine with a global install — including for a payload that never
|
|
513
|
+
* goes near it. Whether a global install is in the way is a question about the PAYLOAD, and
|
|
514
|
+
* {@link refuseBlockingGlobalInstall} is where it is asked.
|
|
515
|
+
*
|
|
516
|
+
* This runs before the fetch: there is nothing to learn from the network about a directory that
|
|
517
|
+
* is already spoken for.
|
|
518
|
+
*/
|
|
519
|
+
async refuseInstalledProject(projectDir) {
|
|
520
|
+
const installation = await detectProjectInstallation(projectDir);
|
|
521
|
+
if (!installation) return;
|
|
522
|
+
this.error(sharedConfigExistingInstall(installation.configPath), { exit: EXIT_CODES.ERROR });
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* The other half of the same rule. A payload carrying global-scoped skills or sub-agents writes
|
|
526
|
+
* into the user's own ~/.claude, so an installation there is in its way even when this project
|
|
527
|
+
* is spotless. A payload with nothing global cannot reach that far and is never refused for it.
|
|
528
|
+
*/
|
|
529
|
+
async refuseBlockingGlobalInstall(result) {
|
|
530
|
+
if (!writesGlobalContent(result)) return;
|
|
531
|
+
const globalInstallation = await detectGlobalInstallation();
|
|
532
|
+
if (!globalInstallation) return;
|
|
533
|
+
this.error(sharedConfigGlobalInstall(globalInstallation.configPath), {
|
|
534
|
+
exit: EXIT_CODES.ERROR
|
|
535
|
+
});
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* The decode refuses a payload the config model has nowhere to write (see `seedToWizardResult`).
|
|
539
|
+
* That is a failure of this command, reported with this command's exit code rather than left to
|
|
540
|
+
* surface as an unhandled throw.
|
|
541
|
+
*/
|
|
542
|
+
decodeSeedOrFail(payload, matrix) {
|
|
543
|
+
try {
|
|
544
|
+
return seedToWizardResult(payload, matrix);
|
|
545
|
+
} catch (error) {
|
|
546
|
+
this.handleError(error);
|
|
547
|
+
}
|
|
548
|
+
}
|
|
510
549
|
async showDashboardIfInitialized(projectDir) {
|
|
511
550
|
return runDashboardFlow(projectDir, this.config, "init", (msg) => this.log(msg));
|
|
512
551
|
}
|
|
@@ -519,9 +558,10 @@ var Init = class _Init extends BaseCommand {
|
|
|
519
558
|
async loadSourceOrFail(flags) {
|
|
520
559
|
try {
|
|
521
560
|
const loaded = await loadSource({
|
|
522
|
-
|
|
561
|
+
// The one load that may CHOOSE a source rather than read the stored one.
|
|
562
|
+
caller: "init",
|
|
563
|
+
...flags.source !== void 0 && { sourceFlag: flags.source },
|
|
523
564
|
projectDir: process.cwd(),
|
|
524
|
-
forceRefresh: flags.refresh,
|
|
525
565
|
captureStartupMessages: true
|
|
526
566
|
});
|
|
527
567
|
return { sourceResult: loaded.sourceResult, startupMessages: loaded.startupMessages };
|
|
@@ -532,20 +572,23 @@ var Init = class _Init extends BaseCommand {
|
|
|
532
572
|
}
|
|
533
573
|
}
|
|
534
574
|
async runWizard(sourceResult, startupMessages, projectDir, globalConfig, isGlobalRoot) {
|
|
575
|
+
const selectedAgents = globalConfig?.agents && activeAgentNames(globalConfig.agents);
|
|
576
|
+
const globalSkills = globalConfig?.skills;
|
|
535
577
|
return runWizardSession({
|
|
536
578
|
hydrate: {
|
|
537
|
-
initialAgents:
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
579
|
+
...selectedAgents !== void 0 && { initialAgents: selectedAgents },
|
|
580
|
+
...globalSkills !== void 0 && {
|
|
581
|
+
installedSkillIds: globalSkills.map((s) => s.id),
|
|
582
|
+
installedSkillConfigs: globalSkills
|
|
583
|
+
},
|
|
584
|
+
...globalConfig?.agents !== void 0 && { installedAgentConfigs: globalConfig.agents },
|
|
541
585
|
isEditingFromGlobalScope: isGlobalRoot
|
|
542
586
|
},
|
|
543
587
|
props: {
|
|
544
588
|
version: this.config.version,
|
|
545
589
|
logo: ASCII_LOGO,
|
|
546
|
-
initialAgents:
|
|
547
|
-
installedSkillIds: globalConfig?.skills
|
|
548
|
-
projectDir,
|
|
590
|
+
initialAgents: selectedAgents,
|
|
591
|
+
installedSkillIds: globalConfig?.skills.map((s) => s.id),
|
|
549
592
|
startupMessages
|
|
550
593
|
},
|
|
551
594
|
onCancel: () => this.log("Setup cancelled"),
|
|
@@ -566,7 +609,7 @@ var Init = class _Init extends BaseCommand {
|
|
|
566
609
|
) : null;
|
|
567
610
|
const copyResult = installMode === "eject" || installMode === "mixed" ? await this.copyEjectSkillsStep(ejectedSkills, projectDir, sourceResult, installMode) : null;
|
|
568
611
|
if (resolvedMarketplace !== null) {
|
|
569
|
-
await this.
|
|
612
|
+
await this.installPluginSkillsReported(pluginSkills, resolvedMarketplace, projectDir);
|
|
570
613
|
}
|
|
571
614
|
const pluginModeSucceeded = resolvedMarketplace !== null;
|
|
572
615
|
try {
|
|
@@ -583,25 +626,34 @@ var Init = class _Init extends BaseCommand {
|
|
|
583
626
|
pluginModeSucceeded,
|
|
584
627
|
copyResult
|
|
585
628
|
);
|
|
586
|
-
|
|
587
|
-
if (permissionWarning) {
|
|
588
|
-
if (interactive) {
|
|
589
|
-
const { waitUntilExit } = render(permissionWarning);
|
|
590
|
-
await waitUntilExit();
|
|
591
|
-
} else {
|
|
592
|
-
const { unmount } = render(permissionWarning);
|
|
593
|
-
unmount();
|
|
594
|
-
}
|
|
595
|
-
}
|
|
629
|
+
await this.showPermissionNotice(projectDir, interactive);
|
|
596
630
|
} catch (error) {
|
|
597
631
|
this.handleError(error);
|
|
598
632
|
}
|
|
599
633
|
}
|
|
634
|
+
/**
|
|
635
|
+
* The permission notice, where there is one to show. It is an Ink app with no exit of its own,
|
|
636
|
+
* so `waitUntilExit()` only ever resolves because a person is there to end it — which is fine
|
|
637
|
+
* after the wizard and a hang everywhere else. Without a terminal to hold, one frame is
|
|
638
|
+
* rendered and let go: the notice is information, not a prompt, so there is nothing to answer
|
|
639
|
+
* and nothing to wait for.
|
|
640
|
+
*/
|
|
641
|
+
async showPermissionNotice(projectDir, interactive) {
|
|
642
|
+
const permissionWarning = await checkPermissions(projectDir);
|
|
643
|
+
if (!permissionWarning) return;
|
|
644
|
+
if (!interactive) {
|
|
645
|
+
const { unmount } = render(permissionWarning);
|
|
646
|
+
unmount();
|
|
647
|
+
return;
|
|
648
|
+
}
|
|
649
|
+
const { waitUntilExit } = render(permissionWarning);
|
|
650
|
+
await waitUntilExit();
|
|
651
|
+
}
|
|
600
652
|
logInstallPlan(installMode, ejectedSkills, pluginSkills) {
|
|
601
653
|
this.log("\n");
|
|
602
654
|
this.log(`Selected ${ejectedSkills.length + pluginSkills.length} skills`);
|
|
603
655
|
this.log(
|
|
604
|
-
`Install mode: ${installMode === "
|
|
656
|
+
`Install mode: ${installMode === "mixed" ? `${INSTALL_MODE_LABELS.mixed} (${ejectedSkills.length} eject, ${pluginSkills.length} plugin)` : INSTALL_MODE_DESCRIPTIONS[installMode]}`
|
|
605
657
|
);
|
|
606
658
|
}
|
|
607
659
|
async copyEjectSkillsStep(localSkills, projectDir, sourceResult, installMode) {
|
|
@@ -623,30 +675,13 @@ var Init = class _Init extends BaseCommand {
|
|
|
623
675
|
}
|
|
624
676
|
return copyResult;
|
|
625
677
|
}
|
|
626
|
-
async installPluginsStep(pluginSkills, marketplace, projectDir) {
|
|
627
|
-
this.log("Installing skill plugins...");
|
|
628
|
-
const pluginResult = await installPluginSkills(pluginSkills, marketplace, projectDir);
|
|
629
|
-
for (const item of pluginResult.installed) {
|
|
630
|
-
this.log(` Installed ${item.ref}`);
|
|
631
|
-
}
|
|
632
|
-
for (const item of pluginResult.failed) {
|
|
633
|
-
this.warn(`Failed to install plugin ${item.id}: ${item.error}`);
|
|
634
|
-
}
|
|
635
|
-
if (pluginResult.failed.length > 0) {
|
|
636
|
-
this.error(pluginInstallFailureError(pluginResult.failed.length), {
|
|
637
|
-
exit: EXIT_CODES.ERROR
|
|
638
|
-
});
|
|
639
|
-
}
|
|
640
|
-
this.log(`Installed ${pluginResult.installed.length} skill plugins
|
|
641
|
-
`);
|
|
642
|
-
}
|
|
643
678
|
async writeConfigAndCompile(result, sourceResult, flags) {
|
|
644
679
|
this.log("Generating configuration...");
|
|
645
680
|
const configResult = await writeProjectConfig({
|
|
646
681
|
wizardResult: result,
|
|
647
682
|
sourceResult,
|
|
648
683
|
projectDir: process.cwd(),
|
|
649
|
-
sourceFlag: flags.source
|
|
684
|
+
...flags.source !== void 0 && { sourceFlag: flags.source }
|
|
650
685
|
});
|
|
651
686
|
if (configResult.wasMerged) {
|
|
652
687
|
this.log(`Merged with existing config at ${configResult.existingConfigPath}`);
|
|
@@ -669,20 +704,6 @@ var Init = class _Init extends BaseCommand {
|
|
|
669
704
|
this.reportPropagatedRecompile(configResult.propagation);
|
|
670
705
|
return { configResult, compileResult, agentScopeMap };
|
|
671
706
|
}
|
|
672
|
-
/**
|
|
673
|
-
* Renders the recompile the gated write already performed on every OTHER
|
|
674
|
-
* registered project this run's global change was propagated into.
|
|
675
|
-
*/
|
|
676
|
-
reportPropagatedRecompile(propagation) {
|
|
677
|
-
if (propagation.propagated.updated.length === 0) return;
|
|
678
|
-
const { recompiledCount, failedCount, warnings } = propagation.recompile;
|
|
679
|
-
for (const warning of warnings) {
|
|
680
|
-
this.warn(warning);
|
|
681
|
-
}
|
|
682
|
-
const failureSuffix = failedCount > 0 ? ` (${failedCount} failed)` : "";
|
|
683
|
-
this.log(`Recompiled agents in ${recompiledCount} registered projects${failureSuffix}
|
|
684
|
-
`);
|
|
685
|
-
}
|
|
686
707
|
reportSuccess(configResult, compileResult, agentScopeMap, installMode, pluginModeSucceeded, copyResult) {
|
|
687
708
|
this.log(`${SUCCESS_MESSAGES.INIT_SUCCESS}
|
|
688
709
|
`);
|
|
@@ -759,12 +780,12 @@ var Init = class _Init extends BaseCommand {
|
|
|
759
780
|
};
|
|
760
781
|
async function getDashboardData(projectDir) {
|
|
761
782
|
const [info, loaded] = await Promise.all([getInstallationInfo(), loadProjectConfig(projectDir)]);
|
|
762
|
-
const activeSkills = loaded?.config
|
|
783
|
+
const activeSkills = loaded?.config.skills.filter((s) => !s.excluded);
|
|
763
784
|
const skillCount = info?.skillCount ?? 0;
|
|
764
785
|
const agentCount = info?.agentCount ?? 0;
|
|
765
786
|
const mode = info?.mode ?? (activeSkills ? deriveInstallMode(activeSkills) : "eject");
|
|
766
|
-
const source = loaded?.config
|
|
767
|
-
return { skillCount, agentCount, mode, source };
|
|
787
|
+
const source = loaded?.config.source;
|
|
788
|
+
return { skillCount, agentCount, mode, ...source !== void 0 && { source } };
|
|
768
789
|
}
|
|
769
790
|
|
|
770
791
|
export {
|
|
@@ -774,4 +795,4 @@ export {
|
|
|
774
795
|
Init,
|
|
775
796
|
getDashboardData
|
|
776
797
|
};
|
|
777
|
-
//# sourceMappingURL=chunk-
|
|
798
|
+
//# sourceMappingURL=chunk-ORJ5Y222.js.map
|