opkg 0.9.2 → 0.9.4
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/.claude/agents/code-reviewer.md +171 -0
- package/.claude/commands/commit-push-pr.md +20 -0
- package/.claude/commands/{specs/read.md → read-specs.md} +1 -1
- package/.claude/commands/{specs/update.md → update-specs.md} +4 -0
- package/.claude/skills/code-review-excellence/SKILL.md +538 -0
- package/README.md +2 -2
- package/package.json +3 -1
- package/packages/cli/dist/add-IJAPFHIX.js +624 -0
- package/packages/cli/dist/add-IJAPFHIX.js.map +7 -0
- package/packages/cli/dist/add-LLUNFLJI.js +624 -0
- package/packages/cli/dist/add-LLUNFLJI.js.map +7 -0
- package/packages/cli/dist/add-U44SL3OR.js +624 -0
- package/packages/cli/dist/add-U44SL3OR.js.map +7 -0
- package/packages/cli/dist/chunk-23VBP5L6.js +371 -0
- package/packages/cli/dist/chunk-23VBP5L6.js.map +7 -0
- package/packages/cli/dist/chunk-2SVHLF5C.js +1419 -0
- package/packages/cli/dist/chunk-2SVHLF5C.js.map +7 -0
- package/packages/cli/dist/chunk-37256POU.js +99 -0
- package/packages/cli/dist/chunk-37256POU.js.map +7 -0
- package/packages/cli/dist/chunk-3PZRVA6O.js +196 -0
- package/packages/cli/dist/chunk-3PZRVA6O.js.map +7 -0
- package/packages/cli/dist/chunk-427DCURL.js +155 -0
- package/packages/cli/dist/chunk-427DCURL.js.map +7 -0
- package/packages/cli/dist/chunk-4B5HJLP2.js +48 -0
- package/packages/cli/dist/chunk-4B5HJLP2.js.map +7 -0
- package/packages/cli/dist/chunk-4OWT3YEG.js +413 -0
- package/packages/cli/dist/chunk-4OWT3YEG.js.map +7 -0
- package/packages/cli/dist/chunk-4RIBTBXI.js +568 -0
- package/packages/cli/dist/chunk-4RIBTBXI.js.map +7 -0
- package/packages/cli/dist/chunk-4X2EJHJN.js +63 -0
- package/packages/cli/dist/chunk-4X2EJHJN.js.map +7 -0
- package/packages/cli/dist/chunk-6CYW66HD.js +1136 -0
- package/packages/cli/dist/chunk-6CYW66HD.js.map +7 -0
- package/packages/cli/dist/chunk-6DITYAFA.js +172 -0
- package/packages/cli/dist/chunk-6DITYAFA.js.map +7 -0
- package/packages/cli/dist/chunk-7KEAKEVZ.js +568 -0
- package/packages/cli/dist/chunk-7KEAKEVZ.js.map +7 -0
- package/packages/cli/dist/chunk-ABFUD25D.js +61 -0
- package/packages/cli/dist/chunk-ABFUD25D.js.map +7 -0
- package/packages/cli/dist/chunk-AR7GJCG6.js +274 -0
- package/packages/cli/dist/chunk-AR7GJCG6.js.map +7 -0
- package/packages/cli/dist/chunk-AYTGQCXH.js +86 -0
- package/packages/cli/dist/chunk-AYTGQCXH.js.map +7 -0
- package/packages/cli/dist/chunk-BROJ6OUT.js +631 -0
- package/packages/cli/dist/chunk-BROJ6OUT.js.map +7 -0
- package/packages/cli/dist/chunk-BVVSU7QD.js +23 -0
- package/packages/cli/dist/chunk-BVVSU7QD.js.map +7 -0
- package/packages/cli/dist/chunk-C6FY55UP.js +108 -0
- package/packages/cli/dist/chunk-C6FY55UP.js.map +7 -0
- package/packages/cli/dist/chunk-CVA64SXK.js +1136 -0
- package/packages/cli/dist/chunk-CVA64SXK.js.map +7 -0
- package/packages/cli/dist/chunk-D3O7LY2Q.js +1151 -0
- package/packages/cli/dist/chunk-D3O7LY2Q.js.map +7 -0
- package/packages/cli/dist/chunk-D6LEPODL.js +413 -0
- package/packages/cli/dist/chunk-D6LEPODL.js.map +7 -0
- package/packages/cli/dist/chunk-DEC24S7E.js +186 -0
- package/packages/cli/dist/chunk-DEC24S7E.js.map +7 -0
- package/packages/cli/dist/chunk-FMVVJH5M.js +371 -0
- package/packages/cli/dist/chunk-FMVVJH5M.js.map +7 -0
- package/packages/cli/dist/chunk-GDVFS3YP.js +130 -0
- package/packages/cli/dist/chunk-GDVFS3YP.js.map +7 -0
- package/packages/cli/dist/chunk-GEP2G5HF.js +31 -0
- package/packages/cli/dist/chunk-GEP2G5HF.js.map +7 -0
- package/packages/cli/dist/chunk-GSWHZBT2.js +62 -0
- package/packages/cli/dist/chunk-GSWHZBT2.js.map +7 -0
- package/packages/cli/dist/chunk-HTYHJA3B.js +61 -0
- package/packages/cli/dist/chunk-HTYHJA3B.js.map +7 -0
- package/packages/cli/dist/chunk-HYKYECAE.js +222 -0
- package/packages/cli/dist/chunk-HYKYECAE.js.map +7 -0
- package/packages/cli/dist/chunk-I7FEAHB4.js +100 -0
- package/packages/cli/dist/chunk-I7FEAHB4.js.map +7 -0
- package/packages/cli/dist/chunk-IHVZ5AUJ.js +107 -0
- package/packages/cli/dist/chunk-IHVZ5AUJ.js.map +7 -0
- package/packages/cli/dist/chunk-KI7FDU3H.js +99 -0
- package/packages/cli/dist/chunk-KI7FDU3H.js.map +7 -0
- package/packages/cli/dist/chunk-L5GRJQBS.js +32 -0
- package/packages/cli/dist/chunk-L5GRJQBS.js.map +7 -0
- package/packages/cli/dist/chunk-LHEAUDJL.js +302 -0
- package/packages/cli/dist/chunk-LHEAUDJL.js.map +7 -0
- package/packages/cli/dist/chunk-MIURCESJ.js +48 -0
- package/packages/cli/dist/chunk-MIURCESJ.js.map +7 -0
- package/packages/cli/dist/chunk-N43IXOND.js +732 -0
- package/packages/cli/dist/chunk-N43IXOND.js.map +7 -0
- package/packages/cli/dist/chunk-OUZRMGPV.js +274 -0
- package/packages/cli/dist/chunk-OUZRMGPV.js.map +7 -0
- package/packages/cli/dist/chunk-PSQXKAL4.js +371 -0
- package/packages/cli/dist/chunk-PSQXKAL4.js.map +7 -0
- package/packages/cli/dist/chunk-PUDRKDVZ.js +1419 -0
- package/packages/cli/dist/chunk-PUDRKDVZ.js.map +7 -0
- package/packages/cli/dist/chunk-RAKMX654.js +631 -0
- package/packages/cli/dist/chunk-RAKMX654.js.map +7 -0
- package/packages/cli/dist/chunk-RSFLK2TP.js +195 -0
- package/packages/cli/dist/chunk-RSFLK2TP.js.map +7 -0
- package/packages/cli/dist/chunk-S26PR2BS.js +99 -0
- package/packages/cli/dist/chunk-S26PR2BS.js.map +7 -0
- package/packages/cli/dist/chunk-U7FW7SXX.js +568 -0
- package/packages/cli/dist/chunk-U7FW7SXX.js.map +7 -0
- package/packages/cli/dist/chunk-VKM6K5TN.js +413 -0
- package/packages/cli/dist/chunk-VKM6K5TN.js.map +7 -0
- package/packages/cli/dist/chunk-VKNJG4JN.js +253 -0
- package/packages/cli/dist/chunk-VKNJG4JN.js.map +7 -0
- package/packages/cli/dist/chunk-VQ2KY6CK.js +113 -0
- package/packages/cli/dist/chunk-VQ2KY6CK.js.map +7 -0
- package/packages/cli/dist/chunk-VQDTXLOX.js +1312 -0
- package/packages/cli/dist/chunk-VQDTXLOX.js.map +7 -0
- package/packages/cli/dist/chunk-VXNS3X5O.js +60 -0
- package/packages/cli/dist/chunk-VXNS3X5O.js.map +7 -0
- package/packages/cli/dist/chunk-WF7H2YDU.js +376 -0
- package/packages/cli/dist/chunk-WF7H2YDU.js.map +7 -0
- package/packages/cli/dist/chunk-WNRXZLWW.js +266 -0
- package/packages/cli/dist/chunk-WNRXZLWW.js.map +7 -0
- package/packages/cli/dist/chunk-WT4VVCXM.js +1121 -0
- package/packages/cli/dist/chunk-WT4VVCXM.js.map +7 -0
- package/packages/cli/dist/configure-3AZUMDJZ.js +107 -0
- package/packages/cli/dist/configure-3AZUMDJZ.js.map +7 -0
- package/packages/cli/dist/configure-D722JQOD.js +107 -0
- package/packages/cli/dist/configure-D722JQOD.js.map +7 -0
- package/packages/cli/dist/configure-IU5H7XD6.js +107 -0
- package/packages/cli/dist/configure-IU5H7XD6.js.map +7 -0
- package/packages/cli/dist/file-format-detector-PXCIAKTK.js +22 -0
- package/packages/cli/dist/file-format-detector-PXCIAKTK.js.map +7 -0
- package/packages/cli/dist/index.js +17 -17
- package/packages/cli/dist/install-EZNWMLJR.js +7581 -0
- package/packages/cli/dist/install-EZNWMLJR.js.map +7 -0
- package/packages/cli/dist/install-F5ANFUBX.js +7577 -0
- package/packages/cli/dist/install-F5ANFUBX.js.map +7 -0
- package/packages/cli/dist/install-JSXEPPC2.js +7104 -0
- package/packages/cli/dist/install-JSXEPPC2.js.map +7 -0
- package/packages/cli/dist/install-QHEBX7JH.js +7101 -0
- package/packages/cli/dist/install-QHEBX7JH.js.map +7 -0
- package/packages/cli/dist/list-DMOUATYI.js +327 -0
- package/packages/cli/dist/list-DMOUATYI.js.map +7 -0
- package/packages/cli/dist/list-UESSCB7Y.js +327 -0
- package/packages/cli/dist/list-UESSCB7Y.js.map +7 -0
- package/packages/cli/dist/list-XR7RSJFS.js +327 -0
- package/packages/cli/dist/list-XR7RSJFS.js.map +7 -0
- package/packages/cli/dist/login-EYZ2SOYZ.js +150 -0
- package/packages/cli/dist/login-EYZ2SOYZ.js.map +7 -0
- package/packages/cli/dist/login-JWCSTAEU.js +150 -0
- package/packages/cli/dist/login-JWCSTAEU.js.map +7 -0
- package/packages/cli/dist/login-NRKHXZKM.js +150 -0
- package/packages/cli/dist/login-NRKHXZKM.js.map +7 -0
- package/packages/cli/dist/logout-HDMYRXIE.js +40 -0
- package/packages/cli/dist/logout-HDMYRXIE.js.map +7 -0
- package/packages/cli/dist/logout-SYHXCVCQ.js +40 -0
- package/packages/cli/dist/logout-SYHXCVCQ.js.map +7 -0
- package/packages/cli/dist/logout-X3XUUOH5.js +40 -0
- package/packages/cli/dist/logout-X3XUUOH5.js.map +7 -0
- package/packages/cli/dist/new-3LTFKDTQ.js +277 -0
- package/packages/cli/dist/new-3LTFKDTQ.js.map +7 -0
- package/packages/cli/dist/new-F46OSD72.js +277 -0
- package/packages/cli/dist/new-F46OSD72.js.map +7 -0
- package/packages/cli/dist/new-OPCCLNL2.js +277 -0
- package/packages/cli/dist/new-OPCCLNL2.js.map +7 -0
- package/packages/cli/dist/package-marker-detector-T5O5YD2E.js +80 -0
- package/packages/cli/dist/package-marker-detector-T5O5YD2E.js.map +7 -0
- package/packages/cli/dist/package-yml-QWZIJDYU.js +16 -0
- package/packages/cli/dist/package-yml-QWZIJDYU.js.map +7 -0
- package/packages/cli/dist/plugin-naming-YP2I4NPA.js +29 -0
- package/packages/cli/dist/plugin-naming-YP2I4NPA.js.map +7 -0
- package/packages/cli/dist/publish-4H43PCSG.js +619 -0
- package/packages/cli/dist/publish-4H43PCSG.js.map +7 -0
- package/packages/cli/dist/publish-RULKLNUX.js +619 -0
- package/packages/cli/dist/publish-RULKLNUX.js.map +7 -0
- package/packages/cli/dist/publish-URWY2P3E.js +619 -0
- package/packages/cli/dist/publish-URWY2P3E.js.map +7 -0
- package/packages/cli/dist/remove-BD52BHR2.js +542 -0
- package/packages/cli/dist/remove-BD52BHR2.js.map +7 -0
- package/packages/cli/dist/remove-G5NRC7LD.js +542 -0
- package/packages/cli/dist/remove-G5NRC7LD.js.map +7 -0
- package/packages/cli/dist/remove-TC3FQUYQ.js +542 -0
- package/packages/cli/dist/remove-TC3FQUYQ.js.map +7 -0
- package/packages/cli/dist/resource-discoverer-4X4RY43E.js +17 -0
- package/packages/cli/dist/resource-discoverer-4X4RY43E.js.map +7 -0
- package/packages/cli/dist/save-24TESYKI.js +1728 -0
- package/packages/cli/dist/save-24TESYKI.js.map +7 -0
- package/packages/cli/dist/save-N3QWF2WN.js +1728 -0
- package/packages/cli/dist/save-N3QWF2WN.js.map +7 -0
- package/packages/cli/dist/save-P2U67DTV.js +1728 -0
- package/packages/cli/dist/save-P2U67DTV.js.map +7 -0
- package/packages/cli/dist/search-ABROK3UO.js +157 -0
- package/packages/cli/dist/search-ABROK3UO.js.map +7 -0
- package/packages/cli/dist/search-WVFXFNAV.js +157 -0
- package/packages/cli/dist/search-WVFXFNAV.js.map +7 -0
- package/packages/cli/dist/search-YQN2Q2SO.js +157 -0
- package/packages/cli/dist/search-YQN2Q2SO.js.map +7 -0
- package/packages/cli/dist/set-DCWF73F6.js +251 -0
- package/packages/cli/dist/set-DCWF73F6.js.map +7 -0
- package/packages/cli/dist/set-GJEG2F6Y.js +251 -0
- package/packages/cli/dist/set-GJEG2F6Y.js.map +7 -0
- package/packages/cli/dist/set-NGM2FIKF.js +251 -0
- package/packages/cli/dist/set-NGM2FIKF.js.map +7 -0
- package/packages/cli/dist/uninstall-3CJQMTYH.js +539 -0
- package/packages/cli/dist/uninstall-3CJQMTYH.js.map +7 -0
- package/packages/cli/dist/uninstall-Q3CP4UN5.js +539 -0
- package/packages/cli/dist/uninstall-Q3CP4UN5.js.map +7 -0
- package/packages/cli/dist/uninstall-QU5OMEEC.js +539 -0
- package/packages/cli/dist/uninstall-QU5OMEEC.js.map +7 -0
- package/packages/cli/dist/unpublish-GHJQYC4S.js +245 -0
- package/packages/cli/dist/unpublish-GHJQYC4S.js.map +7 -0
- package/packages/cli/dist/unpublish-L2CYMK4B.js +245 -0
- package/packages/cli/dist/unpublish-L2CYMK4B.js.map +7 -0
- package/packages/cli/dist/unpublish-VBTNTMS5.js +245 -0
- package/packages/cli/dist/unpublish-VBTNTMS5.js.map +7 -0
- package/packages/cli/dist/view-MXRBMXOG.js +488 -0
- package/packages/cli/dist/view-MXRBMXOG.js.map +7 -0
- package/packages/cli/dist/view-NMND7SAW.js +488 -0
- package/packages/cli/dist/view-NMND7SAW.js.map +7 -0
- package/packages/cli/dist/view-RPQRDSYB.js +488 -0
- package/packages/cli/dist/view-RPQRDSYB.js.map +7 -0
- package/packages/cli/package.json +2 -0
- package/packages/core/dist/constants/index.d.ts +9 -0
- package/packages/core/dist/constants/index.d.ts.map +1 -1
- package/packages/core/dist/constants/index.js +12 -0
- package/packages/core/dist/constants/index.js.map +1 -1
- package/packages/core/dist/core/dependency-resolver/index.d.ts +2 -10
- package/packages/core/dist/core/dependency-resolver/index.d.ts.map +1 -1
- package/packages/core/dist/core/dependency-resolver/index.js +3 -14
- package/packages/core/dist/core/dependency-resolver/index.js.map +1 -1
- package/packages/core/dist/core/install/base-detector.d.ts +2 -1
- package/packages/core/dist/core/install/base-detector.d.ts.map +1 -1
- package/packages/core/dist/core/install/base-detector.js +54 -1
- package/packages/core/dist/core/install/base-detector.js.map +1 -1
- package/packages/core/dist/core/install/conflicts/file-conflict-resolver.d.ts +7 -5
- package/packages/core/dist/core/install/conflicts/file-conflict-resolver.d.ts.map +1 -1
- package/packages/core/dist/core/install/conflicts/file-conflict-resolver.js +25 -9
- package/packages/core/dist/core/install/conflicts/file-conflict-resolver.js.map +1 -1
- package/packages/core/dist/core/install/flow-index-installer.d.ts +2 -1
- package/packages/core/dist/core/install/flow-index-installer.d.ts.map +1 -1
- package/packages/core/dist/core/install/flow-index-installer.js +19 -4
- package/packages/core/dist/core/install/flow-index-installer.js.map +1 -1
- package/packages/core/dist/core/install/input-classifier-base.js +3 -3
- package/packages/core/dist/core/install/input-classifier-base.js.map +1 -1
- package/packages/core/dist/core/install/install-reporting.d.ts.map +1 -1
- package/packages/core/dist/core/install/install-reporting.js +7 -9
- package/packages/core/dist/core/install/install-reporting.js.map +1 -1
- package/packages/core/dist/core/install/list-handler.d.ts.map +1 -1
- package/packages/core/dist/core/install/list-handler.js +3 -0
- package/packages/core/dist/core/install/list-handler.js.map +1 -1
- package/packages/core/dist/core/install/marketplace-handler.d.ts.map +1 -1
- package/packages/core/dist/core/install/marketplace-handler.js.map +1 -1
- package/packages/core/dist/core/install/operations/conflict-handler.d.ts +2 -1
- package/packages/core/dist/core/install/operations/conflict-handler.d.ts.map +1 -1
- package/packages/core/dist/core/install/operations/conflict-handler.js +2 -2
- package/packages/core/dist/core/install/operations/conflict-handler.js.map +1 -1
- package/packages/core/dist/core/install/operations/installation-executor.d.ts +3 -0
- package/packages/core/dist/core/install/operations/installation-executor.d.ts.map +1 -1
- package/packages/core/dist/core/install/operations/installation-executor.js +39 -22
- package/packages/core/dist/core/install/operations/installation-executor.js.map +1 -1
- package/packages/core/dist/core/install/orchestrator/orchestrator.d.ts +7 -3
- package/packages/core/dist/core/install/orchestrator/orchestrator.d.ts.map +1 -1
- package/packages/core/dist/core/install/orchestrator/orchestrator.js +193 -93
- package/packages/core/dist/core/install/orchestrator/orchestrator.js.map +1 -1
- package/packages/core/dist/core/install/orchestrator/strategies/git-strategy.d.ts +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/git-strategy.d.ts.map +1 -1
- package/packages/core/dist/core/install/orchestrator/strategies/git-strategy.js +11 -24
- package/packages/core/dist/core/install/orchestrator/strategies/git-strategy.js.map +1 -1
- package/packages/core/dist/core/install/orchestrator/strategies/path-strategy.d.ts +2 -0
- package/packages/core/dist/core/install/orchestrator/strategies/path-strategy.d.ts.map +1 -1
- package/packages/core/dist/core/install/orchestrator/strategies/path-strategy.js +14 -14
- package/packages/core/dist/core/install/orchestrator/strategies/path-strategy.js.map +1 -1
- package/packages/core/dist/core/install/orchestrator/strategies/registry-strategy.d.ts +7 -0
- package/packages/core/dist/core/install/orchestrator/strategies/registry-strategy.d.ts.map +1 -1
- package/packages/core/dist/core/install/orchestrator/strategies/registry-strategy.js +28 -0
- package/packages/core/dist/core/install/orchestrator/strategies/registry-strategy.js.map +1 -1
- package/packages/core/dist/core/install/orchestrator/types.d.ts +2 -0
- package/packages/core/dist/core/install/orchestrator/types.d.ts.map +1 -1
- package/packages/core/dist/core/install/path-package-loader.d.ts.map +1 -1
- package/packages/core/dist/core/install/path-package-loader.js +20 -1
- package/packages/core/dist/core/install/path-package-loader.js.map +1 -1
- package/packages/core/dist/core/install/platform-resolution.d.ts +3 -0
- package/packages/core/dist/core/install/platform-resolution.d.ts.map +1 -1
- package/packages/core/dist/core/install/platform-resolution.js +5 -2
- package/packages/core/dist/core/install/platform-resolution.js.map +1 -1
- package/packages/core/dist/core/install/preprocessing/context-population.d.ts +18 -0
- package/packages/core/dist/core/install/preprocessing/context-population.d.ts.map +1 -0
- package/packages/core/dist/core/install/preprocessing/context-population.js +36 -0
- package/packages/core/dist/core/install/preprocessing/context-population.js.map +1 -0
- package/packages/core/dist/core/install/preprocessing/convenience-preprocessor.d.ts +23 -0
- package/packages/core/dist/core/install/preprocessing/convenience-preprocessor.d.ts.map +1 -1
- package/packages/core/dist/core/install/preprocessing/convenience-preprocessor.js +44 -0
- package/packages/core/dist/core/install/preprocessing/convenience-preprocessor.js.map +1 -1
- package/packages/core/dist/core/install/sources/git-source.d.ts.map +1 -1
- package/packages/core/dist/core/install/sources/git-source.js +67 -4
- package/packages/core/dist/core/install/sources/git-source.js.map +1 -1
- package/packages/core/dist/core/install/sources/path-source.d.ts.map +1 -1
- package/packages/core/dist/core/install/sources/path-source.js +8 -0
- package/packages/core/dist/core/install/sources/path-source.js.map +1 -1
- package/packages/core/dist/core/install/strategies/flow-based-strategy.d.ts.map +1 -1
- package/packages/core/dist/core/install/strategies/flow-based-strategy.js +12 -5
- package/packages/core/dist/core/install/strategies/flow-based-strategy.js.map +1 -1
- package/packages/core/dist/core/install/strategies/types.d.ts +11 -1
- package/packages/core/dist/core/install/strategies/types.d.ts.map +1 -1
- package/packages/core/dist/core/install/unified/context-builders.d.ts +5 -0
- package/packages/core/dist/core/install/unified/context-builders.d.ts.map +1 -1
- package/packages/core/dist/core/install/unified/context-builders.js +12 -0
- package/packages/core/dist/core/install/unified/context-builders.js.map +1 -1
- package/packages/core/dist/core/install/unified/context-helpers.d.ts +0 -4
- package/packages/core/dist/core/install/unified/context-helpers.d.ts.map +1 -1
- package/packages/core/dist/core/install/unified/context-helpers.js +0 -24
- package/packages/core/dist/core/install/unified/context-helpers.js.map +1 -1
- package/packages/core/dist/core/install/unified/index.d.ts +1 -1
- package/packages/core/dist/core/install/unified/index.d.ts.map +1 -1
- package/packages/core/dist/core/install/unified/index.js +1 -1
- package/packages/core/dist/core/install/unified/index.js.map +1 -1
- package/packages/core/dist/core/install/unified/multi-context-pipeline.d.ts +6 -0
- package/packages/core/dist/core/install/unified/multi-context-pipeline.d.ts.map +1 -1
- package/packages/core/dist/core/install/unified/multi-context-pipeline.js +11 -4
- package/packages/core/dist/core/install/unified/multi-context-pipeline.js.map +1 -1
- package/packages/core/dist/core/install/unified/phases/conflicts.d.ts.map +1 -1
- package/packages/core/dist/core/install/unified/phases/conflicts.js +1 -1
- package/packages/core/dist/core/install/unified/phases/conflicts.js.map +1 -1
- package/packages/core/dist/core/install/unified/phases/execute.d.ts.map +1 -1
- package/packages/core/dist/core/install/unified/phases/execute.js +5 -5
- package/packages/core/dist/core/install/unified/phases/execute.js.map +1 -1
- package/packages/core/dist/core/install/unified/phases/load-package.js +3 -3
- package/packages/core/dist/core/install/unified/phases/load-package.js.map +1 -1
- package/packages/core/dist/core/install/unified/phases/report.js +1 -1
- package/packages/core/dist/core/install/unified/phases/report.js.map +1 -1
- package/packages/core/dist/core/install/unified/pipeline.d.ts.map +1 -1
- package/packages/core/dist/core/install/unified/pipeline.js +7 -10
- package/packages/core/dist/core/install/unified/pipeline.js.map +1 -1
- package/packages/core/dist/core/install/wave-resolver/content-root-cache.d.ts +24 -0
- package/packages/core/dist/core/install/wave-resolver/content-root-cache.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/content-root-cache.js +71 -0
- package/packages/core/dist/core/install/wave-resolver/content-root-cache.js.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/context-builder.d.ts +39 -0
- package/packages/core/dist/core/install/wave-resolver/context-builder.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/context-builder.js +148 -0
- package/packages/core/dist/core/install/wave-resolver/context-builder.js.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/fetcher.d.ts +49 -0
- package/packages/core/dist/core/install/wave-resolver/fetcher.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/fetcher.js +221 -0
- package/packages/core/dist/core/install/wave-resolver/fetcher.js.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/index-updater.d.ts +23 -0
- package/packages/core/dist/core/install/wave-resolver/index-updater.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/index-updater.js +87 -0
- package/packages/core/dist/core/install/wave-resolver/index-updater.js.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/index-write-collector.d.ts +101 -0
- package/packages/core/dist/core/install/wave-resolver/index-write-collector.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/index-write-collector.js +194 -0
- package/packages/core/dist/core/install/wave-resolver/index-write-collector.js.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/index.d.ts +17 -0
- package/packages/core/dist/core/install/wave-resolver/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/index.js +16 -0
- package/packages/core/dist/core/install/wave-resolver/index.js.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/manifest-reader.d.ts +34 -0
- package/packages/core/dist/core/install/wave-resolver/manifest-reader.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/manifest-reader.js +112 -0
- package/packages/core/dist/core/install/wave-resolver/manifest-reader.js.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/types.d.ts +210 -0
- package/packages/core/dist/core/install/wave-resolver/types.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/types.js +6 -0
- package/packages/core/dist/core/install/wave-resolver/types.js.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/version-solver.d.ts +65 -0
- package/packages/core/dist/core/install/wave-resolver/version-solver.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/version-solver.js +166 -0
- package/packages/core/dist/core/install/wave-resolver/version-solver.js.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/wave-engine.d.ts +16 -0
- package/packages/core/dist/core/install/wave-resolver/wave-engine.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/wave-engine.js +337 -0
- package/packages/core/dist/core/install/wave-resolver/wave-engine.js.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/wave-installer.d.ts +50 -0
- package/packages/core/dist/core/install/wave-resolver/wave-installer.d.ts.map +1 -0
- package/packages/core/dist/core/install/wave-resolver/wave-installer.js +246 -0
- package/packages/core/dist/core/install/wave-resolver/wave-installer.js.map +1 -0
- package/packages/core/dist/core/ports/buffered-output.d.ts +36 -0
- package/packages/core/dist/core/ports/buffered-output.d.ts.map +1 -0
- package/packages/core/dist/core/ports/buffered-output.js +89 -0
- package/packages/core/dist/core/ports/buffered-output.js.map +1 -0
- package/packages/core/dist/core/ports/resolve.d.ts +0 -13
- package/packages/core/dist/core/ports/resolve.d.ts.map +1 -1
- package/packages/core/dist/core/ports/resolve.js +0 -28
- package/packages/core/dist/core/ports/resolve.js.map +1 -1
- package/packages/core/dist/core/remove/removal-confirmation.d.ts +4 -1
- package/packages/core/dist/core/remove/removal-confirmation.d.ts.map +1 -1
- package/packages/core/dist/core/remove/removal-confirmation.js +5 -4
- package/packages/core/dist/core/remove/removal-confirmation.js.map +1 -1
- package/packages/core/dist/core/remove/remove-from-source-pipeline.d.ts.map +1 -1
- package/packages/core/dist/core/remove/remove-from-source-pipeline.js +1 -10
- package/packages/core/dist/core/remove/remove-from-source-pipeline.js.map +1 -1
- package/packages/core/dist/core/uninstall/uninstall-executor.js +1 -1
- package/packages/core/dist/core/uninstall/uninstall-executor.js.map +1 -1
- package/packages/core/dist/core/uninstall/uninstall-reporter.d.ts +2 -2
- package/packages/core/dist/core/uninstall/uninstall-reporter.d.ts.map +1 -1
- package/packages/core/dist/core/uninstall/uninstall-reporter.js +4 -4
- package/packages/core/dist/core/uninstall/uninstall-reporter.js.map +1 -1
- package/packages/core/dist/index.d.ts +1 -1
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/types/execution-context.d.ts +40 -10
- package/packages/core/dist/types/execution-context.d.ts.map +1 -1
- package/packages/core/dist/utils/concurrency-pool.d.ts +34 -0
- package/packages/core/dist/utils/concurrency-pool.d.ts.map +1 -0
- package/packages/core/dist/utils/concurrency-pool.js +58 -0
- package/packages/core/dist/utils/concurrency-pool.js.map +1 -0
- package/packages/core/dist/utils/plugin-naming.d.ts +11 -3
- package/packages/core/dist/utils/plugin-naming.d.ts.map +1 -1
- package/packages/core/dist/utils/plugin-naming.js +27 -7
- package/packages/core/dist/utils/plugin-naming.js.map +1 -1
- package/plans/wave-resolver.md +254 -0
- package/.claude/agents/essentials/code-simplifier.md +0 -52
- package/.claude/commands/essentials/cleanup.md +0 -1
- package/.claude/commands/essentials/review.md +0 -8
- package/.claude/commands/git/commit.md +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-strategy.js","sourceRoot":"","sources":["../../../../../src/core/install/orchestrator/strategies/git-strategy.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"git-strategy.js","sourceRoot":"","sources":["../../../../../src/core/install/orchestrator/strategies/git-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* It preloads the source once and populates the root resolved package so the unified
|
|
5
5
|
* pipeline can skip re-loading.
|
|
6
|
+
* When convenience filters (--agents, --skills, etc.) are specified, routes to
|
|
7
|
+
* multi-resource install like git/registry strategies.
|
|
6
8
|
*/
|
|
7
9
|
import type { InstallationContext } from '../../unified/context.js';
|
|
8
10
|
import type { ExecutionContext } from '../../../../types/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-strategy.d.ts","sourceRoot":"","sources":["../../../../../src/core/install/orchestrator/strategies/path-strategy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"path-strategy.d.ts","sourceRoot":"","sources":["../../../../../src/core/install/orchestrator/strategies/path-strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,0BAA0B,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAMhD,qBAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,QAAQ,CAAC,IAAI,UAAU;IAEvB,SAAS,CAAC,cAAc,EAAE,mBAAmB,GAAG,OAAO;IAIjD,YAAY,CAChB,cAAc,EAAE,mBAAmB,EACnC,OAAO,EAAE,wBAAwB,EACjC,WAAW,EAAE,gBAAgB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAyBzB,UAAU,CACd,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,wBAAwB,EACjC,WAAW,EAAE,gBAAgB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;CA4B7B"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { BaseInstallStrategy } from './base.js';
|
|
2
2
|
import { getLoaderForSource } from '../../sources/loader-factory.js';
|
|
3
|
+
import { createResolvedPackageFromLoaded } from '../../preprocessing/context-population.js';
|
|
4
|
+
import { runConvenienceFilterInstall } from '../../preprocessing/convenience-preprocessor.js';
|
|
3
5
|
import { normalizePlatforms } from '../../../platform/platform-mapper.js';
|
|
4
6
|
export class PathInstallStrategy extends BaseInstallStrategy {
|
|
5
7
|
constructor() {
|
|
@@ -38,23 +40,21 @@ export class PathInstallStrategy extends BaseInstallStrategy {
|
|
|
38
40
|
context.source.version = loaded.version;
|
|
39
41
|
context.source.contentRoot = loaded.contentRoot;
|
|
40
42
|
context.source.pluginMetadata = loaded.pluginMetadata;
|
|
41
|
-
context.resolvedPackages = [
|
|
42
|
-
{
|
|
43
|
-
name: context.source.packageName,
|
|
44
|
-
version: context.source.version || loaded.version,
|
|
45
|
-
pkg: {
|
|
46
|
-
metadata: loaded.metadata,
|
|
47
|
-
files: [],
|
|
48
|
-
_format: loaded.metadata?._format || context.source.pluginMetadata?.format
|
|
49
|
-
},
|
|
50
|
-
isRoot: true,
|
|
51
|
-
source: 'path',
|
|
52
|
-
contentRoot: context.source.contentRoot || loaded.contentRoot
|
|
53
|
-
}
|
|
54
|
-
];
|
|
43
|
+
context.resolvedPackages = [createResolvedPackageFromLoaded(loaded, context)];
|
|
55
44
|
if (loaded.pluginMetadata?.pluginType === 'marketplace') {
|
|
56
45
|
return this.createMarketplaceResult(context);
|
|
57
46
|
}
|
|
47
|
+
// Apply convenience filters (--agents, --skills, etc.) - same as git/registry strategies
|
|
48
|
+
if (options.agents?.length || options.skills?.length || options.rules?.length || options.commands?.length) {
|
|
49
|
+
const convenienceOptions = {
|
|
50
|
+
agents: options.agents,
|
|
51
|
+
skills: options.skills,
|
|
52
|
+
rules: options.rules,
|
|
53
|
+
commands: options.commands
|
|
54
|
+
};
|
|
55
|
+
const resourceContexts = await runConvenienceFilterInstall(context, loaded, convenienceOptions);
|
|
56
|
+
return this.createMultiResourceResult(context, resourceContexts);
|
|
57
|
+
}
|
|
58
58
|
return this.createNormalResult(context);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-strategy.js","sourceRoot":"","sources":["../../../../../src/core/install/orchestrator/strategies/path-strategy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"path-strategy.js","sourceRoot":"","sources":["../../../../../src/core/install/orchestrator/strategies/path-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Registry sources are loaded by the unified pipeline (load phase), since their metadata
|
|
5
5
|
* and resolution behavior is centralized there.
|
|
6
|
+
* When convenience filters (--agents, --skills, etc.) are specified, we load during
|
|
7
|
+
* preprocess and route to multi-resource install, matching git/path strategy behavior.
|
|
6
8
|
*/
|
|
7
9
|
import type { InstallationContext } from '../../unified/context.js';
|
|
8
10
|
import type { ExecutionContext } from '../../../../types/index.js';
|
|
@@ -13,5 +15,10 @@ export declare class RegistryInstallStrategy extends BaseInstallStrategy {
|
|
|
13
15
|
canHandle(classification: InputClassification): boolean;
|
|
14
16
|
buildContext(classification: InputClassification, options: NormalizedInstallOptions, execContext: ExecutionContext): Promise<InstallationContext>;
|
|
15
17
|
preprocess(context: InstallationContext, options: NormalizedInstallOptions, execContext: ExecutionContext): Promise<PreprocessResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Handle convenience filter options for registry packages.
|
|
20
|
+
* Load package, resolve filtered resources, and return multi-resource result.
|
|
21
|
+
*/
|
|
22
|
+
private handleConvenienceFilters;
|
|
16
23
|
}
|
|
17
24
|
//# sourceMappingURL=registry-strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-strategy.d.ts","sourceRoot":"","sources":["../../../../../src/core/install/orchestrator/strategies/registry-strategy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"registry-strategy.d.ts","sourceRoot":"","sources":["../../../../../src/core/install/orchestrator/strategies/registry-strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,0BAA0B,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAMhD,qBAAa,uBAAwB,SAAQ,mBAAmB;IAC9D,QAAQ,CAAC,IAAI,cAAc;IAE3B,SAAS,CAAC,cAAc,EAAE,mBAAmB,GAAG,OAAO;IAIjD,YAAY,CAChB,cAAc,EAAE,mBAAmB,EACnC,OAAO,EAAE,wBAAwB,EACjC,WAAW,EAAE,gBAAgB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAyBzB,UAAU,CACd,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,wBAAwB,EACjC,WAAW,EAAE,gBAAgB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;IAU5B;;;OAGG;YACW,wBAAwB;CAwBvC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { BaseInstallStrategy } from './base.js';
|
|
2
2
|
import { normalizePlatforms } from '../../../platform/platform-mapper.js';
|
|
3
|
+
import { getLoaderForSource } from '../../sources/loader-factory.js';
|
|
4
|
+
import { createResolvedPackageFromLoaded } from '../../preprocessing/context-population.js';
|
|
5
|
+
import { runConvenienceFilterInstall } from '../../preprocessing/convenience-preprocessor.js';
|
|
3
6
|
export class RegistryInstallStrategy extends BaseInstallStrategy {
|
|
4
7
|
constructor() {
|
|
5
8
|
super(...arguments);
|
|
@@ -31,8 +34,33 @@ export class RegistryInstallStrategy extends BaseInstallStrategy {
|
|
|
31
34
|
};
|
|
32
35
|
}
|
|
33
36
|
async preprocess(context, options, execContext) {
|
|
37
|
+
// Apply convenience filters (--agents, --skills, etc.) - same as git/path strategies
|
|
38
|
+
if (options.agents?.length || options.skills?.length || options.rules?.length || options.commands?.length) {
|
|
39
|
+
return this.handleConvenienceFilters(context, options, execContext);
|
|
40
|
+
}
|
|
34
41
|
// Registry sources are handled by the pipeline's load phase
|
|
35
42
|
return this.createNormalResult(context);
|
|
36
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Handle convenience filter options for registry packages.
|
|
46
|
+
* Load package, resolve filtered resources, and return multi-resource result.
|
|
47
|
+
*/
|
|
48
|
+
async handleConvenienceFilters(context, options, _execContext) {
|
|
49
|
+
const loader = getLoaderForSource(context.source);
|
|
50
|
+
const loaded = await loader.load(context.source, options, _execContext);
|
|
51
|
+
context.source.packageName = loaded.packageName;
|
|
52
|
+
context.source.version = loaded.version;
|
|
53
|
+
context.source.contentRoot = loaded.contentRoot;
|
|
54
|
+
context.source.pluginMetadata = loaded.pluginMetadata;
|
|
55
|
+
context.resolvedPackages = [createResolvedPackageFromLoaded(loaded, context, { source: 'local' })];
|
|
56
|
+
const convenienceOptions = {
|
|
57
|
+
agents: options.agents,
|
|
58
|
+
skills: options.skills,
|
|
59
|
+
rules: options.rules,
|
|
60
|
+
commands: options.commands
|
|
61
|
+
};
|
|
62
|
+
const resourceContexts = await runConvenienceFilterInstall(context, loaded, convenienceOptions);
|
|
63
|
+
return this.createMultiResourceResult(context, resourceContexts);
|
|
64
|
+
}
|
|
37
65
|
}
|
|
38
66
|
//# sourceMappingURL=registry-strategy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-strategy.js","sourceRoot":"","sources":["../../../../../src/core/install/orchestrator/strategies/registry-strategy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry-strategy.js","sourceRoot":"","sources":["../../../../../src/core/install/orchestrator/strategies/registry-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export interface NormalizedInstallOptions extends InstallOptions {
|
|
|
15
15
|
rules?: string[];
|
|
16
16
|
commands?: string[];
|
|
17
17
|
interactive?: boolean;
|
|
18
|
+
/** Internal: skip recursive dependency installation (set by wave resolver loop to prevent re-entry) */
|
|
19
|
+
_skipDependencyInstall?: boolean;
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
20
22
|
* Result of preprocessing a context before pipeline execution.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/install/orchestrator/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9B,gBAAgB,EAAE,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClE,cAAc,EAAE,qBAAqB,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/install/orchestrator/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-package-loader.d.ts","sourceRoot":"","sources":["../../../src/core/install/path-package-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAA2B,MAAM,sBAAsB,CAAC;AAUxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIvE,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAE5D;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"path-package-loader.d.ts","sourceRoot":"","sources":["../../../src/core/install/path-package-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAA2B,MAAM,sBAAsB,CAAC;AAUxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIvE,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAE5D;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAmIlB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsClF;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAQlB"}
|
|
@@ -34,8 +34,27 @@ export async function loadPackageFromDirectory(dirPath, context) {
|
|
|
34
34
|
const { package: pkg } = await transformPluginToPackage(dirPath, context);
|
|
35
35
|
return pkg;
|
|
36
36
|
}
|
|
37
|
-
// If it's a marketplace, we need to handle plugin selection (done upstream in install command)
|
|
37
|
+
// If it's a marketplace, we need to handle plugin selection (done upstream in install command).
|
|
38
|
+
// However, when a resourcePath is set, the user explicitly requested a specific resource within
|
|
39
|
+
// the marketplace — treat it as a marketplace-defined plugin rather than blocking with an error.
|
|
40
|
+
// This provides defense-in-depth in case upstream content root resolution has an edge case.
|
|
38
41
|
if (pluginDetection.isPlugin && pluginDetection.type === 'marketplace') {
|
|
42
|
+
if (context?.resourcePath) {
|
|
43
|
+
logger.info('Marketplace directory loaded with explicit resourcePath, treating as marketplace-defined plugin', {
|
|
44
|
+
dirPath,
|
|
45
|
+
resourcePath: context.resourcePath
|
|
46
|
+
});
|
|
47
|
+
const syntheticEntry = {
|
|
48
|
+
strict: false,
|
|
49
|
+
name: context?.packageName ?? basename(dirPath),
|
|
50
|
+
source: '.'
|
|
51
|
+
};
|
|
52
|
+
const { package: pkg } = await transformPluginToPackage(dirPath, {
|
|
53
|
+
...context,
|
|
54
|
+
marketplaceEntry: syntheticEntry
|
|
55
|
+
});
|
|
56
|
+
return pkg;
|
|
57
|
+
}
|
|
39
58
|
throw new ValidationError(`Directory '${dirPath}' is a Claude Code plugin marketplace. ` +
|
|
40
59
|
`Marketplace installation requires plugin selection and should be handled by the install command.`);
|
|
41
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-package-loader.js","sourceRoot":"","sources":["../../../src/core/install/path-package-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAoB,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvG,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAgBhC;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;AACvH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAe,EACf,OAA4B;IAE5B,gFAAgF;IAChF,MAAM,eAAe,GAAG,MAAM,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAE9F,IAAI,eAAe,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,YAAY,IAAI,eAAe,CAAC,IAAI,KAAK,qBAAqB,CAAC,EAAE,CAAC;QAC1H,MAAM,CAAC,IAAI,CAAC,gCAAgC,eAAe,CAAC,IAAI,uCAAuC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACtH,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1E,OAAO,GAAG,CAAC;IACb,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"path-package-loader.js","sourceRoot":"","sources":["../../../src/core/install/path-package-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,9 @@ import type { PromptPort } from '../ports/prompt.js';
|
|
|
6
6
|
* - Uses specified platforms if provided (validated against known platforms)
|
|
7
7
|
* - Otherwise auto-detects
|
|
8
8
|
* - If none detected and interactive=true, prompts user to select
|
|
9
|
+
*
|
|
10
|
+
* The `interactive` flag is typically derived from
|
|
11
|
+
* `InteractionPolicy.canPrompt(PromptTier.Required)` at the call site.
|
|
9
12
|
*/
|
|
10
13
|
export declare function resolvePlatforms(cwd: string, specified: string[] | undefined, options?: {
|
|
11
14
|
interactive?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-resolution.d.ts","sourceRoot":"","sources":["../../../src/core/install/platform-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"platform-resolution.d.ts","sourceRoot":"","sources":["../../../src/core/install/platform-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAC/B,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAO,GAChF,OAAO,CAAC,QAAQ,EAAE,CAAC,CAuBrB"}
|
|
@@ -6,9 +6,12 @@ import { detectPlatforms, promptForPlatformSelection } from './package-installat
|
|
|
6
6
|
* - Uses specified platforms if provided (validated against known platforms)
|
|
7
7
|
* - Otherwise auto-detects
|
|
8
8
|
* - If none detected and interactive=true, prompts user to select
|
|
9
|
+
*
|
|
10
|
+
* The `interactive` flag is typically derived from
|
|
11
|
+
* `InteractionPolicy.canPrompt(PromptTier.Required)` at the call site.
|
|
9
12
|
*/
|
|
10
13
|
export async function resolvePlatforms(cwd, specified, options = {}) {
|
|
11
|
-
const
|
|
14
|
+
const canPrompt = options.interactive === true;
|
|
12
15
|
const normalized = normalizePlatforms(specified);
|
|
13
16
|
if (normalized && normalized.length > 0) {
|
|
14
17
|
const resolved = normalized.map(name => resolvePlatformName(name));
|
|
@@ -21,7 +24,7 @@ export async function resolvePlatforms(cwd, specified, options = {}) {
|
|
|
21
24
|
const auto = await detectPlatforms(cwd);
|
|
22
25
|
if (auto.length > 0)
|
|
23
26
|
return auto;
|
|
24
|
-
if (
|
|
27
|
+
if (canPrompt) {
|
|
25
28
|
const selected = await promptForPlatformSelection(options.output, options.prompt);
|
|
26
29
|
return selected;
|
|
27
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-resolution.js","sourceRoot":"","sources":["../../../src/core/install/platform-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAiB,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAIxF
|
|
1
|
+
{"version":3,"file":"platform-resolution.js","sourceRoot":"","sources":["../../../src/core/install/platform-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAiB,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAIxF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,SAA+B,EAC/B,UAA+E,EAAE;IAEjF,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;IAE/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,QAAsB,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAClF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qGAAqG;IACrG,OAAO,CAAC,QAAQ,CAAe,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for populating installation context from loaded package data.
|
|
3
|
+
* Used by install strategies, list-handler, and load phase.
|
|
4
|
+
*/
|
|
5
|
+
import type { LoadedPackage } from '../sources/base.js';
|
|
6
|
+
import type { PackageSource } from '../unified/context.js';
|
|
7
|
+
import type { ResolvedPackage } from '../../dependency-resolver/types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create a root ResolvedPackage entry from loaded package data.
|
|
10
|
+
* Used when strategies or handlers pre-populate context so the pipeline skips re-loading.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createResolvedPackageFromLoaded(loaded: LoadedPackage, context: {
|
|
13
|
+
source: PackageSource;
|
|
14
|
+
}, overrides?: {
|
|
15
|
+
source?: ResolvedPackage['source'];
|
|
16
|
+
contentRoot?: string;
|
|
17
|
+
}): ResolvedPackage;
|
|
18
|
+
//# sourceMappingURL=context-population.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-population.d.ts","sourceRoot":"","sources":["../../../../src/core/install/preprocessing/context-population.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAuB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAW1E;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,EAClC,SAAS,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE,eAAe,CAiBjB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for populating installation context from loaded package data.
|
|
3
|
+
* Used by install strategies, list-handler, and load phase.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Map PackageSource type to ResolvedPackage source format.
|
|
7
|
+
*/
|
|
8
|
+
function toResolvedPackageSource(sourceType) {
|
|
9
|
+
if (sourceType === 'registry' || sourceType === 'workspace')
|
|
10
|
+
return 'local';
|
|
11
|
+
if (sourceType === 'path' || sourceType === 'git')
|
|
12
|
+
return sourceType;
|
|
13
|
+
return 'local';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Create a root ResolvedPackage entry from loaded package data.
|
|
17
|
+
* Used when strategies or handlers pre-populate context so the pipeline skips re-loading.
|
|
18
|
+
*/
|
|
19
|
+
export function createResolvedPackageFromLoaded(loaded, context, overrides) {
|
|
20
|
+
const resolvedSource = overrides?.source ?? toResolvedPackageSource(context.source.type);
|
|
21
|
+
const contentRoot = overrides?.contentRoot ?? context.source.contentRoot ?? loaded.contentRoot;
|
|
22
|
+
const version = context.source.version || loaded.version;
|
|
23
|
+
return {
|
|
24
|
+
name: context.source.packageName || loaded.packageName,
|
|
25
|
+
version,
|
|
26
|
+
pkg: {
|
|
27
|
+
metadata: loaded.metadata,
|
|
28
|
+
files: [],
|
|
29
|
+
_format: loaded.metadata?._format || context.source.pluginMetadata?.format
|
|
30
|
+
},
|
|
31
|
+
isRoot: true,
|
|
32
|
+
source: resolvedSource,
|
|
33
|
+
contentRoot
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=context-population.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-population.js","sourceRoot":"","sources":["../../../../src/core/install/preprocessing/context-population.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,SAAS,uBAAuB,CAAC,UAAiC;IAChE,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC;IAC5E,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO,UAAU,CAAC;IACrE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAqB,EACrB,OAAkC,EAClC,SAAwE;IAExE,MAAM,cAAc,GAAG,SAAS,EAAE,MAAM,IAAI,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC;IAC/F,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW;QACtD,OAAO;QACP,GAAG,EAAE;YACH,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,EAAE;YACT,OAAO,EAAG,MAAM,CAAC,QAAgB,EAAE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM;SAC7E;QACR,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,cAAc;QACtB,WAAW;KACO,CAAC;AACvB,CAAC"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { ConvenienceFilterOptions, ResourceInstallationSpec } from '../convenience-matchers.js';
|
|
2
|
+
import type { InstallationContext } from '../unified/context.js';
|
|
3
|
+
import type { LoadedPackage } from '../sources/base.js';
|
|
4
|
+
/**
|
|
5
|
+
* Find the base path where agents/skills/rules/commands subdirs live.
|
|
6
|
+
* Registry packages may have these at contentRoot or under platform dirs (.opencode, .cursor, etc.).
|
|
7
|
+
*/
|
|
8
|
+
export declare function findBaseForConvenienceFilters(contentRoot: string, options: ConvenienceFilterOptions): Promise<string>;
|
|
2
9
|
/**
|
|
3
10
|
* Resolve convenience resources (agents/skills) to install.
|
|
4
11
|
*
|
|
@@ -8,4 +15,20 @@ import type { ConvenienceFilterOptions, ResourceInstallationSpec } from '../conv
|
|
|
8
15
|
* @throws Error if none of the requested resources can be found.
|
|
9
16
|
*/
|
|
10
17
|
export declare function resolveConvenienceResources(basePath: string, repoRoot: string, options: ConvenienceFilterOptions): Promise<ResourceInstallationSpec[]>;
|
|
18
|
+
/** Options for base path resolution */
|
|
19
|
+
export interface ConvenienceFilterInstallOpts {
|
|
20
|
+
/** Use context.detectedBase as base (e.g. when loader already ran base detection). Otherwise uses findBaseForConvenienceFilters. */
|
|
21
|
+
useDetectedBase?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Run the full convenience filter flow: resolve resources, build contexts, prepare for pipeline.
|
|
25
|
+
* Shared by registry, path, and git strategies.
|
|
26
|
+
*
|
|
27
|
+
* @param context - Installation context (must have source populated)
|
|
28
|
+
* @param loaded - Loaded package from loader
|
|
29
|
+
* @param options - Convenience filter options (agents, skills, rules, commands)
|
|
30
|
+
* @param opts - Base path resolution: useDetectedBase=true for git (has base detection)
|
|
31
|
+
* @returns Resource contexts ready for createMultiResourceResult
|
|
32
|
+
*/
|
|
33
|
+
export declare function runConvenienceFilterInstall(context: InstallationContext, loaded: LoadedPackage, options: ConvenienceFilterOptions, opts?: ConvenienceFilterInstallOpts): Promise<InstallationContext[]>;
|
|
11
34
|
//# sourceMappingURL=convenience-preprocessor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convenience-preprocessor.d.ts","sourceRoot":"","sources":["../../../../src/core/install/preprocessing/convenience-preprocessor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convenience-preprocessor.d.ts","sourceRoot":"","sources":["../../../../src/core/install/preprocessing/convenience-preprocessor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAIrG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAcrC;AAED,uCAAuC;AACvC,MAAM,WAAW,4BAA4B;IAC3C,oIAAoI;IACpI,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,wBAAwB,EACjC,IAAI,CAAC,EAAE,4BAA4B,GAClC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAWhC"}
|
|
@@ -1,5 +1,29 @@
|
|
|
1
|
+
import { join } from 'path';
|
|
2
|
+
import { exists } from '../../../utils/fs.js';
|
|
1
3
|
import { applyConvenienceFilters, displayFilterErrors } from '../convenience-matchers.js';
|
|
4
|
+
import { buildResourceInstallContexts, prepareResourceContextsForMultiInstall } from '../unified/context-builders.js';
|
|
2
5
|
import { logger } from '../../../utils/logger.js';
|
|
6
|
+
/**
|
|
7
|
+
* Find the base path where agents/skills/rules/commands subdirs live.
|
|
8
|
+
* Registry packages may have these at contentRoot or under platform dirs (.opencode, .cursor, etc.).
|
|
9
|
+
*/
|
|
10
|
+
export async function findBaseForConvenienceFilters(contentRoot, options) {
|
|
11
|
+
const candidates = [contentRoot];
|
|
12
|
+
for (const sub of ['.opencode', '.cursor', '.claude', '.claude-plugin']) {
|
|
13
|
+
candidates.push(join(contentRoot, sub));
|
|
14
|
+
}
|
|
15
|
+
for (const base of candidates) {
|
|
16
|
+
if (options.agents?.length && (await exists(join(base, 'agents'))))
|
|
17
|
+
return base;
|
|
18
|
+
if (options.skills?.length && (await exists(join(base, 'skills'))))
|
|
19
|
+
return base;
|
|
20
|
+
if (options.rules?.length && (await exists(join(base, 'rules'))))
|
|
21
|
+
return base;
|
|
22
|
+
if (options.commands?.length && (await exists(join(base, 'commands'))))
|
|
23
|
+
return base;
|
|
24
|
+
}
|
|
25
|
+
return contentRoot;
|
|
26
|
+
}
|
|
3
27
|
/**
|
|
4
28
|
* Resolve convenience resources (agents/skills) to install.
|
|
5
29
|
*
|
|
@@ -19,4 +43,24 @@ export async function resolveConvenienceResources(basePath, repoRoot, options) {
|
|
|
19
43
|
}
|
|
20
44
|
return filterResult.resources;
|
|
21
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Run the full convenience filter flow: resolve resources, build contexts, prepare for pipeline.
|
|
48
|
+
* Shared by registry, path, and git strategies.
|
|
49
|
+
*
|
|
50
|
+
* @param context - Installation context (must have source populated)
|
|
51
|
+
* @param loaded - Loaded package from loader
|
|
52
|
+
* @param options - Convenience filter options (agents, skills, rules, commands)
|
|
53
|
+
* @param opts - Base path resolution: useDetectedBase=true for git (has base detection)
|
|
54
|
+
* @returns Resource contexts ready for createMultiResourceResult
|
|
55
|
+
*/
|
|
56
|
+
export async function runConvenienceFilterInstall(context, loaded, options, opts) {
|
|
57
|
+
const contentRoot = loaded.contentRoot;
|
|
58
|
+
const repoRoot = loaded.sourceMetadata?.repoPath ?? contentRoot;
|
|
59
|
+
const basePath = opts?.useDetectedBase && context.detectedBase
|
|
60
|
+
? context.detectedBase
|
|
61
|
+
: await findBaseForConvenienceFilters(contentRoot, options);
|
|
62
|
+
const resources = await resolveConvenienceResources(basePath, repoRoot, options);
|
|
63
|
+
const resourceContexts = buildResourceInstallContexts(context, resources, repoRoot);
|
|
64
|
+
return prepareResourceContextsForMultiInstall(resourceContexts, repoRoot);
|
|
65
|
+
}
|
|
22
66
|
//# sourceMappingURL=convenience-preprocessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convenience-preprocessor.js","sourceRoot":"","sources":["../../../../src/core/install/preprocessing/convenience-preprocessor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convenience-preprocessor.js","sourceRoot":"","sources":["../../../../src/core/install/preprocessing/convenience-preprocessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-source.d.ts","sourceRoot":"","sources":["../../../../src/core/install/sources/git-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"git-source.d.ts","sourceRoot":"","sources":["../../../../src/core/install/sources/git-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAWhF;;GAEG;AACH,qBAAa,eAAgB,YAAW,mBAAmB;IACzD,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAInC,IAAI,CACR,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,gBAAgB,GAC5B,OAAO,CAAC,aAAa,CAAC;CA0M1B"}
|
|
@@ -5,7 +5,8 @@ import { detectPluginType } from '../plugin-detector.js';
|
|
|
5
5
|
import { detectBase } from '../base-detector.js';
|
|
6
6
|
import { getPlatformsState } from '../../../core/platforms.js';
|
|
7
7
|
import { logger } from '../../../utils/logger.js';
|
|
8
|
-
import {
|
|
8
|
+
import { stat } from 'fs/promises';
|
|
9
|
+
import { resolve, dirname } from 'path';
|
|
9
10
|
/**
|
|
10
11
|
* Loads packages from git repositories
|
|
11
12
|
*/
|
|
@@ -84,8 +85,65 @@ export class GitSourceLoader {
|
|
|
84
85
|
}
|
|
85
86
|
};
|
|
86
87
|
}
|
|
87
|
-
//
|
|
88
|
-
|
|
88
|
+
// Determine content root.
|
|
89
|
+
// When resourcePath is specified, it is authoritative — the user explicitly requested
|
|
90
|
+
// this specific resource. The detected base serves as validation/metadata, not resolution.
|
|
91
|
+
//
|
|
92
|
+
// Use detectedBase when it has a meaningful containment relationship with resourceRoot:
|
|
93
|
+
// - detectedBase is at or within resourceRoot (base detection found something more
|
|
94
|
+
// specific, e.g. a nested plugin.json)
|
|
95
|
+
// - resourceRoot is within detectedBase AND detectedBase is NOT the repo root
|
|
96
|
+
// (base detection found the plugin/package root that contains the resource file,
|
|
97
|
+
// e.g. plugin.json at plugins/codebase-cleanup while resource is
|
|
98
|
+
// plugins/codebase-cleanup/agents/code-reviewer.md)
|
|
99
|
+
//
|
|
100
|
+
// The repo root is explicitly excluded from the ancestor check because every
|
|
101
|
+
// resourceRoot trivially starts with repoPath + '/'. When detectedBase collapses
|
|
102
|
+
// to the repo root (e.g. marketplace or top-level pattern match), it does not
|
|
103
|
+
// represent a meaningful package base for the specific resource.
|
|
104
|
+
//
|
|
105
|
+
// Fall back to resourceRoot when detectedBase is unrelated, absent, or the repo root.
|
|
106
|
+
// If resourceRoot is a file, use its parent directory since a content root must be
|
|
107
|
+
// a directory.
|
|
108
|
+
let contentRoot;
|
|
109
|
+
if (source.resourcePath) {
|
|
110
|
+
const resourceRoot = resolve(result.repoPath, source.resourcePath);
|
|
111
|
+
const detectedBase = detectedBaseInfo?.base;
|
|
112
|
+
if (detectedBase && (detectedBase.startsWith(resourceRoot) || // detectedBase at or within resourceRoot
|
|
113
|
+
( // resourceRoot within detectedBase (file-in-plugin)
|
|
114
|
+
detectedBase !== result.repoPath && // but NOT the repo root (trivially matches everything)
|
|
115
|
+
resourceRoot.startsWith(detectedBase + '/')))) {
|
|
116
|
+
// Detected base has a meaningful containment relationship — use it (always a directory).
|
|
117
|
+
contentRoot = detectedBase;
|
|
118
|
+
}
|
|
119
|
+
else if (detectedBase && detectedBase !== result.repoPath) {
|
|
120
|
+
// Detected base is a meaningful directory that isn't the repo root.
|
|
121
|
+
// This handles cases where base detection found a valid package root
|
|
122
|
+
// that doesn't strictly contain resourceRoot but is still relevant.
|
|
123
|
+
contentRoot = detectedBase;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// Detected base is absent, is the repo root (marketplace/pattern collapsed),
|
|
127
|
+
// or has no relationship. Fall back to resourceRoot, using dirname if it's a file.
|
|
128
|
+
try {
|
|
129
|
+
const s = await stat(resourceRoot);
|
|
130
|
+
contentRoot = s.isDirectory() ? resourceRoot : dirname(resourceRoot);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
// If stat fails (path doesn't exist), use dirname as safe default
|
|
134
|
+
contentRoot = dirname(resourceRoot);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
logger.info('Content root resolved via resourcePath', {
|
|
138
|
+
resourcePath: source.resourcePath,
|
|
139
|
+
detectedBase,
|
|
140
|
+
contentRoot
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
// No resourcePath: use detected base or sourcePath as before.
|
|
145
|
+
contentRoot = detectedBaseInfo?.base || result.sourcePath;
|
|
146
|
+
}
|
|
89
147
|
// Load individual package/plugin
|
|
90
148
|
let sourcePackage = await loadPackageFromPath(contentRoot, {
|
|
91
149
|
gitUrl: source.gitUrl,
|
|
@@ -96,6 +154,11 @@ export class GitSourceLoader {
|
|
|
96
154
|
});
|
|
97
155
|
// Detect plugin type at content root
|
|
98
156
|
const pluginDetection = await detectPluginType(contentRoot);
|
|
157
|
+
// When resourcePath is set, the user explicitly requested a specific resource.
|
|
158
|
+
// Never propagate pluginType 'marketplace' in this case — it would trigger the
|
|
159
|
+
// marketplace selection prompt in applyBaseDetection, which is wrong because we
|
|
160
|
+
// already have enough information to install directly.
|
|
161
|
+
const suppressMarketplace = source.resourcePath && pluginDetection.type === 'marketplace';
|
|
99
162
|
const packageName = sourcePackage.metadata.name;
|
|
100
163
|
const version = sourcePackage.metadata.version || '0.0.0';
|
|
101
164
|
// Note: Plugin transformation is handled by the main flow, not here
|
|
@@ -105,7 +168,7 @@ export class GitSourceLoader {
|
|
|
105
168
|
version,
|
|
106
169
|
contentRoot,
|
|
107
170
|
source: 'git',
|
|
108
|
-
pluginMetadata: pluginDetection.isPlugin ? {
|
|
171
|
+
pluginMetadata: (pluginDetection.isPlugin && !suppressMarketplace) ? {
|
|
109
172
|
isPlugin: true,
|
|
110
173
|
pluginType: pluginDetection.type, // Can be 'individual', 'marketplace', or 'marketplace-defined'
|
|
111
174
|
manifestPath: pluginDetection.manifestPath
|