@runeya/runeya 2.0.50 → 2.0.52

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 (203) hide show
  1. package/agent/index.js +58 -17
  2. package/agent/index.js.map +1 -1
  3. package/agent-manager-FD2NGRIW.js +7 -0
  4. package/{chunk-JBR3MGS7.js → chunk-IHUELGIB.js} +216 -79
  5. package/chunk-IHUELGIB.js.map +1 -0
  6. package/index.js +1 -1
  7. package/package.json +1 -1
  8. package/{src-LLRT5YLM.js → src-MHKSKRBK.js} +10506 -10177
  9. package/src-MHKSKRBK.js.map +1 -0
  10. package/web/assets/{AgentScalarChatInterface.vue-D53JSFzC.js → AgentScalarChatInterface.vue-JTgBbqsP.js} +1 -1
  11. package/web/assets/{AgentTerminalPage-zuXFRGB0.js → AgentTerminalPage-fXxKDSBp.js} +1 -1
  12. package/web/assets/AiChatPage-Bp7ILsub.js +1 -0
  13. package/web/assets/AppLayout-BKe5kedw.js +1 -0
  14. package/web/assets/{AppLayout-D1bdzemo.css → AppLayout-CDh-jiJ3.css} +1 -1
  15. package/web/assets/{AuditPage-DvhG8fxh.js → AuditPage-Ddclku7y.js} +1 -1
  16. package/web/assets/CloudAccountPage-CJvovJKI.js +1 -0
  17. package/web/assets/CloudAccountPage-CbfN4BNY.js +1 -0
  18. package/web/assets/CloudAccountPage-CkavjE7H.css +1 -0
  19. package/web/assets/{CloudMessagingPage-okqqdltV.js → CloudMessagingPage-DL7yhkIr.js} +1 -1
  20. package/web/assets/{DashboardPage-CmZITjvU.js → DashboardPage-C5_XFyV4.js} +1 -1
  21. package/web/assets/{EditorIcon-dUXSIPv3.js → EditorIcon-DGhMRlEH.js} +1 -1
  22. package/web/assets/{EnvironmentForm-_y5JoRHH.js → EnvironmentForm-Cukn9qzo.js} +1 -1
  23. package/web/assets/{EnvironmentFormPage-DYhDZdPj.js → EnvironmentFormPage-BpfgeFpg.js} +1 -1
  24. package/web/assets/{EnvironmentListPage-soh5FJDb.js → EnvironmentListPage-Li3GLLyj.js} +1 -1
  25. package/web/assets/{EnvironmentSelector-CQNLsssr.js → EnvironmentSelector-BWHfZMtZ.js} +1 -1
  26. package/web/assets/{KanbanBoardPage-C3cG7v4z.js → KanbanBoardPage-1w2I89mN.js} +3 -3
  27. package/web/assets/{KanbanListPage-xyv-oiyq.js → KanbanListPage-DK1fKIHQ.js} +1 -1
  28. package/web/assets/{LaunchProjectPage-DKqMjh-V.js → LaunchProjectPage-D_cvL12d.js} +1 -1
  29. package/web/assets/{LaunchServicesPage-IhWdB_Gw.js → LaunchServicesPage-CXjCCXsD.js} +1 -1
  30. package/web/assets/{LogViewer-ChElXmMu.js → LogViewer-UxzuKlYv.js} +1 -1
  31. package/web/assets/{ProcessControls-t9skQ_zd.js → ProcessControls-CQ8xwnrF.js} +1 -1
  32. package/web/assets/{ProcessDetailPage-DFv0ESg1.js → ProcessDetailPage-Cs2iFdad.js} +1 -1
  33. package/web/assets/{ProcessMetrics-DL00NyoX.js → ProcessMetrics-Clh3v2iV.js} +1 -1
  34. package/web/assets/{ProjectDetailPage-DEXvg1pg.js → ProjectDetailPage-yy_WuImd.js} +1 -1
  35. package/web/assets/{ProjectListPage-h0AQ_RCw.js → ProjectListPage-BLc6N4m9.js} +1 -1
  36. package/web/assets/{RandomJobTestPage-Dp7A7Qgx.js → RandomJobTestPage--f9IHi8X.js} +1 -1
  37. package/web/assets/{ScenarioEditorPage-D0_VpZUT.js → ScenarioEditorPage-CGGi9d-0.js} +1 -1
  38. package/web/assets/{SendToChatDialog-BpJetpLA.js → SendToChatDialog-Do2v5Six.js} +1 -1
  39. package/web/assets/{ServiceControlsBar-qiCaxnab.js → ServiceControlsBar-BssqBAbh.js} +1 -1
  40. package/web/assets/{ServiceDetailPage-BD8D0CuN.js → ServiceDetailPage-BX5JWwRn.js} +1 -1
  41. package/web/assets/{ServiceFormPage-Dax40DkX.js → ServiceFormPage-B_rj0cRE.js} +1 -1
  42. package/web/assets/SettingsPage-B992G0HP.js +2062 -0
  43. package/web/assets/{SettingsPage-C9WtnczY.css → SettingsPage-jkWxbWkZ.css} +1 -1
  44. package/web/assets/{UnlockPage-BYtu3w_t.js → UnlockPage-hsk1oePv.js} +1 -1
  45. package/web/assets/{VariablesTable-IvhXwdsn.js → VariablesTable-BcufD-wK.js} +1 -1
  46. package/web/assets/{VaultMigrationPage-6Id4Fmeo.js → VaultMigrationPage-g7BEHG1W.js} +1 -1
  47. package/web/assets/{VersionBadge-B-PtNx51.js → VersionBadge-al4x1GFB.js} +1 -1
  48. package/web/assets/WikiPage-7B9dOrIk.js +1 -0
  49. package/web/assets/{WikiView-BZvgaTQp.js → WikiView-DmKiYIq5.js} +1 -1
  50. package/web/assets/{add-scalar-classes-CEf8wgbL.js → add-scalar-classes-BSEzJner.js} +3 -3
  51. package/web/assets/auth-errors-6e5dqdyJ.js +1 -0
  52. package/web/assets/{autocomplete-DpSrZtZQ.js → autocomplete-BKoTlKQ4.js} +1 -1
  53. package/web/assets/{basic-shape-diamond.svg-BxBPwaOm.js → basic-shape-diamond.svg-YpT_2yGM.js} +1 -1
  54. package/web/assets/{basic-shape-hexagon.svg-Du908vLS.js → basic-shape-hexagon.svg-ZHh7P2mz.js} +1 -1
  55. package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-CfFm5Pl7.js → basic-shape-primary-circle-ellipse-round.svg-yEGfULrq.js} +1 -1
  56. package/web/assets/{basic-shape-primary-square-rectangle.svg-CP0kG7Ut.js → basic-shape-primary-square-rectangle.svg-CV_MBv8E.js} +1 -1
  57. package/web/assets/{basic-shape-shield.svg-DxTsLdrS.js → basic-shape-shield.svg-CLVN0WJX.js} +1 -1
  58. package/web/assets/{browser-BvCyKum4.js → browser-C_GxJ_3e.js} +1 -1
  59. package/web/assets/{browser-DV9-oWjy.js → browser-D4w7UetE.js} +1 -1
  60. package/web/assets/{card-TJ-av0Pi.js → card-BuAageiY.js} +1 -1
  61. package/web/assets/{checkbox-D5bej0ao.js → checkbox-DeY_k6xP.js} +1 -1
  62. package/web/assets/{chip-D8vO8NID.js → chip-DrQIKVKn.js} +1 -1
  63. package/web/assets/{client-D5eMRPpD.js → client-DE0Y5Nrj.js} +1 -1
  64. package/web/assets/{cloud-chat.store-DzSz0QMb.js → cloud-chat.store-fBYK5Cgw.js} +1 -1
  65. package/web/assets/{cloud-session-tALRHewK.js → cloud-session-BuGqIC29.js} +1 -1
  66. package/web/assets/{column-BAToyYIb.js → column-DEHgjs7t.js} +1 -1
  67. package/web/assets/{computer-device-desktop-monitor.svg-82Glaw7U.js → computer-device-desktop-monitor.svg-FAeSFvzj.js} +1 -1
  68. package/web/assets/{computer-device-desktop.svg-BZb-XFcK.js → computer-device-desktop.svg-DA-GQ3hr.js} +1 -1
  69. package/web/assets/{computer-device-laptop.svg-BnptbmCn.js → computer-device-laptop.svg-D2eE8iPZ.js} +1 -1
  70. package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-g23ZYYHm.js → computer-device-mobile-phone-android-samsung-back.svg-B6zevToY.js} +1 -1
  71. package/web/assets/{computer-device-mobile-phone-android-samsung.svg-B5fBZlIN.js → computer-device-mobile-phone-android-samsung.svg-BmxrNEhr.js} +1 -1
  72. package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-BsKZAUH_.js → computer-device-mobile-phone-iphone-x-back.svg-CojBzdim.js} +1 -1
  73. package/web/assets/{computer-device-mobile-phone-iphone-x.svg-GVv-OoXC.js → computer-device-mobile-phone-iphone-x.svg-1BUZ4i95.js} +1 -1
  74. package/web/assets/{computer-device-mobile-tablet-touch.svg-CpyRybCz.js → computer-device-mobile-tablet-touch.svg-CSfNBal6.js} +1 -1
  75. package/web/assets/{computer-device-mobile-tablet.svg-C_6zzbHC.js → computer-device-mobile-tablet.svg-twjoIYnU.js} +1 -1
  76. package/web/assets/{computer-device-network-ethernet-cat6.svg-s_MRa0bJ.js → computer-device-network-ethernet-cat6.svg-DeLJr_Bg.js} +1 -1
  77. package/web/assets/{computer-device-network-lan-www.svg-31TS3sqT.js → computer-device-network-lan-www.svg-D4tLpabf.js} +1 -1
  78. package/web/assets/{computer-device-network-wifi-connection.svg-BfBnT-iK.js → computer-device-network-wifi-connection.svg-DkinP8JJ.js} +1 -1
  79. package/web/assets/{computer-device-network-wifi-router.svg-BNQJ_FEI.js → computer-device-network-wifi-router.svg-CbTYcPoV.js} +1 -1
  80. package/web/assets/{cssMode-IplHgA8x.js → cssMode-B-5qMS9W.js} +1 -1
  81. package/web/assets/{divider-D-QC8_57.js → divider-CMl36DmL.js} +1 -1
  82. package/web/assets/{ecology-science-erlenmeyer-flask.svg-CKCEQFIq.js → ecology-science-erlenmeyer-flask.svg-h7u0Vs9p.js} +1 -1
  83. package/web/assets/{fieldset-DpQHSMKf.js → fieldset-C1yXTDn4.js} +1 -1
  84. package/web/assets/{freemarker2-DHUVsWtT.js → freemarker2-CjLTuk8k.js} +1 -1
  85. package/web/assets/{handlebars-pE00Hjr_.js → handlebars-DGqtsUFa.js} +1 -1
  86. package/web/assets/{html-DMtmtVNV.js → html-i8MbH284.js} +1 -1
  87. package/web/assets/{htmlMode-DFeVLqUM.js → htmlMode-ClDqI0EC.js} +1 -1
  88. package/web/assets/{image-flash-lightning.svg-NAFI_e2J.js → image-flash-lightning.svg-B8iwzLyv.js} +1 -1
  89. package/web/assets/{image-picture-flower.svg-B6ZUCTNS.js → image-picture-flower.svg-Dk0wJr-9.js} +1 -1
  90. package/web/assets/{index-a1iwaPG1.js → index-Dp6bkX9T.js} +5 -5
  91. package/web/assets/{interface-alert-exclamation-diamond.svg-CwHTxp3a.js → interface-alert-exclamation-diamond.svg-BsbY85gZ.js} +1 -1
  92. package/web/assets/{interface-alert-exclamation-triangle-warning.svg-Bi-1vcWG.js → interface-alert-exclamation-triangle-warning.svg-DP1wSCt3.js} +1 -1
  93. package/web/assets/{interface-alert-information-circle.svg-CQnbLMfS.js → interface-alert-information-circle.svg-Xh0RC3va.js} +1 -1
  94. package/web/assets/{interface-award-crown.svg-CFtMz4dE.js → interface-award-crown.svg-BYXc7LVx.js} +1 -1
  95. package/web/assets/{interface-bookmark.svg-7SV2pxyN.js → interface-bookmark-tag.svg-ket4A6Lr.js} +1 -1
  96. package/web/assets/{interface-bookmark-tag.svg-DumdjnW1.js → interface-bookmark.svg-DDQ_ylEK.js} +1 -1
  97. package/web/assets/{interface-calendar-date-one.svg-e7-h1b3y.js → interface-calendar-date-one.svg-TCIcZLUR.js} +1 -1
  98. package/web/assets/{interface-content-book-open-pages.svg-DwLQV4lf.js → interface-content-book-open-pages.svg-HpGg1i7p.js} +1 -1
  99. package/web/assets/{interface-content-book-page.svg-CAKDQ2x-.js → interface-content-book-page.svg-DanHo22R.js} +1 -1
  100. package/web/assets/{interface-content-file.svg-DZEwGNLB.js → interface-content-file.svg-D_7M3Gzg.js} +1 -1
  101. package/web/assets/{interface-content-folder.svg-BnFYmNMO.js → interface-content-folder.svg-B56JOABU.js} +1 -1
  102. package/web/assets/interface-content-folder.svg-bcqnWOK0.js +1 -0
  103. package/web/assets/{interface-copy-clipboard.svg-9UwhLON-.js → interface-copy-clipboard.svg-D6pxFSYk.js} +1 -1
  104. package/web/assets/{interface-edit-attachment.svg-C1_u9TNx.js → interface-edit-attachment.svg-CgbZkf8y.js} +1 -1
  105. package/web/assets/{interface-edit-binocular.svg-DoQnsqHf.js → interface-edit-binocular.svg-DlKyYNaD.js} +1 -1
  106. package/web/assets/{interface-edit-magic-wand.svg-C7wTd6JH.js → interface-edit-magic-wand.svg-3Z3vgwMa.js} +1 -1
  107. package/web/assets/{interface-edit-tool-paint-roller.svg-BZ4hqe-1.js → interface-edit-tool-paint-roller.svg-B0HQxlm0.js} +1 -1
  108. package/web/assets/{interface-edit-tool-pencil.svg-D1bysygW.js → interface-edit-tool-pencil.svg-DTBA5aOW.js} +1 -1
  109. package/web/assets/{interface-favorite-award.svg-0Thu2k9M.js → interface-favorite-award.svg-D2sdh8hY.js} +1 -1
  110. package/web/assets/{interface-favorite-flag.svg-DI4_vrUQ.js → interface-favorite-flag.svg-BwolDorS.js} +1 -1
  111. package/web/assets/{interface-favorite-heart.svg-DpwKtPuU.js → interface-favorite-heart.svg-C0xoK2eX.js} +1 -1
  112. package/web/assets/{interface-favorite-star.svg-D-udxHVN.js → interface-favorite-star.svg-B3u5n7c2.js} +1 -1
  113. package/web/assets/{interface-favorite-stars-sparkles.svg-Dc4Z9Mjg.js → interface-favorite-stars-sparkles.svg-BQ6_nHMc.js} +1 -1
  114. package/web/assets/{interface-hierarchy-flowchart.svg-vfERX-oc.js → interface-hierarchy-flowchart.svg-DpR1KgBm.js} +1 -1
  115. package/web/assets/{interface-home-house.svg-BY98XY-a.js → interface-home-house.svg-Cxdi_eZT.js} +1 -1
  116. package/web/assets/{interface-hyperlink.svg-8D6WX1Q9.js → interface-hyperlink.svg-D3Az4MB1.js} +1 -1
  117. package/web/assets/{interface-lighting-brightness.svg-DUoPpiwx.js → interface-lighting-brightness.svg-CFCx0wxJ.js} +1 -1
  118. package/web/assets/{interface-lock-closed.svg-CzFKU_Z4.js → interface-lock-closed.svg-4nQ3nAjd.js} +1 -1
  119. package/web/assets/{interface-lock-open-unlock.svg-BnrVx0lo.js → interface-lock-open-unlock.svg-DEZb7XRS.js} +1 -1
  120. package/web/assets/{interface-login-key.svg-DAfv-MMA.js → interface-login-key.svg-BzhBvtOH.js} +1 -1
  121. package/web/assets/{interface-search.svg-Q2hCozQb.js → interface-search.svg-BTVjJsdx.js} +1 -1
  122. package/web/assets/{interface-setting-cog.svg-Bvq0dvZR.js → interface-setting-cog.svg-BfeZ86e-.js} +1 -1
  123. package/web/assets/{interface-share-megaphone-bullhorn.svg-fUmta8NQ.js → interface-share-megaphone-bullhorn.svg-BuX4jZss.js} +1 -1
  124. package/web/assets/{interface-share-rocket.svg-BKSZkx2r.js → interface-share-rocket.svg-QkrdvPm3.js} +1 -1
  125. package/web/assets/{interface-share-satellite.svg-CB_uwNHS.js → interface-share-satellite.svg-Cdu9Ssss.js} +1 -1
  126. package/web/assets/{interface-share-space-ship.svg-CcUB1z0B.js → interface-share-space-ship.svg-DL0JpObS.js} +1 -1
  127. package/web/assets/{interface-share.svg-Bug50vV0.js → interface-share.svg-BIBmVu-Z.js} +1 -1
  128. package/web/assets/{interface-signal-square.svg-zg41vf79.js → interface-signal-square.svg-DBiXDixA.js} +1 -1
  129. package/web/assets/{interface-time-clock-circle.svg-a4omIVlV.js → interface-time-clock-circle.svg-Dw8ufcru.js} +1 -1
  130. package/web/assets/{interface-time-hour-glass.svg-3zmzbQg_.js → interface-time-hour-glass.svg-DW-VGZ9S.js} +1 -1
  131. package/web/assets/{interface-users-multiple.svg-BdPX2m6Y.js → interface-users-multiple.svg-BINNDDOm.js} +1 -1
  132. package/web/assets/{interface-weather-moon.svg-D9_m-QTi.js → interface-weather-moon.svg-7AwWEmfi.js} +1 -1
  133. package/web/assets/{javascript-BJlgvmgy.js → javascript-BmwETCoN.js} +1 -1
  134. package/web/assets/{jsonMode-D0zJGMKu.js → jsonMode-jhfq8N1j.js} +1 -1
  135. package/web/assets/{liquid-B0fONmvZ.js → liquid-CXHFHq2a.js} +1 -1
  136. package/web/assets/{lspLanguageFeatures-CrwGD4mx.js → lspLanguageFeatures-DNlDiaf8.js} +1 -1
  137. package/web/assets/{mail-chat-bubble-square.svg-DZaD3FQ3.js → mail-chat-bubble-square.svg-Cbw9XSWq.js} +1 -1
  138. package/web/assets/{mail-send-email-paper-airplane.svg-DkbRfjXY.js → mail-send-email-paper-airplane.svg-BsOn0WRk.js} +1 -1
  139. package/web/assets/{mail-send-envelope.svg-5c8j8mB_.js → mail-send-envelope.svg-FiCVjNhS.js} +1 -1
  140. package/web/assets/{mdx-CKW2c2uF.js → mdx-BXQ_HHCT.js} +1 -1
  141. package/web/assets/{message-DZ0RuJXv.js → message-BhAEg6uM.js} +1 -1
  142. package/web/assets/{minus-C_n6M3oC.js → minus-DCjXtDL7.js} +1 -1
  143. package/web/assets/{modal-CvqNyAvh.js → modal-D55b155P.js} +1 -1
  144. package/web/assets/modal-cjFJ-Pqb.js +1 -0
  145. package/web/assets/{money-cashier-receipt.svg-nNTup6TP.js → money-cashier-receipt.svg-BPAwldjt.js} +1 -1
  146. package/web/assets/{money-currency-dollar-pay.svg-D6ct80fW.js → money-currency-dollar-pay.svg-D_nR6kZg.js} +1 -1
  147. package/web/assets/{money-graph-arrow-increase.svg-DrQ3RzKG.js → money-graph-arrow-increase.svg-CoZwsioR.js} +1 -1
  148. package/web/assets/{money-graph-bar-chart-increase.svg-CgI8xnRe.js → money-graph-bar-chart-increase.svg-DTaCKAmM.js} +1 -1
  149. package/web/assets/{multiselect-CSd05WUd.js → multiselect-By28VIxd.js} +1 -1
  150. package/web/assets/{nature-ecology-leaf.svg-SIUCD6fX.js → nature-ecology-leaf.svg-AXZXO7rv.js} +1 -1
  151. package/web/assets/{password-1NqZx53t.js → password-DO4Z8eXp.js} +1 -1
  152. package/web/assets/{phone-telephone.svg-DuLAx6_w.js → phone-telephone.svg-DsO2IQVY.js} +1 -1
  153. package/web/assets/{plus-CP-dlA9U.js → plus-yPEoWB54.js} +1 -1
  154. package/web/assets/process.store-Ddlv2x7t.js +1 -0
  155. package/web/assets/{programming-bug.svg-DzOMyrsK.js → programming-bug.svg-DKOd0mcH.js} +1 -1
  156. package/web/assets/{programming-cloud.svg-CB7hznLf.js → programming-cloud.svg-D9jQ_h92.js} +1 -1
  157. package/web/assets/{programming-computer-database-server.svg-Vdd0DgKt.js → programming-computer-database-server.svg-DKTyeoSb.js} +1 -1
  158. package/web/assets/{programming-computer-database.svg-CEqheAaf.js → programming-computer-database.svg-BDqL3cIA.js} +1 -1
  159. package/web/assets/{programming-module-four-layout.svg-BdPzuTtB.js → programming-module-four-layout.svg-C3VK_bT8.js} +1 -1
  160. package/web/assets/{programming-module-three.svg-PwBqCXu4.js → programming-module-three.svg-Bq1FzDKb.js} +1 -1
  161. package/web/assets/{programming-module.svg-DsBi6ejo.js → programming-module.svg-Qm6lzSnJ.js} +1 -1
  162. package/web/assets/{programming-script-code.svg-Broms4WV.js → programming-script-code.svg-C8X07wUI.js} +1 -1
  163. package/web/assets/{python-DfCB9qU4.js → python-By6Mp1Ix.js} +1 -1
  164. package/web/assets/{razor-BBh-Aao5.js → razor-CEUV3zJp.js} +1 -1
  165. package/web/assets/router-CwxQMOvD.js +1 -0
  166. package/web/assets/{settings.store-BfNYjk_y.js → settings.store-CdbxGLwM.js} +1 -1
  167. package/web/assets/{shopping-cart.svg-CKdnb6hR.js → shopping-cart.svg-BRL8Ll51.js} +1 -1
  168. package/web/assets/{shopping-gift-present.svg-DIxbK0pG.js → shopping-gift-present.svg-CXQFba5I.js} +1 -1
  169. package/web/assets/{shopping-shipping-box-parcel-package.svg-C-9ntsF7.js → shopping-shipping-box-parcel-package.svg-Bn2p6-mI.js} +1 -1
  170. package/web/assets/{src-C77fweBS.js → src-Fna7vk35.js} +1 -1
  171. package/web/assets/{src-CXyRAwtR.js → src-ZKiShuw1.js} +1 -1
  172. package/web/assets/{tabpanel-C0aUv4Tp.js → tabpanel-DWqdAA9H.js} +1 -1
  173. package/web/assets/{tag-new-circle.svg-D9mnL-uB.js → tag-new-circle.svg-1MfDK7Ga.js} +1 -1
  174. package/web/assets/{travel-map-earth-globe.svg-B1pf_UKK.js → travel-map-earth-globe.svg-825O-f6n.js} +1 -1
  175. package/web/assets/trpc-C9TOnzsl.js +1 -0
  176. package/web/assets/{tsMode-CBiaVW1A.js → tsMode-DijbMMhR.js} +1 -1
  177. package/web/assets/{typescript-DSa5kNRs.js → typescript-46ax_ZH8.js} +1 -1
  178. package/web/assets/useAiChatDrawer-Fipk1tL5.js +1 -0
  179. package/web/assets/{useCloudOrg-DYG5BAW1.js → useCloudOrg-B3j8giwe.js} +1 -1
  180. package/web/assets/{useProjectCatalog-Dyg12Vcr.js → useProjectCatalog-BW2ZvrJl.js} +1 -1
  181. package/web/assets/{xml-BYwyGk9G.js → xml-DflJhDfp.js} +1 -1
  182. package/web/assets/{yaml-Dl2OSYTO.js → yaml-BS1mDEyU.js} +1 -1
  183. package/web/index.html +1 -1
  184. package/agent-manager-ABEKUAWR.js +0 -7
  185. package/chunk-JBR3MGS7.js.map +0 -1
  186. package/src-LLRT5YLM.js.map +0 -1
  187. package/web/assets/AiChatPage-BjC9iQnH.js +0 -1
  188. package/web/assets/AppLayout-fVYVDGr-.js +0 -1
  189. package/web/assets/CloudAccountPage-CE3b0q5v.js +0 -1
  190. package/web/assets/CloudAccountPage-ChVg2wnJ.css +0 -1
  191. package/web/assets/CloudAccountPage-YkGuA0nb.js +0 -1
  192. package/web/assets/SettingsPage-zriZbuPv.js +0 -2062
  193. package/web/assets/WikiPage-DqqlIbM6.js +0 -1
  194. package/web/assets/auth-errors-B510-08J.js +0 -1
  195. package/web/assets/interface-content-folder.svg-BF9F5qf2.js +0 -1
  196. package/web/assets/modal-C5SccGq4.js +0 -1
  197. package/web/assets/process.store-B_vfVoW1.js +0 -1
  198. package/web/assets/router-CEOd6ZAd.js +0 -1
  199. package/web/assets/trpc-BNJN8Syq.js +0 -1
  200. package/web/assets/useAiChatDrawer-DJh6hREC.js +0 -1
  201. /package/{agent-manager-ABEKUAWR.js.map → agent-manager-FD2NGRIW.js.map} +0 -0
  202. /package/web/assets/{uuid-B3B8HIK9.js → uuid-B_qWVd9j.js} +0 -0
  203. /package/web/assets/{w3c-keyname-nn0G3QC2.js → w3c-keyname-CEC6uTIQ.js} +0 -0
