@runeya/runeya 2.0.32 → 2.0.33

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.
Files changed (195) hide show
  1. package/index.js +1 -1
  2. package/package.json +1 -1
  3. package/{src-KERYXMIR.js → src-U3ECNNB6.js} +97 -12
  4. package/src-U3ECNNB6.js.map +1 -0
  5. package/web/assets/{AgentScalarChatInterface.vue-_8ZxeM0a.js → AgentScalarChatInterface.vue-_d0FQndF.js} +1 -1
  6. package/web/assets/{AgentTerminalPage-DXRPHQVX.js → AgentTerminalPage-MAnraxPv.js} +1 -1
  7. package/web/assets/AiChatPage-CbS7x-0V.js +1 -0
  8. package/web/assets/{AppLayout-DUn0cZS7.js → AppLayout-D2IqSY3k.js} +1 -1
  9. package/web/assets/{AuditPage-EvOL18nm.js → AuditPage-Aku7hNuy.js} +1 -1
  10. package/web/assets/CloudAccountPage-B0DOhFL9.js +1 -0
  11. package/web/assets/CloudAccountPage-CRN-tnI1.css +1 -0
  12. package/web/assets/CloudAccountPage-Dtv7HTxi.js +1 -0
  13. package/web/assets/CloudMessagingPage-DQ_OQj8y.js +2 -0
  14. package/web/assets/CloudMessagingPage-L-bG3z5q.css +1 -0
  15. package/web/assets/{DashboardPage-CK4g4Tme.js → DashboardPage-BmJuLhrC.js} +1 -1
  16. package/web/assets/{EditorIcon-BIgiRqya.js → EditorIcon-Dd8hBZ2W.js} +1 -1
  17. package/web/assets/{EnvironmentForm-BXOR1otz.js → EnvironmentForm-Dtc15T5b.js} +1 -1
  18. package/web/assets/{EnvironmentFormPage-Be0qAprW.js → EnvironmentFormPage-Ct_IB45z.js} +1 -1
  19. package/web/assets/{EnvironmentListPage-D19RJC0u.js → EnvironmentListPage-Cmvz279m.js} +1 -1
  20. package/web/assets/{EnvironmentSelector-CvuzSsxR.js → EnvironmentSelector-xSJqTA8B.js} +1 -1
  21. package/web/assets/{KanbanBoardPage-Ywmdoxo2.js → KanbanBoardPage-BPENx0dI.js} +3 -3
  22. package/web/assets/{KanbanListPage-BbtUSmYp.js → KanbanListPage-wRWXmT8y.js} +1 -1
  23. package/web/assets/{LaunchProjectPage-Dn_9DQ1Q.js → LaunchProjectPage-Byw_D9zD.js} +1 -1
  24. package/web/assets/{LaunchServicesPage-CRdrBEoh.js → LaunchServicesPage-BUHzR08U.js} +1 -1
  25. package/web/assets/{LogViewer-BSOZfxmC.js → LogViewer-BUqjt3du.js} +1 -1
  26. package/web/assets/{ProcessControls-0SnCcKsw.js → ProcessControls-CBN93qC2.js} +1 -1
  27. package/web/assets/{ProcessDetailPage-BrZnwsXr.js → ProcessDetailPage-DzKon1sD.js} +1 -1
  28. package/web/assets/{ProcessMetrics-a83nFX2p.js → ProcessMetrics-CnybcxCt.js} +1 -1
  29. package/web/assets/{ProjectDetailPage-CkSErVw4.js → ProjectDetailPage-DyrSoCXZ.js} +1 -1
  30. package/web/assets/{ProjectListPage-g6Xnou9R.js → ProjectListPage-BmGTvtQY.js} +1 -1
  31. package/web/assets/{RandomJobTestPage-BsBDflAF.js → RandomJobTestPage-Cw76neG0.js} +1 -1
  32. package/web/assets/{ScenarioEditorPage-yKFpZUiR.js → ScenarioEditorPage-BKXLRaVb.js} +1 -1
  33. package/web/assets/{SendToChatDialog-D8ydDtdJ.js → SendToChatDialog-DS6ygiLN.js} +1 -1
  34. package/web/assets/{ServiceControlsBar-CWx-zchM.js → ServiceControlsBar-CVy99xTo.js} +1 -1
  35. package/web/assets/{ServiceDetailPage-DG40IMvy.js → ServiceDetailPage-DZ9_Me8A.js} +1 -1
  36. package/web/assets/{ServiceFormPage-CZNwSWP3.js → ServiceFormPage-OLPKsqQS.js} +1 -1
  37. package/web/assets/{SettingsPage-GLYf_4R0.js → SettingsPage-CdTx7AnK.js} +4 -4
  38. package/web/assets/{SetupPage-obpqW5Mi.js → SetupPage-BPvhbfLe.js} +1 -1
  39. package/web/assets/{UnlockPage-CWwwpn3_.js → UnlockPage-DBM00rzm.js} +1 -1
  40. package/web/assets/{VariablesTable-zi3h9dWC.js → VariablesTable-CPGvcqUc.js} +1 -1
  41. package/web/assets/{VersionBadge-6mKcCE2O.js → VersionBadge-exF5SS92.js} +1 -1
  42. package/web/assets/WikiPage-DI-gEFLI.js +1 -0
  43. package/web/assets/{WikiView-CPWPuheg.js → WikiView-CHYiB0KB.js} +1 -1
  44. package/web/assets/{add-scalar-classes-BCfvGPPW.js → add-scalar-classes-_urkKKAx.js} +3 -3
  45. package/web/assets/auth-errors-DuCcISQ3.js +1 -0
  46. package/web/assets/{autocomplete-BnB1wTK7.js → autocomplete-DOJyM3O4.js} +1 -1
  47. package/web/assets/{basic-shape-diamond.svg-Dju7HYUn.js → basic-shape-diamond.svg-CpUSmNFl.js} +1 -1
  48. package/web/assets/{basic-shape-hexagon.svg-CUl5r_6H.js → basic-shape-hexagon.svg-CQYpGSV7.js} +1 -1
  49. package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-DT7a4zpg.js → basic-shape-primary-circle-ellipse-round.svg-DzIL8_ij.js} +1 -1
  50. package/web/assets/{basic-shape-primary-square-rectangle.svg-CUCQNRyb.js → basic-shape-primary-square-rectangle.svg-DQk0s7-B.js} +1 -1
  51. package/web/assets/{basic-shape-shield.svg-C1iuG3rm.js → basic-shape-shield.svg-Dvwzvo1f.js} +1 -1
  52. package/web/assets/{browser-uzCQNPCh.js → browser-Di-oVkMY.js} +1 -1
  53. package/web/assets/{browser-D9I_5GDd.js → browser-Wi5J-ETz.js} +1 -1
  54. package/web/assets/{card-Q-zM-syI.js → card-D4D75E3s.js} +1 -1
  55. package/web/assets/{checkbox-FEUuFC_Y.js → checkbox-DLT8zwu6.js} +1 -1
  56. package/web/assets/{chip-CvXMho_w.js → chip-DLu-SF6Z.js} +1 -1
  57. package/web/assets/{client-AiAB6bc-.js → client-BhMOCob9.js} +1 -1
  58. package/web/assets/{cloud-chat.store-C1C_xXln.js → cloud-chat.store-DyxcLYye.js} +1 -1
  59. package/web/assets/{cloud-client-RA4AN5Qm.js → cloud-client-DL07DCp9.js} +1 -1
  60. package/web/assets/{column-CK_-tsqy.js → column-B0TVmSXF.js} +1 -1
  61. package/web/assets/{computer-device-desktop-monitor.svg-ji7PpcDV.js → computer-device-desktop-monitor.svg-C6JA2GEU.js} +1 -1
  62. package/web/assets/{computer-device-desktop.svg-DCn-YofE.js → computer-device-desktop.svg-B-jASu9C.js} +1 -1
  63. package/web/assets/{computer-device-laptop.svg-BKp5RGqQ.js → computer-device-laptop.svg-DQpSeGYJ.js} +1 -1
  64. package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-B_azyGXz.js → computer-device-mobile-phone-android-samsung-back.svg-CjgWas4b.js} +1 -1
  65. package/web/assets/{computer-device-mobile-phone-android-samsung.svg-Cbp3jEIV.js → computer-device-mobile-phone-android-samsung.svg-BN8bvWae.js} +1 -1
  66. package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-DrUVY9Y6.js → computer-device-mobile-phone-iphone-x-back.svg-CUa1bMPB.js} +1 -1
  67. package/web/assets/{computer-device-mobile-phone-iphone-x.svg-CozOtyBz.js → computer-device-mobile-phone-iphone-x.svg-n1XuTfhv.js} +1 -1
  68. package/web/assets/{computer-device-mobile-tablet-touch.svg-Bb8PcTWq.js → computer-device-mobile-tablet-touch.svg-B9G4dZyk.js} +1 -1
  69. package/web/assets/{computer-device-mobile-tablet.svg-EAoOTwhr.js → computer-device-mobile-tablet.svg-D8NkeKHw.js} +1 -1
  70. package/web/assets/{computer-device-network-ethernet-cat6.svg-CMoixkFr.js → computer-device-network-ethernet-cat6.svg-TmhSHD-e.js} +1 -1
  71. package/web/assets/{computer-device-network-lan-www.svg-DEaWMaGx.js → computer-device-network-lan-www.svg-2f28OX0p.js} +1 -1
  72. package/web/assets/{computer-device-network-wifi-connection.svg-DTJluQnx.js → computer-device-network-wifi-connection.svg-Kpr5zyss.js} +1 -1
  73. package/web/assets/{computer-device-network-wifi-router.svg-n7yb_VcU.js → computer-device-network-wifi-router.svg-JMyR11LD.js} +1 -1
  74. package/web/assets/{cssMode-DDNae5Uh.js → cssMode-UgKjANAC.js} +1 -1
  75. package/web/assets/{divider-C9a8oncb.js → divider-BIR7PvSC.js} +1 -1
  76. package/web/assets/{ecology-science-erlenmeyer-flask.svg-D1wdrkY-.js → ecology-science-erlenmeyer-flask.svg-Coxai5AB.js} +1 -1
  77. package/web/assets/{fieldset-UBXA0ap4.js → fieldset-Cz4oioUO.js} +1 -1
  78. package/web/assets/{freemarker2-BP2Vo-wb.js → freemarker2-C68PJ7mj.js} +1 -1
  79. package/web/assets/{handlebars-WGkalb7c.js → handlebars-k7r7xQOh.js} +1 -1
  80. package/web/assets/{html-4t0vE2cm.js → html-B2edirGb.js} +1 -1
  81. package/web/assets/{htmlMode-DtCen0tt.js → htmlMode-DaD50SVj.js} +1 -1
  82. package/web/assets/{image-flash-lightning.svg-bTSl31AM.js → image-flash-lightning.svg-Cs1cAEW3.js} +1 -1
  83. package/web/assets/{image-picture-flower.svg-DWCGkvxQ.js → image-picture-flower.svg-CG00uPk5.js} +1 -1
  84. package/web/assets/{index-DNteKGBo.js → index-CeEn33Iz.js} +4 -4
  85. package/web/assets/{interface-alert-exclamation-diamond.svg-Ccq-3v2w.js → interface-alert-exclamation-diamond.svg-DJE8F8B0.js} +1 -1
  86. package/web/assets/{interface-alert-exclamation-triangle-warning.svg-CMtkkHY4.js → interface-alert-exclamation-triangle-warning.svg-DUFU4aQj.js} +1 -1
  87. package/web/assets/{interface-alert-information-circle.svg-7REF2XAO.js → interface-alert-information-circle.svg-MJjBaMOz.js} +1 -1
  88. package/web/assets/{interface-award-crown.svg-Bqs2FD9W.js → interface-award-crown.svg-BX8_EIlg.js} +1 -1
  89. package/web/assets/{interface-bookmark.svg-CNQ3aOhm.js → interface-bookmark-tag.svg-CzAApyLr.js} +1 -1
  90. package/web/assets/{interface-bookmark-tag.svg-DV3t86U4.js → interface-bookmark.svg-DhZFLUeP.js} +1 -1
  91. package/web/assets/{interface-calendar-date-one.svg-C5pz1Cpo.js → interface-calendar-date-one.svg-CPKAPZTz.js} +1 -1
  92. package/web/assets/{interface-content-book-open-pages.svg-DBerFfrq.js → interface-content-book-open-pages.svg-DCTgF-_q.js} +1 -1
  93. package/web/assets/{interface-content-book-page.svg-BPcYBSJt.js → interface-content-book-page.svg-CZHPjlIs.js} +1 -1
  94. package/web/assets/{interface-content-file.svg-B75j-2KK.js → interface-content-file.svg-DzE1senh.js} +1 -1
  95. package/web/assets/{interface-content-folder.svg-BffZJWcG.js → interface-content-folder.svg-CBb6q5ZU.js} +1 -1
  96. package/web/assets/interface-content-folder.svg-sFZbfeKy.js +1 -0
  97. package/web/assets/{interface-copy-clipboard.svg-V85mcFW9.js → interface-copy-clipboard.svg-CR0xwfSu.js} +1 -1
  98. package/web/assets/{interface-edit-attachment.svg-_qbUi74N.js → interface-edit-attachment.svg-h526wvAD.js} +1 -1
  99. package/web/assets/{interface-edit-binocular.svg-Dh6R7jjV.js → interface-edit-binocular.svg-DXnC0PwZ.js} +1 -1
  100. package/web/assets/{interface-edit-magic-wand.svg-27k10wEA.js → interface-edit-magic-wand.svg-qg3wQp8H.js} +1 -1
  101. package/web/assets/{interface-edit-tool-paint-roller.svg-DjenxKUQ.js → interface-edit-tool-paint-roller.svg-BicViH5D.js} +1 -1
  102. package/web/assets/{interface-edit-tool-pencil.svg-CJdHhMGV.js → interface-edit-tool-pencil.svg-D393JYYp.js} +1 -1
  103. package/web/assets/{interface-favorite-award.svg-DTgYGssM.js → interface-favorite-award.svg-DP1qTBdu.js} +1 -1
  104. package/web/assets/{interface-favorite-flag.svg-DiM3iNKR.js → interface-favorite-flag.svg-B4kKh0FW.js} +1 -1
  105. package/web/assets/{interface-favorite-heart.svg-B3i7-Ltr.js → interface-favorite-heart.svg-C2pVz9qh.js} +1 -1
  106. package/web/assets/{interface-favorite-star.svg-DY8g8RzQ.js → interface-favorite-star.svg-Dp3715Dj.js} +1 -1
  107. package/web/assets/{interface-favorite-stars-sparkles.svg-CbSj7MTe.js → interface-favorite-stars-sparkles.svg-CkFPuwEi.js} +1 -1
  108. package/web/assets/{interface-hierarchy-flowchart.svg-DNMYUQZR.js → interface-hierarchy-flowchart.svg-CQgibrlv.js} +1 -1
  109. package/web/assets/{interface-home-house.svg-CSjpwAhk.js → interface-home-house.svg-D1y5VSRr.js} +1 -1
  110. package/web/assets/{interface-hyperlink.svg-tBBull94.js → interface-hyperlink.svg-DvQCXyBn.js} +1 -1
  111. package/web/assets/{interface-lighting-brightness.svg-CzZv3mSH.js → interface-lighting-brightness.svg-pSfxpTGz.js} +1 -1
  112. package/web/assets/{interface-lock-closed.svg-d1YuB-JP.js → interface-lock-closed.svg-BxrQzlZS.js} +1 -1
  113. package/web/assets/{interface-lock-open-unlock.svg-C823-w_k.js → interface-lock-open-unlock.svg-CjMizhoH.js} +1 -1
  114. package/web/assets/{interface-login-key.svg-Zgr3JVdK.js → interface-login-key.svg-DGqQFG_l.js} +1 -1
  115. package/web/assets/{interface-search.svg-DSz3cpEX.js → interface-search.svg-fjABlYPF.js} +1 -1
  116. package/web/assets/{interface-setting-cog.svg-DJC2Yi7k.js → interface-setting-cog.svg-CfNtVNCD.js} +1 -1
  117. package/web/assets/{interface-share-megaphone-bullhorn.svg-DArgZFlM.js → interface-share-megaphone-bullhorn.svg-BOVpWoDt.js} +1 -1
  118. package/web/assets/{interface-share-rocket.svg-BQqNQPuk.js → interface-share-rocket.svg-BtlJnDNN.js} +1 -1
  119. package/web/assets/{interface-share-satellite.svg-BaI-4gYm.js → interface-share-satellite.svg-BKAAvk16.js} +1 -1
  120. package/web/assets/{interface-share-space-ship.svg-BtJixJte.js → interface-share-space-ship.svg-DpDuvWjx.js} +1 -1
  121. package/web/assets/{interface-share.svg-BuiUg2rj.js → interface-share.svg-CmvO0ksM.js} +1 -1
  122. package/web/assets/{interface-signal-square.svg-BJysvTvC.js → interface-signal-square.svg-B-sMU22V.js} +1 -1
  123. package/web/assets/{interface-time-clock-circle.svg-CSsCSYI8.js → interface-time-clock-circle.svg-e0dWkqL8.js} +1 -1
  124. package/web/assets/{interface-time-hour-glass.svg-CRpDSBdA.js → interface-time-hour-glass.svg-406FnDKz.js} +1 -1
  125. package/web/assets/{interface-users-multiple.svg-CccqUlCN.js → interface-users-multiple.svg-DoYJsz0L.js} +1 -1
  126. package/web/assets/{interface-weather-moon.svg-YzMEbEWI.js → interface-weather-moon.svg-D5H9VVjm.js} +1 -1
  127. package/web/assets/{javascript-m5F7K8WX.js → javascript-COGcfnZA.js} +1 -1
  128. package/web/assets/{jsonMode-iF83wtZ5.js → jsonMode-BPZdJlGH.js} +1 -1
  129. package/web/assets/{liquid-DczPoOXg.js → liquid-tYb2UdC4.js} +1 -1
  130. package/web/assets/{lspLanguageFeatures-C6czeCrg.js → lspLanguageFeatures-DCNjW9fm.js} +1 -1
  131. package/web/assets/{mail-chat-bubble-square.svg-CK2zqaie.js → mail-chat-bubble-square.svg-DYU_WNiL.js} +1 -1
  132. package/web/assets/{mail-send-email-paper-airplane.svg-BpRIPhGO.js → mail-send-email-paper-airplane.svg-hl4aPsZw.js} +1 -1
  133. package/web/assets/{mail-send-envelope.svg-DEWP9xPR.js → mail-send-envelope.svg-ZPGp6HAb.js} +1 -1
  134. package/web/assets/{mdx-DZDVEfh6.js → mdx-CJnmZc8m.js} +1 -1
  135. package/web/assets/{message-DcYhBnTI.js → message-DeJ8q52V.js} +1 -1
  136. package/web/assets/{minus-BHnB3T4Z.js → minus-Ct22lCsG.js} +1 -1
  137. package/web/assets/modal-BeU7h53N.js +1 -0
  138. package/web/assets/{modal-Mb_6FbLs.js → modal-Ca5pG17r.js} +1 -1
  139. package/web/assets/{money-cashier-receipt.svg-BxKMc5rA.js → money-cashier-receipt.svg-B15T0bRW.js} +1 -1
  140. package/web/assets/{money-currency-dollar-pay.svg-PaTd0Mi4.js → money-currency-dollar-pay.svg-Db3CbyU3.js} +1 -1
  141. package/web/assets/{money-graph-arrow-increase.svg-Cd-CeUfH.js → money-graph-arrow-increase.svg-JdOnTEv7.js} +1 -1
  142. package/web/assets/{money-graph-bar-chart-increase.svg-Dhmah7vi.js → money-graph-bar-chart-increase.svg-cvaw-RPe.js} +1 -1
  143. package/web/assets/{multiselect-l2hfIIot.js → multiselect-D0Lgi2Uy.js} +1 -1
  144. package/web/assets/{nature-ecology-leaf.svg--74rDOli.js → nature-ecology-leaf.svg-DxyoZnDd.js} +1 -1
  145. package/web/assets/{password-CAG35ljX.js → password-DLXcx5o_.js} +1 -1
  146. package/web/assets/{phone-telephone.svg-bdsWNaxh.js → phone-telephone.svg-C5yrJz5W.js} +1 -1
  147. package/web/assets/{plus-DBnmCnow.js → plus-DI-6uwaW.js} +1 -1
  148. package/web/assets/process.store-C1Q9TMNI.js +1 -0
  149. package/web/assets/{programming-bug.svg-BxlJduD5.js → programming-bug.svg-BkvasR8P.js} +1 -1
  150. package/web/assets/{programming-cloud.svg-CaA7FgsS.js → programming-cloud.svg-DGuHQy93.js} +1 -1
  151. package/web/assets/{programming-computer-database-server.svg-DQgHbqIx.js → programming-computer-database-server.svg-C-7iu2k8.js} +1 -1
  152. package/web/assets/{programming-computer-database.svg-CpI38nQ8.js → programming-computer-database.svg-Cg6GBo38.js} +1 -1
  153. package/web/assets/{programming-module-four-layout.svg-Bx9qcDrs.js → programming-module-four-layout.svg-BkAfagG7.js} +1 -1
  154. package/web/assets/{programming-module-three.svg-BTWPyE1v.js → programming-module-three.svg-CgmLbQN4.js} +1 -1
  155. package/web/assets/{programming-module.svg-n2wRxTKM.js → programming-module.svg-DS5JBupb.js} +1 -1
  156. package/web/assets/{programming-script-code.svg-DbLLXZj1.js → programming-script-code.svg-BOWNLIhv.js} +1 -1
  157. package/web/assets/{python-B9gWNovr.js → python-CsMn87DS.js} +1 -1
  158. package/web/assets/{radiobutton-M3j6I--4.js → radiobutton-BJKr-Zln.js} +1 -1
  159. package/web/assets/{razor-Bvq2SjEZ.js → razor-EnLIDHC4.js} +1 -1
  160. package/web/assets/router-ybTpgNnu.js +1 -0
  161. package/web/assets/{settings.store-Cngi9oZL.js → settings.store-TI1eYCDC.js} +1 -1
  162. package/web/assets/{shopping-cart.svg-DYQXmdXb.js → shopping-cart.svg-DeJ77fFK.js} +1 -1
  163. package/web/assets/{shopping-gift-present.svg-Cblba7lG.js → shopping-gift-present.svg-Cu0c90VW.js} +1 -1
  164. package/web/assets/{shopping-shipping-box-parcel-package.svg-Cwh0eNAV.js → shopping-shipping-box-parcel-package.svg-zSSTbzFb.js} +1 -1
  165. package/web/assets/src-BLIn_DmT.css +1 -0
  166. package/web/assets/src-C_bReqLS.js +1 -0
  167. package/web/assets/{src-EyYAyD2U.js → src-hQVvqFSY.js} +1 -1
  168. package/web/assets/{tabpanel-BeD39w5U.js → tabpanel-BhNJlFvC.js} +1 -1
  169. package/web/assets/{tag-new-circle.svg-DqIdKC_I.js → tag-new-circle.svg-CLGhbWEI.js} +1 -1
  170. package/web/assets/{travel-map-earth-globe.svg-CbMyR6Dm.js → travel-map-earth-globe.svg-D_v7Zrk4.js} +1 -1
  171. package/web/assets/trpc-CViRJLaE.js +1 -0
  172. package/web/assets/{tsMode-Cs1IbsMs.js → tsMode-DRe3YaFl.js} +1 -1
  173. package/web/assets/{typescript-fe7zfUkE.js → typescript-ljL89ake.js} +1 -1
  174. package/web/assets/useAiChatDrawer-DwwI2o88.js +1 -0
  175. package/web/assets/{useCloudOrg-CUc-wdjK.js → useCloudOrg-B5MVr7b2.js} +1 -1
  176. package/web/assets/{xml-BaqscnBl.js → xml-Dir7i0rc.js} +1 -1
  177. package/web/assets/{yaml-C3AcPPZf.js → yaml-BNH-UA_U.js} +1 -1
  178. package/web/index.html +1 -1
  179. package/src-KERYXMIR.js.map +0 -1
  180. package/web/assets/AiChatPage-Do8ShO3_.js +0 -1
  181. package/web/assets/CloudAccountPage-CByDu0iY.css +0 -1
  182. package/web/assets/CloudAccountPage-COgCPE-f.js +0 -1
  183. package/web/assets/CloudAccountPage-CkZJBZXd.js +0 -1
  184. package/web/assets/CloudMessagingPage-BUnfNsBz.css +0 -1
  185. package/web/assets/CloudMessagingPage-D4-LD_x1.js +0 -2
  186. package/web/assets/WikiPage-CNa-I2c4.js +0 -1
  187. package/web/assets/auth-errors-D72vLL0y.js +0 -1
  188. package/web/assets/interface-content-folder.svg-MThUDPgI.js +0 -1
  189. package/web/assets/modal-DRkDMDBu.js +0 -1
  190. package/web/assets/process.store-DCnCcvIM.js +0 -1
  191. package/web/assets/router-DtEcirzs.js +0 -1
  192. package/web/assets/src-B1Ieb7H1.js +0 -1
  193. package/web/assets/src-CmzYYWZd.css +0 -1
  194. package/web/assets/trpc-CVTuBj8-.js +0 -1
  195. package/web/assets/useAiChatDrawer-B6iJc2zZ.js +0 -1
