@unbrained/pm-cli 2026.6.6 → 2026.6.8
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-plugin/marketplace.json +1 -1
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +79 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +6 -2
- package/dist/cli/bootstrap-args.js +30 -13
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commander-usage.js +74 -4
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/aggregate.d.ts +8 -0
- package/dist/cli/commands/aggregate.js +84 -7
- package/dist/cli/commands/aggregate.js.map +1 -1
- package/dist/cli/commands/calendar.js +10 -3
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/close-many.js +20 -11
- package/dist/cli/commands/close-many.js.map +1 -1
- package/dist/cli/commands/close.d.ts +1 -1
- package/dist/cli/commands/close.js +32 -10
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/comments-audit.js +4 -3
- package/dist/cli/commands/comments-audit.js.map +1 -1
- package/dist/cli/commands/completion.js +105 -43
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.d.ts +5 -4
- package/dist/cli/commands/config.js +50 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/contracts.js +4 -3
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/copy.d.ts +14 -0
- package/dist/cli/commands/copy.js +153 -0
- package/dist/cli/commands/copy.js.map +1 -0
- package/dist/cli/commands/extension/doctor.js +62 -2
- package/dist/cli/commands/extension/doctor.js.map +1 -1
- package/dist/cli/commands/extension/install-sources.d.ts +8 -0
- package/dist/cli/commands/extension/install-sources.js +82 -2
- package/dist/cli/commands/extension/install-sources.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.js +6 -14
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +29 -0
- package/dist/cli/commands/extension.js +61 -2
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/gc.js +10 -2
- package/dist/cli/commands/gc.js.map +1 -1
- package/dist/cli/commands/get.d.ts +9 -0
- package/dist/cli/commands/get.js +23 -2
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/health.js +10 -2
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history-compact.d.ts +39 -0
- package/dist/cli/commands/history-compact.js +262 -0
- package/dist/cli/commands/history-compact.js.map +1 -0
- package/dist/cli/commands/index.d.ts +3 -1
- package/dist/cli/commands/index.js +5 -3
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.js +48 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/list.d.ts +13 -2
- package/dist/cli/commands/list.js +189 -9
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/normalize.js +6 -4
- package/dist/cli/commands/normalize.js.map +1 -1
- package/dist/cli/commands/reindex.js +8 -4
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +13 -2
- package/dist/cli/commands/schema.js +66 -12
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/search.d.ts +11 -2
- package/dist/cli/commands/search.js +321 -35
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/upgrade.js +4 -12
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/error-guidance.js +26 -2
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/extension-command-help.d.ts +1 -0
- package/dist/cli/extension-command-help.js +3 -2
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/help-content.js +10 -2
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.js +18 -37
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +22 -5
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +83 -39
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +31 -7
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/register-setup.js +7 -5
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.js +26 -4
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-A3QKFSSF.js +16 -0
- package/dist/cli-bundle/chunks/{activity-JM6DTDND.js → activity-Q7XMIZIH.js} +11 -11
- package/dist/cli-bundle/chunks/{aggregate-VNAHUNNF.js → aggregate-GBSHSXOB.js} +87 -17
- package/dist/cli-bundle/chunks/aggregate-GBSHSXOB.js.map +7 -0
- package/dist/cli-bundle/chunks/{aggregate-GI7WSZPH.js → aggregate-HKQJZUBG.js} +88 -18
- package/dist/cli-bundle/chunks/aggregate-HKQJZUBG.js.map +1 -0
- package/dist/cli-bundle/chunks/{append-WMKRXKCE.js → append-3RFOU7P5.js} +8 -8
- package/dist/cli-bundle/chunks/{append-7H5N64R2.js → append-OM74OJVT.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-KJE2FOS4.js → chunk-2BYKYPWY.js} +26 -4
- package/dist/cli-bundle/chunks/chunk-2BYKYPWY.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XTGLRY2Y.js → chunk-2HMD3JM2.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-PRJCELV4.js → chunk-2YPVCD7T.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-3FI4SEFT.js → chunk-3E3MDBTB.js} +62 -38
- package/dist/cli-bundle/chunks/chunk-3E3MDBTB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-U5SXYXSY.js → chunk-3TXWDGPU.js} +287 -45
- package/dist/cli-bundle/chunks/chunk-3TXWDGPU.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-HZGUAH22.js → chunk-4TI3532H.js} +6 -7
- package/dist/cli-bundle/chunks/chunk-4TI3532H.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2HVRUSQA.js → chunk-4WYBLB6J.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-R6UFP2GE.js → chunk-5NVJA7IW.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-Q7SPNHLW.js → chunk-5WO2VKFA.js} +190 -16
- package/dist/cli-bundle/chunks/chunk-5WO2VKFA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-IOR7LGF4.js → chunk-7NQIY7Z6.js} +89 -7
- package/dist/cli-bundle/chunks/chunk-7NQIY7Z6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ECCMVXGM.js → chunk-7WXGR44E.js} +305 -216
- package/dist/cli-bundle/chunks/chunk-7WXGR44E.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XSJCLN2R.js → chunk-AEMKH5WQ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-WOPXVEZP.js → chunk-ALSRBNYB.js} +28 -9
- package/dist/cli-bundle/chunks/chunk-ALSRBNYB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-6ER6DXH5.js → chunk-AXBUHLW7.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-BQHUILZS.js → chunk-BFJPMUF5.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-I6BNFU5X.js → chunk-BKQMJXWY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-XLTD2HN3.js → chunk-CBJXWXI5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FRAUKRU2.js → chunk-D7WK2PKB.js} +36 -15
- package/dist/cli-bundle/chunks/chunk-D7WK2PKB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-PROOHX4K.js → chunk-DV27WDA7.js} +104 -21
- package/dist/cli-bundle/chunks/chunk-DV27WDA7.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3BWOVLTH.js → chunk-EPWT7BEA.js} +8 -8
- package/dist/cli-bundle/chunks/chunk-ETZZU5QF.js +112 -0
- package/dist/cli-bundle/chunks/chunk-ETZZU5QF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-TPH5XEVD.js → chunk-F33AQIB4.js} +303 -207
- package/dist/cli-bundle/chunks/chunk-F33AQIB4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NUZ5HKR4.js → chunk-F33VC5EX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WKY2IBOQ.js → chunk-FGRJZVXD.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-77GFDHGF.js → chunk-FO2TYSQZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GXSUPCBV.js → chunk-HOA3GMB6.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-OVQCEJPG.js → chunk-HP35AVFS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KJ33AOCY.js → chunk-J4DKAGTM.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ME2YH6FN.js → chunk-JS47EKLP.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-T3LC5LKB.js → chunk-K62SNVVE.js} +5 -6
- package/dist/cli-bundle/chunks/chunk-K62SNVVE.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GU2ZJ2VV.js → chunk-KBKJVXUS.js} +35 -14
- package/dist/cli-bundle/chunks/chunk-KBKJVXUS.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KWU6HG75.js → chunk-KCGMABHM.js} +101 -18
- package/dist/cli-bundle/chunks/chunk-KCGMABHM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-I2HSTRJF.js → chunk-KN4WSESY.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-RZN6VURO.js → chunk-KP4KIUQT.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5FDATVEZ.js → chunk-KS2U7BZ3.js} +71 -17
- package/dist/cli-bundle/chunks/chunk-KS2U7BZ3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-MITFDD35.js → chunk-KVXIQDJG.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-IJGCZSIQ.js → chunk-L3LYL3ID.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-AO442XLN.js → chunk-M7UBTVFT.js} +10 -6
- package/dist/cli-bundle/chunks/{chunk-AO442XLN.js.map → chunk-M7UBTVFT.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UM2GBHS4.js → chunk-MSH23UWO.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-LCM63IXU.js → chunk-N4SQZ7L3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3VAM3NNM.js → chunk-NDSMKB2I.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-6P6GGMOG.js → chunk-NGEEXR2R.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PO3GSVFV.js → chunk-NLVCMVC7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-N7ACFE26.js → chunk-NUKHZZNM.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GGYWB3Y2.js → chunk-ODN53S6H.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-23YFZ3IG.js → chunk-OTY2YEH5.js} +14 -14
- package/dist/cli-bundle/chunks/{chunk-2RSPZI5H.js → chunk-OVSSE2JP.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-4LL6TK5B.js → chunk-PQDH3S54.js} +59 -35
- package/dist/cli-bundle/chunks/chunk-PQDH3S54.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2VVCGBNV.js → chunk-QF4OPBAG.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-QO7EBBOM.js → chunk-QFVASU44.js} +38 -7
- package/dist/cli-bundle/chunks/chunk-QFVASU44.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-WSMOSYRD.js → chunk-QQPZYP73.js} +14 -14
- package/dist/cli-bundle/chunks/{chunk-OZ7NSQHL.js → chunk-QWNUDGFQ.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-AY43SBIN.js → chunk-R4XIE7NQ.js} +54 -8
- package/dist/cli-bundle/chunks/chunk-R4XIE7NQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-52MAOQ6J.js → chunk-RISLL7XH.js} +71 -17
- package/dist/cli-bundle/chunks/chunk-RISLL7XH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GCOQW437.js → chunk-SDLEYY6A.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-W7XABV4H.js → chunk-SM3RMWGO.js} +191 -17
- package/dist/cli-bundle/chunks/chunk-SM3RMWGO.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-PIU6RSL3.js → chunk-TBLBEOEX.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-SKJWX3QB.js → chunk-TXKENAQP.js} +88 -6
- package/dist/cli-bundle/chunks/chunk-TXKENAQP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YL2DJGYS.js → chunk-UEXNNF3K.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-UBOPJT3S.js → chunk-UMMJAJB2.js} +9 -9
- package/dist/cli-bundle/chunks/chunk-URJEZOLB.js +115 -0
- package/dist/cli-bundle/chunks/chunk-URJEZOLB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-PDDFYW4X.js → chunk-VXBUXLVD.js} +27 -8
- package/dist/cli-bundle/chunks/chunk-VXBUXLVD.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-LB3RUL2N.js → chunk-XEKZCBCS.js} +10 -6
- package/dist/cli-bundle/chunks/chunk-XEKZCBCS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KAG77BY3.js → chunk-XLSQ3QLT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-E5FJNAZA.js → chunk-XNGMIVQY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TCD3R2PF.js → chunk-XZS4MV37.js} +39 -8
- package/dist/cli-bundle/chunks/chunk-XZS4MV37.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RWPSOIEE.js → chunk-YEFOCDIK.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-5SFCOO6B.js → chunk-YJAKN2N2.js} +277 -35
- package/dist/cli-bundle/chunks/chunk-YJAKN2N2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2VBQ6ZXS.js → chunk-Z2HXAFFH.js} +27 -5
- package/dist/cli-bundle/chunks/chunk-Z2HXAFFH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-3LB74A67.js → chunk-Z55JACL2.js} +53 -7
- package/dist/cli-bundle/chunks/chunk-Z55JACL2.js.map +7 -0
- package/dist/cli-bundle/chunks/{claim-4DBF6RVG.js → claim-NHBIIBOW.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-X2P4IB7J.js → claim-RNEBQCOO.js} +10 -10
- package/dist/cli-bundle/chunks/close-UNTFXVM3.js +13 -0
- package/dist/cli-bundle/chunks/{close-PTYFA45H.js → close-ZMXL2WDS.js} +8 -8
- package/dist/cli-bundle/chunks/{close-many-ERFO6LHR.js → close-many-CDPQGQUB.js} +37 -28
- package/dist/cli-bundle/chunks/close-many-CDPQGQUB.js.map +1 -0
- package/dist/cli-bundle/chunks/{close-many-7CGIDPTJ.js → close-many-IQV5C2SI.js} +36 -27
- package/dist/cli-bundle/chunks/close-many-IQV5C2SI.js.map +7 -0
- package/dist/cli-bundle/chunks/{comments-QKBYCWKD.js → comments-EFVBHWPT.js} +10 -10
- package/dist/cli-bundle/chunks/{comments-OONGABK5.js → comments-J5Q4IJPH.js} +10 -10
- package/dist/cli-bundle/chunks/{config-6FXCQKIF.js → config-72253M2O.js} +127 -12
- package/dist/cli-bundle/chunks/config-72253M2O.js.map +1 -0
- package/dist/cli-bundle/chunks/{config-U4RZ4CQB.js → config-VFYA6BMI.js} +128 -13
- package/dist/cli-bundle/chunks/config-VFYA6BMI.js.map +7 -0
- package/dist/cli-bundle/chunks/{context-FYYJGFWS.js → context-AVLO4IFH.js} +14 -14
- package/dist/cli-bundle/chunks/{context-FYYJGFWS.js.map → context-AVLO4IFH.js.map} +2 -2
- package/dist/cli-bundle/chunks/{context-YMJ3Z2HQ.js → context-WMSI2D65.js} +15 -15
- package/dist/cli-bundle/chunks/context-WMSI2D65.js.map +1 -0
- package/dist/cli-bundle/chunks/{contracts-RFSPGVVJ.js → contracts-D4BN3VSQ.js} +7 -5
- package/dist/cli-bundle/chunks/contracts-D4BN3VSQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-QDB6OMLQ.js → contracts-RGPOBLPL.js} +8 -6
- package/dist/cli-bundle/chunks/contracts-RGPOBLPL.js.map +1 -0
- package/dist/cli-bundle/chunks/copy-H6TXHK7S.js +185 -0
- package/dist/cli-bundle/chunks/copy-H6TXHK7S.js.map +7 -0
- package/dist/cli-bundle/chunks/copy-WXE3OOLZ.js +182 -0
- package/dist/cli-bundle/chunks/copy-WXE3OOLZ.js.map +1 -0
- package/dist/cli-bundle/chunks/create-EZWAMUKR.js +27 -0
- package/dist/cli-bundle/chunks/{create-I5L4EYYZ.js → create-PUAIJEZ7.js} +13 -13
- package/dist/cli-bundle/chunks/{delete-7HPGI4GZ.js → delete-PKR2JHLH.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-VXUPH5RS.js → delete-WBME6WG5.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-JSRRWC3Z.js → deps-4BQEDV4L.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-SCZIFK2Z.js → deps-KWHQRO75.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-GJK6K4VP.js → docs-364GT3ZR.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-WW4N3MBM.js → docs-SCNBUGSV.js} +9 -9
- package/dist/cli-bundle/chunks/{extension-VDY2U33M.js → extension-CRE7JM47.js} +8 -6
- package/dist/cli-bundle/chunks/{extension-J7IBMFTD.js → extension-KK2UPXJD.js} +8 -6
- package/dist/cli-bundle/chunks/{files-ISZJGILQ.js → files-3GESQAWL.js} +9 -9
- package/dist/cli-bundle/chunks/{files-WKOD326U.js → files-66EHM5ZR.js} +9 -9
- package/dist/cli-bundle/chunks/{gc-JDVJ6OQ2.js → gc-D5IWOKQH.js} +13 -5
- package/dist/cli-bundle/chunks/gc-D5IWOKQH.js.map +1 -0
- package/dist/cli-bundle/chunks/{gc-ULPVWMTN.js → gc-MOQDND5J.js} +12 -4
- package/dist/cli-bundle/chunks/gc-MOQDND5J.js.map +7 -0
- package/dist/cli-bundle/chunks/{get-RV37HT3G.js → get-7J2ZCBV5.js} +34 -12
- package/dist/cli-bundle/chunks/get-7J2ZCBV5.js.map +1 -0
- package/dist/cli-bundle/chunks/{get-WXU6WI5P.js → get-WXSLXV3K.js} +33 -11
- package/dist/cli-bundle/chunks/get-WXSLXV3K.js.map +7 -0
- package/dist/cli-bundle/chunks/{health-LOI2HHKB.js → health-B6AEM7BV.js} +21 -13
- package/dist/cli-bundle/chunks/health-B6AEM7BV.js.map +1 -0
- package/dist/cli-bundle/chunks/{health-6L6EH4WR.js → health-YMZGOMVX.js} +20 -12
- package/dist/cli-bundle/chunks/health-YMZGOMVX.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-PKN67D5O.js → history-TJTO5GCR.js} +10 -10
- package/dist/cli-bundle/chunks/history-ZERISU2L.js +20 -0
- package/dist/cli-bundle/chunks/history-compact-CKNN6UKW.js +290 -0
- package/dist/cli-bundle/chunks/history-compact-CKNN6UKW.js.map +7 -0
- package/dist/cli-bundle/chunks/history-compact-N2Q7IR3T.js +287 -0
- package/dist/cli-bundle/chunks/history-compact-N2Q7IR3T.js.map +1 -0
- package/dist/cli-bundle/chunks/history-redact-GODBYT5A.js +19 -0
- package/dist/cli-bundle/chunks/{history-redact-V4FOJGS7.js → history-redact-JUXUOH54.js} +11 -11
- package/dist/cli-bundle/chunks/{history-repair-HIBCBIKK.js → history-repair-CCCPBNTF.js} +11 -11
- package/dist/cli-bundle/chunks/{history-repair-SDMHR7JT.js → history-repair-TDBBSRVK.js} +11 -11
- package/dist/cli-bundle/chunks/{init-P56QYWJF.js → init-6ZPKD3YN.js} +9 -8
- package/dist/cli-bundle/chunks/init-CBZHXBR3.js +17 -0
- package/dist/cli-bundle/chunks/{learnings-MIXSESLK.js → learnings-U7U2FNIO.js} +10 -10
- package/dist/cli-bundle/chunks/{learnings-GDFRG5J7.js → learnings-WYNTYQ5T.js} +10 -10
- package/dist/cli-bundle/chunks/list-7MTPPZHC.js +20 -0
- package/dist/cli-bundle/chunks/{list-FGOWQMSM.js → list-JGP7ODML.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-5UK3GEH2.js → notes-P25YVTEG.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-4XVSH2AZ.js → notes-QIF6A7XS.js} +10 -10
- package/dist/cli-bundle/chunks/{plan-DUMBV3QB.js → plan-RACB5PI6.js} +13 -13
- package/dist/cli-bundle/chunks/{plan-SLMODHWX.js → plan-SSBJFWXA.js} +13 -13
- package/dist/cli-bundle/chunks/{register-list-query-POCFZ5JW.js → register-list-query-5IXDPUZ6.js} +31 -25
- package/dist/cli-bundle/chunks/register-list-query-5IXDPUZ6.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-WST76HSQ.js → register-list-query-GQAEIG4K.js} +30 -24
- package/dist/cli-bundle/chunks/register-list-query-GQAEIG4K.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-N5GSUZJV.js → register-mutation-FAS4YG63.js} +72 -50
- package/dist/cli-bundle/chunks/register-mutation-FAS4YG63.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-OA675SOU.js → register-mutation-YZCUILGO.js} +71 -49
- package/dist/cli-bundle/chunks/register-mutation-YZCUILGO.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-operations-N3PMHXH5.js → register-operations-IBYWNJN5.js} +57 -34
- package/dist/cli-bundle/chunks/register-operations-IBYWNJN5.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-operations-GNHBE5I3.js → register-operations-S2BOLUPF.js} +58 -35
- package/dist/cli-bundle/chunks/register-operations-S2BOLUPF.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-ZHJI2DI3.js → register-setup-ABA2JPWO.js} +20 -19
- package/dist/cli-bundle/chunks/{register-setup-ZHJI2DI3.js.map → register-setup-ABA2JPWO.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-JIMPKJKV.js → register-setup-JRZ4UMWZ.js} +21 -20
- package/dist/cli-bundle/chunks/register-setup-JRZ4UMWZ.js.map +1 -0
- package/dist/cli-bundle/chunks/restore-3JRX27QW.js +17 -0
- package/dist/cli-bundle/chunks/{restore-PBL6T5TW.js → restore-K72ZNPEP.js} +11 -11
- package/dist/cli-bundle/chunks/{schema-2NOO6NGB.js → schema-3VKRDBLC.js} +76 -20
- package/dist/cli-bundle/chunks/schema-3VKRDBLC.js.map +7 -0
- package/dist/cli-bundle/chunks/{schema-EBI4NLUO.js → schema-UL4B2JX5.js} +77 -21
- package/dist/cli-bundle/chunks/schema-UL4B2JX5.js.map +1 -0
- package/dist/cli-bundle/chunks/{search-OA6JX27A.js → search-632WJ7GO.js} +516 -41
- package/dist/cli-bundle/chunks/search-632WJ7GO.js.map +7 -0
- package/dist/cli-bundle/chunks/{search-JPUQTVCY.js → search-EQDHSE4G.js} +510 -42
- package/dist/cli-bundle/chunks/search-EQDHSE4G.js.map +1 -0
- package/dist/cli-bundle/chunks/{stats-XYB6KTFG.js → stats-O4UTMJMC.js} +7 -7
- package/dist/cli-bundle/chunks/{stats-CV54BAWY.js → stats-WLJ3XBF5.js} +7 -7
- package/dist/cli-bundle/chunks/{telemetry-LMJ7PFUO.js → telemetry-EUVHFSQU.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-NCMEPJNR.js → telemetry-NRVWX25E.js} +4 -4
- package/dist/cli-bundle/chunks/{test-WBROAJIE.js → test-GXUBQNUC.js} +14 -13
- package/dist/cli-bundle/chunks/test-XN7RJL5Z.js +32 -0
- package/dist/cli-bundle/chunks/{test-all-N6NSRDTV.js → test-all-UTFXC7S2.js} +16 -15
- package/dist/cli-bundle/chunks/{test-all-N6NSRDTV.js.map → test-all-UTFXC7S2.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-all-NTOZ7C3M.js → test-all-XM6OKI3L.js} +14 -13
- package/dist/cli-bundle/chunks/{test-all-NTOZ7C3M.js.map → test-all-XM6OKI3L.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-runs-V6A7LPWZ.js → test-runs-7FHCPEA3.js} +5 -5
- package/dist/cli-bundle/chunks/{test-runs-WMVTQU3Y.js → test-runs-IK6E2HNX.js} +5 -5
- package/dist/cli-bundle/chunks/update-LFBSEW3N.js +21 -0
- package/dist/cli-bundle/chunks/update-U4B4OMHZ.js +25 -0
- package/dist/cli-bundle/chunks/{update-many-KGGEYABR.js → update-many-5KD33MKY.js} +22 -22
- package/dist/cli-bundle/chunks/{update-many-EM6OXYGO.js → update-many-N3YTM7K4.js} +22 -22
- package/dist/cli-bundle/chunks/{upgrade-BLI7XBAJ.js → upgrade-5SRFLUNW.js} +8 -14
- package/dist/cli-bundle/chunks/upgrade-5SRFLUNW.js.map +7 -0
- package/dist/cli-bundle/chunks/{upgrade-LXPOQKFV.js → upgrade-FFXGO43H.js} +9 -15
- package/dist/cli-bundle/chunks/upgrade-FFXGO43H.js.map +1 -0
- package/dist/cli-bundle/chunks/{validate-L5J6A7YO.js → validate-CRWXZILW.js} +20 -19
- package/dist/cli-bundle/chunks/{validate-L5J6A7YO.js.map → validate-CRWXZILW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-AGOAUOVW.js → validate-T3LPWSZG.js} +18 -17
- package/dist/cli-bundle/chunks/{validate-AGOAUOVW.js.map → validate-T3LPWSZG.js.map} +1 -1
- package/dist/cli-bundle/main.js +160 -87
- package/dist/cli-bundle/main.js.map +3 -3
- package/dist/core/config/nested-settings.d.ts +8 -8
- package/dist/core/config/nested-settings.js +71 -7
- package/dist/core/config/nested-settings.js.map +1 -1
- package/dist/core/config/positional-value.js +4 -2
- package/dist/core/config/positional-value.js.map +1 -1
- package/dist/core/diagnostics/remediation.js +7 -2
- package/dist/core/diagnostics/remediation.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +36 -0
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/loader.js +46 -5
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/fs/fs-utils.js +29 -4
- package/dist/core/fs/fs-utils.js.map +1 -1
- package/dist/core/history/drift-scan.d.ts +3 -4
- package/dist/core/history/drift-scan.js +71 -18
- package/dist/core/history/drift-scan.js.map +1 -1
- package/dist/core/item/id.js +4 -5
- package/dist/core/item/id.js.map +1 -1
- package/dist/core/item/item-format.js +7 -3
- package/dist/core/item/item-format.js.map +1 -1
- package/dist/core/item/toon-decode.d.ts +7 -0
- package/dist/core/item/toon-decode.js +11 -2
- package/dist/core/item/toon-decode.js.map +1 -1
- package/dist/core/item/type-registry.js +25 -7
- package/dist/core/item/type-registry.js.map +1 -1
- package/dist/core/packages/root.d.ts +10 -0
- package/dist/core/packages/root.js +24 -2
- package/dist/core/packages/root.js.map +1 -1
- package/dist/core/schema/runtime-schema.js +3 -6
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/search/background-refresh.d.ts +0 -8
- package/dist/core/search/background-refresh.js +2 -9
- package/dist/core/search/background-refresh.js.map +1 -1
- package/dist/core/search/cache.js +5 -3
- package/dist/core/search/cache.js.map +1 -1
- package/dist/core/search/corpus.d.ts +6 -0
- package/dist/core/search/corpus.js +22 -9
- package/dist/core/search/corpus.js.map +1 -1
- package/dist/core/search/embedding-batches.js +10 -7
- package/dist/core/search/embedding-batches.js.map +1 -1
- package/dist/core/search/relevance.d.ts +29 -0
- package/dist/core/search/relevance.js +226 -0
- package/dist/core/search/relevance.js.map +1 -0
- package/dist/core/search/vector-stores.d.ts +3 -0
- package/dist/core/search/vector-stores.js +27 -16
- package/dist/core/search/vector-stores.js.map +1 -1
- package/dist/core/sentry/instrument.js +4 -17
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/core/shared/constants.js +15 -2
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/shared/errors.d.ts +6 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/core/shared/primitives.d.ts +8 -0
- package/dist/core/shared/primitives.js +29 -2
- package/dist/core/shared/primitives.js.map +1 -1
- package/dist/core/shared/time.js +42 -6
- package/dist/core/shared/time.js.map +1 -1
- package/dist/core/store/paths.js +40 -8
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/store/settings-validator.d.ts +11 -0
- package/dist/core/store/settings-validator.js +14 -2
- package/dist/core/store/settings-validator.js.map +1 -1
- package/dist/core/store/settings.js +109 -12
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/runtime.d.ts +1 -0
- package/dist/core/telemetry/runtime.js +86 -5
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/mcp/server.js +109 -19
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-types.d.ts +1 -0
- package/dist/sdk/cli-contracts/commander-types.js +15 -4
- package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts/enum-contracts.js +6 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +7 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +32 -3
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +3 -1
- package/dist/sdk/cli-contracts.js +44 -12
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/index.d.ts +2 -2
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +51 -1
- package/dist/sdk/testing.js +93 -2
- package/dist/sdk/testing.js.map +1 -1
- package/dist/types.d.ts +14 -0
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +3 -1
- package/docs/CLAUDE_CODE_PLUGIN.md +4 -4
- package/docs/CODEX_PLUGIN.md +1 -1
- package/docs/COMMANDS.md +14 -5
- package/docs/CONFIGURATION.md +28 -1
- package/docs/EXTENSIONS.md +17 -9
- package/docs/QUICKSTART.md +1 -1
- package/docs/RELEASING.md +17 -0
- package/docs/SDK.md +66 -0
- package/docs/TESTING.md +14 -0
- package/marketplace.json +1 -1
- package/package.json +2 -1
- package/packages/pm-governance-audit/README.md +14 -0
- package/packages/pm-governance-audit/extensions/governance-audit/index.js +39 -1
- package/packages/pm-governance-audit/extensions/governance-audit/index.ts +40 -2
- package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +1 -1
- package/packages/pm-governance-audit/package.json +4 -2
- package/packages/pm-lifecycle-hooks/README.md +21 -0
- package/packages/pm-search-advanced/README.md +38 -0
- package/packages/pm-search-advanced/extensions/search-advanced/index.js +17 -0
- package/packages/pm-search-advanced/extensions/search-advanced/index.ts +17 -0
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +216 -1
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +271 -2
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +7 -7
- package/plugins/pm-claude/commands/pm-init.md +1 -1
- package/plugins/pm-codex/README.md +1 -1
- package/dist/cli-bundle/chunks/activity-CVXTCHYY.js +0 -16
- package/dist/cli-bundle/chunks/aggregate-GI7WSZPH.js.map +0 -1
- package/dist/cli-bundle/chunks/aggregate-VNAHUNNF.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-2VBQ6ZXS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-3FI4SEFT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-3LB74A67.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4LL6TK5B.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-52MAOQ6J.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5FDATVEZ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5SFCOO6B.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-AY43SBIN.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ECCMVXGM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-FRAUKRU2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-GU2ZJ2VV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HZGUAH22.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-IOR7LGF4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KJE2FOS4.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KWU6HG75.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-LB3RUL2N.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-PDDFYW4X.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-PROOHX4K.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Q7SPNHLW.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-QO7EBBOM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SKJWX3QB.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-T3LC5LKB.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-TCD3R2PF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TPH5XEVD.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-U5SXYXSY.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-W7XABV4H.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WOPXVEZP.js.map +0 -1
- package/dist/cli-bundle/chunks/close-3HDWDA3L.js +0 -13
- package/dist/cli-bundle/chunks/close-many-7CGIDPTJ.js.map +0 -7
- package/dist/cli-bundle/chunks/close-many-ERFO6LHR.js.map +0 -1
- package/dist/cli-bundle/chunks/config-6FXCQKIF.js.map +0 -1
- package/dist/cli-bundle/chunks/config-U4RZ4CQB.js.map +0 -7
- package/dist/cli-bundle/chunks/context-YMJ3Z2HQ.js.map +0 -1
- package/dist/cli-bundle/chunks/contracts-QDB6OMLQ.js.map +0 -1
- package/dist/cli-bundle/chunks/contracts-RFSPGVVJ.js.map +0 -7
- package/dist/cli-bundle/chunks/create-JTZNCTQC.js +0 -27
- package/dist/cli-bundle/chunks/gc-JDVJ6OQ2.js.map +0 -1
- package/dist/cli-bundle/chunks/gc-ULPVWMTN.js.map +0 -7
- package/dist/cli-bundle/chunks/get-RV37HT3G.js.map +0 -1
- package/dist/cli-bundle/chunks/get-WXU6WI5P.js.map +0 -7
- package/dist/cli-bundle/chunks/health-6L6EH4WR.js.map +0 -7
- package/dist/cli-bundle/chunks/health-LOI2HHKB.js.map +0 -1
- package/dist/cli-bundle/chunks/history-2BA3T5AE.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-JBZNXHGR.js +0 -19
- package/dist/cli-bundle/chunks/init-HIVSNX3O.js +0 -16
- package/dist/cli-bundle/chunks/list-MUSQNMTD.js +0 -20
- package/dist/cli-bundle/chunks/register-list-query-POCFZ5JW.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-WST76HSQ.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-N5GSUZJV.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-OA675SOU.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-GNHBE5I3.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-N3PMHXH5.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-JIMPKJKV.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-D4RGNX33.js +0 -17
- package/dist/cli-bundle/chunks/schema-2NOO6NGB.js.map +0 -7
- package/dist/cli-bundle/chunks/schema-EBI4NLUO.js.map +0 -1
- package/dist/cli-bundle/chunks/search-JPUQTVCY.js.map +0 -1
- package/dist/cli-bundle/chunks/search-OA6JX27A.js.map +0 -7
- package/dist/cli-bundle/chunks/test-MXX3E5JL.js +0 -31
- package/dist/cli-bundle/chunks/update-OSV3NAQB.js +0 -25
- package/dist/cli-bundle/chunks/update-YRXSUGYQ.js +0 -21
- package/dist/cli-bundle/chunks/upgrade-BLI7XBAJ.js.map +0 -7
- package/dist/cli-bundle/chunks/upgrade-LXPOQKFV.js.map +0 -1
- /package/dist/cli-bundle/chunks/{activity-CVXTCHYY.js.map → activity-A3QKFSSF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-JM6DTDND.js.map → activity-Q7XMIZIH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-WMKRXKCE.js.map → append-3RFOU7P5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-7H5N64R2.js.map → append-OM74OJVT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XTGLRY2Y.js.map → chunk-2HMD3JM2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PRJCELV4.js.map → chunk-2YPVCD7T.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2HVRUSQA.js.map → chunk-4WYBLB6J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-R6UFP2GE.js.map → chunk-5NVJA7IW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XSJCLN2R.js.map → chunk-AEMKH5WQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6ER6DXH5.js.map → chunk-AXBUHLW7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BQHUILZS.js.map → chunk-BFJPMUF5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-I6BNFU5X.js.map → chunk-BKQMJXWY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XLTD2HN3.js.map → chunk-CBJXWXI5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3BWOVLTH.js.map → chunk-EPWT7BEA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NUZ5HKR4.js.map → chunk-F33VC5EX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WKY2IBOQ.js.map → chunk-FGRJZVXD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-77GFDHGF.js.map → chunk-FO2TYSQZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GXSUPCBV.js.map → chunk-HOA3GMB6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OVQCEJPG.js.map → chunk-HP35AVFS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KJ33AOCY.js.map → chunk-J4DKAGTM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ME2YH6FN.js.map → chunk-JS47EKLP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-I2HSTRJF.js.map → chunk-KN4WSESY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RZN6VURO.js.map → chunk-KP4KIUQT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MITFDD35.js.map → chunk-KVXIQDJG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IJGCZSIQ.js.map → chunk-L3LYL3ID.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UM2GBHS4.js.map → chunk-MSH23UWO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LCM63IXU.js.map → chunk-N4SQZ7L3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3VAM3NNM.js.map → chunk-NDSMKB2I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6P6GGMOG.js.map → chunk-NGEEXR2R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PO3GSVFV.js.map → chunk-NLVCMVC7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N7ACFE26.js.map → chunk-NUKHZZNM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GGYWB3Y2.js.map → chunk-ODN53S6H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-23YFZ3IG.js.map → chunk-OTY2YEH5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2RSPZI5H.js.map → chunk-OVSSE2JP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2VVCGBNV.js.map → chunk-QF4OPBAG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WSMOSYRD.js.map → chunk-QQPZYP73.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OZ7NSQHL.js.map → chunk-QWNUDGFQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GCOQW437.js.map → chunk-SDLEYY6A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PIU6RSL3.js.map → chunk-TBLBEOEX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YL2DJGYS.js.map → chunk-UEXNNF3K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UBOPJT3S.js.map → chunk-UMMJAJB2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KAG77BY3.js.map → chunk-XLSQ3QLT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-E5FJNAZA.js.map → chunk-XNGMIVQY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RWPSOIEE.js.map → chunk-YEFOCDIK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-4DBF6RVG.js.map → claim-NHBIIBOW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-X2P4IB7J.js.map → claim-RNEBQCOO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-3HDWDA3L.js.map → close-UNTFXVM3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-PTYFA45H.js.map → close-ZMXL2WDS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-QKBYCWKD.js.map → comments-EFVBHWPT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-OONGABK5.js.map → comments-J5Q4IJPH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-JTZNCTQC.js.map → create-EZWAMUKR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-I5L4EYYZ.js.map → create-PUAIJEZ7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-7HPGI4GZ.js.map → delete-PKR2JHLH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-VXUPH5RS.js.map → delete-WBME6WG5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-JSRRWC3Z.js.map → deps-4BQEDV4L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-SCZIFK2Z.js.map → deps-KWHQRO75.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-GJK6K4VP.js.map → docs-364GT3ZR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-WW4N3MBM.js.map → docs-SCNBUGSV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-VDY2U33M.js.map → extension-CRE7JM47.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-J7IBMFTD.js.map → extension-KK2UPXJD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-ISZJGILQ.js.map → files-3GESQAWL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-WKOD326U.js.map → files-66EHM5ZR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-PKN67D5O.js.map → history-TJTO5GCR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-2BA3T5AE.js.map → history-ZERISU2L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-JBZNXHGR.js.map → history-redact-GODBYT5A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-V4FOJGS7.js.map → history-redact-JUXUOH54.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-HIBCBIKK.js.map → history-repair-CCCPBNTF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-SDMHR7JT.js.map → history-repair-TDBBSRVK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-P56QYWJF.js.map → init-6ZPKD3YN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-HIVSNX3O.js.map → init-CBZHXBR3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-MIXSESLK.js.map → learnings-U7U2FNIO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-GDFRG5J7.js.map → learnings-WYNTYQ5T.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-MUSQNMTD.js.map → list-7MTPPZHC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-FGOWQMSM.js.map → list-JGP7ODML.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-5UK3GEH2.js.map → notes-P25YVTEG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-4XVSH2AZ.js.map → notes-QIF6A7XS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-DUMBV3QB.js.map → plan-RACB5PI6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-SLMODHWX.js.map → plan-SSBJFWXA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-D4RGNX33.js.map → restore-3JRX27QW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-PBL6T5TW.js.map → restore-K72ZNPEP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-XYB6KTFG.js.map → stats-O4UTMJMC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-CV54BAWY.js.map → stats-WLJ3XBF5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-LMJ7PFUO.js.map → telemetry-EUVHFSQU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-NCMEPJNR.js.map → telemetry-NRVWX25E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-WBROAJIE.js.map → test-GXUBQNUC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-MXX3E5JL.js.map → test-XN7RJL5Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-V6A7LPWZ.js.map → test-runs-7FHCPEA3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-WMVTQU3Y.js.map → test-runs-IK6E2HNX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-YRXSUGYQ.js.map → update-LFBSEW3N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-OSV3NAQB.js.map → update-U4B4OMHZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-KGGEYABR.js.map → update-many-5KD33MKY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-EM6OXYGO.js.map → update-many-N3YTM7K4.js.map} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="11e9f6b5-58d0-5f17-a9c5-6d34b5ce4379")}catch(e){}}();
|
|
3
3
|
import fs from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import { toNonEmptyStringOrUndefined } from "../../core/shared/primitives.js";
|
|
5
|
+
import { coerceNumberInRange, toNonEmptyStringOrUndefined } from "../../core/shared/primitives.js";
|
|
6
6
|
import { isPathWithinDirectory } from "../../core/fs/path-utils.js";
|
|
7
7
|
import { getActiveExtensionRegistrations, runActiveOnReadHooks } from "../../core/extensions/index.js";
|
|
8
8
|
import { collectRegisteredItemFieldNames } from "../../core/extensions/item-fields.js";
|
|
@@ -10,6 +10,7 @@ import { resolveRegisteredSearchProvider, resolveRegisteredVectorStoreAdapter, }
|
|
|
10
10
|
import { resolveItemTypeRegistry } from "../../core/item/type-registry.js";
|
|
11
11
|
import { parseLimit, parsePriority, parseType } from "../shared-parsers.js";
|
|
12
12
|
import { executeEmbeddingRequest, resolveEmbeddingProviders, } from "../../core/search/providers.js";
|
|
13
|
+
import { buildDeterministicQueryExpansions, mergeQueryExpansions, normalizeQueryExpansionOutput, normalizeRerankOutput, rerankCandidatesWithEmbeddings, resolveQueryExpansionConfig, resolveRerankConfig, } from "../../core/search/relevance.js";
|
|
13
14
|
import { resolveSettingsWithSemanticRuntimeDefaults } from "../../core/search/semantic-defaults.js";
|
|
14
15
|
import { executeVectorQuery, resolveVectorStores, } from "../../core/search/vector-stores.js";
|
|
15
16
|
import { readVectorizationStatusLedger } from "../../core/search/cache.js";
|
|
@@ -102,6 +103,53 @@ const LONG_QUERY_TITLE_EXACT_BONUS = 120;
|
|
|
102
103
|
const LONG_QUERY_PHRASE_MULTIPLIER = 6;
|
|
103
104
|
const IMPLICIT_HYBRID_EMBEDDING_TIMEOUT_MS = 8_000;
|
|
104
105
|
const IMPLICIT_HYBRID_VECTOR_TIMEOUT_MS = 8_000;
|
|
106
|
+
function isNonEmptyRecord(value) {
|
|
107
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) && Object.keys(value).length > 0;
|
|
108
|
+
}
|
|
109
|
+
function buildCompactSearchFilterSummary(params) {
|
|
110
|
+
const { mode, options, includeLinked, titleExact, phraseExact, scoreThreshold, hybridSemanticWeight, runtimeFieldFilters, } = params;
|
|
111
|
+
const filters = {};
|
|
112
|
+
if (options.status !== undefined) {
|
|
113
|
+
filters.status = options.status;
|
|
114
|
+
}
|
|
115
|
+
if (options.type !== undefined) {
|
|
116
|
+
filters.type = options.type;
|
|
117
|
+
}
|
|
118
|
+
if (options.tag !== undefined) {
|
|
119
|
+
filters.tag = options.tag;
|
|
120
|
+
}
|
|
121
|
+
if (options.priority !== undefined) {
|
|
122
|
+
filters.priority = options.priority;
|
|
123
|
+
}
|
|
124
|
+
if (options.deadlineBefore !== undefined) {
|
|
125
|
+
filters.deadline_before = options.deadlineBefore;
|
|
126
|
+
}
|
|
127
|
+
if (options.deadlineAfter !== undefined) {
|
|
128
|
+
filters.deadline_after = options.deadlineAfter;
|
|
129
|
+
}
|
|
130
|
+
if (includeLinked) {
|
|
131
|
+
filters.include_linked = true;
|
|
132
|
+
}
|
|
133
|
+
if (titleExact) {
|
|
134
|
+
filters.title_exact = true;
|
|
135
|
+
}
|
|
136
|
+
if (phraseExact) {
|
|
137
|
+
filters.phrase_exact = true;
|
|
138
|
+
}
|
|
139
|
+
if (scoreThreshold > 0) {
|
|
140
|
+
filters.score_threshold = scoreThreshold;
|
|
141
|
+
}
|
|
142
|
+
if (mode === "hybrid" && options.semanticWeight !== undefined) {
|
|
143
|
+
filters.hybrid_semantic_weight = hybridSemanticWeight;
|
|
144
|
+
}
|
|
145
|
+
if (options.limit !== undefined) {
|
|
146
|
+
filters.limit = options.limit;
|
|
147
|
+
}
|
|
148
|
+
if (isNonEmptyRecord(runtimeFieldFilters)) {
|
|
149
|
+
filters.runtime_filters = runtimeFieldFilters;
|
|
150
|
+
}
|
|
151
|
+
return filters;
|
|
152
|
+
}
|
|
105
153
|
/**
|
|
106
154
|
* Aggregate the `code` strings found along an error's `cause` chain.
|
|
107
155
|
*
|
|
@@ -209,6 +257,9 @@ function parseTitleExact(raw) {
|
|
|
209
257
|
function parsePhraseExact(raw) {
|
|
210
258
|
return raw === true;
|
|
211
259
|
}
|
|
260
|
+
function parseSemanticWeightOverride(raw) {
|
|
261
|
+
return coerceNumberInRange(raw, 0, 1) ?? undefined;
|
|
262
|
+
}
|
|
212
263
|
function normalizeSearchPhrase(value) {
|
|
213
264
|
return value
|
|
214
265
|
.toLowerCase()
|
|
@@ -631,7 +682,28 @@ export function resolveSearchTuning(settings) {
|
|
|
631
682
|
linked_content_weight: resolveWeight(tuning.linked_content_weight, defaults.linked_content_weight),
|
|
632
683
|
};
|
|
633
684
|
}
|
|
634
|
-
function emptySearchResult(query, mode, options, includeLinked, scoreThreshold, hybridSemanticWeight, projection, warnings) {
|
|
685
|
+
function emptySearchResult(query, mode, options, includeLinked, scoreThreshold, hybridSemanticWeight, queryExpansion, rerank, projection, warnings, runtimeFieldFilters) {
|
|
686
|
+
const compactSummaryMode = projection.mode === "compact" && options.compact === true;
|
|
687
|
+
if (compactSummaryMode) {
|
|
688
|
+
const compactFilters = buildCompactSearchFilterSummary({
|
|
689
|
+
mode,
|
|
690
|
+
options,
|
|
691
|
+
includeLinked,
|
|
692
|
+
titleExact: options.titleExact === true,
|
|
693
|
+
phraseExact: options.phraseExact === true,
|
|
694
|
+
scoreThreshold,
|
|
695
|
+
hybridSemanticWeight,
|
|
696
|
+
runtimeFieldFilters,
|
|
697
|
+
});
|
|
698
|
+
return {
|
|
699
|
+
query: query.trim(),
|
|
700
|
+
mode,
|
|
701
|
+
items: [],
|
|
702
|
+
count: 0,
|
|
703
|
+
filters: compactFilters,
|
|
704
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
705
|
+
};
|
|
706
|
+
}
|
|
635
707
|
const projectionFields = projection.mode === "full" ? null : [...projection.fields];
|
|
636
708
|
return {
|
|
637
709
|
query: query.trim(),
|
|
@@ -651,6 +723,11 @@ function emptySearchResult(query, mode, options, includeLinked, scoreThreshold,
|
|
|
651
723
|
phrase_exact: options.phraseExact === true,
|
|
652
724
|
score_threshold: scoreThreshold,
|
|
653
725
|
hybrid_semantic_weight: mode === "hybrid" ? hybridSemanticWeight : null,
|
|
726
|
+
query_expansion_enabled: queryExpansion.enabled,
|
|
727
|
+
query_expansion_provider: queryExpansion.provider,
|
|
728
|
+
rerank_enabled: rerank.enabled,
|
|
729
|
+
rerank_model: rerank.model,
|
|
730
|
+
rerank_top_k: rerank.top_k,
|
|
654
731
|
limit: options.limit ?? null,
|
|
655
732
|
},
|
|
656
733
|
projection: {
|
|
@@ -674,27 +751,45 @@ function requireSemanticDependencies(requestedMode, providerResolution, vectorRe
|
|
|
674
751
|
};
|
|
675
752
|
}
|
|
676
753
|
const toOptionalNonEmptyString = toNonEmptyStringOrUndefined;
|
|
677
|
-
function
|
|
754
|
+
function resolveExtensionSearchProviderByName(providerName) {
|
|
678
755
|
const registrations = getActiveExtensionRegistrations();
|
|
679
|
-
const providerName = toOptionalNonEmptyString(settings.search?.provider);
|
|
680
756
|
const resolved = resolveRegisteredSearchProvider(registrations, providerName);
|
|
681
757
|
if (!resolved) {
|
|
682
758
|
return null;
|
|
683
759
|
}
|
|
684
760
|
const runtimeDefinition = resolved.runtime_definition ?? resolved.definition;
|
|
685
761
|
const query = runtimeDefinition.query;
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
762
|
+
const queryExpansion = runtimeDefinition.queryExpansion ??
|
|
763
|
+
runtimeDefinition.query_expansion;
|
|
764
|
+
const rerank = runtimeDefinition.rerank;
|
|
689
765
|
const registeredName = toOptionalNonEmptyString(runtimeDefinition.name) ??
|
|
690
766
|
toOptionalNonEmptyString(resolved.definition.name) ??
|
|
691
767
|
providerName;
|
|
692
768
|
if (!registeredName) {
|
|
693
769
|
return null;
|
|
694
770
|
}
|
|
695
|
-
|
|
771
|
+
const hooks = {
|
|
696
772
|
providerName: registeredName,
|
|
697
|
-
query: query,
|
|
773
|
+
...(typeof query === "function" ? { query: query } : {}),
|
|
774
|
+
...(typeof queryExpansion === "function"
|
|
775
|
+
? { queryExpansion: queryExpansion }
|
|
776
|
+
: {}),
|
|
777
|
+
...(typeof rerank === "function" ? { rerank: rerank } : {}),
|
|
778
|
+
};
|
|
779
|
+
if (!hooks.query && !hooks.queryExpansion && !hooks.rerank) {
|
|
780
|
+
return null;
|
|
781
|
+
}
|
|
782
|
+
return hooks;
|
|
783
|
+
}
|
|
784
|
+
function resolveExtensionSearchProvider(settings) {
|
|
785
|
+
const providerName = toOptionalNonEmptyString(settings.search?.provider);
|
|
786
|
+
const resolved = resolveExtensionSearchProviderByName(providerName);
|
|
787
|
+
if (!resolved?.query) {
|
|
788
|
+
return null;
|
|
789
|
+
}
|
|
790
|
+
return {
|
|
791
|
+
providerName: resolved.providerName,
|
|
792
|
+
query: resolved.query,
|
|
698
793
|
};
|
|
699
794
|
}
|
|
700
795
|
function resolveExtensionVectorAdapter(settings) {
|
|
@@ -802,42 +897,187 @@ function combineHybridHits(filteredById, semanticScores, keywordHits, hybridSema
|
|
|
802
897
|
})
|
|
803
898
|
.filter((entry) => entry !== null);
|
|
804
899
|
}
|
|
900
|
+
function mergeVectorHitsById(vectorHitGroups) {
|
|
901
|
+
const bestById = new Map();
|
|
902
|
+
for (const group of vectorHitGroups) {
|
|
903
|
+
for (const hit of group) {
|
|
904
|
+
const existing = bestById.get(hit.id);
|
|
905
|
+
if (!existing || hit.score > existing.score) {
|
|
906
|
+
bestById.set(hit.id, hit);
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
const merged = [...bestById.values()];
|
|
911
|
+
merged.sort((left, right) => {
|
|
912
|
+
if (left.score !== right.score) {
|
|
913
|
+
return right.score - left.score;
|
|
914
|
+
}
|
|
915
|
+
return left.id.localeCompare(right.id);
|
|
916
|
+
});
|
|
917
|
+
return merged;
|
|
918
|
+
}
|
|
919
|
+
function buildRerankCorpus(document) {
|
|
920
|
+
const metadata = document.metadata;
|
|
921
|
+
const tags = Array.isArray(metadata?.tags) ? metadata.tags.join(" ") : "";
|
|
922
|
+
return [
|
|
923
|
+
metadata?.title,
|
|
924
|
+
metadata?.description,
|
|
925
|
+
metadata?.type,
|
|
926
|
+
metadata?.status,
|
|
927
|
+
tags,
|
|
928
|
+
document.body,
|
|
929
|
+
]
|
|
930
|
+
.map((entry) => (typeof entry === "string" ? entry.trim() : ""))
|
|
931
|
+
.filter((entry) => entry.length > 0)
|
|
932
|
+
.join("\n");
|
|
933
|
+
}
|
|
805
934
|
async function computeSemanticOrHybridHits(context) {
|
|
806
935
|
const semanticLimit = context.limit ?? context.maxResults;
|
|
807
936
|
const embeddingOptions = context.embeddingTimeoutMs !== undefined ? { timeout_ms: context.embeddingTimeoutMs } : {};
|
|
808
937
|
const vectorQueryOptions = context.vectorQueryTimeoutMs !== undefined ? { timeout_ms: context.vectorQueryTimeoutMs } : {};
|
|
809
|
-
const
|
|
810
|
-
const
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
938
|
+
const queryTrimmed = context.query.trim();
|
|
939
|
+
const baseExpandedQueries = context.queryExpansion.enabled
|
|
940
|
+
? buildDeterministicQueryExpansions(queryTrimmed, context.queryExpansion.max_queries)
|
|
941
|
+
: [queryTrimmed];
|
|
942
|
+
let expandedQueries = baseExpandedQueries.length > 0 ? baseExpandedQueries : [queryTrimmed];
|
|
943
|
+
if (context.queryExpansion.enabled) {
|
|
944
|
+
if (context.queryExpansionExtension?.expand) {
|
|
945
|
+
try {
|
|
946
|
+
const rawExpansion = await Promise.resolve(context.queryExpansionExtension.expand({
|
|
947
|
+
query: queryTrimmed,
|
|
948
|
+
mode: context.requestedMode,
|
|
949
|
+
settings: context.settings,
|
|
950
|
+
}));
|
|
951
|
+
const extensionExpansion = normalizeQueryExpansionOutput(rawExpansion);
|
|
952
|
+
expandedQueries = mergeQueryExpansions(expandedQueries, extensionExpansion, context.queryExpansion.max_queries);
|
|
953
|
+
}
|
|
954
|
+
catch {
|
|
955
|
+
context.warnings.push(`search_query_expansion_provider_failed:${context.queryExpansionExtension.providerName}:using_builtin`);
|
|
823
956
|
}
|
|
824
|
-
|
|
957
|
+
}
|
|
958
|
+
else if (context.queryExpansion.provider &&
|
|
959
|
+
context.queryExpansion.provider !== "openai" &&
|
|
960
|
+
context.queryExpansion.provider !== "ollama") {
|
|
961
|
+
context.warnings.push(`search_query_expansion_provider_unavailable:${context.queryExpansion.provider}:using_builtin`);
|
|
825
962
|
}
|
|
826
963
|
}
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
964
|
+
const queryVectors = await executeEmbeddingRequest(context.provider, expandedQueries, embeddingOptions);
|
|
965
|
+
const executeVectorQueryWithFallback = async (semanticVector) => {
|
|
966
|
+
if (context.extensionVectorAdapter?.query) {
|
|
967
|
+
try {
|
|
968
|
+
return await Promise.resolve(context.extensionVectorAdapter.query({
|
|
969
|
+
vector: semanticVector,
|
|
970
|
+
limit: semanticLimit,
|
|
971
|
+
settings: context.settings,
|
|
972
|
+
}));
|
|
973
|
+
}
|
|
974
|
+
catch (error) {
|
|
975
|
+
if (!context.vectorStore) {
|
|
976
|
+
throw new PmCliError(`Extension vector adapter query failed and no built-in fallback store is configured (${error instanceof Error ? error.message : String(error)})`, EXIT_CODE.GENERIC_FAILURE);
|
|
977
|
+
}
|
|
978
|
+
return await executeVectorQuery(context.vectorStore, semanticVector, semanticLimit, vectorQueryOptions);
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
if (context.vectorStore) {
|
|
982
|
+
return await executeVectorQuery(context.vectorStore, semanticVector, semanticLimit, vectorQueryOptions);
|
|
983
|
+
}
|
|
831
984
|
throw new PmCliError("Semantic search requires either a configured vector store or an extension vector adapter query handler", EXIT_CODE.USAGE);
|
|
832
|
-
}
|
|
985
|
+
};
|
|
986
|
+
const queryVectorGroups = await Promise.all(queryVectors.map(async (semanticVector) => await executeVectorQueryWithFallback(semanticVector)));
|
|
987
|
+
const vectorHits = mergeVectorHitsById(queryVectorGroups);
|
|
833
988
|
const filteredById = new Map(context.filteredDocuments.map((document) => [document.metadata.id, document]));
|
|
834
989
|
const { semanticHits, semanticScores } = buildSemanticHits(vectorHits, filteredById);
|
|
835
990
|
const vectorMatchCount = semanticScores.size;
|
|
836
991
|
if (context.requestedMode === "semantic") {
|
|
837
992
|
return { hits: semanticHits, vectorMatchCount };
|
|
838
993
|
}
|
|
994
|
+
let hybridHits = combineHybridHits(filteredById, semanticScores, context.keywordHits, context.hybridSemanticWeight);
|
|
995
|
+
if (context.rerank.enabled && hybridHits.length > 1) {
|
|
996
|
+
const sortedForCandidates = [...hybridHits].sort((left, right) => {
|
|
997
|
+
if (left.score !== right.score) {
|
|
998
|
+
return right.score - left.score;
|
|
999
|
+
}
|
|
1000
|
+
return left.item.id.localeCompare(right.item.id);
|
|
1001
|
+
});
|
|
1002
|
+
const candidateHits = sortedForCandidates.slice(0, context.rerank.top_k);
|
|
1003
|
+
const candidateContexts = candidateHits
|
|
1004
|
+
.map((hit) => {
|
|
1005
|
+
const document = filteredById.get(hit.item.id);
|
|
1006
|
+
if (!document) {
|
|
1007
|
+
return null;
|
|
1008
|
+
}
|
|
1009
|
+
return { hit, text: buildRerankCorpus(document) };
|
|
1010
|
+
})
|
|
1011
|
+
.filter((entry) => entry !== null);
|
|
1012
|
+
const rerankCandidates = candidateContexts.map((entry) => ({
|
|
1013
|
+
id: entry.hit.item.id,
|
|
1014
|
+
text: entry.text,
|
|
1015
|
+
}));
|
|
1016
|
+
let rerankScores = null;
|
|
1017
|
+
if (context.rerankExtension?.rerank) {
|
|
1018
|
+
try {
|
|
1019
|
+
const rawRerank = await Promise.resolve(context.rerankExtension.rerank({
|
|
1020
|
+
query: queryTrimmed,
|
|
1021
|
+
mode: "hybrid",
|
|
1022
|
+
model: context.rerank.model,
|
|
1023
|
+
top_k: context.rerank.top_k,
|
|
1024
|
+
settings: context.settings,
|
|
1025
|
+
candidates: candidateContexts.map((entry) => ({
|
|
1026
|
+
id: entry.hit.item.id,
|
|
1027
|
+
text: entry.text,
|
|
1028
|
+
score: entry.hit.score,
|
|
1029
|
+
})),
|
|
1030
|
+
}));
|
|
1031
|
+
const normalizedRerank = normalizeRerankOutput(rawRerank);
|
|
1032
|
+
if (normalizedRerank.length > 0) {
|
|
1033
|
+
rerankScores = new Map(normalizedRerank.map((entry) => [entry.id, entry.score]));
|
|
1034
|
+
}
|
|
1035
|
+
else {
|
|
1036
|
+
context.warnings.push(`search_rerank_provider_invalid_response:${context.rerankExtension.providerName}:using_builtin`);
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
catch {
|
|
1040
|
+
context.warnings.push(`search_rerank_provider_failed:${context.rerankExtension.providerName}:using_builtin`);
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
if (!rerankScores) {
|
|
1044
|
+
try {
|
|
1045
|
+
rerankScores = await rerankCandidatesWithEmbeddings(context.provider, context.rerank.model, queryTrimmed, rerankCandidates, context.embeddingTimeoutMs);
|
|
1046
|
+
}
|
|
1047
|
+
catch {
|
|
1048
|
+
context.warnings.push("search_rerank_failed:using_hybrid_scores");
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
if (rerankScores && rerankScores.size > 0) {
|
|
1052
|
+
const rerankedIds = new Set(rerankScores.keys());
|
|
1053
|
+
hybridHits = hybridHits.map((hit) => {
|
|
1054
|
+
const rerankScore = rerankScores.get(hit.item.id);
|
|
1055
|
+
if (rerankScore === undefined) {
|
|
1056
|
+
return hit;
|
|
1057
|
+
}
|
|
1058
|
+
const matchedFields = new Set(hit.matched_fields);
|
|
1059
|
+
matchedFields.add("rerank");
|
|
1060
|
+
return {
|
|
1061
|
+
...hit,
|
|
1062
|
+
score: rerankScore,
|
|
1063
|
+
matched_fields: [...matchedFields].sort((left, right) => left.localeCompare(right)),
|
|
1064
|
+
};
|
|
1065
|
+
});
|
|
1066
|
+
hybridHits.sort((left, right) => {
|
|
1067
|
+
const leftWasReranked = rerankedIds.has(left.item.id);
|
|
1068
|
+
const rightWasReranked = rerankedIds.has(right.item.id);
|
|
1069
|
+
if (leftWasReranked !== rightWasReranked) {
|
|
1070
|
+
return leftWasReranked ? -1 : 1;
|
|
1071
|
+
}
|
|
1072
|
+
if (left.score !== right.score) {
|
|
1073
|
+
return right.score - left.score;
|
|
1074
|
+
}
|
|
1075
|
+
return left.item.id.localeCompare(right.item.id);
|
|
1076
|
+
});
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
839
1079
|
return {
|
|
840
|
-
hits:
|
|
1080
|
+
hits: hybridHits,
|
|
841
1081
|
vectorMatchCount,
|
|
842
1082
|
};
|
|
843
1083
|
}
|
|
@@ -973,18 +1213,33 @@ export async function runSearch(query, options, global) {
|
|
|
973
1213
|
const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
|
|
974
1214
|
const maxResults = resolveSearchMaxResults(settings);
|
|
975
1215
|
const scoreThreshold = resolveSearchScoreThreshold(settings);
|
|
976
|
-
const
|
|
1216
|
+
const semanticWeightProvided = options.semanticWeight !== undefined;
|
|
1217
|
+
const semanticWeightOverride = parseSemanticWeightOverride(options.semanticWeight);
|
|
1218
|
+
const hybridSemanticWeight = semanticWeightOverride ?? resolveHybridSemanticWeight(settings);
|
|
977
1219
|
const tuning = resolveSearchTuning(settings);
|
|
978
1220
|
const providerResolution = resolveEmbeddingProviders(settings);
|
|
979
1221
|
const vectorResolution = resolveVectorStores(settings);
|
|
980
1222
|
const extensionSearchProvider = resolveExtensionSearchProvider(settings);
|
|
981
1223
|
const extensionVectorAdapter = resolveExtensionVectorAdapter(settings);
|
|
1224
|
+
const queryExpansion = resolveQueryExpansionConfig(settings, providerResolution.active?.name ?? null);
|
|
1225
|
+
const rerank = resolveRerankConfig(settings, providerResolution.active?.model ?? toOptionalNonEmptyString(settings.search?.embedding_model) ?? "text-embedding-3-small");
|
|
1226
|
+
const queryExpansionProvider = resolveExtensionSearchProviderByName(queryExpansion.provider ?? undefined);
|
|
1227
|
+
const queryExpansionExtension = queryExpansionProvider?.queryExpansion
|
|
1228
|
+
? { providerName: queryExpansionProvider.providerName, expand: queryExpansionProvider.queryExpansion }
|
|
1229
|
+
: null;
|
|
1230
|
+
const rerankProvider = resolveExtensionSearchProviderByName(toOptionalNonEmptyString(settings.search?.provider));
|
|
1231
|
+
const rerankExtension = rerankProvider?.rerank
|
|
1232
|
+
? { providerName: rerankProvider.providerName, rerank: rerankProvider.rerank }
|
|
1233
|
+
: null;
|
|
982
1234
|
let effectiveMode = parseMode(options.mode, {
|
|
983
1235
|
hasProvider: providerResolution.active !== null || extensionSearchProvider !== null,
|
|
984
1236
|
hasVectorStore: vectorResolution.active !== null || extensionVectorAdapter !== null,
|
|
985
1237
|
});
|
|
986
1238
|
const loadedDocuments = await loadDocuments(pmRoot, settings.item_format ?? "toon", typeRegistry.type_to_folder, settings.schema);
|
|
987
1239
|
const warnings = loadedDocuments.warnings;
|
|
1240
|
+
if (effectiveMode === "hybrid" && semanticWeightProvided && semanticWeightOverride === undefined) {
|
|
1241
|
+
warnings.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");
|
|
1242
|
+
}
|
|
988
1243
|
const allDocuments = loadedDocuments.documents;
|
|
989
1244
|
const metadataFilteredDocuments = applyFilters(allDocuments, options, typeRegistry, runtimeFieldFilters, statusFilter);
|
|
990
1245
|
const filteredDocuments = applyExactQueryFilters(metadataFilteredDocuments, normalizedQuery, {
|
|
@@ -992,7 +1247,7 @@ export async function runSearch(query, options, global) {
|
|
|
992
1247
|
phraseExact,
|
|
993
1248
|
});
|
|
994
1249
|
if (effectiveMode === "keyword" && (filteredDocuments.length === 0 || limit === 0)) {
|
|
995
|
-
return emptySearchResult(query, effectiveMode, options, includeLinked, scoreThreshold, hybridSemanticWeight, projection, warnings);
|
|
1250
|
+
return emptySearchResult(query, effectiveMode, options, includeLinked, scoreThreshold, hybridSemanticWeight, queryExpansion, rerank, projection, warnings, runtimeFieldFilters);
|
|
996
1251
|
}
|
|
997
1252
|
const projectRoot = process.cwd();
|
|
998
1253
|
const globalRoot = resolveGlobalPmRoot(projectRoot);
|
|
@@ -1028,7 +1283,7 @@ export async function runSearch(query, options, global) {
|
|
|
1028
1283
|
requireSemanticDependencies(effectiveMode, providerResolution, vectorResolution, extensionVectorAdapter !== null);
|
|
1029
1284
|
}
|
|
1030
1285
|
if (filteredDocuments.length === 0 || limit === 0) {
|
|
1031
|
-
return emptySearchResult(query, effectiveMode, options, includeLinked, scoreThreshold, hybridSemanticWeight, projection, warnings);
|
|
1286
|
+
return emptySearchResult(query, effectiveMode, options, includeLinked, scoreThreshold, hybridSemanticWeight, queryExpansion, rerank, projection, warnings, runtimeFieldFilters);
|
|
1032
1287
|
}
|
|
1033
1288
|
const filteredById = new Map(filteredDocuments.map((document) => [document.metadata.id, document]));
|
|
1034
1289
|
const canUseBuiltInSemantic = providerResolution.active !== null && (vectorResolution.active !== null || extensionVectorAdapter !== null);
|
|
@@ -1064,6 +1319,11 @@ export async function runSearch(query, options, global) {
|
|
|
1064
1319
|
provider,
|
|
1065
1320
|
vectorStore,
|
|
1066
1321
|
extensionVectorAdapter,
|
|
1322
|
+
queryExpansion,
|
|
1323
|
+
queryExpansionExtension,
|
|
1324
|
+
rerank,
|
|
1325
|
+
rerankExtension,
|
|
1326
|
+
warnings,
|
|
1067
1327
|
settings,
|
|
1068
1328
|
...(implicitHybridMode
|
|
1069
1329
|
? {
|
|
@@ -1106,6 +1366,27 @@ export async function runSearch(query, options, global) {
|
|
|
1106
1366
|
const limited = resolvedLimit === undefined ? sorted : sorted.slice(0, resolvedLimit);
|
|
1107
1367
|
const projectedItems = projectSearchHits(limited, projection);
|
|
1108
1368
|
const projectionFields = projection.mode === "full" ? null : [...projection.fields];
|
|
1369
|
+
const compactSummaryMode = projection.mode === "compact" && options.compact === true;
|
|
1370
|
+
if (compactSummaryMode) {
|
|
1371
|
+
const compactFilters = buildCompactSearchFilterSummary({
|
|
1372
|
+
mode: effectiveMode,
|
|
1373
|
+
options,
|
|
1374
|
+
includeLinked,
|
|
1375
|
+
titleExact,
|
|
1376
|
+
phraseExact,
|
|
1377
|
+
scoreThreshold,
|
|
1378
|
+
hybridSemanticWeight,
|
|
1379
|
+
runtimeFieldFilters,
|
|
1380
|
+
});
|
|
1381
|
+
return {
|
|
1382
|
+
query: query.trim(),
|
|
1383
|
+
mode: effectiveMode,
|
|
1384
|
+
items: projectedItems,
|
|
1385
|
+
count: projectedItems.length,
|
|
1386
|
+
filters: compactFilters,
|
|
1387
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
1388
|
+
};
|
|
1389
|
+
}
|
|
1109
1390
|
return {
|
|
1110
1391
|
query: query.trim(),
|
|
1111
1392
|
mode: effectiveMode,
|
|
@@ -1124,6 +1405,11 @@ export async function runSearch(query, options, global) {
|
|
|
1124
1405
|
phrase_exact: phraseExact,
|
|
1125
1406
|
score_threshold: scoreThreshold,
|
|
1126
1407
|
hybrid_semantic_weight: effectiveMode === "hybrid" ? hybridSemanticWeight : null,
|
|
1408
|
+
query_expansion_enabled: queryExpansion.enabled,
|
|
1409
|
+
query_expansion_provider: queryExpansion.provider,
|
|
1410
|
+
rerank_enabled: rerank.enabled,
|
|
1411
|
+
rerank_model: rerank.model,
|
|
1412
|
+
rerank_top_k: rerank.top_k,
|
|
1127
1413
|
limit: options.limit ?? null,
|
|
1128
1414
|
runtime_filters: runtimeFieldFilters,
|
|
1129
1415
|
},
|
|
@@ -1136,4 +1422,4 @@ export async function runSearch(query, options, global) {
|
|
|
1136
1422
|
};
|
|
1137
1423
|
}
|
|
1138
1424
|
//# sourceMappingURL=search.js.map
|
|
1139
|
-
//# debugId=
|
|
1425
|
+
//# debugId=11e9f6b5-58d0-5f17-a9c5-6d34b5ce4379
|