ryugi-artifacts 1.70.2 → 1.71.0
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/README.md +16 -12
- package/dist/cli.cjs +3 -3
- package/dist/comment-threads.cjs +52 -1
- package/dist/output-bootstrap.cjs +626 -8
- package/dist/server.cjs +1 -1
- package/dist/viewer/{AgentStatusPill-5vOW9xJv.js → AgentStatusPill-32K1bSLj.js} +1 -1
- package/dist/viewer/{ArtboardLayout-SA1gCqPF.js → ArtboardLayout-eR_sC6MB.js} +1 -1
- package/dist/viewer/{ArtifactList-DKmeVnKi.js → ArtifactList-DV4G_qK2.js} +1 -1
- package/dist/viewer/{AutoPublishPrompt-BYAg2V0y.js → AutoPublishPrompt-BWNRGLoX.js} +1 -1
- package/dist/viewer/{Avatar-Cr9OW8YH.js → Avatar-DGMPym4p.js} +1 -1
- package/dist/viewer/{Avatar-NMdjRnIS.js → Avatar-oPUFOoVq.js} +1 -1
- package/dist/viewer/{BottomSheet-BQnGJL4p.js → BottomSheet-BqMckeYt.js} +1 -1
- package/dist/viewer/Canvas-BpSDoGt-.js +1 -0
- package/dist/viewer/{CompositeItem-tvyaiM7D.js → CompositeItem-DA-WyEr7.js} +1 -1
- package/dist/viewer/DocumentLayout-BXegH0sF.js +2 -0
- package/dist/viewer/{DocumentPage-CxPKfY8H.js → DocumentPage-Dw7m0Oxi.js} +2 -2
- package/dist/viewer/{DropdownMenu-DQRhgqL-.js → DropdownMenu-C4feb-Mq.js} +1 -1
- package/dist/viewer/{HtmlLayout-DzcNJHBz.js → HtmlLayout-DltXJryH.js} +1 -1
- package/dist/viewer/{MenuSubmenuTrigger-CFAM5XEZ.js → MenuSubmenuTrigger-B_Ya87it.js} +1 -1
- package/dist/viewer/{MenuTrigger-COssWqPW.js → MenuTrigger-C421vH74.js} +1 -1
- package/dist/viewer/{PhoneArtboardBar-B6JoWeSs.js → PhoneArtboardBar-BUlgF3vS.js} +1 -1
- package/dist/viewer/{PhoneSheet-F7YTU--u.js → PhoneSheet-4j89IU2w.js} +1 -1
- package/dist/viewer/{Popover-4xoki5-K.js → Popover-C23mZ93A.js} +1 -1
- package/dist/viewer/{PreviewLayout-4K_gFN2k.js → PreviewLayout-CMYzEEL_.js} +2 -2
- package/dist/viewer/{Segmented-CFwxjVOk.js → Segmented-CRw0XP1f.js} +1 -1
- package/dist/viewer/{Select-CwMZ_V48.js → Select-BCfJ7Dw_.js} +1 -1
- package/dist/viewer/{SelectScrollUpArrow-D1wI2boK.js → SelectScrollUpArrow-CTtHJLxk.js} +1 -1
- package/dist/viewer/{SettingsDialog-ytisgF60.js → SettingsDialog-DXraxvYr.js} +1 -1
- package/dist/viewer/{SnapshotDocument-hqdNWrGC.js → SnapshotDocument-DK5PtxZf.js} +1 -1
- package/dist/viewer/{SplitShell-CPNXykMT.js → SplitShell-BXL8Wrt6.js} +1 -1
- package/dist/viewer/{ThreadView-CxcjZsZO.js → ThreadView-BB278JlB.js} +1 -1
- package/dist/viewer/{TooltipPopup-D7gvHCZl.js → TooltipPopup-CfrIPB9r.js} +1 -1
- package/dist/viewer/{VirtualizedEditor-uWe43zaI-jXQYKA6Y.js → VirtualizedEditor-uWe43zaI-CU144P8N.js} +1 -1
- package/dist/viewer/{VirtualizedRenderer-C_d95FXi-DXOAwChO.js → VirtualizedRenderer-C_d95FXi-F9BGUjW7.js} +1 -1
- package/dist/viewer/{WarningsBadge-yykGlxIS.js → WarningsBadge-8P8HTqhj.js} +1 -1
- package/dist/viewer/{WhiteboardLayout-DrbL4lir.js → WhiteboardLayout-CvpcOBD0.js} +1 -1
- package/dist/viewer/{WritingCursor-BmvJsfI4.js → WritingCursor-D5F8GgYm.js} +1 -1
- package/dist/viewer/{abnfDiagram-VCTEODGH-BcWo9FwK.js → abnfDiagram-VCTEODGH-B0LKfCdw.js} +1 -1
- package/dist/viewer/{agentLook-t-qk7xG-.js → agentLook-nPOaN-2B.js} +1 -1
- package/dist/viewer/{anchor-CMDdppxq.js → anchor-DOedlAmb.js} +1 -1
- package/dist/viewer/{ar-SA-G6X2FPQ2-Cm_ExiPk.js → ar-SA-G6X2FPQ2-B5ymZ6-7.js} +1 -1
- package/dist/viewer/{architecture-7GRP2DOG-B0ELn-r9.js → architecture-7GRP2DOG-BMYJCrZV.js} +1 -1
- package/dist/viewer/{architectureDiagram-5GKGNRK7-pjk1bmyn.js → architectureDiagram-5GKGNRK7-CTIIuGJC.js} +1 -1
- package/dist/viewer/{az-AZ-76LH7QW2-C3xDoCfK.js → az-AZ-76LH7QW2-0e4OEoQn.js} +1 -1
- package/dist/viewer/{bg-BG-XCXSNQG7-BuqoExRt.js → bg-BG-XCXSNQG7-BK4Yfu0v.js} +1 -1
- package/dist/viewer/{blockDiagram-I7D4REHJ-Bt5Fgmbw.js → blockDiagram-I7D4REHJ-BCY39CK-.js} +1 -1
- package/dist/viewer/{bn-BD-2XOGV67Q-Cb6R-JhO.js → bn-BD-2XOGV67Q-DY0dhZri.js} +1 -1
- package/dist/viewer/{c4Diagram-7LVT6UL2-DVoqgVNh.js → c4Diagram-7LVT6UL2-C4bAGSRF.js} +1 -1
- package/dist/viewer/{ca-ES-6MX7JW3Y-C9x3VZP6.js → ca-ES-6MX7JW3Y-DYeaKAAZ.js} +1 -1
- package/dist/viewer/{channel-B6od2bv2.js → channel-CMKOAKFL.js} +5 -5
- package/dist/viewer/channel-Dg0tnVaL.js +1 -0
- package/dist/viewer/{chunk-4HAMMTFA-CTdlWrtX.js → chunk-4HAMMTFA-DKKrCtt5.js} +1 -1
- package/dist/viewer/{chunk-75Z2AOVW-C_A1Se9D.js → chunk-75Z2AOVW-CxnIcYMY.js} +1 -1
- package/dist/viewer/{chunk-DU6HZSFF-Dr7PaN7b.js → chunk-DU6HZSFF-CO07tHJW.js} +1 -1
- package/dist/viewer/{chunk-EIO257PC-oHJkbpFs.js → chunk-EIO257PC-qXGHvKXr.js} +1 -1
- package/dist/viewer/{chunk-F27PBJKO-BBCDjN53.js → chunk-F27PBJKO-BKgYSwDY.js} +1 -1
- package/dist/viewer/{chunk-GMAD6QVW-BFHBOVJq.js → chunk-GMAD6QVW-BbSqVE_3.js} +1 -1
- package/dist/viewer/{chunk-GVQU2GXP-BIpEZyzS.js → chunk-GVQU2GXP-CybTk49_.js} +1 -1
- package/dist/viewer/{chunk-IMKFNOWR-KEawvx8K.js → chunk-IMKFNOWR-jCedT_zr.js} +1 -1
- package/dist/viewer/{chunk-L3NEJ4N5-IwBcwkuk.js → chunk-L3NEJ4N5-CdvkCIkZ.js} +1 -1
- package/dist/viewer/{chunk-OSK3NFVY-C3k_p7-w.js → chunk-OSK3NFVY-9vAyeFw7.js} +1 -1
- package/dist/viewer/{chunk-P2QGCYS3-Dtm_7Lz7.js → chunk-P2QGCYS3-CLr9GbT7.js} +1 -1
- package/dist/viewer/{chunk-POPQ4Y6H-CytCoNkh.js → chunk-POPQ4Y6H-CI_O6mAo.js} +1 -1
- package/dist/viewer/{chunk-PWAF6VOD-CyHOdyql.js → chunk-PWAF6VOD-mr5E6zf6.js} +1 -1
- package/dist/viewer/{chunk-SHT3W25Y-DD7pl4JI.js → chunk-SHT3W25Y-DYrFyqoc.js} +1 -1
- package/dist/viewer/{chunk-SVP7TREG-Bu4mLQNH.js → chunk-SVP7TREG-dMNx_CcY.js} +1 -1
- package/dist/viewer/{chunk-TICWLB2K-sZ8FCdF0.js → chunk-TICWLB2K-BGQtf-K3.js} +1 -1
- package/dist/viewer/classDiagram-ZZMXUADV-I3gtgBTd.js +1 -0
- package/dist/viewer/classDiagram-v2-VYDZK3BY-I3gtgBTd.js +1 -0
- package/dist/viewer/{cs-CZ-2BRQDIVT-BYzmp2zB.js → cs-CZ-2BRQDIVT-DjaDntjh.js} +1 -1
- package/dist/viewer/{cynefin-OW5HDTMX-BRRxGfUD.js → cynefin-OW5HDTMX-DsZ0qkVs.js} +1 -1
- package/dist/viewer/{cynefinDiagram-5FMLGOSQ-BJJG-W2c.js → cynefinDiagram-5FMLGOSQ-Y54wafYF.js} +1 -1
- package/dist/viewer/{da-DK-5WZEPLOC-BQMUVHri.js → da-DK-5WZEPLOC-Tqj9zEgt.js} +1 -1
- package/dist/viewer/{dagre-GXQ25YYZ-18YALgQ_.js → dagre-GXQ25YYZ-BehPXdKF.js} +1 -1
- package/dist/viewer/{de-DE-XR44H4JA-CXVFrfP-.js → de-DE-XR44H4JA-B7Ys3_AN.js} +1 -1
- package/dist/viewer/{diagram-S7CK7UJ4-BxB2LRSe.js → diagram-S7CK7UJ4-CUPMHvHL.js} +1 -1
- package/dist/viewer/{diagram-UQ7AKVKN-BcJ9Tkbs.js → diagram-UQ7AKVKN-Cnsotkkq.js} +1 -1
- package/dist/viewer/{diagram-VSXAHHWV-_UeBcZmY.js → diagram-VSXAHHWV-_Gb0p4Xt.js} +1 -1
- package/dist/viewer/{diagram-VX7I27RA-Bc9iy24S.js → diagram-VX7I27RA-6b_DdSPn.js} +1 -1
- package/dist/viewer/{diagram-Z3DM3KII-gU89rmSx.js → diagram-Z3DM3KII-C3auC1O2.js} +1 -1
- package/dist/viewer/{dist-CimouhBR.js → dist-7UQnJyoY.js} +1 -1
- package/dist/viewer/{dist-Ckk8Ln7v.js → dist-B2Pz6jKV.js} +1 -1
- package/dist/viewer/{dist-DFoTCsMa.js → dist-BKIoajE3.js} +1 -1
- package/dist/viewer/{dist-CtNq8Fc3.js → dist-BNqLQbx8.js} +1 -1
- package/dist/viewer/{dist-OI9ayuXJ.js → dist-Bpc6MjnN.js} +1 -1
- package/dist/viewer/{dist-DP3kgHOu.js → dist-C30QaZlo.js} +1 -1
- package/dist/viewer/{dist-B2iLAjhx.js → dist-C54IWjMq.js} +1 -1
- package/dist/viewer/{dist-DeLN4KiV.js → dist-CAlOKecF.js} +1 -1
- package/dist/viewer/{dist-k5REaceC.js → dist-CLMpMvW8.js} +1 -1
- package/dist/viewer/{dist-zAsatJ3z.js → dist-CivKp_88.js} +1 -1
- package/dist/viewer/{dist-T5bhQ39l.js → dist-D0jfqsk3.js} +1 -1
- package/dist/viewer/{dist-Cb-yo3Gf.js → dist-D1ltcskn.js} +1 -1
- package/dist/viewer/{dist-DhLyhl2k.js → dist-D8yTrHOe.js} +1 -1
- package/dist/viewer/{dist-B6jptwyK.js → dist-DJD7Rxl_.js} +1 -1
- package/dist/viewer/{dist-QVTBQ_Lo.js → dist-DKC2CFz3.js} +1 -1
- package/dist/viewer/{dist-CjrbmuC6.js → dist-DYYos7aA.js} +1 -1
- package/dist/viewer/{dist-DNnbAIPr.js → dist-DjX-jLyv.js} +1 -1
- package/dist/viewer/{dist-C3p_NYog.js → dist-DmX9cG26.js} +1 -1
- package/dist/viewer/{dist-DksKyGM5.js → dist-Dvpwh6aN.js} +1 -1
- package/dist/viewer/{dist-B-4OmMiD.js → dist-Q62YQ6Tz.js} +1 -1
- package/dist/viewer/{dist-CoQPmYDy.js → dist-SjMB3ORD.js} +1 -1
- package/dist/viewer/{dist-CqZmBkkh.js → dist-pOfDFOb4.js} +1 -1
- package/dist/viewer/{dist-QjnQrlMe.js → dist-ujkFdcwL.js} +4 -4
- package/dist/viewer/{dist-2zwLzKuW.js → dist-xaJ7cT-p.js} +1 -1
- package/dist/viewer/{ebnfDiagram-PWID7BFC-C8HSoSRy.js → ebnfDiagram-PWID7BFC-CE0BLrbg.js} +1 -1
- package/dist/viewer/{el-GR-BZB4AONW-ow3fFVLT.js → el-GR-BZB4AONW-D1iu3D-5.js} +1 -1
- package/dist/viewer/{en-B4ZKOASM-CaY3r9HU.js → en-B4ZKOASM-q9ZI4jM7.js} +1 -1
- package/dist/viewer/{erDiagram-RLTQ6QDP-BxJx7rlQ.js → erDiagram-RLTQ6QDP-gRel-NWS.js} +1 -1
- package/dist/viewer/{es-ES-U4NZUMDT-BMjMaVCY.js → es-ES-U4NZUMDT-C2iEjmwQ.js} +1 -1
- package/dist/viewer/{eu-ES-A7QVB2H4-CM4bkpMu.js → eu-ES-A7QVB2H4-BT6Rltb3.js} +1 -1
- package/dist/viewer/{eventmodeling-NTZA5JFV-DnbDCfB2.js → eventmodeling-NTZA5JFV-Bk9WCA8V.js} +1 -1
- package/dist/viewer/{fa-IR-HGAKTJCU-BLD2tQpT.js → fa-IR-HGAKTJCU-CqwuajY6.js} +1 -1
- package/dist/viewer/{fi-FI-Z5N7JZ37-Bgn7EPoz.js → fi-FI-Z5N7JZ37-B5eOrZnB.js} +1 -1
- package/dist/viewer/flowDiagram-HODETNUW-yZn6O744.js +1 -0
- package/dist/viewer/{fr-FR-RHASNOE6-Bkw82-6W.js → fr-FR-RHASNOE6-CuAP0ov3.js} +1 -1
- package/dist/viewer/{ganttDiagram-EL5Y4UJY-DOR_e0je.js → ganttDiagram-EL5Y4UJY-A51eLNzS.js} +1 -1
- package/dist/viewer/{gitGraph-4MIJSDKK-SVRQ5W4D.js → gitGraph-4MIJSDKK-DLjlyn5v.js} +1 -1
- package/dist/viewer/{gitGraphDiagram-WWUBYQGX-CDiQ0mCt.js → gitGraphDiagram-WWUBYQGX-CpflpsWN.js} +1 -1
- package/dist/viewer/{gl-ES-HMX3MZ6V-BLzHqZN8.js → gl-ES-HMX3MZ6V-DNzL8ZLj.js} +1 -1
- package/dist/viewer/{he-IL-6SHJWFNN-D8wU25du.js → he-IL-6SHJWFNN-BL2IqUA2.js} +1 -1
- package/dist/viewer/{hi-IN-IWLTKZ5I-BL-e61Xu.js → hi-IN-IWLTKZ5I-Cc_Z6cIK.js} +1 -1
- package/dist/viewer/{hu-HU-A5ZG7DT2-DbYToYgQ.js → hu-HU-A5ZG7DT2-BpJys7hD.js} +1 -1
- package/dist/viewer/{id-ID-SAP4L64H-CCT_QszX.js → id-ID-SAP4L64H-D4zLMff9.js} +1 -1
- package/dist/viewer/{image-GAAHSSAO-DKoD4XKV.js → image-GAAHSSAO-BKQeWnXf.js} +1 -1
- package/dist/viewer/index.html +5 -5
- package/dist/viewer/index.js +2 -2
- package/dist/viewer/index3.css +102 -4
- package/dist/viewer/{info-A6RAGUB7-CX2C9N30.js → info-A6RAGUB7-DvZhLcWt.js} +1 -1
- package/dist/viewer/{infoDiagram-27XIBGKW-CN86my9R.js → infoDiagram-27XIBGKW-Cb6BEK3u.js} +1 -1
- package/dist/viewer/{ishikawaDiagram-5VMMS53U-5BluWj2f.js → ishikawaDiagram-5VMMS53U-wRvUis49.js} +1 -1
- package/dist/viewer/{it-IT-JPQ66NNP-afXtP8Ww.js → it-IT-JPQ66NNP-DQMNMOSZ.js} +1 -1
- package/dist/viewer/{ja-JP-DBVTYXUO-DekQisaL.js → ja-JP-DBVTYXUO-CyTOe7Y8.js} +1 -1
- package/dist/viewer/{journeyDiagram-3NMN7TZE-CJC3KFyX.js → journeyDiagram-3NMN7TZE-DrV8-21n.js} +1 -1
- package/dist/viewer/{kaa-6HZHGXH3-tRph-_T2.js → kaa-6HZHGXH3-Bid3n_YF.js} +1 -1
- package/dist/viewer/{kab-KAB-ZGHBKWFO-BE4QoOsA.js → kab-KAB-ZGHBKWFO-BYjsuHFe.js} +1 -1
- package/dist/viewer/{kanban-definition-UXKFOSKX-B18ysZ84.js → kanban-definition-UXKFOSKX-DWK9G9rt.js} +1 -1
- package/dist/viewer/{kk-KZ-P5N5QNE5-CVRotJxc.js → kk-KZ-P5N5QNE5-DP8c-ogr.js} +1 -1
- package/dist/viewer/{km-KH-HSX4SM5Z-hAYTx672.js → km-KH-HSX4SM5Z-xmnFjfoK.js} +1 -1
- package/dist/viewer/{ko-KR-MTYHY66A-QEVtuRm5.js → ko-KR-MTYHY66A-DBXzp-hP.js} +1 -1
- package/dist/viewer/{ku-TR-6OUDTVRD-CRm854Ze.js → ku-TR-6OUDTVRD-DjqLLQgd.js} +1 -1
- package/dist/viewer/{local-split-host-B8nXcoph.js → local-split-host-D5XeWHs2.js} +1 -1
- package/dist/viewer/{lt-LT-XHIRWOB4-CKPgIz76.js → lt-LT-XHIRWOB4-CiXIbBlP.js} +1 -1
- package/dist/viewer/{lv-LV-5QDEKY6T-ChfyCJQM.js → lv-LV-5QDEKY6T-BBg2ICUg.js} +1 -1
- package/dist/viewer/{mermaid-parser.core-BVnYCq41.js → mermaid-parser.core-DIrH0vIS.js} +3 -3
- package/dist/viewer/{mindmap-definition-YA3MSWOX-DHv3E1P_.js → mindmap-definition-YA3MSWOX-D-RKw5yH.js} +1 -1
- package/dist/viewer/{mr-IN-CRQNXWMA-BJLGlD17.js → mr-IN-CRQNXWMA-BvFZO2Ww.js} +1 -1
- package/dist/viewer/{my-MM-5M5IBNSE-9rLlVOlt.js → my-MM-5M5IBNSE-B2vH-znI.js} +1 -1
- package/dist/viewer/{nb-NO-T6EIAALU-B8VMz4zh.js → nb-NO-T6EIAALU-BbKLi7pg.js} +1 -1
- package/dist/viewer/{nl-NL-IS3SIHDZ-DqLxBYZV.js → nl-NL-IS3SIHDZ-Djj6TAo1.js} +1 -1
- package/dist/viewer/{nn-NO-6E72VCQL-Bo0PPFBQ.js → nn-NO-6E72VCQL-C9FENQ04.js} +1 -1
- package/dist/viewer/{oc-FR-POXYY2M6-CWWRWFHX.js → oc-FR-POXYY2M6-Bb9oRGl0.js} +1 -1
- package/dist/viewer/{pa-IN-N4M65BXN-DT0tg3Sk.js → pa-IN-N4M65BXN-GiTIcI0J.js} +1 -1
- package/dist/viewer/{packet-AYTQ26CC-KGzO-wcr.js → packet-AYTQ26CC-CtVAKo8Y.js} +1 -1
- package/dist/viewer/{parseTrigger-Bu-PV9CL.js → parseTrigger-G_dEUQ-S.js} +1 -1
- package/dist/viewer/{pegDiagram-XKGWAZYB-Dic4eBsi.js → pegDiagram-XKGWAZYB-DoKug0Ul.js} +1 -1
- package/dist/viewer/percentages-BXMCSKIN-D095tJfv.js +1 -0
- package/dist/viewer/{pie-WAS4IAKB-BYfJrbuD.js → pie-WAS4IAKB-CxVCcwr-.js} +1 -1
- package/dist/viewer/{pieDiagram-E7YTZNPT-CjUaUWV2.js → pieDiagram-E7YTZNPT-cjr6q7MN.js} +1 -1
- package/dist/viewer/{pl-PL-T2D74RX3-Ch27cnOo.js → pl-PL-T2D74RX3-Bn1NSuWG.js} +1 -1
- package/dist/viewer/preview.html +4 -4
- package/dist/viewer/preview.js +1 -1
- package/dist/viewer/{prod-TT-J6Nam.js → prod-CaFKRNhp.js} +8 -8
- package/dist/viewer/{pt-BR-5N22H2LF-8J6Vfb7V.js → pt-BR-5N22H2LF-BI-zbYLr.js} +1 -1
- package/dist/viewer/{pt-PT-UZXXM6DQ-BX7qQNlR.js → pt-PT-UZXXM6DQ-319Tw5BW.js} +1 -1
- package/dist/viewer/{quadrantDiagram-AXDQQJYC-r9uBJJoA.js → quadrantDiagram-AXDQQJYC-BZ8DulYV.js} +1 -1
- package/dist/viewer/{radar-RG4KPBEZ-DDBCvrzl.js → radar-RG4KPBEZ-CQfJyEYa.js} +1 -1
- package/dist/viewer/{railroad-74A4TZTK-DHdJAn7o.js → railroad-74A4TZTK-BYRU4vXG.js} +1 -1
- package/dist/viewer/{railroad-abnf-HS5TGJTU-D9wWd5uO.js → railroad-abnf-HS5TGJTU-B38hjcrZ.js} +1 -1
- package/dist/viewer/{railroad-ebnf-LZEXJU2U-D-NZ6dqJ.js → railroad-ebnf-LZEXJU2U-CNMwCkdT.js} +1 -1
- package/dist/viewer/{railroad-peg-WCYAUIDC-CyPMQZm7.js → railroad-peg-WCYAUIDC-xAU0vZOf.js} +1 -1
- package/dist/viewer/{railroadDiagram-O6MQD6OU-CWrubsQf.js → railroadDiagram-O6MQD6OU-DbEnsKie.js} +1 -1
- package/dist/viewer/{ref-BF7Dk-nb.js → ref-BwCMEjB3.js} +1 -1
- package/dist/viewer/{requirementDiagram-BXWQKSXE-YIdQ9sc_.js → requirementDiagram-BXWQKSXE-D92sYU7y.js} +1 -1
- package/dist/viewer/{ro-RO-JPDTUUEW-2Pp-dKmW.js → ro-RO-JPDTUUEW-VijYgS5D.js} +1 -1
- package/dist/viewer/{route-CDT5H7Dv.js → route-IxDJQ-oO.js} +1 -1
- package/dist/viewer/{route-messages-E7uG4Fm7.js → route-messages-CJ5JptAX.js} +1 -1
- package/dist/viewer/{ru-RU-B4JR7IUQ-DPkLOvY0.js → ru-RU-B4JR7IUQ-HPA0KGMP.js} +1 -1
- package/dist/viewer/{sankeyDiagram-P5KCCOFB-BQftNXO2.js → sankeyDiagram-P5KCCOFB-JlEPpJZr.js} +1 -1
- package/dist/viewer/{selection-BTJrtSto.js → selection-B2_QE61M.js} +1 -1
- package/dist/viewer/{sequenceDiagram-WJ2MYXX4-C90CSvsu.js → sequenceDiagram-WJ2MYXX4-lImr5uIr.js} +1 -1
- package/dist/viewer/{si-LK-N5RQ5JYF-DjQ-ynCO.js → si-LK-N5RQ5JYF-D3xEcphZ.js} +1 -1
- package/dist/viewer/{sk-SK-C5VTKIMK-Do9H8uzR.js → sk-SK-C5VTKIMK-Db8aZYTC.js} +1 -1
- package/dist/viewer/{sl-SI-NN7IZMDC-bJ5rRome.js → sl-SI-NN7IZMDC-eFJNBgsb.js} +1 -1
- package/dist/viewer/{split-url-D0Eu87y4.js → split-url-DL2J8T-a.js} +1 -1
- package/dist/viewer/{stateDiagram-D77RDMKH-pBFTeHBj.js → stateDiagram-D77RDMKH-DlBhDgXR.js} +1 -1
- package/dist/viewer/stateDiagram-v2-MP3YSRHH-Byaeiehp.js +1 -0
- package/dist/viewer/subset-shared.chunk-BNAGyqG3.js +1 -0
- package/dist/viewer/{subset-worker.chunk-3zYap8Q-.js → subset-worker.chunk-7eRPBTIK.js} +1 -1
- package/dist/viewer/{sv-SE-XGPEYMSR-C0oEs72p.js → sv-SE-XGPEYMSR-1ooAaIdn.js} +1 -1
- package/dist/viewer/{swimlanes-42K2YHIH-CTsMizz_.js → swimlanes-42K2YHIH-Dk9L2F9U.js} +1 -1
- package/dist/viewer/swimlanesDiagram-VR7AAH4N-DNI8atPj.js +8 -0
- package/dist/viewer/{ta-IN-2NMHFXQM-B3AATr70.js → ta-IN-2NMHFXQM-r-PlEE_o.js} +1 -1
- package/dist/viewer/{th-TH-HPSO5L25-DQBS-yab.js → th-TH-HPSO5L25-DCSuXNKm.js} +1 -1
- package/dist/viewer/{timeline-definition-24CTP7MA-C-XiBPgr.js → timeline-definition-24CTP7MA-CuLHXBb9.js} +1 -1
- package/dist/viewer/{tr-TR-DEFEU3FU-ag7nD5kA.js → tr-TR-DEFEU3FU-DmRbSHuX.js} +1 -1
- package/dist/viewer/{treeView-Q6P3EWNA-SVlfuIv-.js → treeView-Q6P3EWNA-70u6vE6C.js} +1 -1
- package/dist/viewer/{treemap-WGGIJYW6-_ZShzHPs.js → treemap-WGGIJYW6-BgaNezOX.js} +1 -1
- package/dist/viewer/{uk-UA-QMV73CPH-BSQfUSoA.js → uk-UA-QMV73CPH-CcDh2WkS.js} +1 -1
- package/dist/viewer/{useAriaLabelledBy-BuWax2Z2.js → useAriaLabelledBy-Cu8JrnAw.js} +1 -1
- package/dist/viewer/{useOpenInteractionType-DH5mUVhj.js → useOpenInteractionType-LXvb6AtX.js} +1 -1
- package/dist/viewer/{useTranslation-BNqJXci1.js → useTranslation-DGPvUY4J.js} +1 -1
- package/dist/viewer/{useTypeFavicon-B3gDp1sZ.js → useTypeFavicon-DIU-6w2G.js} +1 -1
- package/dist/viewer/{vennDiagram-4TSXK5OY-BV0PYWnH.js → vennDiagram-4TSXK5OY-Dm5qhhY3.js} +1 -1
- package/dist/viewer/{vi-VN-M7AON7JQ-Dl7QA_Y_.js → vi-VN-M7AON7JQ-DWAX0NEb.js} +1 -1
- package/dist/viewer/{view--v3LsuO9.js → view-HJ0ahbDf.js} +1 -1
- package/dist/viewer/{viewport-CFJHn_Y6-CSiflW-L.js → viewport-CFJHn_Y6-B-kdQ7xr.js} +1 -1
- package/dist/viewer/{wardley-WFR3VGLG-BNvAuofQ.js → wardley-WFR3VGLG-CmWgAGP4.js} +1 -1
- package/dist/viewer/{wardleyDiagram-VM6X3IG4-B12XuiXU.js → wardleyDiagram-VM6X3IG4-DTCi6DmX.js} +1 -1
- package/dist/viewer/{xychartDiagram-S5SC5T6Z-CNASGt-y.js → xychartDiagram-S5SC5T6Z-DxA0cQ3A.js} +1 -1
- package/dist/viewer/{zh-CN-LNUGB5OW-BN9rjxsZ.js → zh-CN-LNUGB5OW-C0GKmW1G.js} +1 -1
- package/dist/viewer/{zh-HK-E62DVLB3-DVH9Q1Iz.js → zh-HK-E62DVLB3-CnrjNkY6.js} +1 -1
- package/dist/viewer/{zh-TW-RAJ6MFWO-CZYgWnVr.js → zh-TW-RAJ6MFWO-CzT4lffH.js} +1 -1
- package/dist/viewer-lib/{Canvas-DlB6aB_J.js → Canvas-Czt9ltgM.js} +313 -259
- package/dist/viewer-lib/{PhoneArtboardBar-Cjyyjai7.js → PhoneArtboardBar-KVFmaCba.js} +2 -2
- package/dist/viewer-lib/{PreviewView-ck_p8T5E.js → PreviewView-BWt3dX8d.js} +2 -2
- package/dist/viewer-lib/{ReadOnlyWhiteboard-BaHks6CC.js → ReadOnlyWhiteboard-DkN-iQ5e.js} +4 -4
- package/dist/viewer-lib/{RyugiLoader-_MZxEs2s.js → RyugiLoader-CxyL1n9v.js} +10 -9
- package/dist/viewer-lib/{SnapshotDocument-Cnh1MruG.js → SnapshotDocument-CbuCIqIZ.js} +32 -32
- package/dist/viewer-lib/{VirtualizedEditor-uWe43zaI-BDnJhFJS.js → VirtualizedEditor-uWe43zaI-XBNVQjy2.js} +2 -2
- package/dist/viewer-lib/{VirtualizedRenderer-C_d95FXi-BuO0NiU-.js → VirtualizedRenderer-C_d95FXi-8iSF4rXx.js} +3 -3
- package/dist/viewer-lib/{WarningsBadge-p7-QKPVW.js → WarningsBadge-SVKLlXSz.js} +1 -1
- package/dist/viewer-lib/{ar-SA-G6X2FPQ2-BulQwi8B.js → ar-SA-G6X2FPQ2-CcppcMle.js} +1 -1
- package/dist/viewer-lib/{az-AZ-76LH7QW2-CI40Y8TL.js → az-AZ-76LH7QW2-C_SU1Xpr.js} +1 -1
- package/dist/viewer-lib/{bg-BG-XCXSNQG7-BzDIvwtq.js → bg-BG-XCXSNQG7-CWd7fzy0.js} +1 -1
- package/dist/viewer-lib/{bn-BD-2XOGV67Q-C-pgv3qu.js → bn-BD-2XOGV67Q-B0z6Tw9j.js} +1 -1
- package/dist/viewer-lib/{ca-ES-6MX7JW3Y-D6x8nfLg.js → ca-ES-6MX7JW3Y-B2xRB0B0.js} +1 -1
- package/dist/viewer-lib/{chunk-EIO257PC-CeMsMfCl.js → chunk-EIO257PC-D6Jf6Xmm.js} +1 -1
- package/dist/viewer-lib/core.js +4 -4
- package/dist/viewer-lib/{cs-CZ-2BRQDIVT-0ckei0wD.js → cs-CZ-2BRQDIVT-BZKj-SkP.js} +1 -1
- package/dist/viewer-lib/{da-DK-5WZEPLOC-ZduCWsZg.js → da-DK-5WZEPLOC-CW0PeGhv.js} +1 -1
- package/dist/viewer-lib/{de-DE-XR44H4JA-Dhn4t1S-.js → de-DE-XR44H4JA-BNWPKMsf.js} +1 -1
- package/dist/viewer-lib/{dist-Di9F7JPb.js → dist-80gN5MDf.js} +3 -3
- package/dist/viewer-lib/{dist-BCW8Zb-U.js → dist-B1eQ7mh1.js} +2 -2
- package/dist/viewer-lib/{dist-DNsjbGxb.js → dist-B8C9-q9r.js} +2 -2
- package/dist/viewer-lib/{dist-CSfdU4jd.js → dist-BAFLptZH.js} +3 -3
- package/dist/viewer-lib/{dist-DDVF8zAt.js → dist-BGKw9XQy.js} +2 -2
- package/dist/viewer-lib/{dist-BbswzSKs.js → dist-C05yE_u3.js} +3 -3
- package/dist/viewer-lib/{dist-CzN9MAge.js → dist-CG3jaold.js} +2 -2
- package/dist/viewer-lib/{dist-XBsZajBB.js → dist-CLixy726.js} +4 -4
- package/dist/viewer-lib/{dist-8NTQy8U-.js → dist-CXXXkgsH.js} +1 -1
- package/dist/viewer-lib/{dist-Dwz5JxbC.js → dist-Cl-thFU5.js} +3 -3
- package/dist/viewer-lib/{dist-DlpJUiVE.js → dist-Csam7y04.js} +1 -1
- package/dist/viewer-lib/{dist-raPDHOGI.js → dist-D01J0hzJ.js} +2 -2
- package/dist/viewer-lib/{dist-06ekt-ke.js → dist-D33Sd5z1.js} +3 -3
- package/dist/viewer-lib/{dist-Cbrc_d6r.js → dist-DHj3-Pp5.js} +2 -2
- package/dist/viewer-lib/{dist-BbM5jkng.js → dist-DQDlkYqz.js} +3 -3
- package/dist/viewer-lib/{dist-DoVnKIC0.js → dist-DVGe9QEo.js} +3 -3
- package/dist/viewer-lib/{dist-CajfXdQP.js → dist-DczdJ0Ss.js} +3 -3
- package/dist/viewer-lib/{dist-5_jnZVlO.js → dist-Dug8w68g.js} +4 -4
- package/dist/viewer-lib/{dist-CgtdwEjB.js → dist-TYFSuN0R.js} +3 -3
- package/dist/viewer-lib/{dist-BTI5z3BP.js → dist-V1Zz1gd6.js} +3 -3
- package/dist/viewer-lib/{dist-DwFHgVKa.js → dist-jwZIUB0I.js} +4 -4
- package/dist/viewer-lib/{dist-CiAUyx7m.js → dist-lWjeTWd-.js} +2 -2
- package/dist/viewer-lib/{dist-DGvnQ0_D.js → dist-zUHol6rl.js} +2 -2
- package/dist/viewer-lib/document.js +7 -7
- package/dist/viewer-lib/{el-GR-BZB4AONW-CJr0Z7TF.js → el-GR-BZB4AONW-CoQS6FL1.js} +1 -1
- package/dist/viewer-lib/{en-B4ZKOASM-lv6d1blP.js → en-B4ZKOASM-DQdepYlH.js} +1 -1
- package/dist/viewer-lib/{es-ES-U4NZUMDT-CoN1P7ea.js → es-ES-U4NZUMDT-dFGK-tCc.js} +1 -1
- package/dist/viewer-lib/{eu-ES-A7QVB2H4-C9ndoQ2r.js → eu-ES-A7QVB2H4-CTPQRG6p.js} +1 -1
- package/dist/viewer-lib/{fa-IR-HGAKTJCU-CfrK4kxd.js → fa-IR-HGAKTJCU-CTuq4ikl.js} +1 -1
- package/dist/viewer-lib/{fi-FI-Z5N7JZ37-CLBbeiQY.js → fi-FI-Z5N7JZ37-D0JlmPmA.js} +1 -1
- package/dist/viewer-lib/{fr-FR-RHASNOE6-CF0M8dHT.js → fr-FR-RHASNOE6-RlGS8zAt.js} +1 -1
- package/dist/viewer-lib/{gl-ES-HMX3MZ6V-Ds78xJRC.js → gl-ES-HMX3MZ6V-BnQPblSD.js} +1 -1
- package/dist/viewer-lib/{he-IL-6SHJWFNN-T3gPOUQI.js → he-IL-6SHJWFNN-PmN9hBtd.js} +1 -1
- package/dist/viewer-lib/{hi-IN-IWLTKZ5I-BPB6ep5X.js → hi-IN-IWLTKZ5I-BeCrGSfv.js} +1 -1
- package/dist/viewer-lib/{hu-HU-A5ZG7DT2-CroFJ3-c.js → hu-HU-A5ZG7DT2-D0c6msJe.js} +1 -1
- package/dist/viewer-lib/{id-ID-SAP4L64H-BdiIiD1M.js → id-ID-SAP4L64H-DA8yn9MO.js} +1 -1
- package/dist/viewer-lib/{image-GAAHSSAO-tMWhJP5r.js → image-GAAHSSAO-B5NCrxDY.js} +1 -1
- package/dist/viewer-lib/index.js +10 -10
- package/dist/viewer-lib/{it-IT-JPQ66NNP-BeGV_PNa.js → it-IT-JPQ66NNP-Msb_59SR.js} +1 -1
- package/dist/viewer-lib/{ja-JP-DBVTYXUO-BfX9p-BL.js → ja-JP-DBVTYXUO-DF9ymwH_.js} +1 -1
- package/dist/viewer-lib/{kaa-6HZHGXH3-B49iCC1F.js → kaa-6HZHGXH3-DLdj8h7V.js} +1 -1
- package/dist/viewer-lib/{kab-KAB-ZGHBKWFO-DOcMX5a2.js → kab-KAB-ZGHBKWFO-DEnShB8n.js} +1 -1
- package/dist/viewer-lib/{kk-KZ-P5N5QNE5-B5SKdTP9.js → kk-KZ-P5N5QNE5-BZpCUQAO.js} +1 -1
- package/dist/viewer-lib/{km-KH-HSX4SM5Z-DhdPNTTx.js → km-KH-HSX4SM5Z-DJfTgaU-.js} +1 -1
- package/dist/viewer-lib/{ko-KR-MTYHY66A-C-zT8umZ.js → ko-KR-MTYHY66A-XCk-trJi.js} +1 -1
- package/dist/viewer-lib/{ku-TR-6OUDTVRD-C4kAusNi.js → ku-TR-6OUDTVRD-ILEraaqU.js} +1 -1
- package/dist/viewer-lib/{lib-DNNuUrSz.js → lib-BECZaH4I.js} +1 -1
- package/dist/viewer-lib/{lt-LT-XHIRWOB4-B_sxP0eq.js → lt-LT-XHIRWOB4-DR0XA43x.js} +1 -1
- package/dist/viewer-lib/{lv-LV-5QDEKY6T-sD6HgFZ4.js → lv-LV-5QDEKY6T-CDJh4KcF.js} +1 -1
- package/dist/viewer-lib/{mr-IN-CRQNXWMA-Cd5o1iq-.js → mr-IN-CRQNXWMA-lAh3x0wf.js} +1 -1
- package/dist/viewer-lib/{my-MM-5M5IBNSE-CoNWjvsH.js → my-MM-5M5IBNSE-CWbsKpe7.js} +1 -1
- package/dist/viewer-lib/{nb-NO-T6EIAALU-C-i8AySs.js → nb-NO-T6EIAALU-DsOr20_y.js} +1 -1
- package/dist/viewer-lib/{nl-NL-IS3SIHDZ-C1ldIK2V.js → nl-NL-IS3SIHDZ-BvJDYbbm.js} +1 -1
- package/dist/viewer-lib/{nn-NO-6E72VCQL-BbufodQ2.js → nn-NO-6E72VCQL-BB2FmVFh.js} +1 -1
- package/dist/viewer-lib/{oc-FR-POXYY2M6-hBKLK-RY.js → oc-FR-POXYY2M6-Bvwx0qAP.js} +1 -1
- package/dist/viewer-lib/{pa-IN-N4M65BXN-CMYieHVI.js → pa-IN-N4M65BXN-p8MWsauR.js} +1 -1
- package/dist/viewer-lib/percentages-BXMCSKIN-DA7GjP-1.js +1 -0
- package/dist/viewer-lib/{pl-PL-T2D74RX3-BLBveBOC.js → pl-PL-T2D74RX3-DbxHOV0E.js} +1 -1
- package/dist/viewer-lib/{plugin-_bGVeqI0-x1NbXzpN.js → plugin-_bGVeqI0-BuoZIQw-.js} +1 -1
- package/dist/viewer-lib/{prod-CKvZ5R1W.js → prod-Duev06nH.js} +59 -59
- package/dist/viewer-lib/{pt-BR-5N22H2LF-Br5SP3ty.js → pt-BR-5N22H2LF-G_V26Vnw.js} +1 -1
- package/dist/viewer-lib/{pt-PT-UZXXM6DQ-D_gaSKkX.js → pt-PT-UZXXM6DQ-Cibz3GSp.js} +1 -1
- package/dist/viewer-lib/{ro-RO-JPDTUUEW-Cq-mwLjh.js → ro-RO-JPDTUUEW-5IR97wtM.js} +1 -1
- package/dist/viewer-lib/{route-messages-DFgs1Qi1.js → route-messages-YkEDJrGo.js} +2 -2
- package/dist/viewer-lib/{ru-RU-B4JR7IUQ-C4b2ijd5.js → ru-RU-B4JR7IUQ-Bhzxtys5.js} +1 -1
- package/dist/viewer-lib/{si-LK-N5RQ5JYF-DvGkDzKr.js → si-LK-N5RQ5JYF-DkbW4kwL.js} +1 -1
- package/dist/viewer-lib/{sk-SK-C5VTKIMK-Cru-JD0e.js → sk-SK-C5VTKIMK-CHvUkTDC.js} +1 -1
- package/dist/viewer-lib/{sl-SI-NN7IZMDC-5FFks32p.js → sl-SI-NN7IZMDC-9wfKjcdf.js} +1 -1
- package/dist/viewer-lib/{stylex-CCivaCRo.css → stylex-DSPr67HN.css} +102 -4
- package/dist/viewer-lib/subset-shared.chunk-C9VoCzEr.js +2 -0
- package/dist/viewer-lib/{subset-worker.chunk-CRX53Rzc.js → subset-worker.chunk-BpDvwKQR.js} +2 -2
- package/dist/viewer-lib/{sv-SE-XGPEYMSR-LuNY2685.js → sv-SE-XGPEYMSR-CiYigmBB.js} +1 -1
- package/dist/viewer-lib/{ta-IN-2NMHFXQM-culSf0A8.js → ta-IN-2NMHFXQM-BsrjQGCa.js} +1 -1
- package/dist/viewer-lib/{th-TH-HPSO5L25-Cn-xDXVd.js → th-TH-HPSO5L25-Ay03kJy0.js} +1 -1
- package/dist/viewer-lib/{tr-TR-DEFEU3FU-D62dl3eN.js → tr-TR-DEFEU3FU-xW9fx8lz.js} +1 -1
- package/dist/viewer-lib/types/src/viewer/components/BoardPlaceholder.d.ts +6 -0
- package/dist/viewer-lib/types/src/viewer/components/Canvas.d.ts +3 -1
- package/dist/viewer-lib/types/src/viewer/components/RyugiLoader.d.ts +2 -1
- package/dist/viewer-lib/{uk-UA-QMV73CPH-D6D8s7pK.js → uk-UA-QMV73CPH-siImZwWq.js} +1 -1
- package/dist/viewer-lib/{vi-VN-M7AON7JQ-Dh3BnbJN.js → vi-VN-M7AON7JQ-B1RwZdrg.js} +1 -1
- package/dist/viewer-lib/{viewport-CFJHn_Y6-BOjZrMc1.js → viewport-CFJHn_Y6-C1O9ia_N.js} +1 -1
- package/dist/viewer-lib/{zh-CN-LNUGB5OW-C48KmWkT.js → zh-CN-LNUGB5OW-6fUO3AXx.js} +1 -1
- package/dist/viewer-lib/{zh-HK-E62DVLB3-B8B3Vey8.js → zh-HK-E62DVLB3-DsB4qJEI.js} +1 -1
- package/dist/viewer-lib/{zh-TW-RAJ6MFWO-C8Ic-j4K.js → zh-TW-RAJ6MFWO-BXCT8oY7.js} +1 -1
- package/package.json +6 -3
- package/dist/viewer/Canvas-DxaQjjSK.js +0 -1
- package/dist/viewer/DocumentLayout-BqobBoJ9.js +0 -2
- package/dist/viewer/channel-fe5QTu-s.js +0 -1
- package/dist/viewer/classDiagram-ZZMXUADV-B-zT7lnC.js +0 -1
- package/dist/viewer/classDiagram-v2-VYDZK3BY-B-zT7lnC.js +0 -1
- package/dist/viewer/flowDiagram-HODETNUW-CXlFZEEj.js +0 -1
- package/dist/viewer/percentages-BXMCSKIN-BS0t4tWg.js +0 -1
- package/dist/viewer/stateDiagram-v2-MP3YSRHH-aanK4VsX.js +0 -1
- package/dist/viewer/subset-shared.chunk-BiJjRqIa.js +0 -1
- package/dist/viewer/swimlanesDiagram-VR7AAH4N-Bgny_WIB.js +0 -8
- package/dist/viewer-lib/percentages-BXMCSKIN-Dg5qsT14.js +0 -1
- package/dist/viewer-lib/subset-shared.chunk-Cd_UazJM.js +0 -2
- package/bin/{ryugi-artifacts.cjs → ryugi.cjs} +0 -0
- package/dist/viewer-lib/{PageLoader-M5KGHqfg.js → PageLoader-C6VBYL59.js} +1 -1
- package/dist/viewer-lib/{agentLook-Pf_kpgWG.js → agentLook-D56IP3D7.js} +1 -1
package/README.md
CHANGED
|
@@ -9,6 +9,10 @@ npx ryugi-artifacts # open the library of the current project
|
|
|
9
9
|
npx ryugi-artifacts monitor # list running project servers
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
+
Installed globally (`npm install -g ryugi-artifacts`), the command is `ryugi`;
|
|
13
|
+
`ryugi-artifacts` stays as an alias. npx needs the package name, so
|
|
14
|
+
`npx ryugi-artifacts` is the npx form.
|
|
15
|
+
|
|
12
16
|
The server reads `.ryugi/artifacts/` in the selected project. Ryugi's skills
|
|
13
17
|
start it for you; this package also runs standalone. Node.js is required.
|
|
14
18
|
|
|
@@ -28,12 +32,12 @@ Each operation declares its supported formats; unsupported modes fail before wor
|
|
|
28
32
|
starts. There is no alternate legacy protocol or release gate.
|
|
29
33
|
|
|
30
34
|
```sh
|
|
31
|
-
ryugi
|
|
32
|
-
ryugi
|
|
33
|
-
ryugi
|
|
34
|
-
ryugi
|
|
35
|
-
ryugi
|
|
36
|
-
ryugi
|
|
35
|
+
ryugi check --artifact document/plan --format brief
|
|
36
|
+
ryugi publish --list --limit 10 --visibility private --format json
|
|
37
|
+
ryugi get https://ryugi.innei.dev/a/ID --format brief
|
|
38
|
+
ryugi get ID --detail --snapshot TOKEN --format json
|
|
39
|
+
ryugi get ID --download --out ./new-download --format json
|
|
40
|
+
ryugi config --output-format brief --project
|
|
37
41
|
```
|
|
38
42
|
|
|
39
43
|
Selection order is explicit option, `RYUGI_ARTIFACTS_FORMAT`, project
|
|
@@ -54,7 +58,7 @@ Review reads are read-only. Preview a bounded page, read complete evidence, then
|
|
|
54
58
|
explicitly acknowledge its receipt after using that evidence:
|
|
55
59
|
|
|
56
60
|
For a complete review in one request, run
|
|
57
|
-
`ryugi
|
|
61
|
+
`ryugi comment list --artifact document/plan --sections all --detail`.
|
|
58
62
|
Documents include threads/asks; artboards include threads/groups/rounds. Each
|
|
59
63
|
collection retains its own page, snapshot and continuation. Only a complete
|
|
60
64
|
unread thread page issues a receipt; state collections do not. Follow every
|
|
@@ -62,11 +66,11 @@ relevant continuation before concluding. Filters, fields and existing cursors
|
|
|
62
66
|
or snapshots require the single-collection form below.
|
|
63
67
|
|
|
64
68
|
```sh
|
|
65
|
-
ryugi
|
|
66
|
-
ryugi
|
|
67
|
-
ryugi
|
|
68
|
-
ryugi
|
|
69
|
-
ryugi
|
|
69
|
+
ryugi comment list --artifact document/plan --section threads --format brief
|
|
70
|
+
ryugi comment read --artifact document/plan --thread THREAD --detail
|
|
71
|
+
ryugi comment ack --artifact document/plan --receipt RECEIPT
|
|
72
|
+
ryugi changes --artifact document/plan --detail
|
|
73
|
+
ryugi changes ack --artifact document/plan --receipt RECEIPT
|
|
70
74
|
```
|
|
71
75
|
|
|
72
76
|
`--all` and projected reads never issue receipts. Asks, groups and rounds are
|
package/dist/cli.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var Kn=Object.create;var Yt=Object.defineProperty;var Qn=Object.getOwnPropertyDescriptor;var Zn=Object.getOwnPropertyNames;var eo=Object.getPrototypeOf,to=Object.prototype.hasOwnProperty;var ro=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Zn(t))!to.call(e,o)&&o!==r&&Yt(e,o,{get:()=>t[o],enumerable:!(n=Qn(t,o))||n.enumerable});return e};var S=(e,t,r)=>(r=e!=null?Kn(eo(e)):{},ro(t||!e||!e.__esModule?Yt(r,"default",{value:e,enumerable:!0}):r,e));var Kt=require("node:util");var f=class extends Error{constructor(r,n="failed",o){super(r.message);this.error=r;this.kind=n;this.raw=o}error;kind;raw};function _e(e){if(e instanceof f)return e.error;let t=e,r=t?.fields;return{code:typeof r?.code=="string"?`E_${r.code.toUpperCase().replace(/^E_/,"")}`:"E_COMMAND_FAILED",message:typeof t?.message=="string"&&t.message?t.message:typeof r?.message=="string"?r.message:String(e),...typeof r?.status=="number"?{httpStatus:r.status}:{},...r&&Object.keys(r).length?{details:r}:{}}}function ce(e,t=!1){switch(e.kind){case"succeeded":return{outcome:t?"attention":"success",code:0};case"validation_failed":return{outcome:"attention",code:3};case"pending":return{outcome:"pending",code:4};case"action_required":return{outcome:"attention",code:2};case"partial":return{outcome:"partial",code:5};case"failed":return{outcome:"error",code:1};case"interrupted":return{outcome:"error",code:e.signal==="SIGINT"?130:143}}}function Jt(e,t,r,n){return!e||typeof e!="object"||Array.isArray(e)?e:Object.fromEntries(Object.entries(e).filter(([o])=>t.includes(o)?!0:(n.push({path:`${r}.${o}`,reason:"fields"}),!1)))}function ht(e,t,r,n){let o=[...t.coverage.omitted??[]],s=t.data;if(r.fields){let i=[...new Set([...r.fields,...n.requiredFields??[]])];if(n.collection&&s&&typeof s=="object"){let a=s,u=a[n.collection];s={...a,[n.collection]:Array.isArray(u)?u.map((p,d)=>Jt(p,i,`data.${n.collection}.${d}`,o)):u}}else s=Jt(s,i,"data",o)}return{schema:"ryugi.cli/v1",command:e,outcome:ce(t.completion,t.warnings.length>0).outcome,data:s,...t.coverage.page?{page:t.coverage.page}:{},...o.length?{omitted:o}:{},...t.effects.length?{effects:t.effects}:{},...t.warnings.length?{warnings:t.warnings}:{},...t.actions.length?{next:t.actions}:{},...t.completion.kind==="failed"?{error:t.completion.error}:t.completion.kind==="interrupted"?{error:{code:"E_INTERRUPTED",message:`Command interrupted by ${t.completion.signal}.`,details:{signal:t.completion.signal}}}:{}}}var Xt={format:{type:"string",value:"<brief|table|json|jsonl|raw>",help:"Output format (default: brief)"},json:{type:"boolean",help:"Shorthand for --format json"},detail:{type:"boolean",help:"Read complete evidence for the selected object or page"},fields:{type:"string",value:"<fields>",help:"Select public output fields, separated by commas"},quiet:{type:"boolean",help:"Print the command's declared scalar only"},verbose:{type:"boolean",help:"Include diagnostic details on stderr"}};function yt(e,t){let r={};for(let n=0;n<e.length;n++){let o=e[n];if(o==="--")break;if(!o.startsWith("--"))continue;let s=o.indexOf("="),i=o.slice(2,s<0?void 0:s),a=i==="source"?"boolean":t[i]?.type;a==="string"?r[i]=s<0?e[++n]??"":o.slice(s+1):a==="boolean"&&(r[i]=!0)}return r}function bt(e,t,r=process.env){let n=yt(e,t),o=["format","json","quiet","source"].filter(l=>n[l]!==void 0),s=r.RYUGI_ARTIFACTS_FORMAT??"brief",i=n.format??(n.json?"json":n.quiet?"quiet":n.source?"source":s),u=["brief","table","json","jsonl","raw","source","quiet"].includes(i),p={format:u?i:"brief",detail:!!n.detail||!!n.source,verbose:!!n.verbose},d;return o.length>1?d=new f({code:"E_OPTION_CONFLICT",message:"Choose one of --format, --json, --quiet or --source."}):(!u||!o.length&&!["brief","json","jsonl"].includes(s))&&(d=new f({code:"E_FORMAT_UNSUPPORTED",message:`Unknown output format: ${String(i)}`})),typeof n.fields=="string"&&(p.fields=n.fields.split(",").map(l=>l.trim()),p.fields.some(l=>!l)&&(d=new f({code:"E_ARGUMENT_INVALID",message:"--fields requires comma-separated field names."}))),{options:p,...d?{error:d}:{}}}var ue=S(require("node:fs"),1),zt=S(require("node:os"),1),M=S(require("node:path"),1),w=class extends Error{constructor(r,n={},o=1){super(r);this.fields=n;this.code=o}fields;code};function no(e){let t="";try{t=ue.default.realpathSync(zt.default.homedir())}catch{}let r=[];for(let n=e;r.push(n),!(ue.default.existsSync(M.default.join(n,".git"))&&(n!==t||e===t));n=M.default.dirname(n))if(M.default.dirname(n)===n)return e;return r.find(n=>ue.default.existsSync(M.default.join(n,".ryugi","artifacts")))??r.at(-1)}function z(e){let t;try{if(t=ue.default.realpathSync(M.default.resolve(e)),!ue.default.statSync(t).isDirectory())throw new Error("Not a directory")}catch{throw new w(`Project directory not found: ${e}`)}t=no(t);let r=M.default.join(t,".ryugi","artifacts"),n=M.default.join(r,".state");return{project:t,root:r,state:n,pid:M.default.join(n,"server.pid"),log:M.default.join(n,"server.log"),serverId:M.default.join(n,"server-instance-id"),info:M.default.join(n,"server-info"),version:M.default.join(n,"server-version"),owners:M.default.join(n,"owners"),agent:M.default.join(n,"agent"),stopped:M.default.join(n,"server-stopped"),lock:M.default.join(n,"start.lock")}}var ye=()=>process.env.RYUGI_ARTIFACTS_COMMAND||"ryugi
|
|
2
|
+
"use strict";var Kn=Object.create;var Yt=Object.defineProperty;var Qn=Object.getOwnPropertyDescriptor;var Zn=Object.getOwnPropertyNames;var eo=Object.getPrototypeOf,to=Object.prototype.hasOwnProperty;var ro=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Zn(t))!to.call(e,o)&&o!==r&&Yt(e,o,{get:()=>t[o],enumerable:!(n=Qn(t,o))||n.enumerable});return e};var S=(e,t,r)=>(r=e!=null?Kn(eo(e)):{},ro(t||!e||!e.__esModule?Yt(r,"default",{value:e,enumerable:!0}):r,e));var Kt=require("node:util");var f=class extends Error{constructor(r,n="failed",o){super(r.message);this.error=r;this.kind=n;this.raw=o}error;kind;raw};function _e(e){if(e instanceof f)return e.error;let t=e,r=t?.fields;return{code:typeof r?.code=="string"?`E_${r.code.toUpperCase().replace(/^E_/,"")}`:"E_COMMAND_FAILED",message:typeof t?.message=="string"&&t.message?t.message:typeof r?.message=="string"?r.message:String(e),...typeof r?.status=="number"?{httpStatus:r.status}:{},...r&&Object.keys(r).length?{details:r}:{}}}function ce(e,t=!1){switch(e.kind){case"succeeded":return{outcome:t?"attention":"success",code:0};case"validation_failed":return{outcome:"attention",code:3};case"pending":return{outcome:"pending",code:4};case"action_required":return{outcome:"attention",code:2};case"partial":return{outcome:"partial",code:5};case"failed":return{outcome:"error",code:1};case"interrupted":return{outcome:"error",code:e.signal==="SIGINT"?130:143}}}function Jt(e,t,r,n){return!e||typeof e!="object"||Array.isArray(e)?e:Object.fromEntries(Object.entries(e).filter(([o])=>t.includes(o)?!0:(n.push({path:`${r}.${o}`,reason:"fields"}),!1)))}function ht(e,t,r,n){let o=[...t.coverage.omitted??[]],s=t.data;if(r.fields){let i=[...new Set([...r.fields,...n.requiredFields??[]])];if(n.collection&&s&&typeof s=="object"){let a=s,u=a[n.collection];s={...a,[n.collection]:Array.isArray(u)?u.map((p,d)=>Jt(p,i,`data.${n.collection}.${d}`,o)):u}}else s=Jt(s,i,"data",o)}return{schema:"ryugi.cli/v1",command:e,outcome:ce(t.completion,t.warnings.length>0).outcome,data:s,...t.coverage.page?{page:t.coverage.page}:{},...o.length?{omitted:o}:{},...t.effects.length?{effects:t.effects}:{},...t.warnings.length?{warnings:t.warnings}:{},...t.actions.length?{next:t.actions}:{},...t.completion.kind==="failed"?{error:t.completion.error}:t.completion.kind==="interrupted"?{error:{code:"E_INTERRUPTED",message:`Command interrupted by ${t.completion.signal}.`,details:{signal:t.completion.signal}}}:{}}}var Xt={format:{type:"string",value:"<brief|table|json|jsonl|raw>",help:"Output format (default: brief)"},json:{type:"boolean",help:"Shorthand for --format json"},detail:{type:"boolean",help:"Read complete evidence for the selected object or page"},fields:{type:"string",value:"<fields>",help:"Select public output fields, separated by commas"},quiet:{type:"boolean",help:"Print the command's declared scalar only"},verbose:{type:"boolean",help:"Include diagnostic details on stderr"}};function yt(e,t){let r={};for(let n=0;n<e.length;n++){let o=e[n];if(o==="--")break;if(!o.startsWith("--"))continue;let s=o.indexOf("="),i=o.slice(2,s<0?void 0:s),a=i==="source"?"boolean":t[i]?.type;a==="string"?r[i]=s<0?e[++n]??"":o.slice(s+1):a==="boolean"&&(r[i]=!0)}return r}function bt(e,t,r=process.env){let n=yt(e,t),o=["format","json","quiet","source"].filter(l=>n[l]!==void 0),s=r.RYUGI_ARTIFACTS_FORMAT??"brief",i=n.format??(n.json?"json":n.quiet?"quiet":n.source?"source":s),u=["brief","table","json","jsonl","raw","source","quiet"].includes(i),p={format:u?i:"brief",detail:!!n.detail||!!n.source,verbose:!!n.verbose},d;return o.length>1?d=new f({code:"E_OPTION_CONFLICT",message:"Choose one of --format, --json, --quiet or --source."}):(!u||!o.length&&!["brief","json","jsonl"].includes(s))&&(d=new f({code:"E_FORMAT_UNSUPPORTED",message:`Unknown output format: ${String(i)}`})),typeof n.fields=="string"&&(p.fields=n.fields.split(",").map(l=>l.trim()),p.fields.some(l=>!l)&&(d=new f({code:"E_ARGUMENT_INVALID",message:"--fields requires comma-separated field names."}))),{options:p,...d?{error:d}:{}}}var ue=S(require("node:fs"),1),zt=S(require("node:os"),1),M=S(require("node:path"),1),w=class extends Error{constructor(r,n={},o=1){super(r);this.fields=n;this.code=o}fields;code};function no(e){let t="";try{t=ue.default.realpathSync(zt.default.homedir())}catch{}let r=[];for(let n=e;r.push(n),!(ue.default.existsSync(M.default.join(n,".git"))&&(n!==t||e===t));n=M.default.dirname(n))if(M.default.dirname(n)===n)return e;return r.find(n=>ue.default.existsSync(M.default.join(n,".ryugi","artifacts")))??r.at(-1)}function z(e){let t;try{if(t=ue.default.realpathSync(M.default.resolve(e)),!ue.default.statSync(t).isDirectory())throw new Error("Not a directory")}catch{throw new w(`Project directory not found: ${e}`)}t=no(t);let r=M.default.join(t,".ryugi","artifacts"),n=M.default.join(r,".state");return{project:t,root:r,state:n,pid:M.default.join(n,"server.pid"),log:M.default.join(n,"server.log"),serverId:M.default.join(n,"server-instance-id"),info:M.default.join(n,"server-info"),version:M.default.join(n,"server-version"),owners:M.default.join(n,"owners"),agent:M.default.join(n,"agent"),stopped:M.default.join(n,"server-stopped"),lock:M.default.join(n,"start.lock")}}var ye=()=>process.env.RYUGI_ARTIFACTS_COMMAND||"ryugi",le=/^(artboard|document|html|whiteboard)\/[a-z0-9][a-z0-9-]*$/,je="--artifact must be <type>/<id>: type artboard, document or html, id of lowercase letters, digits and hyphens";var Te="ryugi",te={...Xt,"project-dir":{type:"string",value:"<path>",help:"Project directory (default: current directory)"}},Qt={help:{type:"boolean",short:"h",help:"Show this help"}};function be(e,t,r=0){let n=Object.fromEntries(Object.entries({...te,...t}).map(([o,{type:s,short:i}])=>[o,i?{type:s,short:i}:{type:s}]));try{let o=(0,Kt.parseArgs)({args:e,options:n,allowPositionals:r>0,strict:!0});if(o.positionals.length>r)throw new w(`Unknown argument: ${o.positionals[r]}`);return{values:o.values,positionals:o.positionals,projectDir:o.values["project-dir"]??process.cwd()}}catch(o){if(o instanceof w)throw o;let s=/'([^']+)'/.exec(o.message)?.[1];throw new w(s?`Unknown argument: ${s.split(" ")[0]}`:o.message)}}function Zt(e){let t=e.indexOf("--");return(t===-1?e:e.slice(0,t)).some(r=>r==="--help"||r==="-h")}function wt(e){let t=Math.max(...e.map(([r])=>r.length))+2;return e.map(([r,n])=>` ${r.padEnd(t)}${n.replaceAll(`
|
|
3
3
|
`,`
|
|
4
4
|
${" ".repeat(t)}`)}`.trimEnd()).join(`
|
|
5
5
|
`)}function er(e){return Object.entries(e).filter(([,t])=>t.help!==void 0).map(([t,r])=>[`${r.short?`-${r.short}, `:""}--${t}${r.value?` ${r.value}`:""}`,r.help])}function tr(e){return[(e.usage??["[options]"]).map((r,n)=>`${n?" ":"Usage: "}${Te} ${e.name} ${r}`).join(`
|
|
@@ -62,7 +62,7 @@ function run(urls) {
|
|
|
62
62
|
`)}function Fs(e){let t={...process.env,ARTIFACTS_HOST:e.host,ARTIFACTS_URL_HOST:e.urlHost};process.env.RYUGI_ARTIFACTS_COMMAND&&(t.RYUGI_ARTIFACTS_LAUNCHER=process.env.RYUGI_ARTIFACTS_COMMAND);for(let r of["RYUGI_ARTIFACTS_OWNER","RYUGI_ARTIFACTS_VERSION","RYUGI_ARTIFACTS_COMMAND","ARTIFACTS_OPEN_CMD","ARTIFACTS_ROOT"])delete t[r];return t}var Ms=e=>e.split(`
|
|
63
63
|
`).find(t=>t.includes('"server-started"')),Us=e=>e.split(`
|
|
64
64
|
`).find(t=>t.includes('"server-error"'));async function Gs(e,t,r){let n=await fetch(Vt(e,"/api/hub/projects"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dir:t.project,...r?{open:r}:{},...r&&process.env.ARTIFACTS_OPEN_CMD?{openCmd:process.env.ARTIFACTS_OPEN_CMD}:{}}),signal:AbortSignal.timeout(Is)});if(!n.ok)throw new w(`The artifacts server refused this project: ${await n.text()}`)}async function Ut(e,t){if(t.signal?.throwIfAborted(),e.artifact!==void 0&&!le.test(e.artifact))throw new w(je);if(e.port!==void 0&&(!/^\d+$/.test(e.port)||Number(e.port)<1||Number(e.port)>65535))throw new w("--port must be a port number");e.urlHost||=e.host==="127.0.0.1"||e.host==="localhost"?"localhost":e.host,process.umask(63);let r=z(e.projectDir),n=pe();dr(n.home),U.default.mkdirSync(r.state,{recursive:!0}),U.default.existsSync(dt.default.join(r.state,".gitignore"))||U.default.writeFileSync(dt.default.join(r.state,".gitignore"),`*
|
|
65
|
-
`);let o=process.env.RYUGI_ARTIFACTS_VERSION||"1.
|
|
65
|
+
`);let o=process.env.RYUGI_ARTIFACTS_VERSION||"1.71.0",s=fe(n.projects).some(p=>p.dir===r.project),i=async(p,d)=>{Ls(r);let l=e.open&&!e.library&&(!d||!s);await Gs(p,r,l?e.artifact??!0:void 0);let m=js(p,r,e.artifact);d&&(m.reused=!0);let C=await Ts(m,p,r,e.artifact),T=xn(r.project);if(t.signal?.throwIfAborted(),e.library&&e.open&&(process.env.ARTIFACTS_OPEN_CMD?await new Promise(j=>(0,Oe.execFile)(process.env.ARTIFACTS_OPEN_CMD,[p.url],()=>j())):await Dt(p.url,[p.url]).catch(j=>t.log(j.message,"stderr"))),await t.ready(T?{...C,loginHint:T}:C),d&&s&&process.platform==="darwin"&&e.open&&e.openExisting&&e.artifact&&!process.env.ARTIFACTS_OPEN_CMD){let j=C.link;await Dt(typeof C.cloudLink=="string"?C.cloudLink:j,[j]).catch(D=>t.log(D.message,"stderr"))}};if(!await $s(n.lock))throw new w("Another start is still starting the artifacts server; retry in a moment");let a=!0,u=()=>{if(a){a=!1;try{U.default.rmdirSync(n.lock)}catch{}}};try{t.signal?.throwIfAborted();let p=Ps(n),d=Pn(n);if(p&&!d){for(let k=0;k<Os&&J(p)&&!d;k+=100)await me(100),d=Pn(n);!d&&J(p)&&await Nn(p,"stopping artifacts server")}if(p&&d){let k=W(n.version)??"",y=Tn(k,o),c=(d.host??"127.0.0.1")!==e.host||(d.urlHost??"localhost")!==e.urlHost||(d.cloudOrigin??Ln)!==xs(process.env)||e.port!==void 0&&String(d.port)!==e.port;if(y!=="replace"&&!c&&await Ns(d))return u(),await i(d,!0),0;await Nn(p,"running artifacts server")}await Ds(),U.default.rmSync(n.info,{force:!0});let l=Dn.default.randomBytes(24).toString("hex");U.default.writeFileSync(n.serverId,`${l}
|
|
66
66
|
`),U.default.writeFileSync(n.version,`${o}
|
|
67
67
|
`);let C=[dt.default.join(__dirname,"server.cjs"),`--artifacts-server-id=${l}`,...e.port?[`--port=${e.port}`]:[]],T=Fs(e);if(e.foreground||!e.background&&!!process.env.CODEX_CI){let k=(0,Oe.spawn)(process.execPath,C,{env:T,stdio:["ignore","pipe","pipe"]});U.default.writeFileSync(n.pid,`${k.pid}
|
|
68
68
|
`);let y=()=>{k.kill("SIGTERM")};if(t.signal)t.signal.addEventListener("abort",y,{once:!0});else for(let v of["SIGINT","SIGTERM"])process.on(v,y);Gt.default.createInterface({input:k.stderr}).on("line",v=>t.log(v,"stderr"));let c=new Promise(v=>k.on("close",I=>v(I??1))),h=!1,g;Gt.default.createInterface({input:k.stdout}).on("line",v=>{let I;try{I=JSON.parse(v)}catch{t.log(v,"stdout");return}if(I.type!=="server-started"||h){t.event?t.event(I):I.type==="server-error"||I.type==="error"?t.failure(I):t.log(JSON.stringify(I),"stderr");return}h=!0,u(),g=i(I,!1),g.catch(()=>y())});try{let v=await c;return await g,v}finally{if(t.signal)t.signal.removeEventListener("abort",y);else for(let v of["SIGINT","SIGTERM"])process.removeListener(v,y)}}try{U.default.renameSync(n.log,`${n.log}.1`)}catch{}let D=U.default.openSync(n.log,"w"),b=(0,Oe.spawn)(process.execPath,C,{env:T,detached:!0,windowsHide:!0,stdio:["ignore",D,D]});U.default.closeSync(D),b.unref(),U.default.writeFileSync(n.pid,`${b.pid}
|
|
@@ -70,4 +70,4 @@ function run(urls) {
|
|
|
70
70
|
`)};if(W(e.pid)===null)return{status:"not_running"};let r=Number(W(e.pid)),n=W(e.serverId)??"";if(!Number.isInteger(r)||r<=0||!/^[\w-]{32,64}$/.test(n)||!Se(r,n))return ee.default.rmSync(e.pid,{force:!0}),ee.default.rmSync(e.serverId,{force:!0}),t("stale_pid"),{status:"stale_pid"};try{process.kill(r,"SIGTERM")}catch{}if(!await re(r,7e3)){try{process.kill(r,"SIGKILL")}catch{}await re(r,1e3)}if(J(r))return{status:"failed",error:"process still running"};for(let o of[e.pid,e.serverId])ee.default.rmSync(o,{force:!0});return t("stop"),{status:"stopped"}}var Un={name:"stop",summary:"Stop this machine's artifacts server; the artifacts are kept",usage:["[options]"],options:{},semantic:e=>_({id:"stop",mode:"finite",output:{formats:["brief","json","jsonl","quiet"],scalar:t=>t.status},async run(){let t=await qs();return x({status:t.status==="stopped"?"stopped":t.status==="failed"?"failed":"unchanged",reason:t.status,scope:"machine",artifacts:"kept"},t.status==="failed"?{kind:"failed",error:{code:"E_SERVER_STOP_FAILED",message:t.error}}:{kind:"succeeded"})},present:Ws},e)};var Wt=require("node:child_process"),Bn=S(require("node:fs"),1);var pt=S(require("node:fs"),1),Gn=S(require("node:os"),1),ft=S(require("node:path"),1);function Vn(e,t){let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let o=0;o<3;o++)if(r[o]!==n[o])return r[o]>n[o];return!1}var Wn=e=>ft.default.join(e.XDG_CACHE_HOME||ft.default.join(Gn.default.homedir(),".cache"),"ryugi","artifacts","latest.json");function qn(e,t,r){try{pt.default.mkdirSync(ft.default.dirname(e),{recursive:!0});let n=`${e}.${process.pid}`;pt.default.writeFileSync(n,JSON.stringify({version:t,checkedAt:r})),pt.default.renameSync(n,e)}catch{}}var H="ryugi-artifacts",mt=["npm","pnpm","yarn","bun"],Hs=[["npx",["/_npx/"]],["pnpm dlx",["/pnpm/dlx/","/.pnpm-store/dlx/"]],["bunx",["/bunx-","/.bun/install/cache/"]]],Bs=[["pnpm",["/pnpm/global/"]],["yarn",["/yarn/global/"]],["bun",["/.bun/install/global/"]],["npm",[`/lib/node_modules/${H}/`,`/npm/node_modules/${H}/`]]];function Ys(e,t){if(t.RYUGI_ARTIFACTS_COMMAND)return{kind:"launcher"};let r=e;try{r=Bn.default.realpathSync(e)}catch{}let n=r.replaceAll("\\","/").toLowerCase(),o=s=>s.some(i=>n.includes(i));for(let[s,i]of Hs)if(o(i))return{kind:"transient",runner:s};for(let[s,i]of Bs)if(o(i))return{kind:"global",pm:s};return n.includes("/node_modules/")?{kind:"unknown"}:{kind:"local"}}function Hn(e,t){let r=`${H}@${t}`;return{cmd:e,args:e==="npm"?["install","-g",r]:e==="yarn"?["global","add",r]:["add","-g",r]}}var he=({cmd:e,args:t})=>[e,...t].join(" ");async function Js(e){let t=e.endsWith("/")?e:`${e}/`;try{let r=await fetch(new URL(`${H}/latest`,t),{signal:AbortSignal.timeout(1e4)}),{version:n}=await r.json();if(r.ok&&typeof n=="string"&&/^\d+\.\d+\.\d+/.test(n))return n;throw new Error(`registry returned ${r.status}`)}catch(r){throw new w(`Could not get the latest ${H} version from ${t}: ${r.message}`)}}function Xs(e,t){return e.kind==="transient"?`You ran ${H} through ${e.runner}, which keeps no install to update. Run \`${e.runner} ${H}@latest\` to get ${t}.`:e.kind==="local"?"This is a local build from a Ryugi checkout. Update it with `git pull`, then `pnpm build` in artifacts/.":e.kind==="launcher"?`The Ryugi skill runs ${H} through its launcher, which moves to ${t} within a day of its release.`:null}var gt=class extends w{};async function zs(e,t={}){if(e.pm!==void 0&&!mt.includes(e.pm))throw new w(`--pm must be one of ${mt.join(", ")}`);let r=e.pm?{kind:"global",pm:e.pm}:Ys(e.file,e.env),n=await Js(e.registry);qn(Wn(e.env),n,Date.now());let o={type:"update-check",current:e.current,latest:n,install:r.kind};if(!Vn(n,e.current))return{...o,upToDate:!0,command:null};if(r.kind==="unknown"){let p=mt.map(d=>` ${he(Hn(d,n))}`).join(`
|
|
71
71
|
`);throw new gt(`Could not tell how ${H} was installed (${e.file}). Install ${n} with one of:
|
|
72
72
|
${p}
|
|
73
|
-
or run \`${H} update --pm <${mt.join("|")}>\`.`)}if(r.kind!=="global")return{...o,upToDate:!1,command:null,message:Xs(r,n)};let s=Hn(r.pm,n);if(e.check)return{...o,upToDate:!1,command:he(s)};let i=process.platform==="win32";t.beforeInstall?.();let a=t.log?["inherit","pipe","pipe"]:["inherit",2,2],u=i?(0,Wt.spawnSync)(he(s),{stdio:[...a],env:e.env,shell:!0}):(0,Wt.spawnSync)(s.cmd,s.args,{stdio:[...a],env:e.env});if(u.stdout?.length&&t.log?.(u.stdout.toString()),u.stderr?.length&&t.log?.(u.stderr.toString()),u.error)throw new w(`Could not run ${he(s)}: ${u.error.message}`);if(u.status!==0)throw new w(`${he(s)} exited with ${u.status??u.signal}`);return{type:"updated",from:e.current,to:n,pm:r.pm,command:he(s)}}var Yn={name:"update",summary:"Install the newest ryugi-artifacts release with the package manager that installed this one",options:{check:{type:"boolean",help:"Compare versions only; do not install"},pm:{type:"string",value:"<npm|pnpm|yarn|bun>",help:"Use this package manager instead of detecting it"}},semantic:e=>_({id:"update",mode:"finite",output:{formats:["brief","json","jsonl"],fields:["current","latest","install","status","installed","message","command"]},async run(t,r){let n,o;try{o=await zs({current:"1.
|
|
73
|
+
or run \`${H} update --pm <${mt.join("|")}>\`.`)}if(r.kind!=="global")return{...o,upToDate:!1,command:null,message:Xs(r,n)};let s=Hn(r.pm,n);if(e.check)return{...o,upToDate:!1,command:he(s)};let i=process.platform==="win32";t.beforeInstall?.();let a=t.log?["inherit","pipe","pipe"]:["inherit",2,2],u=i?(0,Wt.spawnSync)(he(s),{stdio:[...a],env:e.env,shell:!0}):(0,Wt.spawnSync)(s.cmd,s.args,{stdio:[...a],env:e.env});if(u.stdout?.length&&t.log?.(u.stdout.toString()),u.stderr?.length&&t.log?.(u.stderr.toString()),u.error)throw new w(`Could not run ${he(s)}: ${u.error.message}`);if(u.status!==0)throw new w(`${he(s)} exited with ${u.status??u.signal}`);return{type:"updated",from:e.current,to:n,pm:r.pm,command:he(s)}}var Yn={name:"update",summary:"Install the newest ryugi-artifacts release with the package manager that installed this one",options:{check:{type:"boolean",help:"Compare versions only; do not install"},pm:{type:"string",value:"<npm|pnpm|yarn|bun>",help:"Use this package manager instead of detecting it"}},semantic:e=>_({id:"update",mode:"finite",output:{formats:["brief","json","jsonl"],fields:["current","latest","install","status","installed","message","command"]},async run(t,r){let n,o;try{o=await zs({current:"1.71.0",file:__filename,env:process.env,registry:process.env.npm_config_registry||"https://registry.npmjs.org/",check:!!e.values.check,pm:e.values.pm},{beforeInstall(){n=r.effects.begin("install",H)},log:r.diagnostic})}catch(i){throw i instanceof gt?new f({code:"E_INSTALL_UNKNOWN",message:i.message},"action_required"):i}o.type==="updated"&&n!==void 0&&r.effects.confirm(n,{from:o.from,to:o.to});let s=o.type==="updated"?{current:o.to,latest:o.to,install:"global",status:"updated",installed:!0,command:o.command}:{current:o.current,latest:o.latest,install:o.install,status:o.upToDate?"up_to_date":"available",installed:!1,command:o.command,...o.message?{message:o.message}:{}};return x(s,void 0,{effects:r.effects.snapshot()})},present:Ks},e)};function Ks({data:e}){return{heading:"Update",status:e.status,facts:[R("Current",A(e,"current"),!0),R("Latest",A(e,"latest")),R("Install",A(e,"install")),...e.message?[R("Advice",A(e,"message"))]:[]],sections:[]}}var qt=[Fn,Un,Hr,un,Kr,Vr,ln,sn,Zr,Yn];function Ht(e=process.stdout,t=process.stderr){let r=new WeakMap;for(let n of[e,t])n.on("error",o=>r.set(n,o));return{write(n,o){let s=n==="stdout"?e:t,i=r.get(s);return i?Promise.reject(i):new Promise((a,u)=>s.write(o,p=>p?u(p):a()))}}}function Bt(e){process.exitCode=e}var Xn=S(require("node:fs"),1);async function xe(e,t,r,n){return Ct({id:e,mode:"finite",output:{formats:[r.format]},run(){throw t},present(){return{heading:"Error",status:"failed",facts:[],sections:[]}}},void 0,{...r,fields:void 0,detail:!1},n)}function Jn(e,t){return{id:e,mode:"finite",output:{formats:["brief","json","jsonl"],fields:["text","version","capabilities","commands"]},run(){return x(t)},present({data:r}){return r.version?{heading:`ryugi ${r.version}`,status:"",facts:[],sections:[]}:{heading:"Help",status:"",facts:[],sections:[{kind:"content",key:"text",text:r.text}]}}}}async function zn(e,t,r,n,o,s,i){let[a,...u]=e,p=t.find(d=>d.name===a);try{if(a==="--version"||a==="-v")return be(u,{},0),await _(Jn("version",{text:n,version:n,capabilities:["reviewBundlesV1"]}),void 0).run(o,s);if(a==="--help"||a==="-h"||p&&Zt(u)){p||be(u,{},0);let l=p?tr(p):rr(t,r);return await _(Jn("help",{text:l,commands:t.map(({name:m,summary:C})=>({name:m,summary:C}))}),void 0).run(o,s)}if(!p&&(!a||a.startsWith("-")||(()=>{try{return Xn.default.statSync(a).isDirectory()}catch{return!1}})())){let l=be(e,r,1);if(l.positionals.length&&l.values["project-dir"])throw new f({code:"E_ARGUMENT_INVALID",message:"Specify one project directory."});return l.projectDir=l.values["project-dir"]??l.positionals[0]??l.projectDir,l.values.foreground=!0,l.values.open=!l.values["no-open"],await lt(l,"browse").run(o,s,i)}if(!p)throw new f({code:a?.includes("/")?"E_PROJECT_NOT_FOUND":"E_UNKNOWN_COMMAND",message:a?`Unknown command: ${a}`:"Use start --foreground to browse with semantic output."});let d;try{d=be(u,p.options,p.positionals)}catch(l){throw new f({code:"E_ARGUMENT_INVALID",message:l.message})}return await p.semantic(d).run(o,s,i)}catch(d){return xe(p?.name??a??"browse",d,o,s)}}var Qs={"no-open":{type:"boolean",help:"Print the URL without opening a browser"}};async function Zs(e){let t=Object.assign({},te,...qt.map(a=>a.options)),r=Ht(),n;try{n=bt(e,t,Ir(e,t))}catch(a){return xe(e[0]??"browse",a,bt(e,t).options,r)}if(n.error)return xe(e[0]??"browse",n.error,n.options,r);let o=new AbortController,s=()=>o.abort("SIGINT"),i=()=>o.abort("SIGTERM");process.on("SIGINT",s),process.on("SIGTERM",i);try{return await zn(e,qt,Qs,"1.71.0",n.options,r,o.signal)}finally{process.removeListener("SIGINT",s),process.removeListener("SIGTERM",i)}}Zs(process.argv.slice(2)).then(Bt,e=>xe(process.argv[2]??"browse",e,{format:"brief"},Ht()).then(Bt));
|
package/dist/comment-threads.cjs
CHANGED
|
@@ -1,2 +1,53 @@
|
|
|
1
1
|
// Generated from ryugi-cloud/packages/artifacts/src/shared/review-evidence.ts. Do not edit.
|
|
2
|
-
"use strict";
|
|
2
|
+
"use strict";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/shared/review-evidence.ts
|
|
22
|
+
var review_evidence_exports = {};
|
|
23
|
+
__export(review_evidence_exports, {
|
|
24
|
+
humanTokens: () => humanTokens,
|
|
25
|
+
reviewStateKey: () => reviewStateKey,
|
|
26
|
+
unreadThreadCount: () => unreadThreadCount
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(review_evidence_exports);
|
|
29
|
+
var import_node_crypto = require("node:crypto");
|
|
30
|
+
var hash = (value) => (0, import_node_crypto.createHash)("sha256").update(JSON.stringify(value)).digest("hex");
|
|
31
|
+
var reviewStateKey = (artifact, agent) => hash([artifact, agent]);
|
|
32
|
+
function humanTokens(thread) {
|
|
33
|
+
const values = thread.messages.filter((message) => message.author === "human").map((message) => ({
|
|
34
|
+
token: hash([thread.id, "message", message.id, message.at, message.editedAt, message.deleted, message.text]),
|
|
35
|
+
at: message.editedAt ?? message.at
|
|
36
|
+
}));
|
|
37
|
+
if (thread.statusBy === "human")
|
|
38
|
+
values.push({ token: hash([thread.id, "status", thread.statusAt, thread.status]), at: thread.statusAt });
|
|
39
|
+
return values;
|
|
40
|
+
}
|
|
41
|
+
function unreadThreadCount(file, consumed = []) {
|
|
42
|
+
const seen = new Set(consumed);
|
|
43
|
+
return (file?.threads ?? []).filter((thread) => {
|
|
44
|
+
const anchor = thread.anchor;
|
|
45
|
+
return anchor.ask === void 0 && anchor.choice === void 0 && anchor.submit === void 0 && humanTokens(thread).some((event) => !seen.has(event.token));
|
|
46
|
+
}).length;
|
|
47
|
+
}
|
|
48
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
+
0 && (module.exports = {
|
|
50
|
+
humanTokens,
|
|
51
|
+
reviewStateKey,
|
|
52
|
+
unreadThreadCount
|
|
53
|
+
});
|