@unbrained/pm-cli 2026.7.1 → 2026.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/cli/commander-usage.d.ts +2 -0
- package/dist/cli/commander-usage.js +58 -47
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/aggregate.js +102 -79
- package/dist/cli/commands/aggregate.js.map +1 -1
- package/dist/cli/commands/calendar.js +278 -243
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/close-many.js +89 -68
- package/dist/cli/commands/close-many.js.map +1 -1
- package/dist/cli/commands/close.js +157 -129
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/comments-audit.js +50 -42
- package/dist/cli/commands/comments-audit.js.map +1 -1
- package/dist/cli/commands/config.d.ts +2 -0
- package/dist/cli/commands/config.js +443 -879
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/context.js +365 -287
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/contracts.js +352 -238
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/dedupe-audit.js +46 -39
- package/dist/cli/commands/dedupe-audit.js.map +1 -1
- package/dist/cli/commands/dedupe-merge.js +88 -69
- package/dist/cli/commands/dedupe-merge.js.map +1 -1
- package/dist/cli/commands/get.js +114 -81
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/health.d.ts +17 -0
- package/dist/cli/commands/health.js +446 -307
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history-compact.js +209 -140
- package/dist/cli/commands/history-compact.js.map +1 -1
- package/dist/cli/commands/history-redact.js +162 -119
- package/dist/cli/commands/history-redact.js.map +1 -1
- package/dist/cli/commands/history-repair.js +120 -85
- package/dist/cli/commands/history-repair.js.map +1 -1
- package/dist/cli/commands/init.d.ts +8 -2
- package/dist/cli/commands/init.js +263 -162
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/list.js +152 -102
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/next.js +49 -32
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/plan.js +373 -298
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/recurrence-parsers.js +43 -25
- package/dist/cli/commands/recurrence-parsers.js.map +1 -1
- package/dist/cli/commands/reindex.d.ts +21 -5
- package/dist/cli/commands/reindex.js +345 -205
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/restore.d.ts +8 -7
- package/dist/cli/commands/restore.js +105 -69
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/schema.js +33 -30
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/search.d.ts +10 -2
- package/dist/cli/commands/search.js +503 -470
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/telemetry.js +98 -87
- package/dist/cli/commands/telemetry.js.map +1 -1
- package/dist/cli/commands/test-all.js +237 -168
- package/dist/cli/commands/test-all.js.map +1 -1
- package/dist/cli/commands/test.d.ts +6 -5
- package/dist/cli/commands/test.js +424 -344
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update-many.js +57 -42
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/commands/update.d.ts +1 -1
- package/dist/cli/commands/update.js +738 -671
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +18 -1
- package/dist/cli/commands/validate.js +466 -343
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/error-guidance.js +399 -357
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/main.d.ts +47 -0
- package/dist/cli/main.js +428 -341
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/migration-gates.js +22 -45
- package/dist/cli/migration-gates.js.map +1 -1
- package/dist/cli/register-list-query.js +94 -105
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +400 -416
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +86 -66
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/register-setup.js +120 -101
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli-bundle/chunks/{activity-DBLQVIP6.js → activity-CUC4JY3U.js} +9 -9
- package/dist/cli-bundle/chunks/activity-WEIEMM73.js +16 -0
- package/dist/cli-bundle/chunks/{aggregate-JTEF4BP7.js → aggregate-DKUTRY6R.js} +108 -84
- package/dist/cli-bundle/chunks/aggregate-DKUTRY6R.js.map +1 -0
- package/dist/cli-bundle/chunks/{aggregate-SDF7DUOD.js → aggregate-SW5PNGCS.js} +107 -83
- package/dist/cli-bundle/chunks/{aggregate-SDF7DUOD.js.map → aggregate-SW5PNGCS.js.map} +2 -2
- package/dist/cli-bundle/chunks/{append-QCFJSDFL.js → append-H32VOR2Y.js} +6 -6
- package/dist/cli-bundle/chunks/{append-LOVPGVPT.js → append-UBM632FK.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-RLDHZHQS.js → chunk-2227673O.js} +158 -114
- package/dist/cli-bundle/chunks/chunk-2227673O.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SLMUGTK3.js → chunk-2ASNV4DH.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UZIWVBE6.js → chunk-2CHRYUXL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NWMZWYYB.js → chunk-2KWL5NPW.js} +42 -27
- package/dist/cli-bundle/chunks/chunk-2KWL5NPW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NFDPYAIP.js → chunk-36UGKF4O.js} +21 -29
- package/dist/cli-bundle/chunks/chunk-36UGKF4O.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NU2UEROZ.js → chunk-3AZUFQK6.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-LB6TP6MC.js → chunk-3LCUASYG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HPPFYYOV.js → chunk-3Q2HBMTI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-IPYBJWTE.js → chunk-4NUOWFBT.js} +109 -72
- package/dist/cli-bundle/chunks/chunk-4NUOWFBT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-W4ULYO7Z.js → chunk-55XRYWEG.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-HXTQJXWT.js → chunk-5GVTFFTC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BDTISOSD.js → chunk-5PGBHRY3.js} +41 -26
- package/dist/cli-bundle/chunks/chunk-5PGBHRY3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YITK2PJ6.js → chunk-66Z3X7ZG.js} +261 -161
- package/dist/cli-bundle/chunks/chunk-66Z3X7ZG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NUHHPVVS.js → chunk-6ITZLD4T.js} +712 -612
- package/dist/cli-bundle/chunks/chunk-6ITZLD4T.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-V3NOKJF2.js → chunk-6YCYF2AI.js} +262 -162
- package/dist/cli-bundle/chunks/chunk-6YCYF2AI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BZCEN4JA.js → chunk-6ZMBJRDJ.js} +492 -403
- package/dist/cli-bundle/chunks/chunk-6ZMBJRDJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CF7RL6FR.js → chunk-7MYWF4ZX.js} +110 -73
- package/dist/cli-bundle/chunks/chunk-7MYWF4ZX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RVUALSJF.js → chunk-7NSPKJUS.js} +356 -285
- package/dist/cli-bundle/chunks/chunk-7NSPKJUS.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4DSGXSBL.js → chunk-7TH5NMVB.js} +95 -53
- package/dist/cli-bundle/chunks/chunk-7TH5NMVB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ZETXE4SE.js → chunk-7W4H4K26.js} +713 -613
- package/dist/cli-bundle/chunks/chunk-7W4H4K26.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-64HNBBFQ.js → chunk-A6VOGKBA.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-WYDHYJPO.js → chunk-AIAIXG7I.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CWFNTKQJ.js → chunk-AJEBCRIY.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js → chunk-B4O5S7I3.js} +79 -57
- package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js.map → chunk-B4O5S7I3.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NOLPZMSV.js → chunk-BTX5MIQF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RH5ZBYFD.js → chunk-BVZZN2LH.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-27BXPBAY.js → chunk-CYBDUHNO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-A7FPBAQS.js → chunk-CZPVDLD2.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3VGN2UWE.js → chunk-EMPGXBUF.js} +22 -30
- package/dist/cli-bundle/chunks/chunk-EMPGXBUF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JPECA746.js → chunk-EUKTMRN3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2466X6E4.js → chunk-FFOQHGNH.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-JLM7BHI7.js → chunk-GFMSLORL.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-SDR5J34Q.js → chunk-GRRG3MCT.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-GJ326ZKX.js → chunk-H4GRLYJS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OGXLACHC.js → chunk-HQTPRV4D.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-7R4QEMZZ.js → chunk-I66WE2HE.js} +354 -283
- package/dist/cli-bundle/chunks/chunk-I66WE2HE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BHO33VBQ.js → chunk-IEEJQCZ4.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-JMP4E6D7.js → chunk-IG5JYZGU.js} +390 -312
- package/dist/cli-bundle/chunks/{chunk-JMP4E6D7.js.map → chunk-IG5JYZGU.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4DUVCVLZ.js → chunk-JMK5GCK2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3K2M5OYU.js → chunk-JXAUVO6X.js} +258 -169
- package/dist/cli-bundle/chunks/{chunk-3K2M5OYU.js.map → chunk-JXAUVO6X.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AXIDKKAT.js → chunk-K2VYLVX4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EJUDVUYZ.js → chunk-KCO2EAN5.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-6AQZPVHQ.js → chunk-KIYCOJ63.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-ZRP4VG5U.js → chunk-KLXF7NCC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QCWF6IYD.js → chunk-KN3URLKS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-N74UMG5H.js → chunk-LRKMWUUV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AVEE5EHK.js → chunk-LTRAF2D7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VARHOHYV.js → chunk-MNBPX5JS.js} +55 -36
- package/dist/cli-bundle/chunks/chunk-MNBPX5JS.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-IJYK2T43.js → chunk-MRD4T5LF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-G7I7DEZA.js → chunk-N2JSWVWG.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5QFDBI4F.js → chunk-N3QCJS4M.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-JSU5P7VS.js → chunk-NRZS637N.js} +258 -169
- package/dist/cli-bundle/chunks/chunk-NRZS637N.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4A3BJ675.js → chunk-OTUJZKGI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5CGRF3L5.js → chunk-Q6K2OACU.js} +153 -90
- package/dist/cli-bundle/chunks/chunk-Q6K2OACU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-3XZCOZ5J.js → chunk-Q6NXOHS6.js} +391 -313
- package/dist/cli-bundle/chunks/chunk-Q6NXOHS6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HZZEHPRG.js → chunk-QH3FSKRJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4XOIEKSD.js → chunk-RM37OPYK.js} +56 -37
- package/dist/cli-bundle/chunks/chunk-RM37OPYK.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NKZAN7BD.js → chunk-S62UANU7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-RMMQ74TG.js → chunk-SPM2XLWI.js} +37 -28
- package/dist/cli-bundle/chunks/chunk-SPM2XLWI.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3J6JRJ3I.js → chunk-SYNKD3ZG.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-FFMQB7WR.js → chunk-SYVUU7EK.js} +493 -404
- package/dist/cli-bundle/chunks/chunk-SYVUU7EK.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UYUYDGIB.js → chunk-TPOFWBMY.js} +95 -53
- package/dist/cli-bundle/chunks/chunk-TPOFWBMY.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OTUHB4HS.js → chunk-TTHCEV5Q.js} +92 -77
- package/dist/cli-bundle/chunks/chunk-TTHCEV5Q.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-L5OEFZQG.js → chunk-U2BEEM2X.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KNPEF7QG.js → chunk-UGLU6Q2I.js} +91 -76
- package/dist/cli-bundle/chunks/chunk-UGLU6Q2I.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-EVMTBV6V.js → chunk-UT73HUPC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VICZWYGZ.js → chunk-UTSH5GWX.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-IZBR4NRW.js → chunk-UWKEJMZU.js} +157 -113
- package/dist/cli-bundle/chunks/chunk-UWKEJMZU.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3S2KT7NG.js → chunk-W47SML5B.js} +152 -89
- package/dist/cli-bundle/chunks/chunk-W47SML5B.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RGEMWD6Q.js → chunk-WJAMWAHZ.js} +157 -118
- package/dist/cli-bundle/chunks/chunk-WJAMWAHZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-JWXRETDF.js → chunk-XCHUVHKU.js} +626 -484
- package/dist/cli-bundle/chunks/chunk-XCHUVHKU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-55SNVXRQ.js → chunk-XEWQKDYZ.js} +626 -484
- package/dist/cli-bundle/chunks/chunk-XEWQKDYZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TP5Q5ZD3.js → chunk-XTHQWXVC.js} +158 -119
- package/dist/cli-bundle/chunks/chunk-XTHQWXVC.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-MDPEOIGN.js → chunk-XWGEMNBR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HYTGA6GI.js → chunk-Y4NRKBFW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2D4HATP2.js → chunk-YLZZ6T54.js} +38 -29
- package/dist/cli-bundle/chunks/chunk-YLZZ6T54.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-22WKIL3H.js → chunk-YPKFV2JR.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js → chunk-Z4DGFQDH.js} +80 -58
- package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js.map → chunk-Z4DGFQDH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-DDPTYJIM.js → chunk-ZNHEYCDD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MAUKX7JC.js → chunk-ZNT7KEWE.js} +2 -2
- package/dist/cli-bundle/chunks/{claim-T3GCKV7C.js → claim-SENTPZBN.js} +8 -8
- package/dist/cli-bundle/chunks/{claim-EMQLYPRW.js → claim-Z7MEQCBT.js} +8 -8
- package/dist/cli-bundle/chunks/{close-TQYAAFJP.js → close-424MX4CU.js} +7 -7
- package/dist/cli-bundle/chunks/close-YCWQQPDS.js +14 -0
- package/dist/cli-bundle/chunks/{close-many-LDRVEQY2.js → close-many-2IV4J2TR.js} +102 -81
- package/dist/cli-bundle/chunks/close-many-2IV4J2TR.js.map +1 -0
- package/dist/cli-bundle/chunks/{close-many-BG5QQIDQ.js → close-many-SWY34BII.js} +101 -80
- package/dist/cli-bundle/chunks/close-many-SWY34BII.js.map +7 -0
- package/dist/cli-bundle/chunks/{comments-YUXJRZPQ.js → comments-4FGNTSNV.js} +8 -8
- package/dist/cli-bundle/chunks/{comments-QCKR2YY2.js → comments-7YS5MY5X.js} +8 -8
- package/dist/cli-bundle/chunks/config-BZJKK7FZ.js +1062 -0
- package/dist/cli-bundle/chunks/config-BZJKK7FZ.js.map +1 -0
- package/dist/cli-bundle/chunks/config-G74GISC4.js +1072 -0
- package/dist/cli-bundle/chunks/config-G74GISC4.js.map +7 -0
- package/dist/cli-bundle/chunks/{context-OCZ3FJ4Z.js → context-LHVKJSPJ.js} +12 -12
- package/dist/cli-bundle/chunks/{context-B6275WPX.js → context-ZQY54JNS.js} +12 -12
- package/dist/cli-bundle/chunks/{contracts-HN7ABKLP.js → contracts-CP2EZJC7.js} +320 -199
- package/dist/cli-bundle/chunks/contracts-CP2EZJC7.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-W4FZVVD6.js → contracts-FIZLMP7O.js} +321 -200
- package/dist/cli-bundle/chunks/contracts-FIZLMP7O.js.map +1 -0
- package/dist/cli-bundle/chunks/{copy-DEM4DATS.js → copy-GYNQQPW2.js} +5 -5
- package/dist/cli-bundle/chunks/{copy-BTJOSKKT.js → copy-TLW7JTQT.js} +5 -5
- package/dist/cli-bundle/chunks/{create-RLRJMRTM.js → create-VSKYSOCD.js} +12 -12
- package/dist/cli-bundle/chunks/create-XTMAPS7I.js +28 -0
- package/dist/cli-bundle/chunks/{delete-LSVHAB4Y.js → delete-4W5JYCEG.js} +5 -5
- package/dist/cli-bundle/chunks/{delete-BHK7VB2Z.js → delete-ANTOTI2I.js} +5 -5
- package/dist/cli-bundle/chunks/{deps-XHYXWEPT.js → deps-HPPE6MJN.js} +5 -5
- package/dist/cli-bundle/chunks/{deps-4UDFJRUA.js → deps-ZQZN54EZ.js} +5 -5
- package/dist/cli-bundle/chunks/{docs-GYZNVS26.js → docs-RPOVFMP3.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-26S44RXU.js → docs-XJNYBJGE.js} +7 -7
- package/dist/cli-bundle/chunks/{eval-PGRVIJQU.js → eval-DM6JBZTS.js} +10 -10
- package/dist/cli-bundle/chunks/{eval-UYF3ZPVO.js → eval-RFBI5FGS.js} +10 -10
- package/dist/cli-bundle/chunks/{extension-CPSLJQVE.js → extension-B3YY4WY5.js} +11 -11
- package/dist/cli-bundle/chunks/{extension-CXJ6RELI.js → extension-TTSEFQTS.js} +11 -11
- package/dist/cli-bundle/chunks/{files-NQHEXUZD.js → files-5D65CHGE.js} +7 -7
- package/dist/cli-bundle/chunks/{files-MBNICQFM.js → files-GPIG77EN.js} +7 -7
- package/dist/cli-bundle/chunks/{focus-XZW5423D.js → focus-C3PEJV2C.js} +6 -6
- package/dist/cli-bundle/chunks/{focus-DWYIG7GU.js → focus-ZHN7WIGX.js} +6 -6
- package/dist/cli-bundle/chunks/{gc-LPVMKJQJ.js → gc-D4JQ6OWN.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-7GQYOS2G.js → gc-VZIXDL32.js} +3 -3
- package/dist/cli-bundle/chunks/{get-DSDEKJ3L.js → get-GIBRUUOP.js} +121 -81
- package/dist/cli-bundle/chunks/get-GIBRUUOP.js.map +1 -0
- package/dist/cli-bundle/chunks/{get-A7MAOHCU.js → get-IOVAN6RU.js} +120 -80
- package/dist/cli-bundle/chunks/get-IOVAN6RU.js.map +7 -0
- package/dist/cli-bundle/chunks/{health-3IPFLKXB.js → health-L2U3AFKV.js} +437 -265
- package/dist/cli-bundle/chunks/health-L2U3AFKV.js.map +1 -0
- package/dist/cli-bundle/chunks/{health-GZXGBZ36.js → health-MM7AWXYF.js} +436 -264
- package/dist/cli-bundle/chunks/health-MM7AWXYF.js.map +7 -0
- package/dist/cli-bundle/chunks/history-DD7L7BNL.js +18 -0
- package/dist/cli-bundle/chunks/{history-NERDJNUB.js → history-IL7XCEX2.js} +8 -8
- package/dist/cli-bundle/chunks/{history-compact-HR7BB4LR.js → history-compact-HALOTOU7.js} +214 -135
- package/dist/cli-bundle/chunks/history-compact-HALOTOU7.js.map +1 -0
- package/dist/cli-bundle/chunks/{history-compact-2WRZ2WK4.js → history-compact-MV25P7DM.js} +213 -134
- package/dist/cli-bundle/chunks/history-compact-MV25P7DM.js.map +7 -0
- package/dist/cli-bundle/chunks/history-redact-IX4YEWMY.js +19 -0
- package/dist/cli-bundle/chunks/{history-redact-O3NBCNWC.js → history-redact-VYCWQFK7.js} +9 -9
- package/dist/cli-bundle/chunks/{history-repair-XA3LC4GA.js → history-repair-44MODPQF.js} +124 -84
- package/dist/cli-bundle/chunks/history-repair-44MODPQF.js.map +1 -0
- package/dist/cli-bundle/chunks/{history-repair-LCMOS45X.js → history-repair-CPNAOCNF.js} +123 -83
- package/dist/cli-bundle/chunks/history-repair-CPNAOCNF.js.map +7 -0
- package/dist/cli-bundle/chunks/{init-64XDLQJB.js → init-F27NHENZ.js} +12 -12
- package/dist/cli-bundle/chunks/init-HHVQQP6C.js +22 -0
- package/dist/cli-bundle/chunks/{learnings-LPKCSJX7.js → learnings-HJVDQIGY.js} +8 -8
- package/dist/cli-bundle/chunks/{learnings-JR6MA5TI.js → learnings-XSFSUUWK.js} +8 -8
- package/dist/cli-bundle/chunks/{list-G5Y65VF6.js → list-HPMEKCAA.js} +8 -8
- package/dist/cli-bundle/chunks/{list-DNBJVO3E.js → list-VMPWTURB.js} +8 -8
- package/dist/cli-bundle/chunks/{next-BCERKDUR.js → next-ETXF2ZCN.js} +59 -37
- package/dist/cli-bundle/chunks/next-ETXF2ZCN.js.map +7 -0
- package/dist/cli-bundle/chunks/{next-FYTQF6HG.js → next-QM6YJIIS.js} +60 -38
- package/dist/cli-bundle/chunks/next-QM6YJIIS.js.map +1 -0
- package/dist/cli-bundle/chunks/{notes-2BMU3VVQ.js → notes-GDZIKGR6.js} +8 -8
- package/dist/cli-bundle/chunks/{notes-6KTGO2OJ.js → notes-WDDBPC4D.js} +8 -8
- package/dist/cli-bundle/chunks/{plan-RKZHQVXR.js → plan-BGDR73Z6.js} +373 -279
- package/dist/cli-bundle/chunks/plan-BGDR73Z6.js.map +1 -0
- package/dist/cli-bundle/chunks/{plan-4WXEQCTN.js → plan-C5IMM335.js} +372 -278
- package/dist/cli-bundle/chunks/plan-C5IMM335.js.map +7 -0
- package/dist/cli-bundle/chunks/{profile-QLER5ENE.js → profile-CCOKZ2IQ.js} +9 -9
- package/dist/cli-bundle/chunks/{profile-4OMM32CD.js → profile-HUCENIEQ.js} +9 -9
- package/dist/cli-bundle/chunks/{register-list-query-7LV46VAU.js → register-list-query-ROSNIL52.js} +80 -83
- package/dist/cli-bundle/chunks/register-list-query-ROSNIL52.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-SNG5PGA4.js → register-list-query-XN4ZRHSV.js} +79 -82
- package/dist/cli-bundle/chunks/register-list-query-XN4ZRHSV.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-ENNDUAZG.js → register-mutation-CFSB2MS3.js} +403 -382
- package/dist/cli-bundle/chunks/register-mutation-CFSB2MS3.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-KK7PHYYU.js → register-mutation-KRLAHEL2.js} +402 -381
- package/dist/cli-bundle/chunks/register-mutation-KRLAHEL2.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-operations-HZ6XERQG.js → register-operations-4PASGJDB.js} +112 -93
- package/dist/cli-bundle/chunks/register-operations-4PASGJDB.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-operations-C6OWLDSH.js → register-operations-MBN4KGUM.js} +113 -94
- package/dist/cli-bundle/chunks/register-operations-MBN4KGUM.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-P67EMBDJ.js → register-setup-VIAWYFP5.js} +129 -104
- package/dist/cli-bundle/chunks/register-setup-VIAWYFP5.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-ZKJ53RS7.js → register-setup-ZCGKHDKL.js} +128 -103
- package/dist/cli-bundle/chunks/register-setup-ZCGKHDKL.js.map +7 -0
- package/dist/cli-bundle/chunks/{restore-4MHZFJ2E.js → restore-4CBWUMCX.js} +9 -9
- package/dist/cli-bundle/chunks/restore-5UEAGG3W.js +17 -0
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-LB6DOLRL.js → scheduling-shortcuts-6VFKNKCM.js} +12 -12
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-UTOYKLXQ.js → scheduling-shortcuts-ERHCVTEM.js} +12 -12
- package/dist/cli-bundle/chunks/{schema-73HR2OJW.js → schema-TDGK6N3I.js} +7 -7
- package/dist/cli-bundle/chunks/{schema-U6LJKSIR.js → schema-UE5KKAUX.js} +7 -7
- package/dist/cli-bundle/chunks/{search-KILGT37L.js → search-FP7MEU4S.js} +10 -10
- package/dist/cli-bundle/chunks/{search-AXPXKZER.js → search-K4CFLQ5S.js} +10 -10
- package/dist/cli-bundle/chunks/{stats-PSYVVTNZ.js → stats-NJJCALEZ.js} +6 -6
- package/dist/cli-bundle/chunks/{stats-W5KNVJWQ.js → stats-XT6QRKQY.js} +6 -6
- package/dist/cli-bundle/chunks/{telemetry-GAHHQTOS.js → telemetry-5SQ5UDXC.js} +84 -70
- package/dist/cli-bundle/chunks/telemetry-5SQ5UDXC.js.map +7 -0
- package/dist/cli-bundle/chunks/{telemetry-BZUF6H7G.js → telemetry-HVXFZA2U.js} +85 -71
- package/dist/cli-bundle/chunks/telemetry-HVXFZA2U.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-ACD52Z3S.js → test-UFSJ5YIO.js} +15 -15
- package/dist/cli-bundle/chunks/{test-PWDIZ255.js → test-YCDAUBWF.js} +15 -15
- package/dist/cli-bundle/chunks/test-all-2BWKY3GQ.js +427 -0
- package/dist/cli-bundle/chunks/test-all-2BWKY3GQ.js.map +1 -0
- package/dist/cli-bundle/chunks/test-all-PM7UYN42.js +430 -0
- package/dist/cli-bundle/chunks/test-all-PM7UYN42.js.map +7 -0
- package/dist/cli-bundle/chunks/{test-runs-UXIXPDKU.js → test-runs-FK5E75AA.js} +185 -147
- package/dist/cli-bundle/chunks/test-runs-FK5E75AA.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-runs-PLRAZEFW.js → test-runs-H4TGWGRN.js} +184 -146
- package/dist/cli-bundle/chunks/test-runs-H4TGWGRN.js.map +7 -0
- package/dist/cli-bundle/chunks/update-MTCFES6X.js +24 -0
- package/dist/cli-bundle/chunks/{update-KFX2SIAC.js → update-Y5WQVT5O.js} +15 -15
- package/dist/cli-bundle/chunks/{update-many-Z5GJS5LC.js → update-many-6YAYYRLE.js} +82 -67
- package/dist/cli-bundle/chunks/{update-many-Z5GJS5LC.js.map → update-many-6YAYYRLE.js.map} +2 -2
- package/dist/cli-bundle/chunks/{update-many-RNSBX2TA.js → update-many-JTKKSA7Y.js} +83 -68
- package/dist/cli-bundle/chunks/{update-many-RNSBX2TA.js.map → update-many-JTKKSA7Y.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-HAK6JG2O.js → upgrade-DTAHZ236.js} +11 -11
- package/dist/cli-bundle/chunks/{upgrade-BRL6KCOJ.js → upgrade-JUDU7YL4.js} +11 -11
- package/dist/cli-bundle/chunks/{validate-MTUVL5VC.js → validate-732RWS5W.js} +440 -320
- package/dist/cli-bundle/chunks/validate-732RWS5W.js.map +7 -0
- package/dist/cli-bundle/chunks/{validate-X5W76YJL.js → validate-W7H5TEDC.js} +441 -321
- package/dist/cli-bundle/chunks/validate-W7H5TEDC.js.map +1 -0
- package/dist/cli-bundle/main.js +945 -812
- package/dist/cli-bundle/main.js.map +3 -3
- package/dist/core/config/nested-settings.js +89 -67
- package/dist/core/config/nested-settings.js.map +1 -1
- package/dist/core/governance/metadata-coverage.js +20 -28
- package/dist/core/governance/metadata-coverage.js.map +1 -1
- package/dist/core/history/drift-scan.js +93 -81
- package/dist/core/history/drift-scan.js.map +1 -1
- package/dist/core/item/item-type-definition.js +14 -14
- package/dist/core/item/item-type-definition.js.map +1 -1
- package/dist/core/item/type-registry.js +87 -82
- package/dist/core/item/type-registry.js.map +1 -1
- package/dist/core/output/mutation-projection.js +42 -26
- package/dist/core/output/mutation-projection.js.map +1 -1
- package/dist/core/schema/runtime-schema.js +34 -28
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/search/semantic-defaults.js +64 -37
- package/dist/core/search/semantic-defaults.js.map +1 -1
- package/dist/core/search/vector-stores.js +32 -17
- package/dist/core/search/vector-stores.js.map +1 -1
- package/dist/core/sentry/helpers.js +31 -28
- package/dist/core/sentry/helpers.js.map +1 -1
- package/dist/core/sentry/instrument.js +54 -43
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/core/store/front-matter-cache.js +239 -153
- package/dist/core/store/front-matter-cache.js.map +1 -1
- package/dist/core/store/item-store.js +33 -26
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/settings.js +247 -203
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/test/background-runs.js +189 -160
- package/dist/core/test/background-runs.js.map +1 -1
- package/package.json +2 -2
- package/packages/pm-beads/extensions/beads/runtime.ts +240 -167
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +65 -58
- package/packages/pm-todos/extensions/todos/runtime.ts +65 -42
- package/dist/cli-bundle/chunks/activity-AW6XVFH6.js +0 -16
- package/dist/cli-bundle/chunks/aggregate-JTEF4BP7.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-2D4HATP2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-3S2KT7NG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-3VGN2UWE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-3XZCOZ5J.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-4DSGXSBL.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4XOIEKSD.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-55SNVXRQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5CGRF3L5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7R4QEMZZ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-BDTISOSD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-BZCEN4JA.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-CF7RL6FR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-FFMQB7WR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-IPYBJWTE.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-IZBR4NRW.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JSU5P7VS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-JWXRETDF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KNPEF7QG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NFDPYAIP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NUHHPVVS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NWMZWYYB.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-OTUHB4HS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RGEMWD6Q.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-RLDHZHQS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RMMQ74TG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-RVUALSJF.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-TP5Q5ZD3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UYUYDGIB.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-V3NOKJF2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-VARHOHYV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YITK2PJ6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ZETXE4SE.js.map +0 -1
- package/dist/cli-bundle/chunks/close-E6ZZGCJY.js +0 -14
- package/dist/cli-bundle/chunks/close-many-BG5QQIDQ.js.map +0 -7
- package/dist/cli-bundle/chunks/close-many-LDRVEQY2.js.map +0 -1
- package/dist/cli-bundle/chunks/config-DMSU64QO.js +0 -1541
- package/dist/cli-bundle/chunks/config-DMSU64QO.js.map +0 -7
- package/dist/cli-bundle/chunks/config-QH2DICD6.js +0 -1531
- package/dist/cli-bundle/chunks/config-QH2DICD6.js.map +0 -1
- package/dist/cli-bundle/chunks/contracts-HN7ABKLP.js.map +0 -7
- package/dist/cli-bundle/chunks/contracts-W4FZVVD6.js.map +0 -1
- package/dist/cli-bundle/chunks/create-OH3BDGBB.js +0 -28
- package/dist/cli-bundle/chunks/get-A7MAOHCU.js.map +0 -7
- package/dist/cli-bundle/chunks/get-DSDEKJ3L.js.map +0 -1
- package/dist/cli-bundle/chunks/health-3IPFLKXB.js.map +0 -1
- package/dist/cli-bundle/chunks/health-GZXGBZ36.js.map +0 -7
- package/dist/cli-bundle/chunks/history-WSZHY3PN.js +0 -18
- package/dist/cli-bundle/chunks/history-compact-2WRZ2WK4.js.map +0 -7
- package/dist/cli-bundle/chunks/history-compact-HR7BB4LR.js.map +0 -1
- package/dist/cli-bundle/chunks/history-redact-MP6CH7U5.js +0 -19
- package/dist/cli-bundle/chunks/history-repair-LCMOS45X.js.map +0 -7
- package/dist/cli-bundle/chunks/history-repair-XA3LC4GA.js.map +0 -1
- package/dist/cli-bundle/chunks/init-PAX32BJA.js +0 -22
- package/dist/cli-bundle/chunks/next-BCERKDUR.js.map +0 -7
- package/dist/cli-bundle/chunks/next-FYTQF6HG.js.map +0 -1
- package/dist/cli-bundle/chunks/plan-4WXEQCTN.js.map +0 -7
- package/dist/cli-bundle/chunks/plan-RKZHQVXR.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-7LV46VAU.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-SNG5PGA4.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-ENNDUAZG.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-KK7PHYYU.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-C6OWLDSH.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-HZ6XERQG.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-P67EMBDJ.js.map +0 -1
- package/dist/cli-bundle/chunks/register-setup-ZKJ53RS7.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-YALDGTQR.js +0 -17
- package/dist/cli-bundle/chunks/telemetry-BZUF6H7G.js.map +0 -1
- package/dist/cli-bundle/chunks/telemetry-GAHHQTOS.js.map +0 -7
- package/dist/cli-bundle/chunks/test-all-L2MDDUCA.js +0 -358
- package/dist/cli-bundle/chunks/test-all-L2MDDUCA.js.map +0 -1
- package/dist/cli-bundle/chunks/test-all-RBZ6DLU2.js +0 -361
- package/dist/cli-bundle/chunks/test-all-RBZ6DLU2.js.map +0 -7
- package/dist/cli-bundle/chunks/test-runs-PLRAZEFW.js.map +0 -7
- package/dist/cli-bundle/chunks/test-runs-UXIXPDKU.js.map +0 -1
- package/dist/cli-bundle/chunks/update-AMRSOIWP.js +0 -24
- package/dist/cli-bundle/chunks/validate-MTUVL5VC.js.map +0 -7
- package/dist/cli-bundle/chunks/validate-X5W76YJL.js.map +0 -1
- /package/dist/cli-bundle/chunks/{activity-DBLQVIP6.js.map → activity-CUC4JY3U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-AW6XVFH6.js.map → activity-WEIEMM73.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-QCFJSDFL.js.map → append-H32VOR2Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-LOVPGVPT.js.map → append-UBM632FK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SLMUGTK3.js.map → chunk-2ASNV4DH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UZIWVBE6.js.map → chunk-2CHRYUXL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NU2UEROZ.js.map → chunk-3AZUFQK6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LB6TP6MC.js.map → chunk-3LCUASYG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HPPFYYOV.js.map → chunk-3Q2HBMTI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-W4ULYO7Z.js.map → chunk-55XRYWEG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HXTQJXWT.js.map → chunk-5GVTFFTC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-64HNBBFQ.js.map → chunk-A6VOGKBA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WYDHYJPO.js.map → chunk-AIAIXG7I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CWFNTKQJ.js.map → chunk-AJEBCRIY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NOLPZMSV.js.map → chunk-BTX5MIQF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RH5ZBYFD.js.map → chunk-BVZZN2LH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-27BXPBAY.js.map → chunk-CYBDUHNO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-A7FPBAQS.js.map → chunk-CZPVDLD2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JPECA746.js.map → chunk-EUKTMRN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2466X6E4.js.map → chunk-FFOQHGNH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JLM7BHI7.js.map → chunk-GFMSLORL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SDR5J34Q.js.map → chunk-GRRG3MCT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GJ326ZKX.js.map → chunk-H4GRLYJS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OGXLACHC.js.map → chunk-HQTPRV4D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BHO33VBQ.js.map → chunk-IEEJQCZ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4DUVCVLZ.js.map → chunk-JMK5GCK2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AXIDKKAT.js.map → chunk-K2VYLVX4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EJUDVUYZ.js.map → chunk-KCO2EAN5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6AQZPVHQ.js.map → chunk-KIYCOJ63.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZRP4VG5U.js.map → chunk-KLXF7NCC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QCWF6IYD.js.map → chunk-KN3URLKS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N74UMG5H.js.map → chunk-LRKMWUUV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AVEE5EHK.js.map → chunk-LTRAF2D7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IJYK2T43.js.map → chunk-MRD4T5LF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-G7I7DEZA.js.map → chunk-N2JSWVWG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5QFDBI4F.js.map → chunk-N3QCJS4M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4A3BJ675.js.map → chunk-OTUJZKGI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HZZEHPRG.js.map → chunk-QH3FSKRJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NKZAN7BD.js.map → chunk-S62UANU7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3J6JRJ3I.js.map → chunk-SYNKD3ZG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-L5OEFZQG.js.map → chunk-U2BEEM2X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EVMTBV6V.js.map → chunk-UT73HUPC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VICZWYGZ.js.map → chunk-UTSH5GWX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MDPEOIGN.js.map → chunk-XWGEMNBR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HYTGA6GI.js.map → chunk-Y4NRKBFW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-22WKIL3H.js.map → chunk-YPKFV2JR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DDPTYJIM.js.map → chunk-ZNHEYCDD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MAUKX7JC.js.map → chunk-ZNT7KEWE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-T3GCKV7C.js.map → claim-SENTPZBN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-EMQLYPRW.js.map → claim-Z7MEQCBT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-TQYAAFJP.js.map → close-424MX4CU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-E6ZZGCJY.js.map → close-YCWQQPDS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-YUXJRZPQ.js.map → comments-4FGNTSNV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-QCKR2YY2.js.map → comments-7YS5MY5X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-OCZ3FJ4Z.js.map → context-LHVKJSPJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-B6275WPX.js.map → context-ZQY54JNS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-DEM4DATS.js.map → copy-GYNQQPW2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-BTJOSKKT.js.map → copy-TLW7JTQT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-RLRJMRTM.js.map → create-VSKYSOCD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-OH3BDGBB.js.map → create-XTMAPS7I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-LSVHAB4Y.js.map → delete-4W5JYCEG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-BHK7VB2Z.js.map → delete-ANTOTI2I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-XHYXWEPT.js.map → deps-HPPE6MJN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-4UDFJRUA.js.map → deps-ZQZN54EZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-GYZNVS26.js.map → docs-RPOVFMP3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-26S44RXU.js.map → docs-XJNYBJGE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-PGRVIJQU.js.map → eval-DM6JBZTS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-UYF3ZPVO.js.map → eval-RFBI5FGS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-CPSLJQVE.js.map → extension-B3YY4WY5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-CXJ6RELI.js.map → extension-TTSEFQTS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-NQHEXUZD.js.map → files-5D65CHGE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-MBNICQFM.js.map → files-GPIG77EN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-XZW5423D.js.map → focus-C3PEJV2C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-DWYIG7GU.js.map → focus-ZHN7WIGX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-LPVMKJQJ.js.map → gc-D4JQ6OWN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-7GQYOS2G.js.map → gc-VZIXDL32.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-WSZHY3PN.js.map → history-DD7L7BNL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-NERDJNUB.js.map → history-IL7XCEX2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-MP6CH7U5.js.map → history-redact-IX4YEWMY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-O3NBCNWC.js.map → history-redact-VYCWQFK7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-64XDLQJB.js.map → init-F27NHENZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-PAX32BJA.js.map → init-HHVQQP6C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-LPKCSJX7.js.map → learnings-HJVDQIGY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-JR6MA5TI.js.map → learnings-XSFSUUWK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-G5Y65VF6.js.map → list-HPMEKCAA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-DNBJVO3E.js.map → list-VMPWTURB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-2BMU3VVQ.js.map → notes-GDZIKGR6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-6KTGO2OJ.js.map → notes-WDDBPC4D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-QLER5ENE.js.map → profile-CCOKZ2IQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-4OMM32CD.js.map → profile-HUCENIEQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-4MHZFJ2E.js.map → restore-4CBWUMCX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-YALDGTQR.js.map → restore-5UEAGG3W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-LB6DOLRL.js.map → scheduling-shortcuts-6VFKNKCM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-UTOYKLXQ.js.map → scheduling-shortcuts-ERHCVTEM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-73HR2OJW.js.map → schema-TDGK6N3I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-U6LJKSIR.js.map → schema-UE5KKAUX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-KILGT37L.js.map → search-FP7MEU4S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-AXPXKZER.js.map → search-K4CFLQ5S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-PSYVVTNZ.js.map → stats-NJJCALEZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-W5KNVJWQ.js.map → stats-XT6QRKQY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-ACD52Z3S.js.map → test-UFSJ5YIO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-PWDIZ255.js.map → test-YCDAUBWF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-AMRSOIWP.js.map → update-MTCFES6X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-KFX2SIAC.js.map → update-Y5WQVT5O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-HAK6JG2O.js.map → upgrade-DTAHZ236.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-BRL6KCOJ.js.map → upgrade-JUDU7YL4.js.map} +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Implements the pm reindex command surface and its agent-facing runtime behavior.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
!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]="
|
|
7
|
+
!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]="8dd50c77-d026-565f-8f07-e63602a44f09")}catch(e){}}();
|
|
8
8
|
import fs from "node:fs/promises";
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
import { toNonEmptyStringOrUndefined } from "../../core/shared/primitives.js";
|
|
@@ -127,6 +127,7 @@ export const _testOnly = {
|
|
|
127
127
|
collectLedgerOrphanIds,
|
|
128
128
|
resetVectorStoreForReindex,
|
|
129
129
|
pruneReindexOrphanVectors,
|
|
130
|
+
upsertReindexVectors,
|
|
130
131
|
};
|
|
131
132
|
function resolveExtensionSearchEmbedding(settings) {
|
|
132
133
|
const registrations = getActiveExtensionRegistrations();
|
|
@@ -178,16 +179,18 @@ function resolveExtensionVectorAdapter(settings) {
|
|
|
178
179
|
return null;
|
|
179
180
|
}
|
|
180
181
|
const runtimeDefinition = registration.runtime_definition ?? registration.definition;
|
|
181
|
-
const
|
|
182
|
+
const adapterDisplayName = toOptionalNonEmptyString(runtimeDefinition.name) ??
|
|
182
183
|
toOptionalNonEmptyString(registration.definition.name);
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
if (!name || typeof upsert !== "function") {
|
|
184
|
+
/* c8 ignore start -- resolveRegisteredVectorStoreAdapter only returns registrations with a normalized runtime or definition name */
|
|
185
|
+
if (!adapterDisplayName) {
|
|
186
186
|
return null;
|
|
187
187
|
}
|
|
188
|
+
/* c8 ignore stop */
|
|
189
|
+
const upsert = runtimeDefinition.upsert;
|
|
190
|
+
const deleteHandler = runtimeDefinition.delete;
|
|
188
191
|
return {
|
|
189
|
-
|
|
190
|
-
upsert: upsert,
|
|
192
|
+
adapterName: adapterDisplayName,
|
|
193
|
+
...(typeof upsert === "function" ? { upsert: upsert } : {}),
|
|
191
194
|
...(typeof deleteHandler === "function" ? { delete: deleteHandler } : {}),
|
|
192
195
|
};
|
|
193
196
|
}
|
|
@@ -299,11 +302,11 @@ async function resetVectorStoreForReindex(activeVectorStore, extensionVectorAdap
|
|
|
299
302
|
await Promise.resolve(extensionVectorAdapter.delete({ ids: knownIds.sort((left, right) => left.localeCompare(right)), settings }));
|
|
300
303
|
}
|
|
301
304
|
catch (error) {
|
|
302
|
-
throw new PmCliError(`Extension vector adapter "${extensionVectorAdapter.
|
|
305
|
+
throw new PmCliError(`Extension vector adapter "${extensionVectorAdapter.adapterName}" failed to delete vectors during reindex reset: ${error instanceof Error ? error.message : String(error)}`, EXIT_CODE.GENERIC_FAILURE);
|
|
303
306
|
}
|
|
304
307
|
}
|
|
305
308
|
else if (knownIds.length > 0) {
|
|
306
|
-
semanticWarnings.push(`search_semantic_reindex_reset_skipped:adapter=${extensionVectorAdapter.
|
|
309
|
+
semanticWarnings.push(`search_semantic_reindex_reset_skipped:adapter=${extensionVectorAdapter.adapterName}:known_ids=${knownIds.length}`);
|
|
307
310
|
}
|
|
308
311
|
if (!activeVectorStore) {
|
|
309
312
|
return;
|
|
@@ -323,11 +326,11 @@ async function pruneReindexOrphanVectors(activeVectorStore, extensionVectorAdapt
|
|
|
323
326
|
await Promise.resolve(extensionVectorAdapter.delete({ ids: orphanIds, settings }));
|
|
324
327
|
}
|
|
325
328
|
catch (error) {
|
|
326
|
-
throw new PmCliError(`Extension vector adapter "${extensionVectorAdapter.
|
|
329
|
+
throw new PmCliError(`Extension vector adapter "${extensionVectorAdapter.adapterName}" failed to delete orphan vectors during reindex: ${error instanceof Error ? error.message : String(error)}`, EXIT_CODE.GENERIC_FAILURE);
|
|
327
330
|
}
|
|
328
331
|
}
|
|
329
332
|
else {
|
|
330
|
-
semanticWarnings.push(`search_semantic_reindex_orphan_prune_skipped:adapter=${extensionVectorAdapter.
|
|
333
|
+
semanticWarnings.push(`search_semantic_reindex_orphan_prune_skipped:adapter=${extensionVectorAdapter.adapterName}:count=${orphanIds.length}`);
|
|
331
334
|
}
|
|
332
335
|
if (!activeVectorStore) {
|
|
333
336
|
return;
|
|
@@ -337,6 +340,293 @@ async function pruneReindexOrphanVectors(activeVectorStore, extensionVectorAdapt
|
|
|
337
340
|
await executeVectorDelete(activeVectorStore, orphanIds);
|
|
338
341
|
}
|
|
339
342
|
}
|
|
343
|
+
function createReindexSemanticSummary(mode) {
|
|
344
|
+
return {
|
|
345
|
+
enabled: mode !== "keyword",
|
|
346
|
+
stale_items: 0,
|
|
347
|
+
unchanged_items: 0,
|
|
348
|
+
embedded_items: 0,
|
|
349
|
+
vector_upserted: 0,
|
|
350
|
+
batches_completed: 0,
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
function buildReindexManifest(mode, generatedAt, metadataDocuments) {
|
|
354
|
+
return {
|
|
355
|
+
version: 1,
|
|
356
|
+
mode,
|
|
357
|
+
generated_at: generatedAt,
|
|
358
|
+
total_items: metadataDocuments.length,
|
|
359
|
+
items: metadataDocuments.map((document) => ({
|
|
360
|
+
id: document.metadata.id,
|
|
361
|
+
type: document.metadata.type,
|
|
362
|
+
status: document.metadata.status,
|
|
363
|
+
priority: document.metadata.priority,
|
|
364
|
+
updated_at: document.metadata.updated_at,
|
|
365
|
+
})),
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
function assertSemanticRuntimeAvailable(params) {
|
|
369
|
+
if (params.requestedMode === "keyword") {
|
|
370
|
+
return {
|
|
371
|
+
activeEmbeddingProvider: null,
|
|
372
|
+
activeVectorStore: null,
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
const providerResolution = resolveEmbeddingProviders(params.settings);
|
|
376
|
+
if (!providerResolution.active && !params.extensionEmbedding) {
|
|
377
|
+
throw new PmCliError(`Reindex mode '${params.requestedMode}' requires a configured embedding provider in settings.providers.openai/settings.providers.ollama or an extension provider selected by settings.search.provider`, EXIT_CODE.USAGE);
|
|
378
|
+
}
|
|
379
|
+
const vectorResolution = resolveVectorStores(params.settings);
|
|
380
|
+
if (!vectorResolution.active && !params.extensionVectorAdapter) {
|
|
381
|
+
throw new PmCliError(`Reindex mode '${params.requestedMode}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`, EXIT_CODE.USAGE);
|
|
382
|
+
}
|
|
383
|
+
return {
|
|
384
|
+
activeEmbeddingProvider: providerResolution.active,
|
|
385
|
+
activeVectorStore: vectorResolution.active,
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
async function loadReindexCorpus(params) {
|
|
389
|
+
const typeRegistry = resolveItemTypeRegistry(params.settings, getActiveExtensionRegistrations());
|
|
390
|
+
const loadedCandidates = await loadDocumentCandidates(params.pmRoot, params.settings.item_format, typeRegistry.type_to_folder, params.settings.schema);
|
|
391
|
+
return {
|
|
392
|
+
documentCandidates: loadedCandidates.candidates,
|
|
393
|
+
warnings: [...loadedCandidates.warnings],
|
|
394
|
+
metadataDocuments: loadedCandidates.candidates.map((candidate) => ({
|
|
395
|
+
metadata: candidate.metadata,
|
|
396
|
+
body: typeof candidate.body === "string" ? candidate.body : "",
|
|
397
|
+
})),
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
async function appendKeywordLedgerWarnings(params) {
|
|
401
|
+
const ledger = await readVectorizationStatusLedger(params.pmRoot);
|
|
402
|
+
params.reindexWarnings.push(...ledger.warnings);
|
|
403
|
+
if (params.forceFullSemantic) {
|
|
404
|
+
params.reindexWarnings.push("search_semantic_reindex_full_ignored:mode_keyword");
|
|
405
|
+
}
|
|
406
|
+
if (!ledger.embedding) {
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
const currentEmbeddingIdentity = (() => {
|
|
410
|
+
try {
|
|
411
|
+
return resolveReindexEmbeddingIdentity(params.settings, resolveEmbeddingProviders(params.settings).active, params.extensionEmbedding);
|
|
412
|
+
}
|
|
413
|
+
catch {
|
|
414
|
+
return null;
|
|
415
|
+
}
|
|
416
|
+
})();
|
|
417
|
+
if (currentEmbeddingIdentity && hasVectorizationEmbeddingIdentityChanged(ledger.embedding, currentEmbeddingIdentity)) {
|
|
418
|
+
params.reindexWarnings.push("search_semantic_reindex_requires_rebuild:embedding_identity_changed");
|
|
419
|
+
params.reindexWarnings.push(EMBEDDING_MIGRATION_REINDEX_HINT);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
async function planSemanticReindex(params) {
|
|
423
|
+
const ledger = await readVectorizationStatusLedger(params.pmRoot);
|
|
424
|
+
params.semanticWarnings.push(...ledger.warnings);
|
|
425
|
+
const embeddingIdentity = resolveReindexEmbeddingIdentity(params.settings, params.activeEmbeddingProvider, params.extensionEmbedding);
|
|
426
|
+
const currentIds = new Set(params.metadataDocuments.map((document) => document.metadata.id));
|
|
427
|
+
const orphanIds = collectLedgerOrphanIds(ledger.entries, currentIds);
|
|
428
|
+
const resetRequired = hasVectorizationEmbeddingIdentityChanged(ledger.embedding, embeddingIdentity);
|
|
429
|
+
if (params.forceFullSemantic && !resetRequired) {
|
|
430
|
+
params.semanticWarnings.push("search_semantic_reindex_full_rebuild_forced");
|
|
431
|
+
}
|
|
432
|
+
const staleSourceDocuments = params.forceFullSemantic || resetRequired
|
|
433
|
+
? params.metadataDocuments
|
|
434
|
+
: params.metadataDocuments.filter((document) => ledger.entries[document.metadata.id] !== document.metadata.updated_at);
|
|
435
|
+
const staleIds = new Set(staleSourceDocuments.map((document) => document.metadata.id));
|
|
436
|
+
const staleDocuments = staleIds.size > 0
|
|
437
|
+
? await hydrateDocuments(params.pmRoot, params.documentCandidates, params.settings.schema, params.reindexWarnings, staleIds)
|
|
438
|
+
: [];
|
|
439
|
+
return {
|
|
440
|
+
ledgerEntries: ledger.entries,
|
|
441
|
+
ledgerEmbedding: ledger.embedding,
|
|
442
|
+
orphanIds,
|
|
443
|
+
resetRequired,
|
|
444
|
+
staleDocuments,
|
|
445
|
+
freshDocuments: params.metadataDocuments.length - staleDocuments.length,
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
async function rerunSemanticEmbeddingAfterDimensionChange(params) {
|
|
449
|
+
const staleIds = new Set(params.metadataDocuments.map((document) => document.metadata.id));
|
|
450
|
+
const staleDocuments = await hydrateDocuments(params.pmRoot, params.documentCandidates, params.settings.schema, params.reindexWarnings, staleIds);
|
|
451
|
+
params.semanticSummary.stale_items = staleDocuments.length;
|
|
452
|
+
params.semanticSummary.unchanged_items = 0;
|
|
453
|
+
emitReindexProgress(params.progressEnabled, `embedding_dimension_changed reset_items=${staleDocuments.length}`);
|
|
454
|
+
const embeddingResult = await executeReindexEmbedding(params.settings, params.requestedMode, params.activeEmbeddingProvider, params.extensionEmbedding, staleDocuments, params.semanticWarnings, params.semanticSummary, params.progressEnabled);
|
|
455
|
+
return {
|
|
456
|
+
...embeddingResult,
|
|
457
|
+
staleDocuments,
|
|
458
|
+
vectorDimension: inferConsistentVectorDimension(embeddingResult.vectors, "Reindex embeddings"),
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
async function resolveSemanticEmbeddingForUpsert(params) {
|
|
462
|
+
let embeddingResult = await executeReindexEmbedding(params.settings, params.requestedMode, params.activeEmbeddingProvider, params.extensionEmbedding, params.staleDocuments, params.semanticWarnings, params.semanticSummary, params.progressEnabled);
|
|
463
|
+
let vectors = embeddingResult.vectors;
|
|
464
|
+
let actualEmbeddingIdentity = embeddingResult.embeddingIdentity;
|
|
465
|
+
let vectorDimension = inferConsistentVectorDimension(vectors, "Reindex embeddings");
|
|
466
|
+
const dimensionChanged = !params.resetRequired &&
|
|
467
|
+
(hasVectorizationEmbeddingIdentityChanged(params.ledgerEmbedding, actualEmbeddingIdentity) ||
|
|
468
|
+
hasVectorizationVectorDimensionChanged(params.ledgerEmbedding, vectorDimension));
|
|
469
|
+
if (!dimensionChanged) {
|
|
470
|
+
return {
|
|
471
|
+
vectors,
|
|
472
|
+
embeddingIdentity: actualEmbeddingIdentity,
|
|
473
|
+
staleDocuments: params.staleDocuments,
|
|
474
|
+
vectorDimension,
|
|
475
|
+
resetRequired: params.resetRequired,
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
const rerun = await rerunSemanticEmbeddingAfterDimensionChange(params);
|
|
479
|
+
vectors = rerun.vectors;
|
|
480
|
+
actualEmbeddingIdentity = rerun.embeddingIdentity;
|
|
481
|
+
vectorDimension = rerun.vectorDimension;
|
|
482
|
+
return {
|
|
483
|
+
vectors,
|
|
484
|
+
embeddingIdentity: actualEmbeddingIdentity,
|
|
485
|
+
staleDocuments: rerun.staleDocuments,
|
|
486
|
+
vectorDimension,
|
|
487
|
+
resetRequired: true,
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
async function upsertReindexVectors(params) {
|
|
491
|
+
if (params.extensionVectorAdapter) {
|
|
492
|
+
try {
|
|
493
|
+
const adapterName = params.extensionVectorAdapter.adapterName;
|
|
494
|
+
emitReindexProgress(params.progressEnabled, `vector_upsert_start adapter=${adapterName} points=${params.points.length}`);
|
|
495
|
+
if (typeof params.extensionVectorAdapter.upsert !== "function") {
|
|
496
|
+
throw new PmCliError(`Extension vector adapter "${adapterName}" does not support upserting vectors.`, EXIT_CODE.USAGE);
|
|
497
|
+
}
|
|
498
|
+
await Promise.resolve(params.extensionVectorAdapter.upsert({ points: params.points, settings: params.settings }));
|
|
499
|
+
params.semanticSummary.vector_upserted = params.points.length;
|
|
500
|
+
emitReindexProgress(params.progressEnabled, `vector_upsert_complete adapter=${adapterName}`);
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
catch (error) {
|
|
504
|
+
if (error instanceof PmCliError) {
|
|
505
|
+
throw error;
|
|
506
|
+
}
|
|
507
|
+
if (!params.activeVectorStore) {
|
|
508
|
+
throw new PmCliError(`Extension vector adapter "${params.extensionVectorAdapter.adapterName}" failed to upsert vectors: ${error instanceof Error ? error.message : String(error)}`, EXIT_CODE.GENERIC_FAILURE);
|
|
509
|
+
}
|
|
510
|
+
params.semanticWarnings.push(`Extension vector adapter "${params.extensionVectorAdapter.adapterName}" failed; falling back to built-in vector store (${error instanceof Error ? error.message : String(error)})`);
|
|
511
|
+
emitReindexProgress(params.progressEnabled, "vector_upsert_fallback built_in_store");
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
if (params.activeVectorStore) {
|
|
515
|
+
emitReindexProgress(params.progressEnabled, `vector_upsert_start adapter=${params.activeVectorStore.name} points=${params.points.length}`);
|
|
516
|
+
await executeVectorUpsert(params.activeVectorStore, params.points);
|
|
517
|
+
params.semanticSummary.vector_upserted = params.points.length;
|
|
518
|
+
emitReindexProgress(params.progressEnabled, `vector_upsert_complete adapter=${params.activeVectorStore.name}`);
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
/* c8 ignore start -- guarded by semantic-mode provider/vector-store preflight above */
|
|
522
|
+
throw new PmCliError(`No vector upsert executor available for reindex mode '${params.requestedMode}'`, EXIT_CODE.USAGE);
|
|
523
|
+
/* c8 ignore stop */
|
|
524
|
+
}
|
|
525
|
+
function buildReindexVectorPoints(staleDocuments, vectors) {
|
|
526
|
+
return staleDocuments.map((document, index) => ({
|
|
527
|
+
id: document.metadata.id,
|
|
528
|
+
vector: assertVector(vectors[index], `reindex embeddings output at index ${index}`),
|
|
529
|
+
payload: {
|
|
530
|
+
id: document.metadata.id,
|
|
531
|
+
type: document.metadata.type,
|
|
532
|
+
status: document.metadata.status,
|
|
533
|
+
priority: document.metadata.priority,
|
|
534
|
+
updated_at: document.metadata.updated_at,
|
|
535
|
+
},
|
|
536
|
+
}));
|
|
537
|
+
}
|
|
538
|
+
async function executeSemanticVectorRefresh(params) {
|
|
539
|
+
emitReindexProgress(params.progressEnabled, `embedding_start items=${params.plan.staleDocuments.length} unchanged_items=${params.plan.freshDocuments}`);
|
|
540
|
+
const embedding = await resolveSemanticEmbeddingForUpsert({
|
|
541
|
+
pmRoot: params.pmRoot,
|
|
542
|
+
settings: params.settings,
|
|
543
|
+
requestedMode: params.requestedMode,
|
|
544
|
+
activeEmbeddingProvider: params.activeEmbeddingProvider,
|
|
545
|
+
extensionEmbedding: params.extensionEmbedding,
|
|
546
|
+
documentCandidates: params.documentCandidates,
|
|
547
|
+
metadataDocuments: params.metadataDocuments,
|
|
548
|
+
staleDocuments: params.plan.staleDocuments,
|
|
549
|
+
ledgerEmbedding: params.plan.ledgerEmbedding,
|
|
550
|
+
resetRequired: params.plan.resetRequired,
|
|
551
|
+
semanticWarnings: params.semanticWarnings,
|
|
552
|
+
reindexWarnings: params.reindexWarnings,
|
|
553
|
+
semanticSummary: params.semanticSummary,
|
|
554
|
+
progressEnabled: params.progressEnabled,
|
|
555
|
+
});
|
|
556
|
+
if (embedding.resetRequired) {
|
|
557
|
+
emitReindexProgress(params.progressEnabled, "vector_reset_start");
|
|
558
|
+
await resetVectorStoreForReindex(params.activeVectorStore, params.extensionVectorAdapter, params.plan.ledgerEntries, params.settings, params.semanticWarnings, params.plan.ledgerEmbedding ? embedding.vectorDimension : undefined);
|
|
559
|
+
emitReindexProgress(params.progressEnabled, "vector_reset_complete");
|
|
560
|
+
}
|
|
561
|
+
else {
|
|
562
|
+
await pruneReindexOrphanVectors(params.activeVectorStore, params.extensionVectorAdapter, params.plan.orphanIds, params.settings, params.semanticWarnings);
|
|
563
|
+
}
|
|
564
|
+
const points = buildReindexVectorPoints(embedding.staleDocuments, embedding.vectors);
|
|
565
|
+
params.semanticSummary.embedded_items = embedding.vectors.length;
|
|
566
|
+
await upsertReindexVectors({
|
|
567
|
+
requestedMode: params.requestedMode,
|
|
568
|
+
activeVectorStore: params.activeVectorStore,
|
|
569
|
+
extensionVectorAdapter: params.extensionVectorAdapter,
|
|
570
|
+
settings: params.settings,
|
|
571
|
+
points,
|
|
572
|
+
semanticWarnings: params.semanticWarnings,
|
|
573
|
+
semanticSummary: params.semanticSummary,
|
|
574
|
+
progressEnabled: params.progressEnabled,
|
|
575
|
+
});
|
|
576
|
+
return {
|
|
577
|
+
staleDocuments: embedding.staleDocuments,
|
|
578
|
+
embeddingMetadata: buildVectorizationEmbeddingMetadata(embedding.embeddingIdentity, embedding.vectorDimension),
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
async function runSemanticReindex(params) {
|
|
582
|
+
const plan = await planSemanticReindex(params);
|
|
583
|
+
params.semanticSummary.stale_items = plan.staleDocuments.length;
|
|
584
|
+
params.semanticSummary.unchanged_items = plan.freshDocuments;
|
|
585
|
+
const vectorizationLedgerEntries = Object.fromEntries(params.metadataDocuments.map((document) => [document.metadata.id, document.metadata.updated_at]));
|
|
586
|
+
emitReindexProgress(params.progressEnabled, `semantic_stale_items stale=${plan.staleDocuments.length} total=${params.metadataDocuments.length} unchanged=${plan.freshDocuments} full=${params.forceFullSemantic || plan.resetRequired}`);
|
|
587
|
+
if (plan.staleDocuments.length === 0) {
|
|
588
|
+
emitReindexProgress(params.progressEnabled, `embedding_skipped unchanged_items=${plan.freshDocuments}`);
|
|
589
|
+
params.semanticWarnings.push(`search_semantic_reindex_skipped_unchanged:count=${plan.freshDocuments}`);
|
|
590
|
+
await pruneReindexOrphanVectors(params.activeVectorStore, params.extensionVectorAdapter, plan.orphanIds, params.settings, params.semanticWarnings);
|
|
591
|
+
return {
|
|
592
|
+
documentsForKeywordArtifacts: params.documentsForKeywordArtifacts,
|
|
593
|
+
vectorizationLedgerEntries,
|
|
594
|
+
vectorizationEmbeddingMetadata: plan.ledgerEmbedding,
|
|
595
|
+
};
|
|
596
|
+
}
|
|
597
|
+
const refresh = await executeSemanticVectorRefresh({ ...params, plan });
|
|
598
|
+
if (plan.freshDocuments > 0) {
|
|
599
|
+
params.semanticWarnings.push(`search_semantic_reindex_skipped_unchanged:count=${plan.freshDocuments}`);
|
|
600
|
+
}
|
|
601
|
+
const staleDocumentsById = new Map(refresh.staleDocuments.map((document) => [document.metadata.id, document]));
|
|
602
|
+
return {
|
|
603
|
+
documentsForKeywordArtifacts: params.metadataDocuments.map((document) => staleDocumentsById.get(document.metadata.id) ?? document),
|
|
604
|
+
vectorizationLedgerEntries,
|
|
605
|
+
vectorizationEmbeddingMetadata: refresh.embeddingMetadata,
|
|
606
|
+
};
|
|
607
|
+
}
|
|
608
|
+
async function writeReindexArtifacts(params) {
|
|
609
|
+
const manifestPath = path.join(params.pmRoot, MANIFEST_PATH);
|
|
610
|
+
const embeddingsPath = path.join(params.pmRoot, EMBEDDINGS_PATH);
|
|
611
|
+
const keywordCorpusFields = resolveSearchCorpusFields(params.settings);
|
|
612
|
+
const embeddingsLines = params.documentsForKeywordArtifacts
|
|
613
|
+
.map((document) => JSON.stringify(buildKeywordRecord(document, params.mode, keywordCorpusFields)))
|
|
614
|
+
.join("\n");
|
|
615
|
+
emitReindexProgress(params.progressEnabled, "writing keyword artifacts");
|
|
616
|
+
await writeFileAtomic(manifestPath, `${JSON.stringify(params.manifest, null, 2)}\n`);
|
|
617
|
+
await writeFileAtomic(embeddingsPath, `${embeddingsLines}\n`);
|
|
618
|
+
const vectorizationWarnings = [];
|
|
619
|
+
if (params.mode !== "keyword") {
|
|
620
|
+
try {
|
|
621
|
+
emitReindexProgress(params.progressEnabled, "writing vectorization status ledger");
|
|
622
|
+
await writeVectorizationStatusLedger(params.pmRoot, params.vectorizationLedgerEntries, params.vectorizationEmbeddingMetadata);
|
|
623
|
+
}
|
|
624
|
+
catch (error) {
|
|
625
|
+
vectorizationWarnings.push(`search_vectorization_status_ledger_write_failed:${error instanceof Error ? error.message : String(error)}`);
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
return vectorizationWarnings;
|
|
629
|
+
}
|
|
340
630
|
/**
|
|
341
631
|
* Implements run reindex for the public runtime surface of this module.
|
|
342
632
|
*/
|
|
@@ -369,216 +659,66 @@ export async function runReindex(options, global) {
|
|
|
369
659
|
throw error;
|
|
370
660
|
}
|
|
371
661
|
try {
|
|
372
|
-
const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
|
|
373
662
|
const extensionEmbedding = resolveExtensionSearchEmbedding(settings);
|
|
374
663
|
const extensionVectorAdapter = resolveExtensionVectorAdapter(settings);
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
}
|
|
382
|
-
const vectorResolution = resolveVectorStores(settings);
|
|
383
|
-
if (!vectorResolution.active && !extensionVectorAdapter) {
|
|
384
|
-
throw new PmCliError(`Reindex mode '${requestedMode}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`, EXIT_CODE.USAGE);
|
|
385
|
-
}
|
|
386
|
-
activeEmbeddingProvider = providerResolution.active;
|
|
387
|
-
activeVectorStore = vectorResolution.active;
|
|
388
|
-
}
|
|
664
|
+
const semanticRuntime = assertSemanticRuntimeAvailable({
|
|
665
|
+
requestedMode,
|
|
666
|
+
settings,
|
|
667
|
+
extensionEmbedding,
|
|
668
|
+
extensionVectorAdapter,
|
|
669
|
+
});
|
|
389
670
|
const mode = requestedMode;
|
|
390
671
|
emitReindexProgress(progressEnabled, "loading item corpus");
|
|
391
|
-
const
|
|
392
|
-
const reindexWarnings =
|
|
393
|
-
const documentCandidates =
|
|
394
|
-
const metadataDocuments = documentCandidates.map((candidate) => ({
|
|
395
|
-
metadata: candidate.metadata,
|
|
396
|
-
body: typeof candidate.body === "string" ? candidate.body : "",
|
|
397
|
-
}));
|
|
672
|
+
const corpus = await loadReindexCorpus({ pmRoot, settings });
|
|
673
|
+
const reindexWarnings = corpus.warnings;
|
|
674
|
+
const { documentCandidates, metadataDocuments } = corpus;
|
|
398
675
|
emitReindexProgress(progressEnabled, `loaded_items=${metadataDocuments.length}`);
|
|
399
676
|
const generatedAt = nowIso();
|
|
400
|
-
const manifest =
|
|
401
|
-
version: 1,
|
|
402
|
-
mode,
|
|
403
|
-
generated_at: generatedAt,
|
|
404
|
-
total_items: metadataDocuments.length,
|
|
405
|
-
items: metadataDocuments.map((document) => ({
|
|
406
|
-
id: document.metadata.id,
|
|
407
|
-
type: document.metadata.type,
|
|
408
|
-
status: document.metadata.status,
|
|
409
|
-
priority: document.metadata.priority,
|
|
410
|
-
updated_at: document.metadata.updated_at,
|
|
411
|
-
})),
|
|
412
|
-
};
|
|
677
|
+
const manifest = buildReindexManifest(mode, generatedAt, metadataDocuments);
|
|
413
678
|
const manifestPath = path.join(pmRoot, MANIFEST_PATH);
|
|
414
679
|
const embeddingsPath = path.join(pmRoot, EMBEDDINGS_PATH);
|
|
415
680
|
let documentsForKeywordArtifacts = mode === "keyword"
|
|
416
681
|
? await hydrateDocuments(pmRoot, documentCandidates, settings.schema, reindexWarnings)
|
|
417
682
|
: metadataDocuments;
|
|
418
683
|
const semanticWarnings = [];
|
|
419
|
-
|
|
684
|
+
let vectorizationLedgerEntries = {};
|
|
420
685
|
let vectorizationEmbeddingMetadata = null;
|
|
421
|
-
const semanticSummary =
|
|
422
|
-
enabled: mode !== "keyword",
|
|
423
|
-
stale_items: 0,
|
|
424
|
-
unchanged_items: 0,
|
|
425
|
-
embedded_items: 0,
|
|
426
|
-
vector_upserted: 0,
|
|
427
|
-
batches_completed: 0,
|
|
428
|
-
};
|
|
686
|
+
const semanticSummary = createReindexSemanticSummary(mode);
|
|
429
687
|
if (mode === "keyword") {
|
|
430
|
-
|
|
431
|
-
reindexWarnings.push(...ledger.warnings);
|
|
432
|
-
if (forceFullSemantic) {
|
|
433
|
-
reindexWarnings.push("search_semantic_reindex_full_ignored:mode_keyword");
|
|
434
|
-
}
|
|
435
|
-
if (ledger.embedding) {
|
|
436
|
-
const currentEmbeddingIdentity = (() => {
|
|
437
|
-
try {
|
|
438
|
-
return resolveReindexEmbeddingIdentity(settings, resolveEmbeddingProviders(settings).active, extensionEmbedding);
|
|
439
|
-
}
|
|
440
|
-
catch {
|
|
441
|
-
return null;
|
|
442
|
-
}
|
|
443
|
-
})();
|
|
444
|
-
if (currentEmbeddingIdentity && hasVectorizationEmbeddingIdentityChanged(ledger.embedding, currentEmbeddingIdentity)) {
|
|
445
|
-
reindexWarnings.push("search_semantic_reindex_requires_rebuild:embedding_identity_changed");
|
|
446
|
-
reindexWarnings.push(EMBEDDING_MIGRATION_REINDEX_HINT);
|
|
447
|
-
}
|
|
448
|
-
}
|
|
688
|
+
await appendKeywordLedgerWarnings({ pmRoot, settings, forceFullSemantic, extensionEmbedding, reindexWarnings });
|
|
449
689
|
}
|
|
450
|
-
if (mode !== "keyword" && metadataDocuments.length > 0) {
|
|
451
|
-
const ledger = await readVectorizationStatusLedger(pmRoot);
|
|
452
|
-
semanticWarnings.push(...ledger.warnings);
|
|
453
|
-
const embeddingIdentity = resolveReindexEmbeddingIdentity(settings, activeEmbeddingProvider, extensionEmbedding);
|
|
454
|
-
const currentIds = new Set(metadataDocuments.map((document) => document.metadata.id));
|
|
455
|
-
const orphanIds = collectLedgerOrphanIds(ledger.entries, currentIds);
|
|
456
|
-
let resetRequired = hasVectorizationEmbeddingIdentityChanged(ledger.embedding, embeddingIdentity);
|
|
457
|
-
if (forceFullSemantic && !resetRequired) {
|
|
458
|
-
semanticWarnings.push("search_semantic_reindex_full_rebuild_forced");
|
|
459
|
-
}
|
|
460
|
-
const staleSourceDocuments = forceFullSemantic || resetRequired
|
|
461
|
-
? metadataDocuments
|
|
462
|
-
: metadataDocuments.filter((document) => ledger.entries[document.metadata.id] !== document.metadata.updated_at);
|
|
463
|
-
let staleIds = new Set(staleSourceDocuments.map((document) => document.metadata.id));
|
|
464
|
-
let staleDocuments = staleIds.size > 0
|
|
465
|
-
? await hydrateDocuments(pmRoot, documentCandidates, settings.schema, reindexWarnings, staleIds)
|
|
466
|
-
: [];
|
|
467
|
-
let freshDocuments = metadataDocuments.length - staleDocuments.length;
|
|
468
|
-
semanticSummary.stale_items = staleDocuments.length;
|
|
469
|
-
semanticSummary.unchanged_items = freshDocuments;
|
|
470
|
-
for (const document of metadataDocuments) {
|
|
471
|
-
vectorizationLedgerEntries[document.metadata.id] = document.metadata.updated_at;
|
|
472
|
-
}
|
|
473
|
-
emitReindexProgress(progressEnabled, `semantic_stale_items stale=${staleDocuments.length} total=${metadataDocuments.length} unchanged=${freshDocuments} full=${forceFullSemantic || resetRequired}`);
|
|
474
|
-
if (staleDocuments.length === 0) {
|
|
475
|
-
emitReindexProgress(progressEnabled, `embedding_skipped unchanged_items=${freshDocuments}`);
|
|
476
|
-
semanticWarnings.push(`search_semantic_reindex_skipped_unchanged:count=${freshDocuments}`);
|
|
477
|
-
}
|
|
478
|
-
else {
|
|
479
|
-
emitReindexProgress(progressEnabled, `embedding_start items=${staleDocuments.length} unchanged_items=${freshDocuments}`);
|
|
480
|
-
let embeddingResult = await executeReindexEmbedding(settings, requestedMode, activeEmbeddingProvider, extensionEmbedding, staleDocuments, semanticWarnings, semanticSummary, progressEnabled);
|
|
481
|
-
let vectors = embeddingResult.vectors;
|
|
482
|
-
let actualEmbeddingIdentity = embeddingResult.embeddingIdentity;
|
|
483
|
-
let vectorDimension = inferConsistentVectorDimension(vectors, "Reindex embeddings");
|
|
484
|
-
if (!resetRequired &&
|
|
485
|
-
(hasVectorizationEmbeddingIdentityChanged(ledger.embedding, actualEmbeddingIdentity) ||
|
|
486
|
-
hasVectorizationVectorDimensionChanged(ledger.embedding, vectorDimension))) {
|
|
487
|
-
resetRequired = true;
|
|
488
|
-
staleIds = new Set(metadataDocuments.map((document) => document.metadata.id));
|
|
489
|
-
staleDocuments = await hydrateDocuments(pmRoot, documentCandidates, settings.schema, reindexWarnings, staleIds);
|
|
490
|
-
freshDocuments = 0;
|
|
491
|
-
semanticSummary.stale_items = staleDocuments.length;
|
|
492
|
-
semanticSummary.unchanged_items = 0;
|
|
493
|
-
emitReindexProgress(progressEnabled, `embedding_dimension_changed reset_items=${staleDocuments.length}`);
|
|
494
|
-
embeddingResult = await executeReindexEmbedding(settings, requestedMode, activeEmbeddingProvider, extensionEmbedding, staleDocuments, semanticWarnings, semanticSummary, progressEnabled);
|
|
495
|
-
vectors = embeddingResult.vectors;
|
|
496
|
-
actualEmbeddingIdentity = embeddingResult.embeddingIdentity;
|
|
497
|
-
vectorDimension = inferConsistentVectorDimension(vectors, "Reindex embeddings");
|
|
498
|
-
}
|
|
499
|
-
if (resetRequired) {
|
|
500
|
-
emitReindexProgress(progressEnabled, "vector_reset_start");
|
|
501
|
-
await resetVectorStoreForReindex(activeVectorStore, extensionVectorAdapter, ledger.entries, settings, semanticWarnings, ledger.embedding ? vectorDimension : undefined);
|
|
502
|
-
emitReindexProgress(progressEnabled, "vector_reset_complete");
|
|
503
|
-
}
|
|
504
|
-
else {
|
|
505
|
-
await pruneReindexOrphanVectors(activeVectorStore, extensionVectorAdapter, orphanIds, settings, semanticWarnings);
|
|
506
|
-
}
|
|
507
|
-
vectorizationEmbeddingMetadata = buildVectorizationEmbeddingMetadata(actualEmbeddingIdentity, vectorDimension);
|
|
508
|
-
const points = staleDocuments.map((document, index) => ({
|
|
509
|
-
id: document.metadata.id,
|
|
510
|
-
vector: assertVector(vectors[index], `reindex embeddings output at index ${index}`),
|
|
511
|
-
payload: {
|
|
512
|
-
id: document.metadata.id,
|
|
513
|
-
type: document.metadata.type,
|
|
514
|
-
status: document.metadata.status,
|
|
515
|
-
priority: document.metadata.priority,
|
|
516
|
-
updated_at: document.metadata.updated_at,
|
|
517
|
-
},
|
|
518
|
-
}));
|
|
519
|
-
semanticSummary.embedded_items = vectors.length;
|
|
520
|
-
/* c8 ignore start -- semantic preflight guarantees a vector upsert executor path */
|
|
521
|
-
if (extensionVectorAdapter) {
|
|
522
|
-
try {
|
|
523
|
-
emitReindexProgress(progressEnabled, `vector_upsert_start adapter=${extensionVectorAdapter.name} points=${points.length}`);
|
|
524
|
-
await Promise.resolve(extensionVectorAdapter.upsert({
|
|
525
|
-
points,
|
|
526
|
-
settings,
|
|
527
|
-
}));
|
|
528
|
-
semanticSummary.vector_upserted = points.length;
|
|
529
|
-
emitReindexProgress(progressEnabled, `vector_upsert_complete adapter=${extensionVectorAdapter.name}`);
|
|
530
|
-
}
|
|
531
|
-
catch (error) {
|
|
532
|
-
if (!activeVectorStore) {
|
|
533
|
-
throw new PmCliError(`Extension vector adapter "${extensionVectorAdapter.name}" failed to upsert vectors: ${error instanceof Error ? error.message : String(error)}`, EXIT_CODE.GENERIC_FAILURE);
|
|
534
|
-
}
|
|
535
|
-
semanticWarnings.push(`Extension vector adapter "${extensionVectorAdapter.name}" failed; falling back to built-in vector store (${error instanceof Error ? error.message : String(error)})`);
|
|
536
|
-
emitReindexProgress(progressEnabled, "vector_upsert_fallback built_in_store");
|
|
537
|
-
await executeVectorUpsert(activeVectorStore, points);
|
|
538
|
-
semanticSummary.vector_upserted = points.length;
|
|
539
|
-
emitReindexProgress(progressEnabled, `vector_upsert_complete adapter=${activeVectorStore.name}`);
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
else if (activeVectorStore) {
|
|
543
|
-
emitReindexProgress(progressEnabled, `vector_upsert_start adapter=${activeVectorStore.name} points=${points.length}`);
|
|
544
|
-
await executeVectorUpsert(activeVectorStore, points);
|
|
545
|
-
semanticSummary.vector_upserted = points.length;
|
|
546
|
-
emitReindexProgress(progressEnabled, `vector_upsert_complete adapter=${activeVectorStore.name}`);
|
|
547
|
-
}
|
|
548
|
-
else {
|
|
549
|
-
/* c8 ignore start -- guarded by semantic-mode provider/vector-store preflight above */
|
|
550
|
-
throw new PmCliError(`No vector upsert executor available for reindex mode '${requestedMode}'`, EXIT_CODE.USAGE);
|
|
551
|
-
/* c8 ignore stop */
|
|
552
|
-
}
|
|
553
|
-
/* c8 ignore stop */
|
|
554
|
-
if (freshDocuments > 0) {
|
|
555
|
-
semanticWarnings.push(`search_semantic_reindex_skipped_unchanged:count=${freshDocuments}`);
|
|
556
|
-
}
|
|
557
|
-
const staleDocumentsById = new Map(staleDocuments.map((document) => [document.metadata.id, document]));
|
|
558
|
-
documentsForKeywordArtifacts = metadataDocuments.map((document) => staleDocumentsById.get(document.metadata.id) ?? document);
|
|
559
|
-
}
|
|
560
|
-
if (staleDocuments.length === 0) {
|
|
561
|
-
await pruneReindexOrphanVectors(activeVectorStore, extensionVectorAdapter, orphanIds, settings, semanticWarnings);
|
|
562
|
-
vectorizationEmbeddingMetadata = ledger.embedding;
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
const keywordCorpusFields = resolveSearchCorpusFields(settings);
|
|
566
|
-
const embeddingsLines = documentsForKeywordArtifacts
|
|
567
|
-
.map((document) => JSON.stringify(buildKeywordRecord(document, mode, keywordCorpusFields)))
|
|
568
|
-
.join("\n");
|
|
569
|
-
emitReindexProgress(progressEnabled, "writing keyword artifacts");
|
|
570
|
-
await writeFileAtomic(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
|
|
571
|
-
await writeFileAtomic(embeddingsPath, `${embeddingsLines}\n`);
|
|
572
|
-
const vectorizationWarnings = [];
|
|
573
690
|
if (mode !== "keyword") {
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
691
|
+
const semantic = await runSemanticReindex({
|
|
692
|
+
pmRoot,
|
|
693
|
+
settings,
|
|
694
|
+
requestedMode,
|
|
695
|
+
activeEmbeddingProvider: semanticRuntime.activeEmbeddingProvider,
|
|
696
|
+
activeVectorStore: semanticRuntime.activeVectorStore,
|
|
697
|
+
extensionEmbedding,
|
|
698
|
+
extensionVectorAdapter,
|
|
699
|
+
documentCandidates,
|
|
700
|
+
metadataDocuments,
|
|
701
|
+
documentsForKeywordArtifacts,
|
|
702
|
+
forceFullSemantic,
|
|
703
|
+
reindexWarnings,
|
|
704
|
+
semanticWarnings,
|
|
705
|
+
semanticSummary,
|
|
706
|
+
progressEnabled,
|
|
707
|
+
});
|
|
708
|
+
documentsForKeywordArtifacts = semantic.documentsForKeywordArtifacts;
|
|
709
|
+
vectorizationLedgerEntries = semantic.vectorizationLedgerEntries;
|
|
710
|
+
vectorizationEmbeddingMetadata = semantic.vectorizationEmbeddingMetadata;
|
|
581
711
|
}
|
|
712
|
+
const vectorizationWarnings = await writeReindexArtifacts({
|
|
713
|
+
pmRoot,
|
|
714
|
+
mode,
|
|
715
|
+
manifest,
|
|
716
|
+
documentsForKeywordArtifacts,
|
|
717
|
+
settings,
|
|
718
|
+
vectorizationLedgerEntries,
|
|
719
|
+
vectorizationEmbeddingMetadata,
|
|
720
|
+
progressEnabled,
|
|
721
|
+
});
|
|
582
722
|
const hookWarnings = [
|
|
583
723
|
...(await runActiveOnWriteHooks({
|
|
584
724
|
path: manifestPath,
|
|
@@ -614,4 +754,4 @@ export async function runReindex(options, global) {
|
|
|
614
754
|
}
|
|
615
755
|
}
|
|
616
756
|
//# sourceMappingURL=reindex.js.map
|
|
617
|
-
//# debugId=
|
|
757
|
+
//# debugId=8dd50c77-d026-565f-8f07-e63602a44f09
|