@runeya/runeya 2.0.51 → 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-NVKGIBJN.js → chunk-IHUELGIB.js} +214 -74
  5. package/chunk-IHUELGIB.js.map +1 -0
  6. package/index.js +1 -1
  7. package/package.json +1 -1
  8. package/{src-R6JOPDNL.js → src-MHKSKRBK.js} +10499 -10146
  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-KX5MSTAK.js +0 -7
  185. package/chunk-NVKGIBJN.js.map +0 -1
  186. package/src-R6JOPDNL.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-KX5MSTAK.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";
@@ -118,6 +118,14 @@ async function readOrgClouds() {
118
118
  }
119
119
  return out;
120
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
+ }
121
129
  async function listCloudVaults() {
122
130
  const orgsDir = join(machineRoot(), "orgs");
123
131
  const found = [];
@@ -283,64 +291,116 @@ var AgentStore = class {
283
291
  agents = /* @__PURE__ */ new Map();
284
292
  passthroughEnv = {};
285
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]);
286
304
  loaded = false;
287
305
  /**
288
- * Encrypted, so it lives beside the key that opens it — usually the machine
289
- * 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.
290
312
  */
291
- getFilePath() {
292
- return keyedFilePath(FILENAME);
313
+ filePathFor(owner) {
314
+ if (owner === null) return keyedFilePath(FILENAME);
315
+ return Promise.resolve(join2(orgVaultRoot(owner), FILENAME));
293
316
  }
294
317
  /** Where older versions kept it — read only, so an older Runeya keeps working. */
295
318
  getLegacyFilePath() {
296
319
  return legacyMachineFilePath(FILENAME);
297
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
+ }
298
347
  /**
299
- * Read the machine file, falling back to the launch directory of old.
348
+ * Lire la machine puis chaque organisation présente sur ce disque.
300
349
  *
301
- * The legacy file is left in place: the next save writes the new location,
302
- * 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.
303
353
  */
304
- async readFromDisk() {
305
- try {
306
- return await readFile2(await this.getFilePath(), "utf-8");
307
- } catch {
308
- return readFile2(this.getLegacyFilePath(), "utf-8");
309
- }
310
- }
311
- async ensureDir() {
312
- await mkdir2(dirname(await this.getFilePath()), { recursive: true });
313
- }
314
354
  async load() {
315
355
  if (this.loaded) return;
316
- try {
317
- const raw = await this.readFromDisk();
318
- const data = JSON.parse(raw);
319
- if (Array.isArray(data)) {
320
- for (const a of data) this.agents.set(a.id, a);
321
- this.passthroughEnv = {};
322
- } else {
323
- const fileData = data;
324
- for (const a of fileData.agents) this.agents.set(a.id, a);
325
- this.passthroughEnv = fileData.passthroughEnv ?? {};
326
- 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);
327
364
  }
328
- } catch {
365
+ Object.assign(this.passthroughEnv, data.passthroughEnv);
366
+ Object.assign(this.traefikConfigs, data.traefikConfigs);
329
367
  }
330
368
  this.loaded = true;
331
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
+ */
332
379
  async save() {
333
- await this.ensureDir();
334
- const filePath = await this.getFilePath();
335
- const tmpPath = filePath + ".tmp";
336
- const fileData = {
337
- agents: Array.from(this.agents.values()),
338
- passthroughEnv: this.passthroughEnv,
339
- traefikConfigs: this.traefikConfigs
340
- };
341
- await writeFile2(tmpPath, JSON.stringify(fileData, null, 2), "utf-8");
342
- await rename(tmpPath, filePath);
343
- 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
+ }
344
404
  }