@@ -0,0 +1,7 @@
1
+ import {
2
+ agentManager
3
+ } from "./chunk-IHUELGIB.js";
4
+ export {
5
+ agentManager
6
+ };
7
+ //# sourceMappingURL=agent-manager-FD2NGRIW.js.map
@@ -6,7 +6,7 @@ import { z as z21 } from "zod";
6
6
  // ../server/src/services/agent-store.ts
7
7
  import { randomUUID, randomBytes, createCipheriv, createDecipheriv } from "crypto";
8
8
  import { readFile as readFile2, writeFile as writeFile2, rename, mkdir as mkdir2, chmod } from "fs/promises";
9
- import { dirname } from "path";
9
+ import { dirname, join as join2 } from "path";
10
10
 
11
11
  // ../server/src/services/vault-resolver.ts
12
12
  import { join, sep } from "path";
@@ -96,11 +96,8 @@ function vaultFor(target) {
96
96
  var ORG_CLOUD_FILE = "cloud.json";
97
97
  async function stampOrgCloud(orgId, cloudUrl) {
98
98
  const root = orgVaultRoot(orgId);
99
- try {
100
- await mkdir(root, { recursive: true });
101
- await writeFile(join(root, ORG_CLOUD_FILE), JSON.stringify({ cloudUrl }, null, 2), "utf-8");
102
- } catch {
103
- }
99
+ await mkdir(root, { recursive: true });
100
+ await writeFile(join(root, ORG_CLOUD_FILE), JSON.stringify({ cloudUrl }, null, 2), "utf-8");
104
101
  }
105
102
  async function readOrgClouds() {
106
103
  const orgsDir = join(machineRoot(), "orgs");
@@ -121,6 +118,14 @@ async function readOrgClouds() {
121
118
  }
122
119
  return out;
123
120
  }
121
+ async function listOrgVaults() {
122
+ const orgsDir = join(machineRoot(), "orgs");
123
+ try {
124
+ return (await readdir(orgsDir, { withFileTypes: true })).filter((e) => e.isDirectory() && SAFE_ID.test(e.name)).map((e) => e.name);
125
+ } catch {
126
+ return [];
127
+ }
128
+ }
124
129
  async function listCloudVaults() {
125
130
  const orgsDir = join(machineRoot(), "orgs");
126
131
  const found = [];
@@ -286,64 +291,116 @@ var AgentStore = class {
286
291
  agents = /* @__PURE__ */ new Map();
287
292
  passthroughEnv = {};
288
293
  traefikConfigs = {};
294
+ /** Le propriétaire de chaque agent, d'après le coffre où il a été lu. */
295
+ owners = /* @__PURE__ */ new Map();
296
+ /**
297
+ * Tous les coffres rencontrés, y compris ceux devenus vides.
298
+ *
299
+ * Déduire cette liste des agents encore présents laisserait le dernier agent
300
+ * d'une organisation dans son fichier après suppression : plus personne pour
301
+ * désigner ce coffre, donc plus personne pour le réécrire.
302
+ */
303
+ knownOwners = /* @__PURE__ */ new Set([null]);
289
304
  loaded = false;
290
305
  /**
291
- * Encrypted, so it lives beside the key that opens it — usually the machine
292
- * root, but a launch directory owning its own key keeps both together.
306
+ * Le fichier d'un propriétaire donné.
307
+ *
308
+ * Pour la machine, il reste à côté de la clé qui l'ouvre (`keyedFilePath`) :
309
+ * lu sous une autre clé il se déchiffrerait en blancs, puis serait réécrit
310
+ * blanc. Pour une organisation, c'est son coffre — la clé, elle, répond
311
+ * toujours pour toute la machine.
293
312
  */
294
- getFilePath() {
295
- return keyedFilePath(FILENAME);
313
+ filePathFor(owner) {
314
+ if (owner === null) return keyedFilePath(FILENAME);
315
+ return Promise.resolve(join2(orgVaultRoot(owner), FILENAME));
296
316
  }
297
317
  /** Where older versions kept it — read only, so an older Runeya keeps working. */
298
318
  getLegacyFilePath() {
299
319
  return legacyMachineFilePath(FILENAME);
300
320
  }
321
+ /** Ce qu'un fichier de coffre contient, ou null s'il n'y en a pas. */
322
+ async readOwnerFile(owner) {
323
+ const paths = owner === null ? [await this.filePathFor(null), this.getLegacyFilePath()] : [await this.filePathFor(owner)];
324
+ for (const path of paths) {
325
+ let raw;
326
+ try {
327
+ raw = await readFile2(path, "utf-8");
328
+ } catch {
329
+ continue;
330
+ }
331
+ try {
332
+ const data = JSON.parse(raw);
333
+ if (Array.isArray(data)) {
334
+ return { agents: data, passthroughEnv: {}, traefikConfigs: {} };
335
+ }
336
+ const fileData = data;
337
+ return {
338
+ agents: fileData.agents ?? [],
339
+ passthroughEnv: fileData.passthroughEnv ?? {},
340
+ traefikConfigs: fileData.traefikConfigs ?? {}
341
+ };
342
+ } catch {
343
+ }
344
+ }
345
+ return null;
346
+ }
301
347
  /**
302
- * Read the machine file, falling back to the launch directory of old.
348
+ * Lire la machine puis chaque organisation présente sur ce disque.
303
349
  *
304
- * The legacy file is left in place: the next save writes the new location,
305
- * and a directory still opened by an older Runeya keeps working meanwhile.
350
+ * Les organisations sont relues du disque et non d'une liste tenue à part :
351
+ * un coffre qui existe est une organisation dont les agents comptent, et
352
+ * c'est déjà comme ça que la synchronisation décide de sa portée.
306
353
  */
307
- async readFromDisk() {
308
- try {
309
- return await readFile2(await this.getFilePath(), "utf-8");
310
- } catch {
311
- return readFile2(this.getLegacyFilePath(), "utf-8");
312
- }
313
- }
314
- async ensureDir() {
315
- await mkdir2(dirname(await this.getFilePath()), { recursive: true });
316
- }
317
354
  async load() {
318
355
  if (this.loaded) return;
319
- try {
320
- const raw = await this.readFromDisk();
321
- const data = JSON.parse(raw);
322
- if (Array.isArray(data)) {
323
- for (const a of data) this.agents.set(a.id, a);
324
- this.passthroughEnv = {};
325
- } else {
326
- const fileData = data;
327
- for (const a of fileData.agents) this.agents.set(a.id, a);
328
- this.passthroughEnv = fileData.passthroughEnv ?? {};
329
- this.traefikConfigs = fileData.traefikConfigs ?? {};
356
+ const owners = [null, ...await listOrgVaults()];
357
+ for (const owner of owners) {
358
+ const data = await this.readOwnerFile(owner);
359
+ if (!data) continue;
360
+ this.knownOwners.add(owner);
361
+ for (const a of data.agents) {
362
+ this.agents.set(a.id, a);
363
+ this.owners.set(a.id, owner);
330
364
  }
331
- } catch {
365
+ Object.assign(this.passthroughEnv, data.passthroughEnv);
366
+ Object.assign(this.traefikConfigs, data.traefikConfigs);
332
367
  }
333
368
  this.loaded = true;
334
369
  }
370
+ /**
371
+ * Réécrire chaque coffre concerné.
372
+ *
373
+ * Un agent emporte son `passthroughEnv` et sa configuration Traefik dans le
374
+ * fichier de son propriétaire : les laisser côté machine rendrait la portée
375
+ * mensongère — l'organisation partirait en laissant ses miettes derrière.
376
+ * Tous les coffres sont réécrits, y compris ceux devenus vides, sinon un
377
+ * agent déplacé subsisterait dans les deux.
378
+ */
335
379
  async save() {
336
- await this.ensureDir();
337
- const filePath = await this.getFilePath();
338
- const tmpPath = filePath + ".tmp";
339
- const fileData = {
340
- agents: Array.from(this.agents.values()),
341
- passthroughEnv: this.passthroughEnv,
342
- traefikConfigs: this.traefikConfigs
343
- };
344
- await writeFile2(tmpPath, JSON.stringify(fileData, null, 2), "utf-8");
345
- await rename(tmpPath, filePath);
346
- await chmod(filePath, 384);
380
+ const byOwner = /* @__PURE__ */ new Map();
381
+ for (const owner of this.knownOwners) byOwner.set(owner, []);
382
+ for (const agent of this.agents.values()) {
383
+ const owner = this.owners.get(agent.id) ?? null;
384
+ byOwner.set(owner, [...byOwner.get(owner) ?? [], agent]);
385
+ }
386
+ for (const [owner, agents] of byOwner) {
387
+ const ids = new Set(agents.map((a) => a.id));
388
+ const fileData = {
389
+ agents,
390
+ passthroughEnv: Object.fromEntries(
391
+ Object.entries(this.passthroughEnv).filter(([id]) => ids.has(id))
392
+ ),
393
+ traefikConfigs: Object.fromEntries(
394
+ Object.entries(this.traefikConfigs).filter(([id]) => ids.has(id))
395
+ )
396
+ };
397
+ const filePath = await this.filePathFor(owner);
398
+ await mkdir2(dirname(filePath), { recursive: true });
399
+ const tmpPath = filePath + ".tmp";
400
+ await writeFile2(tmpPath, JSON.stringify(fileData, null, 2), "utf-8");
401
+ await rename(tmpPath, filePath);
402
+ await chmod(filePath, 384);
403
+ }
347
404
  }
348
405
  toAgentConfig(stored) {
349
406
  return {
@@ -370,7 +427,7 @@ var AgentStore = class {
370
427
  if (!stored) return null;
371
428
  return this.toAgentConfig(stored);
372
429
  }
373
- async register(name, url, passphrase) {
430
+ async register(name, url, passphrase, owner = null) {
374
431
  await this.load();
375
432
  const existing = Array.from(this.agents.values()).find((a) => a.url === url);
376
433
  const { encrypted, iv, authTag } = encrypt(passphrase);
@@ -385,6 +442,8 @@ var AgentStore = class {
385
442
  const id = randomUUID();
386
443
  const stored = { id, name, url, encrypted, iv, authTag };
387
444
  this.agents.set(id, stored);
445
+ this.owners.set(id, owner);
446
+ this.knownOwners.add(owner);
388
447
  await this.save();
389
448
  return { id, name, url, passphrase, passthroughEnv: [] };
390
449
  }
@@ -392,6 +451,7 @@ var AgentStore = class {
392
451
  await this.load();
393
452
  if (!this.agents.has(id)) return false;
394
453
  this.agents.delete(id);
454
+ this.owners.delete(id);
395
455
  delete this.passthroughEnv[id];
396
456
  delete this.traefikConfigs[id];
397
457
  await this.save();
@@ -443,7 +503,7 @@ var agentStore = new AgentStore();
443
503
  // ../server/src/services/service-store.ts
444
504
  import { randomUUID as randomUUID3 } from "crypto";
445
505
  import { readFile as readFile4, writeFile as writeFile4, rename as rename3, mkdir as mkdir4, chmod as chmod3, rm as rm2 } from "fs/promises";
446
- import { join as join3 } from "path";
506
+ import { join as join4 } from "path";
447
507
 
448
508
  // ../server/src/services/project-key.ts
449
509
  function projectKey(ref) {
@@ -556,7 +616,7 @@ function isVaultConflicted(root) {
556
616
  // ../server/src/services/environment-store.ts
557
617
  import { randomUUID as randomUUID2 } from "crypto";
558
618
  import { readFile as readFile3, writeFile as writeFile3, rename as rename2, mkdir as mkdir3, chmod as chmod2, rm } from "fs/promises";
559
- import { join as join2 } from "path";
619
+ import { join as join3 } from "path";
560
620
 
561
621
  // ../server/src/services/crypto-helpers.ts
562
622
  import { randomBytes as randomBytes2, createCipheriv as createCipheriv2, createDecipheriv as createDecipheriv2 } from "crypto";
@@ -1951,7 +2011,7 @@ var EnvironmentStore = class {
1951
2011
  */
1952
2012
  roots = /* @__PURE__ */ new Map();
1953
2013
  getFilePath(root) {
1954
- return join2(root, FILENAME2);
2014
+ return join3(root, FILENAME2);
1955
2015
  }
1956
2016
  /**
1957
2017
  * The vault an environment must be written to: its project's.
@@ -2468,7 +2528,7 @@ var ServiceStore = class {
2468
2528
  /** Which vault each service was read from, used until its project is known. */
2469
2529
  roots = /* @__PURE__ */ new Map();
2470
2530
  getFilePath(root) {
2471
- return join3(root, FILENAME3);
2531
+ return join4(root, FILENAME3);
2472
2532
  }
2473
2533
  /**
2474
2534
  * The vault a service must be written to: the one of the project owning it.
@@ -2581,6 +2641,24 @@ var ServiceStore = class {
2581
2641
  await this.load();
2582
2642
  await this.save();
2583
2643
  }
2644
+ /**
2645
+ * Réattribuer l'organisation de services dont le projet vient de changer de
2646
+ * coffre.
2647
+ *
2648
+ * Un service porte son `orgId` en propre : laissé à `null` après le passage
2649
+ * du projet dans une organisation, il partirait dans le doc en se disant
2650
+ * local. La sauvegarde qui suit les écrit dans leur nouveau coffre et les
2651
+ * retire de l'ancien, le registre ayant déjà été mis à jour par le projet.
2652
+ */
2653
+ async reassignOrg(serviceIds, orgId) {
2654
+ await this.load();
2655
+ for (const id of serviceIds) {
2656
+ const service = this.services.get(id);
2657
+ if (service) this.services.set(id, { ...service, orgId });
2658
+ }
2659
+ await this.save();
2660
+ this.notify();
2661
+ }
2584
2662
  async list() {
2585
2663
  await this.load();
2586
2664
  return Array.from(this.services.values());
@@ -2739,28 +2817,81 @@ var serviceStore = new ServiceStore();
2739
2817
  import { spawn } from "child_process";
2740
2818
  import { createInterface } from "readline";
2741
2819
  import { watch } from "fs";
2742
- import { dirname as dirname2, join as join4 } from "path";
2820
+ import { dirname as dirname2, join as join5 } from "path";
2743
2821
  import { fileURLToPath } from "url";
2822
+ var POSIX_SAFE_KEYS = [
2823
+ "PATH",
2824
+ "HOME",
2825
+ "USER",
2826
+ "SHELL",
2827
+ "LANG",
2828
+ "TERM",
2829
+ "NODE_ENV",
2830
+ "TMPDIR",
2831
+ "TZ",
2832
+ "DBUS_SESSION_BUS_ADDRESS",
2833
+ "XDG_RUNTIME_DIR",
2834
+ // Needed so the agent can talk to the user's clipboard for the chat image-paste flow
2835
+ // (xclip needs DISPLAY/XAUTHORITY, wl-copy needs WAYLAND_DISPLAY).
2836
+ "DISPLAY",
2837
+ "XAUTHORITY",
2838
+ "WAYLAND_DISPLAY",
2839
+ "XDG_SESSION_TYPE"
2840
+ ];
2841
+ var WINDOWS_SAFE_KEYS = [
2842
+ "PATH",
2843
+ "PATHEXT",
2844
+ "NODE_ENV",
2845
+ "TZ",
2846
+ "TERM",
2847
+ // Interpreter + OS roots
2848
+ "ComSpec",
2849
+ "SystemRoot",
2850
+ "SystemDrive",
2851
+ "windir",
2852
+ "OS",
2853
+ "PSModulePath",
2854
+ // User profile & app data (git config, credential helpers, npm/scoop shims)
2855
+ "USERPROFILE",
2856
+ "HOMEDRIVE",
2857
+ "HOMEPATH",
2858
+ "USERNAME",
2859
+ "USERDOMAIN",
2860
+ "USERDOMAIN_ROAMINGPROFILE",
2861
+ "LOGONSERVER",
2862
+ "APPDATA",
2863
+ "LOCALAPPDATA",
2864
+ // Machine-wide install roots
2865
+ "ProgramData",
2866
+ "ProgramFiles",
2867
+ "ProgramFiles(x86)",
2868
+ "ProgramW6432",
2869
+ "CommonProgramFiles",
2870
+ "CommonProgramFiles(x86)",
2871
+ "CommonProgramW6432",
2872
+ "ALLUSERSPROFILE",
2873
+ "PUBLIC",
2874
+ "DriverData",
2875
+ // Temp
2876
+ "TEMP",
2877
+ "TMP",
2878
+ // Architecture / CPU (used by installers and native module loaders)
2879
+ "PROCESSOR_ARCHITECTURE",
2880
+ "PROCESSOR_ARCHITEW6432",
2881
+ "PROCESSOR_IDENTIFIER",
2882
+ "PROCESSOR_LEVEL",
2883
+ "PROCESSOR_REVISION",
2884
+ "NUMBER_OF_PROCESSORS",
2885
+ // Session / terminal
2886
+ "SESSIONNAME",
2887
+ "COMPUTERNAME",
2888
+ "FPS_BROWSER_APP_PROFILE_STRING",
2889
+ "FPS_BROWSER_USER_PROFILE_STRING",
2890
+ "WT_SESSION",
2891
+ "WT_PROFILE_ID"
2892
+ ];
2744
2893
  function buildAgentEnv() {
2745
- const safeKeys = [
2746
- "PATH",
2747
- "HOME",
2748
- "USER",
2749
- "SHELL",
2750
- "LANG",
2751
- "TERM",
2752
- "NODE_ENV",
2753
- "TMPDIR",
2754
- "TZ",
2755
- "DBUS_SESSION_BUS_ADDRESS",
2756
- "XDG_RUNTIME_DIR",
2757
- // Needed so the agent can talk to the user's clipboard for the chat image-paste flow
2758
- // (xclip needs DISPLAY/XAUTHORITY, wl-copy needs WAYLAND_DISPLAY).
2759
- "DISPLAY",
2760
- "XAUTHORITY",
2761
- "WAYLAND_DISPLAY",
2762
- "XDG_SESSION_TYPE"
2763
- ];
2894
+ const safeKeys = process.platform === "win32" ? WINDOWS_SAFE_KEYS : POSIX_SAFE_KEYS;
2764
2895
  const agentEnv = {
2765
2896
  RUNEYA_AGENT_PORT: String(env.RUNEYA_AGENT_PORT),
2766
2897
  RUNEYA_AGENT_HOST: env.RUNEYA_AGENT_HOST
@@ -2772,9 +2903,10 @@ function buildAgentEnv() {
2772
2903
  }
2773
2904
  agentEnv.PASSPHRASE_OVERRIDE = passphrase;
2774
2905
  }
2775
- for (const key of safeKeys) {
2776
- if (process.env[key]) {
2777
- agentEnv[key] = process.env[key];
2906
+ const wanted = new Set(safeKeys.map((k) => k.toLowerCase()));
2907
+ for (const [key, value] of Object.entries(process.env)) {
2908
+ if (value && wanted.has(key.toLowerCase())) {
2909
+ agentEnv[key] = value;
2778
2910
  }
2779
2911
  }
2780
2912
  return agentEnv;
@@ -2797,7 +2929,7 @@ var AgentSpawner = class {
2797
2929
  }
2798
2930
  console.log(`[agent-spawner] Spawning local agent on ${agentUrl}...`);
2799
2931
  const isDev = process.env.NODE_ENV === "development";
2800
- this.agentDistPath = env.AGENT_BINARY_PATH || join4(dirname2(fileURLToPath(import.meta.url)), "..", "..", "agent", "dist", "index.js");
2932
+ this.agentDistPath = env.AGENT_BINARY_PATH || join5(dirname2(fileURLToPath(import.meta.url)), "..", "..", "agent", "dist", "index.js");
2801
2933
  this.agentProcess = spawn("node", [this.agentDistPath], {
2802
2934
  env: agentEnv,
2803
2935
  stdio: ["ignore", "pipe", "pipe"]
@@ -2900,7 +3032,7 @@ var AgentSpawner = class {
2900
3032
  this.fileWatcher.close();
2901
3033
  }
2902
3034
  console.log("[agent-spawner] \u{1F50D} Watching agent dist for changes (hot reload enabled)");
2903
- const distDir = join4(this.agentDistPath, "..");
3035
+ const distDir = join5(this.agentDistPath, "..");
2904
3036
  this.fileWatcher = watch(distDir, { persistent: false }, (eventType, filename) => {
2905
3037
  if ((eventType === "change" || eventType === "rename") && filename === "index.js" && !this.isRestarting) {
2906
3038
  this.isRestarting = true;
@@ -3331,8 +3463,12 @@ var AgentManager = class extends EventEmitter2 {
3331
3463
  this.connectAgent(agent);
3332
3464
  }
3333
3465
  }
3334
- async register(name, url, passphrase) {
3335
- const config = await agentStore.register(name, url, passphrase);
3466
+ /**
3467
+ * `owner` dit à quelle organisation l'agent appartient, ou `null` pour la
3468
+ * machine — l'agent local, qui n'exécute des processus que sur ce poste.
3469
+ */
3470
+ async register(name, url, passphrase, owner = null) {
3471
+ const config = await agentStore.register(name, url, passphrase, owner);
3336
3472
  const isReRegistration = this.connections.has(config.id);
3337
3473
  if (isReRegistration) {
3338
3474
  console.log(`[agent-manager] Re-registering agent ${config.name} (${config.id})`);
@@ -3683,6 +3819,7 @@ export {
3683
3819
  vaultFor,
3684
3820
  stampOrgCloud,
3685
3821
  readOrgClouds,
3822
+ listOrgVaults,
3686
3823
  listCloudVaults,
3687
3824
  allVaultRoots,
3688
3825
  machineFilePath,
@@ -3749,4 +3886,4 @@ export {
3749
3886
  traefikManager,
3750
3887
  agentManager
3751
3888
  };
3752
- //# sourceMappingURL=chunk-JBR3MGS7.js.map
3889
+ //# sourceMappingURL=chunk-IHUELGIB.js.map