@unbrained/pm-cli 2026.7.21 → 2026.7.22
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 +25 -0
- package/dist/cli/bundle-integrity.js +3 -3
- package/dist/cli/bundle-integrity.js.map +1 -1
- package/dist/cli/commands/contracts.d.ts +5 -0
- package/dist/cli/commands/contracts.js +8 -6
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/copy.js +36 -20
- package/dist/cli/commands/copy.js.map +1 -1
- package/dist/cli/commands/create.js +48 -24
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/merge.d.ts +1 -1
- package/dist/cli/commands/merge.js +3 -3
- package/dist/cli/commands/merge.js.map +1 -1
- package/dist/cli/commands/restore.js +40 -22
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/update.js +12 -9
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/extension-command-help.js +3 -4
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/main.d.ts +3 -2
- package/dist/cli/main.js +6 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +33 -21
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +63 -37
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/registration-helpers.d.ts +2 -0
- package/dist/cli/registration-helpers.js +3 -2
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/bundle-manifest.json +349 -341
- package/dist/cli-bundle/chunks/{append-7OVFYR3C.js → append-CYMA7RJT.js} +5 -5
- package/dist/cli-bundle/chunks/append-H53CAPMP.js +11 -0
- package/dist/cli-bundle/chunks/{chunk-PFNHX655.js → chunk-2P7OK4WG.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-EJDGV4GR.js → chunk-3EBGHNNQ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-DZRV2OPA.js → chunk-3EDFN3VV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZOY5K4D3.js → chunk-3PWJWLLQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VXOOB6YX.js → chunk-3SJAR3CY.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-GTLCVJOE.js → chunk-3WVKMF2A.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-LAV26CQG.js → chunk-42SYYKA4.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-NLR32VFS.js → chunk-4IXLNV7W.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BKIAH72N.js → chunk-4LTPHDKA.js} +39 -23
- package/dist/cli-bundle/chunks/chunk-4LTPHDKA.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ABWCF646.js → chunk-4YTQVO3V.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-E5XMKOSB.js → chunk-5EBRMHI6.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-IY6VZ3IW.js → chunk-5FAG2JUC.js} +320 -62
- package/dist/cli-bundle/chunks/chunk-5FAG2JUC.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GKX4NJ7U.js → chunk-5K5LHZZX.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-T6PPNM7V.js → chunk-5K7BOAB6.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-4QOB7L7I.js → chunk-5MUZ54G2.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-SF3DT5HJ.js → chunk-5QME4KX2.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-RMF7LMBS.js → chunk-6PDGFY3P.js} +27 -17
- package/dist/cli-bundle/chunks/{chunk-RMF7LMBS.js.map → chunk-6PDGFY3P.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TRSHFPRZ.js → chunk-6PM6CPPP.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-O4BCOJTZ.js → chunk-7AHRY3ZB.js} +21 -16
- package/dist/cli-bundle/chunks/chunk-7AHRY3ZB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-OR42SO64.js → chunk-7B36A3VT.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-QWRVBJ4D.js → chunk-7OR2YKKD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FPBMLYPI.js → chunk-7QUV54XX.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-WWNL6WMH.js → chunk-7WXW6JHG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BXNDKOR2.js → chunk-A2VL5SVG.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-AXGDUXJW.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-IAQE32BI.js → chunk-B2AVNGG3.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-K36WV5J6.js → chunk-B7O44UBR.js} +71 -8
- package/dist/cli-bundle/chunks/chunk-B7O44UBR.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HCEBZNC3.js → chunk-BRMPF2RM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-Z7VWXXJM.js → chunk-BTNKMF2A.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-KH44WBAT.js → chunk-CD4643VW.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-OWXOPDHD.js → chunk-CJEEC5O4.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-PZC2FUOQ.js → chunk-CTPKCZCF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7W2UAXXT.js → chunk-D4OBQVL3.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-EWJWSNRU.js → chunk-DM4TYC2A.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-VJQG4BIM.js → chunk-DSFTAQ7T.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-AELMUANP.js → chunk-DVB6SQU7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KBLZ3AA5.js → chunk-E3ZWOFSO.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-EP25DV6P.js +9 -0
- package/dist/cli-bundle/chunks/{chunk-GTK4DTEW.js → chunk-F4VCB4WY.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-V22ZPOKN.js → chunk-F4XAQUQA.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-QOOTOD3W.js → chunk-FGR6IBAF.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-JSLT7WVE.js → chunk-FKBMT2Q6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QIH77CAG.js → chunk-G5RLSSIX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-P7MTHPJQ.js → chunk-GEKRVH3G.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2L6ZP22J.js → chunk-GSP6IZFU.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ATBCUC7Y.js → chunk-H3MDK2VU.js} +48 -30
- package/dist/cli-bundle/chunks/chunk-H3MDK2VU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ZVZGXPQ5.js → chunk-HYZZM3Q2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XJTABV3X.js → chunk-IBWG3OSH.js} +22 -17
- package/dist/cli-bundle/chunks/chunk-IBWG3OSH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4XGJLADW.js → chunk-IHY5SX7O.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UCBDQI5E.js → chunk-IMU7JLUI.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-Z75ONV25.js → chunk-IPAQAJWB.js} +77 -7
- package/dist/cli-bundle/chunks/chunk-IPAQAJWB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-7RW4JCU2.js → chunk-IQCD6OO3.js} +25 -13
- package/dist/cli-bundle/chunks/chunk-IQCD6OO3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YQWCZ5AC.js → chunk-J3ZKFEDM.js} +38 -22
- package/dist/cli-bundle/chunks/chunk-J3ZKFEDM.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-PEQGTJ5Q.js → chunk-JCLXCGIL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GROYI4RB.js → chunk-JLTHOYR7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-JHJSFOAM.js → chunk-JMPVHM44.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-MATHDCGG.js → chunk-JWYG36RV.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-ZTVA4KLN.js → chunk-KEGVMZNA.js} +28 -16
- package/dist/cli-bundle/chunks/chunk-KEGVMZNA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VLRGDBLY.js → chunk-KEHOPUHH.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-K55VMLSS.js → chunk-KJ4ZF35M.js} +63 -13
- package/dist/cli-bundle/chunks/chunk-KJ4ZF35M.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CPX275C6.js → chunk-KPCZL2YK.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-POG76WWZ.js → chunk-L7DZV6EZ.js} +319 -61
- package/dist/cli-bundle/chunks/chunk-L7DZV6EZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FO6OSVEN.js → chunk-LANV45W2.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-LVC72YRD.js → chunk-LC5ZUXWE.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-SY4SFZSD.js → chunk-LE522OXA.js} +55 -30
- package/dist/cli-bundle/chunks/chunk-LE522OXA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TVYYO5A7.js → chunk-MBHYQYCS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FJIFFBJX.js → chunk-MROP2RNT.js} +66 -74
- package/dist/cli-bundle/chunks/chunk-MROP2RNT.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7656MAUL.js → chunk-MUAJHL2R.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-R3P6FZJW.js → chunk-N6QCY2AX.js} +43 -25
- package/dist/cli-bundle/chunks/chunk-N6QCY2AX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7WCE6Y64.js → chunk-NUQCSV4P.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SZVB53Y3.js → chunk-O3GFE2PX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OY7DMU5P.js → chunk-O43LEUSD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AMJPSANK.js → chunk-O7RH6BWP.js} +103 -44
- package/dist/cli-bundle/chunks/chunk-O7RH6BWP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NUF7ROFH.js → chunk-OODR5KYF.js} +26 -27
- package/dist/cli-bundle/chunks/chunk-OODR5KYF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LZYP423P.js → chunk-OZ25YD4Q.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VZIZB6QH.js → chunk-PKYKQCTJ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UZLJOEAC.js → chunk-PMRED6QZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ADBTSVGK.js → chunk-PPATPPI6.js} +65 -73
- package/dist/cli-bundle/chunks/chunk-PPATPPI6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-K4CI6Y45.js → chunk-PWGJCP2V.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UVN66B3M.js → chunk-Q3Z2Y5WJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RNPZYNHS.js → chunk-Q6YZ3VCI.js} +104 -45
- package/dist/cli-bundle/chunks/chunk-Q6YZ3VCI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7DOJC3HS.js → chunk-QE5EUHKN.js} +28 -18
- package/dist/cli-bundle/chunks/chunk-QE5EUHKN.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AS4SAZ5R.js → chunk-QKMMWESK.js} +25 -26
- package/dist/cli-bundle/chunks/chunk-QKMMWESK.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-R7QV7ICM.js → chunk-QSXN2FAN.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5NTE36LD.js → chunk-RBECHH5K.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-JXCW2TI2.js → chunk-RPNC7M63.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-ICDAQ4TD.js → chunk-S2QQNTA6.js} +26 -14
- package/dist/cli-bundle/chunks/chunk-S2QQNTA6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JFD5LPMI.js → chunk-SP3BAXFF.js} +29 -17
- package/dist/cli-bundle/chunks/chunk-SP3BAXFF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-F2LBF7XJ.js → chunk-SUSFH6F7.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-VHXHVTUU.js → chunk-TDOPC7UY.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HYW67VJ5.js → chunk-TLF52ZDP.js} +30 -25
- package/dist/cli-bundle/chunks/chunk-TLF52ZDP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FSE2IKJQ.js → chunk-TWHG646K.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OCUBRA6D.js → chunk-U7U7WGEC.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-PONKZPCJ.js → chunk-UFRVIIJ2.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-VNTCM3VW.js → chunk-VKX2VZZH.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-7AVEY74G.js → chunk-VTOCZ343.js} +29 -24
- package/dist/cli-bundle/chunks/chunk-VTOCZ343.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-6JUTHVQS.js → chunk-W2JDNTN3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PQSEQD6E.js → chunk-W35PHE44.js} +62 -12
- package/dist/cli-bundle/chunks/chunk-W35PHE44.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4QSQ6XDK.js → chunk-WT4KXBUD.js} +68 -31
- package/dist/cli-bundle/chunks/chunk-WT4KXBUD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RPESLSO5.js → chunk-XC5RVKHH.js} +69 -32
- package/dist/cli-bundle/chunks/chunk-XC5RVKHH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QG4GFLQ6.js → chunk-XD6UF2NB.js} +42 -24
- package/dist/cli-bundle/chunks/chunk-XD6UF2NB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-AF2CCM5U.js → chunk-XKRVX4B3.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-JGUKMMRS.js → chunk-XN4NQZJK.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-3P7UJQOX.js → chunk-YKFMLQNK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YCIUJJOD.js → chunk-YKWKMGL7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TOBGV45Y.js → chunk-YUKIFPWK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-72LQ4TKV.js → chunk-YYEZEP3E.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-X3W65QK3.js → chunk-ZEY3XSZQ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-MWQ2HC2A.js → chunk-ZKOQHLJP.js} +59 -34
- package/dist/cli-bundle/chunks/chunk-ZKOQHLJP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QJIKE24M.js → chunk-ZQ3UMKWE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4PUUNQDV.js → chunk-ZVVEWHWK.js} +58 -33
- package/dist/cli-bundle/chunks/chunk-ZVVEWHWK.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-OG5DVFMA.js → chunk-ZXE6SNKO.js} +5 -5
- package/dist/cli-bundle/chunks/close-GAUIGOQC.js +12 -0
- package/dist/cli-bundle/chunks/{close-QEMOYZN3.js → close-SJIEKNY4.js} +5 -5
- package/dist/cli-bundle/chunks/{close-many-RZVTUGBG.js → close-many-B6AIC5OQ.js} +15 -14
- package/dist/cli-bundle/chunks/close-many-QCINT6I2.js +24 -0
- package/dist/cli-bundle/chunks/comments-4SK5EUEJ.js +13 -0
- package/dist/cli-bundle/chunks/{comments-TPU7QRBL.js → comments-DM5KV2RS.js} +7 -7
- package/dist/cli-bundle/chunks/copy-4KCCLTYQ.js +10 -0
- package/dist/cli-bundle/chunks/{copy-DKTSSCK7.js → copy-HEP5SZHB.js} +5 -4
- package/dist/cli-bundle/chunks/create-BDKQFPRE.js +30 -0
- package/dist/cli-bundle/chunks/{create-EIFBIVNQ.js → create-VCGBCYL2.js} +11 -10
- package/dist/cli-bundle/chunks/delete-JWDXPR3H.js +10 -0
- package/dist/cli-bundle/chunks/{delete-LCS3VPDH.js → delete-ZSPBTVJD.js} +4 -4
- package/dist/cli-bundle/chunks/{deps-YG7UF3VR.js → deps-BZTWWOIE.js} +6 -6
- package/dist/cli-bundle/chunks/{deps-UH5EQQUY.js → deps-OVAJOQIE.js} +6 -6
- package/dist/cli-bundle/chunks/{docs-G32TK6XS.js → docs-3GFMSWLL.js} +6 -6
- package/dist/cli-bundle/chunks/docs-SY2NPT6Y.js +14 -0
- package/dist/cli-bundle/chunks/{files-4ALMCSKB.js → files-2SEL4QIU.js} +6 -6
- package/dist/cli-bundle/chunks/{files-3H32UQ4K.js → files-FYMMJGNN.js} +6 -6
- package/dist/cli-bundle/chunks/focus-4A27YJ2Z.js +10 -0
- package/dist/cli-bundle/chunks/{focus-7SOUT5PZ.js → focus-TEUJKTAT.js} +5 -5
- package/dist/cli-bundle/chunks/history-compact-7QOKL2NB.js +16 -0
- package/dist/cli-bundle/chunks/{history-compact-77BT2LUB.js → history-compact-U7A37VR6.js} +6 -6
- package/dist/cli-bundle/chunks/{history-redact-LJPZPNFA.js → history-redact-TNKUO4ZE.js} +4 -4
- package/dist/cli-bundle/chunks/{history-redact-PWTTJ3XS.js → history-redact-ZWRUWQY3.js} +4 -4
- package/dist/cli-bundle/chunks/{history-repair-I7CBNCV3.js → history-repair-6IU5VWHN.js} +7 -7
- package/dist/cli-bundle/chunks/history-repair-GWCGJUM2.js +17 -0
- package/dist/cli-bundle/chunks/learnings-DDFAUUX3.js +13 -0
- package/dist/cli-bundle/chunks/{learnings-KTYW3AL7.js → learnings-GOEZXMKL.js} +7 -7
- package/dist/cli-bundle/chunks/{notes-ZERD3KB2.js → notes-BZWODAEK.js} +7 -7
- package/dist/cli-bundle/chunks/notes-OBJ6FL36.js +13 -0
- package/dist/cli-bundle/chunks/{plan-OFJUBIM5.js → plan-V57VQTAG.js} +12 -11
- package/dist/cli-bundle/chunks/plan-ZMOBD6FX.js +27 -0
- package/dist/cli-bundle/chunks/{profile-3THJPIQY.js → profile-BG3N4ETA.js} +9 -9
- package/dist/cli-bundle/chunks/{profile-XEZAMMBW.js → profile-XLM45FKV.js} +9 -9
- package/dist/cli-bundle/chunks/{register-list-query-BR435Q2H.js → register-list-query-EYYNTGMF.js} +48 -38
- package/dist/cli-bundle/chunks/register-list-query-EYYNTGMF.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-RWTWLOBE.js → register-list-query-WGXJPXXY.js} +47 -37
- package/dist/cli-bundle/chunks/register-list-query-WGXJPXXY.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-HLWC2WNP.js → register-mutation-3YSDDVOL.js} +131 -105
- package/dist/cli-bundle/chunks/register-mutation-3YSDDVOL.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-ZJX5AZM5.js → register-mutation-VDGUMMUY.js} +131 -105
- package/dist/cli-bundle/chunks/register-mutation-VDGUMMUY.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-operations-744YBJMV.js → register-operations-H4URGAHX.js} +36 -35
- package/dist/cli-bundle/chunks/{register-operations-744YBJMV.js.map → register-operations-H4URGAHX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-UEBJH6AN.js → register-operations-HSO7X77D.js} +34 -33
- package/dist/cli-bundle/chunks/{register-operations-UEBJH6AN.js.map → register-operations-HSO7X77D.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-5DA4UZXI.js → register-setup-HZ2KKXK4.js} +13 -13
- package/dist/cli-bundle/chunks/{register-setup-6H25M3BH.js → register-setup-WCBKJ3H3.js} +13 -13
- package/dist/cli-bundle/chunks/{restore-6TDVSATY.js → restore-3NGRFDPX.js} +7 -6
- package/dist/cli-bundle/chunks/restore-LNVNUWHE.js +15 -0
- package/dist/cli-bundle/chunks/{schema-TPVTIJPO.js → schema-LMFZ742C.js} +6 -6
- package/dist/cli-bundle/chunks/{schema-HFXFSGPG.js → schema-O34O33UW.js} +6 -6
- package/dist/cli-bundle/chunks/update-BN6VZSYX.js +24 -0
- package/dist/cli-bundle/chunks/{update-LJZCL5SI.js → update-FDLPLKOB.js} +14 -13
- package/dist/cli-bundle/chunks/update-many-WCKOPN3K.js +35 -0
- package/dist/cli-bundle/chunks/update-many-WCKOPN3K.js.map +7 -0
- package/dist/cli-bundle/chunks/update-many-X6DVGOMM.js +39 -0
- package/dist/cli-bundle/chunks/update-many-X6DVGOMM.js.map +1 -0
- package/dist/cli-bundle/main.js +65 -64
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/cli-bundle/sdk-runtime.js +53 -52
- package/dist/cli-bundle/sdk-testing.js +6 -6
- package/dist/cli-bundle/sdk.js +362 -56
- package/dist/cli-bundle/sdk.js.map +4 -4
- package/dist/cli.js +10 -4
- package/dist/cli.js.map +1 -1
- package/dist/core/diagnostics/remediation.js +7 -2
- package/dist/core/diagnostics/remediation.js.map +1 -1
- package/dist/core/search/background-refresh.d.ts +3 -1
- package/dist/core/search/background-refresh.js +34 -6
- package/dist/core/search/background-refresh.js.map +1 -1
- package/dist/core/search/cache.js +28 -5
- package/dist/core/search/cache.js.map +1 -1
- package/dist/core/shared/constants.d.ts +2 -0
- package/dist/core/shared/constants.js +29 -24
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/store/item-metadata-cache.d.ts +32 -1
- package/dist/core/store/item-metadata-cache.js +289 -21
- package/dist/core/store/item-metadata-cache.js.map +1 -1
- package/dist/core/store/item-store.js +71 -34
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/settings.js +9 -3
- package/dist/core/store/settings.js.map +1 -1
- package/dist/sdk/cli-bootstrap.js +68 -76
- package/dist/sdk/cli-bootstrap.js.map +1 -1
- package/dist/sdk/compile-cache.d.ts +16 -0
- package/dist/sdk/compile-cache.js +73 -0
- package/dist/sdk/compile-cache.js.map +1 -0
- package/dist/sdk/context-relevance.d.ts +16 -1
- package/dist/sdk/context-relevance.js +20 -8
- package/dist/sdk/context-relevance.js.map +1 -1
- package/dist/sdk/context-signal-store.d.ts +77 -0
- package/dist/sdk/context-signal-store.js +201 -0
- package/dist/sdk/context-signal-store.js.map +1 -0
- package/dist/sdk/dependency-provenance.d.ts +12 -0
- package/dist/sdk/dependency-provenance.js +38 -0
- package/dist/sdk/dependency-provenance.js.map +1 -0
- package/dist/sdk/governance/storage-integrity.d.ts +1 -1
- package/dist/sdk/governance/storage-integrity.js +47 -6
- package/dist/sdk/governance/storage-integrity.js.map +1 -1
- package/dist/sdk/graph/assembly.d.ts +2 -0
- package/dist/sdk/graph/assembly.js +51 -4
- package/dist/sdk/graph/assembly.js.map +1 -1
- package/dist/sdk/graph/run.js +12 -13
- package/dist/sdk/graph/run.js.map +1 -1
- package/dist/sdk/index.d.ts +5 -0
- package/dist/sdk/index.js +7 -2
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/item-metadata-index.d.ts +11 -0
- package/dist/sdk/item-metadata-index.js +15 -0
- package/dist/sdk/item-metadata-index.js.map +1 -0
- package/dist/sdk/merge/index.d.ts +1 -0
- package/dist/sdk/merge/index.js +3 -2
- package/dist/sdk/merge/index.js.map +1 -1
- package/dist/sdk/merge/install.js +25 -9
- package/dist/sdk/merge/install.js.map +1 -1
- package/dist/sdk/merge/reconcile.d.ts +46 -0
- package/dist/sdk/merge/reconcile.js +46 -0
- package/dist/sdk/merge/reconcile.js.map +1 -0
- package/dist/sdk/query/list.d.ts +5 -4
- package/dist/sdk/query/list.js +22 -14
- package/dist/sdk/query/list.js.map +1 -1
- package/dist/sdk/relationship-history.d.ts +30 -0
- package/dist/sdk/relationship-history.js +75 -7
- package/dist/sdk/relationship-history.js.map +1 -1
- package/dist/sdk/relationship-migration.d.ts +42 -0
- package/dist/sdk/relationship-migration.js +78 -0
- package/dist/sdk/relationship-migration.js.map +1 -0
- package/dist/sdk/structured-mutations.js +4 -25
- package/dist/sdk/structured-mutations.js.map +1 -1
- package/docs/COMMANDS.md +26 -3
- package/docs/CONFIGURATION.md +1 -1
- package/docs/MERGE_SAFETY.md +14 -5
- package/docs/PERFORMANCE.md +28 -0
- package/docs/RELATIONSHIP_GRAPH.md +47 -1
- package/docs/SDK.md +78 -5
- package/marketplace.json +2 -2
- package/package.json +2 -2
- 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/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/packages/pm-vcs/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-bundle/chunks/append-DFETHAZL.js +0 -11
- package/dist/cli-bundle/chunks/chunk-4PUUNQDV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4QSQ6XDK.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7AVEY74G.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-7DOJC3HS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7RW4JCU2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ADBTSVGK.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-AMJPSANK.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-AS4SAZ5R.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ATBCUC7Y.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-BKIAH72N.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-FJIFFBJX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-HYW67VJ5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ICDAQ4TD.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-IY6VZ3IW.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JFD5LPMI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-K36WV5J6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-K55VMLSS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MWQ2HC2A.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-NUF7ROFH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-O4BCOJTZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-POG76WWZ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-PQSEQD6E.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QG4GFLQ6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-R3P6FZJW.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RNPZYNHS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RPESLSO5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SY4SFZSD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-XJTABV3X.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YQWCZ5AC.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Z75ONV25.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ZTVA4KLN.js.map +0 -7
- package/dist/cli-bundle/chunks/close-O5QVZ6ET.js +0 -12
- package/dist/cli-bundle/chunks/close-many-5RZXVN4J.js +0 -23
- package/dist/cli-bundle/chunks/comments-Z4KV6FU3.js +0 -13
- package/dist/cli-bundle/chunks/copy-M7DDI6LS.js +0 -9
- package/dist/cli-bundle/chunks/create-RGSPN5GD.js +0 -29
- package/dist/cli-bundle/chunks/delete-MD7YXQLH.js +0 -10
- package/dist/cli-bundle/chunks/docs-JWWNRC27.js +0 -14
- package/dist/cli-bundle/chunks/focus-DRQ6FQH6.js +0 -10
- package/dist/cli-bundle/chunks/history-compact-VCKGTX64.js +0 -16
- package/dist/cli-bundle/chunks/history-repair-YTDZRK5E.js +0 -17
- package/dist/cli-bundle/chunks/learnings-CYNOICKR.js +0 -13
- package/dist/cli-bundle/chunks/notes-FGO63FXL.js +0 -13
- package/dist/cli-bundle/chunks/plan-SGCDDTYR.js +0 -26
- package/dist/cli-bundle/chunks/register-list-query-BR435Q2H.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-RWTWLOBE.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-HLWC2WNP.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-ZJX5AZM5.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-RSL7C7LO.js +0 -14
- package/dist/cli-bundle/chunks/update-SIA7LH5Y.js +0 -23
- package/dist/cli-bundle/chunks/update-many-BDBZVGQL.js +0 -38
- package/dist/cli-bundle/chunks/update-many-MOY3A5B3.js +0 -34
- /package/dist/cli-bundle/chunks/{append-7OVFYR3C.js.map → append-CYMA7RJT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-DFETHAZL.js.map → append-H53CAPMP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PFNHX655.js.map → chunk-2P7OK4WG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EJDGV4GR.js.map → chunk-3EBGHNNQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DZRV2OPA.js.map → chunk-3EDFN3VV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZOY5K4D3.js.map → chunk-3PWJWLLQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VXOOB6YX.js.map → chunk-3SJAR3CY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GTLCVJOE.js.map → chunk-3WVKMF2A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LAV26CQG.js.map → chunk-42SYYKA4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NLR32VFS.js.map → chunk-4IXLNV7W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ABWCF646.js.map → chunk-4YTQVO3V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-E5XMKOSB.js.map → chunk-5EBRMHI6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GKX4NJ7U.js.map → chunk-5K5LHZZX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T6PPNM7V.js.map → chunk-5K7BOAB6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4QOB7L7I.js.map → chunk-5MUZ54G2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SF3DT5HJ.js.map → chunk-5QME4KX2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TRSHFPRZ.js.map → chunk-6PM6CPPP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OR42SO64.js.map → chunk-7B36A3VT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QWRVBJ4D.js.map → chunk-7OR2YKKD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FPBMLYPI.js.map → chunk-7QUV54XX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WWNL6WMH.js.map → chunk-7WXW6JHG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BXNDKOR2.js.map → chunk-A2VL5SVG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-QEMOYZN3.js.map → chunk-AXGDUXJW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IAQE32BI.js.map → chunk-B2AVNGG3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HCEBZNC3.js.map → chunk-BRMPF2RM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z7VWXXJM.js.map → chunk-BTNKMF2A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KH44WBAT.js.map → chunk-CD4643VW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OWXOPDHD.js.map → chunk-CJEEC5O4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PZC2FUOQ.js.map → chunk-CTPKCZCF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7W2UAXXT.js.map → chunk-D4OBQVL3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EWJWSNRU.js.map → chunk-DM4TYC2A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VJQG4BIM.js.map → chunk-DSFTAQ7T.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AELMUANP.js.map → chunk-DVB6SQU7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KBLZ3AA5.js.map → chunk-E3ZWOFSO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-O5QVZ6ET.js.map → chunk-EP25DV6P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GTK4DTEW.js.map → chunk-F4VCB4WY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-V22ZPOKN.js.map → chunk-F4XAQUQA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QOOTOD3W.js.map → chunk-FGR6IBAF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JSLT7WVE.js.map → chunk-FKBMT2Q6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QIH77CAG.js.map → chunk-G5RLSSIX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P7MTHPJQ.js.map → chunk-GEKRVH3G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2L6ZP22J.js.map → chunk-GSP6IZFU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZVZGXPQ5.js.map → chunk-HYZZM3Q2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4XGJLADW.js.map → chunk-IHY5SX7O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UCBDQI5E.js.map → chunk-IMU7JLUI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PEQGTJ5Q.js.map → chunk-JCLXCGIL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GROYI4RB.js.map → chunk-JLTHOYR7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JHJSFOAM.js.map → chunk-JMPVHM44.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MATHDCGG.js.map → chunk-JWYG36RV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VLRGDBLY.js.map → chunk-KEHOPUHH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CPX275C6.js.map → chunk-KPCZL2YK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FO6OSVEN.js.map → chunk-LANV45W2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LVC72YRD.js.map → chunk-LC5ZUXWE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TVYYO5A7.js.map → chunk-MBHYQYCS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7656MAUL.js.map → chunk-MUAJHL2R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7WCE6Y64.js.map → chunk-NUQCSV4P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SZVB53Y3.js.map → chunk-O3GFE2PX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OY7DMU5P.js.map → chunk-O43LEUSD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LZYP423P.js.map → chunk-OZ25YD4Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VZIZB6QH.js.map → chunk-PKYKQCTJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UZLJOEAC.js.map → chunk-PMRED6QZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K4CI6Y45.js.map → chunk-PWGJCP2V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UVN66B3M.js.map → chunk-Q3Z2Y5WJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-R7QV7ICM.js.map → chunk-QSXN2FAN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5NTE36LD.js.map → chunk-RBECHH5K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JXCW2TI2.js.map → chunk-RPNC7M63.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-F2LBF7XJ.js.map → chunk-SUSFH6F7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VHXHVTUU.js.map → chunk-TDOPC7UY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FSE2IKJQ.js.map → chunk-TWHG646K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OCUBRA6D.js.map → chunk-U7U7WGEC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PONKZPCJ.js.map → chunk-UFRVIIJ2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VNTCM3VW.js.map → chunk-VKX2VZZH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6JUTHVQS.js.map → chunk-W2JDNTN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AF2CCM5U.js.map → chunk-XKRVX4B3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JGUKMMRS.js.map → chunk-XN4NQZJK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3P7UJQOX.js.map → chunk-YKFMLQNK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YCIUJJOD.js.map → chunk-YKWKMGL7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TOBGV45Y.js.map → chunk-YUKIFPWK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-72LQ4TKV.js.map → chunk-YYEZEP3E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-X3W65QK3.js.map → chunk-ZEY3XSZQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QJIKE24M.js.map → chunk-ZQ3UMKWE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OG5DVFMA.js.map → chunk-ZXE6SNKO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-5RZXVN4J.js.map → close-GAUIGOQC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-RZVTUGBG.js.map → close-SJIEKNY4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-TPU7QRBL.js.map → close-many-B6AIC5OQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-Z4KV6FU3.js.map → close-many-QCINT6I2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-M7DDI6LS.js.map → comments-4SK5EUEJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-DKTSSCK7.js.map → comments-DM5KV2RS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-RGSPN5GD.js.map → copy-4KCCLTYQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-EIFBIVNQ.js.map → copy-HEP5SZHB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-MD7YXQLH.js.map → create-BDKQFPRE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-LCS3VPDH.js.map → create-VCGBCYL2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-YG7UF3VR.js.map → delete-JWDXPR3H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-UH5EQQUY.js.map → delete-ZSPBTVJD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-JWWNRC27.js.map → deps-BZTWWOIE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-G32TK6XS.js.map → deps-OVAJOQIE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-3H32UQ4K.js.map → docs-3GFMSWLL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-4ALMCSKB.js.map → docs-SY2NPT6Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-DRQ6FQH6.js.map → files-2SEL4QIU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-7SOUT5PZ.js.map → files-FYMMJGNN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-VCKGTX64.js.map → focus-4A27YJ2Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-77BT2LUB.js.map → focus-TEUJKTAT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-PWTTJ3XS.js.map → history-compact-7QOKL2NB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-LJPZPNFA.js.map → history-compact-U7A37VR6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-I7CBNCV3.js.map → history-redact-TNKUO4ZE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-YTDZRK5E.js.map → history-redact-ZWRUWQY3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-KTYW3AL7.js.map → history-repair-6IU5VWHN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-CYNOICKR.js.map → history-repair-GWCGJUM2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-FGO63FXL.js.map → learnings-DDFAUUX3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-ZERD3KB2.js.map → learnings-GOEZXMKL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-OFJUBIM5.js.map → notes-BZWODAEK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-SGCDDTYR.js.map → notes-OBJ6FL36.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-3THJPIQY.js.map → plan-V57VQTAG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-XEZAMMBW.js.map → plan-ZMOBD6FX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-6TDVSATY.js.map → profile-BG3N4ETA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-RSL7C7LO.js.map → profile-XLM45FKV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-5DA4UZXI.js.map → register-setup-HZ2KKXK4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-6H25M3BH.js.map → register-setup-WCBKJ3H3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-TPVTIJPO.js.map → restore-3NGRFDPX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-HFXFSGPG.js.map → restore-LNVNUWHE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-LJZCL5SI.js.map → schema-LMFZ742C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-SIA7LH5Y.js.map → schema-O34O33UW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-MOY3A5B3.js.map → update-BN6VZSYX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-BDBZVGQL.js.map → update-FDLPLKOB.js.map} +0 -0
package/dist/sdk/graph/run.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* queries in long-lived hosts are answered from the memoized snapshot.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
!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]="
|
|
14
|
+
!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]="4cc511f9-999c-5519-bd96-d807c8e01a47")}catch(e){}}();
|
|
15
15
|
import { getActiveExtensionRegistrations } from "../../core/extensions/index.js";
|
|
16
16
|
import { pathExists } from "../../core/fs/fs-utils.js";
|
|
17
17
|
import { isTerminalStatus } from "../../core/item/status.js";
|
|
@@ -270,9 +270,10 @@ function runGraphAudit(invocation, isTerminal) {
|
|
|
270
270
|
/** Execute the deterministic community-detection subcommand. */
|
|
271
271
|
function runGraphCommunities(invocation) {
|
|
272
272
|
const sampleLimit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;
|
|
273
|
-
const
|
|
274
|
-
|
|
275
|
-
|
|
273
|
+
const options = {};
|
|
274
|
+
if (invocation.kinds !== undefined)
|
|
275
|
+
options.kinds = invocation.kinds;
|
|
276
|
+
const result = detectRelationshipCommunities(invocation.assembly.graph, options);
|
|
276
277
|
const analysis = result.value;
|
|
277
278
|
return {
|
|
278
279
|
subcommand: "communities",
|
|
@@ -671,15 +672,13 @@ export async function runGraph(subcommandRaw, id, target, options, global) {
|
|
|
671
672
|
const value = memo.value.subcommand === "audit"
|
|
672
673
|
? await applyAuditBaseline(pmRoot, lookup.fingerprint, memo.value, invocation.saveBaseline)
|
|
673
674
|
: memo.value;
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
result: memo.reused ? "hit" : "miss",
|
|
680
|
-
durable: durableValue !== undefined ? "hit" : persistEnabled ? "miss" : "off",
|
|
681
|
-
},
|
|
675
|
+
value.cache = {
|
|
676
|
+
fingerprint: lookup.fingerprint.slice(0, 12),
|
|
677
|
+
assembly: lookup.assemblyReused ? "hit" : "miss",
|
|
678
|
+
result: memo.reused ? "hit" : "miss",
|
|
679
|
+
durable: durableValue !== undefined ? "hit" : persistEnabled ? "miss" : "off",
|
|
682
680
|
};
|
|
681
|
+
return value;
|
|
683
682
|
}
|
|
684
683
|
//# sourceMappingURL=run.js.map
|
|
685
|
-
//# debugId=
|
|
684
|
+
//# debugId=4cc511f9-999c-5519-bd96-d807c8e01a47
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sources":["sdk/graph/run.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module sdk/graph/run\n *\n * Workspace-facing `pm graph` runner: one thin orchestrator that loads the\n * tracker once, resolves the fingerprint-keyed workspace assembly through the\n * shared graph cache, and dispatches bounded traversal, path, impact,\n * analytics, governance-audit, and remediation-planning queries through the\n * public graph toolkit. Every projection is counts-first, deterministic, and\n * carries explicit cost, truncation, and cache metadata so agents can budget\n * follow-up reads without re-scanning the workspace; identical repeated\n * queries in long-lived hosts are answered from the memoized snapshot.\n */\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { isTerminalStatus } from \"../../core/item/status.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { listAllItemMetadataLight } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport {\n parseDirection,\n parseKinds,\n parseMaxDepth,\n parsePositiveInteger,\n} from \"../dependencies.js\";\nimport {\n analyzeGraphImpact,\n analyzeKnowledgeGraph,\n analyzeRelationshipExecution,\n} from \"../relationship-analytics.js\";\nimport type { RelationshipQueryMeta } from \"../relationships.js\";\nimport {\n computeRelationshipDominators,\n detectRelationshipCommunities,\n findRedundantRelationshipEdges,\n} from \"./analytics.js\";\nimport {\n computeRelationshipCentrality,\n findRelationshipCutStructure,\n} from \"./centrality.js\";\nimport { analyzeRelationshipSchedule } from \"./scheduling.js\";\nimport {\n assembleWorkspaceRelationshipGraph,\n resolveWorkspaceRelationshipKindRegistry,\n type WorkspaceRelationshipAssembly,\n} from \"./assembly.js\";\nimport {\n computeWorkspaceGraphFingerprint,\n workspaceGraphCache,\n type GraphCacheMetadata,\n} from \"./cache.js\";\nimport {\n clearDurableGraphCache,\n durableGraphCacheStatus,\n loadGraphAuditBaseline,\n openDurableGraphCache,\n persistDurableGraphResult,\n saveGraphAuditBaseline,\n shouldPersistDurableGraphCache,\n GRAPH_DURABLE_CACHE_MIN_ITEMS,\n type DurableGraphCacheView,\n} from \"./durable-cache.js\";\nimport {\n auditWorkspaceRelationshipGraph,\n diffRelationshipAuditSnapshots,\n type RelationshipAuditDelta,\n type RelationshipAuditReport,\n type RelationshipAuditSnapshot,\n} from \"./governance.js\";\nimport {\n planRelationshipRemediation,\n type RelationshipRemediationStep,\n} from \"./remediation.js\";\nimport {\n enumerateRelationshipPaths,\n hierarchyAncestors,\n hierarchyDescendants,\n orderingPredecessors,\n orderingSuccessors,\n} from \"./traversal.js\";\n\nimport {\n GRAPH_SUBCOMMAND_VALUES,\n type GraphSubcommand,\n} from \"../cli-contracts/enum-contracts.js\";\n\nexport { GRAPH_SUBCOMMAND_VALUES, type GraphSubcommand };\n\n/** Graph subcommands that require a root item id. */\nconst ROOTED_SUBCOMMANDS = new Set<GraphSubcommand>([\n \"ancestors\",\n \"descendants\",\n \"predecessors\",\n \"successors\",\n \"paths\",\n \"impact\",\n \"dominators\",\n]);\n\n/** Default bounded sample rows returned by analyze/audit projections. */\nconst DEFAULT_SAMPLE_LIMIT = 10;\n\n/** Documents the graph command options payload exchanged by command, SDK, and package integrations. */\nexport interface GraphCommandOptions {\n /** Restricts traversal to registered relationship kinds (repeatable or comma-separated). */\n kind?: string | string[];\n /** Maximum traversal depth as a non-negative integer. */\n maxDepth?: string | number;\n /** Maximum returned rows per bounded collection. */\n limit?: string | number;\n /** Resume a traversal after this previously returned node id. */\n after?: string;\n /** Edge orientation for paths and impact queries (outgoing, incoming, or both). */\n direction?: string;\n /** Maximum enumerated paths for the paths subcommand. */\n maxPaths?: string | number;\n /** Maximum evidence sample entries per audit finding. */\n sample?: string | number;\n /** Item ids treated as explicitly valid isolates by the audit. */\n exemptIsolate?: string | string[];\n /** Item types whose active nodes are policy-valid isolates for the audit (repeatable or comma-separated). */\n exemptIsolateType?: string | string[];\n /** Persist the audit census as the change-since-baseline comparison point (audit only). */\n saveBaseline?: boolean;\n /** Rebuild and warm the durable graph index (index only). */\n rebuild?: boolean;\n /** Delete the durable graph index (index only). */\n clear?: boolean;\n /** Return counts-first envelopes without row collections. */\n summary?: boolean;\n}\n\n/** Cost metadata attached to every graph query projection. */\nexport interface GraphQueryCost {\n /** Nodes expanded while answering the query. */\n visited_nodes: number;\n /** Edges inspected while answering the query. */\n inspected_edges: number;\n}\n\n/** Result envelope for the transitive traversal subcommands. */\nexport interface GraphTraversalResult {\n /** Executed graph subcommand. */\n subcommand: \"ancestors\" | \"descendants\" | \"predecessors\" | \"successors\";\n /** Canonical root item id. */\n root: string;\n /** Total emitted node ids before summary suppression. */\n count: number;\n /** Whether configured bounds omitted reachable work. */\n truncated: boolean;\n /** Cursor resuming emission after the last returned node. */\n next_cursor?: string;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Emitted node ids in deterministic breadth-first order; absent with summary. */\n ids?: string[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One enumerated path projected with relationship kinds instead of raw edges. */\nexport interface GraphPathRow {\n /** Ordered node ids from source to target inclusive. */\n nodes: string[];\n /** Relationship kind of each traversed edge, in path order. */\n kinds: string[];\n /** Number of edges in the path. */\n length: number;\n}\n\n/** Result envelope for the paths subcommand. */\nexport interface GraphPathsResult {\n /** Executed graph subcommand. */\n subcommand: \"paths\";\n /** Canonical source item id. */\n root: string;\n /** Canonical target item id. */\n target: string;\n /** Traversal orientation used for the enumeration. */\n direction: string;\n /** Total enumerated paths before summary suppression. */\n count: number;\n /** Whether depth, path-count, or safety bounds stopped the search early. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Enumerated paths, shortest first; absent with summary. */\n paths?: GraphPathRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One affected item row in an impact projection. */\nexport interface GraphImpactRow {\n /** Affected item id. */\n id: string;\n /** Shortest relationship distance from the root. */\n distance: number;\n /** Exact node path explaining why the item is affected. */\n path: string[];\n}\n\n/** Result envelope for the impact subcommand. */\nexport interface GraphImpactResult {\n /** Executed graph subcommand. */\n subcommand: \"impact\";\n /** Canonical impact-origin item id. */\n root: string;\n /** Traversal orientation used for the blast-radius walk. */\n direction: string;\n /** Total affected items before summary suppression. */\n count: number;\n /** Whether configured bounds omitted reachable work. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Affected item rows ordered by discovery; absent with summary. */\n affected?: GraphImpactRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** Bounded execution-graph projection inside an analyze result. */\nexport interface GraphExecutionSummary {\n /** Whether the order-bearing graph is acyclic. */\n acyclic: boolean;\n /** Nodes participating in the topological order. */\n ordered_node_count: number;\n /** Number of parallelizable topological layers. */\n layer_count: number;\n /** Total items with no open prerequisites. */\n frontier_count: number;\n /** Bounded prerequisite-free sample; absent with summary. */\n frontier?: string[];\n /** Edge count of the longest execution path. */\n critical_path_length: number;\n /** Longest deterministic execution path; absent with summary. */\n critical_path?: string[];\n /** Total genuine ordering cycles. */\n cycle_count: number;\n /** Bounded ordering-cycle sample; absent with summary. */\n cycles?: string[][];\n}\n\n/** Bounded knowledge-graph projection inside an analyze result. */\nexport interface GraphKnowledgeSummary {\n /** Total weakly connected components. */\n component_count: number;\n /** Node count of the largest component. */\n largest_component_size: number;\n /** Total nodes without any relationship edges. */\n orphan_count: number;\n /** Bounded orphan sample; absent with summary. */\n orphans?: string[];\n /** Bounded maximum-degree hubs; absent with summary. */\n hubs?: { id: string; degree: number }[];\n}\n\n/** Result envelope for the analyze subcommand. */\nexport interface GraphAnalyzeResult {\n /** Executed graph subcommand. */\n subcommand: \"analyze\";\n /** Total indexed graph nodes. */\n node_count: number;\n /** Total deduplicated graph edges. */\n edge_count: number;\n /** Bound applied to every sample collection. */\n sample_limit: number;\n /** Execution-order analytics over registered ordering kinds. */\n execution: GraphExecutionSummary;\n /** Structural analytics over every stored edge. */\n knowledge: GraphKnowledgeSummary;\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** Result envelope for the audit subcommand. */\nexport interface GraphAuditResult {\n /** Executed graph subcommand. */\n subcommand: \"audit\";\n /** Total audit findings. */\n finding_count: number;\n /** Finding counts keyed by severity. */\n findings_by_severity: Record<string, number>;\n /** Finding-row counts keyed by finding code. Before 2026.7.19 this field incorrectly accumulated affected subjects; consumers of that unit must migrate to affected_subjects_by_code. */\n findings_by_code: Record<string, number>;\n /** Affected-subject counts keyed by severity. */\n affected_subjects_by_severity: Record<string, number>;\n /** Affected-subject counts keyed by finding code. */\n affected_subjects_by_code: Record<string, number>;\n /** Structural coverage metrics computed during the audit. */\n profile: RelationshipAuditReport[\"profile\"];\n /** Ordered findings with bounded evidence samples; absent with summary. */\n findings?: RelationshipAuditReport[\"findings\"];\n /** Signed change since the persisted census baseline; absent when no baseline exists. */\n baseline?: RelationshipAuditDelta;\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** Result envelope for the durable-index maintenance subcommand. */\nexport interface GraphIndexResult {\n /** Executed graph subcommand. */\n subcommand: \"index\";\n /** Maintenance action performed by this invocation. */\n action: \"status\" | \"rebuilt\" | \"cleared\";\n /** Durable index disposition against the current workspace snapshot. */\n state: \"fresh\" | \"stale\" | \"absent\";\n /** Persisted deterministic query results in the envelope. */\n entry_count: number;\n /** Items in the current workspace snapshot. */\n item_count: number;\n /** Item threshold above which implicit persistence activates. */\n min_items_threshold: number;\n /** Whether queries on this workspace will persist results right now. */\n persist_enabled: boolean;\n /** Truncated fingerprint of the current workspace snapshot. */\n current_fingerprint: string;\n /** ISO timestamp of the last persisted write, absent without an envelope. */\n saved_at?: string;\n /** Envelope size in bytes, absent without an envelope. */\n bytes?: number;\n /** Cache observability; maintenance invocations never populate it. */\n cache?: GraphCacheMetadata;\n}\n\n/** One bounded community row projected by the communities subcommand. */\nexport interface GraphCommunityRow {\n /** Lexicographically smallest member id, naming the community. */\n representative: string;\n /** Total member count before sampling. */\n size: number;\n /** Bounded sorted member sample. */\n members: string[];\n}\n\n/** Result envelope for the communities subcommand. */\nexport interface GraphCommunitiesResult {\n /** Executed graph subcommand. */\n subcommand: \"communities\";\n /** Total detected communities meeting the size floor. */\n community_count: number;\n /** Member count of the largest community. */\n largest_community_size: number;\n /** Label-propagation sweeps executed. */\n iterations: number;\n /** Whether labels stabilized before the iteration bound. */\n converged: boolean;\n /** Whether the iteration bound stopped propagation early or the sample bound omitted rows. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Bounded community rows, largest first; absent with summary. */\n communities?: GraphCommunityRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One redundant stored edge projected with its witness path. */\nexport interface GraphRedundancyRow {\n /** Stored edge source id. */\n source: string;\n /** Stored edge target id. */\n target: string;\n /** Stored relationship kind. */\n kind: string;\n /** Semantic-orientation node path proving the edge is implied. */\n witness: string[];\n}\n\n/** Result envelope for the redundancy subcommand. */\nexport interface GraphRedundancyResult {\n /** Executed graph subcommand. */\n subcommand: \"redundancy\";\n /** Total redundant edges found within configured bounds. */\n redundant_count: number;\n /** Whether the row limit omitted further redundant edges. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Redundant edge rows in deterministic scan order; absent with summary. */\n redundant?: GraphRedundancyRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One structural bottleneck row projected by the dominators subcommand. */\nexport interface GraphDominatorRow {\n /** Bottleneck node id. */\n id: string;\n /** Immediate dominator appearing on every root-to-node path. */\n idom: string;\n /** Reachable nodes strictly gated by this node. */\n dominated_count: number;\n}\n\n/** Result envelope for the dominators subcommand. */\nexport interface GraphDominatorsResult {\n /** Executed graph subcommand. */\n subcommand: \"dominators\";\n /** Canonical analyzed root id. */\n root: string;\n /** Traversal orientation used for reachability. */\n direction: string;\n /** Reachable node count including the root. */\n reachable_count: number;\n /** Total nodes gating at least one other reachable node. */\n bottleneck_count: number;\n /** Whether the depth bound cut reachability or the row limit omitted bottleneck rows. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Bounded bottleneck rows, most-gating first; absent with summary. */\n bottlenecks?: GraphDominatorRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One scheduled task row projected by the slack subcommand. */\nexport interface GraphScheduleRow {\n /** Scheduled task id. */\n id: string;\n /** Earliest start (longest prerequisite distance). */\n earliest_start: number;\n /** Latest start preserving the makespan. */\n latest_start: number;\n /** Total float: latest start minus earliest start. */\n slack: number;\n /** Whether the task lies on a critical path. */\n critical: boolean;\n}\n\n/** Result envelope for the critical-path slack subcommand. */\nexport interface GraphSlackResult {\n /** Executed graph subcommand. */\n subcommand: \"slack\";\n /** Whether the order-bearing graph is acyclic. */\n acyclic: boolean;\n /** Total makespan in unit task durations. */\n makespan: number;\n /** Tasks participating in the order-bearing DAG. */\n scheduled_count: number;\n /** Tasks with zero slack. */\n critical_count: number;\n /** Edge count of the longest execution path. */\n critical_path_length: number;\n /** Genuine ordering cycles excluded from scheduling. */\n cycle_count: number;\n /** Whether the row limit omitted scheduled tasks. */\n truncated: boolean;\n /** Longest deterministic execution path; absent with summary. */\n critical_path?: string[];\n /** Bounded scheduled rows, lowest slack first; absent with summary. */\n rows?: GraphScheduleRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One node ranked by structural centrality with directed fan-in/fan-out. */\nexport interface GraphCentralityRow {\n /** Node id. */\n id: string;\n /** Undirected unique-neighbor degree. */\n degree: number;\n /** Distinct ordering predecessors that gate this node (dependency fan-in). */\n in_degree: number;\n /** Distinct ordering successors this node gates (dependency fan-out). */\n out_degree: number;\n /** Shortest-path betweenness centrality. */\n betweenness: number;\n /** Wasserman–Faust closeness centrality. */\n closeness: number;\n}\n\n/** Result envelope for the centrality subcommand. */\nexport interface GraphCentralityResult {\n /** Executed graph subcommand. */\n subcommand: \"centrality\";\n /** Total indexed graph nodes. */\n node_count: number;\n /** Simple undirected edge count over selected kinds. */\n edge_count: number;\n /** Whether the row limit omitted ranked nodes. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Bounded ranked node rows, highest betweenness first; absent with summary. */\n rows?: GraphCentralityRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One bridge edge projected by the articulation subcommand. */\nexport interface GraphBridgeRow {\n /** Lexicographically smaller endpoint. */\n source: string;\n /** Lexicographically larger endpoint. */\n target: string;\n}\n\n/** Result envelope for the articulation subcommand. */\nexport interface GraphArticulationResult {\n /** Executed graph subcommand. */\n subcommand: \"articulation\";\n /** Total articulation points (cut vertices). */\n articulation_count: number;\n /** Total bridge edges (cut edges). */\n bridge_count: number;\n /** Whether the row limit omitted articulation points or bridges. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Bounded sorted articulation-point ids; absent with summary. */\n articulation_points?: string[];\n /** Bounded sorted bridge edges; absent with summary. */\n bridges?: GraphBridgeRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** Result envelope for the dry-run remediation planning subcommand. */\nexport interface GraphPlanResult {\n /** Executed graph subcommand. */\n subcommand: \"plan\";\n /** Total derived remediation proposals before row bounding. */\n step_count: number;\n /** Proposal counts keyed by operation family. */\n steps_by_op: Record<string, number>;\n /** Proposal counts keyed by policy code. */\n steps_by_code: Record<string, number>;\n /** Total governance-audit findings the plan was derived from. */\n finding_count: number;\n /** Whether sample, scan, or row bounds omitted derivable proposals. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Bounded proposal rows in audit severity order; absent with summary. */\n steps?: RelationshipRemediationStep[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** Union of every graph subcommand result envelope. */\nexport type GraphResult =\n | GraphTraversalResult\n | GraphPathsResult\n | GraphImpactResult\n | GraphAnalyzeResult\n | GraphAuditResult\n | GraphCommunitiesResult\n | GraphRedundancyResult\n | GraphDominatorsResult\n | GraphSlackResult\n | GraphCentralityResult\n | GraphArticulationResult\n | GraphPlanResult\n | GraphIndexResult;\n\n/** Fully parsed graph invocation shared by the subcommand executors. */\ninterface GraphInvocation {\n /** Assembled workspace relationship graph and node details. */\n assembly: WorkspaceRelationshipAssembly;\n /** Canonical registered kind filters, when provided. */\n kinds?: string[];\n /** Parsed non-negative depth bound. */\n maxDepth?: number;\n /** Parsed positive row bound. */\n limit?: number;\n /** Traversal resume cursor. */\n after?: string;\n /** Validated traversal orientation. */\n direction: \"outgoing\" | \"incoming\" | \"both\";\n /** Parsed positive path-count bound. */\n maxPaths?: number;\n /** Parsed positive audit sample bound. */\n sample?: number;\n /** Normalized audit isolate exemptions. */\n exemptIsolates: string[];\n /** Normalized audit isolate-exempt item types. */\n exemptIsolateTypes: string[];\n /** Whether the audit census is persisted as the comparison baseline. */\n saveBaseline: boolean;\n /** Whether row collections are suppressed. */\n summary: boolean;\n}\n\n/** Normalize repeatable or comma-separated id options into a flat list. */\nfunction normalizeIdList(raw: string | string[] | undefined): string[] {\n if (raw === undefined) return [];\n return (Array.isArray(raw) ? raw : [raw])\n .flatMap((value) => value.split(\",\"))\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n}\n\n/** Validate the graph subcommand and its positional-id requirements. */\nexport function parseGraphSubcommand(\n raw: string,\n id: string | undefined,\n target: string | undefined,\n): GraphSubcommand {\n const candidate = raw.trim().toLowerCase();\n if (!(GRAPH_SUBCOMMAND_VALUES as readonly string[]).includes(candidate)) {\n throw new PmCliError(\n `Invalid graph subcommand \"${raw}\". Use one of: ${GRAPH_SUBCOMMAND_VALUES.join(\", \")}.`,\n EXIT_CODE.USAGE,\n );\n }\n const subcommand = candidate as GraphSubcommand;\n if (ROOTED_SUBCOMMANDS.has(subcommand) && !id?.trim()) {\n throw new PmCliError(\n `graph ${subcommand} requires an item id.`,\n EXIT_CODE.USAGE,\n );\n }\n if (subcommand === \"paths\" && !target?.trim()) {\n throw new PmCliError(\n \"graph paths requires a source and a target item id.\",\n EXIT_CODE.USAGE,\n );\n }\n return subcommand;\n}\n\n/**\n * Re-throw graph-kernel semantic option misuse (non-family kind, unknown\n * cursor, non-transitive redundancy kind) as a usage error carrying the\n * original explanation instead of an opaque crash.\n */\nfunction rethrowGraphUsage(error: unknown): never {\n if (error instanceof TypeError)\n throw new PmCliError(error.message, EXIT_CODE.USAGE);\n throw error;\n}\n\n/** Convert traversal metadata into the shared cost/truncation projection. */\nfunction projectQueryMeta(meta: RelationshipQueryMeta): {\n truncated: boolean;\n cost: GraphQueryCost;\n} {\n return {\n truncated: meta.truncated,\n cost: {\n visited_nodes: meta.visitedNodes,\n inspected_edges: meta.inspectedEdges,\n },\n };\n}\n\n/** Resolve one item id case-insensitively against the assembled graph. */\nfunction canonicalizeGraphId(\n assembly: WorkspaceRelationshipAssembly,\n raw: string,\n): string {\n const wanted = raw.trim().toLowerCase();\n for (const detail of assembly.details) {\n if (\n detail.id.trim().toLowerCase() === wanted &&\n !assembly.missingIdSet.has(detail.id.toLowerCase())\n ) {\n return detail.id;\n }\n }\n throw new PmCliError(`Item ${raw} not found`, EXIT_CODE.NOT_FOUND);\n}\n\n/** Execute one transitive traversal subcommand over the assembled graph. */\nfunction runGraphTraversal(\n subcommand: \"ancestors\" | \"descendants\" | \"predecessors\" | \"successors\",\n root: string,\n invocation: GraphInvocation,\n): GraphTraversalResult {\n const walk = {\n ancestors: hierarchyAncestors,\n descendants: hierarchyDescendants,\n predecessors: orderingPredecessors,\n successors: orderingSuccessors,\n }[subcommand];\n let result;\n try {\n result = walk(invocation.assembly.graph, root, {\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n ...(invocation.maxDepth === undefined\n ? {}\n : { maxDepth: invocation.maxDepth }),\n ...(invocation.limit === undefined ? {} : { limit: invocation.limit }),\n ...(invocation.after === undefined ? {} : { after: invocation.after }),\n });\n } catch (error) {\n rethrowGraphUsage(error);\n }\n const meta = projectQueryMeta(result.meta);\n return {\n subcommand,\n root,\n count: result.value.length,\n ...meta,\n ...(result.meta.nextCursor === undefined\n ? {}\n : { next_cursor: result.meta.nextCursor }),\n ...(invocation.summary ? {} : { ids: result.value }),\n };\n}\n\n/** Execute the bounded simple-path enumeration subcommand. */\nfunction runGraphPaths(\n root: string,\n target: string,\n invocation: GraphInvocation,\n): GraphPathsResult {\n const result = enumerateRelationshipPaths(\n invocation.assembly.graph,\n root,\n target,\n {\n direction: invocation.direction,\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n ...(invocation.maxDepth === undefined\n ? {}\n : { maxDepth: invocation.maxDepth }),\n ...(invocation.maxPaths === undefined\n ? {}\n : { maxPaths: invocation.maxPaths }),\n },\n );\n return {\n subcommand: \"paths\",\n root,\n target,\n direction: invocation.direction,\n count: result.value.length,\n ...projectQueryMeta(result.meta),\n ...(invocation.summary\n ? {}\n : {\n paths: result.value.map((path) => ({\n nodes: path.nodes,\n kinds: path.edges.map((edge) => edge.kind),\n length: path.length,\n })),\n }),\n };\n}\n\n/** Execute the bounded blast-radius impact subcommand. */\nfunction runGraphImpact(\n root: string,\n invocation: GraphInvocation,\n): GraphImpactResult {\n const analysis = analyzeGraphImpact(invocation.assembly.graph, root, {\n direction: invocation.direction,\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n ...(invocation.maxDepth === undefined\n ? {}\n : { maxDepth: invocation.maxDepth }),\n ...(invocation.limit === undefined ? {} : { limit: invocation.limit }),\n });\n return {\n subcommand: \"impact\",\n root,\n direction: invocation.direction,\n count: analysis.affected.length,\n truncated: analysis.truncated,\n cost: {\n visited_nodes: analysis.cost.visitedNodes,\n inspected_edges: analysis.cost.inspectedEdges,\n },\n ...(invocation.summary ? {} : { affected: analysis.affected }),\n };\n}\n\n/** Execute the workspace-wide execution and knowledge analytics subcommand. */\nfunction runGraphAnalyze(invocation: GraphInvocation): GraphAnalyzeResult {\n const graph = invocation.assembly.graph;\n const sampleLimit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const execution = analyzeRelationshipExecution(graph, {\n registry: graph.registry(),\n });\n const knowledge = analyzeKnowledgeGraph(graph);\n return {\n subcommand: \"analyze\",\n node_count: graph.nodes().length,\n edge_count: graph.edges().length,\n sample_limit: sampleLimit,\n execution: {\n acyclic: execution.acyclic,\n ordered_node_count: execution.order.length,\n layer_count: execution.layers.length,\n frontier_count: execution.frontier.length,\n critical_path_length: execution.criticalPathLength,\n cycle_count: execution.cycles.length,\n ...(invocation.summary\n ? {}\n : {\n frontier: execution.frontier.slice(0, sampleLimit),\n critical_path: execution.criticalPath.slice(0, sampleLimit),\n cycles: execution.cycles.slice(0, sampleLimit),\n }),\n },\n knowledge: {\n component_count: knowledge.components.length,\n largest_component_size: knowledge.components[0]?.length ?? 0,\n orphan_count: knowledge.orphans.length,\n ...(invocation.summary\n ? {}\n : {\n orphans: knowledge.orphans.slice(0, sampleLimit),\n hubs: knowledge.hubs.slice(0, sampleLimit),\n }),\n },\n };\n}\n\n/** Execute the governance-audit subcommand over the assembled graph. */\nfunction runGraphAudit(\n invocation: GraphInvocation,\n isTerminal: (status: string) => boolean,\n): GraphAuditResult {\n const report = auditWorkspaceRelationshipGraph(invocation.assembly, {\n isTerminal,\n ...(invocation.sample === undefined\n ? {}\n : { maxSampleSize: invocation.sample }),\n ...(invocation.exemptIsolates.length === 0\n ? {}\n : { exemptIsolates: invocation.exemptIsolates }),\n ...(invocation.exemptIsolateTypes.length === 0\n ? {}\n : { isolateExemptTypes: invocation.exemptIsolateTypes }),\n });\n const bySeverity: Record<string, number> = {};\n const byCode: Record<string, number> = {};\n const affectedBySeverity: Record<string, number> = {};\n const affectedByCode: Record<string, number> = {};\n for (const finding of report.findings) {\n bySeverity[finding.severity] = (bySeverity[finding.severity] ?? 0) + 1;\n byCode[finding.code] = (byCode[finding.code] ?? 0) + 1;\n affectedBySeverity[finding.severity] =\n (affectedBySeverity[finding.severity] ?? 0) + finding.count;\n affectedByCode[finding.code] =\n (affectedByCode[finding.code] ?? 0) + finding.count;\n }\n return {\n subcommand: \"audit\",\n finding_count: report.findings.length,\n findings_by_severity: bySeverity,\n findings_by_code: byCode,\n affected_subjects_by_severity: affectedBySeverity,\n affected_subjects_by_code: affectedByCode,\n profile: report.profile,\n ...(invocation.summary ? {} : { findings: report.findings }),\n };\n}\n\n/** Execute the deterministic community-detection subcommand. */\nfunction runGraphCommunities(\n invocation: GraphInvocation,\n): GraphCommunitiesResult {\n const sampleLimit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const result = detectRelationshipCommunities(invocation.assembly.graph, {\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n });\n const analysis = result.value;\n return {\n subcommand: \"communities\",\n community_count: analysis.communities.length,\n largest_community_size: analysis.communities[0]?.size ?? 0,\n iterations: analysis.iterations,\n converged: analysis.converged,\n truncated: !analysis.converged || analysis.communities.length > sampleLimit,\n cost: {\n visited_nodes: result.meta.visitedNodes,\n inspected_edges: result.meta.inspectedEdges,\n },\n ...(invocation.summary\n ? {}\n : {\n communities: analysis.communities\n .slice(0, sampleLimit)\n .map((community) => ({\n representative: community.representative,\n size: community.size,\n members: community.members.slice(0, sampleLimit),\n })),\n }),\n };\n}\n\n/** Execute the transitive-redundancy scan subcommand. */\nfunction runGraphRedundancy(\n invocation: GraphInvocation,\n): GraphRedundancyResult {\n let result;\n try {\n result = findRedundantRelationshipEdges(invocation.assembly.graph, {\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n ...(invocation.maxDepth === undefined\n ? {}\n : { maxDepth: invocation.maxDepth }),\n ...(invocation.limit === undefined ? {} : { limit: invocation.limit }),\n });\n } catch (error) {\n rethrowGraphUsage(error);\n }\n return {\n subcommand: \"redundancy\",\n redundant_count: result.value.length,\n ...projectQueryMeta(result.meta),\n ...(invocation.summary\n ? {}\n : {\n redundant: result.value.map((row) => ({\n source: row.edge.source,\n target: row.edge.target,\n kind: row.edge.kind,\n witness: row.witness,\n })),\n }),\n };\n}\n\n/** Execute the dominator/bottleneck analysis subcommand. */\nfunction runGraphDominators(\n root: string,\n invocation: GraphInvocation,\n): GraphDominatorsResult {\n const limit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const result = computeRelationshipDominators(\n invocation.assembly.graph,\n root,\n {\n direction: invocation.direction,\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n ...(invocation.maxDepth === undefined\n ? {}\n : { maxDepth: invocation.maxDepth }),\n },\n );\n const bottlenecks = result.value.rows.filter((row) => row.dominatedCount > 0);\n return {\n subcommand: \"dominators\",\n root,\n direction: invocation.direction,\n reachable_count: result.value.reachableCount,\n bottleneck_count: bottlenecks.length,\n truncated: result.meta.truncated || bottlenecks.length > limit,\n cost: {\n visited_nodes: result.meta.visitedNodes,\n inspected_edges: result.meta.inspectedEdges,\n },\n ...(invocation.summary\n ? {}\n : {\n bottlenecks: bottlenecks.slice(0, limit).map((row) => ({\n id: row.id,\n idom: row.idom,\n dominated_count: row.dominatedCount,\n })),\n }),\n };\n}\n\n/** Execute the critical-path slack (float) analysis subcommand. */\nfunction runGraphSlack(invocation: GraphInvocation): GraphSlackResult {\n const limit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n // Scheduling spans every ordering kind; --kind is rejected upstream by\n // assertGraphFlagScope, so no kind filter reaches the analysis here.\n const analysis = analyzeRelationshipSchedule(invocation.assembly.graph);\n const criticalCount = analysis.rows.filter((row) => row.critical).length;\n return {\n subcommand: \"slack\",\n acyclic: analysis.acyclic,\n makespan: analysis.makespan,\n scheduled_count: analysis.scheduledCount,\n critical_count: criticalCount,\n critical_path_length: analysis.criticalPathLength,\n cycle_count: analysis.cycles.length,\n truncated: analysis.rows.length > limit,\n ...(invocation.summary\n ? {}\n : {\n critical_path: analysis.criticalPath,\n rows: analysis.rows.slice(0, limit).map((row) => ({\n id: row.id,\n earliest_start: row.earliestStart,\n latest_start: row.latestStart,\n slack: row.slack,\n critical: row.critical,\n })),\n }),\n };\n}\n\n/** Execute the structural-centrality ranking subcommand. */\nfunction runGraphCentrality(\n invocation: GraphInvocation,\n): GraphCentralityResult {\n const limit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const result = computeRelationshipCentrality(invocation.assembly.graph, {\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n });\n const analysis = result.value;\n return {\n subcommand: \"centrality\",\n node_count: analysis.nodeCount,\n edge_count: analysis.edgeCount,\n truncated: analysis.rows.length > limit,\n cost: {\n visited_nodes: result.meta.visitedNodes,\n inspected_edges: result.meta.inspectedEdges,\n },\n ...(invocation.summary\n ? {}\n : {\n rows: analysis.rows.slice(0, limit).map((row) => ({\n id: row.id,\n degree: row.degree,\n in_degree: row.inDegree,\n out_degree: row.outDegree,\n betweenness: row.betweenness,\n closeness: row.closeness,\n })),\n }),\n };\n}\n\n/** Execute the articulation-point and bridge (cut-structure) subcommand. */\nfunction runGraphArticulation(\n invocation: GraphInvocation,\n): GraphArticulationResult {\n const limit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const result = findRelationshipCutStructure(invocation.assembly.graph, {\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n });\n const { articulationPoints, bridges } = result.value;\n return {\n subcommand: \"articulation\",\n articulation_count: articulationPoints.length,\n bridge_count: bridges.length,\n truncated: articulationPoints.length > limit || bridges.length > limit,\n cost: {\n visited_nodes: result.meta.visitedNodes,\n inspected_edges: result.meta.inspectedEdges,\n },\n ...(invocation.summary\n ? {}\n : {\n articulation_points: articulationPoints.slice(0, limit),\n bridges: bridges.slice(0, limit),\n }),\n };\n}\n\n/** Execute the dry-run remediation planning subcommand. */\nfunction runGraphPlan(\n invocation: GraphInvocation,\n isTerminal: (status: string) => boolean,\n): GraphPlanResult {\n const limit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const plan = planRelationshipRemediation(invocation.assembly, {\n isTerminal,\n redundancyLimit: limit,\n ...(invocation.sample === undefined\n ? {}\n : { maxSampleSize: invocation.sample }),\n ...(invocation.exemptIsolates.length === 0\n ? {}\n : { exemptIsolates: invocation.exemptIsolates }),\n ...(invocation.exemptIsolateTypes.length === 0\n ? {}\n : { isolateExemptTypes: invocation.exemptIsolateTypes }),\n });\n const byOp: Record<string, number> = {};\n const byCode: Record<string, number> = {};\n for (const step of plan.steps) {\n byOp[step.op] = (byOp[step.op] ?? 0) + 1;\n byCode[step.code] = (byCode[step.code] ?? 0) + 1;\n }\n return {\n subcommand: \"plan\",\n step_count: plan.steps.length,\n steps_by_op: byOp,\n steps_by_code: byCode,\n finding_count: plan.report.findings.length,\n truncated: plan.truncated || plan.steps.length > limit,\n cost: {\n visited_nodes: plan.cost.visitedNodes,\n inspected_edges: plan.cost.inspectedEdges,\n },\n ...(invocation.summary ? {} : { steps: plan.steps.slice(0, limit) }),\n };\n}\n\n/** Build the deterministic memoization key covering every query-shaping input. */\nfunction buildGraphQueryKey(\n subcommand: GraphSubcommand,\n root: string | undefined,\n pathsTarget: string | undefined,\n invocation: GraphInvocation,\n): string {\n return JSON.stringify({\n subcommand,\n root: root ?? null,\n target: pathsTarget ?? null,\n kinds: invocation.kinds ?? null,\n maxDepth: invocation.maxDepth ?? null,\n limit: invocation.limit ?? null,\n after: invocation.after ?? null,\n direction: invocation.direction,\n maxPaths: invocation.maxPaths ?? null,\n sample: invocation.sample ?? null,\n // The audit consumes exemptions as a case-insensitive set, so the key\n // must not distinguish logically identical spellings or orderings.\n exemptIsolates: [\n ...new Set(invocation.exemptIsolates.map((id) => id.toLowerCase())),\n ].sort(),\n exemptIsolateTypes: [\n ...new Set(\n invocation.exemptIsolateTypes.map((type) => type.toLowerCase()),\n ),\n ].sort(),\n summary: invocation.summary,\n });\n}\n\n/** Dispatch one parsed graph subcommand to its executor. */\nfunction executeGraphSubcommand(\n subcommand: Exclude<GraphSubcommand, \"index\">,\n root: string | undefined,\n pathsTarget: string | undefined,\n invocation: GraphInvocation,\n isTerminal: (status: string) => boolean,\n): GraphResult {\n if (subcommand === \"analyze\") return runGraphAnalyze(invocation);\n if (subcommand === \"audit\") return runGraphAudit(invocation, isTerminal);\n if (subcommand === \"plan\") return runGraphPlan(invocation, isTerminal);\n if (subcommand === \"communities\") return runGraphCommunities(invocation);\n if (subcommand === \"redundancy\") return runGraphRedundancy(invocation);\n if (subcommand === \"dominators\") return runGraphDominators(root!, invocation);\n if (subcommand === \"slack\") return runGraphSlack(invocation);\n if (subcommand === \"centrality\") return runGraphCentrality(invocation);\n if (subcommand === \"articulation\") return runGraphArticulation(invocation);\n if (subcommand === \"paths\")\n return runGraphPaths(root!, pathsTarget!, invocation);\n if (subcommand === \"impact\") return runGraphImpact(root!, invocation);\n return runGraphTraversal(subcommand, root!, invocation);\n}\n\n/** Reject maintenance or baseline flags outside their owning subcommand. */\nfunction assertGraphFlagScope(\n subcommand: GraphSubcommand,\n options: GraphCommandOptions,\n): void {\n if (\n subcommand !== \"index\" &&\n (options.rebuild === true || options.clear === true)\n )\n throw new PmCliError(\n \"--rebuild and --clear apply only to graph index.\",\n EXIT_CODE.USAGE,\n );\n if (subcommand !== \"audit\" && options.saveBaseline === true)\n throw new PmCliError(\n \"--save-baseline applies only to graph audit.\",\n EXIT_CODE.USAGE,\n );\n // Slack schedules the whole ordering DAG (reusing the exact execution\n // analysis, which has no kind filter), so reject --kind instead of silently\n // ignoring it and letting the cache key diverge on an inert option.\n if (subcommand === \"slack\" && options.kind !== undefined)\n throw new PmCliError(\n \"graph slack analyzes every ordering kind; --kind is not supported.\",\n EXIT_CODE.USAGE,\n );\n if (options.rebuild === true && options.clear === true)\n throw new PmCliError(\n \"graph index accepts either --rebuild or --clear, not both.\",\n EXIT_CODE.USAGE,\n );\n}\n\n/**\n * Execute the durable-index maintenance subcommand: report status, delete the\n * envelope, or rebuild it and warm the counts-first analyze and audit census\n * queries so follow-up summary invocations answer from the persisted index.\n * A rebuild is also the explicit opt-in that enables persistence on\n * workspaces below the implicit item threshold.\n */\nasync function runGraphIndex(\n pmRoot: string,\n fingerprint: string,\n invocation: GraphInvocation,\n itemCount: number,\n isTerminal: (status: string) => boolean,\n options: GraphCommandOptions,\n): Promise<GraphIndexResult> {\n let action: GraphIndexResult[\"action\"] = \"status\";\n if (options.clear === true) {\n await clearDurableGraphCache(pmRoot);\n action = \"cleared\";\n }\n if (options.rebuild === true) {\n await clearDurableGraphCache(pmRoot);\n const view = await openDurableGraphCache(pmRoot, fingerprint);\n const warmInvocation: GraphInvocation = {\n assembly: invocation.assembly,\n direction: \"both\",\n exemptIsolates: [],\n exemptIsolateTypes: [],\n saveBaseline: false,\n summary: true,\n };\n for (const warm of [\"analyze\", \"audit\"] as const) {\n await persistDurableGraphResult(\n pmRoot,\n fingerprint,\n view,\n buildGraphQueryKey(warm, undefined, undefined, warmInvocation),\n executeGraphSubcommand(\n warm,\n undefined,\n undefined,\n warmInvocation,\n isTerminal,\n ),\n );\n }\n action = \"rebuilt\";\n }\n const status = await durableGraphCacheStatus(pmRoot, fingerprint);\n return {\n subcommand: \"index\",\n action,\n state: status.exists ? (status.fresh ? \"fresh\" : \"stale\") : \"absent\",\n entry_count: status.entry_count,\n item_count: itemCount,\n min_items_threshold: GRAPH_DURABLE_CACHE_MIN_ITEMS,\n persist_enabled: shouldPersistDurableGraphCache(itemCount, status.exists),\n current_fingerprint: fingerprint.slice(0, 12),\n ...(status.saved_at === undefined ? {} : { saved_at: status.saved_at }),\n ...(status.bytes === undefined ? {} : { bytes: status.bytes }),\n };\n}\n\n/**\n * Attach the change-since-baseline census delta to one audit envelope and\n * persist the current census when the caller requested a new baseline. The\n * delta always compares against the baseline as it existed before this\n * invocation, so `--save-baseline` reports drift once and then resets it.\n */\nasync function applyAuditBaseline(\n pmRoot: string,\n fingerprint: string,\n audit: GraphAuditResult,\n saveBaseline: boolean,\n): Promise<GraphAuditResult> {\n const current: RelationshipAuditSnapshot = {\n saved_at: new Date().toISOString(),\n fingerprint,\n affected_subjects_by_code: audit.affected_subjects_by_code,\n profile: audit.profile,\n };\n const stored = await loadGraphAuditBaseline(pmRoot);\n if (saveBaseline) await saveGraphAuditBaseline(pmRoot, current);\n return stored === undefined\n ? audit\n : { ...audit, baseline: diffRelationshipAuditSnapshots(stored, current) };\n}\n\n/** Persist a rebuildable query result without allowing storage failure to reject the query. */\nasync function persistDurableGraphResultBestEffort(\n pmRoot: string,\n fingerprint: string,\n view: DurableGraphCacheView,\n queryKey: string,\n result: GraphResult,\n): Promise<void> {\n try {\n await persistDurableGraphResult(\n pmRoot,\n fingerprint,\n view,\n queryKey,\n result,\n );\n } catch {\n // The in-memory result remains authoritative; the next invocation can rebuild the cache.\n }\n}\n\n/** Implements run graph for the public runtime surface of this module. */\nexport async function runGraph(\n subcommandRaw: string,\n id: string | undefined,\n target: string | undefined,\n options: GraphCommandOptions,\n global: GlobalOptions,\n): Promise<GraphResult> {\n const subcommand = parseGraphSubcommand(subcommandRaw, id, target);\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(\n `Tracker is not initialized at ${pmRoot}. Run pm init first.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n getActiveExtensionRegistrations(),\n );\n const items = await listAllItemMetadataLight(\n pmRoot,\n settings.item_format,\n typeRegistry.type_to_folder,\n undefined,\n settings.schema,\n );\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const isTerminal = (status: string): boolean =>\n isTerminalStatus(status, statusRegistry);\n assertGraphFlagScope(subcommand, options);\n const relationshipRegistry = resolveWorkspaceRelationshipKindRegistry();\n const kinds = parseKinds(options.kind, relationshipRegistry);\n const lookup = workspaceGraphCache().lookup(\n pmRoot,\n computeWorkspaceGraphFingerprint(items, isTerminal, relationshipRegistry),\n () =>\n assembleWorkspaceRelationshipGraph(\n items,\n isTerminal,\n relationshipRegistry,\n ),\n );\n const invocation: GraphInvocation = {\n assembly: lookup.assembly,\n ...(kinds === undefined ? {} : { kinds }),\n maxDepth: parseMaxDepth(options.maxDepth),\n limit: parsePositiveInteger(options.limit, \"limit\"),\n after: options.after?.trim() || undefined,\n direction: parseDirection(options.direction),\n maxPaths: parsePositiveInteger(options.maxPaths, \"max-paths\"),\n sample: parsePositiveInteger(options.sample, \"sample\"),\n exemptIsolates: normalizeIdList(options.exemptIsolate),\n exemptIsolateTypes: normalizeIdList(options.exemptIsolateType),\n saveBaseline: options.saveBaseline === true,\n summary: options.summary === true,\n };\n if (subcommand === \"index\") {\n return runGraphIndex(\n pmRoot,\n lookup.fingerprint,\n invocation,\n items.length,\n isTerminal,\n options,\n );\n }\n const root = ROOTED_SUBCOMMANDS.has(subcommand)\n ? canonicalizeGraphId(invocation.assembly, id!)\n : undefined;\n const pathsTarget =\n subcommand === \"paths\"\n ? canonicalizeGraphId(invocation.assembly, target!)\n : undefined;\n const queryKey = buildGraphQueryKey(\n subcommand,\n root,\n pathsTarget,\n invocation,\n );\n const durableView = await openDurableGraphCache(pmRoot, lookup.fingerprint);\n const durableValue = durableView.results[queryKey];\n const memo = lookup.memoize(queryKey, () =>\n durableValue !== undefined\n ? (structuredClone(durableValue) as GraphResult)\n : executeGraphSubcommand(\n subcommand,\n root,\n pathsTarget,\n invocation,\n isTerminal,\n ),\n );\n const persistEnabled = shouldPersistDurableGraphCache(\n items.length,\n durableView.exists,\n );\n if (!memo.reused && durableValue === undefined && persistEnabled) {\n await persistDurableGraphResultBestEffort(\n pmRoot,\n lookup.fingerprint,\n durableView,\n queryKey,\n memo.value,\n );\n }\n const value =\n memo.value.subcommand === \"audit\"\n ? await applyAuditBaseline(\n pmRoot,\n lookup.fingerprint,\n memo.value,\n invocation.saveBaseline,\n )\n : memo.value;\n return {\n ...value,\n cache: {\n fingerprint: lookup.fingerprint.slice(0, 12),\n assembly: lookup.assemblyReused ? \"hit\" : \"miss\",\n result: memo.reused ? \"hit\" : \"miss\",\n durable:\n durableValue !== undefined ? \"hit\" : persistEnabled ? \"miss\" : \"off\",\n },\n };\n}\n"],"names":[],"mappings":"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","debugId":"7f767038-30c6-555b-b9ac-adaf98b154e2"}
|
|
1
|
+
{"version":3,"file":"run.js","sources":["sdk/graph/run.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module sdk/graph/run\n *\n * Workspace-facing `pm graph` runner: one thin orchestrator that loads the\n * tracker once, resolves the fingerprint-keyed workspace assembly through the\n * shared graph cache, and dispatches bounded traversal, path, impact,\n * analytics, governance-audit, and remediation-planning queries through the\n * public graph toolkit. Every projection is counts-first, deterministic, and\n * carries explicit cost, truncation, and cache metadata so agents can budget\n * follow-up reads without re-scanning the workspace; identical repeated\n * queries in long-lived hosts are answered from the memoized snapshot.\n */\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { isTerminalStatus } from \"../../core/item/status.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { listAllItemMetadataLight } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport {\n parseDirection,\n parseKinds,\n parseMaxDepth,\n parsePositiveInteger,\n} from \"../dependencies.js\";\nimport {\n analyzeGraphImpact,\n analyzeKnowledgeGraph,\n analyzeRelationshipExecution,\n} from \"../relationship-analytics.js\";\nimport type { RelationshipQueryMeta } from \"../relationships.js\";\nimport {\n computeRelationshipDominators,\n detectRelationshipCommunities,\n findRedundantRelationshipEdges,\n} from \"./analytics.js\";\nimport {\n computeRelationshipCentrality,\n findRelationshipCutStructure,\n} from \"./centrality.js\";\nimport { analyzeRelationshipSchedule } from \"./scheduling.js\";\nimport {\n assembleWorkspaceRelationshipGraph,\n resolveWorkspaceRelationshipKindRegistry,\n type WorkspaceRelationshipAssembly,\n} from \"./assembly.js\";\nimport {\n computeWorkspaceGraphFingerprint,\n workspaceGraphCache,\n type GraphCacheMetadata,\n} from \"./cache.js\";\nimport {\n clearDurableGraphCache,\n durableGraphCacheStatus,\n loadGraphAuditBaseline,\n openDurableGraphCache,\n persistDurableGraphResult,\n saveGraphAuditBaseline,\n shouldPersistDurableGraphCache,\n GRAPH_DURABLE_CACHE_MIN_ITEMS,\n type DurableGraphCacheView,\n} from \"./durable-cache.js\";\nimport {\n auditWorkspaceRelationshipGraph,\n diffRelationshipAuditSnapshots,\n type RelationshipAuditDelta,\n type RelationshipAuditReport,\n type RelationshipAuditSnapshot,\n} from \"./governance.js\";\nimport {\n planRelationshipRemediation,\n type RelationshipRemediationStep,\n} from \"./remediation.js\";\nimport {\n enumerateRelationshipPaths,\n hierarchyAncestors,\n hierarchyDescendants,\n orderingPredecessors,\n orderingSuccessors,\n} from \"./traversal.js\";\n\nimport {\n GRAPH_SUBCOMMAND_VALUES,\n type GraphSubcommand,\n} from \"../cli-contracts/enum-contracts.js\";\n\nexport { GRAPH_SUBCOMMAND_VALUES, type GraphSubcommand };\n\n/** Graph subcommands that require a root item id. */\nconst ROOTED_SUBCOMMANDS = new Set<GraphSubcommand>([\n \"ancestors\",\n \"descendants\",\n \"predecessors\",\n \"successors\",\n \"paths\",\n \"impact\",\n \"dominators\",\n]);\n\n/** Default bounded sample rows returned by analyze/audit projections. */\nconst DEFAULT_SAMPLE_LIMIT = 10;\n\n/** Documents the graph command options payload exchanged by command, SDK, and package integrations. */\nexport interface GraphCommandOptions {\n /** Restricts traversal to registered relationship kinds (repeatable or comma-separated). */\n kind?: string | string[];\n /** Maximum traversal depth as a non-negative integer. */\n maxDepth?: string | number;\n /** Maximum returned rows per bounded collection. */\n limit?: string | number;\n /** Resume a traversal after this previously returned node id. */\n after?: string;\n /** Edge orientation for paths and impact queries (outgoing, incoming, or both). */\n direction?: string;\n /** Maximum enumerated paths for the paths subcommand. */\n maxPaths?: string | number;\n /** Maximum evidence sample entries per audit finding. */\n sample?: string | number;\n /** Item ids treated as explicitly valid isolates by the audit. */\n exemptIsolate?: string | string[];\n /** Item types whose active nodes are policy-valid isolates for the audit (repeatable or comma-separated). */\n exemptIsolateType?: string | string[];\n /** Persist the audit census as the change-since-baseline comparison point (audit only). */\n saveBaseline?: boolean;\n /** Rebuild and warm the durable graph index (index only). */\n rebuild?: boolean;\n /** Delete the durable graph index (index only). */\n clear?: boolean;\n /** Return counts-first envelopes without row collections. */\n summary?: boolean;\n}\n\n/** Cost metadata attached to every graph query projection. */\nexport interface GraphQueryCost {\n /** Nodes expanded while answering the query. */\n visited_nodes: number;\n /** Edges inspected while answering the query. */\n inspected_edges: number;\n}\n\n/** Result envelope for the transitive traversal subcommands. */\nexport interface GraphTraversalResult {\n /** Executed graph subcommand. */\n subcommand: \"ancestors\" | \"descendants\" | \"predecessors\" | \"successors\";\n /** Canonical root item id. */\n root: string;\n /** Total emitted node ids before summary suppression. */\n count: number;\n /** Whether configured bounds omitted reachable work. */\n truncated: boolean;\n /** Cursor resuming emission after the last returned node. */\n next_cursor?: string;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Emitted node ids in deterministic breadth-first order; absent with summary. */\n ids?: string[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One enumerated path projected with relationship kinds instead of raw edges. */\nexport interface GraphPathRow {\n /** Ordered node ids from source to target inclusive. */\n nodes: string[];\n /** Relationship kind of each traversed edge, in path order. */\n kinds: string[];\n /** Number of edges in the path. */\n length: number;\n}\n\n/** Result envelope for the paths subcommand. */\nexport interface GraphPathsResult {\n /** Executed graph subcommand. */\n subcommand: \"paths\";\n /** Canonical source item id. */\n root: string;\n /** Canonical target item id. */\n target: string;\n /** Traversal orientation used for the enumeration. */\n direction: string;\n /** Total enumerated paths before summary suppression. */\n count: number;\n /** Whether depth, path-count, or safety bounds stopped the search early. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Enumerated paths, shortest first; absent with summary. */\n paths?: GraphPathRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One affected item row in an impact projection. */\nexport interface GraphImpactRow {\n /** Affected item id. */\n id: string;\n /** Shortest relationship distance from the root. */\n distance: number;\n /** Exact node path explaining why the item is affected. */\n path: string[];\n}\n\n/** Result envelope for the impact subcommand. */\nexport interface GraphImpactResult {\n /** Executed graph subcommand. */\n subcommand: \"impact\";\n /** Canonical impact-origin item id. */\n root: string;\n /** Traversal orientation used for the blast-radius walk. */\n direction: string;\n /** Total affected items before summary suppression. */\n count: number;\n /** Whether configured bounds omitted reachable work. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Affected item rows ordered by discovery; absent with summary. */\n affected?: GraphImpactRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** Bounded execution-graph projection inside an analyze result. */\nexport interface GraphExecutionSummary {\n /** Whether the order-bearing graph is acyclic. */\n acyclic: boolean;\n /** Nodes participating in the topological order. */\n ordered_node_count: number;\n /** Number of parallelizable topological layers. */\n layer_count: number;\n /** Total items with no open prerequisites. */\n frontier_count: number;\n /** Bounded prerequisite-free sample; absent with summary. */\n frontier?: string[];\n /** Edge count of the longest execution path. */\n critical_path_length: number;\n /** Longest deterministic execution path; absent with summary. */\n critical_path?: string[];\n /** Total genuine ordering cycles. */\n cycle_count: number;\n /** Bounded ordering-cycle sample; absent with summary. */\n cycles?: string[][];\n}\n\n/** Bounded knowledge-graph projection inside an analyze result. */\nexport interface GraphKnowledgeSummary {\n /** Total weakly connected components. */\n component_count: number;\n /** Node count of the largest component. */\n largest_component_size: number;\n /** Total nodes without any relationship edges. */\n orphan_count: number;\n /** Bounded orphan sample; absent with summary. */\n orphans?: string[];\n /** Bounded maximum-degree hubs; absent with summary. */\n hubs?: { id: string; degree: number }[];\n}\n\n/** Result envelope for the analyze subcommand. */\nexport interface GraphAnalyzeResult {\n /** Executed graph subcommand. */\n subcommand: \"analyze\";\n /** Total indexed graph nodes. */\n node_count: number;\n /** Total deduplicated graph edges. */\n edge_count: number;\n /** Bound applied to every sample collection. */\n sample_limit: number;\n /** Execution-order analytics over registered ordering kinds. */\n execution: GraphExecutionSummary;\n /** Structural analytics over every stored edge. */\n knowledge: GraphKnowledgeSummary;\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** Result envelope for the audit subcommand. */\nexport interface GraphAuditResult {\n /** Executed graph subcommand. */\n subcommand: \"audit\";\n /** Total audit findings. */\n finding_count: number;\n /** Finding counts keyed by severity. */\n findings_by_severity: Record<string, number>;\n /** Finding-row counts keyed by finding code. Before 2026.7.19 this field incorrectly accumulated affected subjects; consumers of that unit must migrate to affected_subjects_by_code. */\n findings_by_code: Record<string, number>;\n /** Affected-subject counts keyed by severity. */\n affected_subjects_by_severity: Record<string, number>;\n /** Affected-subject counts keyed by finding code. */\n affected_subjects_by_code: Record<string, number>;\n /** Structural coverage metrics computed during the audit. */\n profile: RelationshipAuditReport[\"profile\"];\n /** Ordered findings with bounded evidence samples; absent with summary. */\n findings?: RelationshipAuditReport[\"findings\"];\n /** Signed change since the persisted census baseline; absent when no baseline exists. */\n baseline?: RelationshipAuditDelta;\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** Result envelope for the durable-index maintenance subcommand. */\nexport interface GraphIndexResult {\n /** Executed graph subcommand. */\n subcommand: \"index\";\n /** Maintenance action performed by this invocation. */\n action: \"status\" | \"rebuilt\" | \"cleared\";\n /** Durable index disposition against the current workspace snapshot. */\n state: \"fresh\" | \"stale\" | \"absent\";\n /** Persisted deterministic query results in the envelope. */\n entry_count: number;\n /** Items in the current workspace snapshot. */\n item_count: number;\n /** Item threshold above which implicit persistence activates. */\n min_items_threshold: number;\n /** Whether queries on this workspace will persist results right now. */\n persist_enabled: boolean;\n /** Truncated fingerprint of the current workspace snapshot. */\n current_fingerprint: string;\n /** ISO timestamp of the last persisted write, absent without an envelope. */\n saved_at?: string;\n /** Envelope size in bytes, absent without an envelope. */\n bytes?: number;\n /** Cache observability; maintenance invocations never populate it. */\n cache?: GraphCacheMetadata;\n}\n\n/** One bounded community row projected by the communities subcommand. */\nexport interface GraphCommunityRow {\n /** Lexicographically smallest member id, naming the community. */\n representative: string;\n /** Total member count before sampling. */\n size: number;\n /** Bounded sorted member sample. */\n members: string[];\n}\n\n/** Result envelope for the communities subcommand. */\nexport interface GraphCommunitiesResult {\n /** Executed graph subcommand. */\n subcommand: \"communities\";\n /** Total detected communities meeting the size floor. */\n community_count: number;\n /** Member count of the largest community. */\n largest_community_size: number;\n /** Label-propagation sweeps executed. */\n iterations: number;\n /** Whether labels stabilized before the iteration bound. */\n converged: boolean;\n /** Whether the iteration bound stopped propagation early or the sample bound omitted rows. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Bounded community rows, largest first; absent with summary. */\n communities?: GraphCommunityRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One redundant stored edge projected with its witness path. */\nexport interface GraphRedundancyRow {\n /** Stored edge source id. */\n source: string;\n /** Stored edge target id. */\n target: string;\n /** Stored relationship kind. */\n kind: string;\n /** Semantic-orientation node path proving the edge is implied. */\n witness: string[];\n}\n\n/** Result envelope for the redundancy subcommand. */\nexport interface GraphRedundancyResult {\n /** Executed graph subcommand. */\n subcommand: \"redundancy\";\n /** Total redundant edges found within configured bounds. */\n redundant_count: number;\n /** Whether the row limit omitted further redundant edges. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Redundant edge rows in deterministic scan order; absent with summary. */\n redundant?: GraphRedundancyRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One structural bottleneck row projected by the dominators subcommand. */\nexport interface GraphDominatorRow {\n /** Bottleneck node id. */\n id: string;\n /** Immediate dominator appearing on every root-to-node path. */\n idom: string;\n /** Reachable nodes strictly gated by this node. */\n dominated_count: number;\n}\n\n/** Result envelope for the dominators subcommand. */\nexport interface GraphDominatorsResult {\n /** Executed graph subcommand. */\n subcommand: \"dominators\";\n /** Canonical analyzed root id. */\n root: string;\n /** Traversal orientation used for reachability. */\n direction: string;\n /** Reachable node count including the root. */\n reachable_count: number;\n /** Total nodes gating at least one other reachable node. */\n bottleneck_count: number;\n /** Whether the depth bound cut reachability or the row limit omitted bottleneck rows. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Bounded bottleneck rows, most-gating first; absent with summary. */\n bottlenecks?: GraphDominatorRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One scheduled task row projected by the slack subcommand. */\nexport interface GraphScheduleRow {\n /** Scheduled task id. */\n id: string;\n /** Earliest start (longest prerequisite distance). */\n earliest_start: number;\n /** Latest start preserving the makespan. */\n latest_start: number;\n /** Total float: latest start minus earliest start. */\n slack: number;\n /** Whether the task lies on a critical path. */\n critical: boolean;\n}\n\n/** Result envelope for the critical-path slack subcommand. */\nexport interface GraphSlackResult {\n /** Executed graph subcommand. */\n subcommand: \"slack\";\n /** Whether the order-bearing graph is acyclic. */\n acyclic: boolean;\n /** Total makespan in unit task durations. */\n makespan: number;\n /** Tasks participating in the order-bearing DAG. */\n scheduled_count: number;\n /** Tasks with zero slack. */\n critical_count: number;\n /** Edge count of the longest execution path. */\n critical_path_length: number;\n /** Genuine ordering cycles excluded from scheduling. */\n cycle_count: number;\n /** Whether the row limit omitted scheduled tasks. */\n truncated: boolean;\n /** Longest deterministic execution path; absent with summary. */\n critical_path?: string[];\n /** Bounded scheduled rows, lowest slack first; absent with summary. */\n rows?: GraphScheduleRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One node ranked by structural centrality with directed fan-in/fan-out. */\nexport interface GraphCentralityRow {\n /** Node id. */\n id: string;\n /** Undirected unique-neighbor degree. */\n degree: number;\n /** Distinct ordering predecessors that gate this node (dependency fan-in). */\n in_degree: number;\n /** Distinct ordering successors this node gates (dependency fan-out). */\n out_degree: number;\n /** Shortest-path betweenness centrality. */\n betweenness: number;\n /** Wasserman–Faust closeness centrality. */\n closeness: number;\n}\n\n/** Result envelope for the centrality subcommand. */\nexport interface GraphCentralityResult {\n /** Executed graph subcommand. */\n subcommand: \"centrality\";\n /** Total indexed graph nodes. */\n node_count: number;\n /** Simple undirected edge count over selected kinds. */\n edge_count: number;\n /** Whether the row limit omitted ranked nodes. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Bounded ranked node rows, highest betweenness first; absent with summary. */\n rows?: GraphCentralityRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** One bridge edge projected by the articulation subcommand. */\nexport interface GraphBridgeRow {\n /** Lexicographically smaller endpoint. */\n source: string;\n /** Lexicographically larger endpoint. */\n target: string;\n}\n\n/** Result envelope for the articulation subcommand. */\nexport interface GraphArticulationResult {\n /** Executed graph subcommand. */\n subcommand: \"articulation\";\n /** Total articulation points (cut vertices). */\n articulation_count: number;\n /** Total bridge edges (cut edges). */\n bridge_count: number;\n /** Whether the row limit omitted articulation points or bridges. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Bounded sorted articulation-point ids; absent with summary. */\n articulation_points?: string[];\n /** Bounded sorted bridge edges; absent with summary. */\n bridges?: GraphBridgeRow[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** Result envelope for the dry-run remediation planning subcommand. */\nexport interface GraphPlanResult {\n /** Executed graph subcommand. */\n subcommand: \"plan\";\n /** Total derived remediation proposals before row bounding. */\n step_count: number;\n /** Proposal counts keyed by operation family. */\n steps_by_op: Record<string, number>;\n /** Proposal counts keyed by policy code. */\n steps_by_code: Record<string, number>;\n /** Total governance-audit findings the plan was derived from. */\n finding_count: number;\n /** Whether sample, scan, or row bounds omitted derivable proposals. */\n truncated: boolean;\n /** Query cost metadata. */\n cost: GraphQueryCost;\n /** Bounded proposal rows in audit severity order; absent with summary. */\n steps?: RelationshipRemediationStep[];\n /** Cache observability for this invocation. */\n cache?: GraphCacheMetadata;\n}\n\n/** Union of every graph subcommand result envelope. */\nexport type GraphResult =\n | GraphTraversalResult\n | GraphPathsResult\n | GraphImpactResult\n | GraphAnalyzeResult\n | GraphAuditResult\n | GraphCommunitiesResult\n | GraphRedundancyResult\n | GraphDominatorsResult\n | GraphSlackResult\n | GraphCentralityResult\n | GraphArticulationResult\n | GraphPlanResult\n | GraphIndexResult;\n\n/** Fully parsed graph invocation shared by the subcommand executors. */\ninterface GraphInvocation {\n /** Assembled workspace relationship graph and node details. */\n assembly: WorkspaceRelationshipAssembly;\n /** Canonical registered kind filters, when provided. */\n kinds?: string[];\n /** Parsed non-negative depth bound. */\n maxDepth?: number;\n /** Parsed positive row bound. */\n limit?: number;\n /** Traversal resume cursor. */\n after?: string;\n /** Validated traversal orientation. */\n direction: \"outgoing\" | \"incoming\" | \"both\";\n /** Parsed positive path-count bound. */\n maxPaths?: number;\n /** Parsed positive audit sample bound. */\n sample?: number;\n /** Normalized audit isolate exemptions. */\n exemptIsolates: string[];\n /** Normalized audit isolate-exempt item types. */\n exemptIsolateTypes: string[];\n /** Whether the audit census is persisted as the comparison baseline. */\n saveBaseline: boolean;\n /** Whether row collections are suppressed. */\n summary: boolean;\n}\n\n/** Normalize repeatable or comma-separated id options into a flat list. */\nfunction normalizeIdList(raw: string | string[] | undefined): string[] {\n if (raw === undefined) return [];\n return (Array.isArray(raw) ? raw : [raw])\n .flatMap((value) => value.split(\",\"))\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n}\n\n/** Validate the graph subcommand and its positional-id requirements. */\nexport function parseGraphSubcommand(\n raw: string,\n id: string | undefined,\n target: string | undefined,\n): GraphSubcommand {\n const candidate = raw.trim().toLowerCase();\n if (!(GRAPH_SUBCOMMAND_VALUES as readonly string[]).includes(candidate)) {\n throw new PmCliError(\n `Invalid graph subcommand \"${raw}\". Use one of: ${GRAPH_SUBCOMMAND_VALUES.join(\", \")}.`,\n EXIT_CODE.USAGE,\n );\n }\n const subcommand = candidate as GraphSubcommand;\n if (ROOTED_SUBCOMMANDS.has(subcommand) && !id?.trim()) {\n throw new PmCliError(\n `graph ${subcommand} requires an item id.`,\n EXIT_CODE.USAGE,\n );\n }\n if (subcommand === \"paths\" && !target?.trim()) {\n throw new PmCliError(\n \"graph paths requires a source and a target item id.\",\n EXIT_CODE.USAGE,\n );\n }\n return subcommand;\n}\n\n/**\n * Re-throw graph-kernel semantic option misuse (non-family kind, unknown\n * cursor, non-transitive redundancy kind) as a usage error carrying the\n * original explanation instead of an opaque crash.\n */\nfunction rethrowGraphUsage(error: unknown): never {\n if (error instanceof TypeError)\n throw new PmCliError(error.message, EXIT_CODE.USAGE);\n throw error;\n}\n\n/** Convert traversal metadata into the shared cost/truncation projection. */\nfunction projectQueryMeta(meta: RelationshipQueryMeta): {\n truncated: boolean;\n cost: GraphQueryCost;\n} {\n return {\n truncated: meta.truncated,\n cost: {\n visited_nodes: meta.visitedNodes,\n inspected_edges: meta.inspectedEdges,\n },\n };\n}\n\n/** Resolve one item id case-insensitively against the assembled graph. */\nfunction canonicalizeGraphId(\n assembly: WorkspaceRelationshipAssembly,\n raw: string,\n): string {\n const wanted = raw.trim().toLowerCase();\n for (const detail of assembly.details) {\n if (\n detail.id.trim().toLowerCase() === wanted &&\n !assembly.missingIdSet.has(detail.id.toLowerCase())\n ) {\n return detail.id;\n }\n }\n throw new PmCliError(`Item ${raw} not found`, EXIT_CODE.NOT_FOUND);\n}\n\n/** Execute one transitive traversal subcommand over the assembled graph. */\nfunction runGraphTraversal(\n subcommand: \"ancestors\" | \"descendants\" | \"predecessors\" | \"successors\",\n root: string,\n invocation: GraphInvocation,\n): GraphTraversalResult {\n const walk = {\n ancestors: hierarchyAncestors,\n descendants: hierarchyDescendants,\n predecessors: orderingPredecessors,\n successors: orderingSuccessors,\n }[subcommand];\n let result;\n try {\n result = walk(invocation.assembly.graph, root, {\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n ...(invocation.maxDepth === undefined\n ? {}\n : { maxDepth: invocation.maxDepth }),\n ...(invocation.limit === undefined ? {} : { limit: invocation.limit }),\n ...(invocation.after === undefined ? {} : { after: invocation.after }),\n });\n } catch (error) {\n rethrowGraphUsage(error);\n }\n const meta = projectQueryMeta(result.meta);\n return {\n subcommand,\n root,\n count: result.value.length,\n ...meta,\n ...(result.meta.nextCursor === undefined\n ? {}\n : { next_cursor: result.meta.nextCursor }),\n ...(invocation.summary ? {} : { ids: result.value }),\n };\n}\n\n/** Execute the bounded simple-path enumeration subcommand. */\nfunction runGraphPaths(\n root: string,\n target: string,\n invocation: GraphInvocation,\n): GraphPathsResult {\n const result = enumerateRelationshipPaths(\n invocation.assembly.graph,\n root,\n target,\n {\n direction: invocation.direction,\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n ...(invocation.maxDepth === undefined\n ? {}\n : { maxDepth: invocation.maxDepth }),\n ...(invocation.maxPaths === undefined\n ? {}\n : { maxPaths: invocation.maxPaths }),\n },\n );\n return {\n subcommand: \"paths\",\n root,\n target,\n direction: invocation.direction,\n count: result.value.length,\n ...projectQueryMeta(result.meta),\n ...(invocation.summary\n ? {}\n : {\n paths: result.value.map((path) => ({\n nodes: path.nodes,\n kinds: path.edges.map((edge) => edge.kind),\n length: path.length,\n })),\n }),\n };\n}\n\n/** Execute the bounded blast-radius impact subcommand. */\nfunction runGraphImpact(\n root: string,\n invocation: GraphInvocation,\n): GraphImpactResult {\n const analysis = analyzeGraphImpact(invocation.assembly.graph, root, {\n direction: invocation.direction,\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n ...(invocation.maxDepth === undefined\n ? {}\n : { maxDepth: invocation.maxDepth }),\n ...(invocation.limit === undefined ? {} : { limit: invocation.limit }),\n });\n return {\n subcommand: \"impact\",\n root,\n direction: invocation.direction,\n count: analysis.affected.length,\n truncated: analysis.truncated,\n cost: {\n visited_nodes: analysis.cost.visitedNodes,\n inspected_edges: analysis.cost.inspectedEdges,\n },\n ...(invocation.summary ? {} : { affected: analysis.affected }),\n };\n}\n\n/** Execute the workspace-wide execution and knowledge analytics subcommand. */\nfunction runGraphAnalyze(invocation: GraphInvocation): GraphAnalyzeResult {\n const graph = invocation.assembly.graph;\n const sampleLimit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const execution = analyzeRelationshipExecution(graph, {\n registry: graph.registry(),\n });\n const knowledge = analyzeKnowledgeGraph(graph);\n return {\n subcommand: \"analyze\",\n node_count: graph.nodes().length,\n edge_count: graph.edges().length,\n sample_limit: sampleLimit,\n execution: {\n acyclic: execution.acyclic,\n ordered_node_count: execution.order.length,\n layer_count: execution.layers.length,\n frontier_count: execution.frontier.length,\n critical_path_length: execution.criticalPathLength,\n cycle_count: execution.cycles.length,\n ...(invocation.summary\n ? {}\n : {\n frontier: execution.frontier.slice(0, sampleLimit),\n critical_path: execution.criticalPath.slice(0, sampleLimit),\n cycles: execution.cycles.slice(0, sampleLimit),\n }),\n },\n knowledge: {\n component_count: knowledge.components.length,\n largest_component_size: knowledge.components[0]?.length ?? 0,\n orphan_count: knowledge.orphans.length,\n ...(invocation.summary\n ? {}\n : {\n orphans: knowledge.orphans.slice(0, sampleLimit),\n hubs: knowledge.hubs.slice(0, sampleLimit),\n }),\n },\n };\n}\n\n/** Execute the governance-audit subcommand over the assembled graph. */\nfunction runGraphAudit(\n invocation: GraphInvocation,\n isTerminal: (status: string) => boolean,\n): GraphAuditResult {\n const report = auditWorkspaceRelationshipGraph(invocation.assembly, {\n isTerminal,\n ...(invocation.sample === undefined\n ? {}\n : { maxSampleSize: invocation.sample }),\n ...(invocation.exemptIsolates.length === 0\n ? {}\n : { exemptIsolates: invocation.exemptIsolates }),\n ...(invocation.exemptIsolateTypes.length === 0\n ? {}\n : { isolateExemptTypes: invocation.exemptIsolateTypes }),\n });\n const bySeverity: Record<string, number> = {};\n const byCode: Record<string, number> = {};\n const affectedBySeverity: Record<string, number> = {};\n const affectedByCode: Record<string, number> = {};\n for (const finding of report.findings) {\n bySeverity[finding.severity] = (bySeverity[finding.severity] ?? 0) + 1;\n byCode[finding.code] = (byCode[finding.code] ?? 0) + 1;\n affectedBySeverity[finding.severity] =\n (affectedBySeverity[finding.severity] ?? 0) + finding.count;\n affectedByCode[finding.code] =\n (affectedByCode[finding.code] ?? 0) + finding.count;\n }\n return {\n subcommand: \"audit\",\n finding_count: report.findings.length,\n findings_by_severity: bySeverity,\n findings_by_code: byCode,\n affected_subjects_by_severity: affectedBySeverity,\n affected_subjects_by_code: affectedByCode,\n profile: report.profile,\n ...(invocation.summary ? {} : { findings: report.findings }),\n };\n}\n\n/** Execute the deterministic community-detection subcommand. */\nfunction runGraphCommunities(\n invocation: GraphInvocation,\n): GraphCommunitiesResult {\n const sampleLimit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const options: Parameters<typeof detectRelationshipCommunities>[1] = {};\n if (invocation.kinds !== undefined) options.kinds = invocation.kinds;\n const result = detectRelationshipCommunities(\n invocation.assembly.graph,\n options,\n );\n const analysis = result.value;\n return {\n subcommand: \"communities\",\n community_count: analysis.communities.length,\n largest_community_size: analysis.communities[0]?.size ?? 0,\n iterations: analysis.iterations,\n converged: analysis.converged,\n truncated: !analysis.converged || analysis.communities.length > sampleLimit,\n cost: {\n visited_nodes: result.meta.visitedNodes,\n inspected_edges: result.meta.inspectedEdges,\n },\n ...(invocation.summary\n ? {}\n : {\n communities: analysis.communities\n .slice(0, sampleLimit)\n .map((community) => ({\n representative: community.representative,\n size: community.size,\n members: community.members.slice(0, sampleLimit),\n })),\n }),\n };\n}\n\n/** Execute the transitive-redundancy scan subcommand. */\nfunction runGraphRedundancy(\n invocation: GraphInvocation,\n): GraphRedundancyResult {\n let result;\n try {\n result = findRedundantRelationshipEdges(invocation.assembly.graph, {\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n ...(invocation.maxDepth === undefined\n ? {}\n : { maxDepth: invocation.maxDepth }),\n ...(invocation.limit === undefined ? {} : { limit: invocation.limit }),\n });\n } catch (error) {\n rethrowGraphUsage(error);\n }\n return {\n subcommand: \"redundancy\",\n redundant_count: result.value.length,\n ...projectQueryMeta(result.meta),\n ...(invocation.summary\n ? {}\n : {\n redundant: result.value.map((row) => ({\n source: row.edge.source,\n target: row.edge.target,\n kind: row.edge.kind,\n witness: row.witness,\n })),\n }),\n };\n}\n\n/** Execute the dominator/bottleneck analysis subcommand. */\nfunction runGraphDominators(\n root: string,\n invocation: GraphInvocation,\n): GraphDominatorsResult {\n const limit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const result = computeRelationshipDominators(\n invocation.assembly.graph,\n root,\n {\n direction: invocation.direction,\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n ...(invocation.maxDepth === undefined\n ? {}\n : { maxDepth: invocation.maxDepth }),\n },\n );\n const bottlenecks = result.value.rows.filter((row) => row.dominatedCount > 0);\n return {\n subcommand: \"dominators\",\n root,\n direction: invocation.direction,\n reachable_count: result.value.reachableCount,\n bottleneck_count: bottlenecks.length,\n truncated: result.meta.truncated || bottlenecks.length > limit,\n cost: {\n visited_nodes: result.meta.visitedNodes,\n inspected_edges: result.meta.inspectedEdges,\n },\n ...(invocation.summary\n ? {}\n : {\n bottlenecks: bottlenecks.slice(0, limit).map((row) => ({\n id: row.id,\n idom: row.idom,\n dominated_count: row.dominatedCount,\n })),\n }),\n };\n}\n\n/** Execute the critical-path slack (float) analysis subcommand. */\nfunction runGraphSlack(invocation: GraphInvocation): GraphSlackResult {\n const limit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n // Scheduling spans every ordering kind; --kind is rejected upstream by\n // assertGraphFlagScope, so no kind filter reaches the analysis here.\n const analysis = analyzeRelationshipSchedule(invocation.assembly.graph);\n const criticalCount = analysis.rows.filter((row) => row.critical).length;\n return {\n subcommand: \"slack\",\n acyclic: analysis.acyclic,\n makespan: analysis.makespan,\n scheduled_count: analysis.scheduledCount,\n critical_count: criticalCount,\n critical_path_length: analysis.criticalPathLength,\n cycle_count: analysis.cycles.length,\n truncated: analysis.rows.length > limit,\n ...(invocation.summary\n ? {}\n : {\n critical_path: analysis.criticalPath,\n rows: analysis.rows.slice(0, limit).map((row) => ({\n id: row.id,\n earliest_start: row.earliestStart,\n latest_start: row.latestStart,\n slack: row.slack,\n critical: row.critical,\n })),\n }),\n };\n}\n\n/** Execute the structural-centrality ranking subcommand. */\nfunction runGraphCentrality(\n invocation: GraphInvocation,\n): GraphCentralityResult {\n const limit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const result = computeRelationshipCentrality(invocation.assembly.graph, {\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n });\n const analysis = result.value;\n return {\n subcommand: \"centrality\",\n node_count: analysis.nodeCount,\n edge_count: analysis.edgeCount,\n truncated: analysis.rows.length > limit,\n cost: {\n visited_nodes: result.meta.visitedNodes,\n inspected_edges: result.meta.inspectedEdges,\n },\n ...(invocation.summary\n ? {}\n : {\n rows: analysis.rows.slice(0, limit).map((row) => ({\n id: row.id,\n degree: row.degree,\n in_degree: row.inDegree,\n out_degree: row.outDegree,\n betweenness: row.betweenness,\n closeness: row.closeness,\n })),\n }),\n };\n}\n\n/** Execute the articulation-point and bridge (cut-structure) subcommand. */\nfunction runGraphArticulation(\n invocation: GraphInvocation,\n): GraphArticulationResult {\n const limit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const result = findRelationshipCutStructure(invocation.assembly.graph, {\n ...(invocation.kinds === undefined ? {} : { kinds: invocation.kinds }),\n });\n const { articulationPoints, bridges } = result.value;\n return {\n subcommand: \"articulation\",\n articulation_count: articulationPoints.length,\n bridge_count: bridges.length,\n truncated: articulationPoints.length > limit || bridges.length > limit,\n cost: {\n visited_nodes: result.meta.visitedNodes,\n inspected_edges: result.meta.inspectedEdges,\n },\n ...(invocation.summary\n ? {}\n : {\n articulation_points: articulationPoints.slice(0, limit),\n bridges: bridges.slice(0, limit),\n }),\n };\n}\n\n/** Execute the dry-run remediation planning subcommand. */\nfunction runGraphPlan(\n invocation: GraphInvocation,\n isTerminal: (status: string) => boolean,\n): GraphPlanResult {\n const limit = invocation.limit ?? DEFAULT_SAMPLE_LIMIT;\n const plan = planRelationshipRemediation(invocation.assembly, {\n isTerminal,\n redundancyLimit: limit,\n ...(invocation.sample === undefined\n ? {}\n : { maxSampleSize: invocation.sample }),\n ...(invocation.exemptIsolates.length === 0\n ? {}\n : { exemptIsolates: invocation.exemptIsolates }),\n ...(invocation.exemptIsolateTypes.length === 0\n ? {}\n : { isolateExemptTypes: invocation.exemptIsolateTypes }),\n });\n const byOp: Record<string, number> = {};\n const byCode: Record<string, number> = {};\n for (const step of plan.steps) {\n byOp[step.op] = (byOp[step.op] ?? 0) + 1;\n byCode[step.code] = (byCode[step.code] ?? 0) + 1;\n }\n return {\n subcommand: \"plan\",\n step_count: plan.steps.length,\n steps_by_op: byOp,\n steps_by_code: byCode,\n finding_count: plan.report.findings.length,\n truncated: plan.truncated || plan.steps.length > limit,\n cost: {\n visited_nodes: plan.cost.visitedNodes,\n inspected_edges: plan.cost.inspectedEdges,\n },\n ...(invocation.summary ? {} : { steps: plan.steps.slice(0, limit) }),\n };\n}\n\n/** Build the deterministic memoization key covering every query-shaping input. */\nfunction buildGraphQueryKey(\n subcommand: GraphSubcommand,\n root: string | undefined,\n pathsTarget: string | undefined,\n invocation: GraphInvocation,\n): string {\n return JSON.stringify({\n subcommand,\n root: root ?? null,\n target: pathsTarget ?? null,\n kinds: invocation.kinds ?? null,\n maxDepth: invocation.maxDepth ?? null,\n limit: invocation.limit ?? null,\n after: invocation.after ?? null,\n direction: invocation.direction,\n maxPaths: invocation.maxPaths ?? null,\n sample: invocation.sample ?? null,\n // The audit consumes exemptions as a case-insensitive set, so the key\n // must not distinguish logically identical spellings or orderings.\n exemptIsolates: [\n ...new Set(invocation.exemptIsolates.map((id) => id.toLowerCase())),\n ].sort(),\n exemptIsolateTypes: [\n ...new Set(\n invocation.exemptIsolateTypes.map((type) => type.toLowerCase()),\n ),\n ].sort(),\n summary: invocation.summary,\n });\n}\n\n/** Dispatch one parsed graph subcommand to its executor. */\nfunction executeGraphSubcommand(\n subcommand: Exclude<GraphSubcommand, \"index\">,\n root: string | undefined,\n pathsTarget: string | undefined,\n invocation: GraphInvocation,\n isTerminal: (status: string) => boolean,\n): GraphResult {\n if (subcommand === \"analyze\") return runGraphAnalyze(invocation);\n if (subcommand === \"audit\") return runGraphAudit(invocation, isTerminal);\n if (subcommand === \"plan\") return runGraphPlan(invocation, isTerminal);\n if (subcommand === \"communities\") return runGraphCommunities(invocation);\n if (subcommand === \"redundancy\") return runGraphRedundancy(invocation);\n if (subcommand === \"dominators\") return runGraphDominators(root!, invocation);\n if (subcommand === \"slack\") return runGraphSlack(invocation);\n if (subcommand === \"centrality\") return runGraphCentrality(invocation);\n if (subcommand === \"articulation\") return runGraphArticulation(invocation);\n if (subcommand === \"paths\")\n return runGraphPaths(root!, pathsTarget!, invocation);\n if (subcommand === \"impact\") return runGraphImpact(root!, invocation);\n return runGraphTraversal(subcommand, root!, invocation);\n}\n\n/** Reject maintenance or baseline flags outside their owning subcommand. */\nfunction assertGraphFlagScope(\n subcommand: GraphSubcommand,\n options: GraphCommandOptions,\n): void {\n if (\n subcommand !== \"index\" &&\n (options.rebuild === true || options.clear === true)\n )\n throw new PmCliError(\n \"--rebuild and --clear apply only to graph index.\",\n EXIT_CODE.USAGE,\n );\n if (subcommand !== \"audit\" && options.saveBaseline === true)\n throw new PmCliError(\n \"--save-baseline applies only to graph audit.\",\n EXIT_CODE.USAGE,\n );\n // Slack schedules the whole ordering DAG (reusing the exact execution\n // analysis, which has no kind filter), so reject --kind instead of silently\n // ignoring it and letting the cache key diverge on an inert option.\n if (subcommand === \"slack\" && options.kind !== undefined)\n throw new PmCliError(\n \"graph slack analyzes every ordering kind; --kind is not supported.\",\n EXIT_CODE.USAGE,\n );\n if (options.rebuild === true && options.clear === true)\n throw new PmCliError(\n \"graph index accepts either --rebuild or --clear, not both.\",\n EXIT_CODE.USAGE,\n );\n}\n\n/**\n * Execute the durable-index maintenance subcommand: report status, delete the\n * envelope, or rebuild it and warm the counts-first analyze and audit census\n * queries so follow-up summary invocations answer from the persisted index.\n * A rebuild is also the explicit opt-in that enables persistence on\n * workspaces below the implicit item threshold.\n */\nasync function runGraphIndex(\n pmRoot: string,\n fingerprint: string,\n invocation: GraphInvocation,\n itemCount: number,\n isTerminal: (status: string) => boolean,\n options: GraphCommandOptions,\n): Promise<GraphIndexResult> {\n let action: GraphIndexResult[\"action\"] = \"status\";\n if (options.clear === true) {\n await clearDurableGraphCache(pmRoot);\n action = \"cleared\";\n }\n if (options.rebuild === true) {\n await clearDurableGraphCache(pmRoot);\n const view = await openDurableGraphCache(pmRoot, fingerprint);\n const warmInvocation: GraphInvocation = {\n assembly: invocation.assembly,\n direction: \"both\",\n exemptIsolates: [],\n exemptIsolateTypes: [],\n saveBaseline: false,\n summary: true,\n };\n for (const warm of [\"analyze\", \"audit\"] as const) {\n await persistDurableGraphResult(\n pmRoot,\n fingerprint,\n view,\n buildGraphQueryKey(warm, undefined, undefined, warmInvocation),\n executeGraphSubcommand(\n warm,\n undefined,\n undefined,\n warmInvocation,\n isTerminal,\n ),\n );\n }\n action = \"rebuilt\";\n }\n const status = await durableGraphCacheStatus(pmRoot, fingerprint);\n return {\n subcommand: \"index\",\n action,\n state: status.exists ? (status.fresh ? \"fresh\" : \"stale\") : \"absent\",\n entry_count: status.entry_count,\n item_count: itemCount,\n min_items_threshold: GRAPH_DURABLE_CACHE_MIN_ITEMS,\n persist_enabled: shouldPersistDurableGraphCache(itemCount, status.exists),\n current_fingerprint: fingerprint.slice(0, 12),\n ...(status.saved_at === undefined ? {} : { saved_at: status.saved_at }),\n ...(status.bytes === undefined ? {} : { bytes: status.bytes }),\n };\n}\n\n/**\n * Attach the change-since-baseline census delta to one audit envelope and\n * persist the current census when the caller requested a new baseline. The\n * delta always compares against the baseline as it existed before this\n * invocation, so `--save-baseline` reports drift once and then resets it.\n */\nasync function applyAuditBaseline(\n pmRoot: string,\n fingerprint: string,\n audit: GraphAuditResult,\n saveBaseline: boolean,\n): Promise<GraphAuditResult> {\n const current: RelationshipAuditSnapshot = {\n saved_at: new Date().toISOString(),\n fingerprint,\n affected_subjects_by_code: audit.affected_subjects_by_code,\n profile: audit.profile,\n };\n const stored = await loadGraphAuditBaseline(pmRoot);\n if (saveBaseline) await saveGraphAuditBaseline(pmRoot, current);\n return stored === undefined\n ? audit\n : { ...audit, baseline: diffRelationshipAuditSnapshots(stored, current) };\n}\n\n/** Persist a rebuildable query result without allowing storage failure to reject the query. */\nasync function persistDurableGraphResultBestEffort(\n pmRoot: string,\n fingerprint: string,\n view: DurableGraphCacheView,\n queryKey: string,\n result: GraphResult,\n): Promise<void> {\n try {\n await persistDurableGraphResult(\n pmRoot,\n fingerprint,\n view,\n queryKey,\n result,\n );\n } catch {\n // The in-memory result remains authoritative; the next invocation can rebuild the cache.\n }\n}\n\n/** Implements run graph for the public runtime surface of this module. */\nexport async function runGraph(\n subcommandRaw: string,\n id: string | undefined,\n target: string | undefined,\n options: GraphCommandOptions,\n global: GlobalOptions,\n): Promise<GraphResult> {\n const subcommand = parseGraphSubcommand(subcommandRaw, id, target);\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(\n `Tracker is not initialized at ${pmRoot}. Run pm init first.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n getActiveExtensionRegistrations(),\n );\n const items = await listAllItemMetadataLight(\n pmRoot,\n settings.item_format,\n typeRegistry.type_to_folder,\n undefined,\n settings.schema,\n );\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const isTerminal = (status: string): boolean =>\n isTerminalStatus(status, statusRegistry);\n assertGraphFlagScope(subcommand, options);\n const relationshipRegistry = resolveWorkspaceRelationshipKindRegistry();\n const kinds = parseKinds(options.kind, relationshipRegistry);\n const lookup = workspaceGraphCache().lookup(\n pmRoot,\n computeWorkspaceGraphFingerprint(items, isTerminal, relationshipRegistry),\n () =>\n assembleWorkspaceRelationshipGraph(\n items,\n isTerminal,\n relationshipRegistry,\n ),\n );\n const invocation: GraphInvocation = {\n assembly: lookup.assembly,\n ...(kinds === undefined ? {} : { kinds }),\n maxDepth: parseMaxDepth(options.maxDepth),\n limit: parsePositiveInteger(options.limit, \"limit\"),\n after: options.after?.trim() || undefined,\n direction: parseDirection(options.direction),\n maxPaths: parsePositiveInteger(options.maxPaths, \"max-paths\"),\n sample: parsePositiveInteger(options.sample, \"sample\"),\n exemptIsolates: normalizeIdList(options.exemptIsolate),\n exemptIsolateTypes: normalizeIdList(options.exemptIsolateType),\n saveBaseline: options.saveBaseline === true,\n summary: options.summary === true,\n };\n if (subcommand === \"index\") {\n return runGraphIndex(\n pmRoot,\n lookup.fingerprint,\n invocation,\n items.length,\n isTerminal,\n options,\n );\n }\n const root = ROOTED_SUBCOMMANDS.has(subcommand)\n ? canonicalizeGraphId(invocation.assembly, id!)\n : undefined;\n const pathsTarget =\n subcommand === \"paths\"\n ? canonicalizeGraphId(invocation.assembly, target!)\n : undefined;\n const queryKey = buildGraphQueryKey(\n subcommand,\n root,\n pathsTarget,\n invocation,\n );\n const durableView = await openDurableGraphCache(pmRoot, lookup.fingerprint);\n const durableValue = durableView.results[queryKey];\n const memo = lookup.memoize(queryKey, () =>\n durableValue !== undefined\n ? (structuredClone(durableValue) as GraphResult)\n : executeGraphSubcommand(\n subcommand,\n root,\n pathsTarget,\n invocation,\n isTerminal,\n ),\n );\n const persistEnabled = shouldPersistDurableGraphCache(\n items.length,\n durableView.exists,\n );\n if (!memo.reused && durableValue === undefined && persistEnabled) {\n await persistDurableGraphResultBestEffort(\n pmRoot,\n lookup.fingerprint,\n durableView,\n queryKey,\n memo.value,\n );\n }\n const value =\n memo.value.subcommand === \"audit\"\n ? await applyAuditBaseline(\n pmRoot,\n lookup.fingerprint,\n memo.value,\n invocation.saveBaseline,\n )\n : memo.value;\n value.cache = {\n fingerprint: lookup.fingerprint.slice(0, 12),\n assembly: lookup.assemblyReused ? \"hit\" : \"miss\",\n result: memo.reused ? \"hit\" : \"miss\",\n durable:\n durableValue !== undefined ? \"hit\" : persistEnabled ? \"miss\" : \"off\",\n };\n return value;\n}\n"],"names":[],"mappings":"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","debugId":"4cc511f9-999c-5519-bd96-d807c8e01a47"}
|
package/dist/sdk/index.d.ts
CHANGED
|
@@ -30,9 +30,12 @@ export type { CommanderOptionAliasContract, CommanderOptionRegistrationContract,
|
|
|
30
30
|
export { ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS, APPEND_FLAG_CONTRACTS, CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS, CALENDAR_FLAG_CONTRACTS, CLAIM_FLAG_CONTRACTS, CLOSE_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, CLOSE_TASK_FLAG_CONTRACTS, COMMENTS_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, CONFIG_FLAG_CONTRACTS, CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS, CONTEXT_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, COPY_FLAG_CONTRACTS, CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, CREATE_COMMANDER_STRING_OPTION_CONTRACTS, CREATE_FLAG_CONTRACTS, DELETE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, DOCS_FLAG_CONTRACTS, EVAL_FLAG_CONTRACTS, EXTENSION_ACTIVATE_FLAG_CONTRACTS, EXTENSION_ADOPT_ALL_FLAG_CONTRACTS, EXTENSION_ADOPT_FLAG_CONTRACTS, EXTENSION_CATALOG_FLAG_CONTRACTS, EXTENSION_DEACTIVATE_FLAG_CONTRACTS, EXTENSION_DESCRIBE_FLAG_CONTRACTS, EXTENSION_DOCTOR_FLAG_CONTRACTS, EXTENSION_EXPLORE_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, EXTENSION_INIT_FLAG_CONTRACTS, EXTENSION_INSTALL_FLAG_CONTRACTS, EXTENSION_MANAGE_FLAG_CONTRACTS, EXTENSION_RELOAD_FLAG_CONTRACTS, EXTENSION_SCOPE_FLAG_CONTRACTS, EXTENSION_UNINSTALL_FLAG_CONTRACTS, FILES_FLAG_CONTRACTS, FOCUS_FLAG_CONTRACTS, GC_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, HISTORY_COMPACT_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, HISTORY_REDACT_FLAG_CONTRACTS, HISTORY_REPAIR_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, INSTALL_FLAG_CONTRACTS, LEARNINGS_FLAG_CONTRACTS, LIST_COMMANDER_STRING_OPTION_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, MEET_FLAG_CONTRACTS, NEXT_COMMANDER_STRING_OPTION_CONTRACTS, NEXT_FLAG_CONTRACTS, NOTES_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PACKAGE_INIT_FLAG_CONTRACTS, PAUSE_TASK_FLAG_CONTRACTS, PLAN_FLAG_CONTRACTS, PM_CORE_COMMAND_NAMES, PM_EXTENSION_CAPABILITY_CONTRACTS, PM_EXTENSION_POLICY_MODE_CONTRACTS, PM_EXTENSION_POLICY_SURFACE_CONTRACTS, PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS, PM_EXTENSION_SERVICE_NAME_CONTRACTS, PM_EXTENSION_TRUST_MODE_CONTRACTS, PM_PROVIDER_TOOL_PARAMETERS_SCHEMA, PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION, PM_TOOL_ACTIONS, PM_TOOL_ACTION_PARAMETER_CONTRACTS, PM_TOOL_PARAMETERS_SCHEMA, PM_TOOL_PARAMETERS_SCHEMA_MAJOR, PM_TOOL_PARAMETERS_SCHEMA_VERSION, PROFILE_FLAG_CONTRACTS, REINDEX_FLAG_CONTRACTS, RELEASE_FLAG_CONTRACTS, REMIND_FLAG_CONTRACTS, RESTORE_FLAG_CONTRACTS, SCHEMA_FLAG_CONTRACTS, SEARCH_COMMANDER_STRING_OPTION_CONTRACTS, SEARCH_FLAG_CONTRACTS, START_TASK_FLAG_CONTRACTS, STATS_FLAG_CONTRACTS, SUBCOMMAND_GLOBAL_FLAG_CONTRACTS, TELEMETRY_FLAG_CONTRACTS, TEST_ALL_FLAG_CONTRACTS, TEST_FLAG_CONTRACTS, TEST_RUNS_FLAG_CONTRACTS, TOOL_ACTIVITY_OPTION_CONTRACTS, TOOL_AGGREGATE_OPTION_CONTRACTS, TOOL_CALENDAR_OPTION_CONTRACTS, TOOL_CLOSE_MANY_FILTER_OPTION_CONTRACTS, TOOL_CONTEXT_OPTION_CONTRACTS, TOOL_CREATE_OPTION_CONTRACTS, TOOL_DEPS_OPTION_CONTRACTS, TOOL_LIST_FILTER_OPTION_CONTRACTS, TOOL_SEARCH_FILTER_OPTION_CONTRACTS, TOOL_SHARED_CREATE_UPDATE_OPTION_CONTRACTS, TOOL_UPDATE_MANY_FILTER_OPTION_CONTRACTS, TOOL_UPDATE_OPTION_CONTRACTS, UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, UPDATE_COMMANDER_STRING_OPTION_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, UPGRADE_FLAG_CONTRACTS, compactFlagAliasContracts, isPmExtensionCapabilityContract, isPmExtensionPolicyModeContract, isPmExtensionPolicySurfaceContract, isPmExtensionServiceNameContract, isPmToolAction, readFirstStringFromCommanderOptions, readFirstValueFromCommanderOptions, readStringArrayFromCommanderOptions, resolveSubcommandFlagContractsForCommand, toCompletionFlagString, withFlagAliasMetadata, } from "./cli-contracts.js";
|
|
31
31
|
export type { CliFlagContract, OptionsFromContracts, PmActionSchemaContract, PmBulkMutationControlOptions, PmBulkMutationFilterOptions, PmCloseActionOptions, PmCloseManyActionOptions, PmCreateActionOptions, PmMutationAttributionOptions, PmOptionScalar, PmUpdateActionOptions, PmUpdateManyActionOptions, PmExtensionCapabilityContract, PmExtensionPolicyModeContract, PmExtensionPolicySurfaceContract, PmExtensionSandboxProfileContract, PmExtensionServiceNameContract, PmExtensionTrustModeContract, PmToolAction, ToolOptionFlagContract, } from "./cli-contracts.js";
|
|
32
32
|
export * from "./compose.js";
|
|
33
|
+
export * from "./compile-cache.js";
|
|
33
34
|
export * from "./context-relevance.js";
|
|
35
|
+
export * from "./context-signal-store.js";
|
|
34
36
|
export * from "./context-packing.js";
|
|
35
37
|
export * from "./context-usage.js";
|
|
38
|
+
export * from "./dependency-provenance.js";
|
|
36
39
|
export * from "./history-compact.js";
|
|
37
40
|
export * from "./history-read.js";
|
|
38
41
|
export * from "./history-redact.js";
|
|
@@ -52,9 +55,11 @@ export * from "./output.js";
|
|
|
52
55
|
export * from "./relationship-analytics.js";
|
|
53
56
|
export * from "./relationship-context.js";
|
|
54
57
|
export * from "./relationship-history.js";
|
|
58
|
+
export * from "./relationship-migration.js";
|
|
55
59
|
export * from "./workspace-transaction.js";
|
|
56
60
|
export * from "./workspace-transaction-gc.js";
|
|
57
61
|
export * from "./item-transaction.js";
|
|
62
|
+
export * from "./item-metadata-index.js";
|
|
58
63
|
export * from "./structured-mutations.js";
|
|
59
64
|
export * from "./runtime-primitives.js";
|
|
60
65
|
export * from "./error-runtime.js";
|
package/dist/sdk/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Defines public SDK APIs and package-author helpers for Index.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
7
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5ee16e71-b669-567c-b162-4e78f1a28c63")}catch(e){}}();
|
|
8
8
|
export { isErrnoError, limitAnnotationEntries, parseAnnotationTextInput, readAnnotationEntries, resolveAnnotationInput, resolveAnnotationIndex, runAnnotationCommand, wrapOwnershipConflict, } from "./annotations.js";
|
|
9
9
|
export { inspectHistoryAuthorStream, scanHistoryAuthorAttribution, } from "./author-attribution.js";
|
|
10
10
|
export { createPmCliProgram } from "./cli-program.js";
|
|
@@ -30,9 +30,12 @@ export { RESERVED_ITEM_FIELD_NAMES } from "../core/extensions/item-fields.js";
|
|
|
30
30
|
export { PM_PACKAGE_CONVENTIONAL_RESOURCE_ROOTS, PM_PACKAGE_RESOURCE_KINDS, collectPackageExtensionDirectories, readPmPackageManifest, } from "../core/packages/manifest.js";
|
|
31
31
|
export { ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS, APPEND_FLAG_CONTRACTS, CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS, CALENDAR_FLAG_CONTRACTS, CLAIM_FLAG_CONTRACTS, CLOSE_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, CLOSE_TASK_FLAG_CONTRACTS, COMMENTS_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, CONFIG_FLAG_CONTRACTS, CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS, CONTEXT_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, COPY_FLAG_CONTRACTS, CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, CREATE_COMMANDER_STRING_OPTION_CONTRACTS, CREATE_FLAG_CONTRACTS, DELETE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, DOCS_FLAG_CONTRACTS, EVAL_FLAG_CONTRACTS, EXTENSION_ACTIVATE_FLAG_CONTRACTS, EXTENSION_ADOPT_ALL_FLAG_CONTRACTS, EXTENSION_ADOPT_FLAG_CONTRACTS, EXTENSION_CATALOG_FLAG_CONTRACTS, EXTENSION_DEACTIVATE_FLAG_CONTRACTS, EXTENSION_DESCRIBE_FLAG_CONTRACTS, EXTENSION_DOCTOR_FLAG_CONTRACTS, EXTENSION_EXPLORE_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, EXTENSION_INIT_FLAG_CONTRACTS, EXTENSION_INSTALL_FLAG_CONTRACTS, EXTENSION_MANAGE_FLAG_CONTRACTS, EXTENSION_RELOAD_FLAG_CONTRACTS, EXTENSION_SCOPE_FLAG_CONTRACTS, EXTENSION_UNINSTALL_FLAG_CONTRACTS, FILES_FLAG_CONTRACTS, FOCUS_FLAG_CONTRACTS, GC_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, HISTORY_COMPACT_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, HISTORY_REDACT_FLAG_CONTRACTS, HISTORY_REPAIR_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, INSTALL_FLAG_CONTRACTS, LEARNINGS_FLAG_CONTRACTS, LIST_COMMANDER_STRING_OPTION_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, MEET_FLAG_CONTRACTS, NEXT_COMMANDER_STRING_OPTION_CONTRACTS, NEXT_FLAG_CONTRACTS, NOTES_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PACKAGE_INIT_FLAG_CONTRACTS, PAUSE_TASK_FLAG_CONTRACTS, PLAN_FLAG_CONTRACTS, PM_CORE_COMMAND_NAMES, PM_EXTENSION_CAPABILITY_CONTRACTS, PM_EXTENSION_POLICY_MODE_CONTRACTS, PM_EXTENSION_POLICY_SURFACE_CONTRACTS, PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS, PM_EXTENSION_SERVICE_NAME_CONTRACTS, PM_EXTENSION_TRUST_MODE_CONTRACTS, PM_PROVIDER_TOOL_PARAMETERS_SCHEMA, PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION, PM_TOOL_ACTIONS, PM_TOOL_ACTION_PARAMETER_CONTRACTS, PM_TOOL_PARAMETERS_SCHEMA, PM_TOOL_PARAMETERS_SCHEMA_MAJOR, PM_TOOL_PARAMETERS_SCHEMA_VERSION, PROFILE_FLAG_CONTRACTS, REINDEX_FLAG_CONTRACTS, RELEASE_FLAG_CONTRACTS, REMIND_FLAG_CONTRACTS, RESTORE_FLAG_CONTRACTS, SCHEMA_FLAG_CONTRACTS, SEARCH_COMMANDER_STRING_OPTION_CONTRACTS, SEARCH_FLAG_CONTRACTS, START_TASK_FLAG_CONTRACTS, STATS_FLAG_CONTRACTS, SUBCOMMAND_GLOBAL_FLAG_CONTRACTS, TELEMETRY_FLAG_CONTRACTS, TEST_ALL_FLAG_CONTRACTS, TEST_FLAG_CONTRACTS, TEST_RUNS_FLAG_CONTRACTS, TOOL_ACTIVITY_OPTION_CONTRACTS, TOOL_AGGREGATE_OPTION_CONTRACTS, TOOL_CALENDAR_OPTION_CONTRACTS, TOOL_CLOSE_MANY_FILTER_OPTION_CONTRACTS, TOOL_CONTEXT_OPTION_CONTRACTS, TOOL_CREATE_OPTION_CONTRACTS, TOOL_DEPS_OPTION_CONTRACTS, TOOL_LIST_FILTER_OPTION_CONTRACTS, TOOL_SEARCH_FILTER_OPTION_CONTRACTS, TOOL_SHARED_CREATE_UPDATE_OPTION_CONTRACTS, TOOL_UPDATE_MANY_FILTER_OPTION_CONTRACTS, TOOL_UPDATE_OPTION_CONTRACTS, UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, UPDATE_COMMANDER_STRING_OPTION_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, UPGRADE_FLAG_CONTRACTS, compactFlagAliasContracts, isPmExtensionCapabilityContract, isPmExtensionPolicyModeContract, isPmExtensionPolicySurfaceContract, isPmExtensionServiceNameContract, isPmToolAction, readFirstStringFromCommanderOptions, readFirstValueFromCommanderOptions, readStringArrayFromCommanderOptions, resolveSubcommandFlagContractsForCommand, toCompletionFlagString, withFlagAliasMetadata, } from "./cli-contracts.js";
|
|
32
32
|
export * from "./compose.js";
|
|
33
|
+
export * from "./compile-cache.js";
|
|
33
34
|
export * from "./context-relevance.js";
|
|
35
|
+
export * from "./context-signal-store.js";
|
|
34
36
|
export * from "./context-packing.js";
|
|
35
37
|
export * from "./context-usage.js";
|
|
38
|
+
export * from "./dependency-provenance.js";
|
|
36
39
|
export * from "./history-compact.js";
|
|
37
40
|
export * from "./history-read.js";
|
|
38
41
|
export * from "./history-redact.js";
|
|
@@ -52,9 +55,11 @@ export * from "./output.js";
|
|
|
52
55
|
export * from "./relationship-analytics.js";
|
|
53
56
|
export * from "./relationship-context.js";
|
|
54
57
|
export * from "./relationship-history.js";
|
|
58
|
+
export * from "./relationship-migration.js";
|
|
55
59
|
export * from "./workspace-transaction.js";
|
|
56
60
|
export * from "./workspace-transaction-gc.js";
|
|
57
61
|
export * from "./item-transaction.js";
|
|
62
|
+
export * from "./item-metadata-index.js";
|
|
58
63
|
export * from "./structured-mutations.js";
|
|
59
64
|
export * from "./runtime-primitives.js";
|
|
60
65
|
export * from "./error-runtime.js";
|
|
@@ -102,4 +107,4 @@ export { EXTENSION_CAPABILITY_REGISTRATION_SURFACES, collectUsedExtensionCapabil
|
|
|
102
107
|
*/
|
|
103
108
|
export { renderExtensionSurfaceMarkdown, } from "../core/extensions/activation-summary-markdown.js";
|
|
104
109
|
//# sourceMappingURL=index.js.map
|
|
105
|
-
//# debugId=
|
|
110
|
+
//# debugId=5ee16e71-b669-567c-b162-4e78f1a28c63
|