package/index.js CHANGED
@@ -201,7 +201,7 @@ function listenWithRetry(server, port, host, wss, maxRetries = 20, delay = 500)
201
201
  });
202
202
  }
203
203
  async function main() {
204
- const { createLocalServer, pullEnv, PullEnvError } = await import("./src-KERYXMIR.js");
204
+ const { createLocalServer, pullEnv, PullEnvError } = await import("./src-U3ECNNB6.js");
205
205
  if (isPullEnv) {
206
206
  if (!serviceArg) {
207
207
  console.error("Error: --service (-s) is required with --pull-env");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runeya/runeya",
3
- "version": "2.0.32",
3
+ "version": "2.0.33",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "runeya": "./index.js"
@@ -303,6 +303,12 @@ import os from "os";
303
303
  import { execFile } from "child_process";
304
304
  import { promisify } from "util";
305
305
  import { z } from "zod";
306
+
307
+ // ../server/src/config/app-version.ts
308
+ var appVersion = process.env["RUNEYA_VERSION"] ?? (typeof __RUNEYA_VERSION__ !== "undefined" ? __RUNEYA_VERSION__ : "dev");
309
+ var APP_VERSION_HEADER = "X-Runeya-Version";
310
+
311
+ // ../server/src/trpc/routers/health.ts
306
312
  var execFileAsync = promisify(execFile);
307
313
  async function getDockerVersion() {
308
314
  try {
@@ -317,7 +323,6 @@ async function getDockerVersion() {
317
323
  }
318
324
  }
319
325
  var startedAt = Date.now();
320
- var appVersion = process.env["RUNEYA_VERSION"] ?? (typeof __RUNEYA_VERSION__ !== "undefined" ? __RUNEYA_VERSION__ : "dev");
321
326
  var NPM_LATEST_URL = "https://registry.npmjs.org/@runeya%2Fruneya/latest";
322
327
  function compareSemver(a, b) {
323
328
  const pa = a.split(".").map((n) => Number.parseInt(n, 10) || 0);
@@ -5587,6 +5592,8 @@ async function cloudFetch(path, init = {}) {
5587
5592
  method: init.method ?? "GET",
5588
5593
  headers: {
5589
5594
  Authorization: `Bearer ${token}`,
5595
+ // Le cloud refuse (426) les apps trop anciennes pour son schéma courant.
5596
+ [APP_VERSION_HEADER]: appVersion,
5590
5597
  ...init.body !== void 0 ? { "Content-Type": "application/json" } : {}
5591
5598
  },
5592
5599
  ...init.body !== void 0 ? { body: JSON.stringify(init.body) } : {},
@@ -11596,12 +11603,23 @@ var LOCAL_ORIGIN = "local-bridge";
11596
11603
  var REMOTE_ORIGIN = "remote";
11597
11604
  var RECONNECT_DELAY_MS = 3e3;
11598
11605
  var UNAUTHENTICATED_RETRY_MS = 5 * 6e4;
11606
+ var OUTDATED_RETRY_MS = 30 * 6e4;
11599
11607
  var COLLECTIONS = ["projects", "services", "environments"];
11600
11608
  var SyncAuthError = class extends Error {
11601
11609
  constructor(status) {
11602
11610
  super(`cloud rejected the session (HTTP ${status})`);
11603
11611
  }
11604
11612
  };
11613
+ var SyncOutdatedError = class extends Error {
11614
+ /** Dernière version que le cloud refuse — la borne est exclusive. */
11615
+ lastIncompatibleVersion;
11616
+ constructor(lastIncompatibleVersion) {
11617
+ super(
11618
+ `this app (${appVersion}) is too old for this cloud${lastIncompatibleVersion ? ` (needs newer than ${lastIncompatibleVersion})` : ""}`
11619
+ );
11620
+ this.lastIncompatibleVersion = lastIncompatibleVersion;
11621
+ }
11622
+ };
11605
11623
  var OrgSyncConnection = class {
11606
11624
  doc = new Y.Doc();
11607
11625
  projects = getCollection(this.doc, "projects");
@@ -11613,6 +11631,8 @@ var OrgSyncConnection = class {
11613
11631
  initializing = true;
11614
11632
  abort = null;
11615
11633
  state = "connecting";
11634
+ /** Last version the cloud refuses, as it told us when rejecting this app. */
11635
+ lastIncompatibleVersion = null;
11616
11636
  /** Local state still owed to the cloud (initial sync, or a rejected episode). */
11617
11637
  needsPush = false;
11618
11638
  unsubscribes = [];
@@ -11626,6 +11646,10 @@ var OrgSyncConnection = class {
11626
11646
  getState() {
11627
11647
  return this.state;
11628
11648
  }
11649
+ /** The cloud's version floor, known only once it has rejected us for it. */
11650
+ getLastIncompatibleVersion() {
11651
+ return this.lastIncompatibleVersion;
11652
+ }
11629
11653
  getLink() {
11630
11654
  return this.link;
11631
11655
  }
@@ -11668,7 +11692,35 @@ var OrgSyncConnection = class {
11668
11692
  return `Bearer ${token}`;
11669
11693
  }
11670
11694
  async headers() {
11671
- return { Authorization: await this.authHeader(), "Content-Type": "application/json" };
11695
+ return {
11696
+ Authorization: await this.authHeader(),
11697
+ [APP_VERSION_HEADER]: appVersion,
11698
+ "Content-Type": "application/json"
11699
+ };
11700
+ }
11701
+ /**
11702
+ * Turn a 426 into a typed error, reading the floor the cloud published in the
11703
+ * body. The body is advisory: a missing or malformed one still blocks, it just
11704
+ * makes for a vaguer message.
11705
+ */
11706
+ async outdatedError(res) {
11707
+ try {
11708
+ const body = await res.json();
11709
+ return new SyncOutdatedError(
11710
+ typeof body.lastIncompatibleVersion === "string" ? body.lastIncompatibleVersion : null
11711
+ );
11712
+ } catch {
11713
+ return new SyncOutdatedError(null);
11714
+ }
11715
+ }
11716
+ /** Remember the floor and stop pretending sync will resume on its own. */
11717
+ markOutdated(err) {
11718
+ const alreadyReported = this.state === "outdated";
11719
+ this.state = "outdated";
11720
+ this.lastIncompatibleVersion = err.lastIncompatibleVersion;
11721
+ this.needsPush = true;
11722
+ if (alreadyReported) return;
11723
+ console.error(`[cloud-sync] org ${this.link.orgId}: ${err.message} \u2014 sync paused until the app is updated.`);
11672
11724
  }
11673
11725
  /**
11674
11726
  * Mark this org as needing a fresh sign-in. Logged once per episode, not on
@@ -11699,6 +11751,7 @@ var OrgSyncConnection = class {
11699
11751
  headers: await this.headers(),
11700
11752
  signal: AbortSignal.timeout(15e3)
11701
11753
  });
11754
+ if (svRes.status === 426) throw await this.outdatedError(svRes);
11702
11755
  if (svRes.status === 401 || svRes.status === 403) throw new SyncAuthError(svRes.status);
11703
11756
  if (!svRes.ok) return;
11704
11757
  const { sv } = await svRes.json();
@@ -11706,7 +11759,7 @@ var OrgSyncConnection = class {
11706
11759
  const diff = Y.encodeStateAsUpdate(this.doc, cloudSv);
11707
11760
  await this.pushUpdate(diff);
11708
11761
  } catch (err) {
11709
- if (err instanceof SyncAuthError) throw err;
11762
+ if (err instanceof SyncAuthError || err instanceof SyncOutdatedError) throw err;
11710
11763
  console.error("[cloud-sync] initial push failed for org %s:", this.link.orgId, err.message);
11711
11764
  }
11712
11765
  }
@@ -11718,8 +11771,14 @@ var OrgSyncConnection = class {
11718
11771
  body: JSON.stringify({ update: Buffer.from(update).toString("base64"), conn: this.conn }),
11719
11772
  signal: AbortSignal.timeout(15e3)
11720
11773
  });
11774
+ if (res.status === 426) throw await this.outdatedError(res);
11721
11775
  if (res.status === 401 || res.status === 403) throw new SyncAuthError(res.status);
11722
11776
  } catch (err) {
11777
+ if (err instanceof SyncOutdatedError) {
11778
+ this.markOutdated(err);
11779
+ this.abort?.abort();
11780
+ return;
11781
+ }
11723
11782
  if (err instanceof SyncAuthError) {
11724
11783
  this.markUnauthenticated(err);
11725
11784
  this.abort?.abort();
@@ -11742,6 +11801,11 @@ var OrgSyncConnection = class {
11742
11801
  this.state = "connecting";
11743
11802
  await this.streamOnce();
11744
11803
  } catch (err) {
11804
+ if (err instanceof SyncOutdatedError) {
11805
+ this.markOutdated(err);
11806
+ await this.delay(OUTDATED_RETRY_MS);
11807
+ continue;
11808
+ }
11745
11809
  if (err instanceof SyncAuthError) {
11746
11810
  this.markUnauthenticated(err);
11747
11811
  await this.delay(UNAUTHENTICATED_RETRY_MS);
@@ -11756,9 +11820,10 @@ var OrgSyncConnection = class {
11756
11820
  this.abort = new AbortController();
11757
11821
  const since = Buffer.from(Y.encodeStateVector(this.doc)).toString("base64");
11758
11822
  const res = await fetch(this.url(`/stream?conn=${this.conn}&since=${encodeURIComponent(since)}`), {
11759
- headers: { Authorization: await this.authHeader() },
11823
+ headers: { Authorization: await this.authHeader(), [APP_VERSION_HEADER]: appVersion },
11760
11824
  signal: this.abort.signal
11761
11825
  });
11826
+ if (res.status === 426) throw await this.outdatedError(res);
11762
11827
  if (res.status === 401 || res.status === 403) throw new SyncAuthError(res.status);
11763
11828
  if (!res.ok || !res.body) throw new Error(`stream HTTP ${res.status}`);
11764
11829
  this.state = "live";
@@ -11930,7 +11995,11 @@ var CloudSyncBridge = class {
11930
11995
  }
11931
11996
  /** Per-org sync state, for the UI. */
11932
11997
  states() {
11933
- return Array.from(this.connections.entries()).map(([orgId, conn]) => ({ orgId, state: conn.getState() }));
11998
+ return Array.from(this.connections.entries()).map(([orgId, conn]) => ({
11999
+ orgId,
12000
+ state: conn.getState(),
12001
+ lastIncompatibleVersion: conn.getLastIncompatibleVersion()
12002
+ }));
11934
12003
  }
11935
12004
  /** Begin (or restart) syncing a single organization. */
11936
12005
  async connect(link) {
@@ -12181,11 +12250,15 @@ var cloudSyncRouter = router({
12181
12250
  */
12182
12251
  list: protectedProcedure.query(async () => {
12183
12252
  const links = await cloudSyncStore.list();
12184
- const states = new Map(cloudSyncBridge.states().map((s) => [s.orgId, s.state]));
12253
+ const states = new Map(cloudSyncBridge.states().map((s) => [s.orgId, s]));
12185
12254
  return links.map((l) => ({
12186
12255
  orgId: l.orgId,
12187
12256
  cloudUrl: l.cloudUrl,
12188
- state: states.get(l.orgId) ?? "stopped"
12257
+ state: states.get(l.orgId)?.state ?? "stopped",
12258
+ // Renseigné seulement quand le cloud a refusé cette app comme trop
12259
+ // ancienne : c'est lui qui publie le plancher, on ne le devine pas. La
12260
+ // borne est exclusive — il faut strictement plus récent que ce numéro.
12261
+ lastIncompatibleVersion: states.get(l.orgId)?.lastIncompatibleVersion ?? null
12189
12262
  }));
12190
12263
  })
12191
12264
  });
@@ -13627,7 +13700,7 @@ async function createLocalServer() {
13627
13700
  try {
13628
13701
  const verifyRes = await fetch(`${getCloudApiUrl()}/api/auth/device/link`, {
13629
13702
  method: "POST",
13630
- headers: { "Content-Type": "application/json" },
13703
+ headers: { "Content-Type": "application/json", [APP_VERSION_HEADER]: appVersion },
13631
13704
  body: JSON.stringify({ token, name: getDeviceName() }),
13632
13705
  signal: AbortSignal.timeout(15e3)
13633
13706
  });
@@ -13672,7 +13745,11 @@ async function createLocalServer() {
13672
13745
  const upstream = await fetch(
13673
13746
  `${getCloudApiUrl()}${upstreamPath}?organizationId=${encodeURIComponent(organizationId)}`,
13674
13747
  {
13675
- headers: { Authorization: `Bearer ${token}`, Accept: "text/event-stream" },
13748
+ headers: {
13749
+ Authorization: `Bearer ${token}`,
13750
+ [APP_VERSION_HEADER]: appVersion,
13751
+ Accept: "text/event-stream"
13752
+ },
13676
13753
  signal: upstreamAbort.signal
13677
13754
  }
13678
13755
  );
@@ -13729,6 +13806,7 @@ async function createLocalServer() {
13729
13806
  method: "POST",
13730
13807
  headers: {
13731
13808
  Authorization: `Bearer ${token}`,
13809
+ [APP_VERSION_HEADER]: appVersion,
13732
13810
  "Content-Type": String(req.headers["content-type"] ?? "application/octet-stream")
13733
13811
  },
13734
13812
  body: req.body,
@@ -13758,7 +13836,11 @@ async function createLocalServer() {
13758
13836
  try {
13759
13837
  const upstream = await fetch(
13760
13838
  `${getCloudApiUrl()}/api/kanban/file/${encodeURIComponent(req.params.id)}`,
13761
- { method: "DELETE", headers: { Authorization: `Bearer ${token}` }, signal: AbortSignal.timeout(15e3) }
13839
+ {
13840
+ method: "DELETE",
13841
+ headers: { Authorization: `Bearer ${token}`, [APP_VERSION_HEADER]: appVersion },
13842
+ signal: AbortSignal.timeout(15e3)
13843
+ }
13762
13844
  );
13763
13845
  res.status(upstream.status).end();
13764
13846
  } catch {
@@ -13781,7 +13863,10 @@ async function createLocalServer() {
13781
13863
  try {
13782
13864
  const upstream = await fetch(
13783
13865
  `${getCloudApiUrl()}/api/kanban/file/${encodeURIComponent(req.params.id)}`,
13784
- { headers: { Authorization: `Bearer ${token}` }, signal: AbortSignal.timeout(3e5) }
13866
+ {
13867
+ headers: { Authorization: `Bearer ${token}`, [APP_VERSION_HEADER]: appVersion },
13868
+ signal: AbortSignal.timeout(3e5)
13869
+ }
13785
13870
  );
13786
13871
  if (!upstream.ok) {
13787
13872
  res.status(upstream.status).end();
@@ -14289,4 +14374,4 @@ export {
14289
14374
  createLocalServer,
14290
14375
  pullEnv
14291
14376
  };
14292
- //# sourceMappingURL=src-KERYXMIR.js.map
14377
+ //# sourceMappingURL=src-U3ECNNB6.js.map