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
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# Wave-Based BFS Dependency Resolver
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Replace the dependency resolution pipeline with a new **wave-based BFS resolver** at `packages/core/src/core/wave-resolver/`. This module processes dependencies in breadth-first waves -- each wave batches all unresolved packages at the current frontier, fetches their metadata in parallel, discovers new dependencies, and repeats until the queue is empty.
|
|
6
|
+
|
|
7
|
+
The module handles all three source types (registry, git, path) in the wave loop, integrates fully with the existing orchestrator, and updates `openpackage.index.yml` as part of its output.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Illustrative Example
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Start: read root openpackage.yml
|
|
15
|
+
└─ Queue: [ react@^18, typescript@^5 ]
|
|
16
|
+
|
|
17
|
+
Wave 1 — fetch packuments for queued names:
|
|
18
|
+
GET registry/react → resolves to react@18.3.1
|
|
19
|
+
GET registry/typescript → resolves to typescript@5.7.3
|
|
20
|
+
|
|
21
|
+
react@18.3.1 declares:
|
|
22
|
+
dependencies: { "loose-envify": "^1.1.0" }
|
|
23
|
+
|
|
24
|
+
typescript@5.7.3 declares:
|
|
25
|
+
dependencies: {} ← leaf, nothing to queue
|
|
26
|
+
|
|
27
|
+
└─ Queue: [ loose-envify@^1.1.0 ]
|
|
28
|
+
|
|
29
|
+
Wave 2 — fetch packuments for newly discovered names:
|
|
30
|
+
GET registry/loose-envify → resolves to loose-envify@1.4.0
|
|
31
|
+
|
|
32
|
+
loose-envify@1.4.0 declares:
|
|
33
|
+
dependencies: { "js-tokens": "^3.0.0 || ^4.0.0" }
|
|
34
|
+
|
|
35
|
+
└─ Queue: [ js-tokens@^3.0.0||^4.0.0 ]
|
|
36
|
+
|
|
37
|
+
Wave 3:
|
|
38
|
+
GET registry/js-tokens → resolves to js-tokens@4.0.0
|
|
39
|
+
|
|
40
|
+
js-tokens@4.0.0 declares:
|
|
41
|
+
dependencies: {} ← leaf
|
|
42
|
+
|
|
43
|
+
└─ Queue empty → resolution complete
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Module Structure
|
|
49
|
+
|
|
50
|
+
New directory: `packages/core/src/core/wave-resolver/`
|
|
51
|
+
|
|
52
|
+
| File | Responsibility |
|
|
53
|
+
|---|---|
|
|
54
|
+
| `types.ts` | All types: `WaveNode`, `WaveGraph`, `WaveResult`, `FetchResult`, `PackageFetcher` interface, `WaveResolverOptions` |
|
|
55
|
+
| `manifest-reader.ts` | Read `openpackage.yml` from any source (thin wrapper reusing existing `resolution/manifest-reader.ts` utilities) |
|
|
56
|
+
| `fetcher.ts` | Per-source-type metadata fetcher (registry: local+remote version lookup; git: clone/cache; path: stat+load). All fetchers implement a common `PackageFetcher` interface. |
|
|
57
|
+
| `version-solver.ts` | Given all accumulated constraints per package name, pick the best version. Reuses `semver` + existing `version-ranges.ts` utilities. |
|
|
58
|
+
| `wave-engine.ts` | The core BFS loop: reads root manifest, enqueues direct deps, runs waves. Each wave calls `fetcher` in parallel, calls `version-solver`, reads child manifests, enqueues new deps. Produces a `WaveGraph`. |
|
|
59
|
+
| `context-builder.ts` | Converts `WaveGraph` nodes into `InstallationContext[]` for the existing unified pipeline. |
|
|
60
|
+
| `index-updater.ts` | After successful install, updates `openpackage.index.yml` with resolved versions, sources, and dependencies. |
|
|
61
|
+
| `index.ts` | Public API: `resolveWave(rootManifestPath, options): WaveResult` |
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Core Algorithm (`wave-engine.ts`)
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
function resolveWave(rootManifest, options):
|
|
69
|
+
// 1. Read root openpackage.yml
|
|
70
|
+
rootDeps = extractDependencies(rootManifest)
|
|
71
|
+
|
|
72
|
+
// 2. Initialize state
|
|
73
|
+
resolved = Map<string, WaveNode>() // key = canonical dep ID
|
|
74
|
+
queue = [...rootDeps] // frontier for next wave
|
|
75
|
+
visiting = Set<string>() // cycle detection
|
|
76
|
+
waveNumber = 0
|
|
77
|
+
|
|
78
|
+
// 3. Wave loop
|
|
79
|
+
while queue.length > 0:
|
|
80
|
+
waveNumber++
|
|
81
|
+
currentWave = dequeueAll(queue)
|
|
82
|
+
|
|
83
|
+
// Deduplicate: skip already-resolved or in-flight
|
|
84
|
+
toFetch = currentWave.filter(dep =>
|
|
85
|
+
!resolved.has(dep.id) && !visiting.has(dep.id)
|
|
86
|
+
)
|
|
87
|
+
for dep in toFetch: visiting.add(dep.id)
|
|
88
|
+
|
|
89
|
+
// 4. Parallel fetch all packuments in this wave
|
|
90
|
+
// - Registry deps: resolveRegistryVersion() + loadPackageMetadata()
|
|
91
|
+
// - Git deps: loadPackageFromGit() (uses cache)
|
|
92
|
+
// - Path deps: loadPackageFromPath()
|
|
93
|
+
fetchResults = await Promise.all(
|
|
94
|
+
toFetch.map(dep => fetcher.fetch(dep))
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
// 5. For each fetched result:
|
|
98
|
+
for result in fetchResults:
|
|
99
|
+
// a. Version solve (for registry: pick best version from constraints)
|
|
100
|
+
resolvedVersion = versionSolver.solve(result)
|
|
101
|
+
|
|
102
|
+
// b. Record in resolved map
|
|
103
|
+
node = createWaveNode(result, resolvedVersion)
|
|
104
|
+
resolved.set(node.id, node)
|
|
105
|
+
visiting.delete(node.id)
|
|
106
|
+
|
|
107
|
+
// c. Read child manifest (openpackage.yml from content root)
|
|
108
|
+
childDeps = readChildDependencies(node.contentRoot)
|
|
109
|
+
|
|
110
|
+
// d. Enqueue new deps not yet resolved
|
|
111
|
+
for childDep in childDeps:
|
|
112
|
+
if !resolved.has(childDep.id):
|
|
113
|
+
queue.push(childDep)
|
|
114
|
+
// Record parent->child edge
|
|
115
|
+
node.children.push(childDep.id)
|
|
116
|
+
|
|
117
|
+
// 6. Compute topological install order (leaves first)
|
|
118
|
+
installOrder = topologicalSort(resolved)
|
|
119
|
+
|
|
120
|
+
return { nodes: resolved, installOrder, waves: waveNumber }
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Key Design Decisions
|
|
126
|
+
|
|
127
|
+
### 1. Source-Specific Fetcher Strategies (`fetcher.ts`)
|
|
128
|
+
|
|
129
|
+
A `PackageFetcher` interface with three implementations:
|
|
130
|
+
|
|
131
|
+
- **`RegistryFetcher`**: Uses existing `resolveCandidateVersionsForInstall()` + `selectInstallVersionUnified()` for local-first-with-remote-fallback version resolution. Loads package content root via `resolvePackageContentRoot()`. If not locally available, calls `pullPackageFromRemote()`.
|
|
132
|
+
|
|
133
|
+
- **`GitFetcher`**: Uses existing `loadPackageFromGit()` with git cache. Returns content root + manifest. Uses `ensureContentRoot()` from `content-root-cache.ts` for dedup within a run.
|
|
134
|
+
|
|
135
|
+
- **`PathFetcher`**: Uses existing `loadPackageFromPath()`. Returns content root + manifest.
|
|
136
|
+
|
|
137
|
+
Each returns a `FetchResult` with: `name`, `version`, `contentRoot`, `sourceType`, `metadata (PackageYml)`, `childDependencies[]`.
|
|
138
|
+
|
|
139
|
+
### 2. Version Constraint Accumulation
|
|
140
|
+
|
|
141
|
+
As waves progress, the same package name may appear from multiple parents with different version constraints. The `version-solver.ts` accumulates all constraints per package name in a `Map<string, string[]>` and finds the highest satisfying version across all constraints (reusing `semver.maxSatisfying` with `includePrerelease: true`).
|
|
142
|
+
|
|
143
|
+
If constraints are incompatible, it follows the existing conflict handling: interactive prompt (if available) or `--force` to pick latest.
|
|
144
|
+
|
|
145
|
+
### 3. Canonical Dependency ID
|
|
146
|
+
|
|
147
|
+
Each dependency gets a canonical ID for deduplication:
|
|
148
|
+
- Registry: `registry:${normalizedName}`
|
|
149
|
+
- Git: `git:${urlHash}:${ref||'HEAD'}:${resourcePath||''}`
|
|
150
|
+
- Path: `path:${absolutePath}`
|
|
151
|
+
|
|
152
|
+
This reuses the logic from `resolution/id-generator.ts`.
|
|
153
|
+
|
|
154
|
+
### 4. Wave Parallelism
|
|
155
|
+
|
|
156
|
+
Within each wave, all fetches run in parallel via `Promise.all()`. This is the key efficiency gain over the current serial DFS: if wave 1 has 10 registry deps, all 10 are fetched concurrently.
|
|
157
|
+
|
|
158
|
+
Git clones within a wave also run in parallel (the git cache prevents duplicate clones for the same URL).
|
|
159
|
+
|
|
160
|
+
### 5. No Depth Limit
|
|
161
|
+
|
|
162
|
+
The BFS runs until the queue is empty (all leaf nodes have been resolved). There is no max depth cutoff -- this guarantees completeness and avoids silently dropping real dependencies.
|
|
163
|
+
|
|
164
|
+
Termination is guaranteed by:
|
|
165
|
+
- **Cycle detection**: The `visiting` set prevents infinite loops from circular dependencies. When a cycle is detected, the cycle-causing edge is skipped and a warning is emitted. This is the only case where a dependency is not fully traversed.
|
|
166
|
+
- **Safety valve (node count limit)**: A generous upper bound on total resolved nodes (e.g., 10,000) as a sanity check against pathological graphs or bugs. This is a hard error (not a silent skip) and in practice should never be hit by real dependency trees.
|
|
167
|
+
|
|
168
|
+
The `waveNumber` is tracked for diagnostic/logging purposes but does not gate resolution.
|
|
169
|
+
|
|
170
|
+
### 6. openpackage.index.yml Updates (`index-updater.ts`)
|
|
171
|
+
|
|
172
|
+
After resolution, the `index-updater` will:
|
|
173
|
+
- Read existing `openpackage.index.yml` via `readWorkspaceIndex()`
|
|
174
|
+
- For each resolved node, update/create the entry with `path`, `version`, `dependencies[]`
|
|
175
|
+
- Write back via `writeWorkspaceIndex()`
|
|
176
|
+
|
|
177
|
+
This runs after the installation pipeline (not during resolution), ensuring the index reflects actually-installed packages.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Integration Points
|
|
182
|
+
|
|
183
|
+
### A. Orchestrator Integration
|
|
184
|
+
|
|
185
|
+
In `orchestrator.ts`, the current flow for bulk install (`opkg i`) and single-package-with-deps calls either:
|
|
186
|
+
- `DependencyResolutionExecutor` (newer system)
|
|
187
|
+
- `resolveDependencies()` (legacy resolver, via `resolve-dependencies.ts` phase)
|
|
188
|
+
|
|
189
|
+
The new module will be wired as follows:
|
|
190
|
+
|
|
191
|
+
1. **Bulk install** (`runRecursiveBulkInstall`): Replace `DependencyResolutionExecutor` with `resolveWave()` + `buildInstallContexts()` + existing `runUnifiedInstallPipeline()`.
|
|
192
|
+
|
|
193
|
+
2. **Single package with deps** (`installDependenciesOnly`): Replace `DependencyResolutionExecutor` with `resolveWave()` using `rootManifestPath` as the root.
|
|
194
|
+
|
|
195
|
+
3. **Resolve-dependencies phase** (`unified/phases/resolve-dependencies.ts`): Replace `resolveDependencies()` call with `resolveWave()` for the target package's manifest.
|
|
196
|
+
|
|
197
|
+
### B. Reused Existing Code
|
|
198
|
+
|
|
199
|
+
| Existing Module | What's Reused |
|
|
200
|
+
|---|---|
|
|
201
|
+
| `version-ranges.ts` | `selectVersionWithWipPolicy`, `findBestVersion`, `parseVersionRange` |
|
|
202
|
+
| `version-selection.ts` | `selectInstallVersionUnified` (for registry version resolution) |
|
|
203
|
+
| `local-source-resolution.ts` | `resolveCandidateVersionsForInstall`, `resolvePackageContentRoot` |
|
|
204
|
+
| `resolution/id-generator.ts` | `computeDependencyId` |
|
|
205
|
+
| `resolution/manifest-reader.ts` | `readManifestAtPath`, `extractDependencies`, `getManifestPathAtContentRoot` |
|
|
206
|
+
| `resolution/content-root-cache.ts` | `ensureContentRoot`, `getCachedContentRoot` |
|
|
207
|
+
| `git-package-loader.ts` | `loadPackageFromGit` |
|
|
208
|
+
| `path-package-loader.ts` | `loadPackageFromPath` |
|
|
209
|
+
| `sources/registry-source.ts` | `RegistrySourceLoader.load()` (for loading after resolution) |
|
|
210
|
+
| `workspace-index-yml.ts` | `readWorkspaceIndex`, `writeWorkspaceIndex` |
|
|
211
|
+
| `unified/pipeline.ts` | `runUnifiedInstallPipeline` (for installing each resolved package) |
|
|
212
|
+
|
|
213
|
+
### C. What Gets Deprecated / Removed
|
|
214
|
+
|
|
215
|
+
| Module | Status |
|
|
216
|
+
|---|---|
|
|
217
|
+
| `dependency-resolver/resolver.ts` | Deprecated (already marked). All callers switch to wave resolver. |
|
|
218
|
+
| `resolution/graph-builder.ts` | Replaced by `wave-engine.ts` |
|
|
219
|
+
| `resolution/executor.ts` | Replaced by wave resolver + context builder |
|
|
220
|
+
| `resolution/package-loader.ts` | Replaced by `fetcher.ts` (wave-integrated loading) |
|
|
221
|
+
| `resolution/version-solver.ts` | Replaced by `wave-resolver/version-solver.ts` |
|
|
222
|
+
| `resolution/installation-planner.ts` | Replaced by `context-builder.ts` |
|
|
223
|
+
|
|
224
|
+
These won't be deleted immediately -- they'll be marked `@deprecated` and callers will be migrated in this same PR.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Edge Cases Handled
|
|
229
|
+
|
|
230
|
+
- **Circular dependencies**: Detected via the `visiting` set. Cycles are recorded and the cycle-causing edge is skipped (same as current behavior).
|
|
231
|
+
- **No depth limit**: The BFS runs to completion. A safety-valve node count limit (e.g., 10,000) guards against pathological graphs but should never be hit in practice.
|
|
232
|
+
- **Mixed source types in same wave**: A wave can contain registry, git, and path deps simultaneously. Each gets routed to the appropriate fetcher.
|
|
233
|
+
- **Git marketplace deps**: If a git dep points to a marketplace, it's flagged and excluded from recursive dep resolution (consistent with current behavior).
|
|
234
|
+
- **Version conflicts**: Accumulated per package name across waves. Interactive resolution or force-latest when constraints are incompatible.
|
|
235
|
+
- **Remote fallback**: Registry fetcher follows existing local-first-with-remote-fallback policy per the spec in `specs/install/version-resolution.md`.
|
|
236
|
+
- **Dev dependencies**: Only included at depth 0 (root level), consistent with current behavior.
|
|
237
|
+
- **Already-installed packages**: Checked against `openpackage.index.yml` to skip re-installation (unless `--force`).
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Implementation Tasks
|
|
242
|
+
|
|
243
|
+
1. Create `wave-resolver/types.ts` -- Define `WaveNode`, `WaveGraph`, `WaveResult`, `FetchResult`, `PackageFetcher` interface, `WaveResolverOptions`
|
|
244
|
+
2. Create `wave-resolver/fetcher.ts` -- Implement `RegistryFetcher`, `GitFetcher`, `PathFetcher` using existing loaders
|
|
245
|
+
3. Create `wave-resolver/version-solver.ts` -- Constraint accumulation + resolution (port logic from existing `resolution/version-solver.ts` + legacy resolver)
|
|
246
|
+
4. Create `wave-resolver/manifest-reader.ts` -- Thin wrapper around existing `resolution/manifest-reader.ts`
|
|
247
|
+
5. Create `wave-resolver/wave-engine.ts` -- Core BFS loop
|
|
248
|
+
6. Create `wave-resolver/context-builder.ts` -- Convert `WaveGraph` to `InstallationContext[]`
|
|
249
|
+
7. Create `wave-resolver/index-updater.ts` -- Update `openpackage.index.yml` post-install
|
|
250
|
+
8. Create `wave-resolver/index.ts` -- Public API
|
|
251
|
+
9. Wire into `orchestrator.ts` -- Replace `DependencyResolutionExecutor` usage and `resolveDependencies` calls
|
|
252
|
+
10. Wire into `unified/phases/resolve-dependencies.ts` -- Replace legacy resolver call
|
|
253
|
+
11. Deprecate old modules -- Add `@deprecated` annotations
|
|
254
|
+
12. Test -- Run existing test suite, add wave-specific tests
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: code-simplifier
|
|
3
|
-
description: Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.
|
|
4
|
-
model: opus
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are an expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality. Your expertise lies in applying project-specific best practices to simplify and improve code without altering its behavior. You prioritize readable, explicit code over overly compact solutions. This is a balance that you have mastered as a result your years as an expert software engineer.
|
|
8
|
-
|
|
9
|
-
You will analyze recently modified code and apply refinements that:
|
|
10
|
-
|
|
11
|
-
1. **Preserve Functionality**: Never change what the code does - only how it does it. All original features, outputs, and behaviors must remain intact.
|
|
12
|
-
|
|
13
|
-
2. **Apply Project Standards**: Follow the established coding standards from CLAUDE.md including:
|
|
14
|
-
|
|
15
|
-
- Use ES modules with proper import sorting and extensions
|
|
16
|
-
- Prefer `function` keyword over arrow functions
|
|
17
|
-
- Use explicit return type annotations for top-level functions
|
|
18
|
-
- Follow proper React component patterns with explicit Props types
|
|
19
|
-
- Use proper error handling patterns (avoid try/catch when possible)
|
|
20
|
-
- Maintain consistent naming conventions
|
|
21
|
-
|
|
22
|
-
3. **Enhance Clarity**: Simplify code structure by:
|
|
23
|
-
|
|
24
|
-
- Reducing unnecessary complexity and nesting
|
|
25
|
-
- Eliminating redundant code and abstractions
|
|
26
|
-
- Improving readability through clear variable and function names
|
|
27
|
-
- Consolidating related logic
|
|
28
|
-
- Removing unnecessary comments that describe obvious code
|
|
29
|
-
- IMPORTANT: Avoid nested ternary operators - prefer switch statements or if/else chains for multiple conditions
|
|
30
|
-
- Choose clarity over brevity - explicit code is often better than overly compact code
|
|
31
|
-
|
|
32
|
-
4. **Maintain Balance**: Avoid over-simplification that could:
|
|
33
|
-
|
|
34
|
-
- Reduce code clarity or maintainability
|
|
35
|
-
- Create overly clever solutions that are hard to understand
|
|
36
|
-
- Combine too many concerns into single functions or components
|
|
37
|
-
- Remove helpful abstractions that improve code organization
|
|
38
|
-
- Prioritize "fewer lines" over readability (e.g., nested ternaries, dense one-liners)
|
|
39
|
-
- Make the code harder to debug or extend
|
|
40
|
-
|
|
41
|
-
5. **Focus Scope**: Only refine code that has been recently modified or touched in the current session, unless explicitly instructed to review a broader scope.
|
|
42
|
-
|
|
43
|
-
Your refinement process:
|
|
44
|
-
|
|
45
|
-
1. Identify the recently modified code sections
|
|
46
|
-
2. Analyze for opportunities to improve elegance and consistency
|
|
47
|
-
3. Apply project-specific best practices and coding standards
|
|
48
|
-
4. Ensure all functionality remains unchanged
|
|
49
|
-
5. Verify the refined code is simpler and more maintainable
|
|
50
|
-
6. Document only significant changes that affect understanding
|
|
51
|
-
|
|
52
|
-
You operate autonomously and proactively, refining code immediately after it's written or modified without requiring explicit requests. Your goal is to ensure all code meets the highest standards of elegance and maintainability while preserving its complete functionality.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Simplify, better organize the code, and eliminate any redundancy, inefficiencies, and roundabout logic to best streamline the code and logic.
|