@unbrained/pm-cli 2026.7.16 → 2026.7.18
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 +30 -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/close.d.ts +1 -1
- package/dist/cli/commands/close.js +3 -3
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/completion.js +47 -5
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/context.d.ts +2 -2
- package/dist/cli/commands/context.js +42 -28
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/contracts.js +5 -3
- package/dist/cli/commands/contracts.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/graph.d.ts +7 -0
- package/dist/cli/commands/graph.js +11 -0
- package/dist/cli/commands/graph.js.map +1 -0
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +3 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/linked-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/next.d.ts +1 -1
- package/dist/cli/commands/next.js +3 -3
- package/dist/cli/commands/next.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 +141 -133
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +49 -7
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +7 -3
- package/dist/cli/register-mutation.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 +334 -326
- 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-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-GM5QHQU6.js → chunk-2XOSFSTH.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-UFXU44HV.js → chunk-35FHWD4C.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-2WSE6PO2.js.map → chunk-35FHWD4C.js.map} +1 -7
- package/dist/cli-bundle/chunks/{chunk-K3WII2ME.js → chunk-37DRDP2B.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-BKVG6XOA.js → chunk-3CUQZNQ6.js} +67 -509
- package/dist/cli-bundle/chunks/chunk-3CUQZNQ6.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-3QDR6ZLU.js +800 -0
- package/dist/cli-bundle/chunks/chunk-3QDR6ZLU.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-5JLUII3O.js → chunk-43UMFKCK.js} +321 -240
- package/dist/cli-bundle/chunks/chunk-43UMFKCK.js.map +1 -0
- 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-5ZSLZLDN.js → chunk-6VHUGVNP.js} +608 -456
- package/dist/cli-bundle/chunks/chunk-6VHUGVNP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-PENXZX3U.js → chunk-74FKFFXO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HO4KXD6I.js → chunk-7H5NNCJ5.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-7B67ZL4N.js → chunk-7R6UIHYY.js} +75 -5
- package/dist/cli-bundle/chunks/{chunk-7B67ZL4N.js.map → chunk-7R6UIHYY.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-3S5QVM5H.js → chunk-7UCY6DR5.js} +193 -22
- package/dist/cli-bundle/chunks/chunk-7UCY6DR5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-WT3ZEOGH.js → chunk-ADXDCAKP.js} +16 -7
- package/dist/cli-bundle/chunks/{chunk-WT3ZEOGH.js.map → chunk-ADXDCAKP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-TQSZFPIS.js → chunk-AFGKSHAM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-6N2VXVTQ.js → chunk-ARGDWQ4J.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XXXF6PAQ.js → chunk-AXRT7K5V.js} +83 -62
- package/dist/cli-bundle/chunks/chunk-AXRT7K5V.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3U7ZR6M4.js → chunk-B57RJHBZ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-YCQET3OT.js → chunk-BAP7G3N2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NLDFBC6J.js → chunk-BDA35QG5.js} +35 -5
- package/dist/cli-bundle/chunks/chunk-BDA35QG5.js.map +7 -0
- 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-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-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-J6364LFM.js → chunk-DHNG452T.js} +9 -18
- package/dist/cli-bundle/chunks/{chunk-J6364LFM.js.map → chunk-DHNG452T.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-JXQUXVMI.js → chunk-E4FXM2XB.js} +77 -7
- package/dist/cli-bundle/chunks/{chunk-JXQUXVMI.js.map → chunk-E4FXM2XB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-IG3SWA4A.js → chunk-EHJFUOXL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-P74IZQ7A.js → chunk-EWIT5WIC.js} +7 -7
- package/dist/cli-bundle/chunks/chunk-EX7OQT3Y.js +783 -0
- package/dist/cli-bundle/chunks/chunk-EX7OQT3Y.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ONREO4ST.js → chunk-EY7ZE3TG.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ILX33QXL.js → chunk-F3VC3GOV.js} +669 -472
- package/dist/cli-bundle/chunks/chunk-F3VC3GOV.js.map +7 -0
- 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-AHVTB5I5.js → chunk-G6MYGULG.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-HYB5AZ63.js → chunk-GKPCTQYG.js} +1822 -72
- package/dist/cli-bundle/chunks/chunk-GKPCTQYG.js.map +7 -0
- 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-SELVXEZK.js → chunk-HO4DLBNK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CRVF2JDM.js → chunk-HPAYDSR2.js} +8 -8
- 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-J5AOEGDC.js → chunk-HYTOJW2Q.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-4XQ3BDV4.js → chunk-I3INI567.js} +536 -449
- package/dist/cli-bundle/chunks/chunk-I3INI567.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NU3IMIEA.js → chunk-I7DIDUSP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JYFOV7FC.js → chunk-IE5KRAKN.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-YAROI3PD.js → chunk-IL5SPRMH.js} +7 -7
- 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-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-JFTKLTEF.js → chunk-L5BTTDU5.js} +68 -503
- package/dist/cli-bundle/chunks/chunk-L5BTTDU5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LSG2U345.js → chunk-L6FVNR7X.js} +5 -5
- 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-UMOPHQSU.js → chunk-MR4SHYR4.js} +41 -19
- package/dist/cli-bundle/chunks/chunk-MR4SHYR4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3WM75PWC.js → chunk-N33FD2UI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UXONS674.js → chunk-NCVT6XEL.js} +68 -56
- package/dist/cli-bundle/chunks/chunk-NCVT6XEL.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-E2OJMKML.js → chunk-OGVTB5VO.js} +47 -37
- package/dist/cli-bundle/chunks/chunk-OGVTB5VO.js.map +7 -0
- 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-NVPZIJVR.js → chunk-PT7MCCGD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ONG5V5CI.js → chunk-QPGQNLPI.js} +1751 -70
- package/dist/cli-bundle/chunks/chunk-QPGQNLPI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-J6EY5V4N.js → chunk-QRZNCRNA.js} +9 -9
- 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-FNSPG7MU.js → chunk-RXPQ5Q23.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-LPYWLWDS.js → chunk-SIPOACV5.js} +534 -447
- package/dist/cli-bundle/chunks/chunk-SIPOACV5.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-TGBTLGPX.js +851 -0
- package/dist/cli-bundle/chunks/chunk-TGBTLGPX.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2WSE6PO2.js → chunk-TLWJP5BF.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-TLWJP5BF.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ULTHRDBP.js → chunk-TM5CIO3F.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UWQHLMEB.js → chunk-TZAE66GQ.js} +8 -8
- 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-H5APFTHZ.js → chunk-WQXRZMFN.js} +204 -33
- package/dist/cli-bundle/chunks/chunk-WQXRZMFN.js.map +7 -0
- 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-7Z4LKRS4.js → chunk-XPUTSGJU.js} +38 -37
- package/dist/cli-bundle/chunks/chunk-XPUTSGJU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-YBLZ2VE7.js → chunk-XWBD6DSR.js} +320 -239
- package/dist/cli-bundle/chunks/chunk-XWBD6DSR.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-XWYQ2LT4.js +834 -0
- package/dist/cli-bundle/chunks/chunk-XWYQ2LT4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-K2X6U4UA.js → chunk-XXLXJL7V.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-2NCIPMQP.js → chunk-YFE7JHX3.js} +27 -6
- package/dist/cli-bundle/chunks/chunk-YFE7JHX3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-EACOH7AU.js → chunk-YIIIAKCE.js} +8 -8
- 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-EYLCSJAI.js → chunk-YQEZWI3R.js} +2 -2
- package/dist/cli-bundle/chunks/close-GPD7DTJV.js +12 -0
- package/dist/cli-bundle/chunks/{close-CWODTPKG.js → close-X3CF6FQP.js} +5 -5
- package/dist/cli-bundle/chunks/{close-many-CQFUY7MR.js → close-many-J7A5EHOQ.js} +14 -14
- package/dist/cli-bundle/chunks/close-many-NQLYGPYW.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-JZ7TMVCB.js → deps-MQ4ZIGZB.js} +16 -7
- package/dist/cli-bundle/chunks/deps-NIIKXLPB.js +28 -0
- 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-FAU7NZML.js → profile-AVCIIZID.js} +9 -9
- package/dist/cli-bundle/chunks/{profile-IVXQEL3D.js → profile-LFYO3HHX.js} +9 -9
- package/dist/cli-bundle/chunks/{register-list-query-UL4UKBBN.js → register-list-query-MZUF2EEC.js} +50 -22
- package/dist/cli-bundle/chunks/register-list-query-MZUF2EEC.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-DKA3EH5D.js → register-list-query-UKMF55FT.js} +49 -21
- package/dist/cli-bundle/chunks/register-list-query-UKMF55FT.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-RBBJ52DK.js → register-mutation-2PBW2GEX.js} +35 -33
- package/dist/cli-bundle/chunks/register-mutation-2PBW2GEX.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-ARFHRW55.js → register-mutation-T6RVNJC4.js} +34 -32
- package/dist/cli-bundle/chunks/{register-mutation-ARFHRW55.js.map → register-mutation-T6RVNJC4.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-ZIBBRSED.js → register-operations-KHZYR6MG.js} +35 -35
- package/dist/cli-bundle/chunks/{register-operations-ZUJ5JWPE.js → register-operations-WPQ2LWZJ.js} +35 -35
- package/dist/cli-bundle/chunks/{register-setup-BCVLFEYS.js → register-setup-PGDNOXDQ.js} +15 -15
- package/dist/cli-bundle/chunks/{register-setup-TDCGWIOS.js → register-setup-TDN7WAO6.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-XHSIAIXE.js → update-SQYZA3ZW.js} +12 -12
- package/dist/cli-bundle/chunks/update-XZJYS5X7.js +21 -0
- package/dist/cli-bundle/chunks/update-many-R24B3GBK.js +36 -0
- package/dist/cli-bundle/chunks/update-many-WQ3R3J6N.js +32 -0
- package/dist/cli-bundle/main.js +170 -856
- package/dist/cli-bundle/main.js.map +4 -4
- package/dist/cli-bundle/sdk-runtime.js +57 -54
- package/dist/cli-bundle/sdk-testing.js +6 -6
- package/dist/cli-bundle/sdk.js +266 -340
- package/dist/cli-bundle/sdk.js.map +4 -4
- package/dist/core/extensions/item-fields.js +2 -2
- package/dist/core/extensions/item-fields.js.map +1 -1
- package/dist/core/item/actionability.d.ts +12 -0
- package/dist/core/item/actionability.js +39 -4
- package/dist/core/item/actionability.js.map +1 -1
- package/dist/core/sentry/instrument.d.ts +11 -0
- package/dist/core/sentry/instrument.js +21 -2
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/mcp/server.d.ts +16 -18
- package/dist/mcp/server.js +84 -31
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-definitions.js +17 -4
- package/dist/mcp/tool-definitions.js.map +1 -1
- package/dist/sdk/actionability.d.ts +10 -0
- package/dist/sdk/actionability.js +14 -0
- package/dist/sdk/actionability.js.map +1 -0
- 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/cli-contracts/enum-contracts.d.ts +6 -2
- package/dist/sdk/cli-contracts/enum-contracts.js +19 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +21 -2
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +16 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +80 -3
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +20 -0
- package/dist/sdk/cli-contracts/tool-schema.js +97 -9
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts.js +4 -4
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/dependencies.d.ts +42 -53
- package/dist/sdk/dependencies.js +177 -125
- package/dist/sdk/dependencies.js.map +1 -1
- 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/governance/validate.js +3 -3
- package/dist/sdk/governance/validate.js.map +1 -1
- package/dist/sdk/graph/analytics.d.ts +124 -0
- package/dist/sdk/graph/analytics.js +464 -0
- package/dist/sdk/graph/analytics.js.map +1 -0
- package/dist/sdk/graph/assembly.d.ts +97 -0
- package/dist/sdk/graph/assembly.js +146 -0
- package/dist/sdk/graph/assembly.js.map +1 -0
- package/dist/sdk/graph/cache.d.ts +66 -0
- package/dist/sdk/graph/cache.js +148 -0
- package/dist/sdk/graph/cache.js.map +1 -0
- package/dist/sdk/graph/governance.d.ts +108 -0
- package/dist/sdk/graph/governance.js +360 -0
- package/dist/sdk/graph/governance.js.map +1 -0
- package/dist/sdk/graph/index.d.ts +16 -0
- package/dist/sdk/graph/index.js +20 -0
- package/dist/sdk/graph/index.js.map +1 -0
- package/dist/sdk/graph/remediation.d.ts +52 -0
- package/dist/sdk/graph/remediation.js +148 -0
- package/dist/sdk/graph/remediation.js.map +1 -0
- package/dist/sdk/graph/run.d.ts +295 -0
- package/dist/sdk/graph/run.js +468 -0
- package/dist/sdk/graph/run.js.map +1 -0
- package/dist/sdk/graph/traversal.d.ts +77 -0
- package/dist/sdk/graph/traversal.js +262 -0
- package/dist/sdk/graph/traversal.js.map +1 -0
- package/dist/sdk/index.d.ts +19 -5
- package/dist/sdk/index.js +21 -7
- 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 +262 -0
- package/dist/sdk/query/list.js +1089 -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/relationship-context.d.ts +42 -0
- package/dist/sdk/relationship-context.js +99 -20
- package/dist/sdk/relationship-context.js.map +1 -1
- package/dist/sdk/relationships.d.ts +13 -0
- package/dist/sdk/relationships.js +30 -2
- package/dist/sdk/relationships.js.map +1 -1
- package/dist/sdk/runtime-input.d.ts +41 -0
- package/dist/sdk/runtime-input.js +422 -2
- package/dist/sdk/runtime-input.js.map +1 -1
- package/dist/sdk/runtime.d.ts +19 -30
- package/dist/sdk/runtime.js +30 -376
- 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/linked-command-detection.js +12 -3
- package/dist/sdk/test/linked-command-detection.js.map +1 -1
- 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/AGENT_GUIDE.md +1 -0
- package/docs/COMMANDS.md +19 -1
- package/docs/RELATIONSHIP_GRAPH.md +99 -3
- package/docs/SDK.md +139 -3
- 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-2NCIPMQP.js.map +0 -1
- 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-7Z4LKRS4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-BKVG6XOA.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-E2OJMKML.js.map +0 -7
- 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-JFTKLTEF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-LPYWLWDS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-NLDFBC6J.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ONG5V5CI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UFXU44HV.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/deps-OA26IS25.js +0 -19
- 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/register-list-query-DKA3EH5D.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-UL4UKBBN.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-RBBJ52DK.js.map +0 -1
- 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-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-P74IZQ7A.js.map → chunk-EWIT5WIC.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-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-CRVF2JDM.js.map → chunk-HPAYDSR2.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-J5AOEGDC.js.map → chunk-HYTOJW2Q.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-JYFOV7FC.js.map → chunk-IE5KRAKN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YAROI3PD.js.map → chunk-IL5SPRMH.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-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-3WM75PWC.js.map → chunk-N33FD2UI.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-NVPZIJVR.js.map → chunk-PT7MCCGD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J6EY5V4N.js.map → chunk-QRZNCRNA.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-FNSPG7MU.js.map → chunk-RXPQ5Q23.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-UWQHLMEB.js.map → chunk-TZAE66GQ.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-K2X6U4UA.js.map → chunk-XXLXJL7V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EACOH7AU.js.map → chunk-YIIIAKCE.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-EYLCSJAI.js.map → chunk-YQEZWI3R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-W6LI2PKM.js.map → close-GPD7DTJV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-CWODTPKG.js.map → close-X3CF6FQP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-CQFUY7MR.js.map → close-many-J7A5EHOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-DLDDVSH5.js.map → close-many-NQLYGPYW.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-JZ7TMVCB.js.map → deps-MQ4ZIGZB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-OA26IS25.js.map → deps-NIIKXLPB.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-FAU7NZML.js.map → profile-AVCIIZID.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-IVXQEL3D.js.map → profile-LFYO3HHX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-ZIBBRSED.js.map → register-operations-KHZYR6MG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-ZUJ5JWPE.js.map → register-operations-WPQ2LWZJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-BCVLFEYS.js.map → register-setup-PGDNOXDQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-TDCGWIOS.js.map → register-setup-TDN7WAO6.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-XHSIAIXE.js.map → update-SQYZA3ZW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-WWBYOPXO.js.map → update-XZJYS5X7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-TA7NGQBO.js.map → update-many-R24B3GBK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-OUGIU5SF.js.map → update-many-WQ3R3J6N.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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6697a54d-d56f-5a86-bbb2-7c12fef13cfe")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
lifecycleClassifierFromStatusRegistry
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CKX4WOPC.js";
|
|
6
6
|
import {
|
|
7
7
|
applyHistoryPatch,
|
|
8
8
|
cloneEmptyReplayDocument,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
toReplayDocument,
|
|
16
16
|
verifyHistoryChain,
|
|
17
17
|
writeHistoryRawWithRollback
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-KH6QAHME.js";
|
|
19
19
|
import {
|
|
20
20
|
resolveAuthor
|
|
21
21
|
} from "./chunk-CUFW7ITY.js";
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
readSettings,
|
|
29
29
|
runActiveOnReadHooks,
|
|
30
30
|
runActiveOnWriteHooks
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-P22HGFFI.js";
|
|
32
32
|
import {
|
|
33
33
|
EXIT_CODE,
|
|
34
34
|
PmCliError,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
resolveItemTypeRegistry,
|
|
39
39
|
resolvePmRoot,
|
|
40
40
|
resolveRuntimeStatusRegistry
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-KX62NMZC.js";
|
|
42
42
|
|
|
43
43
|
// dist/sdk/history-compact.js
|
|
44
44
|
import fs from "node:fs/promises";
|
|
@@ -584,6 +584,6 @@ export {
|
|
|
584
584
|
assertHistoryCompactTarget,
|
|
585
585
|
runHistoryCompactBulk
|
|
586
586
|
};
|
|
587
|
-
//# sourceMappingURL=chunk-
|
|
587
|
+
//# sourceMappingURL=chunk-L337QKWJ.js.map
|
|
588
588
|
|
|
589
589
|
//# debugId=6697a54d-d56f-5a86-bbb2-7c12fef13cfe
|
|
@@ -1,27 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="fd394844-de95-5cab-9dd6-7c4ef4e52320")}catch(e){}}();
|
|
3
|
-
import {
|
|
4
|
-
createQueryFingerprint,
|
|
5
|
-
encodeQueryCursor,
|
|
6
|
-
resolveQueryCursorStart
|
|
7
|
-
} from "./chunk-HDH3JUGG.js";
|
|
8
|
-
import {
|
|
9
|
-
getActiveExtensionRegistrations,
|
|
10
|
-
isTerminalStatus,
|
|
11
|
-
listAllItemMetadataLight,
|
|
12
|
-
readSettings
|
|
13
|
-
} from "./chunk-Q7A43DS4.js";
|
|
14
|
-
import {
|
|
15
|
-
EXIT_CODE,
|
|
16
|
-
PmCliError,
|
|
17
|
-
getSettingsPath,
|
|
18
|
-
pathExists,
|
|
19
|
-
resolveItemTypeRegistry,
|
|
20
|
-
resolvePmRoot,
|
|
21
|
-
resolveRuntimeStatusRegistry
|
|
22
|
-
} from "./chunk-QKECXBBG.js";
|
|
23
|
-
|
|
24
1
|
// dist/sdk/relationships.js
|
|
2
|
+
|
|
3
|
+
!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]="8145f80d-99b5-53e4-a519-54b4549dca6c")}catch(e){}}();
|
|
25
4
|
var BUILTIN_RELATIONSHIP_KINDS = [
|
|
26
5
|
{
|
|
27
6
|
kind: "blocked_by",
|
|
@@ -364,6 +343,14 @@ var RelationshipGraph = class _RelationshipGraph {
|
|
|
364
343
|
nodes() {
|
|
365
344
|
return this.#nodeSnapshot;
|
|
366
345
|
}
|
|
346
|
+
/** Report whether an identifier names an indexed node. */
|
|
347
|
+
hasNode(id) {
|
|
348
|
+
return this.#nodes.has(id);
|
|
349
|
+
}
|
|
350
|
+
/** Return the registry that interprets this graph's relationship kinds. */
|
|
351
|
+
registry() {
|
|
352
|
+
return this.#registry;
|
|
353
|
+
}
|
|
367
354
|
#assertNode(id) {
|
|
368
355
|
if (!this.#nodes.has(id))
|
|
369
356
|
throw new TypeError(`Relationship node not found: ${id}`);
|
|
@@ -403,6 +390,24 @@ var RelationshipGraph = class _RelationshipGraph {
|
|
|
403
390
|
}
|
|
404
391
|
};
|
|
405
392
|
}
|
|
393
|
+
/** Return deterministic one-hop neighbor rows paired with each connecting edge. */
|
|
394
|
+
neighborEdges(id, options = {}) {
|
|
395
|
+
this.#assertNode(id);
|
|
396
|
+
options.signal?.throwIfAborted();
|
|
397
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
398
|
+
const rows = this.#neighbors(id, options.direction ?? "outgoing", kinds);
|
|
399
|
+
const limit = options.limit ?? Number.POSITIVE_INFINITY;
|
|
400
|
+
const value = rows.slice(0, limit);
|
|
401
|
+
return {
|
|
402
|
+
value,
|
|
403
|
+
meta: {
|
|
404
|
+
visitedNodes: 1,
|
|
405
|
+
inspectedEdges: rows.length,
|
|
406
|
+
truncated: value.length < rows.length,
|
|
407
|
+
nextCursor: value.at(-1)?.id
|
|
408
|
+
}
|
|
409
|
+
};
|
|
410
|
+
}
|
|
406
411
|
/** Return bounded transitive closure in breadth-first discovery order. */
|
|
407
412
|
closure(id, options = {}) {
|
|
408
413
|
this.#assertNode(id);
|
|
@@ -528,193 +533,7 @@ function dependencyToRelationship(source, dependency, registry = defaultRegistry
|
|
|
528
533
|
};
|
|
529
534
|
}
|
|
530
535
|
|
|
531
|
-
// dist/sdk/
|
|
532
|
-
var tokenEncoder = new TextEncoder();
|
|
533
|
-
function positiveInteger(value, fallback, field) {
|
|
534
|
-
const resolved = value ?? fallback;
|
|
535
|
-
if (!Number.isInteger(resolved) || resolved < 1)
|
|
536
|
-
throw new TypeError(`Relationship context ${field} must be positive`);
|
|
537
|
-
return resolved;
|
|
538
|
-
}
|
|
539
|
-
function estimateTokens(value) {
|
|
540
|
-
return Math.max(1, Math.ceil(tokenEncoder.encode(JSON.stringify(value)).byteLength / 4));
|
|
541
|
-
}
|
|
542
|
-
function explainDirectEdge(edge, root, node, registry) {
|
|
543
|
-
const definition = registry.require(edge.kind);
|
|
544
|
-
if (definition.ordering) {
|
|
545
|
-
const sourceFirst = (definition.precedence ?? "source_before_target") === "source_before_target";
|
|
546
|
-
const before = sourceFirst ? edge.source : edge.target;
|
|
547
|
-
return node === before ? "prerequisite" : "dependent";
|
|
548
|
-
}
|
|
549
|
-
if (definition.hierarchy) {
|
|
550
|
-
const sourceIsParent = (definition.hierarchyDirection ?? "source_parent") === "source_parent";
|
|
551
|
-
const parent = sourceIsParent ? edge.source : edge.target;
|
|
552
|
-
return node === parent ? "ancestor" : "descendant";
|
|
553
|
-
}
|
|
554
|
-
if (edge.kind === "discovered_from" || edge.kind === "incident_from")
|
|
555
|
-
return "provenance";
|
|
556
|
-
return "related";
|
|
557
|
-
}
|
|
558
|
-
function directReasons(rootEdges, root, node, registry) {
|
|
559
|
-
const reasons = rootEdges.filter((edge) => edge.source === root && edge.target === node || edge.target === root && edge.source === node).map((edge) => explainDirectEdge(edge, root, node, registry));
|
|
560
|
-
return [...new Set(reasons)].sort();
|
|
561
|
-
}
|
|
562
|
-
function discoverNodes(graph, root, options) {
|
|
563
|
-
const direction = options.direction ?? "both";
|
|
564
|
-
const maxDepth = options.maxDepth ?? 3;
|
|
565
|
-
if (!Number.isInteger(maxDepth) || maxDepth < 0)
|
|
566
|
-
throw new TypeError("Relationship context maxDepth must be non-negative");
|
|
567
|
-
const seen = /* @__PURE__ */ new Set([root]);
|
|
568
|
-
const queue = [{ id: root, distance: 0 }];
|
|
569
|
-
const rows = [];
|
|
570
|
-
let inspectedEdges = 0;
|
|
571
|
-
let depthTruncated = false;
|
|
572
|
-
for (let index = 0; index < queue.length; index += 1) {
|
|
573
|
-
options.signal?.throwIfAborted();
|
|
574
|
-
const current = queue[index];
|
|
575
|
-
if (current.distance >= maxDepth && depthTruncated)
|
|
576
|
-
continue;
|
|
577
|
-
const adjacent = graph.adjacency(current.id, {
|
|
578
|
-
direction,
|
|
579
|
-
kinds: options.kinds,
|
|
580
|
-
signal: options.signal
|
|
581
|
-
});
|
|
582
|
-
inspectedEdges += adjacent.meta.inspectedEdges;
|
|
583
|
-
if (current.distance >= maxDepth) {
|
|
584
|
-
if (adjacent.value.some((id) => !seen.has(id)))
|
|
585
|
-
depthTruncated = true;
|
|
586
|
-
continue;
|
|
587
|
-
}
|
|
588
|
-
for (const id of adjacent.value) {
|
|
589
|
-
if (seen.has(id))
|
|
590
|
-
continue;
|
|
591
|
-
seen.add(id);
|
|
592
|
-
const row = { id, distance: current.distance + 1 };
|
|
593
|
-
rows.push(row);
|
|
594
|
-
queue.push(row);
|
|
595
|
-
}
|
|
596
|
-
}
|
|
597
|
-
rows.sort((left, right) => left.distance - right.distance || left.id.localeCompare(right.id));
|
|
598
|
-
return {
|
|
599
|
-
rows,
|
|
600
|
-
visitedNodes: queue.length,
|
|
601
|
-
inspectedEdges,
|
|
602
|
-
depthTruncated
|
|
603
|
-
};
|
|
604
|
-
}
|
|
605
|
-
function selectContextNodes(params) {
|
|
606
|
-
const nodes = [];
|
|
607
|
-
let usedTokens = params.initialTokens;
|
|
608
|
-
const rootEdges = params.graph.incidentEdges(params.rootId);
|
|
609
|
-
for (const candidate of params.candidates) {
|
|
610
|
-
if (nodes.length >= params.nodeLimit)
|
|
611
|
-
break;
|
|
612
|
-
const node = {
|
|
613
|
-
...params.details.get(candidate.id) ?? { id: candidate.id },
|
|
614
|
-
distance: candidate.distance,
|
|
615
|
-
reasons: candidate.distance === 1 ? directReasons(rootEdges, params.rootId, candidate.id, params.registry) : [`reachable at depth ${candidate.distance}`]
|
|
616
|
-
};
|
|
617
|
-
const cost = estimateTokens(node);
|
|
618
|
-
if (usedTokens + cost > params.tokenBudget)
|
|
619
|
-
break;
|
|
620
|
-
nodes.push(node);
|
|
621
|
-
usedTokens += cost;
|
|
622
|
-
}
|
|
623
|
-
if (params.candidates.length > 0 && nodes.length === 0)
|
|
624
|
-
throw new TypeError("Relationship context tokenBudget cannot fit one node");
|
|
625
|
-
return { nodes, usedTokens };
|
|
626
|
-
}
|
|
627
|
-
function selectContextEdges(params) {
|
|
628
|
-
const candidates = params.graph.edges().filter((edge) => params.included.has(edge.source) && params.included.has(edge.target));
|
|
629
|
-
const edges = [];
|
|
630
|
-
let usedTokens = params.initialTokens;
|
|
631
|
-
for (const edge of candidates) {
|
|
632
|
-
if (edges.length >= params.edgeLimit)
|
|
633
|
-
break;
|
|
634
|
-
const cost = estimateTokens(edge);
|
|
635
|
-
if (usedTokens + cost > params.tokenBudget)
|
|
636
|
-
break;
|
|
637
|
-
edges.push(edge);
|
|
638
|
-
usedTokens += cost;
|
|
639
|
-
}
|
|
640
|
-
return { edges, usedTokens, candidateCount: candidates.length };
|
|
641
|
-
}
|
|
642
|
-
function buildRelationshipContext(graph, rootId, details, options = {}) {
|
|
643
|
-
if (!graph.nodes().includes(rootId))
|
|
644
|
-
throw new TypeError(`Relationship node not found: ${rootId}`);
|
|
645
|
-
const nodeLimit = positiveInteger(options.nodeLimit, 20, "nodeLimit");
|
|
646
|
-
const edgeLimit = positiveInteger(options.edgeLimit, 40, "edgeLimit");
|
|
647
|
-
const tokenBudget = positiveInteger(options.tokenBudget, 1200, "tokenBudget");
|
|
648
|
-
const registry = options.registry ?? createRelationshipKindRegistry();
|
|
649
|
-
const byId = new Map(details.map((detail) => [detail.id, detail]));
|
|
650
|
-
const rootDetails = byId.get(rootId) ?? {
|
|
651
|
-
id: rootId
|
|
652
|
-
};
|
|
653
|
-
const { evidence: rootEvidence = [], ...root } = rootDetails;
|
|
654
|
-
const evidence = [...rootEvidence];
|
|
655
|
-
const discovery = discoverNodes(graph, rootId, options);
|
|
656
|
-
const fingerprint = createQueryFingerprint("relationship-context", {
|
|
657
|
-
rootId,
|
|
658
|
-
direction: options.direction ?? "both",
|
|
659
|
-
kinds: [...options.kinds ?? []].sort(),
|
|
660
|
-
maxDepth: options.maxDepth ?? 3
|
|
661
|
-
});
|
|
662
|
-
const pageStart = resolveQueryCursorStart(discovery.rows, options.cursor, fingerprint, ({ id }) => id);
|
|
663
|
-
const candidates = discovery.rows.slice(pageStart);
|
|
664
|
-
const initialTokens = estimateTokens(root) + estimateTokens(evidence);
|
|
665
|
-
if (initialTokens > tokenBudget)
|
|
666
|
-
throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");
|
|
667
|
-
const nodeSelection = selectContextNodes({
|
|
668
|
-
candidates,
|
|
669
|
-
details: byId,
|
|
670
|
-
graph,
|
|
671
|
-
rootId,
|
|
672
|
-
registry,
|
|
673
|
-
nodeLimit,
|
|
674
|
-
tokenBudget,
|
|
675
|
-
initialTokens
|
|
676
|
-
});
|
|
677
|
-
const { nodes } = nodeSelection;
|
|
678
|
-
const included = /* @__PURE__ */ new Set([rootId, ...nodes.map(({ id }) => id)]);
|
|
679
|
-
const edgeSelection = selectContextEdges({
|
|
680
|
-
graph,
|
|
681
|
-
included,
|
|
682
|
-
edgeLimit,
|
|
683
|
-
tokenBudget,
|
|
684
|
-
initialTokens: nodeSelection.usedTokens
|
|
685
|
-
});
|
|
686
|
-
const { edges, usedTokens } = edgeSelection;
|
|
687
|
-
const consumed = pageStart + nodes.length;
|
|
688
|
-
const hasMoreNodes = consumed < discovery.rows.length;
|
|
689
|
-
const lastNode = nodes.at(-1);
|
|
690
|
-
const omittedEdges = edgeSelection.candidateCount - edges.length;
|
|
691
|
-
const truncated = discovery.depthTruncated || hasMoreNodes || omittedEdges > 0;
|
|
692
|
-
return {
|
|
693
|
-
root,
|
|
694
|
-
nodes,
|
|
695
|
-
edges,
|
|
696
|
-
evidence,
|
|
697
|
-
meta: {
|
|
698
|
-
exact: true,
|
|
699
|
-
truncated,
|
|
700
|
-
nodeLimit,
|
|
701
|
-
edgeLimit,
|
|
702
|
-
tokenBudget,
|
|
703
|
-
usedTokens,
|
|
704
|
-
visitedNodes: discovery.visitedNodes,
|
|
705
|
-
inspectedEdges: discovery.inspectedEdges,
|
|
706
|
-
omittedNodes: discovery.rows.length - consumed,
|
|
707
|
-
omittedEdges,
|
|
708
|
-
...hasMoreNodes && lastNode ? {
|
|
709
|
-
nextCursor: encodeQueryCursor(fingerprint, lastNode.id, consumed - 1)
|
|
710
|
-
} : {}
|
|
711
|
-
}
|
|
712
|
-
};
|
|
713
|
-
}
|
|
714
|
-
|
|
715
|
-
// dist/sdk/dependencies.js
|
|
716
|
-
var DEPS_FORMAT_VALUES = ["tree", "graph", "context"];
|
|
717
|
-
var DEPS_COLLAPSE_VALUES = ["none", "repeated"];
|
|
536
|
+
// dist/sdk/graph/assembly.js
|
|
718
537
|
function normalizeDependencyReferenceTarget(target) {
|
|
719
538
|
if (typeof target !== "string")
|
|
720
539
|
return void 0;
|
|
@@ -728,7 +547,8 @@ function normalizeDependencyGraphTarget(target) {
|
|
|
728
547
|
return normalized?.toLowerCase() === "no-active-blocker" ? void 0 : normalized;
|
|
729
548
|
}
|
|
730
549
|
function collectDanglingDependencyReferences(items, isTerminal = (status) => status === "closed" || status === "canceled") {
|
|
731
|
-
const
|
|
550
|
+
const safeItems = items.filter((item) => typeof item?.id === "string" && item.id.trim().length > 0);
|
|
551
|
+
const knownIds = new Set(safeItems.map((item) => item.id.trim().toLowerCase()));
|
|
732
552
|
const rows = /* @__PURE__ */ new Map();
|
|
733
553
|
const addReference = (item, target, kind, source) => {
|
|
734
554
|
const normalized = normalizeDependencyReferenceTarget(target);
|
|
@@ -736,7 +556,7 @@ function collectDanglingDependencyReferences(items, isTerminal = (status) => sta
|
|
|
736
556
|
return;
|
|
737
557
|
}
|
|
738
558
|
const row = {
|
|
739
|
-
holder_id: item.id,
|
|
559
|
+
holder_id: item.id.trim(),
|
|
740
560
|
target_id: normalized,
|
|
741
561
|
kind,
|
|
742
562
|
source,
|
|
@@ -746,7 +566,7 @@ function collectDanglingDependencyReferences(items, isTerminal = (status) => sta
|
|
|
746
566
|
};
|
|
747
567
|
rows.set(`${row.holder_id}::${row.target_id}::${row.kind}::${row.source}`, row);
|
|
748
568
|
};
|
|
749
|
-
for (const item of
|
|
569
|
+
for (const item of safeItems) {
|
|
750
570
|
addReference(item, item.parent, "parent", "parent");
|
|
751
571
|
addReference(item, item.blocked_by, "blocked_by", "blocked_by");
|
|
752
572
|
for (const dependency of item.dependencies ?? []) {
|
|
@@ -777,211 +597,14 @@ function collectMissingDependencyTargetIds(dangling) {
|
|
|
777
597
|
}
|
|
778
598
|
return [...targets.values()].sort((left, right) => left.localeCompare(right));
|
|
779
599
|
}
|
|
780
|
-
function
|
|
781
|
-
const
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
}
|
|
785
|
-
throw new PmCliError(`Invalid --format value "${raw}". Use "tree", "graph", or "context".`, EXIT_CODE.USAGE);
|
|
786
|
-
}
|
|
787
|
-
function parsePositiveInteger(raw, flag) {
|
|
788
|
-
if (raw === void 0)
|
|
789
|
-
return void 0;
|
|
790
|
-
const value = typeof raw === "number" ? raw : Number(raw.trim());
|
|
791
|
-
if (!Number.isInteger(value) || value < 1)
|
|
792
|
-
throw new PmCliError(`Invalid --${flag} value "${raw}". Use a positive integer.`, EXIT_CODE.USAGE);
|
|
793
|
-
return value;
|
|
794
|
-
}
|
|
795
|
-
function parseMaxDepth(raw) {
|
|
796
|
-
if (raw === void 0) {
|
|
797
|
-
return void 0;
|
|
798
|
-
}
|
|
799
|
-
const normalized = typeof raw === "number" ? raw : Number(raw.trim());
|
|
800
|
-
if (!Number.isInteger(normalized) || normalized < 0) {
|
|
801
|
-
throw new PmCliError(`Invalid --max-depth value "${raw}". Use a non-negative integer.`, EXIT_CODE.USAGE);
|
|
802
|
-
}
|
|
803
|
-
return normalized;
|
|
804
|
-
}
|
|
805
|
-
function parseCollapse(raw) {
|
|
806
|
-
const candidate = raw?.trim().toLowerCase() ?? "none";
|
|
807
|
-
if (DEPS_COLLAPSE_VALUES.includes(candidate)) {
|
|
808
|
-
return candidate;
|
|
809
|
-
}
|
|
810
|
-
throw new PmCliError(`Invalid --collapse value "${raw}". Use "none" or "repeated".`, EXIT_CODE.USAGE);
|
|
811
|
-
}
|
|
812
|
-
function normalizeDependencies(dependencies) {
|
|
813
|
-
if (!dependencies || dependencies.length === 0) {
|
|
814
|
-
return [];
|
|
815
|
-
}
|
|
816
|
-
const sorted = dependencies.map(({ id, kind }) => ({
|
|
817
|
-
id: id.trim(),
|
|
818
|
-
kind: kind.trim().toLowerCase()
|
|
819
|
-
})).sort((left, right) => {
|
|
820
|
-
const byKind = left.kind.localeCompare(right.kind);
|
|
821
|
-
if (byKind !== 0)
|
|
822
|
-
return byKind;
|
|
823
|
-
return left.id.localeCompare(right.id);
|
|
824
|
-
});
|
|
825
|
-
const deduped = /* @__PURE__ */ new Map();
|
|
826
|
-
for (const dependency of sorted) {
|
|
827
|
-
const key = `${dependency.kind.toLowerCase()}::${dependency.id.toLowerCase()}`;
|
|
828
|
-
if (!deduped.has(key)) {
|
|
829
|
-
deduped.set(key, { id: dependency.id, kind: dependency.kind });
|
|
830
|
-
}
|
|
831
|
-
}
|
|
832
|
-
return [...deduped.values()];
|
|
833
|
-
}
|
|
834
|
-
function toIndexedItem(item) {
|
|
835
|
-
return {
|
|
836
|
-
id: item.id,
|
|
837
|
-
title: item.title,
|
|
838
|
-
type: item.type,
|
|
839
|
-
status: item.status,
|
|
840
|
-
dependencies: normalizeDependencies(item.dependencies)
|
|
841
|
-
};
|
|
842
|
-
}
|
|
843
|
-
function toTreeNode(id, index, lineage, maxDepth, collapse, expanded, depth = 0, via) {
|
|
844
|
-
const lookupId = id.trim().toLowerCase();
|
|
845
|
-
const item = index.get(lookupId);
|
|
846
|
-
const baseNode = {
|
|
847
|
-
id: item?.id ?? id,
|
|
848
|
-
title: item?.title,
|
|
849
|
-
type: item?.type,
|
|
850
|
-
status: item?.status,
|
|
851
|
-
via,
|
|
852
|
-
missing: !item,
|
|
853
|
-
cycle: lineage.has(lookupId),
|
|
854
|
-
dependencies: []
|
|
855
|
-
};
|
|
856
|
-
if (!item || baseNode.cycle) {
|
|
857
|
-
return baseNode;
|
|
858
|
-
}
|
|
859
|
-
if (maxDepth !== void 0 && depth >= maxDepth) {
|
|
860
|
-
if (item.dependencies.length > 0) {
|
|
861
|
-
baseNode.truncated = true;
|
|
862
|
-
}
|
|
863
|
-
return baseNode;
|
|
864
|
-
}
|
|
865
|
-
if (collapse === "repeated" && expanded.has(lookupId)) {
|
|
866
|
-
baseNode.collapsed = true;
|
|
867
|
-
return baseNode;
|
|
868
|
-
}
|
|
869
|
-
if (collapse === "repeated") {
|
|
870
|
-
expanded.add(lookupId);
|
|
871
|
-
}
|
|
872
|
-
const nextLineage = new Set(lineage);
|
|
873
|
-
nextLineage.add(lookupId);
|
|
874
|
-
baseNode.dependencies = item.dependencies.map((dependency) => toTreeNode(dependency.id, index, nextLineage, maxDepth, collapse, expanded, depth + 1, dependency.kind));
|
|
875
|
-
return baseNode;
|
|
876
|
-
}
|
|
877
|
-
function mergeGraphNode(existing, candidate) {
|
|
878
|
-
if (!existing) {
|
|
879
|
-
return candidate;
|
|
880
|
-
}
|
|
881
|
-
if (existing.missing && !candidate.missing)
|
|
882
|
-
return candidate;
|
|
883
|
-
return {
|
|
884
|
-
...existing,
|
|
885
|
-
title: existing.title ?? candidate.title,
|
|
886
|
-
type: existing.type ?? candidate.type,
|
|
887
|
-
status: existing.status ?? candidate.status
|
|
888
|
-
};
|
|
889
|
-
}
|
|
890
|
-
function toGraph(root) {
|
|
891
|
-
const nodesById = /* @__PURE__ */ new Map();
|
|
892
|
-
const edgesByKey = /* @__PURE__ */ new Map();
|
|
893
|
-
const visit = (node) => {
|
|
894
|
-
nodesById.set(node.id, mergeGraphNode(nodesById.get(node.id), {
|
|
895
|
-
id: node.id,
|
|
896
|
-
title: node.title,
|
|
897
|
-
type: node.type,
|
|
898
|
-
status: node.status,
|
|
899
|
-
missing: node.missing
|
|
900
|
-
}));
|
|
901
|
-
for (const child of node.dependencies) {
|
|
902
|
-
nodesById.set(child.id, mergeGraphNode(nodesById.get(child.id), {
|
|
903
|
-
id: child.id,
|
|
904
|
-
title: child.title,
|
|
905
|
-
type: child.type,
|
|
906
|
-
status: child.status,
|
|
907
|
-
missing: child.missing
|
|
908
|
-
}));
|
|
909
|
-
const relationKind = child.via ?? "related";
|
|
910
|
-
const edgeKey = `${node.id}::${child.id}::${relationKind}`;
|
|
911
|
-
if (!edgesByKey.has(edgeKey)) {
|
|
912
|
-
edgesByKey.set(edgeKey, {
|
|
913
|
-
from: node.id,
|
|
914
|
-
to: child.id,
|
|
915
|
-
kind: relationKind
|
|
916
|
-
});
|
|
917
|
-
}
|
|
918
|
-
if (!child.cycle) {
|
|
919
|
-
visit(child);
|
|
920
|
-
}
|
|
921
|
-
}
|
|
922
|
-
};
|
|
923
|
-
visit(root);
|
|
924
|
-
const nodes = [...nodesById.values()].sort((left, right) => left.id.localeCompare(right.id));
|
|
925
|
-
const edges = [...edgesByKey.values()].sort((left, right) => {
|
|
926
|
-
const byFrom = left.from.localeCompare(right.from);
|
|
927
|
-
if (byFrom !== 0)
|
|
928
|
-
return byFrom;
|
|
929
|
-
const byTo = left.to.localeCompare(right.to);
|
|
930
|
-
if (byTo !== 0)
|
|
931
|
-
return byTo;
|
|
932
|
-
return left.kind.localeCompare(right.kind);
|
|
933
|
-
});
|
|
934
|
-
const missingIds = nodes.filter((node) => node.missing).map((node) => node.id);
|
|
935
|
-
return {
|
|
936
|
-
root_id: root.id,
|
|
937
|
-
nodes,
|
|
938
|
-
edges,
|
|
939
|
-
missing_ids: missingIds
|
|
940
|
-
};
|
|
941
|
-
}
|
|
942
|
-
function countDependencyGraph(rootId, index, maxDepth) {
|
|
943
|
-
const nodeIds = /* @__PURE__ */ new Set();
|
|
944
|
-
const edgeKeys = /* @__PURE__ */ new Set();
|
|
945
|
-
const missingIds = /* @__PURE__ */ new Set();
|
|
946
|
-
const expanded = /* @__PURE__ */ new Set();
|
|
947
|
-
const pending = [{ id: rootId, depth: 0 }];
|
|
948
|
-
let pendingIndex = 0;
|
|
949
|
-
while (pendingIndex < pending.length) {
|
|
950
|
-
const current = pending[pendingIndex++];
|
|
951
|
-
const lookupId = current.id.trim().toLowerCase();
|
|
952
|
-
nodeIds.add(lookupId);
|
|
953
|
-
const item = index.get(lookupId);
|
|
954
|
-
if (!item) {
|
|
955
|
-
missingIds.add(lookupId);
|
|
956
|
-
continue;
|
|
957
|
-
}
|
|
958
|
-
if (maxDepth !== void 0 && current.depth >= maxDepth) {
|
|
959
|
-
continue;
|
|
960
|
-
}
|
|
961
|
-
if (expanded.has(lookupId)) {
|
|
962
|
-
continue;
|
|
963
|
-
}
|
|
964
|
-
expanded.add(lookupId);
|
|
965
|
-
for (const dependency of item.dependencies) {
|
|
966
|
-
edgeKeys.add(`${lookupId}::${dependency.id.trim().toLowerCase()}::${dependency.kind}`);
|
|
967
|
-
pending.push({ id: dependency.id, depth: current.depth + 1 });
|
|
968
|
-
}
|
|
969
|
-
}
|
|
970
|
-
return {
|
|
971
|
-
node_count: nodeIds.size,
|
|
972
|
-
edge_count: edgeKeys.size,
|
|
973
|
-
missing_count: missingIds.size
|
|
974
|
-
};
|
|
975
|
-
}
|
|
976
|
-
function buildDepsRelationshipContext(rootId, items, options) {
|
|
977
|
-
const maxDepth = parseMaxDepth(options.maxDepth);
|
|
978
|
-
const nodeLimit = parsePositiveInteger(options.nodeLimit, "node-limit");
|
|
979
|
-
const edgeLimit = parsePositiveInteger(options.edgeLimit, "edge-limit");
|
|
980
|
-
const tokenBudget = parsePositiveInteger(options.tokenBudget, "token-budget");
|
|
981
|
-
const canonicalIds = new Map(items.map((item) => [item.id.trim().toLowerCase(), item.id.trim()]));
|
|
982
|
-
const dangling = collectDanglingDependencyReferences(items);
|
|
600
|
+
function assembleWorkspaceRelationshipGraph(items, isTerminal, registry) {
|
|
601
|
+
const safeItems = items.filter((item) => typeof item?.id === "string" && item.id.trim().length > 0);
|
|
602
|
+
const canonicalIds = new Map(safeItems.map((item) => [item.id.trim().toLowerCase(), item.id.trim()]));
|
|
603
|
+
const dangling = collectDanglingDependencyReferences(safeItems, isTerminal);
|
|
983
604
|
const missingIds = collectMissingDependencyTargetIds(dangling);
|
|
984
|
-
const
|
|
605
|
+
for (const id of missingIds)
|
|
606
|
+
canonicalIds.set(id.toLowerCase(), id);
|
|
607
|
+
const graphItems = safeItems.map((item) => {
|
|
985
608
|
const parent = normalizeDependencyGraphTarget(item.parent);
|
|
986
609
|
const blocker = normalizeDependencyGraphTarget(item.blocked_by);
|
|
987
610
|
const dependencies = (item.dependencies ?? []).flatMap((rawDependency) => {
|
|
@@ -991,91 +614,36 @@ function buildDepsRelationshipContext(rootId, items, options) {
|
|
|
991
614
|
const target = normalizeDependencyGraphTarget(dependency.id);
|
|
992
615
|
if (!target)
|
|
993
616
|
return [];
|
|
994
|
-
return [
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
617
|
+
return [
|
|
618
|
+
{
|
|
619
|
+
id: canonicalIds.get(target.toLowerCase()),
|
|
620
|
+
kind: typeof dependency.kind === "string" ? dependency.kind : "related"
|
|
621
|
+
}
|
|
622
|
+
];
|
|
998
623
|
});
|
|
999
624
|
return {
|
|
1000
|
-
id: item.id,
|
|
1001
|
-
...parent ? { parent: canonicalIds.get(parent.toLowerCase())
|
|
1002
|
-
...blocker ? { blocked_by: canonicalIds.get(blocker.toLowerCase())
|
|
625
|
+
id: item.id.trim(),
|
|
626
|
+
...parent ? { parent: canonicalIds.get(parent.toLowerCase()) } : {},
|
|
627
|
+
...blocker ? { blocked_by: canonicalIds.get(blocker.toLowerCase()) } : {},
|
|
1003
628
|
dependencies
|
|
1004
629
|
};
|
|
1005
630
|
});
|
|
1006
|
-
return buildRelationshipContext(RelationshipGraph.fromItems([...graphItems, ...missingIds.map((id) => ({ id }))]), rootId, [
|
|
1007
|
-
...items.map((item) => ({ id: item.id, title: item.title, status: item.status })),
|
|
1008
|
-
...missingIds.map((id) => ({ id, title: `[missing] ${id}`, status: "missing" }))
|
|
1009
|
-
], {
|
|
1010
|
-
...maxDepth === void 0 ? {} : { maxDepth },
|
|
1011
|
-
...nodeLimit === void 0 ? {} : { nodeLimit },
|
|
1012
|
-
...edgeLimit === void 0 ? {} : { edgeLimit },
|
|
1013
|
-
...tokenBudget === void 0 ? {} : { tokenBudget },
|
|
1014
|
-
...options.cursor?.trim() ? { cursor: options.cursor.trim() } : {}
|
|
1015
|
-
});
|
|
1016
|
-
}
|
|
1017
|
-
async function runDeps(id, options, global) {
|
|
1018
|
-
const pmRoot = resolvePmRoot(process.cwd(), global.path);
|
|
1019
|
-
if (!await pathExists(getSettingsPath(pmRoot))) {
|
|
1020
|
-
throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);
|
|
1021
|
-
}
|
|
1022
|
-
const format = parseFormat(options.format);
|
|
1023
|
-
const maxDepth = parseMaxDepth(options.maxDepth);
|
|
1024
|
-
const collapse = parseCollapse(options.collapse);
|
|
1025
|
-
const summaryOnly = options.summary === true;
|
|
1026
|
-
const settings = await readSettings(pmRoot);
|
|
1027
|
-
const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
|
|
1028
|
-
const items = await listAllItemMetadataLight(pmRoot, settings.item_format, typeRegistry.type_to_folder, void 0, settings.schema);
|
|
1029
|
-
const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
|
|
1030
|
-
const index = new Map(items.map((item) => [item.id.trim().toLowerCase(), toIndexedItem(item)]));
|
|
1031
|
-
const dangling = collectDanglingDependencyReferences(items, (status) => isTerminalStatus(status, statusRegistry));
|
|
1032
|
-
for (const reference of [...dangling.active, ...dangling.legacy_terminal]) {
|
|
1033
|
-
const holder = index.get(reference.holder_id.trim().toLowerCase());
|
|
1034
|
-
const referenceKind = reference.kind.trim().toLowerCase();
|
|
1035
|
-
if (holder && !holder.dependencies.some((dependency) => dependency.id.trim().toLowerCase() === reference.target_id.trim().toLowerCase() && dependency.kind === referenceKind)) {
|
|
1036
|
-
holder.dependencies.push({ id: reference.target_id, kind: referenceKind });
|
|
1037
|
-
}
|
|
1038
|
-
}
|
|
1039
|
-
if (!index.has(id.trim().toLowerCase())) {
|
|
1040
|
-
throw new PmCliError(`Item ${id} not found`, EXIT_CODE.NOT_FOUND);
|
|
1041
|
-
}
|
|
1042
|
-
if (format === "context") {
|
|
1043
|
-
const canonicalId = index.get(id.trim().toLowerCase()).id;
|
|
1044
|
-
const context = buildDepsRelationshipContext(canonicalId, items, options);
|
|
1045
|
-
return {
|
|
1046
|
-
id: canonicalId,
|
|
1047
|
-
format,
|
|
1048
|
-
node_count: context.nodes.length + 1,
|
|
1049
|
-
edge_count: context.edges.length,
|
|
1050
|
-
missing_count: collectMissingDependencyTargetIds(dangling).length,
|
|
1051
|
-
...summaryOnly ? {} : { context }
|
|
1052
|
-
};
|
|
1053
|
-
}
|
|
1054
|
-
if (summaryOnly) {
|
|
1055
|
-
return {
|
|
1056
|
-
id,
|
|
1057
|
-
format,
|
|
1058
|
-
...countDependencyGraph(id, index, maxDepth)
|
|
1059
|
-
};
|
|
1060
|
-
}
|
|
1061
|
-
const tree = toTreeNode(id, index, /* @__PURE__ */ new Set(), maxDepth, collapse, /* @__PURE__ */ new Set());
|
|
1062
|
-
const graph = toGraph(tree);
|
|
1063
|
-
const baseResult = {
|
|
1064
|
-
id,
|
|
1065
|
-
format,
|
|
1066
|
-
node_count: graph.nodes.length,
|
|
1067
|
-
edge_count: graph.edges.length,
|
|
1068
|
-
missing_count: graph.missing_ids.length
|
|
1069
|
-
};
|
|
1070
|
-
if (format === "tree") {
|
|
1071
|
-
return {
|
|
1072
|
-
...baseResult,
|
|
1073
|
-
tree
|
|
1074
|
-
};
|
|
1075
|
-
}
|
|
1076
631
|
return {
|
|
1077
|
-
...
|
|
1078
|
-
|
|
632
|
+
graph: RelationshipGraph.fromItems([...graphItems, ...missingIds.map((id) => ({ id }))], registry),
|
|
633
|
+
details: [
|
|
634
|
+
...safeItems.map((item) => ({
|
|
635
|
+
id: item.id.trim(),
|
|
636
|
+
title: item.title,
|
|
637
|
+
status: item.status
|
|
638
|
+
})),
|
|
639
|
+
...missingIds.map((id) => ({
|
|
640
|
+
id,
|
|
641
|
+
title: `[missing] ${id}`,
|
|
642
|
+
status: "missing"
|
|
643
|
+
}))
|
|
644
|
+
],
|
|
645
|
+
missingIdSet: new Set(missingIds.map((id) => id.toLowerCase())),
|
|
646
|
+
dangling
|
|
1079
647
|
};
|
|
1080
648
|
}
|
|
1081
649
|
|
|
@@ -1085,13 +653,10 @@ export {
|
|
|
1085
653
|
isOrderingRelationshipKind,
|
|
1086
654
|
RelationshipGraph,
|
|
1087
655
|
dependencyToRelationship,
|
|
1088
|
-
buildRelationshipContext,
|
|
1089
|
-
DEPS_FORMAT_VALUES,
|
|
1090
|
-
DEPS_COLLAPSE_VALUES,
|
|
1091
656
|
collectDanglingDependencyReferences,
|
|
1092
|
-
|
|
1093
|
-
|
|
657
|
+
collectMissingDependencyTargetIds,
|
|
658
|
+
assembleWorkspaceRelationshipGraph
|
|
1094
659
|
};
|
|
1095
|
-
//# sourceMappingURL=chunk-
|
|
660
|
+
//# sourceMappingURL=chunk-L5BTTDU5.js.map
|
|
1096
661
|
|
|
1097
|
-
//# debugId=
|
|
662
|
+
//# debugId=8145f80d-99b5-53e4-a519-54b4549dca6c
|