345
405
  toAgentConfig(stored) {
346
406
  return {
@@ -367,7 +427,7 @@ var AgentStore = class {
367
427
  if (!stored) return null;
368
428
  return this.toAgentConfig(stored);
369
429
  }
370
- async register(name, url, passphrase) {
430
+ async register(name, url, passphrase, owner = null) {
371
431
  await this.load();
372
432
  const existing = Array.from(this.agents.values()).find((a) => a.url === url);
373
433
  const { encrypted, iv, authTag } = encrypt(passphrase);
@@ -382,6 +442,8 @@ var AgentStore = class {
382
442
  const id = randomUUID();
383
443
  const stored = { id, name, url, encrypted, iv, authTag };
384
444
  this.agents.set(id, stored);
445
+ this.owners.set(id, owner);
446
+ this.knownOwners.add(owner);
385
447
  await this.save();
386
448
  return { id, name, url, passphrase, passthroughEnv: [] };
387
449
  }
@@ -389,6 +451,7 @@ var AgentStore = class {
389
451
  await this.load();
390
452
  if (!this.agents.has(id)) return false;
391
453
  this.agents.delete(id);
454
+ this.owners.delete(id);
392
455
  delete this.passthroughEnv[id];
393
456
  delete this.traefikConfigs[id];
394
457
  await this.save();
@@ -440,7 +503,7 @@ var agentStore = new AgentStore();
440
503
  // ../server/src/services/service-store.ts
441
504
  import { randomUUID as randomUUID3 } from "crypto";
442
505
  import { readFile as readFile4, writeFile as writeFile4, rename as rename3, mkdir as mkdir4, chmod as chmod3, rm as rm2 } from "fs/promises";
443
- import { join as join3 } from "path";
506
+ import { join as join4 } from "path";
444
507
 
445
508
  // ../server/src/services/project-key.ts
446
509
  function projectKey(ref) {
@@ -553,7 +616,7 @@ function isVaultConflicted(root) {
553
616
  // ../server/src/services/environment-store.ts
554
617
  import { randomUUID as randomUUID2 } from "crypto";
555
618
  import { readFile as readFile3, writeFile as writeFile3, rename as rename2, mkdir as mkdir3, chmod as chmod2, rm } from "fs/promises";
556
- import { join as join2 } from "path";
619
+ import { join as join3 } from "path";
557
620
 
558
621
  // ../server/src/services/crypto-helpers.ts
559
622
  import { randomBytes as randomBytes2, createCipheriv as createCipheriv2, createDecipheriv as createDecipheriv2 } from "crypto";
@@ -1948,7 +2011,7 @@ var EnvironmentStore = class {
1948
2011
  */
1949
2012
  roots = /* @__PURE__ */ new Map();
1950
2013
  getFilePath(root) {
1951
- return join2(root, FILENAME2);
2014
+ return join3(root, FILENAME2);
1952
2015
  }
1953
2016
  /**
1954
2017
  * The vault an environment must be written to: its project's.
@@ -2465,7 +2528,7 @@ var ServiceStore = class {
2465
2528
  /** Which vault each service was read from, used until its project is known. */
2466
2529
  roots = /* @__PURE__ */ new Map();
2467
2530
  getFilePath(root) {
2468
- return join3(root, FILENAME3);
2531
+ return join4(root, FILENAME3);
2469
2532
  }
2470
2533
  /**
2471
2534
  * The vault a service must be written to: the one of the project owning it.
@@ -2578,6 +2641,24 @@ var ServiceStore = class {
2578
2641
  await this.load();
2579
2642
  await this.save();
2580
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
+ }
2581
2662
  async list() {
2582
2663
  await this.load();
2583
2664
  return Array.from(this.services.values());
@@ -2736,28 +2817,81 @@ var serviceStore = new ServiceStore();
2736
2817
  import { spawn } from "child_process";
2737
2818
  import { createInterface } from "readline";
2738
2819
  import { watch } from "fs";
2739
- import { dirname as dirname2, join as join4 } from "path";
2820
+ import { dirname as dirname2, join as join5 } from "path";
2740
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
+ ];
2741
2893
  function buildAgentEnv() {
2742
- const safeKeys = [
2743
- "PATH",
2744
- "HOME",
2745
- "USER",
2746
- "SHELL",
2747
- "LANG",
2748
- "TERM",
2749
- "NODE_ENV",
2750
- "TMPDIR",
2751
- "TZ",
2752
- "DBUS_SESSION_BUS_ADDRESS",
2753
- "XDG_RUNTIME_DIR",
2754
- // Needed so the agent can talk to the user's clipboard for the chat image-paste flow
2755
- // (xclip needs DISPLAY/XAUTHORITY, wl-copy needs WAYLAND_DISPLAY).
2756
- "DISPLAY",
2757
- "XAUTHORITY",
2758
- "WAYLAND_DISPLAY",
2759
- "XDG_SESSION_TYPE"
2760
- ];
2894
+ const safeKeys = process.platform === "win32" ? WINDOWS_SAFE_KEYS : POSIX_SAFE_KEYS;
2761
2895
  const agentEnv = {
2762
2896
  RUNEYA_AGENT_PORT: String(env.RUNEYA_AGENT_PORT),
2763
2897
  RUNEYA_AGENT_HOST: env.RUNEYA_AGENT_HOST
@@ -2769,9 +2903,10 @@ function buildAgentEnv() {
2769
2903
  }
2770
2904
  agentEnv.PASSPHRASE_OVERRIDE = passphrase;
2771
2905
  }
2772
- for (const key of safeKeys) {
2773
- if (process.env[key]) {
2774
- 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;
2775
2910
  }
2776
2911
  }
2777
2912
  return agentEnv;
@@ -2794,7 +2929,7 @@ var AgentSpawner = class {
2794
2929
  }
2795
2930
  console.log(`[agent-spawner] Spawning local agent on ${agentUrl}...`);
2796
2931
  const isDev = process.env.NODE_ENV === "development";
2797
- 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");
2798
2933
  this.agentProcess = spawn("node", [this.agentDistPath], {
2799
2934
  env: agentEnv,
2800
2935
  stdio: ["ignore", "pipe", "pipe"]
@@ -2897,7 +3032,7 @@ var AgentSpawner = class {
2897
3032
  this.fileWatcher.close();
2898
3033
  }
2899
3034
  console.log("[agent-spawner] \u{1F50D} Watching agent dist for changes (hot reload enabled)");
2900
- const distDir = join4(this.agentDistPath, "..");
3035
+ const distDir = join5(this.agentDistPath, "..");
2901
3036
  this.fileWatcher = watch(distDir, { persistent: false }, (eventType, filename) => {
2902
3037
  if ((eventType === "change" || eventType === "rename") && filename === "index.js" && !this.isRestarting) {
2903
3038
  this.isRestarting = true;
@@ -3328,8 +3463,12 @@ var AgentManager = class extends EventEmitter2 {
3328
3463
  this.connectAgent(agent);
3329
3464
  }
3330
3465
  }
3331
- async register(name, url, passphrase) {
3332
- 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);
3333
3472
  const isReRegistration = this.connections.has(config.id);
3334
3473
  if (isReRegistration) {
3335
3474
  console.log(`[agent-manager] Re-registering agent ${config.name} (${config.id})`);
@@ -3680,6 +3819,7 @@ export {
3680
3819
  vaultFor,
3681
3820
  stampOrgCloud,
3682
3821
  readOrgClouds,
3822
+ listOrgVaults,
3683
3823
  listCloudVaults,
3684
3824
  allVaultRoots,
3685
3825
  machineFilePath,
@@ -3746,4 +3886,4 @@ export {
3746
3886
  traefikManager,
3747
3887
  agentManager
3748
3888
  };
3749
- //# sourceMappingURL=chunk-NVKGIBJN.js.map
3889
+ //# sourceMappingURL=chunk-IHUELGIB.js.map