@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
|
@@ -170,7 +170,7 @@ function resolveConfiguredPmPackageRoot(env = process.env, envName = "PM_CLI_PAC
|
|
|
170
170
|
!(function() {
|
|
171
171
|
try {
|
|
172
172
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
173
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
173
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "765cc85b-c5c2-5021-8237-60235d3726df");
|
|
174
174
|
} catch (e2) {
|
|
175
175
|
}
|
|
176
176
|
})();
|
|
@@ -214,6 +214,7 @@ var KNOWN_EXTENSION_POLICY_SURFACES = [
|
|
|
214
214
|
"schema.flags",
|
|
215
215
|
"schema.itemfields",
|
|
216
216
|
"schema.itemtypes",
|
|
217
|
+
"schema.relationshipkinds",
|
|
217
218
|
"schema.migrations",
|
|
218
219
|
"schema.profiles",
|
|
219
220
|
"parser.override",
|
|
@@ -1572,13 +1573,13 @@ function validateTypeOptions(typeName, rawTypeOptions, registry) {
|
|
|
1572
1573
|
}
|
|
1573
1574
|
|
|
1574
1575
|
// dist/core/store/paths.js
|
|
1575
|
-
import { readFileSync, statSync } from "node:fs";
|
|
1576
|
+
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
1576
1577
|
import os from "node:os";
|
|
1577
1578
|
import path3 from "node:path";
|
|
1578
1579
|
!(function() {
|
|
1579
1580
|
try {
|
|
1580
1581
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
1581
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
1582
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "d048a0fa-7ce5-56bf-90b4-beec55a3cb93");
|
|
1582
1583
|
} catch (e2) {
|
|
1583
1584
|
}
|
|
1584
1585
|
})();
|
|
@@ -1590,6 +1591,12 @@ var ITEM_FORMAT_BY_EXTENSION = {
|
|
|
1590
1591
|
".md": "json_markdown",
|
|
1591
1592
|
".toon": "toon"
|
|
1592
1593
|
};
|
|
1594
|
+
var NEARBY_TRACKER_SCAN_IGNORED_DIRECTORIES = /* @__PURE__ */ new Set([
|
|
1595
|
+
".git",
|
|
1596
|
+
"coverage",
|
|
1597
|
+
"dist",
|
|
1598
|
+
"node_modules"
|
|
1599
|
+
]);
|
|
1593
1600
|
var ITEM_FILE_EXTENSIONS = [".md", ".toon"];
|
|
1594
1601
|
function pathExists2(pathValue) {
|
|
1595
1602
|
try {
|
|
@@ -1629,6 +1636,14 @@ function discoverPmRootFromAncestors(cwd) {
|
|
|
1629
1636
|
current = parent;
|
|
1630
1637
|
}
|
|
1631
1638
|
}
|
|
1639
|
+
function discoverNearbyPmRoot(cwd, excludedRoot) {
|
|
1640
|
+
const normalizedExcluded = excludedRoot ? path3.resolve(excludedRoot) : void 0;
|
|
1641
|
+
try {
|
|
1642
|
+
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];
|
|
1643
|
+
} catch {
|
|
1644
|
+
return void 0;
|
|
1645
|
+
}
|
|
1646
|
+
}
|
|
1632
1647
|
function resolvePmRoot(cwd, cliPath) {
|
|
1633
1648
|
const envPath = process.env.PM_PATH;
|
|
1634
1649
|
const explicitPath = cliPath?.trim() || envPath?.trim();
|
|
@@ -1794,6 +1809,579 @@ function asRecordClone(value) {
|
|
|
1794
1809
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? { ...value } : {};
|
|
1795
1810
|
}
|
|
1796
1811
|
|
|
1812
|
+
// dist/sdk/relationships.js
|
|
1813
|
+
!(function() {
|
|
1814
|
+
try {
|
|
1815
|
+
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
1816
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "d57e6d37-e489-5e57-b146-bcc9fab2e3d7");
|
|
1817
|
+
} catch (e2) {
|
|
1818
|
+
}
|
|
1819
|
+
})();
|
|
1820
|
+
var BUILTIN_RELATIONSHIP_KINDS = [
|
|
1821
|
+
{
|
|
1822
|
+
kind: "blocked_by",
|
|
1823
|
+
direction: "directed",
|
|
1824
|
+
inverse: "blocks",
|
|
1825
|
+
ordering: true,
|
|
1826
|
+
precedence: "target_before_source",
|
|
1827
|
+
hierarchy: false,
|
|
1828
|
+
outgoing: "many",
|
|
1829
|
+
incoming: "many",
|
|
1830
|
+
lifecycle: "persistent",
|
|
1831
|
+
aliases: ["depends_on"],
|
|
1832
|
+
compatibilityVersion: 1,
|
|
1833
|
+
allowSelf: false
|
|
1834
|
+
},
|
|
1835
|
+
{
|
|
1836
|
+
kind: "blocks",
|
|
1837
|
+
direction: "directed",
|
|
1838
|
+
inverse: "blocked_by",
|
|
1839
|
+
ordering: true,
|
|
1840
|
+
precedence: "source_before_target",
|
|
1841
|
+
hierarchy: false,
|
|
1842
|
+
outgoing: "many",
|
|
1843
|
+
incoming: "many",
|
|
1844
|
+
lifecycle: "persistent",
|
|
1845
|
+
compatibilityVersion: 1,
|
|
1846
|
+
allowSelf: false
|
|
1847
|
+
},
|
|
1848
|
+
{
|
|
1849
|
+
kind: "parent",
|
|
1850
|
+
direction: "directed",
|
|
1851
|
+
inverse: "child",
|
|
1852
|
+
ordering: false,
|
|
1853
|
+
hierarchy: true,
|
|
1854
|
+
hierarchyDirection: "target_parent",
|
|
1855
|
+
outgoing: "one",
|
|
1856
|
+
incoming: "many",
|
|
1857
|
+
lifecycle: "supersedable",
|
|
1858
|
+
aliases: ["child_of", "epic"],
|
|
1859
|
+
compatibilityVersion: 1,
|
|
1860
|
+
allowSelf: false
|
|
1861
|
+
},
|
|
1862
|
+
{
|
|
1863
|
+
kind: "child",
|
|
1864
|
+
direction: "directed",
|
|
1865
|
+
inverse: "parent",
|
|
1866
|
+
ordering: false,
|
|
1867
|
+
hierarchy: true,
|
|
1868
|
+
hierarchyDirection: "source_parent",
|
|
1869
|
+
outgoing: "many",
|
|
1870
|
+
incoming: "one",
|
|
1871
|
+
lifecycle: "supersedable",
|
|
1872
|
+
aliases: ["parent_child", "task"],
|
|
1873
|
+
compatibilityVersion: 1,
|
|
1874
|
+
allowSelf: false
|
|
1875
|
+
},
|
|
1876
|
+
{
|
|
1877
|
+
kind: "related",
|
|
1878
|
+
direction: "undirected",
|
|
1879
|
+
ordering: false,
|
|
1880
|
+
hierarchy: false,
|
|
1881
|
+
outgoing: "many",
|
|
1882
|
+
incoming: "many",
|
|
1883
|
+
lifecycle: "persistent",
|
|
1884
|
+
aliases: ["related_to"],
|
|
1885
|
+
compatibilityVersion: 1,
|
|
1886
|
+
allowSelf: false
|
|
1887
|
+
},
|
|
1888
|
+
{
|
|
1889
|
+
kind: "discovered_from",
|
|
1890
|
+
direction: "directed",
|
|
1891
|
+
ordering: false,
|
|
1892
|
+
hierarchy: false,
|
|
1893
|
+
outgoing: "many",
|
|
1894
|
+
incoming: "many",
|
|
1895
|
+
lifecycle: "persistent",
|
|
1896
|
+
compatibilityVersion: 1,
|
|
1897
|
+
allowSelf: false
|
|
1898
|
+
},
|
|
1899
|
+
{
|
|
1900
|
+
kind: "incident_from",
|
|
1901
|
+
direction: "directed",
|
|
1902
|
+
ordering: false,
|
|
1903
|
+
hierarchy: false,
|
|
1904
|
+
outgoing: "many",
|
|
1905
|
+
incoming: "many",
|
|
1906
|
+
lifecycle: "persistent",
|
|
1907
|
+
compatibilityVersion: 1,
|
|
1908
|
+
allowSelf: false
|
|
1909
|
+
},
|
|
1910
|
+
{
|
|
1911
|
+
kind: "supersedes",
|
|
1912
|
+
direction: "directed",
|
|
1913
|
+
ordering: false,
|
|
1914
|
+
hierarchy: false,
|
|
1915
|
+
outgoing: "many",
|
|
1916
|
+
incoming: "many",
|
|
1917
|
+
lifecycle: "supersedable",
|
|
1918
|
+
compatibilityVersion: 1,
|
|
1919
|
+
allowSelf: false
|
|
1920
|
+
}
|
|
1921
|
+
];
|
|
1922
|
+
function normalizeKind(kind) {
|
|
1923
|
+
return kind.trim().toLowerCase().replaceAll("-", "_");
|
|
1924
|
+
}
|
|
1925
|
+
function normalizeInverseKind(inverse) {
|
|
1926
|
+
if (inverse === void 0)
|
|
1927
|
+
return void 0;
|
|
1928
|
+
const normalized = normalizeKind(inverse);
|
|
1929
|
+
if (!/^[a-z][a-z0-9_]*$/.test(normalized))
|
|
1930
|
+
throw new TypeError(`Invalid inverse relationship kind: ${inverse}`);
|
|
1931
|
+
return normalized;
|
|
1932
|
+
}
|
|
1933
|
+
function freezeValue(value, visited = /* @__PURE__ */ new Set()) {
|
|
1934
|
+
if (value === null || typeof value !== "object")
|
|
1935
|
+
return value;
|
|
1936
|
+
if (visited.has(value))
|
|
1937
|
+
return value;
|
|
1938
|
+
visited.add(value);
|
|
1939
|
+
if (Array.isArray(value)) {
|
|
1940
|
+
for (const entry of value)
|
|
1941
|
+
freezeValue(entry, visited);
|
|
1942
|
+
return Object.freeze(value);
|
|
1943
|
+
}
|
|
1944
|
+
for (const entry of Object.values(value))
|
|
1945
|
+
freezeValue(entry, visited);
|
|
1946
|
+
return Object.freeze(value);
|
|
1947
|
+
}
|
|
1948
|
+
function assertRelationshipPrecedence(definition, kind) {
|
|
1949
|
+
if (definition.precedence !== void 0 && definition.precedence !== "source_before_target" && definition.precedence !== "target_before_source")
|
|
1950
|
+
throw new TypeError(`Invalid relationship precedence for ${kind}`);
|
|
1951
|
+
if (!definition.ordering && definition.precedence !== void 0)
|
|
1952
|
+
throw new TypeError(`Non-ordering relationship kind cannot declare precedence: ${kind}`);
|
|
1953
|
+
}
|
|
1954
|
+
function assertRelationshipHierarchyDirection(definition, kind) {
|
|
1955
|
+
if (definition.hierarchyDirection !== void 0 && definition.hierarchyDirection !== "source_parent" && definition.hierarchyDirection !== "target_parent")
|
|
1956
|
+
throw new TypeError(`Invalid relationship hierarchy direction for ${kind}`);
|
|
1957
|
+
if (!definition.hierarchy && definition.hierarchyDirection !== void 0)
|
|
1958
|
+
throw new TypeError(`Non-hierarchy relationship kind cannot declare hierarchy direction: ${kind}`);
|
|
1959
|
+
}
|
|
1960
|
+
function normalizeRelationshipKindIdentifier(definition) {
|
|
1961
|
+
if (typeof definition !== "object" || definition === null)
|
|
1962
|
+
throw new TypeError("Relationship kind definition requires an object");
|
|
1963
|
+
if (typeof definition.kind !== "string")
|
|
1964
|
+
throw new TypeError("Relationship kind requires a string identifier");
|
|
1965
|
+
const kind = normalizeKind(definition.kind);
|
|
1966
|
+
if (!/^[a-z][a-z0-9_]*$/.test(kind))
|
|
1967
|
+
throw new TypeError(`Invalid relationship kind: ${definition.kind}`);
|
|
1968
|
+
if (!Number.isInteger(definition.compatibilityVersion) || definition.compatibilityVersion < 1)
|
|
1969
|
+
throw new TypeError(`Invalid compatibility version for ${kind}`);
|
|
1970
|
+
return kind;
|
|
1971
|
+
}
|
|
1972
|
+
function assertRelationshipKindSemantics(definition, kind) {
|
|
1973
|
+
if (!["directed", "undirected"].includes(definition.direction))
|
|
1974
|
+
throw new TypeError(`Invalid relationship direction for ${kind}`);
|
|
1975
|
+
if (typeof definition.ordering !== "boolean")
|
|
1976
|
+
throw new TypeError(`Invalid relationship ordering flag for ${kind}`);
|
|
1977
|
+
if (![void 0, true, false].includes(definition.hierarchy))
|
|
1978
|
+
throw new TypeError(`Invalid relationship hierarchy flag for ${kind}`);
|
|
1979
|
+
if (!["one", "many"].includes(definition.outgoing))
|
|
1980
|
+
throw new TypeError(`Invalid outgoing relationship cardinality for ${kind}`);
|
|
1981
|
+
if (!["one", "many"].includes(definition.incoming))
|
|
1982
|
+
throw new TypeError(`Invalid incoming relationship cardinality for ${kind}`);
|
|
1983
|
+
if (!["persistent", "supersedable", "ephemeral"].includes(definition.lifecycle))
|
|
1984
|
+
throw new TypeError(`Invalid relationship lifecycle for ${kind}`);
|
|
1985
|
+
if (typeof definition.allowSelf !== "boolean")
|
|
1986
|
+
throw new TypeError(`Invalid relationship self-edge flag for ${kind}`);
|
|
1987
|
+
}
|
|
1988
|
+
function assertRelationshipKindPayload(definition, kind) {
|
|
1989
|
+
if (definition.payloadSchema !== void 0 && (typeof definition.payloadSchema !== "object" || definition.payloadSchema === null || Array.isArray(definition.payloadSchema)))
|
|
1990
|
+
throw new TypeError(`Invalid relationship payload schema for ${kind}`);
|
|
1991
|
+
if (definition.aliases !== void 0 && (!Array.isArray(definition.aliases) || definition.aliases.some((alias) => typeof alias !== "string")))
|
|
1992
|
+
throw new TypeError(`Invalid relationship aliases for ${kind}`);
|
|
1993
|
+
}
|
|
1994
|
+
var RelationshipKindRegistry = class {
|
|
1995
|
+
#definitions = /* @__PURE__ */ new Map();
|
|
1996
|
+
#aliases = /* @__PURE__ */ new Map();
|
|
1997
|
+
/** Create a registry initialized with the stable built-in ontology by default. */
|
|
1998
|
+
constructor(definitions = BUILTIN_RELATIONSHIP_KINDS) {
|
|
1999
|
+
for (const definition of definitions)
|
|
2000
|
+
this.register(definition);
|
|
2001
|
+
}
|
|
2002
|
+
/** Register one definition after validating its identifier, version, and aliases. */
|
|
2003
|
+
register(definition) {
|
|
2004
|
+
const kind = normalizeRelationshipKindIdentifier(definition);
|
|
2005
|
+
assertRelationshipKindSemantics(definition, kind);
|
|
2006
|
+
assertRelationshipKindPayload(definition, kind);
|
|
2007
|
+
assertRelationshipPrecedence(definition, kind);
|
|
2008
|
+
assertRelationshipHierarchyDirection(definition, kind);
|
|
2009
|
+
if (this.#definitions.has(kind) || this.#aliases.has(kind))
|
|
2010
|
+
throw new TypeError(`Relationship kind already registered: ${kind}`);
|
|
2011
|
+
const inverse = normalizeInverseKind(definition.inverse);
|
|
2012
|
+
const aliases = [
|
|
2013
|
+
...new Set((definition.aliases ?? []).map(normalizeKind))
|
|
2014
|
+
].sort();
|
|
2015
|
+
for (const alias of aliases) {
|
|
2016
|
+
if (!/^[a-z][a-z0-9_]*$/.test(alias))
|
|
2017
|
+
throw new TypeError(`Invalid relationship alias: ${alias}`);
|
|
2018
|
+
if (alias === kind || this.#definitions.has(alias) || this.#aliases.has(alias))
|
|
2019
|
+
throw new TypeError(`Relationship alias already registered: ${alias}`);
|
|
2020
|
+
}
|
|
2021
|
+
const normalized = Object.freeze({
|
|
2022
|
+
...definition,
|
|
2023
|
+
kind,
|
|
2024
|
+
hierarchy: definition.hierarchy ?? false,
|
|
2025
|
+
inverse,
|
|
2026
|
+
aliases: Object.freeze(aliases),
|
|
2027
|
+
payloadSchema: definition.payloadSchema ? freezeValue(structuredClone(definition.payloadSchema)) : void 0
|
|
2028
|
+
});
|
|
2029
|
+
this.#definitions.set(kind, normalized);
|
|
2030
|
+
for (const alias of aliases)
|
|
2031
|
+
this.#aliases.set(alias, kind);
|
|
2032
|
+
return this;
|
|
2033
|
+
}
|
|
2034
|
+
/** Resolve a canonical kind or compatibility alias. */
|
|
2035
|
+
resolve(kind) {
|
|
2036
|
+
if (typeof kind !== "string")
|
|
2037
|
+
return void 0;
|
|
2038
|
+
const normalized = normalizeKind(kind);
|
|
2039
|
+
return this.#definitions.get(this.#aliases.get(normalized) ?? normalized);
|
|
2040
|
+
}
|
|
2041
|
+
/** Resolve a kind or throw a precise error suitable for command adapters. */
|
|
2042
|
+
require(kind) {
|
|
2043
|
+
const definition = this.resolve(kind);
|
|
2044
|
+
if (!definition)
|
|
2045
|
+
throw new TypeError(`Unknown relationship kind: ${kind}`);
|
|
2046
|
+
return definition;
|
|
2047
|
+
}
|
|
2048
|
+
/** Return a deterministic immutable registry snapshot. */
|
|
2049
|
+
list() {
|
|
2050
|
+
return Object.freeze([...this.#definitions.values()].sort((left, right) => left.kind.localeCompare(right.kind)));
|
|
2051
|
+
}
|
|
2052
|
+
};
|
|
2053
|
+
function createRelationshipKindRegistry() {
|
|
2054
|
+
return new RelationshipKindRegistry();
|
|
2055
|
+
}
|
|
2056
|
+
var defaultRegistry = createRelationshipKindRegistry();
|
|
2057
|
+
function isOrderingRelationshipKind(kind, registry = defaultRegistry) {
|
|
2058
|
+
return registry.resolve(kind)?.ordering === true;
|
|
2059
|
+
}
|
|
2060
|
+
function compareEdges(left, right) {
|
|
2061
|
+
return left.source.localeCompare(right.source) || left.target.localeCompare(right.target) || left.kind.localeCompare(right.kind);
|
|
2062
|
+
}
|
|
2063
|
+
function normalizeRelationshipEdge(candidate, nodes, registry) {
|
|
2064
|
+
const source = typeof candidate.source === "string" ? candidate.source.trim() : "";
|
|
2065
|
+
const target = typeof candidate.target === "string" ? candidate.target.trim() : "";
|
|
2066
|
+
const definition = registry.require(candidate.kind);
|
|
2067
|
+
if (!nodes.has(source) || !nodes.has(target))
|
|
2068
|
+
throw new TypeError(`Relationship endpoint not found: ${source} -> ${target}`);
|
|
2069
|
+
if (source === target && !definition.allowSelf)
|
|
2070
|
+
throw new TypeError(`Self relationship is not allowed for ${definition.kind}`);
|
|
2071
|
+
const edge = Object.freeze({
|
|
2072
|
+
...candidate,
|
|
2073
|
+
source,
|
|
2074
|
+
target,
|
|
2075
|
+
kind: definition.kind
|
|
2076
|
+
});
|
|
2077
|
+
const endpoints = definition.direction === "undirected" ? [source, target].sort().join("\0") : `${source}\0${target}`;
|
|
2078
|
+
return { edge, identity: `${definition.kind}\0${endpoints}` };
|
|
2079
|
+
}
|
|
2080
|
+
function appendIndexedEdge(index, node, edge) {
|
|
2081
|
+
const indexed = index.get(node);
|
|
2082
|
+
if (indexed)
|
|
2083
|
+
indexed.push(edge);
|
|
2084
|
+
else
|
|
2085
|
+
index.set(node, [edge]);
|
|
2086
|
+
}
|
|
2087
|
+
function normalizeNodeId(value) {
|
|
2088
|
+
return typeof value === "string" ? value.trim() : "";
|
|
2089
|
+
}
|
|
2090
|
+
function resolveExistingNodeId(value, ids) {
|
|
2091
|
+
const id = normalizeNodeId(value);
|
|
2092
|
+
return id && ids.has(id) ? id : void 0;
|
|
2093
|
+
}
|
|
2094
|
+
function reconstructPath(source, target, parents) {
|
|
2095
|
+
const path7 = [target];
|
|
2096
|
+
let cursor = target;
|
|
2097
|
+
while (cursor !== source) {
|
|
2098
|
+
cursor = parents.get(cursor);
|
|
2099
|
+
path7.push(cursor);
|
|
2100
|
+
}
|
|
2101
|
+
return path7.reverse();
|
|
2102
|
+
}
|
|
2103
|
+
var RelationshipGraph = class _RelationshipGraph {
|
|
2104
|
+
#registry;
|
|
2105
|
+
#nodes;
|
|
2106
|
+
#nodeSnapshot;
|
|
2107
|
+
#edges;
|
|
2108
|
+
#outgoing = /* @__PURE__ */ new Map();
|
|
2109
|
+
#incoming = /* @__PURE__ */ new Map();
|
|
2110
|
+
/** Validate and index nodes and edges without reading tracker storage. */
|
|
2111
|
+
constructor(nodes, edges, registry = defaultRegistry) {
|
|
2112
|
+
this.#registry = registry;
|
|
2113
|
+
this.#nodes = new Set([...nodes].filter((id) => typeof id === "string").map((id) => id.trim()).filter(Boolean));
|
|
2114
|
+
this.#nodeSnapshot = Object.freeze([...this.#nodes].sort());
|
|
2115
|
+
const deduped = /* @__PURE__ */ new Map();
|
|
2116
|
+
for (const candidate of edges) {
|
|
2117
|
+
const { edge, identity } = normalizeRelationshipEdge(candidate, this.#nodes, registry);
|
|
2118
|
+
deduped.set(identity, edge);
|
|
2119
|
+
}
|
|
2120
|
+
this.#edges = Object.freeze([...deduped.values()].sort(compareEdges));
|
|
2121
|
+
for (const edge of this.#edges) {
|
|
2122
|
+
appendIndexedEdge(this.#outgoing, edge.source, edge);
|
|
2123
|
+
appendIndexedEdge(this.#incoming, edge.target, edge);
|
|
2124
|
+
if (registry.require(edge.kind).direction === "undirected") {
|
|
2125
|
+
appendIndexedEdge(this.#outgoing, edge.target, edge);
|
|
2126
|
+
appendIndexedEdge(this.#incoming, edge.source, edge);
|
|
2127
|
+
}
|
|
2128
|
+
}
|
|
2129
|
+
}
|
|
2130
|
+
/** Build the graph directly from item metadata, including hierarchy and legacy blocker fields. */
|
|
2131
|
+
static fromItems(items, registry = defaultRegistry) {
|
|
2132
|
+
const ids = new Set(items.map((item) => normalizeNodeId(item.id)).filter(Boolean));
|
|
2133
|
+
const edges = [];
|
|
2134
|
+
for (const item of items) {
|
|
2135
|
+
const source = normalizeNodeId(item.id);
|
|
2136
|
+
if (!source)
|
|
2137
|
+
continue;
|
|
2138
|
+
const parent = resolveExistingNodeId(item.parent, ids);
|
|
2139
|
+
if (parent)
|
|
2140
|
+
edges.push({ source, target: parent, kind: "parent" });
|
|
2141
|
+
const blockedBy = resolveExistingNodeId(item.blocked_by, ids);
|
|
2142
|
+
if (blockedBy)
|
|
2143
|
+
edges.push({
|
|
2144
|
+
source,
|
|
2145
|
+
target: blockedBy,
|
|
2146
|
+
kind: "blocked_by"
|
|
2147
|
+
});
|
|
2148
|
+
for (const dependency of item.dependencies ?? []) {
|
|
2149
|
+
const dependencyId = resolveExistingNodeId(dependency.id, ids);
|
|
2150
|
+
if (dependencyId && registry.resolve(dependency.kind))
|
|
2151
|
+
edges.push({
|
|
2152
|
+
source,
|
|
2153
|
+
target: dependencyId,
|
|
2154
|
+
kind: dependency.kind,
|
|
2155
|
+
createdAt: dependency.created_at,
|
|
2156
|
+
author: dependency.author
|
|
2157
|
+
});
|
|
2158
|
+
}
|
|
2159
|
+
}
|
|
2160
|
+
return new _RelationshipGraph(ids, edges, registry);
|
|
2161
|
+
}
|
|
2162
|
+
/** Return the deterministic immutable edge snapshot. */
|
|
2163
|
+
edges() {
|
|
2164
|
+
return this.#edges;
|
|
2165
|
+
}
|
|
2166
|
+
/** Return the deterministic immutable edges incident to one node. */
|
|
2167
|
+
incidentEdges(id) {
|
|
2168
|
+
this.#assertNode(id);
|
|
2169
|
+
const outgoing = this.#outgoing.get(id) ?? [];
|
|
2170
|
+
const incoming = this.#incoming.get(id) ?? [];
|
|
2171
|
+
if (outgoing.length === 0)
|
|
2172
|
+
return Object.freeze([...incoming]);
|
|
2173
|
+
if (incoming.length === 0)
|
|
2174
|
+
return Object.freeze([...outgoing]);
|
|
2175
|
+
const edges = [];
|
|
2176
|
+
let outgoingIndex = 0;
|
|
2177
|
+
let incomingIndex = 0;
|
|
2178
|
+
while (outgoingIndex < outgoing.length || incomingIndex < incoming.length) {
|
|
2179
|
+
const outgoingEdge = outgoing[outgoingIndex];
|
|
2180
|
+
const incomingEdge = incoming[incomingIndex];
|
|
2181
|
+
const edge = outgoingEdge === void 0 ? incomingEdge : incomingEdge === void 0 || compareEdges(outgoingEdge, incomingEdge) <= 0 ? outgoingEdge : incomingEdge;
|
|
2182
|
+
if (edges.at(-1) !== edge)
|
|
2183
|
+
edges.push(edge);
|
|
2184
|
+
if (outgoingEdge === edge)
|
|
2185
|
+
outgoingIndex += 1;
|
|
2186
|
+
if (incomingEdge === edge)
|
|
2187
|
+
incomingIndex += 1;
|
|
2188
|
+
}
|
|
2189
|
+
return Object.freeze(edges);
|
|
2190
|
+
}
|
|
2191
|
+
/** Return the deterministic immutable node snapshot. */
|
|
2192
|
+
nodes() {
|
|
2193
|
+
return this.#nodeSnapshot;
|
|
2194
|
+
}
|
|
2195
|
+
/** Report whether an identifier names an indexed node. */
|
|
2196
|
+
hasNode(id) {
|
|
2197
|
+
return this.#nodes.has(id);
|
|
2198
|
+
}
|
|
2199
|
+
/** Return the registry that interprets this graph's relationship kinds. */
|
|
2200
|
+
registry() {
|
|
2201
|
+
return this.#registry;
|
|
2202
|
+
}
|
|
2203
|
+
#assertNode(id) {
|
|
2204
|
+
if (!this.#nodes.has(id))
|
|
2205
|
+
throw new TypeError(`Relationship node not found: ${id}`);
|
|
2206
|
+
}
|
|
2207
|
+
#matchesKinds(edge, kinds) {
|
|
2208
|
+
if (!kinds)
|
|
2209
|
+
return true;
|
|
2210
|
+
const definition = this.#registry.require(edge.kind);
|
|
2211
|
+
return kinds.has(edge.kind) || definition.inverse !== void 0 && kinds.has(definition.inverse);
|
|
2212
|
+
}
|
|
2213
|
+
#neighbors(id, direction, kinds) {
|
|
2214
|
+
const candidates = [
|
|
2215
|
+
...direction === "incoming" ? [] : this.#outgoing.get(id) ?? [],
|
|
2216
|
+
...direction === "outgoing" ? [] : this.#incoming.get(id) ?? []
|
|
2217
|
+
];
|
|
2218
|
+
return [...new Set(candidates)].filter((edge) => this.#matchesKinds(edge, kinds)).map((edge) => ({
|
|
2219
|
+
id: edge.source === id ? edge.target : edge.source,
|
|
2220
|
+
edge
|
|
2221
|
+
})).sort((left, right) => left.id.localeCompare(right.id) || compareEdges(left.edge, right.edge));
|
|
2222
|
+
}
|
|
2223
|
+
/** Return one-hop adjacent node identifiers. */
|
|
2224
|
+
adjacency(id, options = {}) {
|
|
2225
|
+
this.#assertNode(id);
|
|
2226
|
+
options.signal?.throwIfAborted();
|
|
2227
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
2228
|
+
const rows = this.#neighbors(id, options.direction ?? "outgoing", kinds);
|
|
2229
|
+
const limit = options.limit ?? Number.POSITIVE_INFINITY;
|
|
2230
|
+
const uniqueNeighbors = [...new Set(rows.map((row) => row.id))];
|
|
2231
|
+
const value = uniqueNeighbors.slice(0, limit);
|
|
2232
|
+
return {
|
|
2233
|
+
value,
|
|
2234
|
+
meta: {
|
|
2235
|
+
visitedNodes: 1,
|
|
2236
|
+
inspectedEdges: rows.length,
|
|
2237
|
+
truncated: value.length < uniqueNeighbors.length,
|
|
2238
|
+
nextCursor: value.at(-1)
|
|
2239
|
+
}
|
|
2240
|
+
};
|
|
2241
|
+
}
|
|
2242
|
+
/** Return deterministic one-hop neighbor rows paired with each connecting edge. */
|
|
2243
|
+
neighborEdges(id, options = {}) {
|
|
2244
|
+
this.#assertNode(id);
|
|
2245
|
+
options.signal?.throwIfAborted();
|
|
2246
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
2247
|
+
const rows = this.#neighbors(id, options.direction ?? "outgoing", kinds);
|
|
2248
|
+
const limit = options.limit ?? Number.POSITIVE_INFINITY;
|
|
2249
|
+
const value = rows.slice(0, limit);
|
|
2250
|
+
return {
|
|
2251
|
+
value,
|
|
2252
|
+
meta: {
|
|
2253
|
+
visitedNodes: 1,
|
|
2254
|
+
inspectedEdges: rows.length,
|
|
2255
|
+
truncated: value.length < rows.length,
|
|
2256
|
+
nextCursor: value.at(-1)?.id
|
|
2257
|
+
}
|
|
2258
|
+
};
|
|
2259
|
+
}
|
|
2260
|
+
/** Return bounded transitive closure in breadth-first discovery order. */
|
|
2261
|
+
closure(id, options = {}) {
|
|
2262
|
+
this.#assertNode(id);
|
|
2263
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
2264
|
+
const direction = options.direction ?? "outgoing";
|
|
2265
|
+
const limit = options.limit ?? Number.POSITIVE_INFINITY;
|
|
2266
|
+
const maxDepth = options.maxDepth ?? Number.POSITIVE_INFINITY;
|
|
2267
|
+
const seen = /* @__PURE__ */ new Set([id]);
|
|
2268
|
+
const value = [];
|
|
2269
|
+
const queue = [{ id, depth: 0 }];
|
|
2270
|
+
let visitedNodes = 0;
|
|
2271
|
+
let inspectedEdges = 0;
|
|
2272
|
+
let truncated = false;
|
|
2273
|
+
traversal: for (let index = 0; index < queue.length; index += 1) {
|
|
2274
|
+
options.signal?.throwIfAborted();
|
|
2275
|
+
const current = queue[index];
|
|
2276
|
+
visitedNodes += 1;
|
|
2277
|
+
const neighbors = this.#neighbors(current.id, direction, kinds);
|
|
2278
|
+
inspectedEdges += neighbors.length;
|
|
2279
|
+
if (current.depth >= maxDepth) {
|
|
2280
|
+
if (neighbors.some((neighbor) => !seen.has(neighbor.id)))
|
|
2281
|
+
truncated = true;
|
|
2282
|
+
continue;
|
|
2283
|
+
}
|
|
2284
|
+
for (const neighbor of neighbors) {
|
|
2285
|
+
if (seen.has(neighbor.id))
|
|
2286
|
+
continue;
|
|
2287
|
+
if (value.length >= limit) {
|
|
2288
|
+
truncated = true;
|
|
2289
|
+
break traversal;
|
|
2290
|
+
}
|
|
2291
|
+
seen.add(neighbor.id);
|
|
2292
|
+
value.push(neighbor.id);
|
|
2293
|
+
queue.push({ id: neighbor.id, depth: current.depth + 1 });
|
|
2294
|
+
}
|
|
2295
|
+
}
|
|
2296
|
+
return {
|
|
2297
|
+
value,
|
|
2298
|
+
meta: {
|
|
2299
|
+
visitedNodes,
|
|
2300
|
+
inspectedEdges,
|
|
2301
|
+
truncated,
|
|
2302
|
+
nextCursor: value.at(-1)
|
|
2303
|
+
}
|
|
2304
|
+
};
|
|
2305
|
+
}
|
|
2306
|
+
/** Return a deterministic shortest path, or an empty array when disconnected. */
|
|
2307
|
+
shortestPath(source, target, options = {}) {
|
|
2308
|
+
this.#assertNode(source);
|
|
2309
|
+
this.#assertNode(target);
|
|
2310
|
+
if (source === target)
|
|
2311
|
+
return {
|
|
2312
|
+
value: [source],
|
|
2313
|
+
meta: { visitedNodes: 1, inspectedEdges: 0, truncated: false }
|
|
2314
|
+
};
|
|
2315
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
2316
|
+
const direction = options.direction ?? "outgoing";
|
|
2317
|
+
const maxDepth = options.maxDepth ?? Number.POSITIVE_INFINITY;
|
|
2318
|
+
const queue = [{ id: source, depth: 0 }];
|
|
2319
|
+
const parents = /* @__PURE__ */ new Map();
|
|
2320
|
+
const seen = /* @__PURE__ */ new Set([source]);
|
|
2321
|
+
let visitedNodes = 0;
|
|
2322
|
+
let inspectedEdges = 0;
|
|
2323
|
+
let truncated = false;
|
|
2324
|
+
for (let index = 0; index < queue.length; index += 1) {
|
|
2325
|
+
options.signal?.throwIfAborted();
|
|
2326
|
+
const current = queue[index];
|
|
2327
|
+
visitedNodes += 1;
|
|
2328
|
+
const neighbors = this.#neighbors(current.id, direction, kinds);
|
|
2329
|
+
inspectedEdges += neighbors.length;
|
|
2330
|
+
if (current.depth >= maxDepth) {
|
|
2331
|
+
if (neighbors.some((neighbor) => !seen.has(neighbor.id)))
|
|
2332
|
+
truncated = true;
|
|
2333
|
+
continue;
|
|
2334
|
+
}
|
|
2335
|
+
for (const neighbor of neighbors) {
|
|
2336
|
+
if (seen.has(neighbor.id))
|
|
2337
|
+
continue;
|
|
2338
|
+
parents.set(neighbor.id, current.id);
|
|
2339
|
+
if (neighbor.id === target)
|
|
2340
|
+
return {
|
|
2341
|
+
value: reconstructPath(source, target, parents),
|
|
2342
|
+
meta: { visitedNodes, inspectedEdges, truncated: false }
|
|
2343
|
+
};
|
|
2344
|
+
seen.add(neighbor.id);
|
|
2345
|
+
queue.push({ id: neighbor.id, depth: current.depth + 1 });
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
return {
|
|
2349
|
+
value: [],
|
|
2350
|
+
meta: { visitedNodes, inspectedEdges, truncated }
|
|
2351
|
+
};
|
|
2352
|
+
}
|
|
2353
|
+
/** Return the induced subgraph over a bounded closure including the root. */
|
|
2354
|
+
subgraph(id, options = {}) {
|
|
2355
|
+
const closure = this.closure(id, options);
|
|
2356
|
+
const nodes = [id, ...closure.value].sort();
|
|
2357
|
+
const included = new Set(nodes);
|
|
2358
|
+
const kinds = options.kinds ? new Set(options.kinds.map((kind) => this.#registry.require(kind).kind)) : void 0;
|
|
2359
|
+
const edges = /* @__PURE__ */ new Set();
|
|
2360
|
+
for (const node of nodes) {
|
|
2361
|
+
for (const edge of this.#outgoing.get(node) ?? []) {
|
|
2362
|
+
if (included.has(edge.source) && included.has(edge.target) && this.#matchesKinds(edge, kinds))
|
|
2363
|
+
edges.add(edge);
|
|
2364
|
+
}
|
|
2365
|
+
}
|
|
2366
|
+
return {
|
|
2367
|
+
value: {
|
|
2368
|
+
nodes,
|
|
2369
|
+
edges: [...edges].sort(compareEdges)
|
|
2370
|
+
},
|
|
2371
|
+
meta: closure.meta
|
|
2372
|
+
};
|
|
2373
|
+
}
|
|
2374
|
+
};
|
|
2375
|
+
function dependencyToRelationship(source, dependency, registry = defaultRegistry) {
|
|
2376
|
+
return {
|
|
2377
|
+
source,
|
|
2378
|
+
target: dependency.id,
|
|
2379
|
+
kind: registry.require(dependency.kind).kind,
|
|
2380
|
+
createdAt: dependency.created_at,
|
|
2381
|
+
author: dependency.author
|
|
2382
|
+
};
|
|
2383
|
+
}
|
|
2384
|
+
|
|
1797
2385
|
// dist/core/shared/levenshtein.js
|
|
1798
2386
|
!(function() {
|
|
1799
2387
|
try {
|
|
@@ -1987,7 +2575,7 @@ function parseLegacyExtensionCapabilityAliasWarning(warning) {
|
|
|
1987
2575
|
!(function() {
|
|
1988
2576
|
try {
|
|
1989
2577
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
1990
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
2578
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "24b47552-6812-588e-8dbf-38b18ab0b706");
|
|
1991
2579
|
} catch (e2) {
|
|
1992
2580
|
}
|
|
1993
2581
|
})();
|
|
@@ -2032,6 +2620,7 @@ function createEmptyExtensionRegistrationRegistry() {
|
|
|
2032
2620
|
flags: [],
|
|
2033
2621
|
item_fields: [],
|
|
2034
2622
|
item_types: [],
|
|
2623
|
+
relationship_kinds: [],
|
|
2035
2624
|
migrations: [],
|
|
2036
2625
|
profiles: [],
|
|
2037
2626
|
importers: [],
|
|
@@ -2074,7 +2663,7 @@ function cloneContextSnapshot(value) {
|
|
|
2074
2663
|
!(function() {
|
|
2075
2664
|
try {
|
|
2076
2665
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
2077
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
2666
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "3215fb32-6670-55b4-87ac-e3635716ad4b");
|
|
2078
2667
|
} catch (e2) {
|
|
2079
2668
|
}
|
|
2080
2669
|
})();
|
|
@@ -2143,7 +2732,8 @@ async function runCommandHandler(commands, context) {
|
|
|
2143
2732
|
args: cloneContextSnapshot(context.args),
|
|
2144
2733
|
options: cloneContextSnapshot(context.options),
|
|
2145
2734
|
global: cloneContextSnapshot(context.global),
|
|
2146
|
-
pm_root: context.pm_root
|
|
2735
|
+
pm_root: context.pm_root,
|
|
2736
|
+
...context.sdk === void 0 ? {} : { sdk: context.sdk }
|
|
2147
2737
|
});
|
|
2148
2738
|
return {
|
|
2149
2739
|
handled: true,
|
|
@@ -3275,7 +3865,7 @@ function evaluateExtensionPolicyForRegistration(policy, extension, surface, meth
|
|
|
3275
3865
|
!(function() {
|
|
3276
3866
|
try {
|
|
3277
3867
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
3278
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
3868
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "07895505-edff-5b68-b610-00724d711422");
|
|
3279
3869
|
} catch (e2) {
|
|
3280
3870
|
}
|
|
3281
3871
|
})();
|
|
@@ -4589,6 +5179,7 @@ var ExtensionApiRegistrar = class {
|
|
|
4589
5179
|
this.registerFlags = this.registerFlags.bind(this);
|
|
4590
5180
|
this.registerItemFields = this.registerItemFields.bind(this);
|
|
4591
5181
|
this.registerItemTypes = this.registerItemTypes.bind(this);
|
|
5182
|
+
this.registerRelationshipKinds = this.registerRelationshipKinds.bind(this);
|
|
4592
5183
|
this.registerMigration = this.registerMigration.bind(this);
|
|
4593
5184
|
this.registerProfile = this.registerProfile.bind(this);
|
|
4594
5185
|
this.registerRenderer = this.registerRenderer.bind(this);
|
|
@@ -4838,6 +5429,33 @@ var ExtensionApiRegistrar = class {
|
|
|
4838
5429
|
types: normalizedTypes
|
|
4839
5430
|
});
|
|
4840
5431
|
}
|
|
5432
|
+
registerRelationshipKinds(definitions) {
|
|
5433
|
+
assertExtensionCapability(this.#loadedExtension, "schema", "registerRelationshipKinds");
|
|
5434
|
+
if (!this.allowRegistration("schema.relationshipkinds", "registerRelationshipKinds", "schema")) {
|
|
5435
|
+
return;
|
|
5436
|
+
}
|
|
5437
|
+
if (!Array.isArray(definitions)) {
|
|
5438
|
+
throw new TypeError("registerRelationshipKinds definitions requires an array of object definitions");
|
|
5439
|
+
}
|
|
5440
|
+
if (definitions.length === 0) {
|
|
5441
|
+
throw new TypeError("registerRelationshipKinds requires at least one definition");
|
|
5442
|
+
}
|
|
5443
|
+
const registry = createRelationshipKindRegistry();
|
|
5444
|
+
for (const registration of this.#registrationRegistry.relationship_kinds) {
|
|
5445
|
+
for (const definition of registration.definitions) {
|
|
5446
|
+
registry.register(definition);
|
|
5447
|
+
}
|
|
5448
|
+
}
|
|
5449
|
+
const validated = definitions.map((definition) => {
|
|
5450
|
+
registry.register(definition);
|
|
5451
|
+
return registry.require(definition.kind);
|
|
5452
|
+
});
|
|
5453
|
+
this.#registrationRegistry.relationship_kinds.push({
|
|
5454
|
+
layer: this.#loadedExtension.layer,
|
|
5455
|
+
name: this.#loadedExtension.name,
|
|
5456
|
+
definitions: validated
|
|
5457
|
+
});
|
|
5458
|
+
}
|
|
4841
5459
|
registerMigration(definition) {
|
|
4842
5460
|
assertExtensionCapability(this.#loadedExtension, "schema", "registerMigration");
|
|
4843
5461
|
if (!this.allowRegistration("schema.migrations", "registerMigration", "schema")) {
|
|
@@ -5071,11 +5689,13 @@ function getRegistrationCounts(registrations) {
|
|
|
5071
5689
|
const flagCount = registrations.flags.reduce((total, entry) => total + entry.flags.length, 0);
|
|
5072
5690
|
const itemFieldCount = registrations.item_fields.reduce((total, entry) => total + entry.fields.length, 0);
|
|
5073
5691
|
const itemTypeCount = registrations.item_types.reduce((total, entry) => total + entry.types.length, 0);
|
|
5692
|
+
const relationshipKindCount = (registrations.relationship_kinds ?? []).reduce((total, entry) => total + entry.definitions.length, 0);
|
|
5074
5693
|
return {
|
|
5075
5694
|
commands: commandCount,
|
|
5076
5695
|
flags: flagCount,
|
|
5077
5696
|
item_fields: itemFieldCount,
|
|
5078
5697
|
item_types: itemTypeCount,
|
|
5698
|
+
...relationshipKindCount > 0 ? { relationship_kinds: relationshipKindCount } : {},
|
|
5079
5699
|
migrations: registrations.migrations.length,
|
|
5080
5700
|
profiles: registrations.profiles.length,
|
|
5081
5701
|
importers: registrations.importers.length,
|
|
@@ -5262,7 +5882,7 @@ async function activateExtensions(loadResult) {
|
|
|
5262
5882
|
!(function() {
|
|
5263
5883
|
try {
|
|
5264
5884
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
5265
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
5885
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "44358d55-62cf-55fb-a61b-1c1d45bead09");
|
|
5266
5886
|
} catch (e2) {
|
|
5267
5887
|
}
|
|
5268
5888
|
})();
|
|
@@ -5280,6 +5900,7 @@ var EXTENSION_CAPABILITY_REGISTRATION_SURFACES = {
|
|
|
5280
5900
|
"registerFlags",
|
|
5281
5901
|
"registerItemFields",
|
|
5282
5902
|
"registerItemTypes",
|
|
5903
|
+
"registerRelationshipKinds",
|
|
5283
5904
|
"registerMigration",
|
|
5284
5905
|
"registerProfile"
|
|
5285
5906
|
],
|
|
@@ -5332,6 +5953,7 @@ function attributeCapabilityUsage(activation) {
|
|
|
5332
5953
|
record(registrations.flags, "schema");
|
|
5333
5954
|
record(registrations.item_fields, "schema");
|
|
5334
5955
|
record(registrations.item_types, "schema");
|
|
5956
|
+
record(registrations.relationship_kinds ?? [], "schema");
|
|
5335
5957
|
record(registrations.migrations, "schema");
|
|
5336
5958
|
record(registrations.profiles, "schema");
|
|
5337
5959
|
record(registrations.importers, "importers");
|
|
@@ -6326,6 +6948,7 @@ export {
|
|
|
6326
6948
|
resolveCommandOptionPolicyState,
|
|
6327
6949
|
validateTypeOptions,
|
|
6328
6950
|
ITEM_FILE_EXTENSIONS,
|
|
6951
|
+
discoverNearbyPmRoot,
|
|
6329
6952
|
resolvePmRoot,
|
|
6330
6953
|
resolveWorkspaceRoot,
|
|
6331
6954
|
resolveGlobalPmRoot,
|
|
@@ -6361,6 +6984,11 @@ export {
|
|
|
6361
6984
|
levenshteinDistanceWithinLimit,
|
|
6362
6985
|
evaluatePmMinVersionBound,
|
|
6363
6986
|
evaluatePmMaxVersionBound,
|
|
6987
|
+
RelationshipKindRegistry,
|
|
6988
|
+
createRelationshipKindRegistry,
|
|
6989
|
+
isOrderingRelationshipKind,
|
|
6990
|
+
RelationshipGraph,
|
|
6991
|
+
dependencyToRelationship,
|
|
6364
6992
|
normalizeKnownExtensionCapability,
|
|
6365
6993
|
resolveLegacyExtensionCapabilityAlias,
|
|
6366
6994
|
parseUnknownExtensionCapabilityWarning,
|
|
@@ -6416,4 +7044,4 @@ export {
|
|
|
6416
7044
|
parseRegisteredItemFieldAssignments,
|
|
6417
7045
|
applyRegisteredItemFieldDefaultsAndValidation
|
|
6418
7046
|
};
|
|
6419
|
-
//# sourceMappingURL=chunk-
|
|
7047
|
+
//# sourceMappingURL=chunk-WCBB6VI3.js.map
|