@unbrained/pm-cli 2026.7.16 → 2026.7.17
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 +2 -2
- package/CHANGELOG.md +17 -2
- package/CONTRIBUTING.md +2 -2
- package/dist/cli/bootstrap-args.d.ts +2 -115
- package/dist/cli/bootstrap-args.js +4 -831
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commands/eval.d.ts +4 -64
- package/dist/cli/commands/eval.js +4 -153
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/linked-test-entry.d.ts +6 -6
- package/dist/cli/commands/linked-test-entry.js +4 -65
- package/dist/cli/commands/linked-test-entry.js.map +1 -1
- package/dist/cli/commands/linked-test-parsers.d.ts +3 -45
- package/dist/cli/commands/linked-test-parsers.js +4 -516
- package/dist/cli/commands/linked-test-parsers.js.map +1 -1
- package/dist/cli/commands/list.d.ts +3 -210
- package/dist/cli/commands/list.js +4 -1068
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/search.d.ts +3 -464
- package/dist/cli/commands/search.js +4 -2236
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/stats.d.ts +6 -66
- package/dist/cli/commands/stats.js +4 -157
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/telemetry.d.ts +6 -14
- package/dist/cli/commands/telemetry.js +4 -349
- package/dist/cli/commands/telemetry.js.map +1 -1
- package/dist/cli/commands/test-all.d.ts +6 -95
- package/dist/cli/commands/test-all.js +4 -439
- package/dist/cli/commands/test-all.js.map +1 -1
- package/dist/cli/commands/test-runs.d.ts +6 -92
- package/dist/cli/commands/test-runs.js +4 -189
- package/dist/cli/commands/test-runs.js.map +1 -1
- package/dist/cli/commands/test.d.ts +6 -244
- package/dist/cli/commands/test.js +4 -1780
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update-many.d.ts +15 -29
- package/dist/cli/commands/update-many.js +355 -259
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/main.js +140 -133
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/search-refresh.js +4 -9
- package/dist/cli/search-refresh.js.map +1 -1
- package/dist/cli/shared-parsers.d.ts +6 -9
- package/dist/cli/shared-parsers.js +4 -37
- package/dist/cli/shared-parsers.js.map +1 -1
- package/dist/cli/telemetry-flush.js +4 -4
- package/dist/cli/telemetry-flush.js.map +1 -1
- package/dist/cli-bundle/bundle-manifest.json +341 -341
- package/dist/cli-bundle/chunks/{append-OJQFUQ4T.js → append-5YF3TO7I.js} +5 -5
- package/dist/cli-bundle/chunks/append-JHO5K6RP.js +11 -0
- package/dist/cli-bundle/chunks/{chunk-WT3ZEOGH.js → chunk-23TCGBRK.js} +16 -7
- package/dist/cli-bundle/chunks/{chunk-WT3ZEOGH.js.map → chunk-23TCGBRK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-BCOFWYW4.js → chunk-2BX74BAS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-APRVSW2O.js → chunk-2CXL335K.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KG44YSKD.js → chunk-2FUOXSRN.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-HDH3JUGG.js → chunk-2IPNL3DR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-J6364LFM.js → chunk-2MPMKJF2.js} +9 -18
- package/dist/cli-bundle/chunks/{chunk-J6364LFM.js.map → chunk-2MPMKJF2.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-GM5QHQU6.js → chunk-2XOSFSTH.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-K3WII2ME.js → chunk-37DRDP2B.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-2WSE6PO2.js → chunk-37V5MXAU.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UWQHLMEB.js → chunk-3D4YVTNG.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-PMOSXADO.js → chunk-47HXN6RX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-6CFNAVTF.js → chunk-5HGZKQUL.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-2IFFUZLC.js → chunk-5UKQLQM2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DM4H7FP4.js → chunk-633PKXLT.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-XSJUSQAE.js → chunk-646MQXFW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZI6VQWQ7.js → chunk-66MKH7SZ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-S6MQESFR.js → chunk-67RO3H4N.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-34L5OT3Y.js → chunk-6DYOZS6C.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RRM5JYJC.js → chunk-6O44IN44.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ONG5V5CI.js → chunk-6XAZB6SE.js} +97 -69
- package/dist/cli-bundle/chunks/chunk-6XAZB6SE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-PENXZX3U.js → chunk-74FKFFXO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LPYWLWDS.js → chunk-7CTQ7WW5.js} +37 -37
- package/dist/cli-bundle/chunks/chunk-7CTQ7WW5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HO4KXD6I.js → chunk-7H5NNCJ5.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-XXXF6PAQ.js → chunk-7LTCLTRG.js} +69 -61
- package/dist/cli-bundle/chunks/chunk-7LTCLTRG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TQSZFPIS.js → chunk-AFGKSHAM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-JXQUXVMI.js → chunk-AFSV5HBB.js} +77 -7
- package/dist/cli-bundle/chunks/{chunk-JXQUXVMI.js.map → chunk-AFSV5HBB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-6N2VXVTQ.js → chunk-ARGDWQ4J.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3U7ZR6M4.js → chunk-B57RJHBZ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-7B67ZL4N.js → chunk-B6SH2YNN.js} +75 -5
- package/dist/cli-bundle/chunks/{chunk-7B67ZL4N.js.map → chunk-B6SH2YNN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-YCQET3OT.js → chunk-BAP7G3N2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QKXHFPYM.js → chunk-BIRYX32V.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-RMLWNPH2.js → chunk-BVLOMU6O.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YBLZ2VE7.js → chunk-CFSUNEL7.js} +320 -239
- package/dist/cli-bundle/chunks/chunk-CFSUNEL7.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2VPAVL7O.js → chunk-CKX4WOPC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TKOVBP6C.js → chunk-D52ZN3BF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KPMKHGEA.js → chunk-D53RTYVI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-ODALILG3.js → chunk-D5XHO4Q7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-E2OJMKML.js → chunk-DCC2AQBD.js} +18 -9
- package/dist/cli-bundle/chunks/{chunk-E2OJMKML.js.map → chunk-DCC2AQBD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-YAQEBNY7.js → chunk-DDFGYUCQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-EAB64KLB.js → chunk-DG2EQRIH.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-IG3SWA4A.js → chunk-EHJFUOXL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ONREO4ST.js → chunk-EY7ZE3TG.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-EJEXHTY5.js → chunk-FHOBCGQO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-H3EIEWGR.js → chunk-FL4D53ND.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WUJQK4YV.js → chunk-FVNWHUME.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-INU6DKT5.js → chunk-FXFCFL73.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-QEHQ2GVG.js → chunk-FY4RLHSC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EACOH7AU.js → chunk-FZGM3PNA.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-FNSPG7MU.js → chunk-G6KM4YKY.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-AHVTB5I5.js → chunk-G6MYGULG.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-TSMHDIW4.js → chunk-GLZKZON6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2JKGO6QX.js → chunk-H5IOT54C.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5ZSLZLDN.js → chunk-HF63SBLC.js} +585 -456
- package/dist/cli-bundle/chunks/chunk-HF63SBLC.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SELVXEZK.js → chunk-HO4DLBNK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3CLU2XZO.js → chunk-HSYV4ZYT.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-EH2OPHBI.js → chunk-HTXXXF45.js} +23 -19
- package/dist/cli-bundle/chunks/chunk-HTXXXF45.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-CRVF2JDM.js → chunk-HXVHBERL.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-NU3IMIEA.js → chunk-I7DIDUSP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2NCIPMQP.js → chunk-I7GY4X6Y.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JYFOV7FC.js → chunk-IE5KRAKN.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UY2ACEMF.js → chunk-ILVOOAT4.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-GOSLKLFE.js → chunk-KH6QAHME.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-J6EY5V4N.js → chunk-KOEZCHRF.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-QKECXBBG.js → chunk-KX62NMZC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QKECXBBG.js.map → chunk-KX62NMZC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-WQPUU7XD.js → chunk-L337QKWJ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-LSG2U345.js → chunk-L6FVNR7X.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-ILX33QXL.js → chunk-LLODAQMP.js} +706 -532
- package/dist/cli-bundle/chunks/chunk-LLODAQMP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FMBNM2EN.js → chunk-LSOWTLEM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4223PVZT.js → chunk-M7MVOKVV.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-MNV226E4.js +834 -0
- package/dist/cli-bundle/chunks/chunk-MNV226E4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UMOPHQSU.js → chunk-MR4SHYR4.js} +41 -19
- package/dist/cli-bundle/chunks/chunk-MR4SHYR4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-BKVG6XOA.js → chunk-MSGETE6I.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3WM75PWC.js → chunk-N33FD2UI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UFXU44HV.js → chunk-N7I2DGLP.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3S5QVM5H.js → chunk-NCAFUBJX.js} +13 -13
- package/dist/cli-bundle/chunks/chunk-NCAFUBJX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-6S3YSUYG.js → chunk-NNANAWFH.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-IJIICKVW.js → chunk-NTRQLE2R.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SDQLJWBO.js → chunk-NVZ6NVHJ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-H2Z3FYXQ.js → chunk-OWP6QFBV.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-Q7A43DS4.js → chunk-P22HGFFI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NLDFBC6J.js → chunk-P56LKFQX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NVPZIJVR.js → chunk-PT7MCCGD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-P74IZQ7A.js → chunk-QKVVV6QO.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-5JLUII3O.js → chunk-QNUAZYGW.js} +321 -240
- package/dist/cli-bundle/chunks/chunk-QNUAZYGW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QIPLHNP7.js → chunk-QWBKN3QC.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-7PIWCHTW.js → chunk-R5XTTZSJ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-JOUQZENX.js → chunk-RC4UOUXA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-BEP7WJA2.js → chunk-RGMWJLXF.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-NP22ERDF.js → chunk-RTBX3C4C.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HYB5AZ63.js → chunk-S46R2M3W.js} +117 -71
- package/dist/cli-bundle/chunks/chunk-S46R2M3W.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-H5APFTHZ.js → chunk-S6FF7VW6.js} +18 -18
- package/dist/cli-bundle/chunks/chunk-S6FF7VW6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UXONS674.js → chunk-SIJV365F.js} +54 -55
- package/dist/cli-bundle/chunks/chunk-SIJV365F.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7Z4LKRS4.js → chunk-SPFZV2GR.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-ULTHRDBP.js → chunk-TM5CIO3F.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4XQ3BDV4.js → chunk-V3VBXQQV.js} +36 -36
- package/dist/cli-bundle/chunks/chunk-V3VBXQQV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YAROI3PD.js → chunk-V7MP6YTN.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-OW4JWD5M.js → chunk-VAHZIPWS.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-DYH63FX7.js → chunk-VE6ZSTQW.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3AUGG2DP.js → chunk-W5E2UUSH.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-BSEQUTQP.js → chunk-WACRQ26A.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BSEQUTQP.js.map → chunk-WACRQ26A.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-UOHFKBUV.js → chunk-WL3SS45P.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QKJGPFAF.js → chunk-WU3KAN6A.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-IA5FKNII.js → chunk-X2MGQMZO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TD3LVC7D.js → chunk-X5YCTFKT.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-B7PE22W6.js → chunk-XC2HEEOV.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-J5AOEGDC.js → chunk-XNPMDSQQ.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-K2X6U4UA.js → chunk-XXLXJL7V.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-XYJK6GIQ.js +851 -0
- package/dist/cli-bundle/chunks/chunk-XYJK6GIQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RLCHOOHC.js → chunk-YJSURTBB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PGY23YTC.js → chunk-YKFHF37B.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-JFTKLTEF.js → chunk-YQCWK2MB.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-EYLCSJAI.js → chunk-YQEZWI3R.js} +2 -2
- package/dist/cli-bundle/chunks/close-BEP7MHF3.js +12 -0
- package/dist/cli-bundle/chunks/{close-CWODTPKG.js → close-Y6QFUJQN.js} +5 -5
- package/dist/cli-bundle/chunks/{close-many-CQFUY7MR.js → close-many-JJFW7KTT.js} +14 -14
- package/dist/cli-bundle/chunks/close-many-QJ6FKJUE.js +23 -0
- package/dist/cli-bundle/chunks/comments-2AOZQ5D2.js +13 -0
- package/dist/cli-bundle/chunks/{comments-WGLHR7LB.js → comments-TMHMALA5.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-LXVDXH7B.js → copy-FWQA5OU4.js} +4 -4
- package/dist/cli-bundle/chunks/copy-N3LCQBMC.js +9 -0
- package/dist/cli-bundle/chunks/{create-LBVCYMEG.js → create-AQ5SIGZC.js} +9 -9
- package/dist/cli-bundle/chunks/{create-J5U6ND4K.js → create-KOGQ3JKD.js} +9 -9
- package/dist/cli-bundle/chunks/delete-6G3MBZ6S.js +10 -0
- package/dist/cli-bundle/chunks/{delete-PMJBNY5G.js → delete-YYYFOSEA.js} +4 -4
- package/dist/cli-bundle/chunks/{deps-OA26IS25.js → deps-5NC4IZH7.js} +5 -5
- package/dist/cli-bundle/chunks/{deps-JZ7TMVCB.js → deps-EVTOQMKW.js} +5 -5
- package/dist/cli-bundle/chunks/{docs-FEWB2DQB.js → docs-53NUGMIQ.js} +6 -6
- package/dist/cli-bundle/chunks/docs-OWRGDMNY.js +14 -0
- package/dist/cli-bundle/chunks/{files-EFIWKFTM.js → files-3PXGXYDB.js} +6 -6
- package/dist/cli-bundle/chunks/{files-6YFBJRBG.js → files-EGLKHD7O.js} +6 -6
- package/dist/cli-bundle/chunks/focus-KZLIA6WS.js +10 -0
- package/dist/cli-bundle/chunks/{focus-4QJR7FOQ.js → focus-SRPASFTN.js} +5 -5
- package/dist/cli-bundle/chunks/{history-compact-CKRPDTJN.js → history-compact-G4DULDCX.js} +6 -6
- package/dist/cli-bundle/chunks/history-compact-HHIUOMZ7.js +16 -0
- package/dist/cli-bundle/chunks/{history-redact-BB3TGDAE.js → history-redact-IUSJ6X3E.js} +4 -4
- package/dist/cli-bundle/chunks/{history-redact-D225BHOZ.js → history-redact-THHGRQXV.js} +4 -4
- package/dist/cli-bundle/chunks/history-repair-KG7SWXI6.js +16 -0
- package/dist/cli-bundle/chunks/{history-repair-RQXKQHL4.js → history-repair-LUQWRS7X.js} +6 -6
- package/dist/cli-bundle/chunks/{learnings-JLNLCOL5.js → learnings-2MRNBFJF.js} +7 -7
- package/dist/cli-bundle/chunks/learnings-ZVHSALJY.js +13 -0
- package/dist/cli-bundle/chunks/{notes-GB47XXQQ.js → notes-73JWKWUD.js} +7 -7
- package/dist/cli-bundle/chunks/notes-BAKUL5DJ.js +13 -0
- package/dist/cli-bundle/chunks/{plan-VDCJ2PCN.js → plan-AZPMCG37.js} +10 -10
- package/dist/cli-bundle/chunks/plan-LEAGLPGP.js +24 -0
- package/dist/cli-bundle/chunks/{profile-IVXQEL3D.js → profile-AGUKS52S.js} +9 -9
- package/dist/cli-bundle/chunks/{profile-FAU7NZML.js → profile-U2B6Y7GE.js} +9 -9
- package/dist/cli-bundle/chunks/{register-list-query-UL4UKBBN.js → register-list-query-A5KRJ5J2.js} +16 -16
- package/dist/cli-bundle/chunks/{register-list-query-DKA3EH5D.js → register-list-query-NEYP3TXO.js} +16 -16
- package/dist/cli-bundle/chunks/{register-mutation-RBBJ52DK.js → register-mutation-6LOPBAHC.js} +29 -29
- package/dist/cli-bundle/chunks/{register-mutation-ARFHRW55.js → register-mutation-GCZOALNJ.js} +29 -29
- package/dist/cli-bundle/chunks/{register-operations-ZIBBRSED.js → register-operations-6ZZIF27A.js} +35 -35
- package/dist/cli-bundle/chunks/{register-operations-ZUJ5JWPE.js → register-operations-REDIAEGI.js} +35 -35
- package/dist/cli-bundle/chunks/{register-setup-TDCGWIOS.js → register-setup-BHPMN5SK.js} +15 -15
- package/dist/cli-bundle/chunks/{register-setup-BCVLFEYS.js → register-setup-J3JS2ZVT.js} +15 -15
- package/dist/cli-bundle/chunks/{restore-25DLT2Q2.js → restore-E3PRGDN3.js} +6 -6
- package/dist/cli-bundle/chunks/restore-KIUYTAEJ.js +14 -0
- package/dist/cli-bundle/chunks/{schema-FNU3WE4O.js → schema-5JNFQFUW.js} +6 -6
- package/dist/cli-bundle/chunks/{schema-NBCM3RAD.js → schema-TMIW4XZC.js} +6 -6
- package/dist/cli-bundle/chunks/update-PQQHLYCC.js +21 -0
- package/dist/cli-bundle/chunks/{update-XHSIAIXE.js → update-SA6AG23P.js} +12 -12
- package/dist/cli-bundle/chunks/update-many-RQVTFJPD.js +36 -0
- package/dist/cli-bundle/chunks/update-many-TV3L3KBX.js +32 -0
- package/dist/cli-bundle/main.js +153 -855
- package/dist/cli-bundle/main.js.map +4 -4
- package/dist/cli-bundle/sdk-runtime.js +54 -54
- package/dist/cli-bundle/sdk-testing.js +6 -6
- package/dist/cli-bundle/sdk.js +195 -59
- package/dist/cli-bundle/sdk.js.map +3 -3
- package/dist/core/extensions/item-fields.js +2 -2
- package/dist/core/extensions/item-fields.js.map +1 -1
- package/dist/sdk/cli-bootstrap.d.ts +122 -0
- package/dist/sdk/cli-bootstrap.js +879 -0
- package/dist/sdk/cli-bootstrap.js.map +1 -0
- package/dist/sdk/eval.d.ts +66 -0
- package/dist/sdk/eval.js +186 -0
- package/dist/sdk/eval.js.map +1 -0
- package/dist/sdk/index.d.ts +16 -4
- package/dist/sdk/index.js +18 -6
- package/dist/sdk/index.js.map +1 -1
- package/dist/{cli/commands → sdk/query}/item-filter-options.d.ts +1 -1
- package/dist/{cli/commands → sdk/query}/item-filter-options.js +3 -3
- package/dist/sdk/query/item-filter-options.js.map +1 -0
- package/dist/sdk/query/list.d.ts +254 -0
- package/dist/sdk/query/list.js +1073 -0
- package/dist/sdk/query/list.js.map +1 -0
- package/dist/sdk/query/parsers.d.ts +9 -0
- package/dist/sdk/query/parsers.js +45 -0
- package/dist/sdk/query/parsers.js.map +1 -0
- package/dist/{cli/commands → sdk/query}/search-pagination.js +4 -4
- package/dist/sdk/query/search-pagination.js.map +1 -0
- package/dist/{cli/commands → sdk/query}/search-rendering.js +3 -3
- package/dist/sdk/query/search-rendering.js.map +1 -0
- package/dist/sdk/query/search.d.ts +469 -0
- package/dist/sdk/query/search.js +2247 -0
- package/dist/sdk/query/search.js.map +1 -0
- package/dist/sdk/runtime.d.ts +7 -7
- package/dist/sdk/runtime.js +13 -7
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/search-refresh-worker.d.ts +2 -0
- package/dist/sdk/search-refresh-worker.js +19 -0
- package/dist/sdk/search-refresh-worker.js.map +1 -0
- package/dist/sdk/stats.d.ts +66 -0
- package/dist/sdk/stats.js +151 -0
- package/dist/sdk/stats.js.map +1 -0
- package/dist/sdk/telemetry-flush.d.ts +2 -0
- package/dist/sdk/telemetry-flush.js +14 -0
- package/dist/sdk/telemetry-flush.js.map +1 -0
- package/dist/sdk/telemetry.d.ts +14 -0
- package/dist/sdk/telemetry.js +398 -0
- package/dist/sdk/telemetry.js.map +1 -0
- package/dist/sdk/test/batch.d.ts +94 -0
- package/dist/sdk/test/batch.js +492 -0
- package/dist/sdk/test/batch.js.map +1 -0
- package/dist/sdk/test/entry.d.ts +6 -0
- package/dist/sdk/test/entry.js +74 -0
- package/dist/sdk/test/entry.js.map +1 -0
- package/dist/sdk/test/execution.d.ts +282 -0
- package/dist/sdk/test/execution.js +1817 -0
- package/dist/sdk/test/execution.js.map +1 -0
- package/dist/sdk/test/parsers.d.ts +48 -0
- package/dist/sdk/test/parsers.js +522 -0
- package/dist/sdk/test/parsers.js.map +1 -0
- package/dist/sdk/test/runs.d.ts +92 -0
- package/dist/sdk/test/runs.js +195 -0
- package/dist/sdk/test/runs.js.map +1 -0
- package/docs/SDK.md +122 -0
- package/docs/SDK_PRIMITIVE_INVENTORY.md +5 -3
- package/docs/examples/sdk-custom-tool/README.md +27 -0
- package/docs/examples/sdk-custom-tool/package.json +13 -0
- package/docs/examples/sdk-custom-tool/src/cli.ts +36 -0
- package/docs/examples/sdk-custom-tool/src/entry.ts +15 -0
- package/docs/examples/sdk-custom-tool/src/index.ts +223 -0
- package/marketplace.json +2 -2
- package/package.json +4 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-governance-audit/extensions/governance-audit/comments-audit.ts +77 -57
- package/packages/pm-governance-audit/extensions/governance-audit/dedupe-audit.ts +202 -194
- package/packages/pm-governance-audit/extensions/governance-audit/dedupe-merge.ts +227 -153
- package/packages/pm-governance-audit/extensions/governance-audit/normalize.ts +169 -125
- package/packages/pm-governance-audit/extensions/governance-audit/runtime-utils.ts +130 -81
- package/packages/pm-governance-audit/extensions/governance-audit/sdk.ts +53 -4
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/dist/cli/commands/item-filter-options.js.map +0 -1
- package/dist/cli/commands/search-pagination.js.map +0 -1
- package/dist/cli/commands/search-rendering.js.map +0 -1
- package/dist/cli-bundle/chunks/append-UZVHUO74.js +0 -11
- package/dist/cli-bundle/chunks/chunk-3S5QVM5H.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-4XQ3BDV4.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5JLUII3O.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5ZSLZLDN.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-EH2OPHBI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-H5APFTHZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HYB5AZ63.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ILX33QXL.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-LPYWLWDS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ONG5V5CI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UMOPHQSU.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UXONS674.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XXXF6PAQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YBLZ2VE7.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YXSHIAUJ.js +0 -58
- package/dist/cli-bundle/chunks/chunk-YXSHIAUJ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ZKRZY773.js +0 -68
- package/dist/cli-bundle/chunks/chunk-ZKRZY773.js.map +0 -7
- package/dist/cli-bundle/chunks/close-W6LI2PKM.js +0 -12
- package/dist/cli-bundle/chunks/close-many-DLDDVSH5.js +0 -23
- package/dist/cli-bundle/chunks/comments-E3TNTK24.js +0 -13
- package/dist/cli-bundle/chunks/copy-Q5ZJPUKR.js +0 -9
- package/dist/cli-bundle/chunks/delete-WNHB3LYW.js +0 -10
- package/dist/cli-bundle/chunks/docs-HA2AIDBB.js +0 -14
- package/dist/cli-bundle/chunks/focus-POIW5LTJ.js +0 -10
- package/dist/cli-bundle/chunks/history-compact-FWG2C7FZ.js +0 -16
- package/dist/cli-bundle/chunks/history-repair-6GEAM7HE.js +0 -16
- package/dist/cli-bundle/chunks/learnings-RSNLSWDC.js +0 -13
- package/dist/cli-bundle/chunks/notes-2WDH6DXU.js +0 -13
- package/dist/cli-bundle/chunks/plan-DOVI2VMW.js +0 -24
- package/dist/cli-bundle/chunks/restore-YPMVUUEX.js +0 -14
- package/dist/cli-bundle/chunks/update-WWBYOPXO.js +0 -21
- package/dist/cli-bundle/chunks/update-many-OUGIU5SF.js +0 -32
- package/dist/cli-bundle/chunks/update-many-TA7NGQBO.js +0 -36
- /package/dist/cli-bundle/chunks/{append-OJQFUQ4T.js.map → append-5YF3TO7I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-UZVHUO74.js.map → append-JHO5K6RP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BCOFWYW4.js.map → chunk-2BX74BAS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-APRVSW2O.js.map → chunk-2CXL335K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KG44YSKD.js.map → chunk-2FUOXSRN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HDH3JUGG.js.map → chunk-2IPNL3DR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GM5QHQU6.js.map → chunk-2XOSFSTH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K3WII2ME.js.map → chunk-37DRDP2B.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2WSE6PO2.js.map → chunk-37V5MXAU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UWQHLMEB.js.map → chunk-3D4YVTNG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PMOSXADO.js.map → chunk-47HXN6RX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6CFNAVTF.js.map → chunk-5HGZKQUL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2IFFUZLC.js.map → chunk-5UKQLQM2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DM4H7FP4.js.map → chunk-633PKXLT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XSJUSQAE.js.map → chunk-646MQXFW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZI6VQWQ7.js.map → chunk-66MKH7SZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S6MQESFR.js.map → chunk-67RO3H4N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-34L5OT3Y.js.map → chunk-6DYOZS6C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RRM5JYJC.js.map → chunk-6O44IN44.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PENXZX3U.js.map → chunk-74FKFFXO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HO4KXD6I.js.map → chunk-7H5NNCJ5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TQSZFPIS.js.map → chunk-AFGKSHAM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6N2VXVTQ.js.map → chunk-ARGDWQ4J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3U7ZR6M4.js.map → chunk-B57RJHBZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YCQET3OT.js.map → chunk-BAP7G3N2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QKXHFPYM.js.map → chunk-BIRYX32V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RMLWNPH2.js.map → chunk-BVLOMU6O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2VPAVL7O.js.map → chunk-CKX4WOPC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TKOVBP6C.js.map → chunk-D52ZN3BF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KPMKHGEA.js.map → chunk-D53RTYVI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ODALILG3.js.map → chunk-D5XHO4Q7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YAQEBNY7.js.map → chunk-DDFGYUCQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EAB64KLB.js.map → chunk-DG2EQRIH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IG3SWA4A.js.map → chunk-EHJFUOXL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ONREO4ST.js.map → chunk-EY7ZE3TG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EJEXHTY5.js.map → chunk-FHOBCGQO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H3EIEWGR.js.map → chunk-FL4D53ND.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WUJQK4YV.js.map → chunk-FVNWHUME.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-INU6DKT5.js.map → chunk-FXFCFL73.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QEHQ2GVG.js.map → chunk-FY4RLHSC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EACOH7AU.js.map → chunk-FZGM3PNA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FNSPG7MU.js.map → chunk-G6KM4YKY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AHVTB5I5.js.map → chunk-G6MYGULG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TSMHDIW4.js.map → chunk-GLZKZON6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2JKGO6QX.js.map → chunk-H5IOT54C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SELVXEZK.js.map → chunk-HO4DLBNK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3CLU2XZO.js.map → chunk-HSYV4ZYT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CRVF2JDM.js.map → chunk-HXVHBERL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NU3IMIEA.js.map → chunk-I7DIDUSP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2NCIPMQP.js.map → chunk-I7GY4X6Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JYFOV7FC.js.map → chunk-IE5KRAKN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UY2ACEMF.js.map → chunk-ILVOOAT4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GOSLKLFE.js.map → chunk-KH6QAHME.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J6EY5V4N.js.map → chunk-KOEZCHRF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WQPUU7XD.js.map → chunk-L337QKWJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LSG2U345.js.map → chunk-L6FVNR7X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FMBNM2EN.js.map → chunk-LSOWTLEM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4223PVZT.js.map → chunk-M7MVOKVV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BKVG6XOA.js.map → chunk-MSGETE6I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3WM75PWC.js.map → chunk-N33FD2UI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UFXU44HV.js.map → chunk-N7I2DGLP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6S3YSUYG.js.map → chunk-NNANAWFH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IJIICKVW.js.map → chunk-NTRQLE2R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SDQLJWBO.js.map → chunk-NVZ6NVHJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H2Z3FYXQ.js.map → chunk-OWP6QFBV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q7A43DS4.js.map → chunk-P22HGFFI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NLDFBC6J.js.map → chunk-P56LKFQX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NVPZIJVR.js.map → chunk-PT7MCCGD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P74IZQ7A.js.map → chunk-QKVVV6QO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QIPLHNP7.js.map → chunk-QWBKN3QC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7PIWCHTW.js.map → chunk-R5XTTZSJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JOUQZENX.js.map → chunk-RC4UOUXA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BEP7WJA2.js.map → chunk-RGMWJLXF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NP22ERDF.js.map → chunk-RTBX3C4C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7Z4LKRS4.js.map → chunk-SPFZV2GR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ULTHRDBP.js.map → chunk-TM5CIO3F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YAROI3PD.js.map → chunk-V7MP6YTN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OW4JWD5M.js.map → chunk-VAHZIPWS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DYH63FX7.js.map → chunk-VE6ZSTQW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3AUGG2DP.js.map → chunk-W5E2UUSH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UOHFKBUV.js.map → chunk-WL3SS45P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QKJGPFAF.js.map → chunk-WU3KAN6A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IA5FKNII.js.map → chunk-X2MGQMZO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TD3LVC7D.js.map → chunk-X5YCTFKT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B7PE22W6.js.map → chunk-XC2HEEOV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J5AOEGDC.js.map → chunk-XNPMDSQQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K2X6U4UA.js.map → chunk-XXLXJL7V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RLCHOOHC.js.map → chunk-YJSURTBB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PGY23YTC.js.map → chunk-YKFHF37B.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JFTKLTEF.js.map → chunk-YQCWK2MB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EYLCSJAI.js.map → chunk-YQEZWI3R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-W6LI2PKM.js.map → close-BEP7MHF3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-CWODTPKG.js.map → close-Y6QFUJQN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-CQFUY7MR.js.map → close-many-JJFW7KTT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-DLDDVSH5.js.map → close-many-QJ6FKJUE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-E3TNTK24.js.map → comments-2AOZQ5D2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-WGLHR7LB.js.map → comments-TMHMALA5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-LXVDXH7B.js.map → copy-FWQA5OU4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-Q5ZJPUKR.js.map → copy-N3LCQBMC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-LBVCYMEG.js.map → create-AQ5SIGZC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-J5U6ND4K.js.map → create-KOGQ3JKD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-WNHB3LYW.js.map → delete-6G3MBZ6S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-PMJBNY5G.js.map → delete-YYYFOSEA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-OA26IS25.js.map → deps-5NC4IZH7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-JZ7TMVCB.js.map → deps-EVTOQMKW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-FEWB2DQB.js.map → docs-53NUGMIQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-HA2AIDBB.js.map → docs-OWRGDMNY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-EFIWKFTM.js.map → files-3PXGXYDB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-6YFBJRBG.js.map → files-EGLKHD7O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-POIW5LTJ.js.map → focus-KZLIA6WS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-4QJR7FOQ.js.map → focus-SRPASFTN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-CKRPDTJN.js.map → history-compact-G4DULDCX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-FWG2C7FZ.js.map → history-compact-HHIUOMZ7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-BB3TGDAE.js.map → history-redact-IUSJ6X3E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-D225BHOZ.js.map → history-redact-THHGRQXV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-6GEAM7HE.js.map → history-repair-KG7SWXI6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-RQXKQHL4.js.map → history-repair-LUQWRS7X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-JLNLCOL5.js.map → learnings-2MRNBFJF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-RSNLSWDC.js.map → learnings-ZVHSALJY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-GB47XXQQ.js.map → notes-73JWKWUD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-2WDH6DXU.js.map → notes-BAKUL5DJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-VDCJ2PCN.js.map → plan-AZPMCG37.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-DOVI2VMW.js.map → plan-LEAGLPGP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-IVXQEL3D.js.map → profile-AGUKS52S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-FAU7NZML.js.map → profile-U2B6Y7GE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-UL4UKBBN.js.map → register-list-query-A5KRJ5J2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-DKA3EH5D.js.map → register-list-query-NEYP3TXO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-RBBJ52DK.js.map → register-mutation-6LOPBAHC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-ARFHRW55.js.map → register-mutation-GCZOALNJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-ZIBBRSED.js.map → register-operations-6ZZIF27A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-ZUJ5JWPE.js.map → register-operations-REDIAEGI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-TDCGWIOS.js.map → register-setup-BHPMN5SK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-BCVLFEYS.js.map → register-setup-J3JS2ZVT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-25DLT2Q2.js.map → restore-E3PRGDN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-YPMVUUEX.js.map → restore-KIUYTAEJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-FNU3WE4O.js.map → schema-5JNFQFUW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-NBCM3RAD.js.map → schema-TMIW4XZC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-WWBYOPXO.js.map → update-PQQHLYCC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-XHSIAIXE.js.map → update-SA6AG23P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-TA7NGQBO.js.map → update-many-RQVTFJPD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-OUGIU5SF.js.map → update-many-TV3L3KBX.js.map} +0 -0
- /package/dist/{cli/commands → sdk/query}/search-pagination.d.ts +0 -0
- /package/dist/{cli/commands → sdk/query}/search-rendering.d.ts +0 -0
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { EXIT_CODE, PmCliError, PmClient, type ListOptions } from "./sdk.ts";
|
|
8
8
|
|
|
9
9
|
/** Retain only list filters that the package-owned audit queries may forward. */
|
|
10
|
-
export
|
|
10
|
+
export const buildListQueryFilters = (
|
|
11
11
|
filters: Pick<
|
|
12
12
|
ListOptions,
|
|
13
13
|
| "type"
|
|
@@ -21,7 +21,7 @@ export function buildListQueryFilters(
|
|
|
21
21
|
| "sprint"
|
|
22
22
|
| "release"
|
|
23
23
|
>,
|
|
24
|
-
): ListOptions {
|
|
24
|
+
): ListOptions => {
|
|
25
25
|
const {
|
|
26
26
|
type,
|
|
27
27
|
tag,
|
|
@@ -46,48 +46,50 @@ export function buildListQueryFilters(
|
|
|
46
46
|
sprint,
|
|
47
47
|
release,
|
|
48
48
|
};
|
|
49
|
-
}
|
|
49
|
+
};
|
|
50
50
|
|
|
51
51
|
/** Order valid timestamps chronologically and malformed values lexicographically. */
|
|
52
|
-
export
|
|
52
|
+
export const compareTimestampStrings = (
|
|
53
|
+
left: string,
|
|
54
|
+
right: string,
|
|
55
|
+
): number => {
|
|
53
56
|
const leftMs = Date.parse(left);
|
|
54
57
|
const rightMs = Date.parse(right);
|
|
55
58
|
if (Number.isFinite(leftMs) && Number.isFinite(rightMs) && leftMs !== rightMs)
|
|
56
59
|
return leftMs - rightMs;
|
|
57
60
|
return left.localeCompare(right);
|
|
58
|
-
}
|
|
61
|
+
};
|
|
59
62
|
|
|
60
63
|
/** Measure set overlap between two token lists on the inclusive zero-to-one scale. */
|
|
61
|
-
export
|
|
64
|
+
export const jaccardSimilarity = (
|
|
62
65
|
leftTokens: string[],
|
|
63
66
|
rightTokens: string[],
|
|
64
|
-
): number {
|
|
65
|
-
if (leftTokens.length === 0 && rightTokens.length === 0) return 1;
|
|
66
|
-
if (leftTokens.length === 0 || rightTokens.length === 0) return 0;
|
|
67
|
+
): number => {
|
|
67
68
|
const left = new Set(leftTokens);
|
|
68
69
|
const right = new Set(rightTokens);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
const union = new Set([...left, ...right]);
|
|
71
|
+
if (union.size === 0) return 1;
|
|
72
|
+
const intersection = [...left].filter((token) => right.has(token)).length;
|
|
73
|
+
return intersection / union.size;
|
|
74
|
+
};
|
|
73
75
|
|
|
74
76
|
/** Trim, lowercase, and collapse internal whitespace for stable audit comparisons. */
|
|
75
|
-
export
|
|
77
|
+
export const normalizeLowercaseWhitespace = (value: string): string => {
|
|
76
78
|
return value.trim().toLowerCase().replace(/\s+/g, " ");
|
|
77
|
-
}
|
|
79
|
+
};
|
|
78
80
|
|
|
79
81
|
/** Split normalized text into non-empty lowercase ASCII alphanumeric tokens. */
|
|
80
|
-
export
|
|
82
|
+
export const tokenizeAlphaNumeric = (value: string): string[] => {
|
|
81
83
|
return normalizeLowercaseWhitespace(value)
|
|
82
84
|
.split(/[^a-z0-9]+/)
|
|
83
85
|
.filter((token) => token.length > 0);
|
|
84
|
-
}
|
|
86
|
+
};
|
|
85
87
|
|
|
86
88
|
/** Parse an optional non-negative integer limit with package-specific error context. */
|
|
87
|
-
export
|
|
89
|
+
export const parseIntegerLimit = (
|
|
88
90
|
raw: string | undefined,
|
|
89
91
|
label = "--limit",
|
|
90
|
-
): number | undefined {
|
|
92
|
+
): number | undefined => {
|
|
91
93
|
if (raw === undefined) return undefined;
|
|
92
94
|
const parsed = Number(raw);
|
|
93
95
|
if (!Number.isInteger(parsed) || parsed < 0)
|
|
@@ -96,31 +98,31 @@ export function parseIntegerLimit(
|
|
|
96
98
|
EXIT_CODE.USAGE,
|
|
97
99
|
);
|
|
98
100
|
return parsed;
|
|
99
|
-
}
|
|
101
|
+
};
|
|
100
102
|
|
|
101
103
|
/** Normalize an optional comma-separated value into trimmed non-empty entries. */
|
|
102
|
-
export
|
|
104
|
+
export const splitCommaList = (raw: string | undefined | null): string[] => {
|
|
103
105
|
if (raw == null) return [];
|
|
104
106
|
return raw
|
|
105
107
|
.split(",")
|
|
106
108
|
.map((entry) => entry.trim())
|
|
107
109
|
.filter(Boolean);
|
|
108
|
-
}
|
|
110
|
+
};
|
|
109
111
|
|
|
110
112
|
/** Convert thrown values to a concise message suitable for audit result envelopes. */
|
|
111
|
-
export
|
|
113
|
+
export const toErrorMessage = (error: unknown): string => {
|
|
112
114
|
if (error instanceof Error) return error.message.trim() || error.name;
|
|
113
115
|
return String(error);
|
|
114
|
-
}
|
|
116
|
+
};
|
|
115
117
|
|
|
116
118
|
/** Return trimmed non-empty text while rejecting non-string and blank values. */
|
|
117
|
-
export
|
|
119
|
+
export const toNonEmptyStringOrUndefined = (
|
|
118
120
|
value: unknown,
|
|
119
|
-
): string | undefined {
|
|
121
|
+
): string | undefined => {
|
|
120
122
|
if (typeof value !== "string") return undefined;
|
|
121
123
|
const normalized = value.trim();
|
|
122
124
|
return normalized.length > 0 ? normalized : undefined;
|
|
123
|
-
}
|
|
125
|
+
};
|
|
124
126
|
|
|
125
127
|
/** Inputs used to attribute linked paths to every item that references them. */
|
|
126
128
|
export interface LinkedArtifactAuditPayload {
|
|
@@ -141,18 +143,22 @@ export interface LinkedArtifactAuditEntry {
|
|
|
141
143
|
}
|
|
142
144
|
|
|
143
145
|
/** Build sorted, duplicate-free reverse attribution for requested artifact paths. */
|
|
144
|
-
export
|
|
146
|
+
export const buildLinkedArtifactAudit = (
|
|
145
147
|
input: LinkedArtifactAuditPayload,
|
|
146
|
-
): LinkedArtifactAuditEntry[] {
|
|
148
|
+
): LinkedArtifactAuditEntry[] => {
|
|
149
|
+
/** Build a stable reverse index over optional item and path collections. */
|
|
150
|
+
/** Normalize an optional read-only collection into an iterable array. */
|
|
151
|
+
const optionalArray = <Value>(values: readonly Value[] | undefined) =>
|
|
152
|
+
values ?? [];
|
|
147
153
|
const index = new Map<string, Set<string>>();
|
|
148
|
-
for (const item of input.items
|
|
149
|
-
for (const artifact of item.artifacts
|
|
154
|
+
for (const item of optionalArray(input.items)) {
|
|
155
|
+
for (const artifact of optionalArray(item.artifacts)) {
|
|
150
156
|
const ids = index.get(artifact.path) ?? new Set<string>();
|
|
151
157
|
ids.add(item.id);
|
|
152
158
|
index.set(artifact.path, ids);
|
|
153
159
|
}
|
|
154
160
|
}
|
|
155
|
-
return [...new Set(input.paths
|
|
161
|
+
return [...new Set(optionalArray(input.paths))]
|
|
156
162
|
.sort((left, right) => left.localeCompare(right))
|
|
157
163
|
.map((linkedPath) => {
|
|
158
164
|
const linkedItemIds = [...(index.get(linkedPath) ?? [])].sort(
|
|
@@ -164,7 +170,7 @@ export function buildLinkedArtifactAudit(
|
|
|
164
170
|
linked_item_ids: linkedItemIds,
|
|
165
171
|
};
|
|
166
172
|
});
|
|
167
|
-
}
|
|
173
|
+
};
|
|
168
174
|
|
|
169
175
|
interface CommandResultPayload {
|
|
170
176
|
command?: string;
|
|
@@ -174,80 +180,123 @@ interface CommandResultPayload {
|
|
|
174
180
|
result?: unknown;
|
|
175
181
|
}
|
|
176
182
|
|
|
177
|
-
|
|
183
|
+
const asRecord = (value: unknown): Record<string, unknown> | undefined => {
|
|
184
|
+
/** Narrow an unknown payload to a non-null object record. */
|
|
178
185
|
return typeof value === "object" && value !== null
|
|
179
186
|
? (value as Record<string, unknown>)
|
|
180
187
|
: undefined;
|
|
181
|
-
}
|
|
188
|
+
};
|
|
182
189
|
|
|
183
|
-
|
|
190
|
+
const hasUpdateAuditBypass = (
|
|
191
|
+
options: Record<string, unknown> | undefined,
|
|
192
|
+
): boolean => {
|
|
193
|
+
/** Detect every supported update-audit bypass alias. */
|
|
194
|
+
const resolved = options ?? {};
|
|
184
195
|
return (
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
196
|
+
resolved.allowAuditUpdate === true ||
|
|
197
|
+
resolved.allow_audit_update === true ||
|
|
198
|
+
resolved.allowAuditDepUpdate === true ||
|
|
199
|
+
resolved.allow_audit_dep_update === true
|
|
189
200
|
);
|
|
190
|
-
}
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
const resolveLinkedArtifactAuditKey = (
|
|
204
|
+
payload: CommandResultPayload,
|
|
205
|
+
): "files" | "docs" | undefined => {
|
|
206
|
+
/** Resolve the supported linked-artifact result key for an eligible audit request. */
|
|
207
|
+
const artifactKey = (["files", "docs"] as const).find(
|
|
208
|
+
(candidate) => candidate === payload.command,
|
|
209
|
+
);
|
|
210
|
+
if (artifactKey === undefined) return undefined;
|
|
211
|
+
if (payload.options?.audit !== true) return undefined;
|
|
212
|
+
if (!payload.pm_root) return undefined;
|
|
213
|
+
return artifactKey;
|
|
214
|
+
};
|
|
191
215
|
|
|
192
|
-
async
|
|
216
|
+
const decorateLinkedArtifactResult = async (
|
|
193
217
|
payload: CommandResultPayload,
|
|
194
218
|
result: Record<string, unknown>,
|
|
195
|
-
): Promise<Record<string, unknown> | undefined> {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
!payload.pm_root
|
|
200
|
-
) {
|
|
201
|
-
return undefined;
|
|
202
|
-
}
|
|
203
|
-
const artifactKey = payload.command;
|
|
219
|
+
): Promise<Record<string, unknown> | undefined> => {
|
|
220
|
+
/** Add reverse linked-artifact attribution to eligible files/docs results. */
|
|
221
|
+
const artifactKey = resolveLinkedArtifactAuditKey(payload);
|
|
222
|
+
if (artifactKey === undefined) return undefined;
|
|
204
223
|
const artifacts = Array.isArray(result[artifactKey])
|
|
205
|
-
?
|
|
224
|
+
? result[artifactKey]
|
|
206
225
|
: [];
|
|
207
|
-
const paths = artifacts.flatMap((entry) =>
|
|
208
|
-
|
|
209
|
-
|
|
226
|
+
const paths = artifacts.flatMap((entry) => {
|
|
227
|
+
const artifact = asRecord(entry);
|
|
228
|
+
return typeof artifact?.path === "string" ? [artifact.path] : [];
|
|
229
|
+
});
|
|
210
230
|
const listed = await new PmClient({ pmRoot: payload.pm_root }).list({
|
|
211
231
|
status: "all",
|
|
212
232
|
noTruncate: true,
|
|
213
233
|
fields: `id,${artifactKey}`,
|
|
214
234
|
});
|
|
215
|
-
const items = listed.items.
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
235
|
+
const items = listed.items.flatMap((item) =>
|
|
236
|
+
typeof item.id === "string"
|
|
237
|
+
? [
|
|
238
|
+
{
|
|
239
|
+
id: item.id,
|
|
240
|
+
artifacts: Array.isArray(item[artifactKey])
|
|
241
|
+
? item[artifactKey].flatMap((entry) => {
|
|
242
|
+
const artifact = asRecord(entry);
|
|
243
|
+
return typeof artifact?.path === "string"
|
|
244
|
+
? [{ path: artifact.path }]
|
|
245
|
+
: [];
|
|
246
|
+
})
|
|
247
|
+
: undefined,
|
|
248
|
+
},
|
|
249
|
+
]
|
|
250
|
+
: [],
|
|
251
|
+
);
|
|
221
252
|
return {
|
|
222
253
|
...result,
|
|
223
254
|
audit: buildLinkedArtifactAudit({ paths, items }),
|
|
224
255
|
};
|
|
225
|
-
}
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
const decorateUpdateAuditBypassResult = (
|
|
259
|
+
payload: CommandResultPayload,
|
|
260
|
+
result: Record<string, unknown>,
|
|
261
|
+
): Record<string, unknown> | undefined => {
|
|
262
|
+
/** Add the package-owned audit marker for an explicit update bypass. */
|
|
263
|
+
const isUpdate = ["update", "update-many"].includes(String(payload.command));
|
|
264
|
+
if (isUpdate && hasUpdateAuditBypass(payload.options)) {
|
|
265
|
+
return { ...result, audit_update: true };
|
|
266
|
+
}
|
|
267
|
+
return undefined;
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
const decorateReleaseAuditBypassResult = (
|
|
271
|
+
payload: CommandResultPayload,
|
|
272
|
+
result: Record<string, unknown>,
|
|
273
|
+
): Record<string, unknown> | undefined => {
|
|
274
|
+
/** Add the package-owned audit marker for an explicit release bypass. */
|
|
275
|
+
if (
|
|
276
|
+
payload.command === "release" &&
|
|
277
|
+
payload.options?.allowAuditRelease === true
|
|
278
|
+
) {
|
|
279
|
+
return { ...result, audit_release: true };
|
|
280
|
+
}
|
|
281
|
+
return undefined;
|
|
282
|
+
};
|
|
226
283
|
|
|
227
284
|
/** Add package-owned fields to a completed core command result. */
|
|
228
|
-
export async
|
|
285
|
+
export const decorateGovernanceCommandResult = async (
|
|
229
286
|
raw: unknown,
|
|
230
|
-
): Promise<unknown> {
|
|
287
|
+
): Promise<unknown> => {
|
|
231
288
|
const payload = asRecord(raw) as CommandResultPayload | undefined;
|
|
232
|
-
|
|
233
|
-
const
|
|
234
|
-
if (!
|
|
289
|
+
if (!payload) return undefined;
|
|
290
|
+
const result = asRecord(payload.result);
|
|
291
|
+
if (!result) return payload.result;
|
|
235
292
|
const linkedArtifactResult = await decorateLinkedArtifactResult(
|
|
236
293
|
payload,
|
|
237
294
|
result,
|
|
238
295
|
);
|
|
239
296
|
if (linkedArtifactResult) return linkedArtifactResult;
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
(payload
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
if (payload.command === "release" && options.allowAuditRelease === true) {
|
|
249
|
-
return { ...result, audit_release: true };
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
return result;
|
|
253
|
-
}
|
|
297
|
+
const bypassResult = [
|
|
298
|
+
decorateUpdateAuditBypassResult(payload, result),
|
|
299
|
+
decorateReleaseAuditBypassResult(payload, result),
|
|
300
|
+
].find((candidate) => candidate !== undefined);
|
|
301
|
+
return bypassResult ?? result;
|
|
302
|
+
};
|
|
@@ -6,16 +6,63 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { pathToFileURL } from "node:url";
|
|
9
|
-
import type
|
|
9
|
+
import type {
|
|
10
|
+
EXIT_CODE as RuntimeExitCode,
|
|
11
|
+
PmCliError as RuntimePmCliError,
|
|
12
|
+
PmClient as RuntimePmClient,
|
|
13
|
+
getActiveExtensionRegistrations as runtimeGetActiveExtensionRegistrations,
|
|
14
|
+
getSettingsPath as runtimeGetSettingsPath,
|
|
15
|
+
isTerminalStatus as runtimeIsTerminalStatus,
|
|
16
|
+
locateItem as runtimeLocateItem,
|
|
17
|
+
normalizeStatusInput as runtimeNormalizeStatusInput,
|
|
18
|
+
nowIso as runtimeNowIso,
|
|
19
|
+
pathExists as runtimePathExists,
|
|
20
|
+
readBooleanOption as runtimeReadBooleanOption,
|
|
21
|
+
readCsvListOption as runtimeReadCsvListOption,
|
|
22
|
+
readLocatedItem as runtimeReadLocatedItem,
|
|
23
|
+
readSettings as runtimeReadSettings,
|
|
24
|
+
readStringOption as runtimeReadStringOption,
|
|
25
|
+
resolveItemTypeRegistry as runtimeResolveItemTypeRegistry,
|
|
26
|
+
resolvePmRoot as runtimeResolvePmRoot,
|
|
27
|
+
resolveRuntimeStatusRegistry as runtimeResolveRuntimeStatusRegistry,
|
|
28
|
+
runClose as runtimeRunClose,
|
|
29
|
+
runList as runtimeRunList,
|
|
30
|
+
runUpdate as runtimeRunUpdate,
|
|
31
|
+
} from "@unbrained/pm-cli/sdk/runtime";
|
|
32
|
+
|
|
33
|
+
/** Typed host-runtime values consumed through the package's dynamic boundary. */
|
|
34
|
+
interface RuntimeSdkModule {
|
|
35
|
+
EXIT_CODE: typeof RuntimeExitCode;
|
|
36
|
+
PmCliError: typeof RuntimePmCliError;
|
|
37
|
+
PmClient: typeof RuntimePmClient;
|
|
38
|
+
getActiveExtensionRegistrations: typeof runtimeGetActiveExtensionRegistrations;
|
|
39
|
+
getSettingsPath: typeof runtimeGetSettingsPath;
|
|
40
|
+
isTerminalStatus: typeof runtimeIsTerminalStatus;
|
|
41
|
+
locateItem: typeof runtimeLocateItem;
|
|
42
|
+
normalizeStatusInput: typeof runtimeNormalizeStatusInput;
|
|
43
|
+
nowIso: typeof runtimeNowIso;
|
|
44
|
+
pathExists: typeof runtimePathExists;
|
|
45
|
+
readBooleanOption: typeof runtimeReadBooleanOption;
|
|
46
|
+
readCsvListOption: typeof runtimeReadCsvListOption;
|
|
47
|
+
readLocatedItem: typeof runtimeReadLocatedItem;
|
|
48
|
+
readSettings: typeof runtimeReadSettings;
|
|
49
|
+
readStringOption: typeof runtimeReadStringOption;
|
|
50
|
+
resolveItemTypeRegistry: typeof runtimeResolveItemTypeRegistry;
|
|
51
|
+
resolvePmRoot: typeof runtimeResolvePmRoot;
|
|
52
|
+
resolveRuntimeStatusRegistry: typeof runtimeResolveRuntimeStatusRegistry;
|
|
53
|
+
runClose: typeof runtimeRunClose;
|
|
54
|
+
runList: typeof runtimeRunList;
|
|
55
|
+
runUpdate: typeof runtimeRunUpdate;
|
|
56
|
+
}
|
|
10
57
|
|
|
11
58
|
const packageRoot = process.env.PM_CLI_PACKAGE_ROOT?.trim();
|
|
12
|
-
let loadedRuntime:
|
|
59
|
+
let loadedRuntime: RuntimeSdkModule;
|
|
13
60
|
/* c8 ignore start -- copied installs exercise PM_CLI_PACKAGE_ROOT in subprocess integration coverage. */
|
|
14
61
|
try {
|
|
15
62
|
if (packageRoot) {
|
|
16
63
|
loadedRuntime = (await import(
|
|
17
64
|
pathToFileURL(path.join(packageRoot, "dist", "sdk", "runtime.js")).href
|
|
18
|
-
)) as
|
|
65
|
+
)) as RuntimeSdkModule;
|
|
19
66
|
} else {
|
|
20
67
|
loadedRuntime = await import("@unbrained/pm-cli/sdk/runtime");
|
|
21
68
|
}
|
|
@@ -50,10 +97,12 @@ export const {
|
|
|
50
97
|
resolvePmRoot,
|
|
51
98
|
resolveRuntimeStatusRegistry,
|
|
52
99
|
runClose,
|
|
53
|
-
runList,
|
|
54
100
|
runUpdate,
|
|
55
101
|
} = runtime;
|
|
56
102
|
|
|
103
|
+
/** Preserve the host SDK list overloads across the dynamic runtime boundary. */
|
|
104
|
+
export const runList: typeof runtimeRunList = runtime.runList;
|
|
105
|
+
|
|
57
106
|
/** Runtime status registry inferred from the host SDK's schema resolver. */
|
|
58
107
|
export type RuntimeStatusRegistry = ReturnType<
|
|
59
108
|
typeof resolveRuntimeStatusRegistry
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pm-claude",
|
|
3
3
|
"description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents (coordinator, delivery-chain, triage, verification), hybrid TUI task tracking (pm as persistent store + Claude Code task panel as live view), session context injection, and full git-based project management without leaving Claude Code.",
|
|
4
|
-
"version": "2026.7.
|
|
4
|
+
"version": "2026.7.17",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "unbrained",
|
|
7
7
|
"url": "https://github.com/unbraind/pm-cli"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"item-filter-options.js","sources":["cli/commands/item-filter-options.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/commands/item-filter-options\n *\n * Shared item-filter option contracts used by command implementations and SDK-facing types.\n */\n\n/** Common scalar item filters accepted by list/search-style commands. */\nexport interface SharedItemScalarFilterOptions {\n /** Lifecycle state reported for status. */\n status?: string;\n /** Schema type that determines the shape and validation rules for this value. */\n type?: string;\n /** Value that configures or reports tag for this contract. */\n tag?: string;\n /** Value that configures or reports priority for this contract. */\n priority?: string;\n /** Value that configures or reports deadline before for this contract. */\n deadlineBefore?: string;\n /** Value that configures or reports deadline after for this contract. */\n deadlineAfter?: string;\n /** Value that configures or reports updated after for this contract. */\n updatedAfter?: string;\n /** Value that configures or reports updated before for this contract. */\n updatedBefore?: string;\n /** Value that configures or reports created after for this contract. */\n createdAfter?: string;\n /** Value that configures or reports created before for this contract. */\n createdBefore?: string;\n /** Value that configures or reports assignee for this contract. */\n assignee?: string;\n /** Value that configures or reports parent for this contract. */\n parent?: string;\n /** Value that configures or reports sprint for this contract. */\n sprint?: string;\n /** Value that configures or reports release for this contract. */\n release?: string;\n}\n\n/** Common governance-metadata presence filters accepted by item query commands. */\nexport interface SharedGovernanceMissingFilterOptions {\n /** Value that configures or reports filter reviewer missing for this contract. */\n filterReviewerMissing?: boolean;\n /** Value that configures or reports filter risk missing for this contract. */\n filterRiskMissing?: boolean;\n /** Value that configures or reports filter confidence missing for this contract. */\n filterConfidenceMissing?: boolean;\n /** Value that configures or reports filter sprint missing for this contract. */\n filterSprintMissing?: boolean;\n /** Value that configures or reports filter release missing for this contract. */\n filterReleaseMissing?: boolean;\n}\n\n/** Common content-field presence filters accepted by item query commands. */\nexport interface SharedContentFieldFilterOptions {\n /** Whether notes applies to this operation. */\n hasNotes?: boolean;\n /** Whether learnings applies to this operation. */\n hasLearnings?: boolean;\n /** Whether files applies to this operation. */\n hasFiles?: boolean;\n /** Whether docs applies to this operation. */\n hasDocs?: boolean;\n /** Whether tests applies to this operation. */\n hasTests?: boolean;\n /** Whether comments applies to this operation. */\n hasComments?: boolean;\n /** Whether deps applies to this operation. */\n hasDeps?: boolean;\n /** Whether body applies to this operation. */\n hasBody?: boolean;\n /** Whether linked command applies to this operation. */\n hasLinkedCommand?: boolean;\n /** Value that configures or reports no notes for this contract. */\n noNotes?: boolean;\n /** Value that configures or reports no learnings for this contract. */\n noLearnings?: boolean;\n /** Value that configures or reports no files for this contract. */\n noFiles?: boolean;\n /** Value that configures or reports filter files missing for this contract. */\n filterFilesMissing?: boolean;\n /** Value that configures or reports no docs for this contract. */\n noDocs?: boolean;\n /** Value that configures or reports filter docs missing for this contract. */\n filterDocsMissing?: boolean;\n /** Value that configures or reports no tests for this contract. */\n noTests?: boolean;\n /** Value that configures or reports no comments for this contract. */\n noComments?: boolean;\n /** Value that configures or reports no deps for this contract. */\n noDeps?: boolean;\n /** Value that configures or reports empty body for this contract. */\n emptyBody?: boolean;\n /** Value that configures or reports no linked command for this contract. */\n noLinkedCommand?: boolean;\n}\n\n/** Base option shape for item query commands with schema/runtime extension flags. */\nexport interface SharedItemFilterOptions\n extends\n SharedItemScalarFilterOptions,\n SharedGovernanceMissingFilterOptions,\n SharedContentFieldFilterOptions {\n [key: string]: unknown;\n}\n"],"names":[],"mappings":"AAAA;;;;GAIG","debugId":"e9715bcc-aec2-557d-8ccd-13d3d0262792"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-pagination.js","sources":["cli/commands/search-pagination.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/commands/search-pagination\n *\n * Applies the shared SDK cursor contract to ranked search results.\n */\nimport {\n createQueryFingerprint,\n paginateQueryRows,\n} from \"../../sdk/pagination.js\";\nimport type { SearchHit, SearchOptions } from \"./search.js\";\nimport type { SearchMode } from \"./search-rendering.js\";\n\n/** Build the query-only fingerprint shared by search retrieval and paging. */\nexport function createSearchCursorFingerprint(options: {\n query: string;\n mode: SearchMode;\n searchOptions: SearchOptions;\n}): string {\n const normalizedOptions: Record<string, unknown> = {\n ...options.searchOptions,\n };\n delete normalizedOptions.after;\n delete normalizedOptions.limit;\n delete normalizedOptions.compact;\n delete normalizedOptions.full;\n delete normalizedOptions.fields;\n delete normalizedOptions.highlight;\n delete normalizedOptions.format;\n return createQueryFingerprint(\"search\", {\n query: options.query.trim(),\n mode: options.mode,\n options: normalizedOptions,\n });\n}\n\n/** Page ranked search hits without coupling cursor mechanics to search scoring. */\nexport function resolveSearchPage(options: {\n sorted: SearchHit[];\n query: string;\n mode: SearchMode;\n searchOptions: SearchOptions;\n limit: number;\n}): {\n limited: SearchHit[];\n pageExtras: {\n has_more?: boolean;\n next_cursor?: string;\n applied_limit: number;\n truncated?: true;\n };\n} {\n const page = paginateQueryRows(options.sorted, {\n cursor: options.searchOptions.after,\n fingerprint: createSearchCursorFingerprint(options),\n limit: options.limit,\n readId: (hit) => hit.item.id,\n });\n return {\n limited: page.rows,\n pageExtras: {\n applied_limit: options.limit,\n ...(page.has_more ? { has_more: true, truncated: true } : {}),\n ...(page.next_cursor ? { next_cursor: page.next_cursor } : {}),\n },\n };\n}\n"],"names":[],"mappings":"AAAA;;;;GAIG;;;AACH,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAIjC,8EAA8E;AAC9E,MAAM,UAAU,6BAA6B,CAAC,OAI7C;IACC,MAAM,iBAAiB,GAA4B;QACjD,GAAG,OAAO,CAAC,aAAa;KACzB,CAAC;IACF,OAAO,iBAAiB,CAAC,KAAK,CAAC;IAC/B,OAAO,iBAAiB,CAAC,KAAK,CAAC;IAC/B,OAAO,iBAAiB,CAAC,OAAO,CAAC;IACjC,OAAO,iBAAiB,CAAC,IAAI,CAAC;IAC9B,OAAO,iBAAiB,CAAC,MAAM,CAAC;IAChC,OAAO,iBAAiB,CAAC,SAAS,CAAC;IACnC,OAAO,iBAAiB,CAAC,MAAM,CAAC;IAChC,OAAO,sBAAsB,CAAC,QAAQ,EAAE;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;QAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,iBAAiB,CAAC,OAMjC;IASC,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE;QAC7C,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK;QACnC,WAAW,EAAE,6BAA6B,CAAC,OAAO,CAAC;QACnD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;KAC7B,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,IAAI;QAClB,UAAU,EAAE;YACV,aAAa,EAAE,OAAO,CAAC,KAAK;YAC5B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D;KACF,CAAC;AACJ,CAAC","debugId":"39599b41-97b7-53e2-9318-db5e3724bf2e"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-rendering.js","sources":["cli/commands/search-rendering.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/commands/search-rendering\n *\n * Builds stable compact and verbose filter projections for search responses.\n */\nimport {\n applyFilterValueEcho,\n buildContentFilterEcho,\n buildGovernanceMissingFilterEcho,\n} from \"./list.js\";\nimport type { SearchMatchMode, SearchOptions } from \"./search.js\";\n\n/** Search execution modes represented in response metadata. */\nexport type SearchMode = \"keyword\" | \"semantic\" | \"hybrid\";\n\ninterface SearchRenderingQueryExpansion {\n enabled: boolean;\n provider: string | null;\n}\n\ninterface SearchRenderingRerank {\n enabled: boolean;\n model: string;\n top_k: number;\n}\n\nfunction isAllStatuses(value: unknown): boolean {\n if (typeof value !== \"string\") return false;\n const tokens = value\n .split(\",\")\n .map((entry) => entry.trim().toLowerCase())\n .filter(Boolean);\n return tokens.length === 1 && tokens[0] === \"all\";\n}\n\nconst COMPACT_SEARCH_VALUE_FILTER_ECHO_ENTRIES = [\n {\n optionKey: \"status\",\n summaryKey: \"status\",\n normalize: (value: unknown) => (isAllStatuses(value) ? \"all\" : value),\n },\n { optionKey: \"type\", summaryKey: \"type\" },\n { optionKey: \"tag\", summaryKey: \"tag\" },\n { optionKey: \"priority\", summaryKey: \"priority\" },\n { optionKey: \"deadlineBefore\", summaryKey: \"deadline_before\" },\n { optionKey: \"deadlineAfter\", summaryKey: \"deadline_after\" },\n { optionKey: \"updatedAfter\", summaryKey: \"updated_after\" },\n { optionKey: \"updatedBefore\", summaryKey: \"updated_before\" },\n { optionKey: \"createdAfter\", summaryKey: \"created_after\" },\n { optionKey: \"createdBefore\", summaryKey: \"created_before\" },\n { optionKey: \"assignee\", summaryKey: \"assignee\" },\n { optionKey: \"sprint\", summaryKey: \"sprint\" },\n { optionKey: \"release\", summaryKey: \"release\" },\n { optionKey: \"parent\", summaryKey: \"parent\" },\n] as const;\n\n/** Builds the token-efficient filter echo used by compact search results. */\nexport function buildCompactSearchFilterSummary(params: {\n mode: SearchMode;\n matchMode: SearchMatchMode;\n options: SearchOptions;\n includeLinked: boolean;\n titleExact: boolean;\n phraseExact: boolean;\n scoreThreshold: number;\n hybridSemanticWeight: number;\n runtimeFieldFilters?: Record<string, unknown>;\n}): Record<string, unknown> {\n const { mode, matchMode, options, includeLinked, titleExact, phraseExact, scoreThreshold, hybridSemanticWeight, runtimeFieldFilters } = params;\n const filters: Record<string, unknown> = {};\n applyFilterValueEcho(filters, options, COMPACT_SEARCH_VALUE_FILTER_ECHO_ENTRIES);\n Object.assign(filters, buildGovernanceMissingFilterEcho(options as Record<string, unknown>));\n Object.assign(filters, buildContentFilterEcho(options as Record<string, unknown>));\n if (matchMode !== \"or\") filters.match_mode = matchMode;\n if (includeLinked) filters.include_linked = true;\n if (titleExact) filters.title_exact = true;\n if (phraseExact) filters.phrase_exact = true;\n if (scoreThreshold > 0) filters.score_threshold = scoreThreshold;\n if (mode === \"hybrid\" && options.semanticWeight !== undefined) {\n filters.hybrid_semantic_weight = hybridSemanticWeight;\n }\n if (options.limit !== undefined) filters.limit = options.limit;\n if (runtimeFieldFilters && Object.keys(runtimeFieldFilters).length > 0) {\n filters.runtime_filters = runtimeFieldFilters;\n }\n return filters;\n}\n\n/** Builds the complete filter echo shared by verbose search response paths. */\nexport function buildVerboseSearchFilters(params: {\n effectiveMode: SearchMode;\n matchMode: SearchMatchMode;\n options: SearchOptions;\n includeLinked: boolean;\n titleExact: boolean;\n phraseExact: boolean;\n scoreThreshold: number;\n hybridSemanticWeight: number;\n queryExpansion: SearchRenderingQueryExpansion;\n rerank: SearchRenderingRerank;\n runtimeFieldFilters: Record<string, unknown>;\n}): Record<string, unknown> {\n const { effectiveMode, matchMode, options, includeLinked, titleExact, phraseExact, scoreThreshold, hybridSemanticWeight, queryExpansion, rerank, runtimeFieldFilters } = params;\n const valueOrNull = (value: unknown): unknown => value ?? null;\n return {\n mode: effectiveMode,\n match_mode: matchMode,\n status: isAllStatuses(options.status) ? \"all\" : valueOrNull(options.status),\n type: valueOrNull(options.type),\n tag: valueOrNull(options.tag),\n priority: valueOrNull(options.priority),\n deadline_before: valueOrNull(options.deadlineBefore),\n deadline_after: valueOrNull(options.deadlineAfter),\n updated_after: valueOrNull(options.updatedAfter),\n updated_before: valueOrNull(options.updatedBefore),\n created_after: valueOrNull(options.createdAfter),\n created_before: valueOrNull(options.createdBefore),\n assignee: valueOrNull(options.assignee),\n sprint: valueOrNull(options.sprint),\n release: valueOrNull(options.release),\n parent: valueOrNull(options.parent),\n ...buildGovernanceMissingFilterEcho(options as Record<string, unknown>),\n ...buildContentFilterEcho(options as Record<string, unknown>),\n include_linked: includeLinked,\n title_exact: titleExact,\n phrase_exact: phraseExact,\n score_threshold: scoreThreshold,\n hybrid_semantic_weight: effectiveMode === \"hybrid\" ? hybridSemanticWeight : null,\n query_expansion_enabled: queryExpansion.enabled,\n query_expansion_provider: queryExpansion.provider,\n rerank_enabled: rerank.enabled,\n rerank_model: rerank.model,\n rerank_top_k: rerank.top_k,\n limit: valueOrNull(options.limit),\n runtime_filters: runtimeFieldFilters,\n };\n}\n"],"names":[],"mappings":"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","debugId":"4445c28d-0c05-583a-8b92-9dbe60e8b467"}
|