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
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
+
DOMAIN_ORDER,
|
|
3
4
|
deriveInstallMode,
|
|
4
5
|
getAvailableSkills,
|
|
6
|
+
getCellState,
|
|
5
7
|
getUnmetRequiredBy,
|
|
6
8
|
isActiveAt,
|
|
7
|
-
isCompatibleWithSelections,
|
|
8
9
|
isGlobalTombstone,
|
|
9
10
|
isProjectOwned
|
|
10
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CBF4ZYV3.js";
|
|
11
12
|
import {
|
|
12
13
|
warn
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4VCWL2IG.js";
|
|
14
15
|
import {
|
|
15
16
|
getCategoryDomain,
|
|
16
17
|
getSkillById,
|
|
17
18
|
matrix
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-IPJOMAWC.js";
|
|
19
20
|
import {
|
|
20
21
|
typedEntries,
|
|
21
22
|
typedFromEntries,
|
|
@@ -23,14 +24,14 @@ import {
|
|
|
23
24
|
typedValues
|
|
24
25
|
} from "./chunk-VASLW636.js";
|
|
25
26
|
import {
|
|
26
|
-
BUILT_IN_DOMAIN_ORDER,
|
|
27
27
|
DEFAULT_PUBLIC_SOURCE_NAME,
|
|
28
|
+
DEFAULT_SCRATCH_DOMAINS,
|
|
28
29
|
EJECT_SOURCE,
|
|
29
|
-
FALLBACK_DOMAIN
|
|
30
|
-
|
|
30
|
+
FALLBACK_DOMAIN,
|
|
31
|
+
INSTALL_MODES
|
|
32
|
+
} from "./chunk-R54KIGN2.js";
|
|
31
33
|
|
|
32
34
|
// src/cli/stores/wizard-store.ts
|
|
33
|
-
import { flatMap } from "remeda";
|
|
34
35
|
import { create } from "zustand";
|
|
35
36
|
|
|
36
37
|
// src/cli/lib/wizard/build-step-logic.ts
|
|
@@ -122,9 +123,9 @@ function classifyDiffRow(skill, prevKeySet, prevSourceMap) {
|
|
|
122
123
|
const key = skillSlotKey(skill.id, skill.scope);
|
|
123
124
|
const isNew = prevKeySet === null || !prevKeySet.has(key);
|
|
124
125
|
const prevSource = prevSourceMap?.get(key);
|
|
125
|
-
const
|
|
126
|
-
if (
|
|
127
|
-
return { id: skill.id, source: skill.source, status: "
|
|
126
|
+
const modeChanged = !isNew && prevSource != null && prevSource !== skill.source;
|
|
127
|
+
if (modeChanged) {
|
|
128
|
+
return { id: skill.id, source: skill.source, status: "mode-changed" };
|
|
128
129
|
}
|
|
129
130
|
return { id: skill.id, source: skill.source, status: isNew ? "added" : "unchanged" };
|
|
130
131
|
}
|
|
@@ -140,53 +141,48 @@ function toRemovedAgentRow(agent) {
|
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
// src/cli/lib/wizard/build-step-logic.ts
|
|
143
|
-
|
|
144
|
-
var WEB_DOMAIN_ID = "web";
|
|
145
|
-
function getSelectedFrameworks(selections) {
|
|
146
|
-
return (selections[FRAMEWORK_CATEGORY_ID] ?? []).map((alias) => getSkillById(alias).id);
|
|
147
|
-
}
|
|
148
|
-
function isCompatibleWithSelectedFrameworks(skillId, selectedFrameworkIds) {
|
|
149
|
-
return isCompatibleWithSelections(getSkillById(skillId), selectedFrameworkIds);
|
|
150
|
-
}
|
|
151
|
-
function buildCategoriesForDomain(domain, allSelections, selections, installedSkillIds, skillConfigs, filterIncompatible) {
|
|
152
|
-
const selectedFrameworkIds = getSelectedFrameworks(selections);
|
|
153
|
-
const shouldFilter = filterIncompatible && domain === WEB_DOMAIN_ID && selectedFrameworkIds.length > 0;
|
|
144
|
+
function buildCategoriesForDomain(domain, allSelections, installedSkillIds, skillConfigs) {
|
|
154
145
|
const categories = sortBy(
|
|
155
146
|
typedValues(matrix.categories).filter((cat) => cat.domain === domain),
|
|
147
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- CategoryDefinition declares this required, but an auto-synthesized category for a custom skill can arrive without it — the type is stricter than the data
|
|
156
148
|
(cat) => cat.order ?? 0
|
|
157
149
|
);
|
|
158
150
|
const categoryRows = categories.map((cat) => {
|
|
159
151
|
const skillOptions = getAvailableSkills(cat.id, allSelections);
|
|
160
|
-
const filteredOptions = shouldFilter && cat.id !== FRAMEWORK_CATEGORY_ID ? skillOptions.filter(
|
|
161
|
-
(skill) => isCompatibleWithSelectedFrameworks(skill.id, selectedFrameworkIds)
|
|
162
|
-
) : skillOptions;
|
|
163
|
-
const isExclusive = cat.exclusive ?? true;
|
|
164
152
|
const sortedOptions = sortBy(
|
|
165
|
-
|
|
153
|
+
skillOptions,
|
|
166
154
|
(skill) => getSkillById(skill.id).displayName.toLowerCase()
|
|
167
155
|
);
|
|
168
156
|
const options = sortedOptions.map((skill) => {
|
|
169
157
|
const activeConfig = skillConfigs?.find((sc) => sc.id === skill.id && !sc.excluded);
|
|
170
158
|
const excludedConfig = skillConfigs?.find((sc) => sc.id === skill.id && sc.excluded);
|
|
171
159
|
const { secondaryScope } = deriveScopeBadges(activeConfig, excludedConfig);
|
|
160
|
+
const local = getSkillById(skill.id).local;
|
|
161
|
+
const requiredBy = skill.selected ? void 0 : getUnmetRequiredBy(skill.id, allSelections);
|
|
172
162
|
return {
|
|
173
163
|
id: skill.id,
|
|
174
|
-
|
|
164
|
+
// The cell verdict, not the raw advisory: inside a pick-one category
|
|
165
|
+
// the shared semantics forgive what the swap resolves.
|
|
166
|
+
state: getCellState(skill.id, allSelections),
|
|
175
167
|
selected: skill.selected,
|
|
176
|
-
local
|
|
168
|
+
...local !== void 0 && { local },
|
|
177
169
|
installed: installedSkillIds?.includes(skill.id) || false,
|
|
178
|
-
scope: activeConfig
|
|
179
|
-
secondaryScope,
|
|
180
|
-
source: activeConfig
|
|
170
|
+
...activeConfig?.scope !== void 0 && { scope: activeConfig.scope },
|
|
171
|
+
...secondaryScope !== void 0 && { secondaryScope },
|
|
172
|
+
...activeConfig?.source !== void 0 && { source: activeConfig.source },
|
|
181
173
|
hasUnmetRequirements: skill.hasUnmetRequirements,
|
|
182
|
-
|
|
183
|
-
|
|
174
|
+
...skill.unmetRequirementsReason !== void 0 && {
|
|
175
|
+
unmetRequirementsReason: skill.unmetRequirementsReason
|
|
176
|
+
},
|
|
177
|
+
...requiredBy !== void 0 && { requiredBy }
|
|
184
178
|
};
|
|
185
179
|
});
|
|
186
180
|
return {
|
|
187
181
|
id: cat.id,
|
|
188
182
|
displayName: cat.displayName,
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- CategoryDefinition declares this required, but an auto-synthesized category for a custom skill can arrive without it — the type is stricter than the data
|
|
189
184
|
required: cat.required ?? false,
|
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- CategoryDefinition declares this required, but an auto-synthesized category for a custom skill can arrive without it — the type is stricter than the data
|
|
190
186
|
exclusive: cat.exclusive ?? true,
|
|
191
187
|
options
|
|
192
188
|
};
|
|
@@ -196,10 +192,10 @@ function buildCategoriesForDomain(domain, allSelections, selections, installedSk
|
|
|
196
192
|
|
|
197
193
|
// src/cli/lib/wizard/domain-order.ts
|
|
198
194
|
function orderDomains(domains) {
|
|
199
|
-
const builtInSet = new Set(
|
|
195
|
+
const builtInSet = new Set(DOMAIN_ORDER);
|
|
200
196
|
return [
|
|
201
197
|
...domains.filter((d) => !builtInSet.has(d)).sort(),
|
|
202
|
-
...
|
|
198
|
+
...DOMAIN_ORDER.filter((d) => domains.includes(d))
|
|
203
199
|
];
|
|
204
200
|
}
|
|
205
201
|
|
|
@@ -221,28 +217,6 @@ function createDefaultSkillConfig(id) {
|
|
|
221
217
|
const primarySource = primarySourceName(skill);
|
|
222
218
|
return { id, scope: "global", source: primarySource ?? DEFAULT_PUBLIC_SOURCE_NAME };
|
|
223
219
|
}
|
|
224
|
-
function findIncompatibleWebSkills(webSelections, skillConfigs) {
|
|
225
|
-
const frameworkSelections = webSelections[FRAMEWORK_CATEGORY_ID] ?? [];
|
|
226
|
-
if (frameworkSelections.length === 0) return /* @__PURE__ */ new Set();
|
|
227
|
-
const excludedIds = new Set(skillConfigs.filter((s) => s.excluded).map((s) => s.id));
|
|
228
|
-
const selectedFrameworkIds = frameworkSelections.map((alias) => getSkillById(alias).id);
|
|
229
|
-
return new Set(
|
|
230
|
-
flatMap(
|
|
231
|
-
typedEntries(webSelections),
|
|
232
|
-
([cat, skills]) => cat === FRAMEWORK_CATEGORY_ID || !skills ? [] : skills.filter(
|
|
233
|
-
(id) => !excludedIds.has(id) && !isCompatibleWithSelectedFrameworks(id, selectedFrameworkIds)
|
|
234
|
-
)
|
|
235
|
-
)
|
|
236
|
-
);
|
|
237
|
-
}
|
|
238
|
-
function removeSkillsFromSelections(selections, toRemove) {
|
|
239
|
-
return typedFromEntries(
|
|
240
|
-
typedEntries(selections).map(([cat, skills]) => [
|
|
241
|
-
cat,
|
|
242
|
-
skills?.filter((id) => !toRemove.has(id)) ?? []
|
|
243
|
-
])
|
|
244
|
-
);
|
|
245
|
-
}
|
|
246
220
|
function hasProjectActive(configs, id) {
|
|
247
221
|
return configs.some((sc) => sc.id === id && isActiveAt(sc, "project"));
|
|
248
222
|
}
|
|
@@ -259,7 +233,10 @@ function isDualScopePair(configs, id) {
|
|
|
259
233
|
return hasProjectActive(configs, id) && hasGlobalTombstone(configs, id);
|
|
260
234
|
}
|
|
261
235
|
function isGloballyLockedSkill(installed, liveConfigs, id) {
|
|
262
|
-
return hasGlobalActive(installed, id) || hasGlobalTombstone(installed, id) && hasGlobalActive(liveConfigs, id)
|
|
236
|
+
return hasGlobalActive(installed, id) || hasGlobalTombstone(installed, id) && hasGlobalActive(liveConfigs, id);
|
|
237
|
+
}
|
|
238
|
+
function blocksExclusiveSwap(installed, liveConfigs, id) {
|
|
239
|
+
return isGloballyLockedSkill(installed, liveConfigs, id) || isDualScopePair(liveConfigs, id);
|
|
263
240
|
}
|
|
264
241
|
function wouldOverwriteGlobalEject(config, liveConfigs, installedSkillConfigs) {
|
|
265
242
|
if (config.scope !== "project" || config.source !== EJECT_SOURCE) return false;
|
|
@@ -269,6 +246,10 @@ function wouldOverwriteGlobalEject(config, liveConfigs, installedSkillConfigs) {
|
|
|
269
246
|
if (!globalEjectInstalled) return false;
|
|
270
247
|
return !liveConfigs.some((sc) => sc.id === config.id && sc.excluded);
|
|
271
248
|
}
|
|
249
|
+
function isInheritedGlobalSlot(installed, id, scope) {
|
|
250
|
+
if (installed === null) return false;
|
|
251
|
+
return scope === "global" && hasGlobalActive(installed, id);
|
|
252
|
+
}
|
|
272
253
|
function withActiveEntrySource(configs, id, scope, source) {
|
|
273
254
|
return configs.map(
|
|
274
255
|
(sc) => sc.id === id && !sc.excluded && sc.scope === scope ? { ...sc, source } : sc
|
|
@@ -308,9 +289,11 @@ function reconcileSkillConfigs(configs, added, removed, installedSkillConfigs, i
|
|
|
308
289
|
}
|
|
309
290
|
const existingExcluded = result.find((sc) => sc.id === id && sc.excluded);
|
|
310
291
|
if (existingExcluded) {
|
|
311
|
-
result = result.map(
|
|
312
|
-
(sc
|
|
313
|
-
|
|
292
|
+
result = result.map((sc) => {
|
|
293
|
+
if (sc.id !== id || !sc.excluded) return sc;
|
|
294
|
+
const { excluded: _excluded, ...active } = sc;
|
|
295
|
+
return active;
|
|
296
|
+
});
|
|
314
297
|
} else if (!result.some((sc) => sc.id === id)) {
|
|
315
298
|
result = [...result, buildSkillConfigForId(id, installedSkillConfigs)];
|
|
316
299
|
}
|
|
@@ -338,9 +321,11 @@ function applyAgentToggle(configs, agent, isSelected) {
|
|
|
338
321
|
}
|
|
339
322
|
const existingExcluded = configs.find((ac) => ac.name === agent && ac.excluded);
|
|
340
323
|
if (existingExcluded) {
|
|
341
|
-
return configs.map(
|
|
342
|
-
(ac
|
|
343
|
-
|
|
324
|
+
return configs.map((ac) => {
|
|
325
|
+
if (ac.name !== agent || !ac.excluded) return ac;
|
|
326
|
+
const { excluded: _excluded, ...active } = ac;
|
|
327
|
+
return active;
|
|
328
|
+
});
|
|
344
329
|
}
|
|
345
330
|
return [...configs, { name: agent, scope: "global" }];
|
|
346
331
|
}
|
|
@@ -387,40 +372,26 @@ function buildAgentConfigForName(name, savedConfigs) {
|
|
|
387
372
|
function restoreSkillConfigs(existingConfigs, restoredIds) {
|
|
388
373
|
const restoredSet = new Set(restoredIds);
|
|
389
374
|
const existingIds = new Set(existingConfigs.map((sc) => sc.id));
|
|
390
|
-
const updated = existingConfigs.map(
|
|
391
|
-
(
|
|
392
|
-
|
|
375
|
+
const updated = existingConfigs.map((sc) => {
|
|
376
|
+
if (!restoredSet.has(sc.id) || !sc.excluded) return sc;
|
|
377
|
+
const { excluded: _excluded, ...active } = sc;
|
|
378
|
+
return active;
|
|
379
|
+
});
|
|
393
380
|
const newConfigs = restoredIds.filter((id) => !existingIds.has(id)).map(createDefaultSkillConfig);
|
|
394
381
|
return [...updated, ...newConfigs];
|
|
395
382
|
}
|
|
396
383
|
var DOMAIN_AGENTS = {
|
|
397
|
-
web: [
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
"web-tester",
|
|
402
|
-
"web-pm",
|
|
403
|
-
"web-architecture"
|
|
404
|
-
],
|
|
405
|
-
api: ["api-developer", "api-reviewer", "api-researcher"],
|
|
406
|
-
cli: ["cli-developer", "cli-tester", "cli-reviewer"]
|
|
384
|
+
web: ["web-developer", "web-researcher", "web-tester", "pm", "reviewer"],
|
|
385
|
+
api: ["api-developer", "api-researcher", "api-tester", "pm", "reviewer"],
|
|
386
|
+
cli: ["cli-developer", "cli-tester", "cli-researcher", "pm", "reviewer"],
|
|
387
|
+
ai: ["ai-developer", "ai-researcher", "ai-tester", "pm", "reviewer"]
|
|
407
388
|
};
|
|
408
|
-
var SOURCE_SORT_TIER_LOCAL = 1;
|
|
409
|
-
var SOURCE_SORT_TIER_SCOPED = 2;
|
|
410
|
-
var SOURCE_SORT_TIER_PUBLIC = 3;
|
|
411
|
-
var SOURCE_SORT_TIER_THIRD_PARTY = 4;
|
|
412
|
-
function getSourceSortTier(source) {
|
|
413
|
-
if (source.type === "local") return SOURCE_SORT_TIER_LOCAL;
|
|
414
|
-
if (source.primary) return SOURCE_SORT_TIER_SCOPED;
|
|
415
|
-
if (source.type === "public") return SOURCE_SORT_TIER_PUBLIC;
|
|
416
|
-
return SOURCE_SORT_TIER_THIRD_PARTY;
|
|
417
|
-
}
|
|
418
389
|
function resolveSkillForPopulation(skillId) {
|
|
419
390
|
const { skills } = matrix;
|
|
420
391
|
const skill = skills[skillId];
|
|
421
392
|
if (!skill?.category) {
|
|
422
393
|
warn(
|
|
423
|
-
`Installed skill '${skillId}' is
|
|
394
|
+
`Installed skill '${skillId}' is not present in the loaded source \u2014 it may have been removed or renamed`
|
|
424
395
|
);
|
|
425
396
|
return null;
|
|
426
397
|
}
|
|
@@ -439,33 +410,17 @@ function addToDomainSelections(selections, domain, category, skillId) {
|
|
|
439
410
|
skillList.push(skillId);
|
|
440
411
|
return true;
|
|
441
412
|
}
|
|
442
|
-
function
|
|
443
|
-
return
|
|
444
|
-
id: bound.sourceName,
|
|
445
|
-
selected: selectedSource === bound.sourceName,
|
|
446
|
-
installed: false
|
|
447
|
-
}));
|
|
413
|
+
function marketplaceSourceName(skill) {
|
|
414
|
+
return skill.availableSources?.find((source) => source.type !== "local")?.name ?? DEFAULT_PUBLIC_SOURCE_NAME;
|
|
448
415
|
}
|
|
449
|
-
function
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
})) : [
|
|
458
|
-
{
|
|
459
|
-
id: DEFAULT_PUBLIC_SOURCE_NAME,
|
|
460
|
-
selected: selectedSource === DEFAULT_PUBLIC_SOURCE_NAME,
|
|
461
|
-
installed: false
|
|
462
|
-
}
|
|
463
|
-
];
|
|
464
|
-
const withEject = baseOptions.some((o) => o.id === EJECT_SOURCE) ? baseOptions : [
|
|
465
|
-
{ id: EJECT_SOURCE, selected: selectedSource === EJECT_SOURCE, installed: false },
|
|
466
|
-
...baseOptions
|
|
467
|
-
];
|
|
468
|
-
return [...withEject, ...buildBoundSkillOptions(boundSkills, skill.slug, selectedSource)];
|
|
416
|
+
function sourceForInstallMode(skill, mode) {
|
|
417
|
+
return mode === "eject" ? EJECT_SOURCE : marketplaceSourceName(skill);
|
|
418
|
+
}
|
|
419
|
+
function installModeOfSource(source) {
|
|
420
|
+
return source === EJECT_SOURCE ? "eject" : "plugin";
|
|
421
|
+
}
|
|
422
|
+
function buildInstallModeOptions(selectedMode) {
|
|
423
|
+
return INSTALL_MODES.map((mode) => ({ mode, selected: mode === selectedMode }));
|
|
469
424
|
}
|
|
470
425
|
function collectRemovedInstalledEntries(installedSkillConfigs, skillConfigs) {
|
|
471
426
|
if (!installedSkillConfigs) return [];
|
|
@@ -483,10 +438,11 @@ function collectInstalledSkillSlots(installedSkillConfigs) {
|
|
|
483
438
|
function addedSlotFlag(installedSkillSlots, id, scope) {
|
|
484
439
|
return installedSkillSlots.has(skillSlotKey(id, scope)) ? {} : { added: true };
|
|
485
440
|
}
|
|
486
|
-
function
|
|
487
|
-
|
|
441
|
+
function withSelectedMode(options, source) {
|
|
442
|
+
const mode = installModeOfSource(source);
|
|
443
|
+
return options.map((option) => ({ ...option, selected: option.mode === mode }));
|
|
488
444
|
}
|
|
489
|
-
function resolveSkillRowInputs(id, skillConfigs
|
|
445
|
+
function resolveSkillRowInputs(id, skillConfigs) {
|
|
490
446
|
const skill = getSkillById(id);
|
|
491
447
|
const configEntry = skillConfigs.find((sc) => sc.id === skill.id);
|
|
492
448
|
const selectedSource = resolveEffectiveSource(
|
|
@@ -497,13 +453,13 @@ function resolveSkillRowInputs(id, skillConfigs, boundSkills) {
|
|
|
497
453
|
return {
|
|
498
454
|
skillId: skill.id,
|
|
499
455
|
configEntry,
|
|
500
|
-
options:
|
|
456
|
+
options: buildInstallModeOptions(installModeOfSource(selectedSource))
|
|
501
457
|
};
|
|
502
458
|
}
|
|
503
459
|
function toPendingRemovalRow(skillId, options, removedInstalledEntry) {
|
|
504
460
|
return {
|
|
505
461
|
skillId,
|
|
506
|
-
options:
|
|
462
|
+
options: withSelectedMode(options, removedInstalledEntry.source),
|
|
507
463
|
scope: removedInstalledEntry.scope,
|
|
508
464
|
disabled: true
|
|
509
465
|
};
|
|
@@ -515,7 +471,7 @@ function isSlotAlreadyRendered(rows, removedInstalledEntry) {
|
|
|
515
471
|
function toLockedGlobalRow(skillId, options, installedSource, installedSkillSlots) {
|
|
516
472
|
return {
|
|
517
473
|
skillId,
|
|
518
|
-
options:
|
|
474
|
+
options: withSelectedMode(options, installedSource),
|
|
519
475
|
scope: "global",
|
|
520
476
|
readOnly: true,
|
|
521
477
|
...addedSlotFlag(installedSkillSlots, skillId, "global")
|
|
@@ -551,7 +507,7 @@ function classifySkillSourceRows(skillId, options, context) {
|
|
|
551
507
|
{
|
|
552
508
|
skillId,
|
|
553
509
|
options,
|
|
554
|
-
scope: configEntry
|
|
510
|
+
...configEntry?.scope !== void 0 && { scope: configEntry.scope },
|
|
555
511
|
...readOnly ? { readOnly: true } : {},
|
|
556
512
|
...addedSlotFlag(installedSkillSlots, skillId, configEntry?.scope)
|
|
557
513
|
}
|
|
@@ -570,6 +526,17 @@ var WIZARD_STEP_ORDER = [
|
|
|
570
526
|
"agents",
|
|
571
527
|
"confirm"
|
|
572
528
|
];
|
|
529
|
+
function offersStacks() {
|
|
530
|
+
return matrix.suggestedStacks.length > 0;
|
|
531
|
+
}
|
|
532
|
+
function getActiveStepFlow() {
|
|
533
|
+
if (offersStacks()) return [...WIZARD_STEP_ORDER];
|
|
534
|
+
return WIZARD_STEP_ORDER.filter((step) => step !== "stack");
|
|
535
|
+
}
|
|
536
|
+
function stepsBefore(flow, step) {
|
|
537
|
+
const index = flow.indexOf(step);
|
|
538
|
+
return index < 0 ? [] : flow.slice(0, index);
|
|
539
|
+
}
|
|
573
540
|
var createInitialState = (overrides) => ({
|
|
574
541
|
step: "stack",
|
|
575
542
|
approach: null,
|
|
@@ -581,17 +548,13 @@ var createInitialState = (overrides) => ({
|
|
|
581
548
|
/** Snapshot of domainSelections from populateFromSkillIds, used to restore on domain re-toggle */
|
|
582
549
|
_stackDomainSelections: null,
|
|
583
550
|
showLabels: false,
|
|
584
|
-
filterIncompatible: false,
|
|
585
551
|
skillConfigs: [],
|
|
586
552
|
focusedSkillId: null,
|
|
587
553
|
unresolvableSkillIds: [],
|
|
588
|
-
customizeSources: false,
|
|
589
|
-
showSettings: false,
|
|
590
554
|
showInfo: false,
|
|
591
555
|
selectedAgents: [],
|
|
592
556
|
agentConfigs: [],
|
|
593
557
|
focusedAgentId: null,
|
|
594
|
-
boundSkills: [],
|
|
595
558
|
installedSkillConfigs: null,
|
|
596
559
|
installedAgentConfigs: null,
|
|
597
560
|
isInitMode: false,
|
|
@@ -620,11 +583,30 @@ var useWizardStore = create((set, get) => ({
|
|
|
620
583
|
skillConfigs: [],
|
|
621
584
|
selectedAgents: [],
|
|
622
585
|
agentConfigs: [],
|
|
623
|
-
boundSkills: [],
|
|
624
586
|
currentDomainIndex: 0,
|
|
625
587
|
stackAction: null
|
|
626
588
|
}),
|
|
627
589
|
setStackAction: (action) => set({ stackAction: action }),
|
|
590
|
+
startFromScratch: () => {
|
|
591
|
+
get().selectStack(null);
|
|
592
|
+
get().setApproach("scratch");
|
|
593
|
+
const { globalAgentPreselections, globalPreselections } = get();
|
|
594
|
+
if (globalAgentPreselections) {
|
|
595
|
+
set({
|
|
596
|
+
selectedAgents: globalAgentPreselections.agents,
|
|
597
|
+
agentConfigs: globalAgentPreselections.configs
|
|
598
|
+
});
|
|
599
|
+
}
|
|
600
|
+
if (globalPreselections?.length) {
|
|
601
|
+
get().populateFromSkillIds(
|
|
602
|
+
globalPreselections.map((skill) => skill.id),
|
|
603
|
+
globalPreselections
|
|
604
|
+
);
|
|
605
|
+
}
|
|
606
|
+
for (const domain of DEFAULT_SCRATCH_DOMAINS) {
|
|
607
|
+
if (!get().selectedDomains.includes(domain)) get().toggleDomain(domain);
|
|
608
|
+
}
|
|
609
|
+
},
|
|
628
610
|
populateFromSkillIds: (skillIds, savedConfigs) => set(() => {
|
|
629
611
|
const domainSelections = {};
|
|
630
612
|
const resolvedSkillIds = [];
|
|
@@ -640,11 +622,6 @@ var useWizardStore = create((set, get) => ({
|
|
|
640
622
|
resolvedSkillIds.push(techId);
|
|
641
623
|
}
|
|
642
624
|
}
|
|
643
|
-
if (unresolvableSkillIds.length > 0) {
|
|
644
|
-
warn(
|
|
645
|
-
`${unresolvableSkillIds.length} installed skill(s) could not be resolved and were skipped`
|
|
646
|
-
);
|
|
647
|
-
}
|
|
648
625
|
const selectedDomains = orderDomains(typedKeys(domainSelections));
|
|
649
626
|
const skillConfigs = resolvedSkillIds.map(
|
|
650
627
|
(id) => buildSkillConfigForId(id, savedConfigs)
|
|
@@ -701,7 +678,7 @@ var useWizardStore = create((set, get) => ({
|
|
|
701
678
|
}
|
|
702
679
|
if (isSelected) {
|
|
703
680
|
const categoryDef = matrix.categories[category];
|
|
704
|
-
if (categoryDef?.exclusive && categoryDef
|
|
681
|
+
if (categoryDef?.exclusive && categoryDef.required) {
|
|
705
682
|
const categorySkillCount = typedValues(matrix.skills).filter(
|
|
706
683
|
(s) => s.category === category
|
|
707
684
|
).length;
|
|
@@ -712,7 +689,7 @@ var useWizardStore = create((set, get) => ({
|
|
|
712
689
|
}
|
|
713
690
|
if (exclusive && !isSelected) {
|
|
714
691
|
const wouldDropLockedSkill = currentSelections.some(
|
|
715
|
-
(selectedId) =>
|
|
692
|
+
(selectedId) => blocksExclusiveSwap(installed, state.skillConfigs, selectedId)
|
|
716
693
|
);
|
|
717
694
|
if (wouldDropLockedSkill && !state.isEditingFromGlobalScope) {
|
|
718
695
|
return { toastMessage: TOAST_MESSAGES.GLOBAL_SKILLS_LOCKED };
|
|
@@ -776,33 +753,6 @@ var useWizardStore = create((set, get) => ({
|
|
|
776
753
|
}
|
|
777
754
|
},
|
|
778
755
|
toggleShowLabels: () => set((state) => ({ showLabels: !state.showLabels })),
|
|
779
|
-
toggleFilterIncompatible: () => set((state) => {
|
|
780
|
-
if (state.filterIncompatible) return { filterIncompatible: false };
|
|
781
|
-
const webSelections = state.domainSelections.web;
|
|
782
|
-
if (!webSelections) return { filterIncompatible: true };
|
|
783
|
-
const removed = findIncompatibleWebSkills(webSelections, state.skillConfigs);
|
|
784
|
-
if (removed.size === 0) return { filterIncompatible: true };
|
|
785
|
-
const installed = state.installedSkillConfigs ?? [];
|
|
786
|
-
const removesLockedGlobal = [...removed].some(
|
|
787
|
-
(id) => hasGlobalActive(installed, id) || hasGlobalTombstone(installed, id) && hasGlobalActive(state.skillConfigs, id)
|
|
788
|
-
);
|
|
789
|
-
if (removesLockedGlobal && !state.isEditingFromGlobalScope) {
|
|
790
|
-
return { toastMessage: TOAST_MESSAGES.GLOBAL_SKILLS_LOCKED };
|
|
791
|
-
}
|
|
792
|
-
return {
|
|
793
|
-
filterIncompatible: true,
|
|
794
|
-
domainSelections: {
|
|
795
|
-
...state.domainSelections,
|
|
796
|
-
web: removeSkillsFromSelections(webSelections, removed)
|
|
797
|
-
},
|
|
798
|
-
// Global-scope edit: clean uninstall, no tombstone (D-233 Scenario C).
|
|
799
|
-
skillConfigs: applySkillRemoval(
|
|
800
|
-
state.skillConfigs,
|
|
801
|
-
removed,
|
|
802
|
-
state.isEditingFromGlobalScope ? null : state.installedSkillConfigs
|
|
803
|
-
)
|
|
804
|
-
};
|
|
805
|
-
}),
|
|
806
756
|
deriveInstallMode: () => {
|
|
807
757
|
const { skillConfigs } = get();
|
|
808
758
|
return deriveInstallMode(skillConfigs);
|
|
@@ -837,40 +787,26 @@ var useWizardStore = create((set, get) => ({
|
|
|
837
787
|
const categories = buildCategoriesForDomain(
|
|
838
788
|
domain,
|
|
839
789
|
state.getAllSelectedTechnologies(),
|
|
840
|
-
state.domainSelections[domain] ?? {},
|
|
841
790
|
void 0,
|
|
842
|
-
state.skillConfigs
|
|
843
|
-
state.filterIncompatible
|
|
791
|
+
state.skillConfigs
|
|
844
792
|
);
|
|
845
793
|
set({ focusedSkillId: categories[0]?.options[0]?.id ?? null });
|
|
846
794
|
},
|
|
847
|
-
|
|
795
|
+
setInstallMode: (skillId, mode, scope) => set((state) => {
|
|
848
796
|
if (!skillId) {
|
|
849
|
-
warn("Ignoring
|
|
797
|
+
warn("Ignoring setInstallMode call with empty skillId");
|
|
850
798
|
return state;
|
|
851
799
|
}
|
|
852
|
-
if (!
|
|
853
|
-
warn(`Ignoring setSourceSelection call with empty sourceId for skill '${skillId}'`);
|
|
800
|
+
if (isInheritedGlobalSlot(state.installedSkillConfigs, skillId, scope) && !state.isEditingFromGlobalScope) {
|
|
854
801
|
return state;
|
|
855
802
|
}
|
|
803
|
+
const source = sourceForInstallMode(getSkillById(skillId), mode);
|
|
856
804
|
return {
|
|
857
|
-
skillConfigs: withActiveEntrySource(state.skillConfigs, skillId, scope,
|
|
805
|
+
skillConfigs: withActiveEntrySource(state.skillConfigs, skillId, scope, source)
|
|
858
806
|
};
|
|
859
807
|
}),
|
|
860
|
-
setCustomizeSources: (customize) => set({ customizeSources: customize }),
|
|
861
|
-
toggleSettings: () => set((state) => ({ showSettings: !state.showSettings })),
|
|
862
808
|
toggleInfo: () => set((state) => ({ showInfo: !state.showInfo })),
|
|
863
809
|
setToastMessage: (message) => set({ toastMessage: message }),
|
|
864
|
-
bindSkill: (skill) => set((state) => {
|
|
865
|
-
const exists = state.boundSkills.some(
|
|
866
|
-
(b) => b.id === skill.id && b.sourceUrl === skill.sourceUrl
|
|
867
|
-
);
|
|
868
|
-
if (exists) {
|
|
869
|
-
warn(`Skill '${skill.id}' from '${skill.sourceUrl}' is already bound \u2014 skipping duplicate`);
|
|
870
|
-
return state;
|
|
871
|
-
}
|
|
872
|
-
return { boundSkills: [...state.boundSkills, skill] };
|
|
873
|
-
}),
|
|
874
810
|
goBack: () => set((state) => {
|
|
875
811
|
if (state.history.length === 0) return state;
|
|
876
812
|
const history = [...state.history];
|
|
@@ -923,7 +859,10 @@ var useWizardStore = create((set, get) => ({
|
|
|
923
859
|
}),
|
|
924
860
|
setFocusedAgentId: (id) => set({ focusedAgentId: id }),
|
|
925
861
|
preselectAgentsFromDomains: () => set((state) => {
|
|
926
|
-
|
|
862
|
+
if (state.selectedStackId) return state;
|
|
863
|
+
const sorted = [
|
|
864
|
+
...new Set(state.selectedDomains.flatMap((domain) => DOMAIN_AGENTS[domain] ?? []))
|
|
865
|
+
].sort();
|
|
927
866
|
const roster = new Set(sorted);
|
|
928
867
|
const merged = sorted.map((name) => buildAgentConfigForName(name, state.agentConfigs));
|
|
929
868
|
const retained = state.agentConfigs.filter((ac) => survivesRosterRebuild(ac, roster));
|
|
@@ -962,7 +901,7 @@ var useWizardStore = create((set, get) => ({
|
|
|
962
901
|
const state = get();
|
|
963
902
|
const isStackDefaults = state.approach === "stack" && !!state.selectedStackId && state.stackAction === "defaults";
|
|
964
903
|
const skippedSteps = isStackDefaults ? ["build", "sources", "agents"] : [];
|
|
965
|
-
const precedingSteps =
|
|
904
|
+
const precedingSteps = stepsBefore(getActiveStepFlow(), state.step);
|
|
966
905
|
const completedSteps = precedingSteps.filter((step) => !skippedSteps.includes(step));
|
|
967
906
|
return { completedSteps, skippedSteps };
|
|
968
907
|
},
|
|
@@ -974,40 +913,17 @@ var useWizardStore = create((set, get) => ({
|
|
|
974
913
|
const state = get();
|
|
975
914
|
return state.currentDomainIndex > 0;
|
|
976
915
|
},
|
|
977
|
-
setAllSourcesEject: () => {
|
|
978
|
-
set((state) => ({
|
|
979
|
-
// Never touch tombstones — a dual-scope skill's excluded global tombstone keeps describing
|
|
980
|
-
// the masked global install. The bulk set-all applies only to active entries, mirroring the
|
|
981
|
-
// D-262 per-skill setSkillSource/setSourceSelection guard (D-265).
|
|
982
|
-
skillConfigs: state.skillConfigs.map(
|
|
983
|
-
(sc) => sc.excluded ? sc : { ...sc, source: EJECT_SOURCE }
|
|
984
|
-
)
|
|
985
|
-
}));
|
|
986
|
-
},
|
|
987
|
-
setAllSourcesPlugin: () => {
|
|
988
|
-
set((state) => ({
|
|
989
|
-
// Never touch tombstones (see setAllSourcesEject) — the excluded global tombstone keeps its
|
|
990
|
-
// marketplace source describing the masked global install (D-265).
|
|
991
|
-
skillConfigs: state.skillConfigs.map((sc) => {
|
|
992
|
-
if (sc.excluded) return sc;
|
|
993
|
-
const marketplaceSource = getSkillById(sc.id).availableSources?.find(
|
|
994
|
-
(source) => source.type !== "local"
|
|
995
|
-
);
|
|
996
|
-
return marketplaceSource ? { ...sc, source: marketplaceSource.name } : sc;
|
|
997
|
-
})
|
|
998
|
-
}));
|
|
999
|
-
},
|
|
1000
916
|
buildSourceRows: () => {
|
|
1001
917
|
const state = get();
|
|
1002
918
|
const selectedTechnologies = get().getAllSelectedTechnologies();
|
|
1003
|
-
const { skillConfigs
|
|
919
|
+
const { skillConfigs } = state;
|
|
1004
920
|
const selectedSet = new Set(selectedTechnologies);
|
|
1005
921
|
const inheritedSkillIds = skillConfigs.filter((sc) => !sc.excluded && !selectedSet.has(sc.id)).map((sc) => sc.id);
|
|
1006
922
|
const allActiveIds = /* @__PURE__ */ new Set([...inheritedSkillIds, ...selectedTechnologies]);
|
|
1007
923
|
const excludedGlobalIds = skillConfigs.filter((sc) => isGlobalTombstone(sc) && !allActiveIds.has(sc.id)).map((sc) => sc.id);
|
|
1008
924
|
const liveSkillIds = [...inheritedSkillIds, ...selectedTechnologies, ...excludedGlobalIds];
|
|
1009
925
|
const installedSkillSlots = collectInstalledSkillSlots(state.installedSkillConfigs);
|
|
1010
|
-
const resolveRowInputs = (id) => resolveSkillRowInputs(id, skillConfigs
|
|
926
|
+
const resolveRowInputs = (id) => resolveSkillRowInputs(id, skillConfigs);
|
|
1011
927
|
const liveRows = liveSkillIds.flatMap((id) => {
|
|
1012
928
|
const { skillId, configEntry, options } = resolveRowInputs(id);
|
|
1013
929
|
return classifySkillSourceRows(skillId, options, {
|
|
@@ -1071,6 +987,7 @@ function hydrateForEdit(initialStep, options) {
|
|
|
1071
987
|
});
|
|
1072
988
|
useWizardStore.getState().seedFocusedSkillForActiveDomain();
|
|
1073
989
|
}
|
|
990
|
+
var FIRST_STEP_WITHOUT_STACKS = "domains";
|
|
1074
991
|
function hydrateForInit(options) {
|
|
1075
992
|
const {
|
|
1076
993
|
initialDomains,
|
|
@@ -1098,6 +1015,10 @@ function hydrateForInit(options) {
|
|
|
1098
1015
|
}
|
|
1099
1016
|
} : {}
|
|
1100
1017
|
});
|
|
1018
|
+
if (!offersStacks()) {
|
|
1019
|
+
useWizardStore.getState().startFromScratch();
|
|
1020
|
+
useWizardStore.setState({ step: FIRST_STEP_WITHOUT_STACKS, history: [] });
|
|
1021
|
+
}
|
|
1101
1022
|
useWizardStore.getState().seedFocusedSkillForActiveDomain();
|
|
1102
1023
|
}
|
|
1103
1024
|
|
|
@@ -1108,8 +1029,9 @@ export {
|
|
|
1108
1029
|
buildCategoriesForDomain,
|
|
1109
1030
|
orderDomains,
|
|
1110
1031
|
WIZARD_STEP_ORDER,
|
|
1032
|
+
getActiveStepFlow,
|
|
1111
1033
|
createInitialState,
|
|
1112
1034
|
useWizardStore,
|
|
1113
1035
|
hydrateWizardStore
|
|
1114
1036
|
};
|
|
1115
|
-
//# sourceMappingURL=chunk-
|
|
1037
|
+
//# sourceMappingURL=chunk-QQTYMW7N.js.map
|