agents-inc 0.152.1 → 0.154.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/README.md +31 -35
- package/dist/{chunk-FVDKAVOL.js → chunk-2IMYK4WN.js} +18 -51
- package/dist/chunk-2IMYK4WN.js.map +1 -0
- package/dist/{chunk-PMM2MYMA.js → chunk-4VCWL2IG.js} +649 -357
- package/dist/chunk-4VCWL2IG.js.map +1 -0
- package/dist/{chunk-PZIZNMHK.js → chunk-5MFJ24VM.js} +237 -150
- package/dist/chunk-5MFJ24VM.js.map +1 -0
- package/dist/{chunk-KXYVJGJP.js → chunk-6CNRMCFM.js} +3 -2
- package/dist/{chunk-KXYVJGJP.js.map → chunk-6CNRMCFM.js.map} +1 -1
- package/dist/chunk-7VZV4O6B.js +40 -0
- package/dist/chunk-7VZV4O6B.js.map +1 -0
- package/dist/{chunk-SX5H6TSC.js → chunk-AKQ5QISO.js} +11 -8
- package/dist/chunk-AKQ5QISO.js.map +1 -0
- package/dist/{chunk-BNSRA6HL.js → chunk-AURY6RT6.js} +39 -176
- package/dist/chunk-AURY6RT6.js.map +1 -0
- package/dist/{chunk-LZ52XEPR.js → chunk-B66SC72V.js} +7 -6
- package/dist/chunk-B66SC72V.js.map +1 -0
- package/dist/{chunk-LASI35KT.js → chunk-BZ4CZBOM.js} +14 -28
- package/dist/chunk-BZ4CZBOM.js.map +1 -0
- package/dist/chunk-CBF4ZYV3.js +18540 -0
- package/dist/chunk-CBF4ZYV3.js.map +1 -0
- package/dist/{chunk-5GUOIJSG.js → chunk-CHNA5RVS.js} +3 -15
- package/dist/chunk-CHNA5RVS.js.map +1 -0
- package/dist/{chunk-LDP5ASDM.js → chunk-DRKSYJZ2.js} +2 -19
- package/dist/chunk-DRKSYJZ2.js.map +1 -0
- package/dist/chunk-FMYHWKGG.js +325 -0
- package/dist/chunk-FMYHWKGG.js.map +1 -0
- package/dist/{chunk-SKQWRUPX.js → chunk-GUDGCFSF.js} +59 -33
- package/dist/chunk-GUDGCFSF.js.map +1 -0
- package/dist/{chunk-WKTHWQKM.js → chunk-IPJOMAWC.js} +5070 -6305
- package/dist/chunk-IPJOMAWC.js.map +1 -0
- package/dist/chunk-IXEDSKMH.js +48 -0
- package/dist/chunk-IXEDSKMH.js.map +1 -0
- package/dist/{chunk-TUPYW2IQ.js → chunk-JC7DBPRD.js} +9 -12
- package/dist/chunk-JC7DBPRD.js.map +1 -0
- package/dist/{chunk-ZL7PFNHN.js → chunk-K3O3YQYG.js} +2 -2
- package/dist/{chunk-QRDTLVXG.js → chunk-LA3JPESW.js} +9 -22
- package/dist/chunk-LA3JPESW.js.map +1 -0
- package/dist/{chunk-MWG4VU64.js → chunk-MJFIO5SX.js} +50 -74
- package/dist/chunk-MJFIO5SX.js.map +1 -0
- package/dist/{chunk-L7SZXUBJ.js → chunk-NFH6SA62.js} +7 -6
- package/dist/{chunk-L7SZXUBJ.js.map → chunk-NFH6SA62.js.map} +1 -1
- package/dist/{chunk-GRVKW3CC.js → chunk-NKCY2ULI.js} +3 -2
- package/dist/{chunk-GRVKW3CC.js.map → chunk-NKCY2ULI.js.map} +1 -1
- package/dist/{chunk-TJJPWUMA.js → chunk-NSJ2S7R5.js} +3 -2
- package/dist/{chunk-TJJPWUMA.js.map → chunk-NSJ2S7R5.js.map} +1 -1
- package/dist/{chunk-Q2KG7UV3.js → chunk-OJJLYHM3.js} +2 -1
- package/dist/{chunk-Q2KG7UV3.js.map → chunk-OJJLYHM3.js.map} +1 -1
- package/dist/{chunk-MJ2KHG24.js → chunk-ONWEOS77.js} +6 -6
- package/dist/{chunk-MJ2KHG24.js.map → chunk-ONWEOS77.js.map} +1 -1
- package/dist/{chunk-NR3OZGL4.js → chunk-OZXAJNLA.js} +2 -1
- package/dist/{chunk-NR3OZGL4.js.map → chunk-OZXAJNLA.js.map} +1 -1
- package/dist/{chunk-QZZJFYUQ.js → chunk-PRJD5MMQ.js} +3 -3
- package/dist/chunk-PRJD5MMQ.js.map +1 -0
- package/dist/{chunk-MM7CTTAV.js → chunk-Q5FLW4JG.js} +2 -2
- package/dist/{chunk-MM7CTTAV.js.map → chunk-Q5FLW4JG.js.map} +1 -1
- package/dist/{chunk-5UWKOOIS.js → chunk-QQTYMW7N.js} +131 -209
- package/dist/chunk-QQTYMW7N.js.map +1 -0
- package/dist/{chunk-MVR3SYMN.js → chunk-QUDQTO3O.js} +4 -3
- package/dist/{chunk-MVR3SYMN.js.map → chunk-QUDQTO3O.js.map} +1 -1
- package/dist/{chunk-76ADG7LQ.js → chunk-R54KIGN2.js} +8 -22
- package/dist/chunk-R54KIGN2.js.map +1 -0
- package/dist/{chunk-XHUODHZ4.js → chunk-R7JV22QK.js} +22 -49
- package/dist/chunk-R7JV22QK.js.map +1 -0
- package/dist/{chunk-E5X6RJ4E.js → chunk-TUQF577Z.js} +56 -53
- package/dist/chunk-TUQF577Z.js.map +1 -0
- package/dist/{chunk-IHUY4M22.js → chunk-UW44KSYL.js} +4 -4
- package/dist/{chunk-DTSG5XZB.js → chunk-V3ENMW7G.js} +3 -3
- package/dist/chunk-VZRO7RYT.js +3694 -0
- package/dist/chunk-VZRO7RYT.js.map +1 -0
- package/dist/{chunk-MQ7FLIYS.js → chunk-WRRP47PY.js} +3 -2
- package/dist/{chunk-MQ7FLIYS.js.map → chunk-WRRP47PY.js.map} +1 -1
- package/dist/{chunk-RNJWAKMO.js → chunk-XGMOXMS4.js} +9 -8
- package/dist/chunk-XGMOXMS4.js.map +1 -0
- package/dist/{chunk-STMHDOZD.js → chunk-XMEIVWAS.js} +12 -9
- package/dist/chunk-XMEIVWAS.js.map +1 -0
- package/dist/{chunk-IUQBOCSU.js → chunk-ZBPEFQ4G.js} +2 -1
- package/dist/{chunk-IUQBOCSU.js.map → chunk-ZBPEFQ4G.js.map} +1 -1
- package/dist/chunk-ZU6DAR4S.js +223 -0
- package/dist/chunk-ZU6DAR4S.js.map +1 -0
- package/dist/commands/build/marketplace.js +115 -35
- package/dist/commands/build/marketplace.js.map +1 -1
- package/dist/commands/build/plugins.js +9 -10
- package/dist/commands/build/plugins.js.map +1 -1
- package/dist/commands/compile.js +135 -70
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/doctor.js +793 -64
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +231 -236
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +24 -39
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/init.js +41 -46
- package/dist/commands/list.js +10 -12
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/search.js +35 -88
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +212 -167
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +82 -332
- package/dist/commands/update.js.map +1 -1
- package/dist/components/common/confirm.js +1 -1
- package/dist/components/common/prompt-confirm.js +1 -1
- package/dist/components/common/select-list.js +2 -2
- package/dist/components/common/spinner.js +1 -1
- package/dist/components/wizard/category-grid.js +5 -6
- package/dist/components/wizard/checkbox-grid.js +5 -6
- package/dist/components/wizard/domain-selection.js +12 -13
- package/dist/components/wizard/run-wizard-session.js +30 -36
- package/dist/components/wizard/scroll-affordance.js +2 -2
- package/dist/components/wizard/skill-agent-summary.js +7 -7
- package/dist/components/wizard/source-grid.js +6 -11
- package/dist/components/wizard/stack-selection.js +9 -9
- package/dist/components/wizard/step-agents.js +12 -12
- package/dist/components/wizard/step-build.js +10 -11
- package/dist/components/wizard/step-confirm.js +11 -11
- package/dist/components/wizard/step-sources.js +11 -17
- package/dist/components/wizard/step-stack.js +10 -10
- package/dist/components/wizard/summary-panel.js +10 -10
- package/dist/components/wizard/toast.js +2 -2
- package/dist/components/wizard/wizard-layout.js +15 -16
- package/dist/components/wizard/wizard-tabs.js +6 -12
- package/dist/components/wizard/wizard.js +29 -35
- package/dist/config-exports.js +1 -1
- package/dist/copy-local-skills-WVHJFRPK.js +14 -0
- package/dist/hooks/init.js +49 -48
- package/dist/hooks/init.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/load-agent-defs-5OT54J5M.js +15 -0
- package/dist/{loader-5JP4S7CJ.js → loader-JIZDTR4G.js} +7 -5
- package/dist/recompile-project-agents-VREEPBDV.js +20 -0
- package/dist/{source-loader-MZYCPL2S.js → source-loader-OE6EJFPU.js} +6 -6
- package/dist/src/agents/developer/ai-developer/identity.md +4 -4
- package/dist/src/agents/developer/ai-developer/playbook.md +1 -1
- package/dist/src/agents/developer/api-developer/identity.md +4 -4
- package/dist/src/agents/developer/api-developer/metadata.yaml +1 -1
- package/dist/src/agents/developer/cli-developer/identity.md +4 -4
- package/dist/src/agents/developer/web-developer/identity.md +2 -2
- package/dist/src/agents/developer/web-developer/metadata.yaml +1 -1
- package/dist/src/agents/meta/agent-summoner/identity.md +4 -5
- package/dist/src/agents/meta/agent-summoner/output.md +2 -2
- package/dist/src/agents/meta/agent-summoner/playbook.md +15 -16
- package/dist/src/agents/meta/codex-keeper/identity.md +4 -4
- package/dist/src/agents/meta/codex-keeper/playbook.md +1 -1
- package/dist/src/agents/meta/convention-keeper/identity.md +1 -1
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +0 -34
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +27 -3
- package/dist/src/agents/meta/skill-summoner/identity.md +2 -2
- package/{src/agents/planning/web-pm → dist/src/agents/planning/pm}/critical-reminders.md +10 -7
- package/dist/src/agents/planning/{web-pm → pm}/critical-requirements.md +8 -4
- package/dist/src/agents/planning/pm/identity.md +47 -0
- package/dist/src/agents/planning/pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/{web-pm → pm}/output.md +7 -90
- package/dist/src/agents/planning/pm/playbook.md +185 -0
- package/dist/src/agents/researcher/ai-researcher/critical-reminders.md +58 -0
- package/dist/src/agents/researcher/ai-researcher/critical-requirements.md +40 -0
- package/dist/src/agents/researcher/ai-researcher/identity.md +86 -0
- package/dist/src/agents/researcher/ai-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/ai-researcher/output.md +363 -0
- package/dist/src/agents/researcher/ai-researcher/playbook.md +545 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +16 -0
- package/dist/src/agents/researcher/api-researcher/identity.md +7 -7
- package/dist/src/agents/researcher/cli-researcher/critical-reminders.md +50 -0
- package/dist/src/agents/researcher/cli-researcher/critical-requirements.md +36 -0
- package/dist/src/agents/researcher/cli-researcher/identity.md +87 -0
- package/dist/src/agents/researcher/cli-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/cli-researcher/output.md +343 -0
- package/dist/src/agents/researcher/cli-researcher/playbook.md +370 -0
- package/dist/src/agents/researcher/web-researcher/identity.md +5 -6
- package/dist/src/agents/reviewer/reviewer/critical-reminders.md +29 -0
- package/dist/src/agents/reviewer/reviewer/critical-requirements.md +31 -0
- package/dist/src/agents/reviewer/reviewer/identity.md +41 -0
- package/dist/src/agents/reviewer/reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/reviewer/output.md +202 -0
- package/dist/src/agents/reviewer/reviewer/playbook.md +141 -0
- package/dist/src/agents/tester/ai-tester/critical-reminders.md +48 -0
- package/dist/src/agents/tester/ai-tester/critical-requirements.md +49 -0
- package/dist/src/agents/tester/ai-tester/identity.md +62 -0
- package/dist/src/agents/tester/ai-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/ai-tester/output.md +375 -0
- package/dist/src/agents/tester/ai-tester/playbook.md +789 -0
- package/dist/src/agents/tester/api-tester/identity.md +3 -3
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +3 -3
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +2 -2
- package/dist/src/agents/tester/cli-tester/identity.md +3 -3
- package/dist/src/agents/tester/cli-tester/output.md +4 -4
- package/dist/src/agents/tester/cli-tester/playbook.md +3 -3
- package/dist/src/agents/tester/web-tester/identity.md +3 -3
- package/dist/stores/wizard-store.js +8 -6
- package/package.json +13 -2
- package/src/agents/developer/ai-developer/identity.md +4 -4
- package/src/agents/developer/ai-developer/playbook.md +1 -1
- package/src/agents/developer/api-developer/identity.md +4 -4
- package/src/agents/developer/api-developer/metadata.yaml +1 -1
- package/src/agents/developer/cli-developer/identity.md +4 -4
- package/src/agents/developer/web-developer/identity.md +2 -2
- package/src/agents/developer/web-developer/metadata.yaml +1 -1
- package/src/agents/meta/agent-summoner/identity.md +4 -5
- package/src/agents/meta/agent-summoner/output.md +2 -2
- package/src/agents/meta/agent-summoner/playbook.md +15 -16
- package/src/agents/meta/codex-keeper/identity.md +4 -4
- package/src/agents/meta/codex-keeper/playbook.md +1 -1
- package/src/agents/meta/convention-keeper/identity.md +1 -1
- package/src/agents/meta/skill-summoner/critical-reminders.md +0 -34
- package/src/agents/meta/skill-summoner/critical-requirements.md +27 -3
- package/src/agents/meta/skill-summoner/identity.md +2 -2
- package/{dist/src/agents/planning/web-pm → src/agents/planning/pm}/critical-reminders.md +10 -7
- package/src/agents/planning/{web-pm → pm}/critical-requirements.md +8 -4
- package/src/agents/planning/pm/identity.md +47 -0
- package/src/agents/planning/pm/metadata.yaml +12 -0
- package/src/agents/planning/{web-pm → pm}/output.md +7 -90
- package/src/agents/planning/pm/playbook.md +185 -0
- package/src/agents/researcher/ai-researcher/critical-reminders.md +58 -0
- package/src/agents/researcher/ai-researcher/critical-requirements.md +40 -0
- package/src/agents/researcher/ai-researcher/identity.md +86 -0
- package/src/agents/researcher/ai-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/ai-researcher/output.md +363 -0
- package/src/agents/researcher/ai-researcher/playbook.md +545 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +16 -0
- package/src/agents/researcher/api-researcher/identity.md +7 -7
- package/src/agents/researcher/cli-researcher/critical-reminders.md +50 -0
- package/src/agents/researcher/cli-researcher/critical-requirements.md +36 -0
- package/src/agents/researcher/cli-researcher/identity.md +87 -0
- package/src/agents/researcher/cli-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/cli-researcher/output.md +343 -0
- package/src/agents/researcher/cli-researcher/playbook.md +370 -0
- package/src/agents/researcher/web-researcher/identity.md +5 -6
- package/src/agents/reviewer/reviewer/critical-reminders.md +29 -0
- package/src/agents/reviewer/reviewer/critical-requirements.md +31 -0
- package/src/agents/reviewer/reviewer/identity.md +41 -0
- package/src/agents/reviewer/reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/reviewer/output.md +202 -0
- package/src/agents/reviewer/reviewer/playbook.md +141 -0
- package/src/agents/tester/ai-tester/critical-reminders.md +48 -0
- package/src/agents/tester/ai-tester/critical-requirements.md +49 -0
- package/src/agents/tester/ai-tester/identity.md +62 -0
- package/src/agents/tester/ai-tester/metadata.yaml +12 -0
- package/src/agents/tester/ai-tester/output.md +375 -0
- package/src/agents/tester/ai-tester/playbook.md +789 -0
- package/src/agents/tester/api-tester/identity.md +3 -3
- package/src/agents/tester/cli-tester/critical-reminders.md +3 -3
- package/src/agents/tester/cli-tester/critical-requirements.md +2 -2
- package/src/agents/tester/cli-tester/identity.md +3 -3
- package/src/agents/tester/cli-tester/output.md +4 -4
- package/src/agents/tester/cli-tester/playbook.md +3 -3
- package/src/agents/tester/web-tester/identity.md +3 -3
- package/src/schemas/metadata.schema.json +31 -2
- package/src/schemas/plugin.schema.json +3 -0
- package/src/schemas/project-config.schema.json +61 -15
- package/src/schemas/project-source-config.schema.json +0 -47
- package/dist/chunk-5GUOIJSG.js.map +0 -1
- package/dist/chunk-5UWKOOIS.js.map +0 -1
- package/dist/chunk-76ADG7LQ.js.map +0 -1
- package/dist/chunk-BNSRA6HL.js.map +0 -1
- package/dist/chunk-E5X6RJ4E.js.map +0 -1
- package/dist/chunk-EEPELKOM.js +0 -5938
- package/dist/chunk-EEPELKOM.js.map +0 -1
- package/dist/chunk-F7T5AFFN.js +0 -20
- package/dist/chunk-F7T5AFFN.js.map +0 -1
- package/dist/chunk-FVDKAVOL.js.map +0 -1
- package/dist/chunk-KFB5CRXZ.js +0 -377
- package/dist/chunk-KFB5CRXZ.js.map +0 -1
- package/dist/chunk-KR65TPKC.js +0 -664
- package/dist/chunk-KR65TPKC.js.map +0 -1
- package/dist/chunk-LASI35KT.js.map +0 -1
- package/dist/chunk-LDP5ASDM.js.map +0 -1
- package/dist/chunk-LZ52XEPR.js.map +0 -1
- package/dist/chunk-M7HO7NBK.js +0 -88
- package/dist/chunk-M7HO7NBK.js.map +0 -1
- package/dist/chunk-MWG4VU64.js.map +0 -1
- package/dist/chunk-ODNDXQH2.js +0 -77
- package/dist/chunk-ODNDXQH2.js.map +0 -1
- package/dist/chunk-P44SXVH3.js +0 -80
- package/dist/chunk-P44SXVH3.js.map +0 -1
- package/dist/chunk-PMM2MYMA.js.map +0 -1
- package/dist/chunk-PZIZNMHK.js.map +0 -1
- package/dist/chunk-Q45ZU6HD.js +0 -37
- package/dist/chunk-Q45ZU6HD.js.map +0 -1
- package/dist/chunk-QRDTLVXG.js.map +0 -1
- package/dist/chunk-QZZJFYUQ.js.map +0 -1
- package/dist/chunk-R5NOI2LP.js +0 -170
- package/dist/chunk-R5NOI2LP.js.map +0 -1
- package/dist/chunk-RNJWAKMO.js.map +0 -1
- package/dist/chunk-SBHBBZKF.js +0 -284
- package/dist/chunk-SBHBBZKF.js.map +0 -1
- package/dist/chunk-SKQWRUPX.js.map +0 -1
- package/dist/chunk-STMHDOZD.js.map +0 -1
- package/dist/chunk-SX5H6TSC.js.map +0 -1
- package/dist/chunk-TUPYW2IQ.js.map +0 -1
- package/dist/chunk-UBEDZ4FD.js +0 -4198
- package/dist/chunk-UBEDZ4FD.js.map +0 -1
- package/dist/chunk-VY6MNOXL.js +0 -20
- package/dist/chunk-VY6MNOXL.js.map +0 -1
- package/dist/chunk-WBCPLH66.js +0 -42
- package/dist/chunk-WBCPLH66.js.map +0 -1
- package/dist/chunk-WKTHWQKM.js.map +0 -1
- package/dist/chunk-XHUODHZ4.js.map +0 -1
- package/dist/chunk-ZPPHXXAP.js +0 -252
- package/dist/chunk-ZPPHXXAP.js.map +0 -1
- package/dist/commands/import/skill.js +0 -344
- package/dist/commands/import/skill.js.map +0 -1
- package/dist/commands/new/agent.js +0 -300
- package/dist/commands/new/agent.js.map +0 -1
- package/dist/commands/new/marketplace.js +0 -310
- package/dist/commands/new/marketplace.js.map +0 -1
- package/dist/commands/new/skill.js +0 -26
- package/dist/commands/validate.js +0 -575
- package/dist/commands/validate.js.map +0 -1
- package/dist/components/wizard/search-modal.js +0 -13
- package/dist/components/wizard/selection-card.js +0 -9
- package/dist/components/wizard/step-settings.js +0 -18
- package/dist/copy-local-skills-6EMVN7RB.js +0 -14
- package/dist/load-agent-defs-BWOUVEAR.js +0 -15
- package/dist/load-agent-defs-BWOUVEAR.js.map +0 -1
- package/dist/loader-5JP4S7CJ.js.map +0 -1
- package/dist/recompile-project-agents-6DL45TDI.js +0 -19
- package/dist/recompile-project-agents-6DL45TDI.js.map +0 -1
- package/dist/source-loader-MZYCPL2S.js.map +0 -1
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +0 -48
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +0 -65
- package/dist/src/agents/developer/web-architecture/identity.md +0 -64
- package/dist/src/agents/developer/web-architecture/metadata.yaml +0 -12
- package/dist/src/agents/developer/web-architecture/output.md +0 -449
- package/dist/src/agents/developer/web-architecture/playbook.md +0 -481
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +0 -71
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +0 -31
- package/dist/src/agents/pattern/pattern-scout/identity.md +0 -25
- package/dist/src/agents/pattern/pattern-scout/metadata.yaml +0 -10
- package/dist/src/agents/pattern/pattern-scout/output.md +0 -290
- package/dist/src/agents/pattern/pattern-scout/playbook.md +0 -1806
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +0 -30
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +0 -28
- package/dist/src/agents/pattern/web-pattern-critique/identity.md +0 -41
- package/dist/src/agents/pattern/web-pattern-critique/metadata.yaml +0 -12
- package/dist/src/agents/pattern/web-pattern-critique/output.md +0 -314
- package/dist/src/agents/pattern/web-pattern-critique/playbook.md +0 -572
- package/dist/src/agents/planning/api-pm/critical-reminders.md +0 -48
- package/dist/src/agents/planning/api-pm/critical-requirements.md +0 -41
- package/dist/src/agents/planning/api-pm/identity.md +0 -39
- package/dist/src/agents/planning/api-pm/metadata.yaml +0 -12
- package/dist/src/agents/planning/api-pm/output.md +0 -475
- package/dist/src/agents/planning/api-pm/playbook.md +0 -129
- package/dist/src/agents/planning/web-pm/identity.md +0 -26
- package/dist/src/agents/planning/web-pm/metadata.yaml +0 -12
- package/dist/src/agents/planning/web-pm/playbook.md +0 -318
- package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +0 -40
- package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +0 -37
- package/dist/src/agents/reviewer/ai-reviewer/identity.md +0 -51
- package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +0 -10
- package/dist/src/agents/reviewer/ai-reviewer/output.md +0 -395
- package/dist/src/agents/reviewer/ai-reviewer/playbook.md +0 -90
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +0 -31
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +0 -27
- package/dist/src/agents/reviewer/api-reviewer/identity.md +0 -51
- package/dist/src/agents/reviewer/api-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/api-reviewer/output.md +0 -343
- package/dist/src/agents/reviewer/api-reviewer/playbook.md +0 -288
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +0 -33
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +0 -30
- package/dist/src/agents/reviewer/cli-reviewer/identity.md +0 -44
- package/dist/src/agents/reviewer/cli-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/cli-reviewer/output.md +0 -414
- package/dist/src/agents/reviewer/cli-reviewer/playbook.md +0 -218
- package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +0 -38
- package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +0 -38
- package/dist/src/agents/reviewer/infra-reviewer/identity.md +0 -53
- package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +0 -10
- package/dist/src/agents/reviewer/infra-reviewer/output.md +0 -364
- package/dist/src/agents/reviewer/infra-reviewer/playbook.md +0 -161
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +0 -31
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +0 -26
- package/dist/src/agents/reviewer/web-reviewer/identity.md +0 -40
- package/dist/src/agents/reviewer/web-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/web-reviewer/output.md +0 -333
- package/dist/src/agents/reviewer/web-reviewer/playbook.md +0 -156
- package/src/agents/developer/web-architecture/critical-reminders.md +0 -48
- package/src/agents/developer/web-architecture/critical-requirements.md +0 -65
- package/src/agents/developer/web-architecture/identity.md +0 -64
- package/src/agents/developer/web-architecture/metadata.yaml +0 -12
- package/src/agents/developer/web-architecture/output.md +0 -449
- package/src/agents/developer/web-architecture/playbook.md +0 -481
- package/src/agents/pattern/pattern-scout/critical-reminders.md +0 -71
- package/src/agents/pattern/pattern-scout/critical-requirements.md +0 -31
- package/src/agents/pattern/pattern-scout/identity.md +0 -25
- package/src/agents/pattern/pattern-scout/metadata.yaml +0 -10
- package/src/agents/pattern/pattern-scout/output.md +0 -290
- package/src/agents/pattern/pattern-scout/playbook.md +0 -1806
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +0 -30
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +0 -28
- package/src/agents/pattern/web-pattern-critique/identity.md +0 -41
- package/src/agents/pattern/web-pattern-critique/metadata.yaml +0 -12
- package/src/agents/pattern/web-pattern-critique/output.md +0 -314
- package/src/agents/pattern/web-pattern-critique/playbook.md +0 -572
- package/src/agents/planning/api-pm/critical-reminders.md +0 -48
- package/src/agents/planning/api-pm/critical-requirements.md +0 -41
- package/src/agents/planning/api-pm/identity.md +0 -39
- package/src/agents/planning/api-pm/metadata.yaml +0 -12
- package/src/agents/planning/api-pm/output.md +0 -475
- package/src/agents/planning/api-pm/playbook.md +0 -129
- package/src/agents/planning/web-pm/identity.md +0 -26
- package/src/agents/planning/web-pm/metadata.yaml +0 -12
- package/src/agents/planning/web-pm/playbook.md +0 -318
- package/src/agents/reviewer/ai-reviewer/critical-reminders.md +0 -40
- package/src/agents/reviewer/ai-reviewer/critical-requirements.md +0 -37
- package/src/agents/reviewer/ai-reviewer/identity.md +0 -51
- package/src/agents/reviewer/ai-reviewer/metadata.yaml +0 -10
- package/src/agents/reviewer/ai-reviewer/output.md +0 -395
- package/src/agents/reviewer/ai-reviewer/playbook.md +0 -90
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +0 -31
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +0 -27
- package/src/agents/reviewer/api-reviewer/identity.md +0 -51
- package/src/agents/reviewer/api-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/api-reviewer/output.md +0 -343
- package/src/agents/reviewer/api-reviewer/playbook.md +0 -288
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +0 -33
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +0 -30
- package/src/agents/reviewer/cli-reviewer/identity.md +0 -44
- package/src/agents/reviewer/cli-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/cli-reviewer/output.md +0 -414
- package/src/agents/reviewer/cli-reviewer/playbook.md +0 -218
- package/src/agents/reviewer/infra-reviewer/critical-reminders.md +0 -38
- package/src/agents/reviewer/infra-reviewer/critical-requirements.md +0 -38
- package/src/agents/reviewer/infra-reviewer/identity.md +0 -53
- package/src/agents/reviewer/infra-reviewer/metadata.yaml +0 -10
- package/src/agents/reviewer/infra-reviewer/output.md +0 -364
- package/src/agents/reviewer/infra-reviewer/playbook.md +0 -161
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +0 -31
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +0 -26
- package/src/agents/reviewer/web-reviewer/identity.md +0 -40
- package/src/agents/reviewer/web-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/web-reviewer/output.md +0 -333
- package/src/agents/reviewer/web-reviewer/playbook.md +0 -156
- /package/dist/{chunk-ZL7PFNHN.js.map → chunk-K3O3YQYG.js.map} +0 -0
- /package/dist/{chunk-IHUY4M22.js.map → chunk-UW44KSYL.js.map} +0 -0
- /package/dist/{chunk-DTSG5XZB.js.map → chunk-V3ENMW7G.js.map} +0 -0
- /package/dist/{commands/new/skill.js.map → copy-local-skills-WVHJFRPK.js.map} +0 -0
- /package/dist/{components/wizard/search-modal.js.map → load-agent-defs-5OT54J5M.js.map} +0 -0
- /package/dist/{components/wizard/selection-card.js.map → loader-JIZDTR4G.js.map} +0 -0
- /package/dist/{components/wizard/step-settings.js.map → recompile-project-agents-VREEPBDV.js.map} +0 -0
- /package/dist/{copy-local-skills-6EMVN7RB.js.map → source-loader-OE6EJFPU.js.map} +0 -0
package/dist/commands/update.js
CHANGED
|
@@ -1,363 +1,113 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
Confirm
|
|
4
|
-
} from "../chunk-NR3OZGL4.js";
|
|
5
|
-
import {
|
|
6
|
-
promptConfirm
|
|
7
|
-
} from "../chunk-Q2KG7UV3.js";
|
|
8
|
-
import {
|
|
9
|
-
ERROR_MESSAGES,
|
|
10
|
-
INFO_MESSAGES,
|
|
11
|
-
STATUS_MESSAGES,
|
|
12
|
-
SUCCESS_MESSAGES
|
|
13
|
-
} from "../chunk-ODNDXQH2.js";
|
|
14
|
-
import {
|
|
15
|
-
loadSource
|
|
16
|
-
} from "../chunk-STMHDOZD.js";
|
|
17
|
-
import {
|
|
18
|
-
collectScopedSkillDirs,
|
|
19
|
-
compareSkillsWithSource,
|
|
20
|
-
compileAgents,
|
|
21
|
-
discoverInstalledSkills,
|
|
22
|
-
findSkillMatch,
|
|
23
|
-
recompilePropagatedProjectAgents
|
|
24
|
-
} from "../chunk-SBHBBZKF.js";
|
|
25
|
-
import "../chunk-IHUY4M22.js";
|
|
26
|
-
import "../chunk-QZZJFYUQ.js";
|
|
27
|
-
import "../chunk-E5X6RJ4E.js";
|
|
28
|
-
import "../chunk-JFLVEFFP.js";
|
|
29
2
|
import {
|
|
30
3
|
BaseCommand,
|
|
31
4
|
EXIT_CODES
|
|
32
|
-
} from "../chunk-
|
|
33
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-FMYHWKGG.js";
|
|
6
|
+
import "../chunk-7VZV4O6B.js";
|
|
7
|
+
import "../chunk-K3O3YQYG.js";
|
|
34
8
|
import {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
9
|
+
ERROR_MESSAGES,
|
|
10
|
+
INFO_MESSAGES,
|
|
11
|
+
claudePluginMarketplaceUpdate,
|
|
12
|
+
isClaudeCLIAvailable,
|
|
13
|
+
loadProjectConfig,
|
|
14
|
+
marketplaceRefreshFailed,
|
|
15
|
+
marketplacesRefreshFailed,
|
|
16
|
+
marketplacesRefreshed
|
|
17
|
+
} from "../chunk-CBF4ZYV3.js";
|
|
39
18
|
import {
|
|
40
|
-
copy,
|
|
41
19
|
getErrorMessage
|
|
42
|
-
} from "../chunk-
|
|
43
|
-
import "../chunk-
|
|
20
|
+
} from "../chunk-4VCWL2IG.js";
|
|
21
|
+
import "../chunk-IPJOMAWC.js";
|
|
44
22
|
import "../chunk-VASLW636.js";
|
|
45
23
|
import {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
} from "../chunk-76ADG7LQ.js";
|
|
50
|
-
import "../chunk-UBEDZ4FD.js";
|
|
24
|
+
EJECT_SOURCE
|
|
25
|
+
} from "../chunk-R54KIGN2.js";
|
|
26
|
+
import "../chunk-VZRO7RYT.js";
|
|
51
27
|
|
|
52
|
-
// src/cli/commands/update.
|
|
53
|
-
import {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
onConfirm,
|
|
64
|
-
onCancel,
|
|
65
|
-
defaultValue: false
|
|
66
|
-
}
|
|
67
|
-
);
|
|
68
|
-
};
|
|
28
|
+
// src/cli/commands/update.ts
|
|
29
|
+
import { unique } from "remeda";
|
|
30
|
+
function isEjected(skill) {
|
|
31
|
+
return skill.source === EJECT_SOURCE;
|
|
32
|
+
}
|
|
33
|
+
function activeSkills(skills) {
|
|
34
|
+
return skills.filter((skill) => !skill.excluded);
|
|
35
|
+
}
|
|
36
|
+
function configuredMarketplaces(skills) {
|
|
37
|
+
return unique(skills.filter((skill) => !isEjected(skill)).map((skill) => skill.source));
|
|
38
|
+
}
|
|
69
39
|
var Update = class _Update extends BaseCommand {
|
|
70
|
-
static summary = "
|
|
71
|
-
static description = "
|
|
72
|
-
static
|
|
73
|
-
|
|
74
|
-
description: "Specific skill to update (optional)",
|
|
75
|
-
required: false
|
|
76
|
-
})
|
|
77
|
-
};
|
|
78
|
-
static flags = {
|
|
79
|
-
...BaseCommand.baseFlags,
|
|
80
|
-
yes: Flags.boolean({
|
|
81
|
-
char: "y",
|
|
82
|
-
description: "Skip confirmation prompt",
|
|
83
|
-
default: false
|
|
84
|
-
})
|
|
85
|
-
};
|
|
86
|
-
static examples = [
|
|
87
|
-
"<%= config.bin %> <%= command.id %>",
|
|
88
|
-
"<%= config.bin %> <%= command.id %> my-skill",
|
|
89
|
-
"<%= config.bin %> <%= command.id %> --yes",
|
|
90
|
-
"<%= config.bin %> <%= command.id %> --source /path/to/marketplace"
|
|
91
|
-
];
|
|
40
|
+
static summary = "Refresh the marketplaces this installation uses";
|
|
41
|
+
static description = "Runs Claude's own marketplace update for every marketplace this installation's config names. Ejected skills are copies you own and are never touched. Sub-agents reference plugin skills by pointer, so refreshed content lands without recompiling anything.";
|
|
42
|
+
static flags = {};
|
|
43
|
+
static examples = ["<%= config.bin %> <%= command.id %>"];
|
|
92
44
|
async run() {
|
|
93
|
-
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const outdatedSkills = this.resolveTargetSkills(args.skill, context);
|
|
99
|
-
if (!outdatedSkills) return;
|
|
100
|
-
this.printUpdateTable(outdatedSkills);
|
|
101
|
-
const confirmed = flags.yes || await this.confirmUpdate();
|
|
102
|
-
if (!confirmed) return;
|
|
103
|
-
this.log("");
|
|
104
|
-
const updateResult = await this.executeUpdates(outdatedSkills, context);
|
|
105
|
-
this.printUpdateResults(updateResult);
|
|
106
|
-
const recompiledAgents = await this.recompileAfterUpdate(updateResult, context);
|
|
107
|
-
await this.refreshRegisteredProjects(updateResult, context);
|
|
108
|
-
this.printCompletionSummary(updateResult, recompiledAgents);
|
|
109
|
-
} catch (error) {
|
|
110
|
-
const message = getErrorMessage(error);
|
|
111
|
-
this.error(`Update failed: ${message}`, { exit: EXIT_CODES.ERROR });
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
async loadContext(flags, projectDir) {
|
|
115
|
-
const homeDir = os.homedir();
|
|
116
|
-
const { hasProject, hasGlobal } = await collectScopedSkillDirs(projectDir);
|
|
117
|
-
if (!hasProject && !hasGlobal) {
|
|
118
|
-
this.warn(ERROR_MESSAGES.NO_LOCAL_SKILLS);
|
|
119
|
-
return null;
|
|
45
|
+
await this.parse(_Update);
|
|
46
|
+
const config = await this.loadInstalledConfig(process.cwd());
|
|
47
|
+
if (!config) {
|
|
48
|
+
this.warn(ERROR_MESSAGES.NO_INSTALLATION);
|
|
49
|
+
return;
|
|
120
50
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
`Loaded from ${sourceResult.isLocal ? "local" : "remote"}: ${sourceResult.sourcePath}`
|
|
128
|
-
);
|
|
129
|
-
const comparison = await compareSkillsWithSource(
|
|
130
|
-
projectDir,
|
|
131
|
-
sourceResult.sourcePath,
|
|
132
|
-
sourceResult.matrix
|
|
133
|
-
);
|
|
134
|
-
const skillBaseDir = new Map([
|
|
135
|
-
...comparison.globalResults.map((r) => [r.id, homeDir]),
|
|
136
|
-
...comparison.projectResults.map((r) => [r.id, projectDir])
|
|
137
|
-
]);
|
|
138
|
-
return {
|
|
139
|
-
projectDir,
|
|
140
|
-
homeDir,
|
|
141
|
-
sourceResult,
|
|
142
|
-
allResults: comparison.merged,
|
|
143
|
-
skillBaseDir
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
resolveTargetSkills(skillArg, context) {
|
|
147
|
-
if (skillArg) {
|
|
148
|
-
const { match: foundSkill, similar } = findSkillMatch(skillArg, context.allResults);
|
|
149
|
-
if (!foundSkill) {
|
|
150
|
-
this.log("");
|
|
151
|
-
this.log(`Error: Skill "${skillArg}" not found.`);
|
|
152
|
-
this.log("");
|
|
153
|
-
if (similar.length > 0) {
|
|
154
|
-
this.log("Did you mean one of these?");
|
|
155
|
-
for (const name of similar) {
|
|
156
|
-
this.log(` - ${name}`);
|
|
157
|
-
}
|
|
158
|
-
this.log("");
|
|
159
|
-
}
|
|
160
|
-
this.log(`Run \`${CLI_INVOKE_COMMAND} search ${skillArg}\` to search available skills.`);
|
|
161
|
-
this.log("");
|
|
162
|
-
this.error(ERROR_MESSAGES.SKILL_NOT_FOUND, { exit: EXIT_CODES.ERROR });
|
|
163
|
-
}
|
|
164
|
-
if (foundSkill.status === "current") {
|
|
165
|
-
this.log("");
|
|
166
|
-
this.log(`Skill "${foundSkill.id}" is already up to date.`);
|
|
167
|
-
this.log("");
|
|
168
|
-
this.log(` Local hash: ${foundSkill.localHash}`);
|
|
169
|
-
this.log(` Source hash: ${foundSkill.sourceHash}`);
|
|
170
|
-
this.log("");
|
|
171
|
-
return null;
|
|
172
|
-
}
|
|
173
|
-
if (foundSkill.status === "local-only") {
|
|
174
|
-
this.log("");
|
|
175
|
-
this.log(`Skill "${foundSkill.id}" is a local-only skill (not forked from source).`);
|
|
176
|
-
this.log("Cannot update local-only skills.");
|
|
177
|
-
this.log("");
|
|
178
|
-
return null;
|
|
179
|
-
}
|
|
180
|
-
return [foundSkill];
|
|
181
|
-
}
|
|
182
|
-
const outdatedSkills = context.allResults.filter((r) => r.status === "outdated");
|
|
183
|
-
if (outdatedSkills.length === 0) {
|
|
184
|
-
this.log("");
|
|
185
|
-
this.logSuccess(SUCCESS_MESSAGES.ALL_SKILLS_UP_TO_DATE);
|
|
186
|
-
this.log("");
|
|
187
|
-
return null;
|
|
188
|
-
}
|
|
189
|
-
return outdatedSkills;
|
|
190
|
-
}
|
|
191
|
-
printUpdateTable(outdatedSkills) {
|
|
192
|
-
this.log("");
|
|
193
|
-
this.log("The following skills will be updated:");
|
|
194
|
-
this.log("");
|
|
195
|
-
printTable({
|
|
196
|
-
data: outdatedSkills.map((skill) => ({
|
|
197
|
-
skill: skill.id,
|
|
198
|
-
localHash: skill.localHash ?? "-",
|
|
199
|
-
sourceHash: skill.sourceHash ?? "-"
|
|
200
|
-
})),
|
|
201
|
-
columns: [
|
|
202
|
-
{ key: "skill", name: "Skill" },
|
|
203
|
-
{ key: "localHash", name: "Local Hash" },
|
|
204
|
-
{ key: "sourceHash", name: "Source Hash" }
|
|
205
|
-
],
|
|
206
|
-
headerOptions: { bold: true }
|
|
207
|
-
});
|
|
208
|
-
this.log("");
|
|
209
|
-
this.log(`${outdatedSkills.length} skill(s) will be updated.`);
|
|
210
|
-
this.log("");
|
|
211
|
-
}
|
|
212
|
-
async confirmUpdate() {
|
|
213
|
-
const outcome = await promptConfirm(({ onConfirm, onCancel }) => /* @__PURE__ */ jsx(UpdateConfirm, { onConfirm, onCancel }));
|
|
214
|
-
if (outcome === "cancelled") {
|
|
215
|
-
this.log("Update cancelled");
|
|
216
|
-
this.exit(EXIT_CODES.CANCELLED);
|
|
217
|
-
}
|
|
218
|
-
return true;
|
|
219
|
-
}
|
|
220
|
-
async executeUpdates(outdatedSkills, context) {
|
|
221
|
-
return updateLocalSkills({
|
|
222
|
-
skills: outdatedSkills,
|
|
223
|
-
sourceResult: context.sourceResult,
|
|
224
|
-
skillBaseDir: context.skillBaseDir,
|
|
225
|
-
onProgress: (skillId) => this.log(`Updating ${skillId}...`)
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
printUpdateResults(updateResult) {
|
|
229
|
-
for (const item of updateResult.updated) {
|
|
230
|
-
this.log(` Updated ${item.id}`);
|
|
231
|
-
}
|
|
232
|
-
for (const item of updateResult.failed) {
|
|
233
|
-
this.log(` Failed to update ${item.id}: ${item.error}`);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
async recompileAfterUpdate(updateResult, context) {
|
|
237
|
-
if (updateResult.updated.length === 0) return [];
|
|
238
|
-
this.log("");
|
|
239
|
-
this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);
|
|
240
|
-
try {
|
|
241
|
-
const { allSkills } = await discoverInstalledSkills(context.projectDir);
|
|
242
|
-
const recompileResult = await compileAgents({
|
|
243
|
-
projectDir: context.projectDir,
|
|
244
|
-
sourcePath: context.sourceResult.sourcePath,
|
|
245
|
-
skills: allSkills
|
|
246
|
-
});
|
|
247
|
-
const recompiledAgents = recompileResult.compiled;
|
|
248
|
-
if (recompiledAgents.length > 0) {
|
|
249
|
-
this.log("Agents recompiled");
|
|
250
|
-
for (const agent of recompiledAgents) {
|
|
251
|
-
this.log(` Recompiled: ${agent}`);
|
|
252
|
-
}
|
|
253
|
-
} else {
|
|
254
|
-
this.log(INFO_MESSAGES.NO_AGENTS_TO_RECOMPILE);
|
|
255
|
-
}
|
|
256
|
-
if (recompileResult.warnings.length > 0) {
|
|
257
|
-
for (const warning of recompileResult.warnings) {
|
|
258
|
-
this.warn(warning);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return recompiledAgents;
|
|
262
|
-
} catch (error) {
|
|
263
|
-
this.warn("Agent recompilation failed");
|
|
264
|
-
this.warn(`Could not recompile agents: ${getErrorMessage(error)}`);
|
|
265
|
-
return [];
|
|
51
|
+
const skills = activeSkills(config.skills);
|
|
52
|
+
this.reportEjectedSkills(skills);
|
|
53
|
+
const marketplaces = configuredMarketplaces(skills);
|
|
54
|
+
if (marketplaces.length === 0) {
|
|
55
|
+
this.log(INFO_MESSAGES.NO_PLUGIN_MARKETPLACES);
|
|
56
|
+
return;
|
|
266
57
|
}
|
|
58
|
+
await this.requireClaudeCli();
|
|
59
|
+
await this.refreshMarketplaces(marketplaces);
|
|
267
60
|
}
|
|
268
61
|
/**
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
* Every registered project compiled its own `.claude/agents/*.md` from those
|
|
273
|
-
* same directories, so the moment the new content lands those agents are
|
|
274
|
-
* quoting guidance the source no longer contains — with nothing to signal it.
|
|
275
|
-
* This is the content twin of the config fan-out the gate performs for a global
|
|
276
|
-
* CONFIG change, and it reuses the same helper.
|
|
277
|
-
*
|
|
278
|
-
* It writes NO config pair — a skill's content changes nothing any config
|
|
279
|
-
* declares — so it deliberately does not go through config-gate.
|
|
280
|
-
*
|
|
281
|
-
* The cwd is excluded: `recompileAfterUpdate` has already compiled it. Failure
|
|
282
|
-
* is warned, never fatal — the skills were updated either way.
|
|
62
|
+
* The config this directory's installation runs on — the project's own, or the
|
|
63
|
+
* global one it inherits from. A config file that exists but cannot be loaded is
|
|
64
|
+
* a fault, not an absence, so it is reported rather than read as "not installed".
|
|
283
65
|
*/
|
|
284
|
-
async
|
|
285
|
-
if (updateResult.updated.length === 0) return;
|
|
66
|
+
async loadInstalledConfig(projectDir) {
|
|
286
67
|
try {
|
|
287
|
-
const
|
|
288
|
-
|
|
289
|
-
const { recompiledCount, failedCount, warnings } = await recompilePropagatedProjectAgents(registered);
|
|
290
|
-
for (const warning of warnings) {
|
|
291
|
-
this.warn(warning);
|
|
292
|
-
}
|
|
293
|
-
const failureSuffix = failedCount > 0 ? ` (${failedCount} failed)` : "";
|
|
294
|
-
this.log(`Recompiled agents in ${recompiledCount} registered projects${failureSuffix}
|
|
295
|
-
`);
|
|
68
|
+
const loaded = await loadProjectConfig(projectDir);
|
|
69
|
+
return loaded?.config ?? null;
|
|
296
70
|
} catch (error) {
|
|
297
|
-
this.
|
|
298
|
-
`Could not refresh registered projects \u2014 their compiled agents may still quote the pre-update content: ${getErrorMessage(error)}`
|
|
299
|
-
);
|
|
71
|
+
this.error(getErrorMessage(error), { exit: EXIT_CODES.ERROR });
|
|
300
72
|
}
|
|
301
73
|
}
|
|
74
|
+
/** States the ownership rule once, and only where there is an ejected skill it applies to. */
|
|
75
|
+
reportEjectedSkills(skills) {
|
|
76
|
+
if (!skills.some(isEjected)) return;
|
|
77
|
+
this.log(INFO_MESSAGES.EJECTED_SKILLS_USER_OWNED);
|
|
78
|
+
}
|
|
302
79
|
/**
|
|
303
|
-
*
|
|
304
|
-
*
|
|
305
|
-
* in. Compared through `normalizeProjectPath`, the same rule the registrations
|
|
306
|
-
* were stored under, so a cwd reached via a symlink still matches its entry.
|
|
80
|
+
* Gated on there being a marketplace to refresh, so an eject-only installation
|
|
81
|
+
* never fails on a Claude CLI it had no reason to call.
|
|
307
82
|
*/
|
|
308
|
-
async
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
if (projects.length === 0) return [];
|
|
312
|
-
const current = normalizeProjectPath(context.projectDir);
|
|
313
|
-
return projects.filter((projectPath) => projectPath !== current);
|
|
83
|
+
async requireClaudeCli() {
|
|
84
|
+
if (await isClaudeCLIAvailable()) return;
|
|
85
|
+
this.error(ERROR_MESSAGES.CLAUDE_CLI_NOT_FOUND, { exit: EXIT_CODES.ERROR });
|
|
314
86
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
87
|
+
/**
|
|
88
|
+
* One `claude plugin marketplace update` per marketplace, in sequence: they write
|
|
89
|
+
* to the same registry, and interleaved progress lines would not say which
|
|
90
|
+
* marketplace each belongs to. A failure is collected rather than thrown, so one
|
|
91
|
+
* unreachable marketplace cannot hide the state of the others.
|
|
92
|
+
*/
|
|
93
|
+
async refreshMarketplaces(marketplaces) {
|
|
94
|
+
const failed = [];
|
|
95
|
+
for (const marketplace of marketplaces) {
|
|
96
|
+
this.log(`Refreshing marketplace ${marketplace}...`);
|
|
97
|
+
try {
|
|
98
|
+
await claudePluginMarketplaceUpdate(marketplace);
|
|
99
|
+
this.log(` Updated marketplace ${marketplace}`);
|
|
100
|
+
} catch (error) {
|
|
101
|
+
failed.push(marketplace);
|
|
102
|
+
this.warn(marketplaceRefreshFailed(marketplace, getErrorMessage(error)));
|
|
103
|
+
}
|
|
326
104
|
}
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
this.error("Some updates failed", { exit: EXIT_CODES.ERROR });
|
|
105
|
+
if (failed.length > 0) {
|
|
106
|
+
this.error(marketplacesRefreshFailed(failed), { exit: EXIT_CODES.ERROR });
|
|
330
107
|
}
|
|
108
|
+
this.logSuccess(marketplacesRefreshed(marketplaces.length));
|
|
331
109
|
}
|
|
332
110
|
};
|
|
333
|
-
async function updateLocalSkills(options) {
|
|
334
|
-
const { skills, sourceResult, skillBaseDir, onProgress } = options;
|
|
335
|
-
const updated = [];
|
|
336
|
-
const failed = [];
|
|
337
|
-
for (const skill of skills) {
|
|
338
|
-
onProgress?.(skill.id);
|
|
339
|
-
if (!skill.sourcePath || !skill.sourceHash) {
|
|
340
|
-
failed.push({
|
|
341
|
-
id: skill.id,
|
|
342
|
-
newHash: null,
|
|
343
|
-
error: "No source path available"
|
|
344
|
-
});
|
|
345
|
-
continue;
|
|
346
|
-
}
|
|
347
|
-
const baseDir = skillBaseDir.get(skill.id) ?? process.cwd();
|
|
348
|
-
const localSkillsPath = path.join(baseDir, LOCAL_SKILLS_PATH);
|
|
349
|
-
const destPath = path.join(localSkillsPath, skill.dirName);
|
|
350
|
-
const srcPath = path.join(sourceResult.sourcePath, SOURCE_SRC_DIR, skill.sourcePath);
|
|
351
|
-
try {
|
|
352
|
-
await copy(srcPath, destPath);
|
|
353
|
-
await injectForkedFromMetadata(destPath, skill.id, skill.sourceHash);
|
|
354
|
-
updated.push({ id: skill.id, newHash: skill.sourceHash });
|
|
355
|
-
} catch (error) {
|
|
356
|
-
failed.push({ id: skill.id, newHash: null, error: getErrorMessage(error) });
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
return { updated, failed };
|
|
360
|
-
}
|
|
361
111
|
export {
|
|
362
112
|
Update as default
|
|
363
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/commands/update.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Flags, Args } from \"@oclif/core\";\nimport { printTable } from \"@oclif/table\";\nimport os from \"os\";\nimport path from \"path\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { getErrorMessage } from \"../utils/errors.js\";\nimport { copy } from \"../utils/fs.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport {\n loadSource,\n compareSkillsWithSource,\n compileAgents,\n collectScopedSkillDirs,\n findSkillMatch,\n discoverInstalledSkills,\n recompilePropagatedProjectAgents,\n} from \"../lib/operations/index.js\";\nimport { normalizeProjectPath } from \"../lib/config-gate/index.js\";\nimport { loadProjectConfigFromDir } from \"../lib/configuration/project-config.js\";\nimport { CLI_INVOKE_COMMAND, LOCAL_SKILLS_PATH, SOURCE_SRC_DIR } from \"../consts.js\";\nimport {\n ERROR_MESSAGES,\n SUCCESS_MESSAGES,\n STATUS_MESSAGES,\n INFO_MESSAGES,\n} from \"../utils/messages.js\";\nimport { Confirm } from \"../components/common/confirm.js\";\nimport { promptConfirm } from \"../components/common/prompt-confirm.js\";\nimport { injectForkedFromMetadata, type SkillComparisonResult } from \"../lib/skills/index.js\";\nimport type { SourceLoadResult } from \"../lib/loading/source-loader.js\";\nimport type { AgentName, SkillId } from \"../types/index.js\";\n\ntype UpdateConfirmProps = {\n onConfirm: () => void;\n onCancel: () => void;\n};\n\nconst UpdateConfirm: React.FC<UpdateConfirmProps> = ({ onConfirm, onCancel }) => {\n return (\n <Confirm\n message=\"Proceed with update?\"\n onConfirm={onConfirm}\n onCancel={onCancel}\n defaultValue={false}\n />\n );\n};\n\ntype UpdateContext = {\n projectDir: string;\n homeDir: string;\n sourceResult: SourceLoadResult;\n allResults: SkillComparisonResult[];\n skillBaseDir: Map<SkillId, string>;\n};\n\nexport default class Update extends BaseCommand {\n static summary = \"Update local skills from source\";\n\n static description =\n \"Update local skills from the source repository. By default, checks all skills for updates. Specify a skill name to update only that skill.\";\n\n static args = {\n skill: Args.string({\n description: \"Specific skill to update (optional)\",\n required: false,\n }),\n };\n\n static flags = {\n ...BaseCommand.baseFlags,\n yes: Flags.boolean({\n char: \"y\",\n description: \"Skip confirmation prompt\",\n default: false,\n }),\n };\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> my-skill\",\n \"<%= config.bin %> <%= command.id %> --yes\",\n \"<%= config.bin %> <%= command.id %> --source /path/to/marketplace\",\n ];\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(Update);\n const projectDir = process.cwd();\n\n try {\n const context = await this.loadContext(flags, projectDir);\n if (!context) return;\n\n const outdatedSkills = this.resolveTargetSkills(args.skill, context);\n if (!outdatedSkills) return;\n\n this.printUpdateTable(outdatedSkills);\n\n const confirmed = flags.yes || (await this.confirmUpdate());\n if (!confirmed) return;\n\n this.log(\"\");\n\n const updateResult = await this.executeUpdates(outdatedSkills, context);\n this.printUpdateResults(updateResult);\n\n const recompiledAgents = await this.recompileAfterUpdate(updateResult, context);\n await this.refreshRegisteredProjects(updateResult, context);\n\n this.printCompletionSummary(updateResult, recompiledAgents);\n } catch (error) {\n const message = getErrorMessage(error);\n this.error(`Update failed: ${message}`, { exit: EXIT_CODES.ERROR });\n }\n }\n\n private async loadContext(\n flags: { source?: string },\n projectDir: string,\n ): Promise<UpdateContext | null> {\n const homeDir = os.homedir();\n const { hasProject, hasGlobal } = await collectScopedSkillDirs(projectDir);\n\n if (!hasProject && !hasGlobal) {\n this.warn(ERROR_MESSAGES.NO_LOCAL_SKILLS);\n return null;\n }\n\n this.log(STATUS_MESSAGES.LOADING_SKILLS);\n\n const { sourceResult } = await loadSource({\n sourceFlag: flags.source,\n projectDir,\n });\n\n this.log(\n `Loaded from ${sourceResult.isLocal ? \"local\" : \"remote\"}: ${sourceResult.sourcePath}`,\n );\n\n const comparison = await compareSkillsWithSource(\n projectDir,\n sourceResult.sourcePath,\n sourceResult.matrix,\n );\n\n // Later entries overwrite earlier ones, so project wins on duplicate ids.\n const skillBaseDir = new Map<SkillId, string>([\n ...comparison.globalResults.map((r) => [r.id, homeDir] as const),\n ...comparison.projectResults.map((r) => [r.id, projectDir] as const),\n ]);\n\n return {\n projectDir,\n homeDir,\n sourceResult,\n allResults: comparison.merged,\n skillBaseDir,\n };\n }\n\n private resolveTargetSkills(\n skillArg: string | undefined,\n context: UpdateContext,\n ): SkillComparisonResult[] | null {\n if (skillArg) {\n const { match: foundSkill, similar } = findSkillMatch(skillArg, context.allResults);\n\n if (!foundSkill) {\n this.log(\"\");\n this.log(`Error: Skill \"${skillArg}\" not found.`);\n this.log(\"\");\n\n if (similar.length > 0) {\n this.log(\"Did you mean one of these?\");\n for (const name of similar) {\n this.log(` - ${name}`);\n }\n this.log(\"\");\n }\n\n this.log(`Run \\`${CLI_INVOKE_COMMAND} search ${skillArg}\\` to search available skills.`);\n this.log(\"\");\n this.error(ERROR_MESSAGES.SKILL_NOT_FOUND, { exit: EXIT_CODES.ERROR });\n }\n\n if (foundSkill.status === \"current\") {\n this.log(\"\");\n this.log(`Skill \"${foundSkill.id}\" is already up to date.`);\n this.log(\"\");\n this.log(` Local hash: ${foundSkill.localHash}`);\n this.log(` Source hash: ${foundSkill.sourceHash}`);\n this.log(\"\");\n return null;\n }\n\n if (foundSkill.status === \"local-only\") {\n this.log(\"\");\n this.log(`Skill \"${foundSkill.id}\" is a local-only skill (not forked from source).`);\n this.log(\"Cannot update local-only skills.\");\n this.log(\"\");\n return null;\n }\n\n return [foundSkill];\n }\n\n const outdatedSkills = context.allResults.filter((r) => r.status === \"outdated\");\n if (outdatedSkills.length === 0) {\n this.log(\"\");\n this.logSuccess(SUCCESS_MESSAGES.ALL_SKILLS_UP_TO_DATE);\n this.log(\"\");\n return null;\n }\n\n return outdatedSkills;\n }\n\n private printUpdateTable(outdatedSkills: SkillComparisonResult[]): void {\n this.log(\"\");\n this.log(\"The following skills will be updated:\");\n this.log(\"\");\n\n printTable({\n data: outdatedSkills.map((skill) => ({\n skill: skill.id,\n localHash: skill.localHash ?? \"-\",\n sourceHash: skill.sourceHash ?? \"-\",\n })),\n columns: [\n { key: \"skill\", name: \"Skill\" },\n { key: \"localHash\", name: \"Local Hash\" },\n { key: \"sourceHash\", name: \"Source Hash\" },\n ],\n headerOptions: { bold: true },\n });\n\n this.log(\"\");\n this.log(`${outdatedSkills.length} skill(s) will be updated.`);\n this.log(\"\");\n }\n\n private async confirmUpdate(): Promise<boolean> {\n const outcome = await promptConfirm(({ onConfirm, onCancel }) => (\n <UpdateConfirm onConfirm={onConfirm} onCancel={onCancel} />\n ));\n\n if (outcome === \"cancelled\") {\n this.log(\"Update cancelled\");\n this.exit(EXIT_CODES.CANCELLED);\n }\n\n return true;\n }\n\n private async executeUpdates(\n outdatedSkills: SkillComparisonResult[],\n context: UpdateContext,\n ): Promise<UpdateLocalSkillsResult> {\n return updateLocalSkills({\n skills: outdatedSkills,\n sourceResult: context.sourceResult,\n skillBaseDir: context.skillBaseDir,\n onProgress: (skillId) => this.log(`Updating ${skillId}...`),\n });\n }\n\n private printUpdateResults(updateResult: UpdateLocalSkillsResult): void {\n for (const item of updateResult.updated) {\n this.log(` Updated ${item.id}`);\n }\n for (const item of updateResult.failed) {\n this.log(` Failed to update ${item.id}: ${item.error}`);\n }\n }\n\n private async recompileAfterUpdate(\n updateResult: UpdateLocalSkillsResult,\n context: UpdateContext,\n ): Promise<AgentName[]> {\n if (updateResult.updated.length === 0) return [];\n\n this.log(\"\");\n this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);\n\n try {\n const { allSkills } = await discoverInstalledSkills(context.projectDir);\n const recompileResult = await compileAgents({\n projectDir: context.projectDir,\n sourcePath: context.sourceResult.sourcePath,\n skills: allSkills,\n });\n\n const recompiledAgents = recompileResult.compiled;\n\n if (recompiledAgents.length > 0) {\n this.log(\"Agents recompiled\");\n for (const agent of recompiledAgents) {\n this.log(` Recompiled: ${agent}`);\n }\n } else {\n this.log(INFO_MESSAGES.NO_AGENTS_TO_RECOMPILE);\n }\n\n if (recompileResult.warnings.length > 0) {\n for (const warning of recompileResult.warnings) {\n this.warn(warning);\n }\n }\n\n return recompiledAgents;\n } catch (error) {\n this.warn(\"Agent recompilation failed\");\n this.warn(`Could not recompile agents: ${getErrorMessage(error)}`);\n return [];\n }\n }\n\n /**\n * Recompiles the agents of every OTHER registered project.\n *\n * `update` replaces the skill directories under `~/.claude/skills/` in place.\n * Every registered project compiled its own `.claude/agents/*.md` from those\n * same directories, so the moment the new content lands those agents are\n * quoting guidance the source no longer contains — with nothing to signal it.\n * This is the content twin of the config fan-out the gate performs for a global\n * CONFIG change, and it reuses the same helper.\n *\n * It writes NO config pair — a skill's content changes nothing any config\n * declares — so it deliberately does not go through config-gate.\n *\n * The cwd is excluded: `recompileAfterUpdate` has already compiled it. Failure\n * is warned, never fatal — the skills were updated either way.\n */\n private async refreshRegisteredProjects(\n updateResult: UpdateLocalSkillsResult,\n context: UpdateContext,\n ): Promise<void> {\n if (updateResult.updated.length === 0) return;\n\n try {\n const registered = await this.registeredProjectsToRefresh(context);\n if (registered.length === 0) return;\n\n const { recompiledCount, failedCount, warnings } =\n await recompilePropagatedProjectAgents(registered);\n\n for (const warning of warnings) {\n this.warn(warning);\n }\n\n const failureSuffix = failedCount > 0 ? ` (${failedCount} failed)` : \"\";\n this.log(`Recompiled agents in ${recompiledCount} registered projects${failureSuffix}\\n`);\n } catch (error) {\n this.warn(\n `Could not refresh registered projects — their compiled agents may still quote the pre-update content: ${getErrorMessage(error)}`,\n );\n }\n }\n\n /**\n * The registered project paths this run still owes a recompile: everything in\n * the global config's `projects` registry except the directory the command ran\n * in. Compared through `normalizeProjectPath`, the same rule the registrations\n * were stored under, so a cwd reached via a symlink still matches its entry.\n */\n private async registeredProjectsToRefresh(context: UpdateContext): Promise<string[]> {\n const loaded = await loadProjectConfigFromDir(context.homeDir);\n const projects = loaded?.config.projects ?? [];\n if (projects.length === 0) return [];\n\n const current = normalizeProjectPath(context.projectDir);\n return projects.filter((projectPath) => projectPath !== current);\n }\n\n private printCompletionSummary(\n updateResult: UpdateLocalSkillsResult,\n recompiledAgents: AgentName[],\n ): void {\n this.log(\"\");\n if (updateResult.failed.length === 0) {\n const agentMsg =\n recompiledAgents.length > 0 ? `, ${recompiledAgents.length} agent(s) recompiled` : \"\";\n this.logSuccess(\n `Update complete! ${updateResult.updated.length} skill(s) updated${agentMsg}.`,\n );\n } else {\n this.warn(\n `Update finished with errors: ${updateResult.updated.length} updated, ${updateResult.failed.length} failed.`,\n );\n }\n this.log(\"\");\n\n if (updateResult.failed.length > 0) {\n this.error(\"Some updates failed\", { exit: EXIT_CODES.ERROR });\n }\n }\n}\n\ntype SkillUpdateResult = {\n id: SkillId;\n newHash: string | null;\n error?: string;\n};\n\ntype UpdateLocalSkillsResult = {\n updated: SkillUpdateResult[];\n failed: SkillUpdateResult[];\n};\n\ntype UpdateLocalSkillsOptions = {\n skills: SkillComparisonResult[];\n sourceResult: SourceLoadResult;\n skillBaseDir: Map<SkillId, string>;\n /** Called before each skill update starts. Use for progress logging. */\n onProgress?: (skillId: string) => void;\n};\n\n/**\n * Updates local skills by copying from source and injecting metadata.\n *\n * For each outdated skill, copies the source version to the local skills\n * directory and injects forked-from metadata for change tracking.\n */\nasync function updateLocalSkills(\n options: UpdateLocalSkillsOptions,\n): Promise<UpdateLocalSkillsResult> {\n const { skills, sourceResult, skillBaseDir, onProgress } = options;\n const updated: SkillUpdateResult[] = [];\n const failed: SkillUpdateResult[] = [];\n\n for (const skill of skills) {\n onProgress?.(skill.id);\n if (!skill.sourcePath || !skill.sourceHash) {\n failed.push({\n id: skill.id,\n newHash: null,\n error: \"No source path available\",\n });\n continue;\n }\n\n const baseDir = skillBaseDir.get(skill.id) ?? process.cwd();\n const localSkillsPath = path.join(baseDir, LOCAL_SKILLS_PATH);\n const destPath = path.join(localSkillsPath, skill.dirName);\n const srcPath = path.join(sourceResult.sourcePath, SOURCE_SRC_DIR, skill.sourcePath);\n\n try {\n await copy(srcPath, destPath);\n await injectForkedFromMetadata(destPath, skill.id, skill.sourceHash);\n updated.push({ id: skill.id, newHash: skill.sourceHash });\n } catch (error) {\n failed.push({ id: skill.id, newHash: null, error: getErrorMessage(error) });\n }\n }\n\n return { updated, failed };\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/commands/update.ts"],"sourcesContent":["import { unique } from \"remeda\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { EJECT_SOURCE } from \"../consts.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport { loadProjectConfig } from \"../lib/configuration/index.js\";\nimport { claudePluginMarketplaceUpdate, isClaudeCLIAvailable } from \"../utils/exec.js\";\nimport { getErrorMessage } from \"../utils/errors.js\";\nimport {\n ERROR_MESSAGES,\n INFO_MESSAGES,\n marketplaceRefreshFailed,\n marketplacesRefreshFailed,\n marketplacesRefreshed,\n} from \"../utils/messages.js\";\nimport type { ProjectConfig, SkillConfig } from \"../types/index.js\";\n\n/** A copy the user owns rather than a plugin the marketplace serves. */\nfunction isEjected(skill: SkillConfig): boolean {\n return skill.source === EJECT_SOURCE;\n}\n\n/** Entries the installation actually has — an excluded entry is a tombstone, not an install. */\nfunction activeSkills(skills: SkillConfig[]): SkillConfig[] {\n return skills.filter((skill) => !skill.excluded);\n}\n\n/** The marketplaces this installation actually uses, deduplicated, in config order. */\nfunction configuredMarketplaces(skills: SkillConfig[]): string[] {\n return unique(skills.filter((skill) => !isEjected(skill)).map((skill) => skill.source));\n}\n\nexport default class Update extends BaseCommand {\n static summary = \"Refresh the marketplaces this installation uses\";\n\n static description =\n \"Runs Claude's own marketplace update for every marketplace this installation's config names. Ejected skills are copies you own and are never touched. Sub-agents reference plugin skills by pointer, so refreshed content lands without recompiling anything.\";\n\n static flags = {};\n\n static examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n async run(): Promise<void> {\n await this.parse(Update);\n\n const config = await this.loadInstalledConfig(process.cwd());\n if (!config) {\n this.warn(ERROR_MESSAGES.NO_INSTALLATION);\n return;\n }\n\n const skills = activeSkills(config.skills);\n this.reportEjectedSkills(skills);\n\n const marketplaces = configuredMarketplaces(skills);\n if (marketplaces.length === 0) {\n this.log(INFO_MESSAGES.NO_PLUGIN_MARKETPLACES);\n return;\n }\n\n await this.requireClaudeCli();\n await this.refreshMarketplaces(marketplaces);\n }\n\n /**\n * The config this directory's installation runs on — the project's own, or the\n * global one it inherits from. A config file that exists but cannot be loaded is\n * a fault, not an absence, so it is reported rather than read as \"not installed\".\n */\n private async loadInstalledConfig(projectDir: string): Promise<ProjectConfig | null> {\n try {\n const loaded = await loadProjectConfig(projectDir);\n return loaded?.config ?? null;\n } catch (error) {\n this.error(getErrorMessage(error), { exit: EXIT_CODES.ERROR });\n }\n }\n\n /** States the ownership rule once, and only where there is an ejected skill it applies to. */\n private reportEjectedSkills(skills: SkillConfig[]): void {\n if (!skills.some(isEjected)) return;\n this.log(INFO_MESSAGES.EJECTED_SKILLS_USER_OWNED);\n }\n\n /**\n * Gated on there being a marketplace to refresh, so an eject-only installation\n * never fails on a Claude CLI it had no reason to call.\n */\n private async requireClaudeCli(): Promise<void> {\n if (await isClaudeCLIAvailable()) return;\n this.error(ERROR_MESSAGES.CLAUDE_CLI_NOT_FOUND, { exit: EXIT_CODES.ERROR });\n }\n\n /**\n * One `claude plugin marketplace update` per marketplace, in sequence: they write\n * to the same registry, and interleaved progress lines would not say which\n * marketplace each belongs to. A failure is collected rather than thrown, so one\n * unreachable marketplace cannot hide the state of the others.\n */\n private async refreshMarketplaces(marketplaces: string[]): Promise<void> {\n const failed: string[] = [];\n\n for (const marketplace of marketplaces) {\n this.log(`Refreshing marketplace ${marketplace}...`);\n try {\n await claudePluginMarketplaceUpdate(marketplace);\n this.log(` Updated marketplace ${marketplace}`);\n } catch (error) {\n failed.push(marketplace);\n this.warn(marketplaceRefreshFailed(marketplace, getErrorMessage(error)));\n }\n }\n\n if (failed.length > 0) {\n this.error(marketplacesRefreshFailed(failed), { exit: EXIT_CODES.ERROR });\n }\n\n this.logSuccess(marketplacesRefreshed(marketplaces.length));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AAkBvB,SAAS,UAAU,OAA6B;AAC9C,SAAO,MAAM,WAAW;AAC1B;AAGA,SAAS,aAAa,QAAsC;AAC1D,SAAO,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,QAAQ;AACjD;AAGA,SAAS,uBAAuB,QAAiC;AAC/D,SAAO,OAAO,OAAO,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,CAAC,EAAE,IAAI,CAAC,UAAU,MAAM,MAAM,CAAC;AACxF;AAEA,IAAqB,SAArB,MAAqB,gBAAe,YAAY;AAAA,EAC9C,OAAO,UAAU;AAAA,EAEjB,OAAO,cACL;AAAA,EAEF,OAAO,QAAQ,CAAC;AAAA,EAEhB,OAAO,WAAW,CAAC,qCAAqC;AAAA,EAExD,MAAM,MAAqB;AACzB,UAAM,KAAK,MAAM,OAAM;AAEvB,UAAM,SAAS,MAAM,KAAK,oBAAoB,QAAQ,IAAI,CAAC;AAC3D,QAAI,CAAC,QAAQ;AACX,WAAK,KAAK,eAAe,eAAe;AACxC;AAAA,IACF;AAEA,UAAM,SAAS,aAAa,OAAO,MAAM;AACzC,SAAK,oBAAoB,MAAM;AAE/B,UAAM,eAAe,uBAAuB,MAAM;AAClD,QAAI,aAAa,WAAW,GAAG;AAC7B,WAAK,IAAI,cAAc,sBAAsB;AAC7C;AAAA,IACF;AAEA,UAAM,KAAK,iBAAiB;AAC5B,UAAM,KAAK,oBAAoB,YAAY;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,oBAAoB,YAAmD;AACnF,QAAI;AACF,YAAM,SAAS,MAAM,kBAAkB,UAAU;AACjD,aAAO,QAAQ,UAAU;AAAA,IAC3B,SAAS,OAAO;AACd,WAAK,MAAM,gBAAgB,KAAK,GAAG,EAAE,MAAM,WAAW,MAAM,CAAC;AAAA,IAC/D;AAAA,EACF;AAAA;AAAA,EAGQ,oBAAoB,QAA6B;AACvD,QAAI,CAAC,OAAO,KAAK,SAAS,EAAG;AAC7B,SAAK,IAAI,cAAc,yBAAyB;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,mBAAkC;AAC9C,QAAI,MAAM,qBAAqB,EAAG;AAClC,SAAK,MAAM,eAAe,sBAAsB,EAAE,MAAM,WAAW,MAAM,CAAC;AAAA,EAC5E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAc,oBAAoB,cAAuC;AACvE,UAAM,SAAmB,CAAC;AAE1B,eAAW,eAAe,cAAc;AACtC,WAAK,IAAI,0BAA0B,WAAW,KAAK;AACnD,UAAI;AACF,cAAM,8BAA8B,WAAW;AAC/C,aAAK,IAAI,yBAAyB,WAAW,EAAE;AAAA,MACjD,SAAS,OAAO;AACd,eAAO,KAAK,WAAW;AACvB,aAAK,KAAK,yBAAyB,aAAa,gBAAgB,KAAK,CAAC,CAAC;AAAA,MACzE;AAAA,IACF;AAEA,QAAI,OAAO,SAAS,GAAG;AACrB,WAAK,MAAM,0BAA0B,MAAM,GAAG,EAAE,MAAM,WAAW,MAAM,CAAC;AAAA,IAC1E;AAEA,SAAK,WAAW,sBAAsB,aAAa,MAAM,CAAC;AAAA,EAC5D;AACF;","names":[]}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CategoryGrid
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-LA3JPESW.js";
|
|
5
5
|
import "../../chunk-J27W6TXS.js";
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-WKTHWQKM.js";
|
|
6
|
+
import "../../chunk-DRKSYJZ2.js";
|
|
7
|
+
import "../../chunk-Q5FLW4JG.js";
|
|
8
|
+
import "../../chunk-IPJOMAWC.js";
|
|
10
9
|
import "../../chunk-VASLW636.js";
|
|
11
|
-
import "../../chunk-
|
|
10
|
+
import "../../chunk-R54KIGN2.js";
|
|
12
11
|
export {
|
|
13
12
|
CategoryGrid
|
|
14
13
|
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CheckboxGrid
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-76ADG7LQ.js";
|
|
4
|
+
} from "../../chunk-ONWEOS77.js";
|
|
5
|
+
import "../../chunk-V3ENMW7G.js";
|
|
6
|
+
import "../../chunk-DRKSYJZ2.js";
|
|
7
|
+
import "../../chunk-Q5FLW4JG.js";
|
|
8
|
+
import "../../chunk-R54KIGN2.js";
|
|
10
9
|
export {
|
|
11
10
|
CheckboxGrid
|
|
12
11
|
};
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
DomainSelection
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
14
|
-
import "../../chunk-WKTHWQKM.js";
|
|
4
|
+
} from "../../chunk-AKQ5QISO.js";
|
|
5
|
+
import "../../chunk-CHNA5RVS.js";
|
|
6
|
+
import "../../chunk-ONWEOS77.js";
|
|
7
|
+
import "../../chunk-V3ENMW7G.js";
|
|
8
|
+
import "../../chunk-DRKSYJZ2.js";
|
|
9
|
+
import "../../chunk-Q5FLW4JG.js";
|
|
10
|
+
import "../../chunk-QQTYMW7N.js";
|
|
11
|
+
import "../../chunk-CBF4ZYV3.js";
|
|
12
|
+
import "../../chunk-4VCWL2IG.js";
|
|
13
|
+
import "../../chunk-IPJOMAWC.js";
|
|
15
14
|
import "../../chunk-VASLW636.js";
|
|
16
|
-
import "../../chunk-
|
|
17
|
-
import "../../chunk-
|
|
15
|
+
import "../../chunk-R54KIGN2.js";
|
|
16
|
+
import "../../chunk-VZRO7RYT.js";
|
|
18
17
|
export {
|
|
19
18
|
DomainSelection
|
|
20
19
|
};
|