@unbrained/pm-cli 2026.6.19 → 2026.6.21
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 +328 -258
- package/README.md +1 -1
- package/dist/cli/bootstrap-args.d.ts +12 -1
- package/dist/cli/bootstrap-args.js +20 -9
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commander-usage.js +31 -25
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/completion.js +3 -3
- package/dist/cli/commands/completion.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/eval.d.ts +62 -0
- package/dist/cli/commands/eval.js +158 -0
- package/dist/cli/commands/eval.js.map +1 -0
- package/dist/cli/commands/extension/install-sources.d.ts +12 -0
- package/dist/cli/commands/extension/install-sources.js +77 -10
- package/dist/cli/commands/extension/install-sources.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.js +49 -3
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension.js +9 -2
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/gc.d.ts +12 -1
- package/dist/cli/commands/gc.js +53 -6
- package/dist/cli/commands/gc.js.map +1 -1
- package/dist/cli/commands/health.js +27 -9
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +3 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/linked-artifacts.js +13 -3
- package/dist/cli/commands/linked-artifacts.js.map +1 -1
- package/dist/cli/commands/list.js +12 -9
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/plan.js +2 -2
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/restore.js +5 -11
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/search.d.ts +39 -1
- package/dist/cli/commands/search.js +89 -12
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/update.js +96 -58
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +1 -1
- package/dist/cli/commands/validate.js +44 -2
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/extension-command-help.d.ts +9 -0
- package/dist/cli/extension-command-help.js +13 -2
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/extension-command-options.d.ts +8 -0
- package/dist/cli/extension-command-options.js +27 -2
- package/dist/cli/extension-command-options.js.map +1 -1
- package/dist/cli/help-content.js +15 -2
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/main.d.ts +12 -0
- package/dist/cli/main.js +49 -9
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +34 -4
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-operations.js +3 -3
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-CIHV64UC.js +18 -0
- package/dist/cli-bundle/chunks/{activity-XJ7WRNWS.js → activity-KW3IRP44.js} +11 -11
- package/dist/cli-bundle/chunks/{aggregate-LBCWF6UJ.js → aggregate-3ZKQG5SW.js} +10 -10
- package/dist/cli-bundle/chunks/{aggregate-OFT4YVB6.js → aggregate-FIGQEIL3.js} +10 -10
- package/dist/cli-bundle/chunks/{append-BP2ARHOK.js → append-EWJYJ7CH.js} +8 -8
- package/dist/cli-bundle/chunks/{append-5U3XR5SD.js → append-QEOLX3XB.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-CSRFOIHG.js → chunk-2EIMPCE4.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-MAKOMXVM.js → chunk-2GCDRRIF.js} +106 -67
- package/dist/cli-bundle/chunks/chunk-2GCDRRIF.js.map +1 -0
- package/dist/cli-bundle/chunks/{search-AZR2JITW.js → chunk-2PKHRP6G.js} +190 -22
- package/dist/cli-bundle/chunks/chunk-2PKHRP6G.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YWAYOWDQ.js → chunk-32R4PIC6.js} +118 -15
- package/dist/cli-bundle/chunks/chunk-32R4PIC6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-II3WDRCM.js → chunk-37QXHBIB.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UCNEPMPY.js → chunk-3EWSGA7N.js} +105 -66
- package/dist/cli-bundle/chunks/chunk-3EWSGA7N.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UMTPQMEG.js → chunk-3MDHREEV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-I2VJM36R.js → chunk-434HM6Z5.js} +21 -21
- package/dist/cli-bundle/chunks/chunk-434HM6Z5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Y4IBSEQ2.js → chunk-52OCIDPG.js} +20 -8
- package/dist/cli-bundle/chunks/chunk-52OCIDPG.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-DJ3YYLHG.js → chunk-5FIEHKEX.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-OURX4WVG.js → chunk-5IDI42VV.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-UA4ANRJY.js → chunk-5PCI3UBT.js} +119 -16
- package/dist/cli-bundle/chunks/chunk-5PCI3UBT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RVG3WLY3.js → chunk-5QICDWMV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LIVRA6VG.js → chunk-6CJWZAN7.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-AVMSP2HH.js → chunk-6H4LF7AO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-B2NEFANY.js → chunk-6M4RJS4M.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4BFNWAMQ.js → chunk-6ZXM2XNF.js} +29 -12
- package/dist/cli-bundle/chunks/chunk-6ZXM2XNF.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-A5JPMD4Q.js → chunk-76Z3YSHV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5NS6TJ2F.js → chunk-7D3SAQXM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DVUU3AHP.js → chunk-A4Z7ZOL5.js} +17 -6
- package/dist/cli-bundle/chunks/chunk-A4Z7ZOL5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2E3KSWFG.js → chunk-AIS5PGI3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-47BYN6CA.js → chunk-AZMOLBN3.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-DYZKSIVX.js → chunk-B473GZWW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-RNWE2HZR.js → chunk-C3AZ5ZML.js} +15 -15
- package/dist/cli-bundle/chunks/{chunk-S673PVHD.js → chunk-C4N5I7ZW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TYQBGXH2.js → chunk-CF55WVVS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4EOS35RL.js → chunk-CZPXY7UW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-MPEWACTG.js → chunk-CZUB4XWO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-22YA6GCA.js → chunk-D7FYS6PG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5SRID7DV.js → chunk-EBH56IXK.js} +29 -12
- package/dist/cli-bundle/chunks/chunk-EBH56IXK.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UIMLAFOE.js → chunk-F5NZWFSW.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-PSWSQHM7.js → chunk-F7K5GWP3.js} +15 -19
- package/dist/cli-bundle/chunks/chunk-F7K5GWP3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-H3DP6OUM.js → chunk-FKBDKV7Y.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-SO2IOH37.js → chunk-FRUFKWNK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7R5YKVKO.js → chunk-FWPDUYEY.js} +7 -7
- package/dist/cli-bundle/chunks/{search-2JX776KX.js → chunk-GMHPNNYG.js} +184 -23
- package/dist/cli-bundle/chunks/chunk-GMHPNNYG.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-USVOBLGB.js → chunk-GOZUHWFD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZBVYKWT2.js → chunk-H7NJZWG2.js} +15 -15
- package/dist/cli-bundle/chunks/{chunk-FPQA4ZMA.js → chunk-HC4AWIKT.js} +18 -7
- package/dist/cli-bundle/chunks/chunk-HC4AWIKT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4L7Q4OVT.js → chunk-HCU6WUSY.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-2RI3BDFK.js → chunk-HIP7WVTL.js} +10 -9
- package/dist/cli-bundle/chunks/chunk-HIP7WVTL.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-5QLHQK7V.js → chunk-HMOADQVT.js} +26 -26
- package/dist/cli-bundle/chunks/chunk-HMOADQVT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-K5TD74VU.js → chunk-J4MYYSOL.js} +19 -7
- package/dist/cli-bundle/chunks/chunk-J4MYYSOL.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GDOTTY2S.js → chunk-JINYH2DB.js} +40 -2
- package/dist/cli-bundle/chunks/chunk-JINYH2DB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-EMFDZ7N3.js → chunk-LEU5GHRC.js} +55 -5
- package/dist/cli-bundle/chunks/chunk-LEU5GHRC.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-PRUB7RI4.js → chunk-LUWW7L4B.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-N7LDJRB4.js → chunk-M5XALUSL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NPNNW5TU.js → chunk-N5ZJACJ6.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-NNMBNN6Q.js → chunk-NB3PYLQ6.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-USKTNI7P.js → chunk-NIGXMNNI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GL3QKIET.js → chunk-NIUEXCFS.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-OUG4CL4H.js → chunk-NJHMAJ6N.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-2K56AWDP.js → chunk-NJN7LL7U.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-5P2LQV2F.js → chunk-NSBZ2CKF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZZEM2PH7.js → chunk-NXS7ZKAK.js} +19 -14
- package/dist/cli-bundle/chunks/chunk-NXS7ZKAK.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XV6N3QND.js → chunk-O47BPOPC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-X26ODPU4.js → chunk-OFYMIDF2.js} +14 -18
- package/dist/cli-bundle/chunks/chunk-OFYMIDF2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QCHNPN24.js → chunk-OTHIWLMB.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-YVYJQR6S.js → chunk-PFSRUHDH.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-M35R7LFX.js → chunk-PP2U4NMT.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-ZGEWEO7B.js → chunk-PUH4D67U.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LEC57E7K.js → chunk-Q2J2HJUN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QSH34DSQ.js → chunk-QGG32QHW.js} +61 -4
- package/dist/cli-bundle/chunks/chunk-QGG32QHW.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QG6M6XQE.js → chunk-QQHISQBJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-BQVESTOG.js → chunk-QZTWBFXJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-COHNQLB2.js → chunk-R2EMWY7Q.js} +41 -3
- package/dist/cli-bundle/chunks/chunk-R2EMWY7Q.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5LZPDRFW.js → chunk-RLK7P77C.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-QTWWHFI3.js → chunk-RVHYI7SL.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-FVZSUIN5.js → chunk-SBGXDO7A.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VP4Z36GO.js → chunk-SRYYRVPB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-X7RKOJXL.js → chunk-SX75ADBK.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-MTDEEUGV.js → chunk-TKBHZPKD.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HMQMRHQJ.js → chunk-UEMNL33O.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-SDUZTZ55.js → chunk-UPE3CDD7.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-VG3B2CYD.js → chunk-UV6IYE5U.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YOGXK3ON.js → chunk-WQ7NIVDK.js} +18 -13
- package/dist/cli-bundle/chunks/chunk-WQ7NIVDK.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-MTGMNUMJ.js → chunk-YCJX76PW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FP7YLQ52.js → chunk-Z6T4PQI2.js} +11 -10
- package/dist/cli-bundle/chunks/chunk-Z6T4PQI2.js.map +1 -0
- package/dist/cli-bundle/chunks/{claim-2BSYPJTJ.js → claim-RC56YUWG.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-EZ6JKY5X.js → claim-THOJ6CMV.js} +10 -10
- package/dist/cli-bundle/chunks/close-DNMHGOCX.js +15 -0
- package/dist/cli-bundle/chunks/{close-3TSX6BYF.js → close-SG5MNCVQ.js} +8 -8
- package/dist/cli-bundle/chunks/{close-many-HB4UFCS3.js → close-many-3L3AQZBU.js} +15 -15
- package/dist/cli-bundle/chunks/{close-many-B7DBVA46.js → close-many-DKQLBGLV.js} +15 -15
- package/dist/cli-bundle/chunks/{comments-M7PAINZT.js → comments-M7ZOZNBX.js} +10 -10
- package/dist/cli-bundle/chunks/{comments-X7M7XM6I.js → comments-SKWMDWCW.js} +10 -10
- package/dist/cli-bundle/chunks/{config-YICACPHA.js → config-7CK62S7T.js} +30 -10
- package/dist/cli-bundle/chunks/config-7CK62S7T.js.map +1 -0
- package/dist/cli-bundle/chunks/{config-UWF3KRP5.js → config-OZCUABPB.js} +29 -9
- package/dist/cli-bundle/chunks/config-OZCUABPB.js.map +7 -0
- package/dist/cli-bundle/chunks/{context-EGUGU4K7.js → context-OEC366TO.js} +13 -13
- package/dist/cli-bundle/chunks/{context-V32ZAPL6.js → context-PUG2A7RC.js} +13 -13
- package/dist/cli-bundle/chunks/{contracts-B2YWYUV5.js → contracts-3THOLA7L.js} +10 -8
- package/dist/cli-bundle/chunks/contracts-3THOLA7L.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-7G553BHP.js → contracts-N65FXEOL.js} +10 -8
- package/dist/cli-bundle/chunks/contracts-N65FXEOL.js.map +1 -0
- package/dist/cli-bundle/chunks/{copy-NWFFRYWM.js → copy-6QLHILAC.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-RMLXLZOL.js → copy-JPX7VZCH.js} +7 -7
- package/dist/cli-bundle/chunks/create-NNP6TSFO.js +30 -0
- package/dist/cli-bundle/chunks/{create-GK4MX2LJ.js → create-Y54ZVVZH.js} +14 -14
- package/dist/cli-bundle/chunks/{delete-RMGNIL2S.js → delete-63PCMQAJ.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-EFQLVEAS.js → delete-GDSMGAGJ.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-WKHUPVD3.js → deps-T4ZF5G54.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-K2I7QV4Y.js → deps-XYQ73XRH.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-3FXRDYA7.js → docs-C75YIXHC.js} +10 -9
- package/dist/cli-bundle/chunks/{docs-3FXRDYA7.js.map → docs-C75YIXHC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{docs-2H2UGIT6.js → docs-EHNPDWUL.js} +12 -11
- package/dist/cli-bundle/chunks/{docs-2H2UGIT6.js.map → docs-EHNPDWUL.js.map} +1 -1
- package/dist/cli-bundle/chunks/eval-3WKDTRMH.js +276 -0
- package/dist/cli-bundle/chunks/eval-3WKDTRMH.js.map +1 -0
- package/dist/cli-bundle/chunks/eval-GTENKE24.js +286 -0
- package/dist/cli-bundle/chunks/eval-GTENKE24.js.map +7 -0
- package/dist/cli-bundle/chunks/{extension-4LPTFTV4.js → extension-46NWACO3.js} +5 -5
- package/dist/cli-bundle/chunks/{extension-ASUPTDCC.js → extension-D5FDZ2CO.js} +5 -5
- package/dist/cli-bundle/chunks/{files-TXEQOA7C.js → files-DSZBOSSN.js} +12 -11
- package/dist/cli-bundle/chunks/{files-TXEQOA7C.js.map → files-DSZBOSSN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{files-UAZFB3EA.js → files-X3H7CCBQ.js} +10 -9
- package/dist/cli-bundle/chunks/{files-UAZFB3EA.js.map → files-X3H7CCBQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{focus-UGROAMAX.js → focus-5STQXDPU.js} +8 -8
- package/dist/cli-bundle/chunks/{focus-ELOPN2SR.js → focus-MDVPOWB5.js} +8 -8
- package/dist/cli-bundle/chunks/gc-ZC7JHBG7.js +395 -0
- package/dist/cli-bundle/chunks/gc-ZC7JHBG7.js.map +7 -0
- package/dist/cli-bundle/chunks/gc-ZMST3WQP.js +385 -0
- package/dist/cli-bundle/chunks/gc-ZMST3WQP.js.map +1 -0
- package/dist/cli-bundle/chunks/{get-OTXPLWYW.js → get-J2IPJRZW.js} +11 -11
- package/dist/cli-bundle/chunks/{get-IWZ7IMPS.js → get-NT7L2HUZ.js} +11 -11
- package/dist/cli-bundle/chunks/{health-PPTJ7XKW.js → health-IVMA3XQC.js} +38 -26
- package/dist/cli-bundle/chunks/health-IVMA3XQC.js.map +1 -0
- package/dist/cli-bundle/chunks/{health-JEBESKID.js → health-WOYBR3KU.js} +37 -25
- package/dist/cli-bundle/chunks/health-WOYBR3KU.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-HNWBUDMI.js → history-RLH2QCRO.js} +10 -10
- package/dist/cli-bundle/chunks/history-WX3MGFS2.js +20 -0
- package/dist/cli-bundle/chunks/{history-compact-MMQC7MCW.js → history-compact-UXDIFC33.js} +12 -12
- package/dist/cli-bundle/chunks/{history-compact-EQXVPK3V.js → history-compact-ZBEBGJM7.js} +12 -12
- package/dist/cli-bundle/chunks/{history-redact-UBDHBEJE.js → history-redact-P7I7AWMB.js} +11 -11
- package/dist/cli-bundle/chunks/history-redact-YQGU3XRA.js +21 -0
- package/dist/cli-bundle/chunks/{history-repair-GMMHFAGH.js → history-repair-52KINVIK.js} +12 -12
- package/dist/cli-bundle/chunks/{history-repair-7DSDRPMX.js → history-repair-RM5ITLU5.js} +12 -12
- package/dist/cli-bundle/chunks/{init-QGK4JFF6.js → init-2BNZOO6F.js} +10 -10
- package/dist/cli-bundle/chunks/init-SC2P6CHP.js +20 -0
- package/dist/cli-bundle/chunks/{learnings-DR53TWRA.js → learnings-W6F3FIPL.js} +10 -10
- package/dist/cli-bundle/chunks/{learnings-A6DGBMG3.js → learnings-YGYVHWJK.js} +10 -10
- package/dist/cli-bundle/chunks/{list-LJ5DBXC3.js → list-K6FPV4J4.js} +10 -10
- package/dist/cli-bundle/chunks/{list-KOJN23UL.js → list-KPAYU5KZ.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-7VLTHKPW.js → notes-PU74EPKV.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-K5I3TAYR.js → notes-YTD6ZILW.js} +10 -10
- package/dist/cli-bundle/chunks/{plan-X3STKLED.js → plan-FNXHXRCI.js} +15 -15
- package/dist/cli-bundle/chunks/plan-FNXHXRCI.js.map +7 -0
- package/dist/cli-bundle/chunks/{plan-BK3OMLGP.js → plan-GEQYUCBW.js} +16 -16
- package/dist/cli-bundle/chunks/plan-GEQYUCBW.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-XDLFESU7.js → register-list-query-PHWYHENI.js} +43 -22
- package/dist/cli-bundle/chunks/register-list-query-PHWYHENI.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-FUMXPWZ4.js → register-list-query-QI45RMKN.js} +42 -21
- package/dist/cli-bundle/chunks/register-list-query-QI45RMKN.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-RXRX4P7D.js → register-mutation-X3BUOQEL.js} +33 -33
- package/dist/cli-bundle/chunks/{register-mutation-ZAGVKMBQ.js → register-mutation-YINRTS7L.js} +33 -33
- package/dist/cli-bundle/chunks/{register-operations-DGSHCS75.js → register-operations-E5JEASRK.js} +35 -35
- package/dist/cli-bundle/chunks/register-operations-E5JEASRK.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-6UURPZN5.js → register-operations-MIDTRW7S.js} +34 -34
- package/dist/cli-bundle/chunks/{register-operations-6UURPZN5.js.map → register-operations-MIDTRW7S.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-LTJG52WP.js → register-setup-DYBFLEZX.js} +15 -15
- package/dist/cli-bundle/chunks/{register-setup-2FEGSFLM.js → register-setup-EG2U6CEU.js} +15 -15
- package/dist/cli-bundle/chunks/restore-5KHR2YYQ.js +19 -0
- package/dist/cli-bundle/chunks/{restore-SJUWYOCK.js → restore-XQYSWBV7.js} +11 -11
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-VWAMP2S2.js → scheduling-shortcuts-HJMTEXKE.js} +14 -14
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-W4F2LKHW.js → scheduling-shortcuts-NNT5ASZR.js} +14 -14
- package/dist/cli-bundle/chunks/{schema-N5ETYD4P.js → schema-263RI4WW.js} +9 -9
- package/dist/cli-bundle/chunks/{schema-DXQRIEFM.js → schema-TZXW6XWD.js} +9 -9
- package/dist/cli-bundle/chunks/search-LECJYSXE.js +33 -0
- package/dist/cli-bundle/chunks/search-SFRJOVDG.js +37 -0
- package/dist/cli-bundle/chunks/{stats-ZFESFVQC.js → stats-N7ER2PNK.js} +8 -8
- package/dist/cli-bundle/chunks/{stats-J563NJBY.js → stats-VPBGSRQH.js} +8 -8
- package/dist/cli-bundle/chunks/{telemetry-BNGLIFEM.js → telemetry-L6K3BUIQ.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-SC7HPRXX.js → telemetry-PP3FUNBU.js} +4 -4
- package/dist/cli-bundle/chunks/{test-47UQGEXE.js → test-3EGNS3T5.js} +15 -15
- package/dist/cli-bundle/chunks/{test-55RJCGRU.js → test-RQCTSWUK.js} +15 -15
- package/dist/cli-bundle/chunks/{test-all-DN6KG4FX.js → test-all-NJ5V2QFS.js} +15 -15
- package/dist/cli-bundle/chunks/{test-all-5SFTTRNL.js → test-all-ZHFAWNC3.js} +15 -15
- package/dist/cli-bundle/chunks/{test-runs-NHRBT7SN.js → test-runs-AJHR6IQF.js} +5 -5
- package/dist/cli-bundle/chunks/{test-runs-DZEDJ4GH.js → test-runs-GN3C6GOI.js} +5 -5
- package/dist/cli-bundle/chunks/update-6YXOGHRT.js +24 -0
- package/dist/cli-bundle/chunks/update-6YXOGHRT.js.map +7 -0
- package/dist/cli-bundle/chunks/update-V33YUBRP.js +28 -0
- package/dist/cli-bundle/chunks/update-V33YUBRP.js.map +1 -0
- package/dist/cli-bundle/chunks/{update-many-IRNV3OTG.js → update-many-N2AN6ZDH.js} +23 -23
- package/dist/cli-bundle/chunks/{update-many-OKYWFCBO.js → update-many-RYQ64CFW.js} +23 -23
- package/dist/cli-bundle/chunks/{upgrade-KP4I45V5.js → upgrade-TJXFLZIX.js} +5 -5
- package/dist/cli-bundle/chunks/{upgrade-3RIAFQIK.js → upgrade-VPCIYAVW.js} +5 -5
- package/dist/cli-bundle/chunks/{validate-GVY4VE43.js → validate-JMNWEUYF.js} +62 -24
- package/dist/cli-bundle/chunks/validate-JMNWEUYF.js.map +1 -0
- package/dist/cli-bundle/chunks/{validate-ADKGN37M.js → validate-PHKIYGSY.js} +61 -23
- package/dist/cli-bundle/chunks/validate-PHKIYGSY.js.map +7 -0
- package/dist/cli-bundle/main.js +133 -55
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/core/checkpoint/checkpoint-gc.d.ts +69 -0
- package/dist/core/checkpoint/checkpoint-gc.js +175 -0
- package/dist/core/checkpoint/checkpoint-gc.js.map +1 -0
- package/dist/core/config/nested-settings.js +22 -2
- package/dist/core/config/nested-settings.js.map +1 -1
- package/dist/core/diagnostics/remediation.js +40 -2
- package/dist/core/diagnostics/remediation.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +0 -9
- package/dist/core/extensions/extension-types.js +2 -27
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/fs/fs-utils.d.ts +17 -1
- package/dist/core/fs/fs-utils.js +19 -3
- package/dist/core/fs/fs-utils.js.map +1 -1
- package/dist/core/history/drift-scan.d.ts +17 -5
- package/dist/core/history/drift-scan.js +22 -14
- package/dist/core/history/drift-scan.js.map +1 -1
- package/dist/core/history/replay.d.ts +7 -0
- package/dist/core/history/replay.js +11 -6
- package/dist/core/history/replay.js.map +1 -1
- package/dist/core/item/item-format-version.d.ts +87 -0
- package/dist/core/item/item-format-version.js +85 -0
- package/dist/core/item/item-format-version.js.map +1 -0
- package/dist/core/item/item-format.js +8 -2
- package/dist/core/item/item-format.js.map +1 -1
- package/dist/core/item/status-filter.d.ts +7 -3
- package/dist/core/item/status-filter.js +26 -5
- package/dist/core/item/status-filter.js.map +1 -1
- package/dist/core/search/bm25.d.ts +113 -0
- package/dist/core/search/bm25.js +178 -0
- package/dist/core/search/bm25.js.map +1 -0
- package/dist/core/search/eval.d.ts +114 -0
- package/dist/core/search/eval.js +217 -0
- package/dist/core/search/eval.js.map +1 -0
- package/dist/core/sentry/instrument.d.ts +14 -0
- package/dist/core/sentry/instrument.js +43 -3
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/core/shared/constants.js +6 -2
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/store/paths.js +4 -3
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/store/settings-validator.d.ts +7 -0
- package/dist/core/store/settings-validator.js +10 -2
- package/dist/core/store/settings-validator.js.map +1 -1
- package/dist/core/store/settings.js +6 -2
- package/dist/core/store/settings.js.map +1 -1
- package/dist/mcp/tool-definitions.js +4 -3
- package/dist/mcp/tool-definitions.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.js +3 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +4 -4
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +1 -0
- package/dist/sdk/cli-contracts.js +11 -2
- 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/runtime.d.ts +1 -0
- package/dist/sdk/runtime.js +3 -2
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/testing.d.ts +48 -1
- package/dist/sdk/testing.js +98 -2
- package/dist/sdk/testing.js.map +1 -1
- package/dist/types.d.ts +26 -0
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +1 -0
- package/docs/ARCHITECTURE.md +126 -11
- package/docs/CLAUDE_CODE_PLUGIN.md +5 -13
- package/docs/COMMANDS.md +57 -5
- package/docs/CONFIGURATION.md +39 -0
- package/docs/EXTENSIONS.md +2 -2
- package/docs/MIGRATION_CLI_SIMPLIFICATION.md +9 -2
- package/docs/QUICKSTART.md +2 -0
- package/docs/README.md +2 -0
- package/docs/RELEASING.md +2 -1
- package/docs/SDK.md +80 -1
- package/docs/TESTING.md +18 -0
- package/package.json +4 -3
- package/packages/pm-command-kit/README.md +4 -0
- package/packages/pm-todos/extensions/todos/index.js +2 -0
- package/packages/pm-todos/extensions/todos/index.ts +2 -0
- package/packages/pm-todos/extensions/todos/runtime.js +192 -9
- package/packages/pm-todos/extensions/todos/runtime.ts +211 -8
- package/dist/cli-bundle/chunks/activity-62I26XZB.js +0 -18
- package/dist/cli-bundle/chunks/chunk-2RI3BDFK.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4BFNWAMQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5QLHQK7V.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5SRID7DV.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-COHNQLB2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DVUU3AHP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-EMFDZ7N3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-FP7YLQ52.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-FPQA4ZMA.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-GDOTTY2S.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-I2VJM36R.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-K5TD74VU.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MAKOMXVM.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-PSWSQHM7.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QSH34DSQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UA4ANRJY.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UCNEPMPY.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-X26ODPU4.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Y4IBSEQ2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YOGXK3ON.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YWAYOWDQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ZZEM2PH7.js.map +0 -1
- package/dist/cli-bundle/chunks/close-TQZK43Z5.js +0 -15
- package/dist/cli-bundle/chunks/config-UWF3KRP5.js.map +0 -7
- package/dist/cli-bundle/chunks/config-YICACPHA.js.map +0 -1
- package/dist/cli-bundle/chunks/contracts-7G553BHP.js.map +0 -1
- package/dist/cli-bundle/chunks/contracts-B2YWYUV5.js.map +0 -7
- package/dist/cli-bundle/chunks/create-UZLJXHLA.js +0 -30
- package/dist/cli-bundle/chunks/gc-5RTYXLQU.js +0 -211
- package/dist/cli-bundle/chunks/gc-5RTYXLQU.js.map +0 -7
- package/dist/cli-bundle/chunks/gc-FK5732EK.js +0 -208
- package/dist/cli-bundle/chunks/gc-FK5732EK.js.map +0 -1
- package/dist/cli-bundle/chunks/health-JEBESKID.js.map +0 -7
- package/dist/cli-bundle/chunks/health-PPTJ7XKW.js.map +0 -1
- package/dist/cli-bundle/chunks/history-TKTULEVE.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-SPIFIXVY.js +0 -21
- package/dist/cli-bundle/chunks/init-A6FTZ5UC.js +0 -20
- package/dist/cli-bundle/chunks/plan-BK3OMLGP.js.map +0 -1
- package/dist/cli-bundle/chunks/plan-X3STKLED.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-FUMXPWZ4.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-XDLFESU7.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-DGSHCS75.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-PI3WM4GK.js +0 -19
- package/dist/cli-bundle/chunks/search-2JX776KX.js.map +0 -1
- package/dist/cli-bundle/chunks/search-AZR2JITW.js.map +0 -7
- package/dist/cli-bundle/chunks/update-2BZEAI7B.js +0 -24
- package/dist/cli-bundle/chunks/update-GCNLER2H.js +0 -28
- package/dist/cli-bundle/chunks/validate-ADKGN37M.js.map +0 -7
- package/dist/cli-bundle/chunks/validate-GVY4VE43.js.map +0 -1
- /package/dist/cli-bundle/chunks/{activity-62I26XZB.js.map → activity-CIHV64UC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-XJ7WRNWS.js.map → activity-KW3IRP44.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-LBCWF6UJ.js.map → aggregate-3ZKQG5SW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-OFT4YVB6.js.map → aggregate-FIGQEIL3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-BP2ARHOK.js.map → append-EWJYJ7CH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-5U3XR5SD.js.map → append-QEOLX3XB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CSRFOIHG.js.map → chunk-2EIMPCE4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-II3WDRCM.js.map → chunk-37QXHBIB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UMTPQMEG.js.map → chunk-3MDHREEV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DJ3YYLHG.js.map → chunk-5FIEHKEX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OURX4WVG.js.map → chunk-5IDI42VV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RVG3WLY3.js.map → chunk-5QICDWMV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LIVRA6VG.js.map → chunk-6CJWZAN7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AVMSP2HH.js.map → chunk-6H4LF7AO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B2NEFANY.js.map → chunk-6M4RJS4M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-A5JPMD4Q.js.map → chunk-76Z3YSHV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5NS6TJ2F.js.map → chunk-7D3SAQXM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2E3KSWFG.js.map → chunk-AIS5PGI3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-47BYN6CA.js.map → chunk-AZMOLBN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DYZKSIVX.js.map → chunk-B473GZWW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RNWE2HZR.js.map → chunk-C3AZ5ZML.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S673PVHD.js.map → chunk-C4N5I7ZW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TYQBGXH2.js.map → chunk-CF55WVVS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4EOS35RL.js.map → chunk-CZPXY7UW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MPEWACTG.js.map → chunk-CZUB4XWO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-22YA6GCA.js.map → chunk-D7FYS6PG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UIMLAFOE.js.map → chunk-F5NZWFSW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H3DP6OUM.js.map → chunk-FKBDKV7Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SO2IOH37.js.map → chunk-FRUFKWNK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7R5YKVKO.js.map → chunk-FWPDUYEY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-USVOBLGB.js.map → chunk-GOZUHWFD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZBVYKWT2.js.map → chunk-H7NJZWG2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4L7Q4OVT.js.map → chunk-HCU6WUSY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PRUB7RI4.js.map → chunk-LUWW7L4B.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N7LDJRB4.js.map → chunk-M5XALUSL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NPNNW5TU.js.map → chunk-N5ZJACJ6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NNMBNN6Q.js.map → chunk-NB3PYLQ6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-USKTNI7P.js.map → chunk-NIGXMNNI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GL3QKIET.js.map → chunk-NIUEXCFS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OUG4CL4H.js.map → chunk-NJHMAJ6N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2K56AWDP.js.map → chunk-NJN7LL7U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5P2LQV2F.js.map → chunk-NSBZ2CKF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XV6N3QND.js.map → chunk-O47BPOPC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QCHNPN24.js.map → chunk-OTHIWLMB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YVYJQR6S.js.map → chunk-PFSRUHDH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-M35R7LFX.js.map → chunk-PP2U4NMT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZGEWEO7B.js.map → chunk-PUH4D67U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LEC57E7K.js.map → chunk-Q2J2HJUN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QG6M6XQE.js.map → chunk-QQHISQBJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BQVESTOG.js.map → chunk-QZTWBFXJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5LZPDRFW.js.map → chunk-RLK7P77C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QTWWHFI3.js.map → chunk-RVHYI7SL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FVZSUIN5.js.map → chunk-SBGXDO7A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VP4Z36GO.js.map → chunk-SRYYRVPB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-X7RKOJXL.js.map → chunk-SX75ADBK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MTDEEUGV.js.map → chunk-TKBHZPKD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HMQMRHQJ.js.map → chunk-UEMNL33O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SDUZTZ55.js.map → chunk-UPE3CDD7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VG3B2CYD.js.map → chunk-UV6IYE5U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MTGMNUMJ.js.map → chunk-YCJX76PW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-2BSYPJTJ.js.map → claim-RC56YUWG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-EZ6JKY5X.js.map → claim-THOJ6CMV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-TQZK43Z5.js.map → close-DNMHGOCX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-3TSX6BYF.js.map → close-SG5MNCVQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-HB4UFCS3.js.map → close-many-3L3AQZBU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-B7DBVA46.js.map → close-many-DKQLBGLV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-M7PAINZT.js.map → comments-M7ZOZNBX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-X7M7XM6I.js.map → comments-SKWMDWCW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-EGUGU4K7.js.map → context-OEC366TO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-V32ZAPL6.js.map → context-PUG2A7RC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-NWFFRYWM.js.map → copy-6QLHILAC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-RMLXLZOL.js.map → copy-JPX7VZCH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-UZLJXHLA.js.map → create-NNP6TSFO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-GK4MX2LJ.js.map → create-Y54ZVVZH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-RMGNIL2S.js.map → delete-63PCMQAJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-EFQLVEAS.js.map → delete-GDSMGAGJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-WKHUPVD3.js.map → deps-T4ZF5G54.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-K2I7QV4Y.js.map → deps-XYQ73XRH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-4LPTFTV4.js.map → extension-46NWACO3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-ASUPTDCC.js.map → extension-D5FDZ2CO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-UGROAMAX.js.map → focus-5STQXDPU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-ELOPN2SR.js.map → focus-MDVPOWB5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-OTXPLWYW.js.map → get-J2IPJRZW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-IWZ7IMPS.js.map → get-NT7L2HUZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-HNWBUDMI.js.map → history-RLH2QCRO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-TKTULEVE.js.map → history-WX3MGFS2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-MMQC7MCW.js.map → history-compact-UXDIFC33.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-EQXVPK3V.js.map → history-compact-ZBEBGJM7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-UBDHBEJE.js.map → history-redact-P7I7AWMB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-SPIFIXVY.js.map → history-redact-YQGU3XRA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-GMMHFAGH.js.map → history-repair-52KINVIK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-7DSDRPMX.js.map → history-repair-RM5ITLU5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-QGK4JFF6.js.map → init-2BNZOO6F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-A6FTZ5UC.js.map → init-SC2P6CHP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-DR53TWRA.js.map → learnings-W6F3FIPL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-A6DGBMG3.js.map → learnings-YGYVHWJK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-LJ5DBXC3.js.map → list-K6FPV4J4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-KOJN23UL.js.map → list-KPAYU5KZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-7VLTHKPW.js.map → notes-PU74EPKV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-K5I3TAYR.js.map → notes-YTD6ZILW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-RXRX4P7D.js.map → register-mutation-X3BUOQEL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-ZAGVKMBQ.js.map → register-mutation-YINRTS7L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-LTJG52WP.js.map → register-setup-DYBFLEZX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-2FEGSFLM.js.map → register-setup-EG2U6CEU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-PI3WM4GK.js.map → restore-5KHR2YYQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-SJUWYOCK.js.map → restore-XQYSWBV7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-VWAMP2S2.js.map → scheduling-shortcuts-HJMTEXKE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-W4F2LKHW.js.map → scheduling-shortcuts-NNT5ASZR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-N5ETYD4P.js.map → schema-263RI4WW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-DXQRIEFM.js.map → schema-TZXW6XWD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-55RJCGRU.js.map → search-LECJYSXE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-47UQGEXE.js.map → search-SFRJOVDG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-ZFESFVQC.js.map → stats-N7ER2PNK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-J563NJBY.js.map → stats-VPBGSRQH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-BNGLIFEM.js.map → telemetry-L6K3BUIQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-SC7HPRXX.js.map → telemetry-PP3FUNBU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-GCNLER2H.js.map → test-3EGNS3T5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-2BZEAI7B.js.map → test-RQCTSWUK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-DN6KG4FX.js.map → test-all-NJ5V2QFS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-5SFTTRNL.js.map → test-all-ZHFAWNC3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-NHRBT7SN.js.map → test-runs-AJHR6IQF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-DZEDJ4GH.js.map → test-runs-GN3C6GOI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-IRNV3OTG.js.map → update-many-N2AN6ZDH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-OKYWFCBO.js.map → update-many-RYQ64CFW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-KP4I45V5.js.map → upgrade-TJXFLZIX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-3RIAFQIK.js.map → upgrade-VPCIYAVW.js.map} +0 -0
|
@@ -1,17 +1,19 @@
|
|
|
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]="edfd2704-35c2-5e60-ade2-713d3db82c2b")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
resolveAuthor
|
|
5
5
|
} from "./chunk-T5RRNDA7.js";
|
|
6
6
|
import {
|
|
7
7
|
readHistoryEntries
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UEMNL33O.js";
|
|
9
9
|
import {
|
|
10
10
|
EMPTY_REPLAY_DOCUMENT,
|
|
11
11
|
normalizeReplayPatchOps,
|
|
12
12
|
replayHash,
|
|
13
|
+
replayToCanonicalItemDocument,
|
|
14
|
+
replayToItemDocument,
|
|
13
15
|
toReplayDocument
|
|
14
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-Z6T4PQI2.js";
|
|
15
17
|
import {
|
|
16
18
|
acquireLock,
|
|
17
19
|
appendHistoryEntry,
|
|
@@ -19,21 +21,21 @@ import {
|
|
|
19
21
|
enforceHistoryStreamPolicyForItem,
|
|
20
22
|
locateItem,
|
|
21
23
|
readLocatedItem
|
|
22
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-NIUEXCFS.js";
|
|
23
25
|
import {
|
|
24
26
|
normalizeItemId,
|
|
25
27
|
normalizeRawItemId
|
|
26
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-D7FYS6PG.js";
|
|
27
29
|
import {
|
|
28
30
|
canonicalDocument,
|
|
29
31
|
serializeItemDocument
|
|
30
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-LEU5GHRC.js";
|
|
31
33
|
import {
|
|
32
34
|
resolveItemTypeRegistry
|
|
33
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-QZTWBFXJ.js";
|
|
34
36
|
import {
|
|
35
37
|
nowIso
|
|
36
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-NSBZ2CKF.js";
|
|
37
39
|
import {
|
|
38
40
|
EXIT_CODE,
|
|
39
41
|
PmCliError,
|
|
@@ -49,7 +51,7 @@ import {
|
|
|
49
51
|
resolvePmRoot,
|
|
50
52
|
runActiveOnWriteHooks,
|
|
51
53
|
writeFileAtomic
|
|
52
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-434HM6Z5.js";
|
|
53
55
|
|
|
54
56
|
// dist/cli/commands/restore.js
|
|
55
57
|
import jsonPatch from "fast-json-patch";
|
|
@@ -187,10 +189,7 @@ function replayCurrentDocument(history) {
|
|
|
187
189
|
body: currentReplay.body
|
|
188
190
|
};
|
|
189
191
|
}
|
|
190
|
-
return canonicalDocument(
|
|
191
|
-
metadata: currentReplay.metadata,
|
|
192
|
-
body: currentReplay.body
|
|
193
|
-
});
|
|
192
|
+
return canonicalDocument(replayToItemDocument(currentReplay));
|
|
194
193
|
}
|
|
195
194
|
async function resolveRestoreSubject(pmRoot, id, settings, typeToFolder) {
|
|
196
195
|
const located = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeToFolder);
|
|
@@ -256,10 +255,7 @@ async function runRestore(id, target, options, global) {
|
|
|
256
255
|
}
|
|
257
256
|
const resolvedTarget = ensureReplayTarget(target, history);
|
|
258
257
|
const replayDocument = ensureMaterializedRestoreTarget(replayToTarget(history, resolvedTarget.historyIndex), resolvedTarget);
|
|
259
|
-
const restoredDocument =
|
|
260
|
-
metadata: replayDocument.metadata,
|
|
261
|
-
body: replayDocument.body
|
|
262
|
-
}, { schema: settings.schema });
|
|
258
|
+
const restoredDocument = replayToCanonicalItemDocument(replayDocument, { schema: settings.schema });
|
|
263
259
|
if (restoredDocument.metadata.id !== resolvedId) {
|
|
264
260
|
throw new PmCliError(`Restore target resolved to item ${restoredDocument.metadata.id}, expected ${resolvedId}.`, EXIT_CODE.GENERIC_FAILURE);
|
|
265
261
|
}
|
|
@@ -390,6 +386,6 @@ export {
|
|
|
390
386
|
runRestore,
|
|
391
387
|
_testOnlyRestoreCommand
|
|
392
388
|
};
|
|
393
|
-
//# sourceMappingURL=chunk-
|
|
389
|
+
//# sourceMappingURL=chunk-F7K5GWP3.js.map
|
|
394
390
|
|
|
395
|
-
//# debugId=
|
|
391
|
+
//# debugId=edfd2704-35c2-5e60-ade2-713d3db82c2b
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../cli/commands/restore.ts"],"sourcesContent":["/**\n * @module cli/commands/restore\n *\n * Implements the pm restore command surface and its agent-facing runtime behavior.\n */\nimport jsonPatch from \"fast-json-patch\";\nimport fs from \"node:fs/promises\";\nimport { pathExists, readFileIfExists, writeFileAtomic } from \"../../core/fs/fs-utils.js\";\nimport { appendHistoryEntry, createHistoryEntry } from \"../../core/history/history.js\";\nimport {\n EMPTY_REPLAY_DOCUMENT,\n normalizeReplayPatchOps,\n replayHash,\n replayToCanonicalItemDocument,\n replayToItemDocument,\n toReplayDocument,\n type ReplayDocument as CanonicalReplayDocument,\n} from \"../../core/history/replay.js\";\nimport { enforceHistoryStreamPolicyForItem } from \"../../core/history/history-stream-policy.js\";\nimport { normalizeItemId, normalizeRawItemId } from \"../../core/item/id.js\";\nimport { canonicalDocument, serializeItemDocument } from \"../../core/item/item-format.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { acquireLock } from \"../../core/lock/lock.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport {\n getActiveExtensionRegistrations,\n projectAfterCommandItemSnapshot,\n recordAfterCommandAffectedItem,\n runActiveOnWriteHooks,\n} from \"../../core/extensions/index.js\";\nimport { locateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport { getHistoryPath, getItemPath, getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { resolveAuthor } from \"../../core/shared/author.js\";\nimport type { HistoryEntry, HistoryPatchOp, ItemDocument, ItemMetadata } from \"../../types/index.js\";\nimport { readHistoryEntries } from \"./history.js\";\n\ninterface ResolvedRestoreTarget {\n kind: \"version\" | \"timestamp\";\n raw: string;\n historyIndex: number;\n}\n\ninterface ResolvedRestoreSubject {\n id: string;\n historyPath: string;\n located: Awaited<ReturnType<typeof locateItem>>;\n historyPolicyWarnings: string[];\n}\n\n/**\n * Documents the restore command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface RestoreCommandOptions {\n author?: string;\n message?: string;\n force?: boolean;\n}\n\n/**\n * Documents the restore result payload exchanged by command, SDK, and package integrations.\n */\nexport interface RestoreResult {\n item: ItemMetadata;\n restored_from: {\n kind: \"version\" | \"timestamp\";\n target: string;\n history_index: number;\n entry_ts: string;\n entry_op: string;\n };\n changed_fields: string[];\n warnings: string[];\n}\n\nfunction ensureReplayTarget(target: string, history: HistoryEntry[]): ResolvedRestoreTarget {\n const trimmed = target.trim();\n if (!trimmed) {\n throw new PmCliError(\"Missing restore target. Use a timestamp or version number.\", EXIT_CODE.USAGE);\n }\n\n if (/^\\d+$/.test(trimmed)) {\n const version = Number(trimmed);\n if (!Number.isSafeInteger(version) || version < 1 || version > history.length) {\n throw new PmCliError(\n `Restore version must be between 1 and ${history.length} for this item.`,\n EXIT_CODE.USAGE,\n );\n }\n return {\n kind: \"version\",\n raw: trimmed,\n historyIndex: version - 1,\n };\n }\n\n const parsedTarget = Date.parse(trimmed);\n if (!Number.isFinite(parsedTarget)) {\n throw new PmCliError(\n `Invalid restore target \"${target}\". Use a positive version number or ISO timestamp.`,\n EXIT_CODE.USAGE,\n );\n }\n\n let index = -1;\n for (let i = 0; i < history.length; i += 1) {\n const entryTimestamp = Date.parse(history[i].ts);\n if (!Number.isFinite(entryTimestamp)) {\n throw new PmCliError(\n `History for this item contains invalid timestamp at entry ${i + 1}.`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n if (entryTimestamp <= parsedTarget) {\n index = i;\n }\n }\n\n if (index < 0) {\n throw new PmCliError(`No history entries exist at or before timestamp ${trimmed}.`, EXIT_CODE.USAGE);\n }\n\n return {\n kind: \"timestamp\",\n raw: trimmed,\n historyIndex: index,\n };\n}\n\nfunction extractPatchFailureContext(\n patch: HistoryPatchOp[],\n error: unknown,\n): { patchIndex?: number; op?: string; path?: string; from?: string; reason?: string } {\n const context: { patchIndex?: number; op?: string; path?: string; from?: string; reason?: string } = {};\n if (error instanceof Error && error.message.trim().length > 0) {\n context.reason = error.message.trim();\n }\n if (typeof error !== \"object\" || error === null) {\n return context;\n }\n const candidate = error as {\n index?: unknown;\n operation?: unknown;\n };\n /* c8 ignore start -- parser-generated patch errors may omit index metadata in current fixtures. */\n if (typeof candidate.index === \"number\" && Number.isInteger(candidate.index) && candidate.index >= 0) {\n context.patchIndex = candidate.index;\n }\n /* c8 ignore stop */\n /* c8 ignore start -- operation payload metadata is optional in upstream json-patch failures. */\n const operationRecord =\n typeof candidate.operation === \"object\" && candidate.operation !== null\n ? (candidate.operation as { op?: unknown; path?: unknown; from?: unknown })\n : null;\n /* c8 ignore stop */\n if (operationRecord && typeof operationRecord.op === \"string\") {\n context.op = operationRecord.op;\n }\n if (operationRecord && typeof operationRecord.path === \"string\") {\n context.path = operationRecord.path;\n }\n if (operationRecord && typeof operationRecord.from === \"string\") {\n context.from = operationRecord.from;\n }\n if ((context.op === undefined || context.path === undefined) && context.patchIndex !== undefined) {\n const fallback = patch[context.patchIndex];\n /* c8 ignore start -- fallback enrichment paths are only exercised by malformed patch telemetry payloads. */\n if (fallback) {\n context.op = context.op ?? fallback.op;\n context.path = context.path ?? fallback.path;\n context.from = context.from ?? fallback.from;\n }\n /* c8 ignore stop */\n }\n return context;\n}\n\nfunction applyHistoryPatch(\n current: CanonicalReplayDocument,\n patch: HistoryPatchOp[],\n entryNumber: number,\n entryOp: string,\n): CanonicalReplayDocument {\n try {\n const normalizedPatch = normalizeReplayPatchOps(patch);\n const applied = jsonPatch.applyPatch(\n structuredClone(current),\n normalizedPatch as jsonPatch.Operation[],\n true,\n false,\n ).newDocument as unknown;\n if (\n typeof applied !== \"object\" ||\n applied === null ||\n !(\"metadata\" in applied) ||\n !(\"body\" in applied) ||\n typeof (applied as { body: unknown }).body !== \"string\" ||\n typeof (applied as { metadata: unknown }).metadata !== \"object\" ||\n (applied as { metadata: unknown }).metadata === null\n ) {\n throw new PmCliError(\n `History replay produced an invalid document shape at entry ${entryNumber}.`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n const replay = applied as { metadata: Record<string, unknown>; body: string };\n return {\n metadata: replay.metadata,\n body: replay.body,\n };\n } catch (error: unknown) {\n if (error instanceof PmCliError) {\n throw error;\n }\n const failureContext = extractPatchFailureContext(patch, error);\n const contextTokens = [\n `history_op=${entryOp}`,\n /* c8 ignore next -- contextual fields are best-effort and may be absent depending on patch failure shape. */\n failureContext.patchIndex !== undefined ? `patch_index=${failureContext.patchIndex}` : null,\n /* c8 ignore next -- contextual fields are best-effort and may be absent depending on patch failure shape. */\n failureContext.op ? `op=${failureContext.op}` : null,\n /* c8 ignore next -- contextual fields are best-effort and may be absent depending on patch failure shape. */\n failureContext.path ? `path=${failureContext.path}` : null,\n /* c8 ignore next -- contextual fields are best-effort and may be absent depending on patch failure shape. */\n failureContext.from ? `from=${failureContext.from}` : null,\n ].filter((token): token is string => token !== null);\n /* c8 ignore start -- jsonPatch/structuredClone/normalizeReplayPatchOps always throw Error instances with non-empty messages here, so extractPatchFailureContext always sets reason; the empty-suffix fallback is unreachable through applyHistoryPatch. */\n const reasonSuffix = failureContext.reason ? ` ${failureContext.reason}` : \"\";\n /* c8 ignore stop */\n throw new PmCliError(\n `Failed to apply history patch at entry ${entryNumber} (${contextTokens.join(\", \")}).${reasonSuffix}`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n}\n\nfunction replayToTarget(history: HistoryEntry[], targetIndex: number): CanonicalReplayDocument {\n let document: CanonicalReplayDocument = structuredClone(EMPTY_REPLAY_DOCUMENT);\n\n for (let i = 0; i <= targetIndex; i += 1) {\n const entry = history[i];\n const beforeHash = replayHash(document);\n if (beforeHash !== entry.before_hash) {\n throw new PmCliError(\n `History hash mismatch before replay at entry ${i + 1}.`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n\n document = applyHistoryPatch(document, entry.patch, i + 1, entry.op);\n\n const afterHash = replayHash(document);\n if (afterHash !== entry.after_hash) {\n throw new PmCliError(\n `History hash mismatch after replay at entry ${i + 1}.`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n }\n\n return document;\n}\n\nfunction ensureMaterializedRestoreTarget(\n replayDocument: CanonicalReplayDocument,\n target: ResolvedRestoreTarget,\n): CanonicalReplayDocument {\n if (Object.keys(replayDocument.metadata).length > 0) {\n return replayDocument;\n }\n throw new PmCliError(\n `Restore target ${target.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction replayCurrentDocument(history: HistoryEntry[]): ItemDocument {\n const currentReplay = replayToTarget(history, history.length - 1);\n if (Object.keys(currentReplay.metadata).length === 0) {\n return {\n metadata: {} as ItemMetadata,\n body: currentReplay.body,\n };\n }\n return canonicalDocument(replayToItemDocument(currentReplay));\n}\n\nasync function resolveRestoreSubject(\n pmRoot: string,\n id: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n typeToFolder: Record<string, string>,\n): Promise<ResolvedRestoreSubject> {\n const located = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeToFolder);\n if (located) {\n const historyPath = getHistoryPath(pmRoot, located.id);\n const historyPolicy = await enforceHistoryStreamPolicyForItem({\n pmRoot,\n settings,\n itemId: located.id,\n commandLabel: \"restore\",\n });\n return {\n id: located.id,\n historyPath,\n located,\n historyPolicyWarnings: historyPolicy.warnings,\n };\n }\n\n const normalizedId = normalizeItemId(id, settings.id_prefix);\n const rawNormalizedId = normalizeRawItemId(id);\n /* c8 ignore start -- raw-id fallback is covered by normalize-item-id utility tests. */\n const candidateIds = normalizedId === rawNormalizedId ? [normalizedId] : [normalizedId, rawNormalizedId];\n /* c8 ignore stop */\n for (const candidateId of candidateIds) {\n const historyPath = getHistoryPath(pmRoot, candidateId);\n if (await pathExists(historyPath)) {\n return {\n id: candidateId,\n historyPath,\n located: null,\n historyPolicyWarnings: [],\n };\n }\n }\n\n throw new PmCliError(`Item ${id} not found`, EXIT_CODE.NOT_FOUND);\n}\n\nfunction changedFields(beforeDocument: ItemDocument, afterDocument: ItemDocument): string[] {\n const beforeReplay = toReplayDocument(beforeDocument);\n const afterReplay = toReplayDocument(afterDocument);\n const patch = jsonPatch.compare(beforeReplay, afterReplay) as HistoryPatchOp[];\n const fields = new Set<string>();\n\n for (const op of patch) {\n if (op.path === \"/body\" || op.path.startsWith(\"/body/\")) {\n fields.add(\"body\");\n continue;\n }\n const segment = op.path.replace(/^\\/(?:metadata|front_matter)\\/?/, \"\").split(\"/\")[0];\n fields.add(segment.replaceAll(\"~1\", \"/\").replaceAll(\"~0\", \"~\"));\n }\n\n return Array.from(fields).sort((a, b) => a.localeCompare(b));\n}\n\n/**\n * Implements run restore for the public runtime surface of this module.\n */\nexport async function runRestore(\n id: string,\n target: string,\n options: RestoreCommandOptions,\n global: GlobalOptions,\n): Promise<RestoreResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n\n const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const subject = await resolveRestoreSubject(pmRoot, id, settings, typeRegistry.type_to_folder);\n const resolvedId = subject.id;\n const historyRawBeforeLock = await readFileIfExists(subject.historyPath);\n const history = await readHistoryEntries(subject.historyPath, resolvedId);\n if (history.length === 0) {\n throw new PmCliError(`No history exists for ${resolvedId}; restore is unavailable.`, EXIT_CODE.NOT_FOUND);\n }\n\n const resolvedTarget = ensureReplayTarget(target, history);\n const replayDocument = ensureMaterializedRestoreTarget(replayToTarget(history, resolvedTarget.historyIndex), resolvedTarget);\n const restoredDocument = replayToCanonicalItemDocument(replayDocument, { schema: settings.schema });\n\n if (restoredDocument.metadata.id !== resolvedId) {\n throw new PmCliError(\n `Restore target resolved to item ${restoredDocument.metadata.id}, expected ${resolvedId}.`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n const loadedItemBeforeLock = subject.located ? await readLocatedItem(subject.located, { schema: settings.schema }) : null;\n const currentItemRawBeforeLock = loadedItemBeforeLock?.raw ?? null;\n\n const author = resolveAuthor(options.author, settings.author_default);\n const releaseLock = await acquireLock(\n pmRoot,\n resolvedId,\n settings.locks.ttl_seconds,\n author,\n Boolean(options.force),\n settings.governance.force_required_for_stale_lock,\n );\n\n try {\n const historyRawUnderLock = await readFileIfExists(subject.historyPath);\n if (historyRawUnderLock !== historyRawBeforeLock) {\n throw new PmCliError(\n `History for ${resolvedId} changed while waiting for lock; retry restore.`,\n EXIT_CODE.CONFLICT,\n );\n }\n const locatedUnderLock = await locateItem(\n pmRoot,\n resolvedId,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n const loadedItemUnderLock = locatedUnderLock ? await readLocatedItem(locatedUnderLock, { schema: settings.schema }) : null;\n if ((loadedItemUnderLock?.raw ?? null) !== currentItemRawBeforeLock) {\n throw new PmCliError(`Item ${resolvedId} changed while waiting for lock; retry restore.`, EXIT_CODE.CONFLICT);\n }\n\n const existingItemPath = locatedUnderLock?.itemPath ?? null;\n const itemFormat = \"toon\";\n let resolvedCurrentDocument: ItemDocument;\n let resolvedOriginalRaw: string | null = null;\n if (loadedItemUnderLock) {\n resolvedCurrentDocument = loadedItemUnderLock.document;\n resolvedOriginalRaw = loadedItemUnderLock.raw;\n } else {\n resolvedCurrentDocument = replayCurrentDocument(history);\n }\n const assigned = resolvedCurrentDocument.metadata.assignee?.trim();\n const ownershipWarnings: string[] = [];\n const hasOwnershipConflict = assigned && assigned !== author && !options.force;\n if (hasOwnershipConflict) {\n if (settings.governance.ownership_enforcement === \"strict\") {\n throw new PmCliError(\n `Item ${resolvedId} is assigned to ${assigned}. Use --force to override.`,\n EXIT_CODE.CONFLICT,\n );\n }\n if (settings.governance.ownership_enforcement === \"warn\") {\n ownershipWarnings.push(`ownership_warning:assignee_conflict:${resolvedId}:${assigned}`);\n }\n }\n\n const serializedRestore = serializeItemDocument(restoredDocument, { format: itemFormat, schema: settings.schema });\n /* c8 ignore next -- restored item path typing is exercised in restore integration workflows. */\n const restoredItemPath = getItemPath(\n pmRoot,\n restoredDocument.metadata.type,\n resolvedId,\n itemFormat,\n typeRegistry.type_to_folder,\n );\n await writeFileAtomic(restoredItemPath, serializedRestore);\n if (existingItemPath && restoredItemPath !== existingItemPath) {\n await fs.rm(existingItemPath);\n }\n\n const historyEntry = createHistoryEntry({\n nowIso: nowIso(),\n author,\n op: \"restore\",\n before: resolvedCurrentDocument,\n after: restoredDocument,\n message: options.message,\n });\n\n try {\n await appendHistoryEntry(subject.historyPath, historyEntry);\n } catch (error: unknown) {\n if (existingItemPath && resolvedOriginalRaw !== null && restoredItemPath !== existingItemPath) {\n await writeFileAtomic(existingItemPath, resolvedOriginalRaw);\n await fs.rm(restoredItemPath, { force: true });\n } else if (existingItemPath && resolvedOriginalRaw !== null) {\n await writeFileAtomic(existingItemPath, resolvedOriginalRaw);\n } else {\n await fs.rm(restoredItemPath, { force: true });\n }\n throw error;\n }\n const restoreChangedFields = changedFields(resolvedCurrentDocument, restoredDocument);\n const hookWarnings = [\n ...(await runActiveOnWriteHooks({\n path: restoredItemPath,\n scope: \"project\",\n op: \"restore\",\n item_id: restoredDocument.metadata.id,\n item_type: restoredDocument.metadata.type,\n before: resolvedCurrentDocument,\n after: restoredDocument,\n changed_fields: [\"restored\"],\n })),\n ...(await runActiveOnWriteHooks({\n path: subject.historyPath,\n scope: \"project\",\n op: \"restore:history\",\n item_id: restoredDocument.metadata.id,\n item_type: restoredDocument.metadata.type,\n before: resolvedCurrentDocument,\n after: restoredDocument,\n changed_fields: [\"restored\"],\n })),\n ];\n recordAfterCommandAffectedItem({\n id: restoredDocument.metadata.id,\n op: \"restore\",\n item_type: restoredDocument.metadata.type,\n previous_status: resolvedCurrentDocument.metadata.status,\n status: restoredDocument.metadata.status,\n previous: projectAfterCommandItemSnapshot(resolvedCurrentDocument.metadata, restoreChangedFields),\n current: projectAfterCommandItemSnapshot(restoredDocument.metadata, restoreChangedFields),\n changed_fields: restoreChangedFields,\n });\n\n const targetEntry = history[resolvedTarget.historyIndex];\n return {\n item: restoredDocument.metadata,\n restored_from: {\n kind: resolvedTarget.kind,\n target: resolvedTarget.raw,\n history_index: resolvedTarget.historyIndex + 1,\n entry_ts: targetEntry.ts,\n entry_op: targetEntry.op,\n },\n changed_fields: restoreChangedFields,\n warnings: [...subject.historyPolicyWarnings, ...ownershipWarnings, ...hookWarnings],\n };\n } finally {\n await releaseLock();\n }\n}\n\nexport const _testOnlyRestoreCommand = {\n applyHistoryPatch,\n changedFields,\n ensureMaterializedRestoreTarget,\n ensureReplayTarget,\n extractPatchFailureContext,\n replayCurrentDocument,\n replayToTarget,\n resolveRestoreSubject,\n};\n"],"names":[],"mappings":"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","debugId":"edfd2704-35c2-5e60-ade2-713d3db82c2b"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
toDefaultFolder
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FRUFKWNK.js";
|
|
4
4
|
import {
|
|
5
5
|
BUILTIN_ITEM_TYPE_VALUES
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HMOADQVT.js";
|
|
7
7
|
|
|
8
8
|
// dist/core/schema/item-types-file.js
|
|
9
9
|
!(function() {
|
|
@@ -262,4 +262,4 @@ export {
|
|
|
262
262
|
buildInvalidTypeHint,
|
|
263
263
|
buildInvalidTypeError
|
|
264
264
|
};
|
|
265
|
-
//# sourceMappingURL=chunk-
|
|
265
|
+
//# sourceMappingURL=chunk-FKBDKV7Y.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
normalizeItemTypeDefinition,
|
|
5
5
|
normalizeItemTypeStringList,
|
|
6
6
|
strictPolicyCommand
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-HMOADQVT.js";
|
|
8
8
|
|
|
9
9
|
// dist/core/item/type-registry.js
|
|
10
10
|
!(function() {
|
|
@@ -654,4 +654,4 @@ export {
|
|
|
654
654
|
resolveCommandOptionPolicyState,
|
|
655
655
|
validateTypeOptions
|
|
656
656
|
};
|
|
657
|
-
//# sourceMappingURL=chunk-
|
|
657
|
+
//# sourceMappingURL=chunk-FRUFKWNK.js.map
|
|
@@ -3,21 +3,21 @@ import {
|
|
|
3
3
|
} from "./chunk-WW4E2DC3.js";
|
|
4
4
|
import {
|
|
5
5
|
parseCsvKv
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UV6IYE5U.js";
|
|
7
7
|
import {
|
|
8
8
|
parseLimit
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-B473GZWW.js";
|
|
10
10
|
import {
|
|
11
11
|
locateItem,
|
|
12
12
|
mutateItem,
|
|
13
13
|
readLocatedItem
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-SX75ADBK.js";
|
|
15
15
|
import {
|
|
16
16
|
resolveItemTypeRegistry
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-FRUFKWNK.js";
|
|
18
18
|
import {
|
|
19
19
|
nowIso
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-YCJX76PW.js";
|
|
21
21
|
import {
|
|
22
22
|
EXIT_CODE,
|
|
23
23
|
PmCliError,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
pathExists,
|
|
27
27
|
readSettings,
|
|
28
28
|
resolvePmRoot
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-HMOADQVT.js";
|
|
30
30
|
|
|
31
31
|
// dist/cli/commands/annotation-command.js
|
|
32
32
|
!(function() {
|
|
@@ -222,4 +222,4 @@ export {
|
|
|
222
222
|
wrapOwnershipConflict,
|
|
223
223
|
runAnnotationCommand
|
|
224
224
|
};
|
|
225
|
-
//# sourceMappingURL=chunk-
|
|
225
|
+
//# sourceMappingURL=chunk-FWPDUYEY.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
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]="1236de77-7e22-557c-870c-b1279c7eabc9")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
collectStaleVectorizationIds
|
|
5
5
|
} from "./chunk-ROGZTCCB.js";
|
|
@@ -7,22 +7,25 @@ import {
|
|
|
7
7
|
buildEventCorpus,
|
|
8
8
|
buildPlanFlatCorpus,
|
|
9
9
|
buildReminderCorpus,
|
|
10
|
+
buildSearchCorpus,
|
|
10
11
|
executeEmbeddingRequest,
|
|
11
12
|
executeVectorQuery,
|
|
12
13
|
readVectorizationStatusLedger,
|
|
13
14
|
resolveEmbeddingProviders,
|
|
15
|
+
resolveSearchCorpusFields,
|
|
14
16
|
resolveSettingsWithSemanticRuntimeDefaults,
|
|
15
17
|
resolveVectorStores
|
|
16
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-OTHIWLMB.js";
|
|
17
19
|
import {
|
|
18
20
|
buildContentFilterEcho,
|
|
19
21
|
buildGovernanceMissingFilterEcho,
|
|
20
22
|
collectRuntimeFilterValues,
|
|
23
|
+
isStatusAllFilterInput,
|
|
21
24
|
matchesRuntimeFilters,
|
|
22
25
|
parseStatusFilterCsv,
|
|
23
26
|
resolveContentFieldFilters,
|
|
24
27
|
resolveMissingMetadataFilters
|
|
25
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-EBH56IXK.js";
|
|
26
29
|
import {
|
|
27
30
|
hasContentFieldFilter,
|
|
28
31
|
itemMatchesContentFilters
|
|
@@ -31,31 +34,30 @@ import {
|
|
|
31
34
|
hasMissingMetadataFilter,
|
|
32
35
|
itemMatchesMissingMetadata,
|
|
33
36
|
lifecycleClassifierFromStatusRegistry
|
|
34
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-CZUB4XWO.js";
|
|
35
38
|
import {
|
|
36
39
|
parseLimit,
|
|
37
40
|
parsePriority,
|
|
38
41
|
parseType
|
|
39
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-C4N5I7ZW.js";
|
|
40
43
|
import {
|
|
41
44
|
collectRegisteredItemFieldNames,
|
|
42
45
|
listAllDocumentCandidatesCached,
|
|
43
46
|
listAllFrontMatter,
|
|
44
47
|
toItemRecord
|
|
45
|
-
} from "./chunk-
|
|
46
|
-
import "./chunk-22YA6GCA.js";
|
|
48
|
+
} from "./chunk-NIUEXCFS.js";
|
|
47
49
|
import {
|
|
48
50
|
isTerminalStatus,
|
|
49
51
|
parseItemDocument
|
|
50
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-LEU5GHRC.js";
|
|
51
53
|
import {
|
|
52
54
|
resolveItemTypeRegistry
|
|
53
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-QZTWBFXJ.js";
|
|
54
56
|
import {
|
|
55
57
|
compareTimestampStrings,
|
|
56
58
|
nowIso,
|
|
57
59
|
resolveIsoOrRelative
|
|
58
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-NSBZ2CKF.js";
|
|
59
61
|
import {
|
|
60
62
|
EXIT_CODE,
|
|
61
63
|
PmCliError,
|
|
@@ -74,7 +76,7 @@ import {
|
|
|
74
76
|
runActiveOnReadHooks,
|
|
75
77
|
toNonEmptyString,
|
|
76
78
|
toNonEmptyStringOrUndefined
|
|
77
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-434HM6Z5.js";
|
|
78
80
|
|
|
79
81
|
// dist/cli/commands/search.js
|
|
80
82
|
import fs from "node:fs/promises";
|
|
@@ -318,6 +320,112 @@ async function rerankCandidatesWithEmbeddings(provider, model, query, candidates
|
|
|
318
320
|
return scoreById;
|
|
319
321
|
}
|
|
320
322
|
|
|
323
|
+
// dist/core/search/bm25.js
|
|
324
|
+
var DEFAULT_BM25_K1 = 1.2;
|
|
325
|
+
var DEFAULT_BM25_B = 0.75;
|
|
326
|
+
function tokenizeBm25(text) {
|
|
327
|
+
return tokenizeAlphaNumeric(text);
|
|
328
|
+
}
|
|
329
|
+
function buildTermFrequencies(tokens) {
|
|
330
|
+
const frequencies = /* @__PURE__ */ new Map();
|
|
331
|
+
for (const token of tokens) {
|
|
332
|
+
frequencies.set(token, (frequencies.get(token) ?? 0) + 1);
|
|
333
|
+
}
|
|
334
|
+
return frequencies;
|
|
335
|
+
}
|
|
336
|
+
function buildBm25Index(documents) {
|
|
337
|
+
const stats = [];
|
|
338
|
+
const documentFrequency = /* @__PURE__ */ new Map();
|
|
339
|
+
let totalLength = 0;
|
|
340
|
+
for (const document of documents) {
|
|
341
|
+
const tokens = tokenizeBm25(document.text);
|
|
342
|
+
const termFrequencies = buildTermFrequencies(tokens);
|
|
343
|
+
totalLength += tokens.length;
|
|
344
|
+
for (const term of termFrequencies.keys()) {
|
|
345
|
+
documentFrequency.set(term, (documentFrequency.get(term) ?? 0) + 1);
|
|
346
|
+
}
|
|
347
|
+
stats.push({ id: document.id, termFrequencies, length: tokens.length });
|
|
348
|
+
}
|
|
349
|
+
const documentCount = stats.length;
|
|
350
|
+
return {
|
|
351
|
+
documents: stats,
|
|
352
|
+
documentFrequency,
|
|
353
|
+
documentCount,
|
|
354
|
+
averageDocumentLength: documentCount > 0 ? totalLength / documentCount : 0
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
function inverseDocumentFrequency(documentCount, termDocumentFrequency) {
|
|
358
|
+
return Math.log(1 + (documentCount - termDocumentFrequency + 0.5) / (termDocumentFrequency + 0.5));
|
|
359
|
+
}
|
|
360
|
+
function scoreBm25Query(index, queryTokens, params) {
|
|
361
|
+
const scores = /* @__PURE__ */ new Map();
|
|
362
|
+
if (index.documentCount === 0 || index.averageDocumentLength === 0) {
|
|
363
|
+
return scores;
|
|
364
|
+
}
|
|
365
|
+
const distinctQueryTerms = [...new Set(queryTokens.filter((token) => token.length > 0))];
|
|
366
|
+
if (distinctQueryTerms.length === 0) {
|
|
367
|
+
return scores;
|
|
368
|
+
}
|
|
369
|
+
const idfByTerm = /* @__PURE__ */ new Map();
|
|
370
|
+
for (const term of distinctQueryTerms) {
|
|
371
|
+
const termDocumentFrequency = index.documentFrequency.get(term);
|
|
372
|
+
if (termDocumentFrequency === void 0) {
|
|
373
|
+
continue;
|
|
374
|
+
}
|
|
375
|
+
idfByTerm.set(term, inverseDocumentFrequency(index.documentCount, termDocumentFrequency));
|
|
376
|
+
}
|
|
377
|
+
if (idfByTerm.size === 0) {
|
|
378
|
+
return scores;
|
|
379
|
+
}
|
|
380
|
+
for (const document of index.documents) {
|
|
381
|
+
let score = 0;
|
|
382
|
+
for (const [term, idf] of idfByTerm) {
|
|
383
|
+
const termFrequency = document.termFrequencies.get(term);
|
|
384
|
+
if (termFrequency === void 0) {
|
|
385
|
+
continue;
|
|
386
|
+
}
|
|
387
|
+
const lengthNormalization = 1 - params.b + params.b * document.length / index.averageDocumentLength;
|
|
388
|
+
const denominator = termFrequency + params.k1 * lengthNormalization;
|
|
389
|
+
score += idf * (termFrequency * (params.k1 + 1) / denominator);
|
|
390
|
+
}
|
|
391
|
+
if (score > 0) {
|
|
392
|
+
scores.set(document.id, score);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
return scores;
|
|
396
|
+
}
|
|
397
|
+
function resolveClampedParam(candidate, fallback, min, max) {
|
|
398
|
+
if (typeof candidate !== "number" || !Number.isFinite(candidate)) {
|
|
399
|
+
return fallback;
|
|
400
|
+
}
|
|
401
|
+
return Math.min(max, Math.max(min, candidate));
|
|
402
|
+
}
|
|
403
|
+
function flattenSearchCorpusText(corpus) {
|
|
404
|
+
const collectValueText = (value) => {
|
|
405
|
+
if (typeof value === "string") {
|
|
406
|
+
return [value];
|
|
407
|
+
}
|
|
408
|
+
if (typeof value === "number") {
|
|
409
|
+
return [String(value)];
|
|
410
|
+
}
|
|
411
|
+
if (Array.isArray(value)) {
|
|
412
|
+
return value.flatMap(collectValueText);
|
|
413
|
+
}
|
|
414
|
+
if (typeof value === "object" && value !== null) {
|
|
415
|
+
return Object.values(value).flatMap(collectValueText);
|
|
416
|
+
}
|
|
417
|
+
return [];
|
|
418
|
+
};
|
|
419
|
+
return collectValueText(Object.values(corpus)).join(" ");
|
|
420
|
+
}
|
|
421
|
+
function resolveBm25Params(settings) {
|
|
422
|
+
const bm25 = settings?.search?.bm25;
|
|
423
|
+
return {
|
|
424
|
+
k1: resolveClampedParam(bm25?.k1, DEFAULT_BM25_K1, 0, 1e3),
|
|
425
|
+
b: resolveClampedParam(bm25?.b, DEFAULT_BM25_B, 0, 1)
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
|
|
321
429
|
// dist/cli/commands/search.js
|
|
322
430
|
var DEFAULT_COMPACT_SEARCH_FIELDS = [
|
|
323
431
|
"id",
|
|
@@ -405,7 +513,7 @@ function buildCompactSearchFilterSummary(params) {
|
|
|
405
513
|
const { mode, matchMode, options, includeLinked, titleExact, phraseExact, scoreThreshold, hybridSemanticWeight, runtimeFieldFilters } = params;
|
|
406
514
|
const filters = {};
|
|
407
515
|
if (options.status !== void 0) {
|
|
408
|
-
filters.status = options.status;
|
|
516
|
+
filters.status = isStatusAllFilterInput(options.status) ? "all" : options.status;
|
|
409
517
|
}
|
|
410
518
|
if (options.type !== void 0) {
|
|
411
519
|
filters.type = options.type;
|
|
@@ -479,7 +587,7 @@ function buildVerboseSearchFilters(params) {
|
|
|
479
587
|
return {
|
|
480
588
|
mode: effectiveMode,
|
|
481
589
|
match_mode: matchMode,
|
|
482
|
-
status: options.status ?? null,
|
|
590
|
+
status: isStatusAllFilterInput(options.status) ? "all" : options.status ?? null,
|
|
483
591
|
type: options.type ?? null,
|
|
484
592
|
tag: options.tag ?? null,
|
|
485
593
|
priority: options.priority ?? null,
|
|
@@ -682,7 +790,9 @@ var _testOnlySearchCommand = {
|
|
|
682
790
|
collectExactPhraseFields,
|
|
683
791
|
collectLinkedPaths,
|
|
684
792
|
combineHybridHits,
|
|
793
|
+
computeBuiltInBm25Hits,
|
|
685
794
|
computeSemanticOrHybridHits,
|
|
795
|
+
resolveBuiltInBm25Mode,
|
|
686
796
|
countOccurrences,
|
|
687
797
|
dependencyEntries,
|
|
688
798
|
documentContainsExactPhrase,
|
|
@@ -1054,9 +1164,10 @@ function buildHitHighlights(document, matchedFields, tokens) {
|
|
|
1054
1164
|
}
|
|
1055
1165
|
function scoreDocument(document, tokens, normalizedQuery, linkedCorpus, tuning, idPrefix, applyCoverageBonus = false) {
|
|
1056
1166
|
const item = document.metadata;
|
|
1057
|
-
const normalizedId = item.id
|
|
1167
|
+
const normalizedId = normalizeSearchPhrase(item.id);
|
|
1058
1168
|
const normalizedIdPrefix = typeof idPrefix === "string" ? idPrefix.trim().toLowerCase() : "";
|
|
1059
|
-
const
|
|
1169
|
+
const normalizedIdPrefixPhrase = normalizeSearchPhrase(normalizedIdPrefix);
|
|
1170
|
+
const normalizedShortId = normalizedIdPrefixPhrase.length > 0 && normalizedId.startsWith(normalizedIdPrefixPhrase) ? normalizedId.slice(normalizedIdPrefixPhrase.length).trim() : normalizedId;
|
|
1060
1171
|
if (normalizedQuery === normalizedId || normalizedQuery === normalizedShortId) {
|
|
1061
1172
|
return {
|
|
1062
1173
|
item,
|
|
@@ -1422,7 +1533,7 @@ function forceExactIdHitsToTop(rankedHits, keywordHits) {
|
|
|
1422
1533
|
}));
|
|
1423
1534
|
return [...promoted, ...remaining];
|
|
1424
1535
|
}
|
|
1425
|
-
function combineHybridHits(filteredById, semanticScores, keywordHits, hybridSemanticWeight) {
|
|
1536
|
+
function combineHybridHits(filteredById, semanticScores, keywordHits, hybridSemanticWeight, semanticFieldLabel = "semantic") {
|
|
1426
1537
|
const keywordScores = new Map(keywordHits.map((entry) => [entry.item.id, entry.score]));
|
|
1427
1538
|
const keywordMatches = new Map(keywordHits.map((entry) => [entry.item.id, entry.matched_fields]));
|
|
1428
1539
|
const normalizedSemantic = normalizeScoreMap(semanticScores);
|
|
@@ -1439,7 +1550,7 @@ function combineHybridHits(filteredById, semanticScores, keywordHits, hybridSema
|
|
|
1439
1550
|
}
|
|
1440
1551
|
const matchedFields = /* @__PURE__ */ new Set();
|
|
1441
1552
|
if (semanticScores.has(id)) {
|
|
1442
|
-
matchedFields.add(
|
|
1553
|
+
matchedFields.add(semanticFieldLabel);
|
|
1443
1554
|
}
|
|
1444
1555
|
for (const field of keywordMatches.get(id) ?? []) {
|
|
1445
1556
|
matchedFields.add(field);
|
|
@@ -1451,6 +1562,35 @@ function combineHybridHits(filteredById, semanticScores, keywordHits, hybridSema
|
|
|
1451
1562
|
};
|
|
1452
1563
|
}).filter((entry) => entry !== null);
|
|
1453
1564
|
}
|
|
1565
|
+
function resolveBuiltInBm25Mode(params) {
|
|
1566
|
+
const normalized = params.configuredProvider?.trim().toLowerCase();
|
|
1567
|
+
if (normalized === "bm25") {
|
|
1568
|
+
return "explicit";
|
|
1569
|
+
}
|
|
1570
|
+
if (normalized === "auto" && !params.hasEmbeddingProvider && !params.hasExtensionSearchProvider) {
|
|
1571
|
+
return "auto-fallback";
|
|
1572
|
+
}
|
|
1573
|
+
return null;
|
|
1574
|
+
}
|
|
1575
|
+
function computeBuiltInBm25Hits(params) {
|
|
1576
|
+
const bm25Documents = params.filteredDocuments.map((document) => ({
|
|
1577
|
+
id: document.metadata.id,
|
|
1578
|
+
text: flattenSearchCorpusText(buildSearchCorpus(document, { fields: params.corpusFields }))
|
|
1579
|
+
}));
|
|
1580
|
+
const index = buildBm25Index(bm25Documents);
|
|
1581
|
+
const bm25Scores = scoreBm25Query(index, tokenizeBm25(params.query), params.bm25Params);
|
|
1582
|
+
const filteredById = new Map(params.filteredDocuments.map((document) => [document.metadata.id, document]));
|
|
1583
|
+
if (params.requestedMode === "semantic") {
|
|
1584
|
+
const semanticHits = [...bm25Scores].map(([id, score]) => ({
|
|
1585
|
+
item: filteredById.get(id).metadata,
|
|
1586
|
+
score,
|
|
1587
|
+
matched_fields: ["bm25"]
|
|
1588
|
+
}));
|
|
1589
|
+
return forceExactIdHitsToTop(semanticHits, params.keywordHits);
|
|
1590
|
+
}
|
|
1591
|
+
const hybridHits = combineHybridHits(filteredById, bm25Scores, params.keywordHits, params.hybridSemanticWeight, "bm25");
|
|
1592
|
+
return forceExactIdHitsToTop(hybridHits, params.keywordHits);
|
|
1593
|
+
}
|
|
1454
1594
|
function mergeVectorHitsById(vectorHitGroups) {
|
|
1455
1595
|
const bestById = /* @__PURE__ */ new Map();
|
|
1456
1596
|
for (const group of vectorHitGroups) {
|
|
@@ -1774,6 +1914,11 @@ async function runSearch(rawQuery, rawOptions, global) {
|
|
|
1774
1914
|
const vectorResolution = resolveVectorStores(settings);
|
|
1775
1915
|
const extensionSearchProvider = resolveExtensionSearchProvider(settings);
|
|
1776
1916
|
const extensionVectorAdapter = resolveExtensionVectorAdapter(settings);
|
|
1917
|
+
const bm25Mode = resolveBuiltInBm25Mode({
|
|
1918
|
+
configuredProvider: toOptionalNonEmptyString(settings.search?.provider),
|
|
1919
|
+
hasEmbeddingProvider: providerResolution.active !== null,
|
|
1920
|
+
hasExtensionSearchProvider: extensionSearchProvider !== null
|
|
1921
|
+
});
|
|
1777
1922
|
const queryExpansion = resolveQueryExpansionConfig(settings, providerResolution.active?.name ?? null);
|
|
1778
1923
|
const rerank = resolveRerankConfig(settings, providerResolution.active?.model ?? toOptionalNonEmptyString(settings.search?.embedding_model) ?? "text-embedding-3-small");
|
|
1779
1924
|
const queryExpansionProvider = resolveExtensionSearchProviderByName(queryExpansion.provider ?? void 0);
|
|
@@ -1829,7 +1974,22 @@ async function runSearch(rawQuery, rawOptions, global) {
|
|
|
1829
1974
|
applyCoverageBonus
|
|
1830
1975
|
)).filter((entry) => entry !== null).filter((entry) => matchMode !== "and" || entry.matched_all_terms === true);
|
|
1831
1976
|
let hits = keywordHits;
|
|
1832
|
-
|
|
1977
|
+
const useBuiltInBm25 = bm25Mode !== null && effectiveMode !== "keyword";
|
|
1978
|
+
if (bm25Mode !== null && effectiveMode !== "keyword") {
|
|
1979
|
+
hits = computeBuiltInBm25Hits({
|
|
1980
|
+
requestedMode: effectiveMode,
|
|
1981
|
+
query,
|
|
1982
|
+
filteredDocuments,
|
|
1983
|
+
keywordHits,
|
|
1984
|
+
corpusFields: resolveSearchCorpusFields(settings),
|
|
1985
|
+
bm25Params: resolveBm25Params(settings),
|
|
1986
|
+
hybridSemanticWeight
|
|
1987
|
+
});
|
|
1988
|
+
if (bm25Mode === "auto-fallback") {
|
|
1989
|
+
warnings.push(`search_${effectiveMode}_offline_bm25:no_embedding_provider:using_lexical_bm25`);
|
|
1990
|
+
}
|
|
1991
|
+
}
|
|
1992
|
+
if (effectiveMode !== "keyword" && !useBuiltInBm25) {
|
|
1833
1993
|
const builtInSemanticWillRun = !extensionSearchProvider && providerResolution.active !== null && (vectorResolution.active !== null || extensionVectorAdapter !== null);
|
|
1834
1994
|
if (modeWasExplicit && builtInSemanticWillRun) {
|
|
1835
1995
|
await maybeEmitVectorIndexStaleWarning(pmRoot, filteredDocuments, warnings);
|
|
@@ -2024,16 +2184,17 @@ async function runSearch(rawQuery, rawOptions, global) {
|
|
|
2024
2184
|
...warnings.length > 0 ? { warnings } : {}
|
|
2025
2185
|
};
|
|
2026
2186
|
}
|
|
2187
|
+
|
|
2027
2188
|
export {
|
|
2028
|
-
_testOnlySearchCommand,
|
|
2029
|
-
classifyImplicitSemanticFallbackReason,
|
|
2030
2189
|
collectErrorCauseCodes,
|
|
2031
|
-
|
|
2190
|
+
classifyImplicitSemanticFallbackReason,
|
|
2191
|
+
_testOnlySearchCommand,
|
|
2032
2192
|
resolveSearchMaxResults,
|
|
2033
2193
|
resolveSearchScoreThreshold,
|
|
2194
|
+
resolveHybridSemanticWeight,
|
|
2034
2195
|
resolveSearchTuning,
|
|
2035
2196
|
runSearch
|
|
2036
2197
|
};
|
|
2037
|
-
//# sourceMappingURL=
|
|
2198
|
+
//# sourceMappingURL=chunk-GMHPNNYG.js.map
|
|
2038
2199
|
|
|
2039
|
-
//# debugId=
|
|
2200
|
+
//# debugId=1236de77-7e22-557c-870c-b1279c7eabc9
|