@unbrained/pm-cli 2026.7.18 → 2026.7.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +17 -0
- package/dist/cli/commands/claim.js +6 -4
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/comments.js +5 -2
- package/dist/cli/commands/comments.js.map +1 -1
- package/dist/cli/commands/context.d.ts +10 -1
- package/dist/cli/commands/context.js +44 -6
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/create.js +15 -4
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/next.js +13 -3
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/update.js +14 -3
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/error-guidance.js +23 -4
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/extension-command-help.d.ts +11 -0
- package/dist/cli/extension-command-help.js +62 -2
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/main.d.ts +1 -0
- package/dist/cli/main.js +16 -11
- package/dist/cli/main.js.map +1 -1
- package/dist/cli-bundle/bundle-manifest.json +326 -350
- package/dist/cli-bundle/chunks/{append-5YF3TO7I.js → append-MBXHNWSX.js} +5 -5
- package/dist/cli-bundle/chunks/append-XUYF7NON.js +11 -0
- package/dist/cli-bundle/chunks/{chunk-BIRYX32V.js → chunk-2UCG5H6B.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VE6ZSTQW.js → chunk-2XPDCXK5.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-I3INI567.js → chunk-3EZZTFL2.js} +909 -124
- package/dist/cli-bundle/chunks/chunk-3EZZTFL2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GLZKZON6.js → chunk-3HSRP6T2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XWBD6DSR.js → chunk-3KPNOZOH.js} +23 -23
- package/dist/cli-bundle/chunks/{chunk-MR4SHYR4.js → chunk-3QNUDDY2.js} +104 -23
- package/dist/cli-bundle/chunks/chunk-3QNUDDY2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SIPOACV5.js → chunk-46Z6FAVP.js} +888 -124
- package/dist/cli-bundle/chunks/chunk-46Z6FAVP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HO4DLBNK.js → chunk-4M6RZJXF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RXPQ5Q23.js → chunk-4PSJVGRE.js} +11 -11
- package/dist/cli-bundle/chunks/{chunk-ADXDCAKP.js → chunk-5S6IZXK7.js} +146 -32
- package/dist/cli-bundle/chunks/{chunk-IL5SPRMH.js.map → chunk-5S6IZXK7.js.map} +7 -1
- package/dist/cli-bundle/chunks/chunk-66SRNEBK.js +143 -0
- package/dist/cli-bundle/chunks/chunk-66SRNEBK.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YFE7JHX3.js → chunk-6BNV3G6C.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-43UMFKCK.js → chunk-6V4T4RD3.js} +23 -23
- package/dist/cli-bundle/chunks/chunk-77XFQRTD.js +140 -0
- package/dist/cli-bundle/chunks/chunk-77XFQRTD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-EHJFUOXL.js → chunk-7B7IHMLH.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-I7DIDUSP.js → chunk-7CHWLT2J.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-L6FVNR7X.js → chunk-A3GAQLBH.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-B57RJHBZ.js → chunk-A4FVWFZY.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-D52ZN3BF.js → chunk-A5EQPNV7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TZAE66GQ.js → chunk-AGEBQRBG.js} +15 -15
- package/dist/cli-bundle/chunks/{chunk-WU3KAN6A.js → chunk-AQUNTB7G.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OGVTB5VO.js → chunk-AR24KW26.js} +237 -36
- package/dist/cli-bundle/chunks/chunk-AR24KW26.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XWYQ2LT4.js → chunk-BBGR4FKQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-HTXXXF45.js → chunk-BDC4TW4B.js} +98 -24
- package/dist/cli-bundle/chunks/chunk-BDC4TW4B.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2FUOXSRN.js → chunk-BFJP4VYC.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-633PKXLT.js → chunk-BZKE2O5V.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-XPUTSGJU.js → chunk-CZA2DXCV.js} +230 -36
- package/dist/cli-bundle/chunks/chunk-CZA2DXCV.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KX62NMZC.js → chunk-D35WYXWC.js} +626 -5
- package/dist/cli-bundle/chunks/chunk-D35WYXWC.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-DOASIOQR.js +289 -0
- package/dist/cli-bundle/chunks/chunk-DOASIOQR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-L337QKWJ.js → chunk-DUDLSQFG.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-BVLOMU6O.js → chunk-E7KBMWEF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3QDR6ZLU.js → chunk-EAV3P54W.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-3QDR6ZLU.js.map → chunk-EAV3P54W.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WQXRZMFN.js → chunk-EEECAV5M.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-35FHWD4C.js → chunk-EI3UIMZM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-RGMWJLXF.js → chunk-EVAN5VJA.js} +8 -5
- package/dist/cli-bundle/chunks/{chunk-RGMWJLXF.js.map → chunk-EVAN5VJA.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PT7MCCGD.js → chunk-FIUTBFC6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7H5NNCJ5.js → chunk-FQF6VVPH.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-6DYOZS6C.js → chunk-FQO5THHM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5HGZKQUL.js → chunk-FQODDTE7.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-67RO3H4N.js → chunk-G33XIMRT.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-D53RTYVI.js → chunk-GFZB5CLP.js} +20 -10
- package/dist/cli-bundle/chunks/chunk-GFZB5CLP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QWBKN3QC.js → chunk-GKCEEXMA.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-DG2EQRIH.js → chunk-GRDK25BN.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-FXFCFL73.js → chunk-H3YKUVDR.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-IL5SPRMH.js → chunk-IEMXESIS.js} +123 -16
- package/dist/cli-bundle/chunks/chunk-IEMXESIS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ARGDWQ4J.js → chunk-IGBBTPM5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QPGQNLPI.js → chunk-IR3GOO6E.js} +3842 -4109
- package/dist/cli-bundle/chunks/chunk-IR3GOO6E.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FY4RLHSC.js → chunk-IRJ6F23W.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-66MKH7SZ.js → chunk-IXG5CMBR.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-F3VC3GOV.js → chunk-JBW2S2C6.js} +2090 -253
- package/dist/cli-bundle/chunks/chunk-JBW2S2C6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-7UCY6DR5.js → chunk-JPWUZOMR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FVNWHUME.js → chunk-K2L6FZBX.js} +8 -8
- package/dist/cli-bundle/chunks/chunk-KGPLSHJD.js +286 -0
- package/dist/cli-bundle/chunks/chunk-KGPLSHJD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-YQEZWI3R.js → chunk-KZ5AC6B5.js} +5 -3
- package/dist/cli-bundle/chunks/chunk-KZ5AC6B5.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-X2MGQMZO.js → chunk-LT5UWU7H.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KH6QAHME.js → chunk-M4B4RK4J.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QRZNCRNA.js → chunk-MI3346YW.js} +377 -240
- package/dist/cli-bundle/chunks/chunk-MI3346YW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2XOSFSTH.js → chunk-MQOSMBWV.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-YIIIAKCE.js → chunk-MRXAHR4B.js} +28 -22
- package/dist/cli-bundle/chunks/chunk-MRXAHR4B.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7R6UIHYY.js → chunk-N2TEEOXJ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-NTRQLE2R.js → chunk-N7FCFJ76.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-37DRDP2B.js → chunk-NPEYH6CE.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-GKPCTQYG.js → chunk-NTS2RKHN.js} +3942 -4216
- package/dist/cli-bundle/chunks/chunk-NTS2RKHN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-6VHUGVNP.js → chunk-ODEIDKGW.js} +2062 -246
- package/dist/cli-bundle/chunks/chunk-ODEIDKGW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2CXL335K.js → chunk-OK7VSX3N.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NNANAWFH.js → chunk-OKPZDH43.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-G6MYGULG.js → chunk-OKWJUL6F.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-HPAYDSR2.js → chunk-P24ZU5QV.js} +27 -21
- package/dist/cli-bundle/chunks/chunk-P24ZU5QV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TGBTLGPX.js → chunk-Q4PSG2GV.js} +13 -4
- package/dist/cli-bundle/chunks/{chunk-TGBTLGPX.js.map → chunk-Q4PSG2GV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-5UKQLQM2.js → chunk-Q5NHJ6RO.js} +6 -4
- package/dist/cli-bundle/chunks/chunk-Q5NHJ6RO.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-D5XHO4Q7.js → chunk-Q6JPYR7I.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-P22HGFFI.js → chunk-QFG4MB7P.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-P22HGFFI.js.map → chunk-QFG4MB7P.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-IE5KRAKN.js → chunk-QQ77W23U.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-M7MVOKVV.js → chunk-QYGK2XQ3.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-646MQXFW.js → chunk-RLLOZAM2.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-646MQXFW.js.map → chunk-RLLOZAM2.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-X5YCTFKT.js → chunk-RWAIRGBC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-W5E2UUSH.js → chunk-RX53WHFI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-R5XTTZSJ.js → chunk-SBW7EQC4.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-TM5CIO3F.js → chunk-SGJB6PXA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-DDFGYUCQ.js → chunk-STBCBDKF.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-EX7OQT3Y.js → chunk-SUNZKVAH.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-EX7OQT3Y.js.map → chunk-SUNZKVAH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-FHOBCGQO.js → chunk-SVAWG7EE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6O44IN44.js → chunk-T6MOTLOJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HSYV4ZYT.js → chunk-TELI67UP.js} +9 -6
- package/dist/cli-bundle/chunks/{chunk-HSYV4ZYT.js.map → chunk-TELI67UP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-EWIT5WIC.js → chunk-U6RYD446.js} +11 -11
- package/dist/cli-bundle/chunks/{chunk-E4FXM2XB.js → chunk-UE7LK3RE.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-N33FD2UI.js → chunk-UNNCT5QY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2IPNL3DR.js → chunk-UOIFZ66L.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-LSOWTLEM.js → chunk-UU6EP25G.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HYTOJW2Q.js → chunk-UW6HCMP2.js} +15 -15
- package/dist/cli-bundle/chunks/{chunk-47HXN6RX.js → chunk-UWAQI3B7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-YKFHF37B.js → chunk-V4QHAMI5.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VAHZIPWS.js → chunk-VA3H7VVC.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-XC2HEEOV.js → chunk-VFA5EIEN.js} +21 -11
- package/dist/cli-bundle/chunks/chunk-VFA5EIEN.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-TLWJP5BF.js → chunk-VQOG2ETB.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-H5IOT54C.js → chunk-VSQE43NO.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-BDA35QG5.js → chunk-W6IEJXNC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WACRQ26A.js → chunk-WCBB6VI3.js} +637 -9
- package/dist/cli-bundle/chunks/chunk-WCBB6VI3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-OWP6QFBV.js → chunk-XDWXPG2E.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-CKX4WOPC.js → chunk-XKVHL3MB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WL3SS45P.js → chunk-XVB6BATY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NVZ6NVHJ.js → chunk-XXWDEQ6O.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-ILVOOAT4.js → chunk-Y2VSGFT4.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-NCVT6XEL.js → chunk-YG56M3NE.js} +11 -11
- package/dist/cli-bundle/chunks/{chunk-AFGKSHAM.js → chunk-YGEA4CLH.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-AXRT7K5V.js → chunk-YIC5NGXF.js} +11 -11
- package/dist/cli-bundle/chunks/{chunk-DHNG452T.js → chunk-ZF52NVRT.js} +396 -245
- package/dist/cli-bundle/chunks/chunk-ZF52NVRT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XXLXJL7V.js → chunk-ZUCBPXNA.js} +4 -4
- package/dist/cli-bundle/chunks/{close-X3CF6FQP.js → close-7NWA3GLA.js} +5 -5
- package/dist/cli-bundle/chunks/close-ZZCDDWJT.js +12 -0
- package/dist/cli-bundle/chunks/close-many-QCZHFCON.js +23 -0
- package/dist/cli-bundle/chunks/{close-many-J7A5EHOQ.js → close-many-YALQ7AXS.js} +14 -14
- package/dist/cli-bundle/chunks/comments-FMQNYPSZ.js +13 -0
- package/dist/cli-bundle/chunks/{comments-TMHMALA5.js → comments-SQIQ5WYR.js} +7 -7
- package/dist/cli-bundle/chunks/copy-GI3RCVZP.js +9 -0
- package/dist/cli-bundle/chunks/{copy-FWQA5OU4.js → copy-YDAMENCP.js} +4 -4
- package/dist/cli-bundle/chunks/{create-AQ5SIGZC.js → create-JSL6CXU3.js} +11 -9
- package/dist/cli-bundle/chunks/create-LXMLYJNM.js +29 -0
- package/dist/cli-bundle/chunks/delete-5DFAXJNI.js +10 -0
- package/dist/cli-bundle/chunks/{delete-YYYFOSEA.js → delete-IGVOZEU2.js} +4 -4
- package/dist/cli-bundle/chunks/{deps-NIIKXLPB.js → deps-BQAXUQAK.js} +6 -6
- package/dist/cli-bundle/chunks/{deps-MQ4ZIGZB.js → deps-CBPPSS6J.js} +6 -6
- package/dist/cli-bundle/chunks/docs-KCWPLQOV.js +14 -0
- package/dist/cli-bundle/chunks/{docs-53NUGMIQ.js → docs-NS2AZWCN.js} +7 -7
- package/dist/cli-bundle/chunks/{files-3PXGXYDB.js → files-PVWEPT5J.js} +7 -7
- package/dist/cli-bundle/chunks/{files-EGLKHD7O.js → files-XUUBQ76I.js} +7 -7
- package/dist/cli-bundle/chunks/focus-3EJVFI3D.js +10 -0
- package/dist/cli-bundle/chunks/{focus-SRPASFTN.js → focus-DHBHKK3E.js} +5 -5
- package/dist/cli-bundle/chunks/{history-compact-G4DULDCX.js → history-compact-3TNPYVFG.js} +6 -6
- package/dist/cli-bundle/chunks/history-compact-JHYVDYLW.js +16 -0
- package/dist/cli-bundle/chunks/{history-redact-IUSJ6X3E.js → history-redact-ELRL73XN.js} +4 -4
- package/dist/cli-bundle/chunks/{history-redact-THHGRQXV.js → history-redact-KKFDICCF.js} +4 -4
- package/dist/cli-bundle/chunks/{history-repair-LUQWRS7X.js → history-repair-J7WKZFAG.js} +6 -6
- package/dist/cli-bundle/chunks/history-repair-REMI7DDI.js +16 -0
- package/dist/cli-bundle/chunks/learnings-O6V5WDCV.js +13 -0
- package/dist/cli-bundle/chunks/{learnings-2MRNBFJF.js → learnings-X4D6JCCG.js} +7 -7
- package/dist/cli-bundle/chunks/{notes-73JWKWUD.js → notes-UQC6VS6N.js} +7 -7
- package/dist/cli-bundle/chunks/notes-ZSZREWZA.js +13 -0
- package/dist/cli-bundle/chunks/{plan-AZPMCG37.js → plan-5GKRBJJO.js} +12 -10
- package/dist/cli-bundle/chunks/plan-EZW2YDDY.js +26 -0
- package/dist/cli-bundle/chunks/{profile-AVCIIZID.js → profile-5PQAPCLF.js} +10 -10
- package/dist/cli-bundle/chunks/{profile-LFYO3HHX.js → profile-CW4BD3FO.js} +10 -10
- package/dist/cli-bundle/chunks/{register-list-query-UKMF55FT.js → register-list-query-HTDQE6VI.js} +24 -24
- package/dist/cli-bundle/chunks/{register-list-query-MZUF2EEC.js → register-list-query-PHIPDFP2.js} +24 -24
- package/dist/cli-bundle/chunks/{register-mutation-T6RVNJC4.js → register-mutation-BLEWM5I6.js} +32 -32
- package/dist/cli-bundle/chunks/{register-mutation-2PBW2GEX.js → register-mutation-OTYHR7J6.js} +32 -32
- package/dist/cli-bundle/chunks/{register-operations-KHZYR6MG.js → register-operations-AMCUFYEW.js} +38 -40
- package/dist/cli-bundle/chunks/{register-operations-KHZYR6MG.js.map → register-operations-AMCUFYEW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-WPQ2LWZJ.js → register-operations-MRLHOZYR.js} +36 -38
- package/dist/cli-bundle/chunks/{register-operations-WPQ2LWZJ.js.map → register-operations-MRLHOZYR.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-PGDNOXDQ.js → register-setup-N2FOSWAG.js} +15 -17
- package/dist/cli-bundle/chunks/{register-setup-PGDNOXDQ.js.map → register-setup-N2FOSWAG.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-TDN7WAO6.js → register-setup-ZVKTDL4G.js} +17 -19
- package/dist/cli-bundle/chunks/{register-setup-TDN7WAO6.js.map → register-setup-ZVKTDL4G.js.map} +1 -1
- package/dist/cli-bundle/chunks/restore-A55MLFAI.js +14 -0
- package/dist/cli-bundle/chunks/{restore-E3PRGDN3.js → restore-HEQAG6EK.js} +6 -6
- package/dist/cli-bundle/chunks/{schema-5JNFQFUW.js → schema-MAXAIHEC.js} +6 -6
- package/dist/cli-bundle/chunks/{schema-TMIW4XZC.js → schema-Q5DAWJ2S.js} +6 -6
- package/dist/cli-bundle/chunks/update-5DTSCWVF.js +23 -0
- package/dist/cli-bundle/chunks/{update-SQYZA3ZW.js → update-DWFXXJKP.js} +15 -13
- package/dist/cli-bundle/chunks/update-many-6T4ZLZS7.js +34 -0
- package/dist/cli-bundle/chunks/update-many-MYRK6VBJ.js +38 -0
- package/dist/cli-bundle/main.js +152 -29
- package/dist/cli-bundle/main.js.map +3 -3
- package/dist/cli-bundle/sdk-runtime.js +72 -75
- package/dist/cli-bundle/sdk-testing.js +8 -8
- package/dist/cli-bundle/sdk.js +288 -642
- package/dist/cli-bundle/sdk.js.map +4 -4
- package/dist/core/extensions/activation-summary.d.ts +2 -0
- package/dist/core/extensions/activation-summary.js +7 -2
- package/dist/core/extensions/activation-summary.js.map +1 -1
- package/dist/core/extensions/capability-usage.d.ts +1 -1
- package/dist/core/extensions/capability-usage.js +5 -2
- package/dist/core/extensions/capability-usage.js.map +1 -1
- package/dist/core/extensions/extension-hook-runtime.js +3 -2
- package/dist/core/extensions/extension-hook-runtime.js.map +1 -1
- package/dist/core/extensions/extension-registries.js +3 -2
- package/dist/core/extensions/extension-registries.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +38 -1
- package/dist/core/extensions/extension-types.js +3 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/loader.js +36 -2
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/store/item-store.d.ts +4 -1
- package/dist/core/store/item-store.js +3 -3
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/paths.d.ts +2 -0
- package/dist/core/store/paths.js +26 -3
- package/dist/core/store/paths.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/compose.d.ts +3 -0
- package/dist/sdk/compose.js +14 -2
- package/dist/sdk/compose.js.map +1 -1
- package/dist/sdk/dependencies.js +3 -3
- package/dist/sdk/dependencies.js.map +1 -1
- package/dist/sdk/extension-command-context.d.ts +10 -0
- package/dist/sdk/extension-command-context.js +30 -0
- package/dist/sdk/extension-command-context.js.map +1 -0
- package/dist/sdk/graph/assembly.js +14 -4
- package/dist/sdk/graph/assembly.js.map +1 -1
- package/dist/sdk/graph/index.d.ts +1 -0
- package/dist/sdk/graph/index.js +3 -2
- package/dist/sdk/graph/index.js.map +1 -1
- package/dist/sdk/graph/mutation-advisory.d.ts +20 -0
- package/dist/sdk/graph/mutation-advisory.js +80 -0
- package/dist/sdk/graph/mutation-advisory.js.map +1 -0
- package/dist/sdk/graph/run.d.ts +5 -1
- package/dist/sdk/graph/run.js +11 -3
- package/dist/sdk/graph/run.js.map +1 -1
- package/dist/sdk/index.d.ts +4 -1
- package/dist/sdk/index.js +5 -2
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/ownership-source.d.ts +2 -0
- package/dist/sdk/ownership-source.js +22 -0
- package/dist/sdk/ownership-source.js.map +1 -0
- package/dist/sdk/relationship-history.d.ts +38 -0
- package/dist/sdk/relationship-history.js +60 -2
- package/dist/sdk/relationship-history.js.map +1 -1
- package/dist/sdk/relationships.js +49 -8
- package/dist/sdk/relationships.js.map +1 -1
- package/dist/sdk/runtime-input.js +3 -2
- package/dist/sdk/runtime-input.js.map +1 -1
- package/dist/sdk/runtime.d.ts +2 -0
- package/dist/sdk/runtime.js +19 -2
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/tracker-root-discovery.d.ts +6 -0
- package/dist/sdk/tracker-root-discovery.js +10 -0
- package/dist/sdk/tracker-root-discovery.js.map +1 -0
- package/dist/sdk/workspace-transaction.d.ts +83 -0
- package/dist/sdk/workspace-transaction.js +364 -0
- package/dist/sdk/workspace-transaction.js.map +1 -0
- package/docs/AGENT_UX_CONTRACTS.md +41 -0
- package/docs/EXTENSIONS.md +4 -4
- package/docs/README.md +1 -0
- package/docs/SDK.md +102 -1
- package/marketplace.json +2 -2
- package/package.json +1 -1
- 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/GAP_REPORT.md +31 -0
- package/packages/pm-vcs/README.md +62 -0
- package/packages/pm-vcs/extensions/vcs/index.ts +745 -0
- package/packages/pm-vcs/extensions/vcs/manifest.json +19 -0
- package/packages/pm-vcs/extensions/vcs/package.json +3 -0
- package/packages/pm-vcs/package.json +55 -0
- 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-JHO5K6RP.js +0 -11
- package/dist/cli-bundle/chunks/chunk-2BX74BAS.js +0 -125
- package/dist/cli-bundle/chunks/chunk-2BX74BAS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-3CUQZNQ6.js +0 -672
- package/dist/cli-bundle/chunks/chunk-3CUQZNQ6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5UKQLQM2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-6VHUGVNP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-74FKFFXO.js +0 -172
- package/dist/cli-bundle/chunks/chunk-74FKFFXO.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ADXDCAKP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-BAP7G3N2.js +0 -178
- package/dist/cli-bundle/chunks/chunk-BAP7G3N2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-D53RTYVI.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-DHNG452T.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-EY7ZE3TG.js +0 -1831
- package/dist/cli-bundle/chunks/chunk-EY7ZE3TG.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-F3VC3GOV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-FL4D53ND.js +0 -162
- package/dist/cli-bundle/chunks/chunk-FL4D53ND.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-GKPCTQYG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HPAYDSR2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HTXXXF45.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-I3INI567.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KX62NMZC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-L5BTTDU5.js +0 -662
- package/dist/cli-bundle/chunks/chunk-L5BTTDU5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MR4SHYR4.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-OGVTB5VO.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-QPGQNLPI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QRZNCRNA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RC4UOUXA.js +0 -122
- package/dist/cli-bundle/chunks/chunk-RC4UOUXA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RTBX3C4C.js +0 -1841
- package/dist/cli-bundle/chunks/chunk-RTBX3C4C.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SIPOACV5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WACRQ26A.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-XC2HEEOV.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XPUTSGJU.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YIIIAKCE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YJSURTBB.js +0 -175
- package/dist/cli-bundle/chunks/chunk-YJSURTBB.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YQEZWI3R.js.map +0 -7
- package/dist/cli-bundle/chunks/close-GPD7DTJV.js +0 -12
- package/dist/cli-bundle/chunks/close-many-NQLYGPYW.js +0 -23
- package/dist/cli-bundle/chunks/comments-2AOZQ5D2.js +0 -13
- package/dist/cli-bundle/chunks/copy-N3LCQBMC.js +0 -9
- package/dist/cli-bundle/chunks/create-KOGQ3JKD.js +0 -27
- package/dist/cli-bundle/chunks/delete-6G3MBZ6S.js +0 -10
- package/dist/cli-bundle/chunks/docs-OWRGDMNY.js +0 -14
- package/dist/cli-bundle/chunks/focus-KZLIA6WS.js +0 -10
- package/dist/cli-bundle/chunks/history-compact-HHIUOMZ7.js +0 -16
- package/dist/cli-bundle/chunks/history-repair-KG7SWXI6.js +0 -16
- package/dist/cli-bundle/chunks/learnings-ZVHSALJY.js +0 -13
- package/dist/cli-bundle/chunks/notes-BAKUL5DJ.js +0 -13
- package/dist/cli-bundle/chunks/plan-LEAGLPGP.js +0 -24
- package/dist/cli-bundle/chunks/restore-KIUYTAEJ.js +0 -14
- package/dist/cli-bundle/chunks/update-XZJYS5X7.js +0 -21
- package/dist/cli-bundle/chunks/update-many-R24B3GBK.js +0 -36
- package/dist/cli-bundle/chunks/update-many-WQ3R3J6N.js +0 -32
- /package/dist/cli-bundle/chunks/{append-5YF3TO7I.js.map → append-MBXHNWSX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-JHO5K6RP.js.map → append-XUYF7NON.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BIRYX32V.js.map → chunk-2UCG5H6B.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VE6ZSTQW.js.map → chunk-2XPDCXK5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GLZKZON6.js.map → chunk-3HSRP6T2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XWBD6DSR.js.map → chunk-3KPNOZOH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HO4DLBNK.js.map → chunk-4M6RZJXF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RXPQ5Q23.js.map → chunk-4PSJVGRE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YFE7JHX3.js.map → chunk-6BNV3G6C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-43UMFKCK.js.map → chunk-6V4T4RD3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EHJFUOXL.js.map → chunk-7B7IHMLH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-I7DIDUSP.js.map → chunk-7CHWLT2J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-L6FVNR7X.js.map → chunk-A3GAQLBH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B57RJHBZ.js.map → chunk-A4FVWFZY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D52ZN3BF.js.map → chunk-A5EQPNV7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TZAE66GQ.js.map → chunk-AGEBQRBG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WU3KAN6A.js.map → chunk-AQUNTB7G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XWYQ2LT4.js.map → chunk-BBGR4FKQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2FUOXSRN.js.map → chunk-BFJP4VYC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-633PKXLT.js.map → chunk-BZKE2O5V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-L337QKWJ.js.map → chunk-DUDLSQFG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BVLOMU6O.js.map → chunk-E7KBMWEF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WQXRZMFN.js.map → chunk-EEECAV5M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-35FHWD4C.js.map → chunk-EI3UIMZM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PT7MCCGD.js.map → chunk-FIUTBFC6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7H5NNCJ5.js.map → chunk-FQF6VVPH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6DYOZS6C.js.map → chunk-FQO5THHM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5HGZKQUL.js.map → chunk-FQODDTE7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-67RO3H4N.js.map → chunk-G33XIMRT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QWBKN3QC.js.map → chunk-GKCEEXMA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DG2EQRIH.js.map → chunk-GRDK25BN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FXFCFL73.js.map → chunk-H3YKUVDR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ARGDWQ4J.js.map → chunk-IGBBTPM5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FY4RLHSC.js.map → chunk-IRJ6F23W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-66MKH7SZ.js.map → chunk-IXG5CMBR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7UCY6DR5.js.map → chunk-JPWUZOMR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FVNWHUME.js.map → chunk-K2L6FZBX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-X2MGQMZO.js.map → chunk-LT5UWU7H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KH6QAHME.js.map → chunk-M4B4RK4J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2XOSFSTH.js.map → chunk-MQOSMBWV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7R6UIHYY.js.map → chunk-N2TEEOXJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NTRQLE2R.js.map → chunk-N7FCFJ76.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-37DRDP2B.js.map → chunk-NPEYH6CE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2CXL335K.js.map → chunk-OK7VSX3N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NNANAWFH.js.map → chunk-OKPZDH43.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-G6MYGULG.js.map → chunk-OKWJUL6F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D5XHO4Q7.js.map → chunk-Q6JPYR7I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IE5KRAKN.js.map → chunk-QQ77W23U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-M7MVOKVV.js.map → chunk-QYGK2XQ3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-X5YCTFKT.js.map → chunk-RWAIRGBC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-W5E2UUSH.js.map → chunk-RX53WHFI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-R5XTTZSJ.js.map → chunk-SBW7EQC4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TM5CIO3F.js.map → chunk-SGJB6PXA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DDFGYUCQ.js.map → chunk-STBCBDKF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FHOBCGQO.js.map → chunk-SVAWG7EE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6O44IN44.js.map → chunk-T6MOTLOJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EWIT5WIC.js.map → chunk-U6RYD446.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-E4FXM2XB.js.map → chunk-UE7LK3RE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N33FD2UI.js.map → chunk-UNNCT5QY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2IPNL3DR.js.map → chunk-UOIFZ66L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LSOWTLEM.js.map → chunk-UU6EP25G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HYTOJW2Q.js.map → chunk-UW6HCMP2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-47HXN6RX.js.map → chunk-UWAQI3B7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YKFHF37B.js.map → chunk-V4QHAMI5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VAHZIPWS.js.map → chunk-VA3H7VVC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TLWJP5BF.js.map → chunk-VQOG2ETB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H5IOT54C.js.map → chunk-VSQE43NO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BDA35QG5.js.map → chunk-W6IEJXNC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OWP6QFBV.js.map → chunk-XDWXPG2E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CKX4WOPC.js.map → chunk-XKVHL3MB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WL3SS45P.js.map → chunk-XVB6BATY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NVZ6NVHJ.js.map → chunk-XXWDEQ6O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ILVOOAT4.js.map → chunk-Y2VSGFT4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NCVT6XEL.js.map → chunk-YG56M3NE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AFGKSHAM.js.map → chunk-YGEA4CLH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AXRT7K5V.js.map → chunk-YIC5NGXF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XXLXJL7V.js.map → chunk-ZUCBPXNA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-X3CF6FQP.js.map → close-7NWA3GLA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-GPD7DTJV.js.map → close-ZZCDDWJT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-NQLYGPYW.js.map → close-many-QCZHFCON.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-J7A5EHOQ.js.map → close-many-YALQ7AXS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-2AOZQ5D2.js.map → comments-FMQNYPSZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-TMHMALA5.js.map → comments-SQIQ5WYR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-N3LCQBMC.js.map → copy-GI3RCVZP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-FWQA5OU4.js.map → copy-YDAMENCP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-AQ5SIGZC.js.map → create-JSL6CXU3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-KOGQ3JKD.js.map → create-LXMLYJNM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-6G3MBZ6S.js.map → delete-5DFAXJNI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-YYYFOSEA.js.map → delete-IGVOZEU2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-NIIKXLPB.js.map → deps-BQAXUQAK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-MQ4ZIGZB.js.map → deps-CBPPSS6J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-OWRGDMNY.js.map → docs-KCWPLQOV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-53NUGMIQ.js.map → docs-NS2AZWCN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-3PXGXYDB.js.map → files-PVWEPT5J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-EGLKHD7O.js.map → files-XUUBQ76I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-KZLIA6WS.js.map → focus-3EJVFI3D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-SRPASFTN.js.map → focus-DHBHKK3E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-G4DULDCX.js.map → history-compact-3TNPYVFG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-HHIUOMZ7.js.map → history-compact-JHYVDYLW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-IUSJ6X3E.js.map → history-redact-ELRL73XN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-THHGRQXV.js.map → history-redact-KKFDICCF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-LUQWRS7X.js.map → history-repair-J7WKZFAG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-KG7SWXI6.js.map → history-repair-REMI7DDI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-ZVHSALJY.js.map → learnings-O6V5WDCV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-2MRNBFJF.js.map → learnings-X4D6JCCG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-73JWKWUD.js.map → notes-UQC6VS6N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-BAKUL5DJ.js.map → notes-ZSZREWZA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-AZPMCG37.js.map → plan-5GKRBJJO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-LEAGLPGP.js.map → plan-EZW2YDDY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-AVCIIZID.js.map → profile-5PQAPCLF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-LFYO3HHX.js.map → profile-CW4BD3FO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-UKMF55FT.js.map → register-list-query-HTDQE6VI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-MZUF2EEC.js.map → register-list-query-PHIPDFP2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-T6RVNJC4.js.map → register-mutation-BLEWM5I6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-2PBW2GEX.js.map → register-mutation-OTYHR7J6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-KIUYTAEJ.js.map → restore-A55MLFAI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-E3PRGDN3.js.map → restore-HEQAG6EK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-5JNFQFUW.js.map → schema-MAXAIHEC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-TMIW4XZC.js.map → schema-Q5DAWJ2S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-XZJYS5X7.js.map → update-5DTSCWVF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-SQYZA3ZW.js.map → update-DWFXXJKP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-WQ3R3J6N.js.map → update-many-6T4ZLZS7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-R24B3GBK.js.map → update-many-MYRK6VBJ.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// dist/core/fs/fs-utils.js
|
|
2
2
|
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="236f0bc3-3408-510b-9449-4755558bc2fb")}catch(e){}}();
|
|
4
4
|
import * as fs from "node:fs/promises";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import crypto from "node:crypto";
|
|
@@ -195,6 +195,7 @@ var KNOWN_EXTENSION_POLICY_SURFACES = [
|
|
|
195
195
|
"schema.flags",
|
|
196
196
|
"schema.itemfields",
|
|
197
197
|
"schema.itemtypes",
|
|
198
|
+
"schema.relationshipkinds",
|
|
198
199
|
"schema.migrations",
|
|
199
200
|
"schema.profiles",
|
|
200
201
|
"parser.override",
|
|
@@ -1516,7 +1517,7 @@ function validateTypeOptions(typeName, rawTypeOptions, registry) {
|
|
|
1516
1517
|
}
|
|
1517
1518
|
|
|
1518
1519
|
// dist/core/store/paths.js
|
|
1519
|
-
import { readFileSync, statSync } from "node:fs";
|
|
1520
|
+
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
1520
1521
|
import os from "node:os";
|
|
1521
1522
|
import path3 from "node:path";
|
|
1522
1523
|
var ITEM_FILE_EXTENSION_BY_FORMAT = {
|
|
@@ -1527,6 +1528,12 @@ var ITEM_FORMAT_BY_EXTENSION = {
|
|
|
1527
1528
|
".md": "json_markdown",
|
|
1528
1529
|
".toon": "toon"
|
|
1529
1530
|
};
|
|
1531
|
+
var NEARBY_TRACKER_SCAN_IGNORED_DIRECTORIES = /* @__PURE__ */ new Set([
|
|
1532
|
+
".git",
|
|
1533
|
+
"coverage",
|
|
1534
|
+
"dist",
|
|
1535
|
+
"node_modules"
|
|
1536
|
+
]);
|
|
1530
1537
|
var ITEM_FILE_EXTENSIONS = [".md", ".toon"];
|
|
1531
1538
|
function pathExists2(pathValue) {
|
|
1532
1539
|
try {
|
|
@@ -1566,6 +1573,14 @@ function discoverPmRootFromAncestors(cwd) {
|
|
|
1566
1573
|
current = parent;
|
|
1567
1574
|
}
|
|
1568
1575
|
}
|
|
1576
|
+
function discoverNearbyPmRoot(cwd, excludedRoot) {
|
|
1577
|
+
const normalizedExcluded = excludedRoot ? path3.resolve(excludedRoot) : void 0;
|
|
1578
|
+
try {
|
|
1579
|
+
return readdirSync(path3.resolve(cwd), { withFileTypes: true }).filter((entry) => entry.isDirectory() && !NEARBY_TRACKER_SCAN_IGNORED_DIRECTORIES.has(entry.name)).map((entry) => path3.join(path3.resolve(cwd), entry.name)).filter((candidate) => candidate !== normalizedExcluded).filter((candidate) => pathExists2(getSettingsPath(candidate))).filter((candidate) => isPmSettingsFile(getSettingsPath(candidate))).sort((left, right) => left.localeCompare(right))[0];
|
|
1580
|
+
} catch {
|
|
1581
|
+
return void 0;
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1569
1584
|
function resolvePmRoot(cwd, cliPath) {
|
|
1570
1585
|
const envPath = process.env.PM_PATH;
|
|
1571
1586
|
const explicitPath = cliPath?.trim() || envPath?.trim();
|
|
@@ -1724,6 +1739,572 @@ function asRecordClone(value) {
|
|
|
1724
1739
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? { ...value } : {};
|
|
1725
1740
|
}
|
|
1726
1741
|
|
|
1742
|
+
// dist/sdk/relationships.js
|
|
1743
|
+
var BUILTIN_RELATIONSHIP_KINDS = [
|
|
1744
|
+
{
|
|
1745
|
+
kind: "blocked_by",
|
|
1746
|
+
direction: "directed",
|
|
1747
|
+
inverse: "blocks",
|
|
1748
|
+
ordering: true,
|
|
1749
|
+
precedence: "target_before_source",
|
|
1750
|
+
hierarchy: false,
|
|
1751
|
+
outgoing: "many",
|
|
1752
|
+
incoming: "many",
|
|
1753
|
+
lifecycle: "persistent",
|
|
1754
|
+
aliases: ["depends_on"],
|
|
1755
|
+
compatibilityVersion: 1,
|
|
1756
|
+
allowSelf: false
|
|
1757
|
+
},
|
|
1758
|
+
{
|
|
1759
|
+
kind: "blocks",
|
|
1760
|
+
direction: "directed",
|
|
1761
|
+
inverse: "blocked_by",
|
|
1762
|
+
ordering: true,
|
|
1763
|
+
precedence: "source_before_target",
|
|
1764
|
+
hierarchy: false,
|
|
1765
|
+
outgoing: "many",
|
|
1766
|
+
incoming: "many",
|
|
1767
|
+
lifecycle: "persistent",
|
|
1768
|
+
compatibilityVersion: 1,
|
|
1769
|
+
allowSelf: false
|
|
1770
|
+
},
|
|
1771
|
+
{
|
|
1772
|
+
kind: "parent",
|
|
1773
|
+
direction: "directed",
|
|
1774
|
+
inverse: "child",
|
|
1775
|
+
ordering: false,
|
|
1776
|
+
hierarchy: true,
|
|
1777
|
+
hierarchyDirection: "target_parent",
|
|
1778
|
+
outgoing: "one",
|
|
1779
|
+
incoming: "many",
|
|
1780
|
+
lifecycle: "supersedable",
|
|
1781
|
+
aliases: ["child_of", "epic"],
|
|
1782
|
+
compatibilityVersion: 1,
|
|
1783
|
+
allowSelf: false
|
|
1784
|
+
},
|
|
1785
|
+
{
|
|
1786
|
+
kind: "child",
|
|
1787
|
+
direction: "directed",
|
|
1788
|
+
inverse: "parent",
|
|
1789
|
+
ordering: false,
|
|
1790
|
+
hierarchy: true,
|
|
1791
|
+
hierarchyDirection: "source_parent",
|
|
1792
|
+
outgoing: "many",
|
|
1793
|
+
incoming: "one",
|
|
1794
|
+
lifecycle: "supersedable",
|
|
1795
|
+
aliases: ["parent_child", "task"],
|
|
1796
|
+
compatibilityVersion: 1,
|
|
1797
|
+
allowSelf: false
|
|
1798
|
+
},
|
|
1799
|
+
{
|
|
1800
|
+
kind: "related",
|
|
1801
|
+
direction: "undirected",
|
|
1802
|
+
ordering: false,
|
|
1803
|
+
hierarchy: false,
|
|
1804
|
+
outgoing: "many",
|
|
1805
|
+
incoming: "many",
|
|
1806
|
+
lifecycle: "persistent",
|
|
1807
|
+
aliases: ["related_to"],
|
|
1808
|
+
compatibilityVersion: 1,
|
|
1809
|
+
allowSelf: false
|
|
1810
|
+
},
|
|
1811
|
+
{
|
|
1812
|
+
kind: "discovered_from",
|
|
1813
|
+
direction: "directed",
|
|
1814
|
+
ordering: false,
|
|
1815
|
+
hierarchy: false,
|
|
1816
|
+
outgoing: "many",
|
|
1817
|
+
incoming: "many",
|
|
1818
|
+
lifecycle: "persistent",
|
|
1819
|
+
compatibilityVersion: 1,
|
|
1820
|
+
allowSelf: false
|
|
1821
|
+
},
|
|
1822
|
+
{
|
|
1823
|
+
kind: "incident_from",
|
|
1824
|
+
direction: "directed",
|
|
1825
|
+
ordering: false,
|
|
1826
|
+
hierarchy: false,
|
|
1827
|
+
outgoing: "many",
|
|
1828
|
+
incoming: "many",
|
|
1829
|
+
lifecycle: "persistent",
|
|
1830
|
+
compatibilityVersion: 1,
|
|
1831
|
+
allowSelf: false
|
|
1832
|
+
},
|
|
1833
|
+
{
|
|
1834
|
+
kind: "supersedes",
|
|
1835
|
+
direction: "directed",
|
|
1836
|
+
ordering: false,
|
|
1837
|
+
hierarchy: false,
|
|
1838
|
+
outgoing: "many",
|
|
1839
|
+
incoming: "many",
|
|
1840
|
+
lifecycle: "supersedable",
|
|
1841
|
+
compatibilityVersion: 1,
|
|
1842
|
+
allowSelf: false
|
|
1843
|
+
}
|
|
1844
|
+
];
|
|
1845
|
+
function normalizeKind(kind) {
|
|
1846
|
+
return kind.trim().toLowerCase().replaceAll("-", "_");
|
|
1847
|
+
}
|
|
1848
|
+
function normalizeInverseKind(inverse) {
|
|
1849
|
+
if (inverse === void 0)
|
|
1850
|
+
return void 0;
|
|
1851
|
+
const normalized = normalizeKind(inverse);
|
|
1852
|
+
if (!/^[a-z][a-z0-9_]*$/.test(normalized))
|
|
1853
|
+
throw new TypeError(`Invalid inverse relationship kind: ${inverse}`);
|
|
1854
|
+
return normalized;
|
|
1855
|
+
}
|
|
1856
|
+
function freezeValue(value, visited = /* @__PURE__ */ new Set()) {
|
|
1857
|
+
if (value === null || typeof value !== "object")
|
|
1858
|
+
return value;
|
|
1859
|
+
if (visited.has(value))
|
|
1860
|
+
return value;
|
|
1861
|
+
visited.add(value);
|
|
1862
|
+
if (Array.isArray(value)) {
|
|
1863
|
+
for (const entry of value)
|
|
1864
|
+
freezeValue(entry, visited);
|
|
1865
|
+
return Object.freeze(value);
|
|
1866
|
+
}
|
|
1867
|
+
for (const entry of Object.values(value))
|
|
1868
|
+
freezeValue(entry, visited);
|
|
1869
|
+
return Object.freeze(value);
|
|
1870
|
+
}
|
|
1871
|
+
function assertRelationshipPrecedence(definition, kind) {
|
|
1872
|
+
if (definition.precedence !== void 0 && definition.precedence !== "source_before_target" && definition.precedence !== "target_before_source")
|
|
1873
|
+
throw new TypeError(`Invalid relationship precedence for ${kind}`);
|
|
1874
|
+
if (!definition.ordering && definition.precedence !== void 0)
|
|
1875
|
+
throw new TypeError(`Non-ordering relationship kind cannot declare precedence: ${kind}`);
|
|
1876
|
+
}
|
|
1877
|
+
function assertRelationshipHierarchyDirection(definition, kind) {
|
|
1878
|
+
if (definition.hierarchyDirection !== void 0 && definition.hierarchyDirection !== "source_parent" && definition.hierarchyDirection !== "target_parent")
|
|
1879
|
+
throw new TypeError(`Invalid relationship hierarchy direction for ${kind}`);
|
|
1880
|
+
if (!definition.hierarchy && definition.hierarchyDirection !== void 0)
|
|
1881
|
+
throw new TypeError(`Non-hierarchy relationship kind cannot declare hierarchy direction: ${kind}`);
|
|
1882
|
+
}
|
|
1883
|
+
function normalizeRelationshipKindIdentifier(definition) {
|
|
1884
|
+
if (typeof definition !== "object" || definition === null)
|
|
1885
|
+
throw new TypeError("Relationship kind definition requires an object");
|
|
1886
|
+
if (typeof definition.kind !== "string")
|
|
1887
|
+
throw new TypeError("Relationship kind requires a string identifier");
|
|
1888
|
+
const kind = normalizeKind(definition.kind);
|
|
1889
|
+
if (!/^[a-z][a-z0-9_]*$/.test(kind))
|
|
1890
|
+
throw new TypeError(`Invalid relationship kind: ${definition.kind}`);
|
|
1891
|
+
if (!Number.isInteger(definition.compatibilityVersion) || definition.compatibilityVersion < 1)
|
|
1892
|
+
throw new TypeError(`Invalid compatibility version for ${kind}`);
|
|
1893
|
+
return kind;
|
|
1894
|
+
}
|
|
1895
|
+
function assertRelationshipKindSemantics(definition, kind) {
|
|
1896
|
+
if (!["directed", "undirected"].includes(definition.direction))
|
|
1897
|
+
throw new TypeError(`Invalid relationship direction for ${kind}`);
|
|
1898
|
+
if (typeof definition.ordering !== "boolean")
|
|
1899
|
+
throw new TypeError(`Invalid relationship ordering flag for ${kind}`);
|
|
1900
|
+
if (![void 0, true, false].includes(definition.hierarchy))
|
|
1901
|
+
throw new TypeError(`Invalid relationship hierarchy flag for ${kind}`);
|
|
1902
|
+
if (!["one", "many"].includes(definition.outgoing))
|
|
1903
|
+
throw new TypeError(`Invalid outgoing relationship cardinality for ${kind}`);
|
|
1904
|
+
if (!["one", "many"].includes(definition.incoming))
|
|
1905
|
+
throw new TypeError(`Invalid incoming relationship cardinality for ${kind}`);
|
|
1906
|
+
if (!["persistent", "supersedable", "ephemeral"].includes(definition.lifecycle))
|
|
1907
|
+
throw new TypeError(`Invalid relationship lifecycle for ${kind}`);
|
|
1908
|
+
if (typeof definition.allowSelf !== "boolean")
|
|
1909
|
+
throw new TypeError(`Invalid relationship self-edge flag for ${kind}`);
|
|
1910
|
+
}
|
|
1911
|
+
function assertRelationshipKindPayload(definition, kind) {
|
|
1912
|
+
if (definition.payloadSchema !== void 0 && (typeof definition.payloadSchema !== "object" || definition.payloadSchema === null || Array.isArray(definition.payloadSchema)))
|
|
1913
|
+
throw new TypeError(`Invalid relationship payload schema for ${kind}`);
|
|
1914
|
+
if (definition.aliases !== void 0 && (!Array.isArray(definition.aliases) || definition.aliases.some((alias) => typeof alias !== "string")))
|
|
1915
|
+
throw new TypeError(`Invalid relationship aliases for ${kind}`);
|
|
1916
|
+
}
|
|
1917
|
+
var RelationshipKindRegistry = class {
|
|
1918
|
+
#definitions = /* @__PURE__ */ new Map();
|
|
1919
|
+
#aliases = /* @__PURE__ */ new Map();
|
|
1920
|
+
/** Create a registry initialized with the stable built-in ontology by default. */
|
|
1921
|
+
constructor(definitions = BUILTIN_RELATIONSHIP_KINDS) {
|
|
1922
|
+
for (const definition of definitions)
|
|
1923
|
+
this.register(definition);
|
|
1924
|
+
}
|
|
1925
|
+
/** Register one definition after validating its identifier, version, and aliases. */
|
|
1926
|
+
register(definition) {
|
|
1927
|
+
const kind = normalizeRelationshipKindIdentifier(definition);
|
|
1928
|
+
assertRelationshipKindSemantics(definition, kind);
|
|
1929
|
+
assertRelationshipKindPayload(definition, kind);
|
|
1930
|
+
assertRelationshipPrecedence(definition, kind);
|
|
1931
|
+
assertRelationshipHierarchyDirection(definition, kind);
|
|
1932
|
+
if (this.#definitions.has(kind) || this.#aliases.has(kind))
|
|
1933
|
+
throw new TypeError(`Relationship kind already registered: ${kind}`);
|
|
1934
|
+
const inverse = normalizeInverseKind(definition.inverse);
|
|
1935
|
+
const aliases = [
|
|
1936
|
+
...new Set((definition.aliases ?? []).map(normalizeKind))
|
|
1937
|
+
].sort();
|
|
1938
|
+
for (const alias of aliases) {
|
|
1939
|
+
if (!/^[a-z][a-z0-9_]*$/.test(alias))
|
|
1940
|
+
throw new TypeError(`Invalid relationship alias: ${alias}`);
|
|
1941
|
+
if (alias === kind || this.#definitions.has(alias) || this.#aliases.has(alias))
|
|
1942
|
+
throw new TypeError(`Relationship alias already registered: ${alias}`);
|
|
1943
|
+
}
|
|
1944
|
+
const normalized = Object.freeze({
|
|
1945
|
+
...definition,
|
|
1946
|
+
kind,
|
|
1947
|
+
hierarchy: definition.hierarchy ?? false,
|
|
1948
|
+
inverse,
|
|
1949
|
+
aliases: Object.freeze(aliases),
|
|
1950
|
+
payloadSchema: definition.payloadSchema ? freezeValue(structuredClone(definition.payloadSchema)) : void 0
|
|
1951
|
+
});
|
|
1952
|
+
this.#definitions.set(kind, normalized);
|
|
1953
|
+
for (const alias of aliases)
|
|
1954
|
+
this.#aliases.set(alias, kind);
|
|
1955
|
+
return this;
|
|
1956
|
+
}
|
|
1957
|
+
/** Resolve a canonical kind or compatibility alias. */
|
|
1958
|
+
resolve(kind) {
|
|
1959
|
+
if (typeof kind !== "string")
|
|
1960
|
+
return void 0;
|
|
1961
|
+
const normalized = normalizeKind(kind);
|
|
1962
|
+
return this.#definitions.get(this.#aliases.get(normalized) ?? normalized);
|
|
1963
|
+
}
|
|
1964
|
+
/** Resolve a kind or throw a precise error suitable for command adapters. */
|
|
1965
|
+
require(kind) {
|
|
1966
|
+
const definition = this.resolve(kind);
|
|
1967
|
+
if (!definition)
|
|
1968
|
+
throw new TypeError(`Unknown relationship kind: ${kind}`);
|
|
1969
|
+
return definition;
|
|
1970
|
+
}
|
|
1971
|
+
/** Return a deterministic immutable registry snapshot. */
|
|
1972
|
+
list() {
|
|
1973
|
+
return Object.freeze([...this.#definitions.values()].sort((left, right) => left.kind.localeCompare(right.kind)));
|
|
1974
|
+
}
|
|
1975
|
+
};
|
|
1976
|
+
function createRelationshipKindRegistry() {
|
|
1977
|
+
return new RelationshipKindRegistry();
|
|
1978
|
+
}
|
|
1979
|
+
var defaultRegistry = createRelationshipKindRegistry();
|
|
1980
|
+
function isOrderingRelationshipKind(kind, registry = defaultRegistry) {
|
|
1981
|
+
return registry.resolve(kind)?.ordering === true;
|
|
1982
|
+
}
|
|
1983
|
+
function compareEdges(left, right) {
|
|
1984
|
+
return left.source.localeCompare(right.source) || left.target.localeCompare(right.target) || left.kind.localeCompare(right.kind);
|
|
1985
|
+
}
|
|
1986
|
+
function normalizeRelationshipEdge(candidate, nodes, registry) {
|
|
1987
|
+
const source = typeof candidate.source === "string" ? candidate.source.trim() : "";
|
|
1988
|
+
const target = typeof candidate.target === "string" ? candidate.target.trim() : "";
|
|
1989
|
+
const definition = registry.require(candidate.kind);
|
|
1990
|
+
if (!nodes.has(source) || !nodes.has(target))
|
|
1991
|
+
throw new TypeError(`Relationship endpoint not found: ${source} -> ${target}`);
|
|
1992
|
+
if (source === target && !definition.allowSelf)
|
|
1993
|
+
throw new TypeError(`Self relationship is not allowed for ${definition.kind}`);
|
|
1994
|
+
const edge = Object.freeze({
|
|
1995
|
+
...candidate,
|
|
1996
|
+
source,
|
|
1997
|
+
target,
|
|
1998
|
+
kind: definition.kind
|
|
1999
|
+
});
|
|
2000
|
+
const endpoints = definition.direction === "undirected" ? [source, target].sort().join("\0") : `${source}\0${target}`;
|
|
2001
|
+
return { edge, identity: `${definition.kind}\0${endpoints}` };
|
|
2002
|
+
}
|
|
2003
|
+
function appendIndexedEdge(index, node, edge) {
|
|
2004
|
+
const indexed = index.get(node);
|
|
2005
|
+
if (indexed)
|
|
2006
|
+
indexed.push(edge);
|
|
2007
|
+
else
|
|
2008
|
+
index.set(node, [edge]);
|
|
2009
|
+
}
|
|
2010
|
+
function normalizeNodeId(value) {
|
|
2011
|
+
return typeof value === "string" ? value.trim() : "";
|
|
2012
|
+
}
|
|
2013
|
+
function resolveExistingNodeId(value, ids) {
|
|
2014
|
+
const id = normalizeNodeId(value);
|
|
2015
|
+
return id && ids.has(id) ? id : void 0;
|
|
2016
|
+
}
|
|
2017
|
+
function reconstructPath(source, target, parents) {
|
|
2018
|
+
const path7 = [target];
|
|
2019
|
+
let cursor = target;
|
|
2020
|
+
while (cursor !== source) {
|
|
2021
|
+
cursor = parents.get(cursor);
|
|
2022
|
+
path7.push(cursor);
|
|
2023
|
+
}
|
|
2024
|
+
return path7.reverse();
|
|
2025
|
+
}
|
|
2026
|
+
var RelationshipGraph = class _RelationshipGraph {
|
|
2027
|
+
#registry;
|
|
2028
|
+
#nodes;
|
|
2029
|
+
#nodeSnapshot;
|
|
2030
|
+
#edges;
|
|
2031
|
+
#outgoing = /* @__PURE__ */ new Map();
|
|
2032
|
+
#incoming = /* @__PURE__ */ new Map();
|
|
2033
|
+
/** Validate and index nodes and edges without reading tracker storage. */
|
|
2034
|
+
constructor(nodes, edges, registry = defaultRegistry) {
|
|
2035
|
+
this.#registry = registry;
|
|
2036
|
+
this.#nodes = new Set([...nodes].filter((id) => typeof id === "string").map((id) => id.trim()).filter(Boolean));
|
|
2037
|
+
this.#nodeSnapshot = Object.freeze([...this.#nodes].sort());
|
|
2038
|
+
const deduped = /* @__PURE__ */ new Map();
|
|
2039
|
+
for (const candidate of edges) {
|
|
2040
|
+
const { edge, identity } = normalizeRelationshipEdge(candidate, this.#nodes, registry);
|
|
2041
|
+
deduped.set(identity, edge);
|
|
2042
|
+
}
|
|
2043
|
+
this.#edges = Object.freeze([...deduped.values()].sort(compareEdges));
|
|
2044
|
+
for (const edge of this.#edges) {
|
|
2045
|
+
appendIndexedEdge(this.#outgoing, edge.source, edge);
|
|
2046
|
+
appendIndexedEdge(this.#incoming, edge.target, edge);
|
|
2047
|
+
if (registry.require(edge.kind).direction === "undirected") {
|
|
2048
|
+
appendIndexedEdge(this.#outgoing, edge.target, edge);
|
|
2049
|
+
appendIndexedEdge(this.#incoming, edge.source, edge);
|
|
2050
|
+
}
|
|
2051
|
+
}
|
|
2052
|
+
}
|
|
2053
|
+
/** Build the graph directly from item metadata, including hierarchy and legacy blocker fields. */
|
|
2054
|
+
static fromItems(items, registry = defaultRegistry) {
|
|
2055
|
+
const ids = new Set(items.map((item) => normalizeNodeId(item.id)).filter(Boolean));
|
|
2056
|
+
const edges = [];
|
|
2057
|
+
for (const item of items) {
|
|
2058
|
+
const source = normalizeNodeId(item.id);
|
|
2059
|
+
if (!source)
|
|
2060
|
+
continue;
|
|
2061
|
+
const parent = resolveExistingNodeId(item.parent, ids);
|
|
2062
|
+
if (parent)
|
|
2063
|
+
edges.push({ source, target: parent, kind: "parent" });
|
|
2064
|
+
const blockedBy = resolveExistingNodeId(item.blocked_by, ids);
|
|
2065
|
+
if (blockedBy)
|
|
2066
|
+
edges.push({
|
|
2067
|
+
source,
|
|
2068
|
+
target: blockedBy,
|
|
2069
|
+
kind: "blocked_by"
|
|
2070
|
+
});
|
|
2071
|
+
for (const dependency of item.dependencies ?? []) {
|
|
2072
|
+
const dependencyId = resolveExistingNodeId(dependency.id, ids);
|
|
2073
|
+
if (dependencyId && registry.resolve(dependency.kind))
|
|
2074
|
+
edges.push({
|
|
2075
|
+
source,
|
|
2076
|
+
target: dependencyId,
|
|
2077
|
+
kind: dependency.kind,
|
|
2078
|
+
createdAt: dependency.created_at,
|
|
2079
|
+
author: dependency.author
|
|
2080
|
+
});
|
|
2081
|
+
}
|
|
2082
|
+
}
|
|
2083
|
+
return new _RelationshipGraph(ids, edges, registry);
|
|
2084
|
+
}
|
|
2085
|
+
/** Return the deterministic immutable edge snapshot. */
|
|
2086
|
+
edges() {
|
|
2087
|
+
return this.#edges;
|
|
2088
|
+
}
|
|
2089
|
+
/** Return the deterministic immutable edges incident to one node. */
|
|
2090
|
+
incidentEdges(id) {
|
|
2091
|
+
this.#assertNode(id);
|
|
2092
|
+
const outgoing = this.#outgoing.get(id) ?? [];
|
|
2093
|
+
const incoming = this.#incoming.get(id) ?? [];
|
|
2094
|
+
if (outgoing.length === 0)
|
|
2095
|
+
return Object.freeze([...incoming]);
|
|
2096
|
+
if (incoming.length === 0)
|
|
2097
|
+
return Object.freeze([...outgoing]);
|
|
2098
|
+
const edges = [];
|
|
2099
|
+
let outgoingIndex = 0;
|
|
2100
|
+
let incomingIndex = 0;
|
|
2101
|
+
while (outgoingIndex < outgoing.length || incomingIndex < incoming.length) {
|
|
2102
|
+
const outgoingEdge = outgoing[outgoingIndex];
|
|
2103
|
+
const incomingEdge = incoming[incomingIndex];
|
|
2104
|
+
const edge = outgoingEdge === void 0 ? incomingEdge : incomingEdge === void 0 || compareEdges(outgoingEdge, incomingEdge) <= 0 ? outgoingEdge : incomingEdge;
|
|
2105
|
+
if (edges.at(-1) !== edge)
|
|
2106
|
+
edges.push(edge);
|
|
2107
|
+
if (outgoingEdge === edge)
|
|
2108
|
+
outgoingIndex += 1;
|
|
2109
|
+
if (incomingEdge === edge)
|
|
2110
|
+
incomingIndex += 1;
|
|
2111
|
+
}
|
|
2112
|
+
return Object.freeze(edges);
|
|
2113
|
+
}
|
|
2114
|
+
/** Return the deterministic immutable node snapshot. */
|
|
2115
|
+
nodes() {
|
|
2116
|
+
return this.#nodeSnapshot;
|
|
2117
|
+
}
|
|
2118
|
+
/** Report whether an identifier names an indexed node. */
|
|
2119
|
+
hasNode(id) {
|
|
2120
|
+
return this.#nodes.has(id);
|
|
2121
|
+
}
|
|
2122
|
+
/** Return the registry that interprets this graph's relationship kinds. */
|
|
2123
|
+
registry() {
|
|
2124
|
+
return this.#registry;
|
|
2125
|
+
}
|
|
2126
|
+
#assertNode(id) {
|
|
2127
|
+
if (!this.#nodes.has(id))
|
|
2128
|
+
throw new TypeError(`Relationship node not found: ${id}`);
|
|
2129
|
+
}
|
|
2130
|
+
#matchesKinds(edge, kinds) {
|
|
2131
|
+
if (!kinds)
|
|
2132
|
+
return true;
|
|
2133
|
+
const definition = this.#registry.require(edge.kind);
|
|
2134
|
+
return kinds.has(edge.kind) || definition.inverse !== void 0 && kinds.has(definition.inverse);
|
|
2135
|
+
}
|
|
2136
|
+
#neighbors(id, direction, kinds) {
|
|
2137
|
+
const candidates = [
|
|
2138
|
+
...direction === "incoming" ? [] : this.#outgoing.get(id) ?? [],
|
|
2139
|
+
...direction === "outgoing" ? [] : this.#incoming.get(id) ?? []
|
|
2140
|
+
];
|
|
2141
|
+
return [...new Set(candidates)].filter((edge) => this.#matchesKinds(edge, kinds)).map((edge) => ({
|
|
2142
|
+
id: edge.source === id ? edge.target : edge.source,
|
|
2143
|
+
edge
|
|
2144
|
+
})).sort((left, right) => left.id.localeCompare(right.id) || compareEdges(left.edge, right.edge));
|
|
2145
|
+
}
|
|
2146
|
+
/** Return one-hop adjacent node identifiers. */
|
|
2147
|
+
adjacency(id, options = {}) {
|
|
2148
|
+
this.#assertNode(id);
|
|
2149
|
+
options.signal?.throwIfAborted();
|
|
2150
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
2151
|
+
const rows = this.#neighbors(id, options.direction ?? "outgoing", kinds);
|
|
2152
|
+
const limit = options.limit ?? Number.POSITIVE_INFINITY;
|
|
2153
|
+
const uniqueNeighbors = [...new Set(rows.map((row) => row.id))];
|
|
2154
|
+
const value = uniqueNeighbors.slice(0, limit);
|
|
2155
|
+
return {
|
|
2156
|
+
value,
|
|
2157
|
+
meta: {
|
|
2158
|
+
visitedNodes: 1,
|
|
2159
|
+
inspectedEdges: rows.length,
|
|
2160
|
+
truncated: value.length < uniqueNeighbors.length,
|
|
2161
|
+
nextCursor: value.at(-1)
|
|
2162
|
+
}
|
|
2163
|
+
};
|
|
2164
|
+
}
|
|
2165
|
+
/** Return deterministic one-hop neighbor rows paired with each connecting edge. */
|
|
2166
|
+
neighborEdges(id, options = {}) {
|
|
2167
|
+
this.#assertNode(id);
|
|
2168
|
+
options.signal?.throwIfAborted();
|
|
2169
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
2170
|
+
const rows = this.#neighbors(id, options.direction ?? "outgoing", kinds);
|
|
2171
|
+
const limit = options.limit ?? Number.POSITIVE_INFINITY;
|
|
2172
|
+
const value = rows.slice(0, limit);
|
|
2173
|
+
return {
|
|
2174
|
+
value,
|
|
2175
|
+
meta: {
|
|
2176
|
+
visitedNodes: 1,
|
|
2177
|
+
inspectedEdges: rows.length,
|
|
2178
|
+
truncated: value.length < rows.length,
|
|
2179
|
+
nextCursor: value.at(-1)?.id
|
|
2180
|
+
}
|
|
2181
|
+
};
|
|
2182
|
+
}
|
|
2183
|
+
/** Return bounded transitive closure in breadth-first discovery order. */
|
|
2184
|
+
closure(id, options = {}) {
|
|
2185
|
+
this.#assertNode(id);
|
|
2186
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
2187
|
+
const direction = options.direction ?? "outgoing";
|
|
2188
|
+
const limit = options.limit ?? Number.POSITIVE_INFINITY;
|
|
2189
|
+
const maxDepth = options.maxDepth ?? Number.POSITIVE_INFINITY;
|
|
2190
|
+
const seen = /* @__PURE__ */ new Set([id]);
|
|
2191
|
+
const value = [];
|
|
2192
|
+
const queue = [{ id, depth: 0 }];
|
|
2193
|
+
let visitedNodes = 0;
|
|
2194
|
+
let inspectedEdges = 0;
|
|
2195
|
+
let truncated = false;
|
|
2196
|
+
traversal: for (let index = 0; index < queue.length; index += 1) {
|
|
2197
|
+
options.signal?.throwIfAborted();
|
|
2198
|
+
const current = queue[index];
|
|
2199
|
+
visitedNodes += 1;
|
|
2200
|
+
const neighbors = this.#neighbors(current.id, direction, kinds);
|
|
2201
|
+
inspectedEdges += neighbors.length;
|
|
2202
|
+
if (current.depth >= maxDepth) {
|
|
2203
|
+
if (neighbors.some((neighbor) => !seen.has(neighbor.id)))
|
|
2204
|
+
truncated = true;
|
|
2205
|
+
continue;
|
|
2206
|
+
}
|
|
2207
|
+
for (const neighbor of neighbors) {
|
|
2208
|
+
if (seen.has(neighbor.id))
|
|
2209
|
+
continue;
|
|
2210
|
+
if (value.length >= limit) {
|
|
2211
|
+
truncated = true;
|
|
2212
|
+
break traversal;
|
|
2213
|
+
}
|
|
2214
|
+
seen.add(neighbor.id);
|
|
2215
|
+
value.push(neighbor.id);
|
|
2216
|
+
queue.push({ id: neighbor.id, depth: current.depth + 1 });
|
|
2217
|
+
}
|
|
2218
|
+
}
|
|
2219
|
+
return {
|
|
2220
|
+
value,
|
|
2221
|
+
meta: {
|
|
2222
|
+
visitedNodes,
|
|
2223
|
+
inspectedEdges,
|
|
2224
|
+
truncated,
|
|
2225
|
+
nextCursor: value.at(-1)
|
|
2226
|
+
}
|
|
2227
|
+
};
|
|
2228
|
+
}
|
|
2229
|
+
/** Return a deterministic shortest path, or an empty array when disconnected. */
|
|
2230
|
+
shortestPath(source, target, options = {}) {
|
|
2231
|
+
this.#assertNode(source);
|
|
2232
|
+
this.#assertNode(target);
|
|
2233
|
+
if (source === target)
|
|
2234
|
+
return {
|
|
2235
|
+
value: [source],
|
|
2236
|
+
meta: { visitedNodes: 1, inspectedEdges: 0, truncated: false }
|
|
2237
|
+
};
|
|
2238
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
2239
|
+
const direction = options.direction ?? "outgoing";
|
|
2240
|
+
const maxDepth = options.maxDepth ?? Number.POSITIVE_INFINITY;
|
|
2241
|
+
const queue = [{ id: source, depth: 0 }];
|
|
2242
|
+
const parents = /* @__PURE__ */ new Map();
|
|
2243
|
+
const seen = /* @__PURE__ */ new Set([source]);
|
|
2244
|
+
let visitedNodes = 0;
|
|
2245
|
+
let inspectedEdges = 0;
|
|
2246
|
+
let truncated = false;
|
|
2247
|
+
for (let index = 0; index < queue.length; index += 1) {
|
|
2248
|
+
options.signal?.throwIfAborted();
|
|
2249
|
+
const current = queue[index];
|
|
2250
|
+
visitedNodes += 1;
|
|
2251
|
+
const neighbors = this.#neighbors(current.id, direction, kinds);
|
|
2252
|
+
inspectedEdges += neighbors.length;
|
|
2253
|
+
if (current.depth >= maxDepth) {
|
|
2254
|
+
if (neighbors.some((neighbor) => !seen.has(neighbor.id)))
|
|
2255
|
+
truncated = true;
|
|
2256
|
+
continue;
|
|
2257
|
+
}
|
|
2258
|
+
for (const neighbor of neighbors) {
|
|
2259
|
+
if (seen.has(neighbor.id))
|
|
2260
|
+
continue;
|
|
2261
|
+
parents.set(neighbor.id, current.id);
|
|
2262
|
+
if (neighbor.id === target)
|
|
2263
|
+
return {
|
|
2264
|
+
value: reconstructPath(source, target, parents),
|
|
2265
|
+
meta: { visitedNodes, inspectedEdges, truncated: false }
|
|
2266
|
+
};
|
|
2267
|
+
seen.add(neighbor.id);
|
|
2268
|
+
queue.push({ id: neighbor.id, depth: current.depth + 1 });
|
|
2269
|
+
}
|
|
2270
|
+
}
|
|
2271
|
+
return {
|
|
2272
|
+
value: [],
|
|
2273
|
+
meta: { visitedNodes, inspectedEdges, truncated }
|
|
2274
|
+
};
|
|
2275
|
+
}
|
|
2276
|
+
/** Return the induced subgraph over a bounded closure including the root. */
|
|
2277
|
+
subgraph(id, options = {}) {
|
|
2278
|
+
const closure = this.closure(id, options);
|
|
2279
|
+
const nodes = [id, ...closure.value].sort();
|
|
2280
|
+
const included = new Set(nodes);
|
|
2281
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
2282
|
+
const edges = /* @__PURE__ */ new Set();
|
|
2283
|
+
for (const node of nodes) {
|
|
2284
|
+
for (const edge of this.#outgoing.get(node) ?? []) {
|
|
2285
|
+
if (included.has(edge.source) && included.has(edge.target) && this.#matchesKinds(edge, kinds))
|
|
2286
|
+
edges.add(edge);
|
|
2287
|
+
}
|
|
2288
|
+
}
|
|
2289
|
+
return {
|
|
2290
|
+
value: {
|
|
2291
|
+
nodes,
|
|
2292
|
+
edges: [...edges].sort(compareEdges)
|
|
2293
|
+
},
|
|
2294
|
+
meta: closure.meta
|
|
2295
|
+
};
|
|
2296
|
+
}
|
|
2297
|
+
};
|
|
2298
|
+
function dependencyToRelationship(source, dependency, registry = defaultRegistry) {
|
|
2299
|
+
return {
|
|
2300
|
+
source,
|
|
2301
|
+
target: dependency.id,
|
|
2302
|
+
kind: registry.require(dependency.kind).kind,
|
|
2303
|
+
createdAt: dependency.created_at,
|
|
2304
|
+
author: dependency.author
|
|
2305
|
+
};
|
|
2306
|
+
}
|
|
2307
|
+
|
|
1727
2308
|
// dist/core/shared/levenshtein.js
|
|
1728
2309
|
function levenshteinDistanceWithinLimit(left, right, limit) {
|
|
1729
2310
|
if (left === right) {
|
|
@@ -1941,6 +2522,7 @@ function createEmptyExtensionRegistrationRegistry() {
|
|
|
1941
2522
|
flags: [],
|
|
1942
2523
|
item_fields: [],
|
|
1943
2524
|
item_types: [],
|
|
2525
|
+
relationship_kinds: [],
|
|
1944
2526
|
migrations: [],
|
|
1945
2527
|
profiles: [],
|
|
1946
2528
|
importers: [],
|
|
@@ -2038,7 +2620,8 @@ async function runCommandHandler(commands, context) {
|
|
|
2038
2620
|
args: cloneContextSnapshot(context.args),
|
|
2039
2621
|
options: cloneContextSnapshot(context.options),
|
|
2040
2622
|
global: cloneContextSnapshot(context.global),
|
|
2041
|
-
pm_root: context.pm_root
|
|
2623
|
+
pm_root: context.pm_root,
|
|
2624
|
+
...context.sdk === void 0 ? {} : { sdk: context.sdk }
|
|
2042
2625
|
});
|
|
2043
2626
|
return {
|
|
2044
2627
|
handled: true,
|
|
@@ -4442,6 +5025,7 @@ var ExtensionApiRegistrar = class {
|
|
|
4442
5025
|
this.registerFlags = this.registerFlags.bind(this);
|
|
4443
5026
|
this.registerItemFields = this.registerItemFields.bind(this);
|
|
4444
5027
|
this.registerItemTypes = this.registerItemTypes.bind(this);
|
|
5028
|
+
this.registerRelationshipKinds = this.registerRelationshipKinds.bind(this);
|
|
4445
5029
|
this.registerMigration = this.registerMigration.bind(this);
|
|
4446
5030
|
this.registerProfile = this.registerProfile.bind(this);
|
|
4447
5031
|
this.registerRenderer = this.registerRenderer.bind(this);
|
|
@@ -4691,6 +5275,33 @@ var ExtensionApiRegistrar = class {
|
|
|
4691
5275
|
types: normalizedTypes
|
|
4692
5276
|
});
|
|
4693
5277
|
}
|
|
5278
|
+
registerRelationshipKinds(definitions) {
|
|
5279
|
+
assertExtensionCapability(this.#loadedExtension, "schema", "registerRelationshipKinds");
|
|
5280
|
+
if (!this.allowRegistration("schema.relationshipkinds", "registerRelationshipKinds", "schema")) {
|
|
5281
|
+
return;
|
|
5282
|
+
}
|
|
5283
|
+
if (!Array.isArray(definitions)) {
|
|
5284
|
+
throw new TypeError("registerRelationshipKinds definitions requires an array of object definitions");
|
|
5285
|
+
}
|
|
5286
|
+
if (definitions.length === 0) {
|
|
5287
|
+
throw new TypeError("registerRelationshipKinds requires at least one definition");
|
|
5288
|
+
}
|
|
5289
|
+
const registry = createRelationshipKindRegistry();
|
|
5290
|
+
for (const registration of this.#registrationRegistry.relationship_kinds) {
|
|
5291
|
+
for (const definition of registration.definitions) {
|
|
5292
|
+
registry.register(definition);
|
|
5293
|
+
}
|
|
5294
|
+
}
|
|
5295
|
+
const validated = definitions.map((definition) => {
|
|
5296
|
+
registry.register(definition);
|
|
5297
|
+
return registry.require(definition.kind);
|
|
5298
|
+
});
|
|
5299
|
+
this.#registrationRegistry.relationship_kinds.push({
|
|
5300
|
+
layer: this.#loadedExtension.layer,
|
|
5301
|
+
name: this.#loadedExtension.name,
|
|
5302
|
+
definitions: validated
|
|
5303
|
+
});
|
|
5304
|
+
}
|
|
4694
5305
|
registerMigration(definition) {
|
|
4695
5306
|
assertExtensionCapability(this.#loadedExtension, "schema", "registerMigration");
|
|
4696
5307
|
if (!this.allowRegistration("schema.migrations", "registerMigration", "schema")) {
|
|
@@ -4924,11 +5535,13 @@ function getRegistrationCounts(registrations) {
|
|
|
4924
5535
|
const flagCount = registrations.flags.reduce((total, entry) => total + entry.flags.length, 0);
|
|
4925
5536
|
const itemFieldCount = registrations.item_fields.reduce((total, entry) => total + entry.fields.length, 0);
|
|
4926
5537
|
const itemTypeCount = registrations.item_types.reduce((total, entry) => total + entry.types.length, 0);
|
|
5538
|
+
const relationshipKindCount = (registrations.relationship_kinds ?? []).reduce((total, entry) => total + entry.definitions.length, 0);
|
|
4927
5539
|
return {
|
|
4928
5540
|
commands: commandCount,
|
|
4929
5541
|
flags: flagCount,
|
|
4930
5542
|
item_fields: itemFieldCount,
|
|
4931
5543
|
item_types: itemTypeCount,
|
|
5544
|
+
...relationshipKindCount > 0 ? { relationship_kinds: relationshipKindCount } : {},
|
|
4932
5545
|
migrations: registrations.migrations.length,
|
|
4933
5546
|
profiles: registrations.profiles.length,
|
|
4934
5547
|
importers: registrations.importers.length,
|
|
@@ -5126,6 +5739,7 @@ var EXTENSION_CAPABILITY_REGISTRATION_SURFACES = {
|
|
|
5126
5739
|
"registerFlags",
|
|
5127
5740
|
"registerItemFields",
|
|
5128
5741
|
"registerItemTypes",
|
|
5742
|
+
"registerRelationshipKinds",
|
|
5129
5743
|
"registerMigration",
|
|
5130
5744
|
"registerProfile"
|
|
5131
5745
|
],
|
|
@@ -5178,6 +5792,7 @@ function attributeCapabilityUsage(activation) {
|
|
|
5178
5792
|
record(registrations.flags, "schema");
|
|
5179
5793
|
record(registrations.item_fields, "schema");
|
|
5180
5794
|
record(registrations.item_types, "schema");
|
|
5795
|
+
record(registrations.relationship_kinds ?? [], "schema");
|
|
5181
5796
|
record(registrations.migrations, "schema");
|
|
5182
5797
|
record(registrations.profiles, "schema");
|
|
5183
5798
|
record(registrations.importers, "importers");
|
|
@@ -6144,6 +6759,7 @@ export {
|
|
|
6144
6759
|
resolveCommandOptionPolicyState,
|
|
6145
6760
|
validateTypeOptions,
|
|
6146
6761
|
ITEM_FILE_EXTENSIONS,
|
|
6762
|
+
discoverNearbyPmRoot,
|
|
6147
6763
|
resolvePmRoot,
|
|
6148
6764
|
resolveWorkspaceRoot,
|
|
6149
6765
|
resolveGlobalPmRoot,
|
|
@@ -6179,6 +6795,11 @@ export {
|
|
|
6179
6795
|
levenshteinDistanceWithinLimit,
|
|
6180
6796
|
evaluatePmMinVersionBound,
|
|
6181
6797
|
evaluatePmMaxVersionBound,
|
|
6798
|
+
RelationshipKindRegistry,
|
|
6799
|
+
createRelationshipKindRegistry,
|
|
6800
|
+
isOrderingRelationshipKind,
|
|
6801
|
+
RelationshipGraph,
|
|
6802
|
+
dependencyToRelationship,
|
|
6182
6803
|
normalizeKnownExtensionCapability,
|
|
6183
6804
|
resolveLegacyExtensionCapabilityAlias,
|
|
6184
6805
|
parseUnknownExtensionCapabilityWarning,
|
|
@@ -6234,6 +6855,6 @@ export {
|
|
|
6234
6855
|
parseRegisteredItemFieldAssignments,
|
|
6235
6856
|
applyRegisteredItemFieldDefaultsAndValidation
|
|
6236
6857
|
};
|
|
6237
|
-
//# sourceMappingURL=chunk-
|
|
6858
|
+
//# sourceMappingURL=chunk-D35WYXWC.js.map
|
|
6238
6859
|
|
|
6239
|
-
//# debugId=
|
|
6860
|
+
//# debugId=236f0bc3-3408-510b-9449-4755558bc2fb
|