@unbrained/pm-cli 2026.7.2 → 2026.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +3 -3
- package/CHANGELOG.md +29 -0
- package/CONTRIBUTING.md +38 -9
- package/README.md +1 -5
- package/dist/cli/commander-usage.js +54 -41
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/activity.js +79 -57
- package/dist/cli/commands/activity.js.map +1 -1
- package/dist/cli/commands/calendar.js +3 -3
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/close-many.js +106 -65
- package/dist/cli/commands/close-many.js.map +1 -1
- package/dist/cli/commands/completion.js +231 -345
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/create.d.ts +2 -59
- package/dist/cli/commands/create.js +38 -39
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/extension/doctor.js +56 -67
- package/dist/cli/commands/extension/doctor.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.js +54 -133
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension/shared.js +21 -15
- package/dist/cli/commands/extension/shared.js.map +1 -1
- package/dist/cli/commands/files.js +3 -3
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/health.js +101 -112
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history-compact.js +9 -18
- package/dist/cli/commands/history-compact.js.map +1 -1
- package/dist/cli/commands/history-repair.js +9 -19
- package/dist/cli/commands/history-repair.js.map +1 -1
- package/dist/cli/commands/init-agent-guidance.js +160 -111
- package/dist/cli/commands/init-agent-guidance.js.map +1 -1
- package/dist/cli/commands/init.js +3 -3
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/item-filter-options.d.ts +2 -0
- package/dist/cli/commands/item-filter-options.js +2 -2
- package/dist/cli/commands/item-filter-options.js.map +1 -1
- package/dist/cli/commands/mutation-command-options.d.ts +78 -0
- package/dist/cli/commands/mutation-command-options.js +10 -0
- package/dist/cli/commands/mutation-command-options.js.map +1 -0
- package/dist/cli/commands/next.js +13 -10
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/profile.js +23 -15
- package/dist/cli/commands/profile.js.map +1 -1
- package/dist/cli/commands/reindex.js +3 -3
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/shared-unset-fields.d.ts +19 -0
- package/dist/cli/commands/shared-unset-fields.js +31 -2
- package/dist/cli/commands/shared-unset-fields.js.map +1 -1
- package/dist/cli/commands/update.d.ts +2 -59
- package/dist/cli/commands/update.js +26 -97
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +2 -0
- package/dist/cli/commands/validate.js +16 -4
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/error-guidance.js +9 -6
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/extension-command-help.js +27 -19
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/help-json-payload.js +57 -49
- package/dist/cli/help-json-payload.js.map +1 -1
- package/dist/cli/main.js +48 -32
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +215 -213
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +368 -368
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +303 -299
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/registration-helpers.d.ts +4 -0
- package/dist/cli/registration-helpers.js +51 -56
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-IDS5GSYG.js +16 -0
- package/dist/cli-bundle/chunks/{activity-CUC4JY3U.js → activity-OENQCYZD.js} +9 -9
- package/dist/cli-bundle/chunks/{aggregate-SW5PNGCS.js → aggregate-EC4LWS3U.js} +8 -8
- package/dist/cli-bundle/chunks/{aggregate-DKUTRY6R.js → aggregate-RCB3QJJE.js} +8 -8
- package/dist/cli-bundle/chunks/{append-H32VOR2Y.js → append-ADBOI3A6.js} +8 -8
- package/dist/cli-bundle/chunks/{append-UBM632FK.js → append-XLEKVVWB.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-Q6NXOHS6.js → chunk-2LRMWMZ6.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-2227673O.js → chunk-2ONH3WG6.js} +32 -13
- package/dist/cli-bundle/chunks/{chunk-2227673O.js.map → chunk-2ONH3WG6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MNBPX5JS.js → chunk-2VK677OA.js} +72 -49
- package/dist/cli-bundle/chunks/chunk-2VK677OA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KLXF7NCC.js → chunk-3C5T3ZEO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JMK5GCK2.js → chunk-3MLQZI3H.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BTX5MIQF.js → chunk-4EVY7CQN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Q6K2OACU.js → chunk-4IW7STMB.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-6YCYF2AI.js → chunk-4KPQQ42D.js} +166 -110
- package/dist/cli-bundle/chunks/chunk-4KPQQ42D.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BVZZN2LH.js → chunk-4OXNQHKQ.js} +23 -17
- package/dist/cli-bundle/chunks/{chunk-BVZZN2LH.js.map → chunk-4OXNQHKQ.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UWKEJMZU.js → chunk-4PJYRA3V.js} +31 -12
- package/dist/cli-bundle/chunks/{chunk-UWKEJMZU.js.map → chunk-4PJYRA3V.js.map} +3 -3
- package/dist/cli-bundle/chunks/{chunk-EMPGXBUF.js → chunk-4SHME4VR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6ITZLD4T.js → chunk-5FYY76HR.js} +28 -99
- package/dist/cli-bundle/chunks/chunk-5FYY76HR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-OTUJZKGI.js → chunk-6QY2NA2M.js} +24 -18
- package/dist/cli-bundle/chunks/{chunk-OTUJZKGI.js.map → chunk-6QY2NA2M.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-2KWL5NPW.js → chunk-6YB7HG2J.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-36UGKF4O.js → chunk-724VLYDJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XCHUVHKU.js → chunk-75VMARGO.js} +11 -11
- package/dist/cli-bundle/chunks/chunk-75VMARGO.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XWGEMNBR.js → chunk-7745CXNI.js} +119 -195
- package/dist/cli-bundle/chunks/chunk-7745CXNI.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YPKFV2JR.js → chunk-7G5SUU6F.js} +76 -54
- package/dist/cli-bundle/chunks/chunk-7G5SUU6F.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Y4NRKBFW.js → chunk-7ITQSEBL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-W47SML5B.js → chunk-A222YWOQ.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-3LCUASYG.js → chunk-A2W3XKAD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KN3URLKS.js → chunk-AOP2EMK3.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-RM37OPYK.js → chunk-AZMPKLIA.js} +72 -49
- package/dist/cli-bundle/chunks/chunk-AZMPKLIA.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7NSPKJUS.js → chunk-BDDYM4LH.js} +262 -252
- package/dist/cli-bundle/chunks/chunk-BDDYM4LH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-JXAUVO6X.js → chunk-CN4OAA2G.js} +55 -20
- package/dist/cli-bundle/chunks/chunk-CN4OAA2G.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-IEEJQCZ4.js → chunk-CQFZRLXQ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4NUOWFBT.js → chunk-CQISNF3Z.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-S62UANU7.js → chunk-D2LDM35X.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GRRG3MCT.js → chunk-DEIDJQZK.js} +57 -136
- package/dist/cli-bundle/chunks/chunk-DEIDJQZK.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-IG5JYZGU.js → chunk-DJ5S2LDY.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-A6VOGKBA.js → chunk-EB4BBEZD.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-QH3FSKRJ.js → chunk-EH23N5FX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HQTPRV4D.js → chunk-FDNJMYZB.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-K2VYLVX4.js → chunk-FMWQRMHS.js} +33 -6
- package/dist/cli-bundle/chunks/chunk-FMWQRMHS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-N2JSWVWG.js → chunk-HL742IBM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3AZUFQK6.js → chunk-J4KNRDI3.js} +59 -70
- package/dist/cli-bundle/chunks/{chunk-3AZUFQK6.js.map → chunk-J4KNRDI3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-66Z3X7ZG.js → chunk-JYLFF7GJ.js} +166 -110
- package/dist/cli-bundle/chunks/chunk-JYLFF7GJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GFMSLORL.js → chunk-JZJJEJBR.js} +75 -53
- package/dist/cli-bundle/chunks/chunk-JZJJEJBR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-7TH5NMVB.js → chunk-KKHIQOTN.js} +25 -19
- package/dist/cli-bundle/chunks/chunk-KKHIQOTN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-5GVTFFTC.js → chunk-LLQLLAKU.js} +118 -194
- package/dist/cli-bundle/chunks/chunk-LLQLLAKU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KIYCOJ63.js → chunk-M34MVAOP.js} +58 -137
- package/dist/cli-bundle/chunks/chunk-M34MVAOP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-CZPVDLD2.js → chunk-M6PR5BC6.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-XEWQKDYZ.js → chunk-MTB4PRA3.js} +10 -10
- package/dist/cli-bundle/chunks/chunk-MTB4PRA3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-MRD4T5LF.js → chunk-MZ4NH46V.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AIAIXG7I.js → chunk-MZG6I2Q2.js} +39 -5
- package/dist/cli-bundle/chunks/chunk-MZG6I2Q2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ZNHEYCDD.js → chunk-N2LOJUBB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WJAMWAHZ.js → chunk-NGDK3KEZ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-SYNKD3ZG.js → chunk-NHDR3UCW.js} +46 -60
- package/dist/cli-bundle/chunks/chunk-NHDR3UCW.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2CHRYUXL.js → chunk-NHKXOMZ5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7MYWF4ZX.js → chunk-OTSP6UEX.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-UGLU6Q2I.js → chunk-PUVPC5DL.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-LTRAF2D7.js → chunk-PV5JS7MP.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KCO2EAN5.js → chunk-Q2266G4S.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-SYVUU7EK.js → chunk-Q3XVLRCJ.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-AJEBCRIY.js → chunk-QFXFKYNQ.js} +47 -61
- package/dist/cli-bundle/chunks/chunk-QFXFKYNQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-6ZMBJRDJ.js → chunk-R7EMP4JG.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-SPM2XLWI.js → chunk-SBNT6SLO.js} +22 -7
- package/dist/cli-bundle/chunks/chunk-SBNT6SLO.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-I66WE2HE.js → chunk-SL2ANJSV.js} +260 -250
- package/dist/cli-bundle/chunks/chunk-SL2ANJSV.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-U2BEEM2X.js → chunk-T5RTYLZJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UTSH5GWX.js → chunk-TGYDJEJH.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-H4GRLYJS.js → chunk-TO4KCIOT.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-EUKTMRN3.js → chunk-TUV7SIWZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-N3QCJS4M.js → chunk-UGDONITK.js} +58 -69
- package/dist/cli-bundle/chunks/{chunk-N3QCJS4M.js.map → chunk-UGDONITK.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NRZS637N.js → chunk-UYLA5ROU.js} +56 -21
- package/dist/cli-bundle/chunks/chunk-UYLA5ROU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-55XRYWEG.js → chunk-V655JQ5J.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-3Q2HBMTI.js → chunk-W5X3AHJN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XTHQWXVC.js → chunk-WBWRQS32.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-UT73HUPC.js → chunk-WOOB7PV7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5PGBHRY3.js → chunk-WSDIALO4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LRKMWUUV.js → chunk-WTXDLBSZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FFOQHGNH.js → chunk-XBIYI23P.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-7W4H4K26.js → chunk-XFO2NJY6.js} +29 -100
- package/dist/cli-bundle/chunks/chunk-XFO2NJY6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-TPOFWBMY.js → chunk-XQCWTSLO.js} +26 -20
- package/dist/cli-bundle/chunks/chunk-XQCWTSLO.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2ASNV4DH.js → chunk-Y2VSCQ77.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-ZNT7KEWE.js → chunk-YZR7UMZ6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YLZZ6T54.js → chunk-YZWXMDNH.js} +23 -8
- package/dist/cli-bundle/chunks/chunk-YZWXMDNH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-CYBDUHNO.js → chunk-ZIEGTQCY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TTHCEV5Q.js → chunk-ZZWMJVW2.js} +4 -4
- package/dist/cli-bundle/chunks/{claim-Z7MEQCBT.js → claim-D6L33A5Y.js} +8 -8
- package/dist/cli-bundle/chunks/{claim-SENTPZBN.js → claim-YAFUTPVK.js} +8 -8
- package/dist/cli-bundle/chunks/close-KLDLHAOP.js +14 -0
- package/dist/cli-bundle/chunks/{close-424MX4CU.js → close-TGYXG7TV.js} +7 -7
- package/dist/cli-bundle/chunks/{close-many-SWY34BII.js → close-many-4QSWKCRU.js} +119 -76
- package/dist/cli-bundle/chunks/close-many-4QSWKCRU.js.map +7 -0
- package/dist/cli-bundle/chunks/{close-many-2IV4J2TR.js → close-many-SNA6LNZH.js} +120 -77
- package/dist/cli-bundle/chunks/close-many-SNA6LNZH.js.map +1 -0
- package/dist/cli-bundle/chunks/{comments-4FGNTSNV.js → comments-QC6ARR5X.js} +9 -9
- package/dist/cli-bundle/chunks/{comments-7YS5MY5X.js → comments-ZHVYGUVC.js} +9 -9
- package/dist/cli-bundle/chunks/{config-G74GISC4.js → config-O6W2EU2G.js} +7 -7
- package/dist/cli-bundle/chunks/{config-BZJKK7FZ.js → config-XQRFJXJP.js} +7 -7
- package/dist/cli-bundle/chunks/{context-LHVKJSPJ.js → context-IHE3IXN5.js} +12 -12
- package/dist/cli-bundle/chunks/{context-ZQY54JNS.js → context-WSYWBEUL.js} +12 -12
- package/dist/cli-bundle/chunks/{contracts-FIZLMP7O.js → contracts-CVBINC7C.js} +3 -3
- package/dist/cli-bundle/chunks/{contracts-CP2EZJC7.js → contracts-NLCDIZAT.js} +3 -3
- package/dist/cli-bundle/chunks/{copy-TLW7JTQT.js → copy-7MUQC44A.js} +5 -5
- package/dist/cli-bundle/chunks/{copy-GYNQQPW2.js → copy-ANWXDJVC.js} +5 -5
- package/dist/cli-bundle/chunks/create-AJ6HUR5W.js +28 -0
- package/dist/cli-bundle/chunks/{create-VSKYSOCD.js → create-JIA2IFCO.js} +12 -12
- package/dist/cli-bundle/chunks/{delete-ANTOTI2I.js → delete-5OLYWQIC.js} +5 -5
- package/dist/cli-bundle/chunks/{delete-4W5JYCEG.js → delete-INHKCIRN.js} +5 -5
- package/dist/cli-bundle/chunks/{deps-HPPE6MJN.js → deps-CCSWGZW7.js} +5 -5
- package/dist/cli-bundle/chunks/{deps-ZQZN54EZ.js → deps-IYEID3QX.js} +5 -5
- package/dist/cli-bundle/chunks/{docs-XJNYBJGE.js → docs-3XZK22WF.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-RPOVFMP3.js → docs-PKO7OEIM.js} +7 -7
- package/dist/cli-bundle/chunks/{eval-RFBI5FGS.js → eval-5XYP6NMY.js} +10 -10
- package/dist/cli-bundle/chunks/{eval-DM6JBZTS.js → eval-O4WGQYDI.js} +10 -10
- package/dist/cli-bundle/chunks/{extension-TTSEFQTS.js → extension-PVGRRZZG.js} +11 -11
- package/dist/cli-bundle/chunks/{extension-B3YY4WY5.js → extension-T7JNTAAA.js} +11 -11
- package/dist/cli-bundle/chunks/{files-5D65CHGE.js → files-7IU56S6R.js} +10 -10
- package/dist/cli-bundle/chunks/files-7IU56S6R.js.map +1 -0
- package/dist/cli-bundle/chunks/{files-GPIG77EN.js → files-W7HH5EOD.js} +9 -9
- package/dist/cli-bundle/chunks/{files-GPIG77EN.js.map → files-W7HH5EOD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{focus-ZHN7WIGX.js → focus-6FA5KYRY.js} +6 -6
- package/dist/cli-bundle/chunks/{focus-C3PEJV2C.js → focus-CQ63JFDG.js} +6 -6
- package/dist/cli-bundle/chunks/{gc-D4JQ6OWN.js → gc-3BG67KTO.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-VZIXDL32.js → gc-PEZYGNVB.js} +3 -3
- package/dist/cli-bundle/chunks/{get-GIBRUUOP.js → get-J6CSJ4SX.js} +10 -10
- package/dist/cli-bundle/chunks/{get-IOVAN6RU.js → get-KJTKGNEQ.js} +10 -10
- package/dist/cli-bundle/chunks/{health-L2U3AFKV.js → health-32UQICEL.js} +115 -123
- package/dist/cli-bundle/chunks/health-32UQICEL.js.map +1 -0
- package/dist/cli-bundle/chunks/{health-MM7AWXYF.js → health-ZUZG5ULV.js} +114 -122
- package/dist/cli-bundle/chunks/health-ZUZG5ULV.js.map +7 -0
- package/dist/cli-bundle/chunks/history-IOH6FKG7.js +18 -0
- package/dist/cli-bundle/chunks/{history-IL7XCEX2.js → history-W6QVR6FA.js} +8 -8
- package/dist/cli-bundle/chunks/{history-compact-HALOTOU7.js → history-compact-F355EGL4.js} +20 -27
- package/dist/cli-bundle/chunks/history-compact-F355EGL4.js.map +1 -0
- package/dist/cli-bundle/chunks/{history-compact-MV25P7DM.js → history-compact-JQ6ZGYSJ.js} +19 -26
- package/dist/cli-bundle/chunks/history-compact-JQ6ZGYSJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-redact-VYCWQFK7.js → history-redact-TUWOUYX5.js} +9 -9
- package/dist/cli-bundle/chunks/history-redact-VVDOARNO.js +19 -0
- package/dist/cli-bundle/chunks/{history-repair-44MODPQF.js → history-repair-MPCAIKYE.js} +20 -28
- package/dist/cli-bundle/chunks/history-repair-MPCAIKYE.js.map +1 -0
- package/dist/cli-bundle/chunks/{history-repair-CPNAOCNF.js → history-repair-ZKS3LKPV.js} +19 -27
- package/dist/cli-bundle/chunks/history-repair-ZKS3LKPV.js.map +7 -0
- package/dist/cli-bundle/chunks/init-CZLEEE6Q.js +22 -0
- package/dist/cli-bundle/chunks/{init-F27NHENZ.js → init-MAA6UMNQ.js} +12 -12
- package/dist/cli-bundle/chunks/{learnings-XSFSUUWK.js → learnings-EYC3OKS2.js} +9 -9
- package/dist/cli-bundle/chunks/{learnings-HJVDQIGY.js → learnings-HKJJUVTA.js} +9 -9
- package/dist/cli-bundle/chunks/{list-VMPWTURB.js → list-HFD5737R.js} +8 -8
- package/dist/cli-bundle/chunks/{list-HPMEKCAA.js → list-KN3TL5Y5.js} +8 -8
- package/dist/cli-bundle/chunks/{next-ETXF2ZCN.js → next-DQUMFAHG.js} +25 -22
- package/dist/cli-bundle/chunks/{next-ETXF2ZCN.js.map → next-DQUMFAHG.js.map} +2 -2
- package/dist/cli-bundle/chunks/{next-QM6YJIIS.js → next-JUEYC5HE.js} +26 -23
- package/dist/cli-bundle/chunks/next-JUEYC5HE.js.map +1 -0
- package/dist/cli-bundle/chunks/{notes-WDDBPC4D.js → notes-XATYT43P.js} +9 -9
- package/dist/cli-bundle/chunks/{notes-GDZIKGR6.js → notes-ZG6RLZXB.js} +9 -9
- package/dist/cli-bundle/chunks/{plan-BGDR73Z6.js → plan-5NWQL2DH.js} +12 -12
- package/dist/cli-bundle/chunks/{plan-C5IMM335.js → plan-DVVLX7LK.js} +12 -12
- package/dist/cli-bundle/chunks/{profile-CCOKZ2IQ.js → profile-54DZ4CLB.js} +27 -19
- package/dist/cli-bundle/chunks/profile-54DZ4CLB.js.map +1 -0
- package/dist/cli-bundle/chunks/{profile-HUCENIEQ.js → profile-PLIQVEOY.js} +26 -18
- package/dist/cli-bundle/chunks/profile-PLIQVEOY.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-ROSNIL52.js → register-list-query-PNRAHNIQ.js} +181 -172
- package/dist/cli-bundle/chunks/register-list-query-PNRAHNIQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-XN4ZRHSV.js → register-list-query-WRS6ACUW.js} +180 -171
- package/dist/cli-bundle/chunks/register-list-query-WRS6ACUW.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-KRLAHEL2.js → register-mutation-ET6E4VLE.js} +367 -361
- package/dist/cli-bundle/chunks/register-mutation-ET6E4VLE.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-CFSB2MS3.js → register-mutation-K2MNRWGI.js} +368 -362
- package/dist/cli-bundle/chunks/register-mutation-K2MNRWGI.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-MBN4KGUM.js → register-operations-6DQRUTIX.js} +310 -305
- package/dist/cli-bundle/chunks/register-operations-6DQRUTIX.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-4PASGJDB.js → register-operations-73UDWMVB.js} +309 -304
- package/dist/cli-bundle/chunks/register-operations-73UDWMVB.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-ZCGKHDKL.js → register-setup-FXZJ2CEJ.js} +15 -15
- package/dist/cli-bundle/chunks/{register-setup-VIAWYFP5.js → register-setup-LYYCMQFV.js} +15 -15
- package/dist/cli-bundle/chunks/restore-L27TMMCF.js +17 -0
- package/dist/cli-bundle/chunks/{restore-4CBWUMCX.js → restore-R6YJHQK3.js} +9 -9
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-6VFKNKCM.js → scheduling-shortcuts-LE4S7OI7.js} +12 -12
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-ERHCVTEM.js → scheduling-shortcuts-OGODPUBL.js} +12 -12
- package/dist/cli-bundle/chunks/{schema-UE5KKAUX.js → schema-ICCD3HOP.js} +7 -7
- package/dist/cli-bundle/chunks/{schema-TDGK6N3I.js → schema-RHH23PQX.js} +7 -7
- package/dist/cli-bundle/chunks/{search-FP7MEU4S.js → search-HDDKOPFE.js} +10 -10
- package/dist/cli-bundle/chunks/{search-K4CFLQ5S.js → search-Z2VGP2Q5.js} +10 -10
- package/dist/cli-bundle/chunks/{stats-NJJCALEZ.js → stats-DHMRXHOB.js} +6 -6
- package/dist/cli-bundle/chunks/{stats-XT6QRKQY.js → stats-ETFP37MB.js} +6 -6
- package/dist/cli-bundle/chunks/{telemetry-HVXFZA2U.js → telemetry-NUZNKDCP.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-5SQ5UDXC.js → telemetry-ZRBM22QD.js} +4 -4
- package/dist/cli-bundle/chunks/{test-UFSJ5YIO.js → test-H36PM746.js} +15 -15
- package/dist/cli-bundle/chunks/{test-YCDAUBWF.js → test-XNKTIP4Y.js} +15 -15
- package/dist/cli-bundle/chunks/{test-all-2BWKY3GQ.js → test-all-APCBSXQI.js} +17 -17
- package/dist/cli-bundle/chunks/{test-all-PM7UYN42.js → test-all-KIK3OYBY.js} +17 -17
- package/dist/cli-bundle/chunks/{test-runs-H4TGWGRN.js → test-runs-5SLLV3XU.js} +4 -4
- package/dist/cli-bundle/chunks/{test-runs-FK5E75AA.js → test-runs-L3WKLO67.js} +4 -4
- package/dist/cli-bundle/chunks/update-RQKI3AMW.js +24 -0
- package/dist/cli-bundle/chunks/{update-Y5WQVT5O.js → update-ZM7NJWHY.js} +15 -15
- package/dist/cli-bundle/chunks/{update-many-JTKKSA7Y.js → update-many-GFCQG6ZQ.js} +28 -28
- package/dist/cli-bundle/chunks/{update-many-6YAYYRLE.js → update-many-XGTJ7QIU.js} +28 -28
- package/dist/cli-bundle/chunks/{upgrade-DTAHZ236.js → upgrade-KJ3JGELR.js} +11 -11
- package/dist/cli-bundle/chunks/{upgrade-JUDU7YL4.js → upgrade-RBRQ7PQU.js} +11 -11
- package/dist/cli-bundle/chunks/{validate-732RWS5W.js → validate-EW6TGC7R.js} +31 -21
- package/dist/cli-bundle/chunks/validate-EW6TGC7R.js.map +7 -0
- package/dist/cli-bundle/chunks/{validate-W7H5TEDC.js → validate-T6PR5WAL.js} +32 -22
- package/dist/cli-bundle/chunks/validate-T6PR5WAL.js.map +1 -0
- package/dist/cli-bundle/main.js +180 -122
- package/dist/cli-bundle/main.js.map +3 -3
- package/dist/core/extensions/extension-types.d.ts +1 -2
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/history/history-rewrite.d.ts +10 -0
- package/dist/core/history/history-rewrite.js +27 -3
- package/dist/core/history/history-rewrite.js.map +1 -1
- package/dist/core/item/type-registry.d.ts +1 -0
- package/dist/core/item/type-registry.js +180 -194
- package/dist/core/item/type-registry.js.map +1 -1
- package/dist/core/schema/runtime-schema.js +65 -54
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/schema/status-defs-file.js +26 -3
- package/dist/core/schema/status-defs-file.js.map +1 -1
- package/dist/core/search/corpus.js +25 -19
- package/dist/core/search/corpus.js.map +1 -1
- package/dist/core/shared/memo.d.ts +12 -0
- package/dist/core/shared/memo.js +25 -0
- package/dist/core/shared/memo.js.map +1 -0
- package/dist/core/shared/serialization.js +24 -14
- package/dist/core/shared/serialization.js.map +1 -1
- package/dist/core/shared/time.js +26 -4
- package/dist/core/shared/time.js.map +1 -1
- package/dist/core/store/front-matter-cache.d.ts +5 -0
- package/dist/core/store/front-matter-cache.js +79 -20
- package/dist/core/store/front-matter-cache.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +73 -99
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +55 -94
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/compose.js +51 -42
- package/dist/sdk/compose.js.map +1 -1
- package/dist/sdk/package-import-adapters.d.ts +90 -2
- package/dist/sdk/package-import-adapters.js +274 -2
- package/dist/sdk/package-import-adapters.js.map +1 -1
- package/dist/sdk/runtime.d.ts +1 -1
- package/dist/sdk/runtime.js +3 -3
- package/dist/sdk/runtime.js.map +1 -1
- package/docs/AGENT_GUIDE.md +2 -2
- package/docs/ARCHITECTURE.md +2 -2
- package/docs/COMMANDS.md +8 -4
- package/docs/CONFIGURATION.md +1 -1
- package/docs/EXTENSIONS.md +12 -12
- package/docs/ONBOARDING.md +4 -2
- package/docs/README.md +2 -0
- package/docs/examples/starter-extension/README.md +11 -10
- package/marketplace.json +3 -3
- package/package.json +4 -3
- package/packages/pm-beads/extensions/beads/runtime-loader.ts +27 -40
- package/packages/pm-beads/extensions/beads/runtime.ts +106 -223
- package/packages/pm-calendar/extensions/calendar/runtime.ts +21 -18
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +9 -11
- package/packages/pm-todos/extensions/todos/runtime-loader.ts +48 -76
- package/packages/pm-todos/extensions/todos/runtime.ts +61 -257
- package/plugins/pm-claude/.claude-plugin/plugin.json +2 -2
- package/plugins/pm-claude/README.md +6 -3
- package/plugins/pm-claude/commands/pm-init.md +1 -1
- package/plugins/pm-claude/scripts/pm-mcp-server.mjs +73 -31
- package/plugins/pm-codex/scripts/pm-mcp-server.mjs +80 -34
- package/scripts/install.ps1 +7 -7
- package/dist/cli-bundle/chunks/activity-WEIEMM73.js +0 -16
- package/dist/cli-bundle/chunks/chunk-5GVTFFTC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-66Z3X7ZG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6ITZLD4T.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6YCYF2AI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7NSPKJUS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-7TH5NMVB.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-7W4H4K26.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-AIAIXG7I.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-AJEBCRIY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-GFMSLORL.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-GRRG3MCT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-I66WE2HE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-JXAUVO6X.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-K2VYLVX4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KIYCOJ63.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MNBPX5JS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NRZS637N.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RM37OPYK.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SPM2XLWI.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SYNKD3ZG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-TPOFWBMY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XCHUVHKU.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XEWQKDYZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-XWGEMNBR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YLZZ6T54.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YPKFV2JR.js.map +0 -1
- package/dist/cli-bundle/chunks/close-YCWQQPDS.js +0 -14
- package/dist/cli-bundle/chunks/close-many-2IV4J2TR.js.map +0 -1
- package/dist/cli-bundle/chunks/close-many-SWY34BII.js.map +0 -7
- package/dist/cli-bundle/chunks/create-XTMAPS7I.js +0 -28
- package/dist/cli-bundle/chunks/files-5D65CHGE.js.map +0 -1
- package/dist/cli-bundle/chunks/health-L2U3AFKV.js.map +0 -1
- package/dist/cli-bundle/chunks/health-MM7AWXYF.js.map +0 -7
- package/dist/cli-bundle/chunks/history-DD7L7BNL.js +0 -18
- package/dist/cli-bundle/chunks/history-compact-HALOTOU7.js.map +0 -1
- package/dist/cli-bundle/chunks/history-compact-MV25P7DM.js.map +0 -7
- package/dist/cli-bundle/chunks/history-redact-IX4YEWMY.js +0 -19
- package/dist/cli-bundle/chunks/history-repair-44MODPQF.js.map +0 -1
- package/dist/cli-bundle/chunks/history-repair-CPNAOCNF.js.map +0 -7
- package/dist/cli-bundle/chunks/init-HHVQQP6C.js +0 -22
- package/dist/cli-bundle/chunks/next-QM6YJIIS.js.map +0 -1
- package/dist/cli-bundle/chunks/profile-CCOKZ2IQ.js.map +0 -1
- package/dist/cli-bundle/chunks/profile-HUCENIEQ.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-ROSNIL52.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-XN4ZRHSV.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-CFSB2MS3.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-KRLAHEL2.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-4PASGJDB.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-MBN4KGUM.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-5UEAGG3W.js +0 -17
- package/dist/cli-bundle/chunks/update-MTCFES6X.js +0 -24
- package/dist/cli-bundle/chunks/validate-732RWS5W.js.map +0 -7
- package/dist/cli-bundle/chunks/validate-W7H5TEDC.js.map +0 -1
- /package/dist/cli-bundle/chunks/{activity-WEIEMM73.js.map → activity-IDS5GSYG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-CUC4JY3U.js.map → activity-OENQCYZD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-SW5PNGCS.js.map → aggregate-EC4LWS3U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-DKUTRY6R.js.map → aggregate-RCB3QJJE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-H32VOR2Y.js.map → append-ADBOI3A6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-UBM632FK.js.map → append-XLEKVVWB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q6NXOHS6.js.map → chunk-2LRMWMZ6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KLXF7NCC.js.map → chunk-3C5T3ZEO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JMK5GCK2.js.map → chunk-3MLQZI3H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BTX5MIQF.js.map → chunk-4EVY7CQN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q6K2OACU.js.map → chunk-4IW7STMB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EMPGXBUF.js.map → chunk-4SHME4VR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2KWL5NPW.js.map → chunk-6YB7HG2J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-36UGKF4O.js.map → chunk-724VLYDJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y4NRKBFW.js.map → chunk-7ITQSEBL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-W47SML5B.js.map → chunk-A222YWOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3LCUASYG.js.map → chunk-A2W3XKAD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KN3URLKS.js.map → chunk-AOP2EMK3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IEEJQCZ4.js.map → chunk-CQFZRLXQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4NUOWFBT.js.map → chunk-CQISNF3Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S62UANU7.js.map → chunk-D2LDM35X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IG5JYZGU.js.map → chunk-DJ5S2LDY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-A6VOGKBA.js.map → chunk-EB4BBEZD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QH3FSKRJ.js.map → chunk-EH23N5FX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HQTPRV4D.js.map → chunk-FDNJMYZB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N2JSWVWG.js.map → chunk-HL742IBM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CZPVDLD2.js.map → chunk-M6PR5BC6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MRD4T5LF.js.map → chunk-MZ4NH46V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZNHEYCDD.js.map → chunk-N2LOJUBB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WJAMWAHZ.js.map → chunk-NGDK3KEZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2CHRYUXL.js.map → chunk-NHKXOMZ5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7MYWF4ZX.js.map → chunk-OTSP6UEX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UGLU6Q2I.js.map → chunk-PUVPC5DL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LTRAF2D7.js.map → chunk-PV5JS7MP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KCO2EAN5.js.map → chunk-Q2266G4S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SYVUU7EK.js.map → chunk-Q3XVLRCJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6ZMBJRDJ.js.map → chunk-R7EMP4JG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-U2BEEM2X.js.map → chunk-T5RTYLZJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UTSH5GWX.js.map → chunk-TGYDJEJH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H4GRLYJS.js.map → chunk-TO4KCIOT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EUKTMRN3.js.map → chunk-TUV7SIWZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-55XRYWEG.js.map → chunk-V655JQ5J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3Q2HBMTI.js.map → chunk-W5X3AHJN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XTHQWXVC.js.map → chunk-WBWRQS32.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UT73HUPC.js.map → chunk-WOOB7PV7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5PGBHRY3.js.map → chunk-WSDIALO4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LRKMWUUV.js.map → chunk-WTXDLBSZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FFOQHGNH.js.map → chunk-XBIYI23P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2ASNV4DH.js.map → chunk-Y2VSCQ77.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZNT7KEWE.js.map → chunk-YZR7UMZ6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CYBDUHNO.js.map → chunk-ZIEGTQCY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TTHCEV5Q.js.map → chunk-ZZWMJVW2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-Z7MEQCBT.js.map → claim-D6L33A5Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-SENTPZBN.js.map → claim-YAFUTPVK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-YCWQQPDS.js.map → close-KLDLHAOP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-424MX4CU.js.map → close-TGYXG7TV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-4FGNTSNV.js.map → comments-QC6ARR5X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-7YS5MY5X.js.map → comments-ZHVYGUVC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-G74GISC4.js.map → config-O6W2EU2G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-BZJKK7FZ.js.map → config-XQRFJXJP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-LHVKJSPJ.js.map → context-IHE3IXN5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-ZQY54JNS.js.map → context-WSYWBEUL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-FIZLMP7O.js.map → contracts-CVBINC7C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-CP2EZJC7.js.map → contracts-NLCDIZAT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-TLW7JTQT.js.map → copy-7MUQC44A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-GYNQQPW2.js.map → copy-ANWXDJVC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-XTMAPS7I.js.map → create-AJ6HUR5W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-VSKYSOCD.js.map → create-JIA2IFCO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-ANTOTI2I.js.map → delete-5OLYWQIC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-4W5JYCEG.js.map → delete-INHKCIRN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-HPPE6MJN.js.map → deps-CCSWGZW7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-ZQZN54EZ.js.map → deps-IYEID3QX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-XJNYBJGE.js.map → docs-3XZK22WF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-RPOVFMP3.js.map → docs-PKO7OEIM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-RFBI5FGS.js.map → eval-5XYP6NMY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-DM6JBZTS.js.map → eval-O4WGQYDI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-TTSEFQTS.js.map → extension-PVGRRZZG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-B3YY4WY5.js.map → extension-T7JNTAAA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-ZHN7WIGX.js.map → focus-6FA5KYRY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-C3PEJV2C.js.map → focus-CQ63JFDG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-D4JQ6OWN.js.map → gc-3BG67KTO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-VZIXDL32.js.map → gc-PEZYGNVB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-GIBRUUOP.js.map → get-J6CSJ4SX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-IOVAN6RU.js.map → get-KJTKGNEQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-DD7L7BNL.js.map → history-IOH6FKG7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-IL7XCEX2.js.map → history-W6QVR6FA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-VYCWQFK7.js.map → history-redact-TUWOUYX5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-IX4YEWMY.js.map → history-redact-VVDOARNO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-HHVQQP6C.js.map → init-CZLEEE6Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-F27NHENZ.js.map → init-MAA6UMNQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-XSFSUUWK.js.map → learnings-EYC3OKS2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-HJVDQIGY.js.map → learnings-HKJJUVTA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-VMPWTURB.js.map → list-HFD5737R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-HPMEKCAA.js.map → list-KN3TL5Y5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-WDDBPC4D.js.map → notes-XATYT43P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-GDZIKGR6.js.map → notes-ZG6RLZXB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-BGDR73Z6.js.map → plan-5NWQL2DH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-C5IMM335.js.map → plan-DVVLX7LK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-ZCGKHDKL.js.map → register-setup-FXZJ2CEJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-VIAWYFP5.js.map → register-setup-LYYCMQFV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-5UEAGG3W.js.map → restore-L27TMMCF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-4CBWUMCX.js.map → restore-R6YJHQK3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-6VFKNKCM.js.map → scheduling-shortcuts-LE4S7OI7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-ERHCVTEM.js.map → scheduling-shortcuts-OGODPUBL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-UE5KKAUX.js.map → schema-ICCD3HOP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-TDGK6N3I.js.map → schema-RHH23PQX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-FP7MEU4S.js.map → search-HDDKOPFE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-K4CFLQ5S.js.map → search-Z2VGP2Q5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-NJJCALEZ.js.map → stats-DHMRXHOB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-XT6QRKQY.js.map → stats-ETFP37MB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-HVXFZA2U.js.map → telemetry-NUZNKDCP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-5SQ5UDXC.js.map → telemetry-ZRBM22QD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-UFSJ5YIO.js.map → test-H36PM746.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-YCDAUBWF.js.map → test-XNKTIP4Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-2BWKY3GQ.js.map → test-all-APCBSXQI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-PM7UYN42.js.map → test-all-KIK3OYBY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-H4TGWGRN.js.map → test-runs-5SLLV3XU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-FK5E75AA.js.map → test-runs-L3WKLO67.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-MTCFES6X.js.map → update-RQKI3AMW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-Y5WQVT5O.js.map → update-ZM7NJWHY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-JTKKSA7Y.js.map → update-many-GFCQG6ZQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-6YAYYRLE.js.map → update-many-XGTJ7QIU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-DTAHZ236.js.map → upgrade-KJ3JGELR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-JUDU7YL4.js.map → upgrade-RBRQ7PQU.js.map} +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Provides CLI runtime support for Register List Query.
|
|
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]="bb0565a8-4995-5da9-9b39-2c0048ae2825")}catch(e){}}();
|
|
8
8
|
import { Option } from "commander";
|
|
9
9
|
import { EXIT_CODE } from "../core/shared/constants.js";
|
|
10
10
|
import { PmCliError } from "../core/shared/errors.js";
|
|
@@ -83,7 +83,9 @@ function registerContentAndGovernanceFilters(command) {
|
|
|
83
83
|
.option("--no-notes", "Show only items that have no notes")
|
|
84
84
|
.option("--no-learnings", "Show only items that have no learnings")
|
|
85
85
|
.option("--no-files", "Show only items that have no linked files")
|
|
86
|
+
.option("--filter-files-missing", "Alias for --no-files")
|
|
86
87
|
.option("--no-docs", "Show only items that have no linked docs")
|
|
88
|
+
.option("--filter-docs-missing", "Alias for --no-docs")
|
|
87
89
|
.option("--no-tests", "Show only items that have no linked tests")
|
|
88
90
|
.option("--no-comments", "Show only items that have no comments")
|
|
89
91
|
.option("--no-deps", "Show only items that have no dependencies")
|
|
@@ -133,70 +135,214 @@ async function runRegisteredListCommand(params) {
|
|
|
133
135
|
printError(`profile:command=${params.name} took_ms=${Date.now() - startedAt}`);
|
|
134
136
|
}
|
|
135
137
|
}
|
|
138
|
+
function registerListCommand(program, descriptor) {
|
|
139
|
+
const { name, description, status, excludeTerminal, allowStatusFilter, defaultBrief } = descriptor;
|
|
140
|
+
const command = program.command(name).description(description);
|
|
141
|
+
if (allowStatusFilter) {
|
|
142
|
+
command.option("--status <value>", "Filter by status (use all for no status restriction)");
|
|
143
|
+
}
|
|
144
|
+
command
|
|
145
|
+
.option("--type <value>", "Filter by item type")
|
|
146
|
+
.option("--tag <value>", "Filter by tag")
|
|
147
|
+
.option("--priority <value>", "Filter by priority")
|
|
148
|
+
.option("--deadline-before <value>", "Filter by deadline upper bound (ISO/date string or relative)")
|
|
149
|
+
.option("--deadline-after <value>", "Filter by deadline lower bound (ISO/date string or relative)")
|
|
150
|
+
.option("--updated-after <value>", 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past). "Changed since my last window" → --updated-after <ISO>')
|
|
151
|
+
.option("--updated-before <value>", "Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)")
|
|
152
|
+
.option("--created-after <value>", "Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)")
|
|
153
|
+
.option("--created-before <value>", "Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)")
|
|
154
|
+
.option("--ids <value>", "Filter by explicit item IDs (comma-separated or repeatable)")
|
|
155
|
+
.option("--assignee <value>", "Filter by assignee")
|
|
156
|
+
.option("--assignee-filter <value>", "Filter assignee presence: assigned|unassigned")
|
|
157
|
+
.option("--parent <value>", "Filter by parent item ID")
|
|
158
|
+
.option("--sprint <value>", "Filter by sprint")
|
|
159
|
+
.option("--release <value>", "Filter by release")
|
|
160
|
+
.option("--filter-ac-missing", "Show only items missing acceptance_criteria")
|
|
161
|
+
.option("--filter-estimates-missing", "Show only items missing estimated_minutes")
|
|
162
|
+
.option("--filter-resolution-missing", "Show only terminal items missing resolution")
|
|
163
|
+
.option("--filter-metadata-missing", "Show only items missing any tracked metadata (AC, estimate, or resolution)")
|
|
164
|
+
.option("--limit <n>", "Limit returned item count")
|
|
165
|
+
.option("--offset <n>", "Skip the first n matching rows before limit is applied")
|
|
166
|
+
.option("--no-truncate", "Return every matched row, overriding any --limit (alias: --all)")
|
|
167
|
+
.option("--include-body", "Include item body in each returned list row")
|
|
168
|
+
.option("--compact", "Render compact list projection fields (mutually exclusive with --brief/--full/--fields)")
|
|
169
|
+
.option("--brief", "Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)")
|
|
170
|
+
.option("--full", "Render full list projection fields (mutually exclusive with --compact/--brief/--fields)")
|
|
171
|
+
.option("--fields <value>", "Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)")
|
|
172
|
+
.option("--sort <value>", "Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)")
|
|
173
|
+
.option("--order <value>", "Sort order: asc|desc (requires --sort)")
|
|
174
|
+
.option("--tree", "Render rows in parent/child tree order")
|
|
175
|
+
.option("--tree-depth <n>", "Maximum recursion depth with --tree (0 keeps root rows only)")
|
|
176
|
+
.option("--format <value>", "Output render mode: csv|table (human export) or json|toon (machine output override)")
|
|
177
|
+
.option("--stream", "Emit line-delimited JSON rows (requires --json)");
|
|
178
|
+
registerContentAndGovernanceFilters(command);
|
|
179
|
+
command.action(async (options, actionCommand) => {
|
|
180
|
+
await runRegisteredListCommand({ name, status, excludeTerminal, defaultBrief, options, actionCommand });
|
|
181
|
+
});
|
|
182
|
+
// Positive alias for --no-truncate (Commander stores the negation as truncate=false).
|
|
183
|
+
addHiddenOption(command, "--all", "Alias for --no-truncate");
|
|
184
|
+
// Hidden pure snake_case underscore-duplicate alias (kept parse-functional).
|
|
185
|
+
addHiddenOption(command, "--tags <value>", "Alias for --tag");
|
|
186
|
+
addHiddenOption(command, "--assignee_filter <value>", "Alias for --assignee-filter");
|
|
187
|
+
addHiddenOption(command, "--tree_depth <n>", "Alias for --tree-depth");
|
|
188
|
+
// Singular alias so `--filter-estimate-missing` works (matches update-many spelling).
|
|
189
|
+
addHiddenOption(command, "--filter-estimate-missing", "Alias for --filter-estimates-missing");
|
|
190
|
+
}
|
|
191
|
+
async function runAggregateAction(options, command) {
|
|
192
|
+
const globalOptions = getGlobalOptions(command);
|
|
193
|
+
const startedAt = Date.now();
|
|
194
|
+
const { runAggregate } = await import("./commands/aggregate.js");
|
|
195
|
+
const result = await runAggregate(normalizeAggregateOptions(options), globalOptions);
|
|
196
|
+
printResult(result, globalOptions);
|
|
197
|
+
if (globalOptions.profile) {
|
|
198
|
+
printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
async function runContextAction(options, actionCommand) {
|
|
202
|
+
const globalOptions = getGlobalOptions(actionCommand);
|
|
203
|
+
const startedAt = Date.now();
|
|
204
|
+
const normalized = normalizeContextOptions(options);
|
|
205
|
+
const commands = await import("./commands/context.js");
|
|
206
|
+
const result = await commands.runContext(normalized, globalOptions);
|
|
207
|
+
const outputFormat = commands.resolveContextOutputFormat(normalized, globalOptions);
|
|
208
|
+
if (outputFormat === "markdown") {
|
|
209
|
+
if (!globalOptions.quiet) {
|
|
210
|
+
writeStdout(`${commands.renderContextMarkdown(result)}\n`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
printResult(result, {
|
|
215
|
+
...globalOptions,
|
|
216
|
+
json: outputFormat === "json",
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
if (globalOptions.profile) {
|
|
220
|
+
printError(`profile:command=context took_ms=${Date.now() - startedAt}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
async function runNextAction(options, actionCommand) {
|
|
224
|
+
const globalOptions = getGlobalOptions(actionCommand);
|
|
225
|
+
const startedAt = Date.now();
|
|
226
|
+
const commands = await import("./commands/next.js");
|
|
227
|
+
const nextOptions = normalizeNextOptions(options);
|
|
228
|
+
const result = await commands.runNext(nextOptions, globalOptions);
|
|
229
|
+
const outputFormat = commands.resolveNextOutputFormat(nextOptions, globalOptions);
|
|
230
|
+
if (outputFormat === "markdown") {
|
|
231
|
+
if (!globalOptions.quiet) {
|
|
232
|
+
writeStdout(`${commands.renderNextMarkdown(result)}\n`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
printResult(result, { ...globalOptions, json: outputFormat === "json" });
|
|
237
|
+
}
|
|
238
|
+
if (globalOptions.profile) {
|
|
239
|
+
printError(`profile:command=next took_ms=${Date.now() - startedAt}`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
async function runSearchAction(keywords, options, command) {
|
|
243
|
+
const globalOptions = getGlobalOptions(command);
|
|
244
|
+
const startedAt = Date.now();
|
|
245
|
+
const { runSearch } = await import("./commands/search.js");
|
|
246
|
+
const searchOptions = normalizeSearchOptions(options);
|
|
247
|
+
const result = await runSearch(normalizeSearchKeywordsInput(keywords), {
|
|
248
|
+
...searchOptions,
|
|
249
|
+
mode: typeof searchOptions.mode === "string" && searchOptions.mode.trim().length > 0
|
|
250
|
+
? searchOptions.mode
|
|
251
|
+
: "keyword",
|
|
252
|
+
}, globalOptions);
|
|
253
|
+
printResult(result, resolveReadCommandOutputFormat("Search", options.format, globalOptions));
|
|
254
|
+
if (globalOptions.profile) {
|
|
255
|
+
printError(`profile:command=search took_ms=${Date.now() - startedAt}`);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
async function runEvalAction(options, command) {
|
|
259
|
+
const globalOptions = getGlobalOptions(command);
|
|
260
|
+
const startedAt = Date.now();
|
|
261
|
+
const { runEval } = await import("./commands/eval.js");
|
|
262
|
+
const result = await runEval({
|
|
263
|
+
mode: typeof options.mode === "string" ? options.mode : undefined,
|
|
264
|
+
k: typeof options.k === "string" ? options.k : undefined,
|
|
265
|
+
failUnder: typeof options.failUnder === "string" ? options.failUnder : undefined,
|
|
266
|
+
queries: typeof options.queries === "string" ? options.queries : undefined,
|
|
267
|
+
format: typeof options.format === "string" ? options.format : undefined,
|
|
268
|
+
}, globalOptions);
|
|
269
|
+
printResult(result, resolveReadCommandOutputFormat("Eval", options.format, globalOptions));
|
|
270
|
+
if (globalOptions.profile) {
|
|
271
|
+
printError(`profile:command=eval took_ms=${Date.now() - startedAt}`);
|
|
272
|
+
}
|
|
273
|
+
if (!result.passed) {
|
|
274
|
+
throw new PmCliError(`Eval gate failed: aggregate nDCG@${result.k} ${result.aggregate.ndcg} is below --fail-under ${result.fail_under}`, EXIT_CODE.GENERIC_FAILURE);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
async function runGetAction(id, options, command) {
|
|
278
|
+
const globalOptions = getGlobalOptions(command);
|
|
279
|
+
const startedAt = Date.now();
|
|
280
|
+
const { runGet } = await import("./commands/get.js");
|
|
281
|
+
const result = await runGet(id, globalOptions, {
|
|
282
|
+
depth: typeof options.depth === "string" ? options.depth : undefined,
|
|
283
|
+
fields: typeof options.fields === "string" ? options.fields : undefined,
|
|
284
|
+
full: Boolean(options.full),
|
|
285
|
+
tree: options.tree === true,
|
|
286
|
+
treeDepth: typeof options.treeDepth === "string"
|
|
287
|
+
? options.treeDepth
|
|
288
|
+
: typeof options.tree_depth === "string"
|
|
289
|
+
? options.tree_depth
|
|
290
|
+
: undefined,
|
|
291
|
+
});
|
|
292
|
+
printResult(result, resolveReadCommandOutputFormat("Get", options.format, globalOptions));
|
|
293
|
+
if (globalOptions.profile) {
|
|
294
|
+
printError(`profile:command=get took_ms=${Date.now() - startedAt}`);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
async function runHistoryAction(id, options, command) {
|
|
298
|
+
const globalOptions = getGlobalOptions(command);
|
|
299
|
+
const startedAt = Date.now();
|
|
300
|
+
if (options.compact === true && options.full === true) {
|
|
301
|
+
throw new PmCliError("History projection options are mutually exclusive. Use either --compact or --full.", EXIT_CODE.USAGE);
|
|
302
|
+
}
|
|
303
|
+
const field = typeof options.field === "string" ? options.field : undefined;
|
|
304
|
+
const { runHistory } = await import("./commands/history.js");
|
|
305
|
+
const result = await runHistory(id, {
|
|
306
|
+
limit: typeof options.limit === "string" ? options.limit : undefined,
|
|
307
|
+
compact: options.full === true ? false : true,
|
|
308
|
+
diff: Boolean(options.diff) || field !== undefined,
|
|
309
|
+
field,
|
|
310
|
+
verify: Boolean(options.verify),
|
|
311
|
+
}, globalOptions);
|
|
312
|
+
printResult(result, resolveReadCommandOutputFormat("History", options.format, globalOptions));
|
|
313
|
+
if (globalOptions.profile) {
|
|
314
|
+
printError(`profile:command=history took_ms=${Date.now() - startedAt}`);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
async function runActivityAction(options, command) {
|
|
318
|
+
const globalOptions = getGlobalOptions(command);
|
|
319
|
+
const startedAt = Date.now();
|
|
320
|
+
if (options.compact === true && options.full === true) {
|
|
321
|
+
throw new PmCliError("Activity projection options are mutually exclusive. Use either --compact or --full.", EXIT_CODE.USAGE);
|
|
322
|
+
}
|
|
323
|
+
const normalized = normalizeActivityOptions(options);
|
|
324
|
+
const { runActivity } = await import("./commands/activity.js");
|
|
325
|
+
const result = await runActivity(normalized, globalOptions);
|
|
326
|
+
const streamMode = resolveActivityStreamMode(options.stream);
|
|
327
|
+
if (streamMode && !globalOptions.json) {
|
|
328
|
+
throw new PmCliError("--stream requires --json output mode.", EXIT_CODE.USAGE);
|
|
329
|
+
}
|
|
330
|
+
if (streamMode) {
|
|
331
|
+
printActivityJsonStream(result, normalized, globalOptions);
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
printResult(result, globalOptions);
|
|
335
|
+
}
|
|
336
|
+
if (globalOptions.profile) {
|
|
337
|
+
printError(`profile:command=activity took_ms=${Date.now() - startedAt}`);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
136
340
|
/**
|
|
137
341
|
* Implements register list query commands for the public runtime surface of this module.
|
|
138
342
|
*/
|
|
139
343
|
export function registerListQueryCommands(program, options) {
|
|
140
344
|
const commandFilter = options?.commandFilter;
|
|
141
345
|
const shouldRegister = (commandName) => shouldRegisterListQueryCommand(commandName, commandFilter);
|
|
142
|
-
// Register a flag and hide it from --help text while keeping it functional as
|
|
143
|
-
// a parse-time alias. Used for pure snake_case underscore-duplicate aliases
|
|
144
|
-
// (e.g. --assignee_filter for --assignee-filter) so they no longer bloat
|
|
145
|
-
// --help output. The option still appears in command.options, so JSON help
|
|
146
|
-
// and completion are unchanged.
|
|
147
|
-
function registerListCommand(name, description, status, excludeTerminal, allowStatusFilter, defaultBrief) {
|
|
148
|
-
const command = program.command(name).description(description);
|
|
149
|
-
if (allowStatusFilter) {
|
|
150
|
-
command.option("--status <value>", "Filter by status (use all for no status restriction)");
|
|
151
|
-
}
|
|
152
|
-
command
|
|
153
|
-
.option("--type <value>", "Filter by item type")
|
|
154
|
-
.option("--tag <value>", "Filter by tag")
|
|
155
|
-
.option("--priority <value>", "Filter by priority")
|
|
156
|
-
.option("--deadline-before <value>", "Filter by deadline upper bound (ISO/date string or relative)")
|
|
157
|
-
.option("--deadline-after <value>", "Filter by deadline lower bound (ISO/date string or relative)")
|
|
158
|
-
.option("--updated-after <value>", 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past). "Changed since my last window" → --updated-after <ISO>')
|
|
159
|
-
.option("--updated-before <value>", "Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)")
|
|
160
|
-
.option("--created-after <value>", "Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)")
|
|
161
|
-
.option("--created-before <value>", "Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)")
|
|
162
|
-
.option("--ids <value>", "Filter by explicit item IDs (comma-separated or repeatable)")
|
|
163
|
-
.option("--assignee <value>", "Filter by assignee")
|
|
164
|
-
.option("--assignee-filter <value>", "Filter assignee presence: assigned|unassigned")
|
|
165
|
-
.option("--parent <value>", "Filter by parent item ID")
|
|
166
|
-
.option("--sprint <value>", "Filter by sprint")
|
|
167
|
-
.option("--release <value>", "Filter by release")
|
|
168
|
-
.option("--filter-ac-missing", "Show only items missing acceptance_criteria")
|
|
169
|
-
.option("--filter-estimates-missing", "Show only items missing estimated_minutes")
|
|
170
|
-
.option("--filter-resolution-missing", "Show only terminal items missing resolution")
|
|
171
|
-
.option("--filter-metadata-missing", "Show only items missing any tracked metadata (AC, estimate, or resolution)")
|
|
172
|
-
.option("--limit <n>", "Limit returned item count")
|
|
173
|
-
.option("--offset <n>", "Skip the first n matching rows before limit is applied")
|
|
174
|
-
.option("--no-truncate", "Return every matched row, overriding any --limit (alias: --all)")
|
|
175
|
-
.option("--include-body", "Include item body in each returned list row")
|
|
176
|
-
.option("--compact", "Render compact list projection fields (mutually exclusive with --brief/--full/--fields)")
|
|
177
|
-
.option("--brief", "Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)")
|
|
178
|
-
.option("--full", "Render full list projection fields (mutually exclusive with --compact/--brief/--fields)")
|
|
179
|
-
.option("--fields <value>", "Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)")
|
|
180
|
-
.option("--sort <value>", "Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)")
|
|
181
|
-
.option("--order <value>", "Sort order: asc|desc (requires --sort)")
|
|
182
|
-
.option("--tree", "Render rows in parent/child tree order")
|
|
183
|
-
.option("--tree-depth <n>", "Maximum recursion depth with --tree (0 keeps root rows only)")
|
|
184
|
-
.option("--format <value>", "Output render mode: csv|table (human export) or json|toon (machine output override)")
|
|
185
|
-
.option("--stream", "Emit line-delimited JSON rows (requires --json)");
|
|
186
|
-
registerContentAndGovernanceFilters(command);
|
|
187
|
-
command
|
|
188
|
-
.action(async (options, actionCommand) => {
|
|
189
|
-
await runRegisteredListCommand({ name, status, excludeTerminal, defaultBrief, options, actionCommand });
|
|
190
|
-
});
|
|
191
|
-
// Positive alias for --no-truncate (Commander stores the negation as truncate=false).
|
|
192
|
-
addHiddenOption(command, "--all", "Alias for --no-truncate");
|
|
193
|
-
// Hidden pure snake_case underscore-duplicate alias (kept parse-functional).
|
|
194
|
-
addHiddenOption(command, "--tags <value>", "Alias for --tag");
|
|
195
|
-
addHiddenOption(command, "--assignee_filter <value>", "Alias for --assignee-filter");
|
|
196
|
-
addHiddenOption(command, "--tree_depth <n>", "Alias for --tree-depth");
|
|
197
|
-
// Singular alias so `--filter-estimate-missing` works (matches update-many spelling).
|
|
198
|
-
addHiddenOption(command, "--filter-estimate-missing", "Alias for --filter-estimates-missing");
|
|
199
|
-
}
|
|
200
346
|
const listCommandDescriptors = [
|
|
201
347
|
{ name: "list", description: "List active items with optional filters.", excludeTerminal: true, allowStatusFilter: true, defaultBrief: true },
|
|
202
348
|
{ name: "list-all", description: "List all items with optional filters.", excludeTerminal: false, allowStatusFilter: true },
|
|
@@ -209,7 +355,7 @@ export function registerListQueryCommands(program, options) {
|
|
|
209
355
|
];
|
|
210
356
|
for (const descriptor of listCommandDescriptors) {
|
|
211
357
|
if (shouldRegister(descriptor.name)) {
|
|
212
|
-
registerListCommand(
|
|
358
|
+
registerListCommand(program, descriptor);
|
|
213
359
|
}
|
|
214
360
|
}
|
|
215
361
|
if (shouldRegister("aggregate")) {
|
|
@@ -236,17 +382,7 @@ export function registerListQueryCommands(program, options) {
|
|
|
236
382
|
// Hidden pure snake_case underscore-duplicate aliases (kept parse-functional).
|
|
237
383
|
addHiddenOption(aggregateCommand, "--include_unparented", "Alias for --include-unparented");
|
|
238
384
|
addHiddenOption(aggregateCommand, "--assignee_filter <value>", "Alias for --assignee-filter");
|
|
239
|
-
aggregateCommand
|
|
240
|
-
.action(async (options, command) => {
|
|
241
|
-
const globalOptions = getGlobalOptions(command);
|
|
242
|
-
const startedAt = Date.now();
|
|
243
|
-
const { runAggregate } = await import("./commands/aggregate.js");
|
|
244
|
-
const result = await runAggregate(normalizeAggregateOptions(options), globalOptions);
|
|
245
|
-
printResult(result, globalOptions);
|
|
246
|
-
if (globalOptions.profile) {
|
|
247
|
-
printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);
|
|
248
|
-
}
|
|
249
|
-
});
|
|
385
|
+
aggregateCommand.action(runAggregateAction);
|
|
250
386
|
}
|
|
251
387
|
if (shouldRegister("context")) {
|
|
252
388
|
const contextCommand = program
|
|
@@ -274,29 +410,7 @@ export function registerListQueryCommands(program, options) {
|
|
|
274
410
|
.option("--stale-threshold <value>", "Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)");
|
|
275
411
|
// Hidden pure snake_case underscore-duplicate alias (kept parse-functional).
|
|
276
412
|
addHiddenOption(contextCommand, "--assignee_filter <value>", "Alias for --assignee-filter");
|
|
277
|
-
contextCommand
|
|
278
|
-
.action(async (options, actionCommand) => {
|
|
279
|
-
const globalOptions = getGlobalOptions(actionCommand);
|
|
280
|
-
const startedAt = Date.now();
|
|
281
|
-
const normalized = normalizeContextOptions(options);
|
|
282
|
-
const commands = await import("./commands/context.js");
|
|
283
|
-
const result = await commands.runContext(normalized, globalOptions);
|
|
284
|
-
const outputFormat = commands.resolveContextOutputFormat(normalized, globalOptions);
|
|
285
|
-
if (outputFormat === "markdown") {
|
|
286
|
-
if (!globalOptions.quiet) {
|
|
287
|
-
writeStdout(`${commands.renderContextMarkdown(result)}\n`);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
printResult(result, {
|
|
292
|
-
...globalOptions,
|
|
293
|
-
json: outputFormat === "json",
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
if (globalOptions.profile) {
|
|
297
|
-
printError(`profile:command=context took_ms=${Date.now() - startedAt}`);
|
|
298
|
-
}
|
|
299
|
-
});
|
|
413
|
+
contextCommand.action(runContextAction);
|
|
300
414
|
}
|
|
301
415
|
if (shouldRegister("next")) {
|
|
302
416
|
const nextCommand = program
|
|
@@ -317,25 +431,7 @@ export function registerListQueryCommands(program, options) {
|
|
|
317
431
|
addHiddenOption(nextCommand, "--assignee_filter <value>", "Alias for --assignee-filter");
|
|
318
432
|
addHiddenOption(nextCommand, "--blocked_limit <n>", "Alias for --blocked-limit");
|
|
319
433
|
addHiddenOption(nextCommand, "--ready_only", "Alias for --ready-only");
|
|
320
|
-
nextCommand.action(
|
|
321
|
-
const globalOptions = getGlobalOptions(actionCommand);
|
|
322
|
-
const startedAt = Date.now();
|
|
323
|
-
const commands = await import("./commands/next.js");
|
|
324
|
-
const nextOptions = normalizeNextOptions(options);
|
|
325
|
-
const result = await commands.runNext(nextOptions, globalOptions);
|
|
326
|
-
const outputFormat = commands.resolveNextOutputFormat(nextOptions, globalOptions);
|
|
327
|
-
if (outputFormat === "markdown") {
|
|
328
|
-
if (!globalOptions.quiet) {
|
|
329
|
-
writeStdout(`${commands.renderNextMarkdown(result)}\n`);
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
else {
|
|
333
|
-
printResult(result, { ...globalOptions, json: outputFormat === "json" });
|
|
334
|
-
}
|
|
335
|
-
if (globalOptions.profile) {
|
|
336
|
-
printError(`profile:command=next took_ms=${Date.now() - startedAt}`);
|
|
337
|
-
}
|
|
338
|
-
});
|
|
434
|
+
nextCommand.action(runNextAction);
|
|
339
435
|
}
|
|
340
436
|
if (shouldRegister("search")) {
|
|
341
437
|
const searchCommand = program
|
|
@@ -374,23 +470,7 @@ export function registerListQueryCommands(program, options) {
|
|
|
374
470
|
.option("--format <value>", "Search output format override: json|toon")
|
|
375
471
|
.option("--limit <n>", "Limit returned item count");
|
|
376
472
|
registerContentAndGovernanceFilters(searchCommand);
|
|
377
|
-
searchCommand
|
|
378
|
-
.action(async (keywords, options, command) => {
|
|
379
|
-
const globalOptions = getGlobalOptions(command);
|
|
380
|
-
const startedAt = Date.now();
|
|
381
|
-
const { runSearch } = await import("./commands/search.js");
|
|
382
|
-
const searchOptions = normalizeSearchOptions(options);
|
|
383
|
-
const result = await runSearch(normalizeSearchKeywordsInput(keywords), {
|
|
384
|
-
...searchOptions,
|
|
385
|
-
mode: typeof searchOptions.mode === "string" && searchOptions.mode.trim().length > 0
|
|
386
|
-
? searchOptions.mode
|
|
387
|
-
: "keyword",
|
|
388
|
-
}, globalOptions);
|
|
389
|
-
printResult(result, resolveReadCommandOutputFormat("Search", options.format, globalOptions));
|
|
390
|
-
if (globalOptions.profile) {
|
|
391
|
-
printError(`profile:command=search took_ms=${Date.now() - startedAt}`);
|
|
392
|
-
}
|
|
393
|
-
});
|
|
473
|
+
searchCommand.action(runSearchAction);
|
|
394
474
|
addHiddenOption(searchCommand, "--tags <value>", "Alias for --tag");
|
|
395
475
|
}
|
|
396
476
|
if (shouldRegister("eval")) {
|
|
@@ -403,25 +483,7 @@ export function registerListQueryCommands(program, options) {
|
|
|
403
483
|
.option("--fail-under <value>", "Exit non-zero when aggregate nDCG@k falls below this threshold (0..1); CI gate")
|
|
404
484
|
.option("--queries <path>", "Path to the golden-query JSON file (default: <pmRoot>/search/eval-queries.json)")
|
|
405
485
|
.option("--format <value>", "Eval output format override: json|toon")
|
|
406
|
-
.action(
|
|
407
|
-
const globalOptions = getGlobalOptions(command);
|
|
408
|
-
const startedAt = Date.now();
|
|
409
|
-
const { runEval } = await import("./commands/eval.js");
|
|
410
|
-
const result = await runEval({
|
|
411
|
-
mode: typeof options.mode === "string" ? options.mode : undefined,
|
|
412
|
-
k: typeof options.k === "string" ? options.k : undefined,
|
|
413
|
-
failUnder: typeof options.failUnder === "string" ? options.failUnder : undefined,
|
|
414
|
-
queries: typeof options.queries === "string" ? options.queries : undefined,
|
|
415
|
-
format: typeof options.format === "string" ? options.format : undefined,
|
|
416
|
-
}, globalOptions);
|
|
417
|
-
printResult(result, resolveReadCommandOutputFormat("Eval", options.format, globalOptions));
|
|
418
|
-
if (globalOptions.profile) {
|
|
419
|
-
printError(`profile:command=eval took_ms=${Date.now() - startedAt}`);
|
|
420
|
-
}
|
|
421
|
-
if (!result.passed) {
|
|
422
|
-
throw new PmCliError(`Eval gate failed: aggregate nDCG@${result.k} ${result.aggregate.ndcg} is below --fail-under ${result.fail_under}`, EXIT_CODE.GENERIC_FAILURE);
|
|
423
|
-
}
|
|
424
|
-
});
|
|
486
|
+
.action(runEvalAction);
|
|
425
487
|
}
|
|
426
488
|
if (shouldRegister("get")) {
|
|
427
489
|
const getCommand = program
|
|
@@ -434,26 +496,7 @@ export function registerListQueryCommands(program, options) {
|
|
|
434
496
|
.option("--tree-depth <n>", "Maximum subtree depth for --tree descendants")
|
|
435
497
|
.option("--format <value>", "Get output format override: json|toon")
|
|
436
498
|
.description("Show item details by ID.")
|
|
437
|
-
.action(
|
|
438
|
-
const globalOptions = getGlobalOptions(command);
|
|
439
|
-
const startedAt = Date.now();
|
|
440
|
-
const { runGet } = await import("./commands/get.js");
|
|
441
|
-
const result = await runGet(id, globalOptions, {
|
|
442
|
-
depth: typeof options.depth === "string" ? options.depth : undefined,
|
|
443
|
-
fields: typeof options.fields === "string" ? options.fields : undefined,
|
|
444
|
-
full: Boolean(options.full),
|
|
445
|
-
tree: options.tree === true,
|
|
446
|
-
treeDepth: typeof options.treeDepth === "string"
|
|
447
|
-
? options.treeDepth
|
|
448
|
-
: typeof options.tree_depth === "string"
|
|
449
|
-
? options.tree_depth
|
|
450
|
-
: undefined,
|
|
451
|
-
});
|
|
452
|
-
printResult(result, resolveReadCommandOutputFormat("Get", options.format, globalOptions));
|
|
453
|
-
if (globalOptions.profile) {
|
|
454
|
-
printError(`profile:command=get took_ms=${Date.now() - startedAt}`);
|
|
455
|
-
}
|
|
456
|
-
});
|
|
499
|
+
.action(runGetAction);
|
|
457
500
|
addHiddenOption(getCommand, "--tree_depth <n>", "Alias for --tree-depth");
|
|
458
501
|
}
|
|
459
502
|
if (shouldRegister("history")) {
|
|
@@ -468,26 +511,7 @@ export function registerListQueryCommands(program, options) {
|
|
|
468
511
|
.option("--verify", "Verify hash chain and replay integrity for the full history stream")
|
|
469
512
|
.option("--format <value>", "History output format override: json|toon")
|
|
470
513
|
.description("Show item history entries.")
|
|
471
|
-
.action(
|
|
472
|
-
const globalOptions = getGlobalOptions(command);
|
|
473
|
-
const startedAt = Date.now();
|
|
474
|
-
if (options.compact === true && options.full === true) {
|
|
475
|
-
throw new PmCliError("History projection options are mutually exclusive. Use either --compact or --full.", EXIT_CODE.USAGE);
|
|
476
|
-
}
|
|
477
|
-
const field = typeof options.field === "string" ? options.field : undefined;
|
|
478
|
-
const { runHistory } = await import("./commands/history.js");
|
|
479
|
-
const result = await runHistory(id, {
|
|
480
|
-
limit: typeof options.limit === "string" ? options.limit : undefined,
|
|
481
|
-
compact: options.full === true ? false : true,
|
|
482
|
-
diff: Boolean(options.diff) || field !== undefined,
|
|
483
|
-
field,
|
|
484
|
-
verify: Boolean(options.verify),
|
|
485
|
-
}, globalOptions);
|
|
486
|
-
printResult(result, resolveReadCommandOutputFormat("History", options.format, globalOptions));
|
|
487
|
-
if (globalOptions.profile) {
|
|
488
|
-
printError(`profile:command=history took_ms=${Date.now() - startedAt}`);
|
|
489
|
-
}
|
|
490
|
-
});
|
|
514
|
+
.action(runHistoryAction);
|
|
491
515
|
}
|
|
492
516
|
if (shouldRegister("activity")) {
|
|
493
517
|
program
|
|
@@ -502,29 +526,7 @@ export function registerListQueryCommands(program, options) {
|
|
|
502
526
|
.option("--full", "Show full activity entries with JSON Patch payloads")
|
|
503
527
|
.option("--stream [mode]", "Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl")
|
|
504
528
|
.description("Show recent activity across items.")
|
|
505
|
-
.action(
|
|
506
|
-
const globalOptions = getGlobalOptions(command);
|
|
507
|
-
const startedAt = Date.now();
|
|
508
|
-
if (options.compact === true && options.full === true) {
|
|
509
|
-
throw new PmCliError("Activity projection options are mutually exclusive. Use either --compact or --full.", EXIT_CODE.USAGE);
|
|
510
|
-
}
|
|
511
|
-
const normalized = normalizeActivityOptions(options);
|
|
512
|
-
const { runActivity } = await import("./commands/activity.js");
|
|
513
|
-
const result = await runActivity(normalized, globalOptions);
|
|
514
|
-
const streamMode = resolveActivityStreamMode(options.stream);
|
|
515
|
-
if (streamMode && !globalOptions.json) {
|
|
516
|
-
throw new PmCliError("--stream requires --json output mode.", EXIT_CODE.USAGE);
|
|
517
|
-
}
|
|
518
|
-
if (streamMode) {
|
|
519
|
-
printActivityJsonStream(result, normalized, globalOptions);
|
|
520
|
-
}
|
|
521
|
-
else {
|
|
522
|
-
printResult(result, globalOptions);
|
|
523
|
-
}
|
|
524
|
-
if (globalOptions.profile) {
|
|
525
|
-
printError(`profile:command=activity took_ms=${Date.now() - startedAt}`);
|
|
526
|
-
}
|
|
527
|
-
});
|
|
529
|
+
.action(runActivityAction);
|
|
528
530
|
}
|
|
529
531
|
}
|
|
530
532
|
export const _testOnlyRegisterListQuery = {
|
|
@@ -532,4 +534,4 @@ export const _testOnlyRegisterListQuery = {
|
|
|
532
534
|
parseListFormat,
|
|
533
535
|
};
|
|
534
536
|
//# sourceMappingURL=register-list-query.js.map
|
|
535
|
-
//# debugId=
|
|
537
|
+
//# debugId=bb0565a8-4995-5da9-9b39-2c0048ae2825
|