@runeya/runeya 2.0.128 → 2.0.130

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 (347) hide show
  1. package/agent/index.js +12 -0
  2. package/agent/index.js.map +1 -1
  3. package/{agent-manager-VFUO7WQG.js → agent-manager-GFRVUJSI.js} +3 -3
  4. package/{chat-GB2UJ5KB.js → chat-6ETYBINN.js} +6 -6
  5. package/{chunk-DTWP3CFL.js → chunk-7GBSCYXU.js} +13 -1
  6. package/chunk-7GBSCYXU.js.map +1 -0
  7. package/{chunk-KQ462M3Y.js → chunk-J2L6VONF.js} +2 -2
  8. package/{chunk-X2PJIJU7.js → chunk-K2KSZRSI.js} +6 -6
  9. package/{chunk-ZGEV53KH.js → chunk-RDE3X3J4.js} +7 -7
  10. package/{chunk-KNAM5H2Z.js → chunk-TTJNHZ6U.js} +2 -2
  11. package/{companion-XBCHHK4Z.js → companion-SH4HLD6G.js} +4 -4
  12. package/{desktop-launcher-SLNYXW22.js → desktop-launcher-7UZF7PFH.js} +2 -2
  13. package/index.js +4 -4
  14. package/mcp-server/index.js +12 -0
  15. package/mcp-server/index.js.map +1 -1
  16. package/package.json +1 -1
  17. package/{settings-manager-YGIIRWVY.js → settings-manager-XD6U4QN3.js} +3 -3
  18. package/{src-WK5KI3IO.js → src-BNWVTXCY.js} +7 -7
  19. package/web/assets/{AgentScalarChatInterface.vue-B0YVVvvN.js → AgentScalarChatInterface.vue-ojzSMuCC.js} +3 -3
  20. package/web/assets/AgentTerminalPage-Cf-ymD9E.js +1 -0
  21. package/web/assets/AiChatPage-COFvhaB5.js +1 -0
  22. package/web/assets/AppLayout-YtDku8pN.js +1 -0
  23. package/web/assets/AuditPage-DCVZLRz4.js +1 -0
  24. package/web/assets/CloudAccountPage-BOqt_ByJ.js +1 -0
  25. package/web/assets/CloudAccountPage-ClH4A4t9.js +1 -0
  26. package/web/assets/CloudMessagingPage-BtlnnNf8.js +2 -0
  27. package/web/assets/DashboardPage-BOxdzarH.js +1 -0
  28. package/web/assets/DirectoryPickerDialog-B4MzYK-Y.js +1 -0
  29. package/web/assets/{EditorIcon-BvkHge0W.js → EditorIcon-DAx2QpZA.js} +2 -2
  30. package/web/assets/EnvironmentForm-Cgcc_56Z.js +108 -0
  31. package/web/assets/EnvironmentFormPage-n7m6dJUn.js +1 -0
  32. package/web/assets/EnvironmentListPage-DS6s6UQk.js +1 -0
  33. package/web/assets/KanbanBoardPage-6I4n9kDT.css +1 -0
  34. package/web/assets/KanbanBoardPage-DOvBivfv.js +4 -0
  35. package/web/assets/KanbanListPage-D3xdMHNk.js +1 -0
  36. package/web/assets/KanbanListPage-DgHde06E.css +1 -0
  37. package/web/assets/LaunchProjectPage-BFOzRnGw.js +1 -0
  38. package/web/assets/LaunchServicesPage-D7FmbH2H.js +1 -0
  39. package/web/assets/LogViewer-BbbpNT7v.js +3 -0
  40. package/web/assets/OrgKeyPrompt-BGlTQGBE.js +1 -0
  41. package/web/assets/OrgLogo-DfRefdu8.js +1 -0
  42. package/web/assets/ProcessControls-ByXJUYXz.js +1 -0
  43. package/web/assets/ProcessDetailPage-6q8wgWEP.js +1 -0
  44. package/web/assets/{ProcessMetrics-UeyyEwTI.js → ProcessMetrics-o6TQkXTa.js} +2 -2
  45. package/web/assets/RandomJobTestPage-DuCKCB_n.js +2 -0
  46. package/web/assets/ScenarioEditorPage-ZCVivzeZ.js +14 -0
  47. package/web/assets/SendToChatDialog-CFd1Bubz.js +1 -0
  48. package/web/assets/ServiceControlsBar-B-3OrP1t.js +1 -0
  49. package/web/assets/ServiceDetailPage-Bm53GpUX.js +2 -0
  50. package/web/assets/ServiceFormPage-B5_95jOM.js +1 -0
  51. package/web/assets/SettingsPage-7Thq96Wn.js +2063 -0
  52. package/web/assets/UnlockPage-BXbKs3QZ.js +1 -0
  53. package/web/assets/VaultMigrationPage-h6NgaEOh.js +1 -0
  54. package/web/assets/VersionBadge-Bh8iLmG8.js +1 -0
  55. package/web/assets/WikiPage-BZVFtjfs.js +1 -0
  56. package/web/assets/WikiView-B905tAss.js +1 -0
  57. package/web/assets/add-scalar-classes-DW5rrkrl.js +387 -0
  58. package/web/assets/{autocomplete-CR_eCGsI.js → autocomplete-DxjWjky0.js} +3 -3
  59. package/web/assets/{basic-shape-diamond.svg-DRRq7MrY.js → basic-shape-diamond.svg-JSaiJ46F.js} +1 -1
  60. package/web/assets/{basic-shape-hexagon.svg-CGSaE9pB.js → basic-shape-hexagon.svg-D1-hJiCH.js} +1 -1
  61. package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-DIXa0_Cu.js → basic-shape-primary-circle-ellipse-round.svg-J6Ksp8Xz.js} +1 -1
  62. package/web/assets/{basic-shape-primary-square-rectangle.svg-iZ2jJ4vs.js → basic-shape-primary-square-rectangle.svg-BR-QAok8.js} +1 -1
  63. package/web/assets/{basic-shape-shield.svg-udMt4tB9.js → basic-shape-shield.svg-CmwxzzxD.js} +1 -1
  64. package/web/assets/{browser-BL1DKhyA.js → browser-7cY4kFlm.js} +1 -1
  65. package/web/assets/{browser-Ca9fTyQX.js → browser-Dj-lNKWY.js} +1 -1
  66. package/web/assets/card-DAI9OTkc.js +32 -0
  67. package/web/assets/{checkbox-CyVRoo_U.js → checkbox-Ct1yef0N.js} +3 -3
  68. package/web/assets/{chip-CppGpxiK.js → chip-B9m8EUV4.js} +2 -2
  69. package/web/assets/{client-CUWGHmly.js → client-DULNwlfi.js} +2 -2
  70. package/web/assets/cloud-chat.store-BufYJj6k.js +1 -0
  71. package/web/assets/cloud-client-DH0epluZ.js +1 -0
  72. package/web/assets/cloud-session-BBqRYcsm.js +1 -0
  73. package/web/assets/{cloud-session-DiJ37iee.js → cloud-session-DZ1APEU5.js} +2 -2
  74. package/web/assets/column-D9bX7M3H.js +763 -0
  75. package/web/assets/composables-DtqhVWR-.js +1 -0
  76. package/web/assets/{computer-device-desktop-monitor.svg--DYwduR2.js → computer-device-desktop-monitor.svg-kHhZDrn4.js} +1 -1
  77. package/web/assets/{computer-device-desktop.svg-BBgMbw17.js → computer-device-desktop.svg-CJqmzT8S.js} +1 -1
  78. package/web/assets/{computer-device-laptop.svg-BKpaOUrY.js → computer-device-laptop.svg-DVR2dE1I.js} +1 -1
  79. package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-B59atDnV.js → computer-device-mobile-phone-android-samsung-back.svg-CEgkg7iO.js} +1 -1
  80. package/web/assets/{computer-device-mobile-phone-android-samsung.svg-PrtfIbO2.js → computer-device-mobile-phone-android-samsung.svg-BNd9H2xb.js} +1 -1
  81. package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-CxeWs20w.js → computer-device-mobile-phone-iphone-x-back.svg-C34x7LFE.js} +1 -1
  82. package/web/assets/{computer-device-mobile-phone-iphone-x.svg-jqLPWrzA.js → computer-device-mobile-phone-iphone-x.svg-58jbIuoG.js} +1 -1
  83. package/web/assets/{computer-device-mobile-tablet-touch.svg-R-OkYXde.js → computer-device-mobile-tablet-touch.svg-Do-wo3C-.js} +1 -1
  84. package/web/assets/{computer-device-mobile-tablet.svg-BjISjapY.js → computer-device-mobile-tablet.svg-k9649lm5.js} +1 -1
  85. package/web/assets/{computer-device-network-ethernet-cat6.svg-BXgIO_p5.js → computer-device-network-ethernet-cat6.svg-CHhUrJbo.js} +1 -1
  86. package/web/assets/{computer-device-network-lan-www.svg-B6YGwdqj.js → computer-device-network-lan-www.svg-CtPwhVZ6.js} +1 -1
  87. package/web/assets/{computer-device-network-wifi-connection.svg-CP2V_sTN.js → computer-device-network-wifi-connection.svg-kx5mccFk.js} +1 -1
  88. package/web/assets/{computer-device-network-wifi-router.svg-DRsjg9_P.js → computer-device-network-wifi-router.svg-sZs7A8Cr.js} +1 -1
  89. package/web/assets/{cssMode-MoKLv7g0.js → cssMode-B6unnb3U.js} +1 -1
  90. package/web/assets/{divider-tTW01I5w.js → divider-BnMFAEx6.js} +2 -2
  91. package/web/assets/{docx-preview-unHjZcAR.js → docx-preview-HgFKCX0F.js} +1 -1
  92. package/web/assets/{ecology-science-erlenmeyer-flask.svg-ClOlLMOd.js → ecology-science-erlenmeyer-flask.svg-DOKj5_k1.js} +1 -1
  93. package/web/assets/{fieldset-COorWSfN.js → fieldset-DZnEgPOU.js} +2 -2
  94. package/web/assets/{freemarker2-BOt0hq03.js → freemarker2-Bv0s6UQe.js} +1 -1
  95. package/web/assets/{handlebars-D8wEDhEz.js → handlebars-BTsC4Lqd.js} +1 -1
  96. package/web/assets/{html-Cd-HuUzd.js → html-BARKi29y.js} +1 -1
  97. package/web/assets/{htmlMode-CEdFeFHz.js → htmlMode-fK2j6Ha8.js} +1 -1
  98. package/web/assets/{image-flash-lightning.svg-Cov9ygOk.js → image-flash-lightning.svg-CTaB0hJv.js} +1 -1
  99. package/web/assets/{image-picture-flower.svg-BbDUnQoM.js → image-picture-flower.svg-M6Q_XtAy.js} +1 -1
  100. package/web/assets/{index-DuGh2zls.js → index-DKmDGo1r.js} +367 -367
  101. package/web/assets/{interface-alert-exclamation-diamond.svg-BRhZ0m4M.js → interface-alert-exclamation-diamond.svg-DPTfDSD9.js} +1 -1
  102. package/web/assets/{interface-alert-exclamation-triangle-warning.svg-Bu9LvX_T.js → interface-alert-exclamation-triangle-warning.svg-AWUdZifI.js} +1 -1
  103. package/web/assets/{interface-alert-information-circle.svg-CwNRvmjJ.js → interface-alert-information-circle.svg-BtYZm3zK.js} +1 -1
  104. package/web/assets/{interface-award-crown.svg-E1NdS8hg.js → interface-award-crown.svg-DXu8zQAy.js} +1 -1
  105. package/web/assets/{interface-bookmark.svg-CL6rgPqK.js → interface-bookmark-tag.svg-DEcpMXap.js} +1 -1
  106. package/web/assets/{interface-bookmark-tag.svg-Ds__lzjn.js → interface-bookmark.svg-BVozfFi5.js} +1 -1
  107. package/web/assets/{interface-calendar-date-one.svg-tmYumlI7.js → interface-calendar-date-one.svg-B3qaR9M3.js} +1 -1
  108. package/web/assets/{interface-content-book-open-pages.svg-DYpnsEkk.js → interface-content-book-open-pages.svg-DKEf3Z55.js} +1 -1
  109. package/web/assets/{interface-content-book-page.svg-CBap0-V8.js → interface-content-book-page.svg-D6molfdo.js} +1 -1
  110. package/web/assets/{interface-content-file.svg-BlgJPbn0.js → interface-content-file.svg-CA0q-5Sl.js} +1 -1
  111. package/web/assets/{interface-content-folder.svg-BeIbFS1R.js → interface-content-folder.svg-BztjfhZi.js} +1 -1
  112. package/web/assets/interface-content-folder.svg-DcL7Y965.js +1 -0
  113. package/web/assets/{interface-copy-clipboard.svg-DLEIk_9i.js → interface-copy-clipboard.svg-2_fmAnNV.js} +1 -1
  114. package/web/assets/{interface-edit-attachment.svg-CexUURep.js → interface-edit-attachment.svg-Cb_upeaG.js} +1 -1
  115. package/web/assets/{interface-edit-binocular.svg-Bcp0m6XR.js → interface-edit-binocular.svg-CCEAT7W8.js} +1 -1
  116. package/web/assets/{interface-edit-magic-wand.svg--lUaWOkl.js → interface-edit-magic-wand.svg-BeJ11Pji.js} +1 -1
  117. package/web/assets/{interface-edit-tool-paint-roller.svg-CJI14pct.js → interface-edit-tool-paint-roller.svg-BGiy8YPn.js} +1 -1
  118. package/web/assets/{interface-edit-tool-pencil.svg-CokeKrld.js → interface-edit-tool-pencil.svg-BOMoeGAt.js} +1 -1
  119. package/web/assets/{interface-favorite-award.svg-Dj9jP_IB.js → interface-favorite-award.svg-qHoFebiY.js} +1 -1
  120. package/web/assets/{interface-favorite-flag.svg-DbctAxtG.js → interface-favorite-flag.svg-D9gpkTJz.js} +1 -1
  121. package/web/assets/{interface-favorite-heart.svg-Yhn6VUZb.js → interface-favorite-heart.svg-COMUv1Uh.js} +1 -1
  122. package/web/assets/{interface-favorite-star.svg-C4RblO3r.js → interface-favorite-star.svg-BsK5YVEB.js} +1 -1
  123. package/web/assets/{interface-favorite-stars-sparkles.svg-D86ge-kp.js → interface-favorite-stars-sparkles.svg-DevgE082.js} +1 -1
  124. package/web/assets/{interface-hierarchy-flowchart.svg-4vpVa0LC.js → interface-hierarchy-flowchart.svg-C1dfAizc.js} +1 -1
  125. package/web/assets/{interface-home-house.svg-CKqrr_vH.js → interface-home-house.svg-LAWGxZwm.js} +1 -1
  126. package/web/assets/{interface-hyperlink.svg-BziyYL-h.js → interface-hyperlink.svg-DKfSIKhS.js} +1 -1
  127. package/web/assets/{interface-lighting-brightness.svg-DLhkAeot.js → interface-lighting-brightness.svg-CvWZXBko.js} +1 -1
  128. package/web/assets/{interface-lock-closed.svg-BqMSDpjQ.js → interface-lock-closed.svg-DUT5D0je.js} +1 -1
  129. package/web/assets/{interface-lock-open-unlock.svg-B0anVo0z.js → interface-lock-open-unlock.svg-Cw8kzQQh.js} +1 -1
  130. package/web/assets/{interface-login-key.svg-CksFuOna.js → interface-login-key.svg-Bkp-rHPU.js} +1 -1
  131. package/web/assets/{interface-search.svg-BKOu9tUw.js → interface-search.svg-hG5ogu9p.js} +1 -1
  132. package/web/assets/{interface-setting-cog.svg-D_3dXTZ-.js → interface-setting-cog.svg-BcPVq1LR.js} +1 -1
  133. package/web/assets/{interface-share-megaphone-bullhorn.svg-Dn4gF0hH.js → interface-share-megaphone-bullhorn.svg-M4niyPv3.js} +1 -1
  134. package/web/assets/{interface-share-rocket.svg-cm2iZyhA.js → interface-share-rocket.svg-BcPOpoTR.js} +1 -1
  135. package/web/assets/{interface-share-satellite.svg-CGcTcWwZ.js → interface-share-satellite.svg-x1KDlm6g.js} +1 -1
  136. package/web/assets/{interface-share-space-ship.svg-DZVVyCQA.js → interface-share-space-ship.svg-BfNSdNDO.js} +1 -1
  137. package/web/assets/{interface-share.svg-CmI-JZ5u.js → interface-share.svg-C97BmuMY.js} +1 -1
  138. package/web/assets/{interface-signal-square.svg-B5YnBkid.js → interface-signal-square.svg-DWd44JJH.js} +1 -1
  139. package/web/assets/{interface-time-clock-circle.svg-LEl6S2p_.js → interface-time-clock-circle.svg-DlY-_Hwt.js} +1 -1
  140. package/web/assets/{interface-time-hour-glass.svg-SRS0fEgq.js → interface-time-hour-glass.svg-C2a691O4.js} +1 -1
  141. package/web/assets/{interface-users-multiple.svg-BrzA58gN.js → interface-users-multiple.svg-gNDhDRlp.js} +1 -1
  142. package/web/assets/{interface-weather-moon.svg-Dcj5tIZe.js → interface-weather-moon.svg-D7eISmrq.js} +1 -1
  143. package/web/assets/{javascript-BW4o2_xP.js → javascript-8VolDNmb.js} +1 -1
  144. package/web/assets/{jsonMode-BNu5tj2Z.js → jsonMode-D6awqTaJ.js} +2 -2
  145. package/web/assets/{liquid-DhgTTELV.js → liquid-TTMHEa9a.js} +1 -1
  146. package/web/assets/{lspLanguageFeatures-Cb2BAAKm.js → lspLanguageFeatures-UVF6GLcv.js} +3 -3
  147. package/web/assets/{mail-chat-bubble-square.svg-CqruhAnJ.js → mail-chat-bubble-square.svg-DjreUXqw.js} +1 -1
  148. package/web/assets/{mail-send-email-paper-airplane.svg-tWiaK3cO.js → mail-send-email-paper-airplane.svg-BcyYVqIq.js} +1 -1
  149. package/web/assets/{mail-send-envelope.svg-CqrtM0XJ.js → mail-send-envelope.svg-BGg0186G.js} +1 -1
  150. package/web/assets/{mdx-Bp8ONtDZ.js → mdx-CoSOx_u6.js} +1 -1
  151. package/web/assets/{minus-DuN34HOQ.js → minus-DKbcHNVU.js} +2 -2
  152. package/web/assets/modal-C44iufem.js +1 -0
  153. package/web/assets/modal-DziAnw0E.js +5 -0
  154. package/web/assets/{money-cashier-receipt.svg-CZ_Q0Q4o.js → money-cashier-receipt.svg-xin2Q2jV.js} +1 -1
  155. package/web/assets/{money-currency-dollar-pay.svg-DX3XI8z3.js → money-currency-dollar-pay.svg-CuVghNG0.js} +1 -1
  156. package/web/assets/{money-graph-arrow-increase.svg-yfLkQUyA.js → money-graph-arrow-increase.svg-CW-ESaRb.js} +1 -1
  157. package/web/assets/{money-graph-bar-chart-increase.svg-BMZJcFWk.js → money-graph-bar-chart-increase.svg-Ds63Ij9u.js} +1 -1
  158. package/web/assets/multiselect-EBj2jpFx.js +251 -0
  159. package/web/assets/{nature-ecology-leaf.svg-DxbzYJY4.js → nature-ecology-leaf.svg-CROyMuJ6.js} +1 -1
  160. package/web/assets/{password-DFZGcIGP.js → password-M6cvez26.js} +4 -4
  161. package/web/assets/{phone-telephone.svg-DRXuirGY.js → phone-telephone.svg-ldFh2DtT.js} +1 -1
  162. package/web/assets/{plus-DxhL7qLp.js → plus-B-HO9RRD.js} +6 -6
  163. package/web/assets/process.store-BLYbO6Uf.js +1 -0
  164. package/web/assets/{programming-bug.svg-DLJ1_rax.js → programming-bug.svg-Bi-5bVtZ.js} +1 -1
  165. package/web/assets/{programming-cloud.svg-D3IiMlPE.js → programming-cloud.svg-BfsVdIyf.js} +1 -1
  166. package/web/assets/{programming-computer-database-server.svg-Cg6_ED_k.js → programming-computer-database-server.svg-CGxQu1SC.js} +1 -1
  167. package/web/assets/{programming-computer-database.svg-B6UWnlR4.js → programming-computer-database.svg-B5TrOmSA.js} +1 -1
  168. package/web/assets/{programming-module-four-layout.svg-B77nd1oh.js → programming-module-four-layout.svg-CX306feB.js} +1 -1
  169. package/web/assets/{programming-module-three.svg-_s2kek9L.js → programming-module-three.svg-fIUP0jIs.js} +1 -1
  170. package/web/assets/{programming-module.svg-CstGeUDE.js → programming-module.svg-BaFMsOL8.js} +1 -1
  171. package/web/assets/{programming-script-code.svg-B-lq_RAX.js → programming-script-code.svg-asPax4Jv.js} +1 -1
  172. package/web/assets/project-launch.store-cRctADnj.js +1 -0
  173. package/web/assets/project.store-BIHP84Mj.js +1 -0
  174. package/web/assets/{python-C9hs9gvr.js → python-B2HQyLbu.js} +1 -1
  175. package/web/assets/{radiobutton-CQFYp-dZ.js → radiobutton-E9JzQOQ_.js} +2 -2
  176. package/web/assets/{razor-BbhaCtvg.js → razor-chfLPaZ5.js} +1 -1
  177. package/web/assets/router-CgLDvz4F.js +1 -0
  178. package/web/assets/selectbutton-BSfIGLAd.js +164 -0
  179. package/web/assets/settings-scope-E-kRs7p5.js +1 -0
  180. package/web/assets/settings.store-DdANKt-l.js +1 -0
  181. package/web/assets/{shopping-cart.svg-C-WSRLiX.js → shopping-cart.svg-CE-hccE4.js} +1 -1
  182. package/web/assets/{shopping-gift-present.svg-Dh47_KD3.js → shopping-gift-present.svg-DcDsxpbS.js} +1 -1
  183. package/web/assets/{shopping-shipping-box-parcel-package.svg-BTvEyPW5.js → shopping-shipping-box-parcel-package.svg-B-Hce7Vg.js} +1 -1
  184. package/web/assets/src-BCom7Av8.js +2527 -0
  185. package/web/assets/src-CDO5h8Fg.js +1 -0
  186. package/web/assets/src-DkRsN6ug.css +1 -0
  187. package/web/assets/{tabpanel-B4bmmOWW.js → tabpanel-opi-GyXj.js} +3 -3
  188. package/web/assets/{tag-new-circle.svg--CymwbQA.js → tag-new-circle.svg-CAAIvApW.js} +1 -1
  189. package/web/assets/theme-7Rf1Y25Z.js +1 -0
  190. package/web/assets/{toggleswitch-j4QSxoFG.js → toggleswitch-CXZN5FrU.js} +2 -2
  191. package/web/assets/{travel-map-earth-globe.svg-DNOAckKS.js → travel-map-earth-globe.svg-_I9aKmKu.js} +1 -1
  192. package/web/assets/trpc-D26KI2Tc.js +1 -0
  193. package/web/assets/{tsMode-D--LrAcs.js → tsMode-Cis8_e0R.js} +6 -6
  194. package/web/assets/{typescript-zukD_IUF.js → typescript-DwoucjlL.js} +1 -1
  195. package/web/assets/useAiChatDrawer-DMkDsZjG.js +1 -0
  196. package/web/assets/{useCloudOrg-Bd83ZcEV.js → useCloudOrg-DSETGvJK.js} +1 -1
  197. package/web/assets/useEnvVarAutocomplete-SpekLSMv.js +1 -0
  198. package/web/assets/{useProjectCatalog-CnGHIrnh.js → useProjectCatalog-DDZXnSWD.js} +1 -1
  199. package/web/assets/useProjectCloudOrg-Dg9jETJH.js +1 -0
  200. package/web/assets/useServiceUrlHost-BhfsTBGb.js +1 -0
  201. package/web/assets/{xml-BByACKzS.js → xml-D6t1pRy0.js} +1 -1
  202. package/web/assets/{yaml-CqWwUUQq.js → yaml-DAzbEAMy.js} +1 -1
  203. package/web/index.html +1 -1
  204. package/chunk-DTWP3CFL.js.map +0 -1
  205. package/web/assets/AgentTerminalPage-25hg27t9.js +0 -1
  206. package/web/assets/AiChatPage-C34J4RQh.js +0 -1
  207. package/web/assets/AppLayout-Cq7es4tN.js +0 -1
  208. package/web/assets/AuditPage-Ctf0zyMz.js +0 -1
  209. package/web/assets/CloudAccountPage-CH5UJiew.js +0 -1
  210. package/web/assets/CloudAccountPage-DUCeHm0n.js +0 -1
  211. package/web/assets/CloudMessagingPage-iGdZy0rP.js +0 -2
  212. package/web/assets/DashboardPage-DCMfg5Vz.js +0 -164
  213. package/web/assets/DirectoryPickerDialog-BlFmkPJx.js +0 -1
  214. package/web/assets/EnvironmentForm-DtgwWpcp.js +0 -108
  215. package/web/assets/EnvironmentFormPage-Y33vtDkS.js +0 -1
  216. package/web/assets/EnvironmentListPage-Dwv_amSf.js +0 -1
  217. package/web/assets/KanbanBoardPage-BYIWTYy2.js +0 -4
  218. package/web/assets/KanbanBoardPage-fEP3w_nz.css +0 -1
  219. package/web/assets/KanbanListPage-C_zN70Af.css +0 -1
  220. package/web/assets/KanbanListPage-CtnTArkW.js +0 -1
  221. package/web/assets/LaunchProjectPage-BGtCnkQf.js +0 -1
  222. package/web/assets/LaunchServicesPage-QDcpXeHP.js +0 -1
  223. package/web/assets/LogViewer-5fy2mcac.js +0 -3
  224. package/web/assets/OrgKeyPrompt-CRf1ZPik.js +0 -1
  225. package/web/assets/OrgLogo-D9q7M1ZF.js +0 -1
  226. package/web/assets/ProcessControls-B5dlAAdP.js +0 -1
  227. package/web/assets/ProcessDetailPage-TwjrHkz3.js +0 -1
  228. package/web/assets/RandomJobTestPage-DcIJekvc.js +0 -2
  229. package/web/assets/ScenarioEditorPage-midPg1W3.js +0 -14
  230. package/web/assets/SendToChatDialog-DakT4QK8.js +0 -1
  231. package/web/assets/ServiceControlsBar-HsErHmCH.js +0 -1
  232. package/web/assets/ServiceDetailPage-FJBxkdMy.js +0 -2
  233. package/web/assets/ServiceFormPage-DHjdAmr3.js +0 -1
  234. package/web/assets/SettingsPage-CONd8aJV.js +0 -2063
  235. package/web/assets/UnlockPage-CyZyhxYj.js +0 -1
  236. package/web/assets/VaultMigrationPage-B2WI7Dzf.js +0 -1
  237. package/web/assets/VersionBadge-D3kiloE4.js +0 -1
  238. package/web/assets/WikiPage-DE2tV5jr.js +0 -1
  239. package/web/assets/WikiView-DnWD_aWz.js +0 -1
  240. package/web/assets/add-scalar-classes-BBBoFX1O.js +0 -387
  241. package/web/assets/card-BQ1OXNVV.js +0 -32
  242. package/web/assets/cloud-chat.store-BKPvf-qg.js +0 -1
  243. package/web/assets/cloud-client-CBVMvTSV.js +0 -1
  244. package/web/assets/cloud-session-CwER2D6K.js +0 -1
  245. package/web/assets/column-BYul0pb1.js +0 -763
  246. package/web/assets/interface-content-folder.svg-CA903hwo.js +0 -1
  247. package/web/assets/modal-B0sbJ1aj.js +0 -1
  248. package/web/assets/modal-BG9tDOui.js +0 -5
  249. package/web/assets/multiselect-Bc92p6F4.js +0 -251
  250. package/web/assets/process.store-C8_fnIq8.js +0 -1
  251. package/web/assets/project-launch.store-QC8bDuyn.js +0 -1
  252. package/web/assets/project.store-l1aYnXxi.js +0 -1
  253. package/web/assets/router-BDTUFmtt.js +0 -1
  254. package/web/assets/settings-scope-B8h36UCK.js +0 -1
  255. package/web/assets/settings.store-Dvjzyya-.js +0 -1
  256. package/web/assets/src-4vjUWqdr.js +0 -572
  257. package/web/assets/src-BeueTtBP.js +0 -1
  258. package/web/assets/src-D0YRjz1F.css +0 -1
  259. package/web/assets/theme-DqQhDGPs.js +0 -1
  260. package/web/assets/trpc-CN8Zl82m.js +0 -1
  261. package/web/assets/useAiChatDrawer-YShY7nZu.js +0 -1
  262. package/web/assets/useEnvVarAutocomplete-BcVa9mel.js +0 -1
  263. package/web/assets/useProjectCloudOrg-DL8Wyd1i.js +0 -1
  264. package/web/assets/useServiceUrlHost-DIEqEQRR.js +0 -1
  265. /package/{agent-manager-VFUO7WQG.js.map → agent-manager-GFRVUJSI.js.map} +0 -0
  266. /package/{chat-GB2UJ5KB.js.map → chat-6ETYBINN.js.map} +0 -0
  267. /package/{chunk-KQ462M3Y.js.map → chunk-J2L6VONF.js.map} +0 -0
  268. /package/{chunk-X2PJIJU7.js.map → chunk-K2KSZRSI.js.map} +0 -0
  269. /package/{chunk-ZGEV53KH.js.map → chunk-RDE3X3J4.js.map} +0 -0
  270. /package/{chunk-KNAM5H2Z.js.map → chunk-TTJNHZ6U.js.map} +0 -0
  271. /package/{companion-XBCHHK4Z.js.map → companion-SH4HLD6G.js.map} +0 -0
  272. /package/{desktop-launcher-SLNYXW22.js.map → desktop-launcher-7UZF7PFH.js.map} +0 -0
  273. /package/{settings-manager-YGIIRWVY.js.map → settings-manager-XD6U4QN3.js.map} +0 -0
  274. /package/{src-WK5KI3IO.js.map → src-BNWVTXCY.js.map} +0 -0
  275. /package/web/assets/{abap-B8g_2xYy.js → abap-BMzrySmF.js} +0 -0
  276. /package/web/assets/{apex-Bm8w4T5A.js → apex-B-FTsm78.js} +0 -0
  277. /package/web/assets/{azcli-BqdUW6F8.js → azcli--oTP982j.js} +0 -0
  278. /package/web/assets/{bat-Bngf0lQU.js → bat-BoGrdVjd.js} +0 -0
  279. /package/web/assets/{bicep-DzO554JS.js → bicep-CzjrcFxJ.js} +0 -0
  280. /package/web/assets/{browser-BJX5ZrVN.js → browser-TSICzjSV.js} +0 -0
  281. /package/web/assets/{cameligo-Bcy3ohdb.js → cameligo-C5PP9BK8.js} +0 -0
  282. /package/web/assets/{clojure-CZbiqkDV.js → clojure-CQZ7UtVM.js} +0 -0
  283. /package/web/assets/{coffee-CDuhyV-7.js → coffee-D04oxsa9.js} +0 -0
  284. /package/web/assets/{cpp-BklV8f4x.js → cpp-CrdHZict.js} +0 -0
  285. /package/web/assets/{csharp-BelR_XiC.js → csharp-DEojCdJ9.js} +0 -0
  286. /package/web/assets/{csp-DUjeBS2K.js → csp-B_k4_rnT.js} +0 -0
  287. /package/web/assets/{css-CvbYbEko.js → css-pkVaNQ-t.js} +0 -0
  288. /package/web/assets/{cypher-Dwrbk-SP.js → cypher-InDI0ycO.js} +0 -0
  289. /package/web/assets/{dart-BW1E5h9O.js → dart-CMBDu6Jq.js} +0 -0
  290. /package/web/assets/{dockerfile-B41ilpF9.js → dockerfile-Dus6X0qp.js} +0 -0
  291. /package/web/assets/{ecl-BZE6Vxna.js → ecl-DcGwRpWZ.js} +0 -0
  292. /package/web/assets/{elixir-CtYg0bLh.js → elixir-BNgAfgpS.js} +0 -0
  293. /package/web/assets/{flow9-Sgvy48_I.js → flow9-b9BSTtId.js} +0 -0
  294. /package/web/assets/{fsharp-BzAfXfKg.js → fsharp-DsEl3ylC.js} +0 -0
  295. /package/web/assets/{go-D7oonABu.js → go-BVk-2zoJ.js} +0 -0
  296. /package/web/assets/{graphql-BEN-qkl0.js → graphql-CCOPKJOV.js} +0 -0
  297. /package/web/assets/{hcl-CE0OhwCq.js → hcl-Bk9fje7b.js} +0 -0
  298. /package/web/assets/{ini-CCLtcvjA.js → ini-Bfgwaf--.js} +0 -0
  299. /package/web/assets/{java-Bao8w_gp.js → java-X9tlBUoe.js} +0 -0
  300. /package/web/assets/{julia-Dr0hFYrl.js → julia-CSpUiZse.js} +0 -0
  301. /package/web/assets/{kotlin-Cbfu8lcM.js → kotlin-D9ZC3fV-.js} +0 -0
  302. /package/web/assets/{less-BU4gEpXr.js → less-D_gN2wJJ.js} +0 -0
  303. /package/web/assets/{lexon-GpBGGdTS.js → lexon-DQORBJ3L.js} +0 -0
  304. /package/web/assets/{lua-DIPKk37y.js → lua-cfsK9g-g.js} +0 -0
  305. /package/web/assets/{m3-CSOypKGf.js → m3-CqoRZqX5.js} +0 -0
  306. /package/web/assets/{markdown-VDqAgkyM.js → markdown-7m0w-Hon.js} +0 -0
  307. /package/web/assets/{mips-BJWI6dX7.js → mips-Jgck3TtW.js} +0 -0
  308. /package/web/assets/{msdax-BLpuE5Dc.js → msdax-DZzPcvtl.js} +0 -0
  309. /package/web/assets/{mysql-ZsxiEUoY.js → mysql-BDgvhBkY.js} +0 -0
  310. /package/web/assets/{objective-c-DcQa1iPc.js → objective-c-s7vO3TPA.js} +0 -0
  311. /package/web/assets/{pascal-u-hmXdyn.js → pascal-WgQqmw9E.js} +0 -0
  312. /package/web/assets/{pascaligo-DqbP-1C6.js → pascaligo-DdIoMHxz.js} +0 -0
  313. /package/web/assets/{perl-CUeQpRkH.js → perl-DscrjHeC.js} +0 -0
  314. /package/web/assets/{pgsql-CQ7FhAFN.js → pgsql-BoaUrFoQ.js} +0 -0
  315. /package/web/assets/{php-BEf_fu3E.js → php-CozsHsln.js} +0 -0
  316. /package/web/assets/{pla-CXNNbT0w.js → pla-BmgIF2rB.js} +0 -0
  317. /package/web/assets/{postiats-CIXLZwPb.js → postiats-kTIQO6-c.js} +0 -0
  318. /package/web/assets/{powerquery-DnGPASFA.js → powerquery-Bge8QN2f.js} +0 -0
  319. /package/web/assets/{powershell-1Y1kqIZS.js → powershell-C_EAICI2.js} +0 -0
  320. /package/web/assets/{protobuf-Cfo9haoG.js → protobuf-CeVRf2v4.js} +0 -0
  321. /package/web/assets/{pug-BujEZqmy.js → pug-v3OQoW7_.js} +0 -0
  322. /package/web/assets/{qsharp-BL9AqNGD.js → qsharp-B8FD4CzE.js} +0 -0
  323. /package/web/assets/{r-D0dhpGOM.js → r-DoTn9Ot2.js} +0 -0
  324. /package/web/assets/{redis-BMLwD7W9.js → redis-B9eZmNDt.js} +0 -0
  325. /package/web/assets/{redshift-CkHh73og.js → redshift-hkVOq3Na.js} +0 -0
  326. /package/web/assets/{restructuredtext-DZ-LF65W.js → restructuredtext-go0p3fHP.js} +0 -0
  327. /package/web/assets/{ruby-UzPHTzc9.js → ruby-DlJSZQx7.js} +0 -0
  328. /package/web/assets/{rust-ja9NGnXZ.js → rust-CS0ULEAB.js} +0 -0
  329. /package/web/assets/{sb-BNdOJbMY.js → sb-BWXLY6C5.js} +0 -0
  330. /package/web/assets/{scala-LlhkyN6l.js → scala-BnuniK5f.js} +0 -0
  331. /package/web/assets/{scheme-BAj99YIn.js → scheme-rpzgzOI1.js} +0 -0
  332. /package/web/assets/{scss-chS-xxB3.js → scss-CDZa-oHG.js} +0 -0
  333. /package/web/assets/{shared-sse-_VzlL_VX.js → shared-sse-DUHeXaFO.js} +0 -0
  334. /package/web/assets/{shell-CcH7eYIc.js → shell-Ddbp1LTu.js} +0 -0
  335. /package/web/assets/{solidity-cVvnqX-K.js → solidity-XL5oY4Gs.js} +0 -0
  336. /package/web/assets/{sophia-BBT-EdFw.js → sophia-C_FAm0DW.js} +0 -0
  337. /package/web/assets/{sparql-DGEqOrB6.js → sparql-Bkcu5lIB.js} +0 -0
  338. /package/web/assets/{sql-CcTErTxM.js → sql-hd2WP_Pl.js} +0 -0
  339. /package/web/assets/{st-Bjw-B4mN.js → st-DX23wqhB.js} +0 -0
  340. /package/web/assets/{swift-Bid-7bBd.js → swift-Uc9uURgY.js} +0 -0
  341. /package/web/assets/{systemverilog-CXju7Nd-.js → systemverilog-uwEj3oP7.js} +0 -0
  342. /package/web/assets/{tcl-D-Dw7JFz.js → tcl-CW0gNQFo.js} +0 -0
  343. /package/web/assets/{twig-BIPbzEWT.js → twig-C-fOaHGU.js} +0 -0
  344. /package/web/assets/{typespec-UJSutGCV.js → typespec-Cs66OMeg.js} +0 -0
  345. /package/web/assets/{uuid-Cro0aJm3.js → uuid-hYISTbX6.js} +0 -0
  346. /package/web/assets/{vb-oyG_LJw0.js → vb-f4DjbovN.js} +0 -0
  347. /package/web/assets/{wgsl-DXZ6ljB6.js → wgsl-D8hs7PJh.js} +0 -0
@@ -1 +0,0 @@
1
- import{$n as e,$t as t,A as n,Bi as r,Da as i,Dn as a,Fa as o,Gi as s,Ii as c,Jn as l,L as u,La as d,Li as f,M as p,Ma as m,Ni as h,Nn as g,On as _,Pn as v,Qt as y,Ra as b,Ri as x,Rn as S,Wi as C,Ya as w,Yn as T,Zt as E,_n as D,_r as O,b as k,bn as A,br as j,dr as M,dt as N,en as P,er as F,et as I,fa as L,fr as R,ga as z,gr as B,io as V,ja as H,ji as U,ki as ee,l as te,m as W,ma as G,mt as ne,o as K,p as re,qi as q,ra as J,t as ie,tn as Y,tt as ae,u as oe,ua as se,un as ce,ur as le,va as ue,vr as de,wt as fe,xn as X,xr as Z,ya as pe,yi as me,yn as he,yr as ge,zi as Q}from"./index-DuGh2zls.js";import{r as _e}from"./cloud-session-DiJ37iee.js";import"./src-BeueTtBP.js";import{n as ve,t as ye}from"./cloud-chat.store-BKPvf-qg.js";import{t as be}from"./EditorIcon-BvkHge0W.js";import{t as xe}from"./useServiceUrlHost-DIEqEQRR.js";import"./ProcessControls-B5dlAAdP.js";import{t as Se}from"./ServiceControlsBar-HsErHmCH.js";import{t as Ce}from"./OrgKeyPrompt-CRf1ZPik.js";import{t as we}from"./useProjectCatalog-CnGHIrnh.js";import{t as Te}from"./OrgLogo-D9q7M1ZF.js";import{n as Ee,r as De,t as Oe}from"./DirectoryPickerDialog-BlFmkPJx.js";var ke={class:`service-sidebar__header`},Ae={class:`service-sidebar__search`},je={class:`p-input-icon-left service-sidebar__search-wrapper`},Me={class:`service-sidebar__list`},Ne=[`draggable`,`onClick`,`onDragstart`,`onDragover`,`onDrop`],Pe={class:`service-sidebar__group-label`},Fe={class:`service-sidebar__group-badges`},Ie=[`title`],Le=[`title`],Re=[`title`],ze={class:`service-sidebar__group-count`},Be={class:`service-sidebar__group-items`},Ve=[`onClick`],He={key:0,class:`pi pi-exclamation-triangle service-sidebar__status service-sidebar__status--error`},Ue=[`title`],We=[`title`],Ge=[`title`],Ke={key:4,class:`pi pi-circle-fill service-sidebar__status service-sidebar__status--running`},qe={key:5,class:`pi pi-spin pi-spinner service-sidebar__status service-sidebar__status--starting`},Je={key:6,class:`pi pi-circle service-sidebar__status service-sidebar__status--stopped`},Ye={class:`service-sidebar__item-name`},Xe={key:0,class:`service-sidebar__empty`},Ze={key:1,class:`service-sidebar__empty`},$=`__all__`,Qe=T(q({__name:`ServiceSidebar`,props:{selectedServiceId:{},collapsed:{type:Boolean},activeProjectId:{},activeOrgId:{},portrait:{type:Boolean},width:{},resizing:{type:Boolean}},emits:[`select-service`,`add-service`,`toggle-collapse`],setup(t,{emit:n}){let a=t,l=c(()=>{if(!(a.collapsed||a.portrait||!a.width))return{width:`${a.width}px`,minWidth:`${a.width}px`}}),u=n,{t:p}=Z(),g=E(),v=ne(),y=re(),x=w(``),S=c(()=>a.activeProjectId?g.getByRef({id:a.activeProjectId,orgId:a.activeOrgId}):null),T=c(()=>{let e=x.value.toLowerCase();if(!S.value)return[];let t=v.getByIds(S.value.serviceIds).filter(t=>!e||t.name.toLowerCase().includes(e)),n={errored:0,running:1,starting:2};return t.sort((e,t)=>{let r=W(e.id),i=W(t.id),a=r!==null&&r in n?n[r]:9,o=i!==null&&i in n?n[i]:9;if(a!==o)return a-o;let s=e=>e.trim().replace(/[^a-zA-Z0-9\s]/g,``).toLowerCase();return s(e.name).localeCompare(s(t.name))})}),D=c(()=>{let e=new Map;for(let t of T.value){let n=t.groups&&t.groups.length>0?t.groups:[$];for(let r of n){let n=e.get(r);n?n.push(t):e.set(r,[t])}}let t=S.value?.groupOrder??[],n=e=>{let n=t.indexOf(e);return n===-1?2**53-1:n},r=[...e.entries()].filter(([e])=>e!==$).sort(([e],[t])=>{let r=n(e),i=n(t);return r===i?e.localeCompare(t):r-i}).map(([e,t])=>({key:e,label:e,services:t,counts:B(t)})),i=e.get($);return i&&i.length>0&&r.push({key:$,label:p(`serviceSidebar.defaultGroup`),services:i,counts:B(i)}),r});function O(e,t){return`runeya.serviceSidebar.collapsedGroups.${e??`local`}:${t}`}function k(e,t){if(!t)return new Set;try{let n=localStorage.getItem(O(e,t));if(!n)return new Set;let r=JSON.parse(n);return Array.isArray(r)?new Set(r.filter(e=>typeof e==`string`)):new Set}catch{return new Set}}let A=w(k(a.activeOrgId,a.activeProjectId));i(()=>[a.activeOrgId,a.activeProjectId],([e,t])=>{A.value=k(e,t)});function j(){if(a.activeProjectId)try{localStorage.setItem(O(a.activeOrgId,a.activeProjectId),JSON.stringify([...A.value]))}catch{}}function M(e){let t=new Set(A.value);t.has(e)?t.delete(e):t.add(e),A.value=t,j()}let N=w(null),P=w(null);function F(e,t){if(e===$){t.preventDefault();return}N.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(`text/plain`,e))}function I(e,t){!N.value||e===$||e===N.value||(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`),P.value=e)}function L(e){let t=N.value;if(N.value=null,P.value=null,!t||e===$||t===e||!S.value)return;let n=D.value.map(e=>e.key).filter(e=>e!==$),r=n.indexOf(t),i=n.indexOf(e);r===-1||i===-1||(n.splice(r,1),n.splice(i,0,t),g.updateGroupOrder(S.value,n))}function R(){N.value=null,P.value=null}function B(e){let t=0,n=0,r=0;for(let i of e){let e=W(i.id);if(e===`errored`)t++;else if(e===`running`){let e=K(i.id);e.hasHealthCheck&&e.status===`healthy`?n++:r++}}return{errored:t,healthy:n,running:r}}let H=w({});function U(e,t){t?H.value[e]=t:delete H.value[e]}async function te(){if(!a.selectedServiceId)return;await J();let e=H.value[a.selectedServiceId];e&&e.scrollIntoView({block:`nearest`,behavior:`smooth`})}i(T,te),i(()=>a.selectedServiceId,te);function W(e){let t=y.getByService(e);return!t||t.length===0?null:t.some(e=>e.state===`errored`)?`errored`:t.some(e=>e.state===`running`)?`running`:t.some(e=>e.state===`starting`)?`starting`:`stopped`}function K(e){if(!v.getById(e)?.healthCheck)return{hasHealthCheck:!1,status:null};let t=y.getByService(e);return!t||t.length===0?{hasHealthCheck:!0,status:null}:t.some(e=>e.healthStatus===`unhealthy`)?{hasHealthCheck:!0,status:`unhealthy`}:t.every(e=>e.healthStatus===`healthy`)?{hasHealthCheck:!0,status:`healthy`}:{hasHealthCheck:!0,status:`unknown`}}return(n,i)=>(G(),r(h,null,[t.portrait&&!t.collapsed?(G(),r(`div`,{key:0,class:`service-sidebar__backdrop`,onClick:i[0]||=e=>u(`toggle-collapse`)})):Q(``,!0),f(`aside`,{class:o([`service-sidebar`,{"service-sidebar--collapsed":t.collapsed,"service-sidebar--portrait":t.portrait,"service-sidebar--resizing":t.resizing}]),style:d(l.value)},[t.collapsed?Q(``,!0):(G(),r(h,{key:0},[f(`div`,ke,[s(V(e),{icon:`pi pi-plus`,label:V(p)(`serviceSidebar.addService`),outlined:``,size:`small`,class:`service-sidebar__add-btn`,onClick:i[1]||=e=>u(`add-service`)},null,8,[`label`])]),f(`div`,Ae,[f(`span`,je,[i[3]||=f(`i`,{class:`pi pi-search`},null,-1),s(V(_),{modelValue:x.value,"onUpdate:modelValue":i[2]||=e=>x.value=e,placeholder:V(p)(`serviceSidebar.searchPlaceholder`),size:`small`,class:`service-sidebar__search-input`},null,8,[`modelValue`,`placeholder`])])]),f(`div`,Me,[(G(!0),r(h,null,z(D.value,e=>(G(),r(`div`,{key:e.key,class:o([`service-sidebar__group`,{"service-sidebar__group--dragover":P.value===e.key}])},[f(`button`,{class:o([`service-sidebar__group-header`,{"service-sidebar__group-header--dragging":N.value===e.key}]),draggable:e.key!==$,onClick:t=>M(e.key),onDragstart:t=>F(e.key,t),onDragover:t=>I(e.key,t),onDrop:t=>L(e.key),onDragend:R},[f(`i`,{class:o(A.value.has(e.key)?`pi pi-chevron-right`:`pi pi-chevron-down`)},null,2),f(`span`,Pe,b(e.label),1),f(`span`,Fe,[e.counts.errored?(G(),r(`span`,{key:0,class:`service-sidebar__group-badge`,title:V(p)(`serviceSidebar.badgeErrored`)},[i[4]||=f(`i`,{class:`pi pi-exclamation-triangle service-sidebar__status--error`},null,-1),C(` `+b(e.counts.errored),1)],8,Ie)):Q(``,!0),e.counts.healthy?(G(),r(`span`,{key:1,class:`service-sidebar__group-badge`,title:V(p)(`serviceSidebar.badgeHealthy`)},[i[5]||=f(`i`,{class:`pi pi-heart-fill service-sidebar__status--healthy`},null,-1),C(` `+b(e.counts.healthy),1)],8,Le)):Q(``,!0),e.counts.running?(G(),r(`span`,{key:2,class:`service-sidebar__group-badge`,title:V(p)(`serviceSidebar.badgeRunning`)},[i[6]||=f(`i`,{class:`pi pi-circle-fill service-sidebar__status--running`},null,-1),C(` `+b(e.counts.running),1)],8,Re)):Q(``,!0)]),f(`span`,ze,b(e.services.length),1)],42,Ne),m(f(`div`,Be,[(G(!0),r(h,null,z(e.services,e=>(G(),r(`button`,{key:e.id,ref_for:!0,ref:t=>U(e.id,t),class:o([`service-sidebar__item`,{"service-sidebar__item--active":t.selectedServiceId===e.id,"service-sidebar__item--inactive":!W(e.id)||W(e.id)===`stopped`}]),onClick:n=>{u(`select-service`,e.id),t.portrait&&u(`toggle-collapse`)}},[W(e.id)===`errored`?(G(),r(`i`,He)):W(e.id)===`running`&&K(e.id).hasHealthCheck&&K(e.id).status===`healthy`?(G(),r(`i`,{key:1,class:`pi pi-heart-fill service-sidebar__status service-sidebar__status--healthy`,title:V(p)(`serviceSidebar.healthHealthy`)},null,8,Ue)):W(e.id)===`running`&&K(e.id).hasHealthCheck&&K(e.id).status===`unhealthy`?(G(),r(`i`,{key:2,class:`pi pi-heart-fill service-sidebar__status service-sidebar__status--unhealthy`,title:V(p)(`serviceSidebar.healthUnhealthy`)},null,8,We)):W(e.id)===`running`&&K(e.id).hasHealthCheck&&K(e.id).status===`unknown`?(G(),r(`i`,{key:3,class:`pi pi-heart service-sidebar__status service-sidebar__status--health-pending`,title:V(p)(`serviceSidebar.healthWaiting`)},null,8,Ge)):W(e.id)===`running`?(G(),r(`i`,Ke)):W(e.id)===`starting`?(G(),r(`i`,qe)):(G(),r(`i`,Je)),f(`span`,Ye,b(e.name),1)],10,Ve))),128))],512),[[ee,!A.value.has(e.key)]])],2))),128)),S.value?T.value.length===0?(G(),r(`div`,Ze,b(V(p)(`serviceSidebar.noServices`)),1)):Q(``,!0):(G(),r(`div`,Xe,b(V(p)(`serviceSidebar.noProject`)),1))])],64))],6)],64))}}),[[`__scopeId`,`data-v-4865d030`]]),$e={class:`notification-trigger`},et={class:`notification-panel`},tt={class:`notification-header`},nt={class:`notification-title`},rt={class:`notification-actions`},it={key:0,class:`notification-empty`},at={key:1,class:`notification-list`},ot=[`onClick`],st={class:`notification-content`},ct={class:`notification-item-title`},lt={class:`notification-message`},ut={class:`notification-footer`},dt={class:`notification-time`},ft=[`onClick`],pt=T(q({__name:`NotificationCenter`,setup(t){let{t:n}=Z(),i=W(),a=R(),l=w(),u=c(()=>i.unreadCount>0),p=c(()=>i.notifications);function m(e){l.value.toggle(e)}function g(){i.markAllRead()}function _(){i.clear()}function v(e){i.remove(e)}function y(e){if(!e)return null;let t=e.trim();if(!t||!t.startsWith(`/`)||t.startsWith(`//`))return null;try{let e=new URL(t,window.location.origin);return e.origin===window.location.origin?`${e.pathname}${e.search}${e.hash}`:null}catch{return null}}function S(e,t){i.markRead(e);let n=y(t);n&&(a.push(n).catch(()=>{}),l.value?.hide())}function C(e){let t=Date.now()-e,r=Math.floor(t/1e3);if(r<60)return n(`notifications.justNow`);let i=Math.floor(r/60);if(i<60)return n(`notifications.minutesAgo`,{n:i});let a=Math.floor(i/60);return a<24?n(`notifications.hoursAgo`,{n:a}):n(`notifications.daysAgo`,{n:Math.floor(a/24)})}function T(e){switch(e){case`success`:return`pi pi-check-circle`;case`error`:return`pi pi-times-circle`;case`warn`:return`pi pi-exclamation-triangle`;default:return`pi pi-info-circle`}}function E(e){switch(e){case`success`:return`var(--p-green-500)`;case`error`:return`var(--p-red-500)`;case`warn`:return`var(--p-orange-500)`;default:return`var(--p-blue-500)`}}return(t,a)=>(G(),r(h,null,[f(`div`,$e,[s(V(e),{icon:`pi pi-bell`,text:``,rounded:``,"aria-label":V(n)(`notifications.title`),onClick:m},null,8,[`aria-label`]),u.value?(G(),x(V(F),{key:0,value:V(i).unreadCount,severity:`danger`,class:`notification-badge`},null,8,[`value`])):Q(``,!0)]),s(V(D),{ref_key:`op`,ref:l,class:`notification-overlay`,breakpoints:{"600px":`320px`}},{default:H(()=>[f(`div`,et,[f(`div`,tt,[f(`span`,nt,b(V(n)(`notifications.title`)),1),f(`div`,rt,[u.value?(G(),x(V(e),{key:0,label:V(n)(`notifications.markAllRead`),text:``,size:`small`,onClick:g},null,8,[`label`])):Q(``,!0),p.value.length>0?(G(),x(V(e),{key:1,label:V(n)(`notifications.clear`),text:``,size:`small`,severity:`secondary`,onClick:_},null,8,[`label`])):Q(``,!0)])]),p.value.length===0?(G(),r(`div`,it,[a[0]||=f(`i`,{class:`pi pi-bell-slash`,style:{"font-size":`1.5rem`,"margin-bottom":`0.5rem`}},null,-1),f(`p`,null,b(V(n)(`notifications.empty`)),1)])):(G(),r(`div`,at,[(G(!0),r(h,null,z(p.value,t=>(G(),r(`div`,{key:t.id,class:o([`notification-item`,{unread:!t.read}]),onClick:e=>S(t.id,t.link)},[f(`i`,{class:o(T(t.type)),style:d({color:E(t.type)})},null,6),f(`div`,st,[f(`div`,ct,b(t.title),1),f(`div`,lt,b(t.message),1),f(`div`,ut,[f(`span`,dt,b(C(t.timestamp)),1),y(t.link)?(G(),r(`button`,{key:0,type:`button`,class:`notification-link`,onClick:U(e=>S(t.id,t.link),[`stop`])},b(t.linkLabel||V(n)(`notifications.openResource`)),9,ft)):Q(``,!0)])]),s(V(e),{icon:`pi pi-times`,text:``,rounded:``,size:`small`,severity:`secondary`,onClick:U(e=>v(t.id),[`stop`])},null,8,[`onClick`])],10,ot))),128))]))])]),_:1},512)],64))}}),[[`__scopeId`,`data-v-e1d6b2c8`]]),mt={class:`lang-switcher`},ht=[`title`],gt={class:`lang-menu`},_t={class:`lang-menu__title`},vt=[`onClick`],yt=T(q({__name:`LanguageSwitcher`,setup(e){let{t}=Z(),n=w(null),i={fr:`🇫🇷 Français`,en:`🇬🇧 English`};function a(e){n.value?.toggle(e)}function c(e){j(e),n.value?.hide()}return(e,l)=>(G(),r(`div`,mt,[f(`button`,{class:`lang-btn`,title:V(t)(`language.label`),onClick:a},[...l[0]||=[f(`i`,{class:`pi pi-language`},null,-1)]],8,ht),s(V(D),{ref_key:`popover`,ref:n},{default:H(()=>[f(`div`,gt,[f(`p`,_t,b(V(t)(`language.label`)),1),(G(!0),r(h,null,z(V(de),e=>(G(),r(`button`,{key:e,class:o([`lang-menu__item`,{"lang-menu__item--active":V(ge)()===e}]),onClick:t=>c(e)},b(i[e]),11,vt))),128))])]),_:1},512)]))}}),[[`__scopeId`,`data-v-dd64a597`]]),bt={class:`global-nav__top`},xt=[`title`],St={class:`global-nav__label`},Ct=[`title`],wt={class:`global-nav__label`},Tt=[`title`,`onClick`],Et={key:2,class:`global-nav__label`},Dt=[`title`],Ot={key:0,class:`global-nav__badge`},kt={key:1,class:`global-nav__label`},At={class:`global-nav__bottom`},jt=[`title`],Mt=[`title`,`data-testid`,`onClick`],Nt={key:0,class:`global-nav__label`},Pt={key:1,class:`global-nav__separator`},Ft={class:`global-nav__util`},It={key:2,class:`global-nav__util`},Lt={key:3,class:`global-nav__util`},Rt=T(q({__name:`GlobalNavBar`,props:{activeTab:{},portrait:{type:Boolean}},emits:[`tab-change`,`toggle-service-sidebar`],setup(e,{emit:t}){let{t:n}=Z(),i=ye(),a=t,{isOpen:l,toggle:u}=P(),d=c(()=>[{id:`dashboard`,icon:`pi pi-home`,label:n(`nav.dashboard`)},{id:`wiki-global`,icon:`pi pi-file-edit`,label:`Wiki`},{id:`kanban`,icon:`pi pi-th-large`,label:n(`kanban.nav`)},{id:`agent-terminal`,svgIcon:`terminal`,label:n(`nav.agentTerminal`)}]),m=c(()=>[{id:`environments`,icon:`pi pi-globe`,label:n(`nav.environments`)},{id:`settings`,icon:`pi pi-sliders-h`,label:n(`nav.settings`)}]);return(t,c)=>(G(),r(`nav`,{class:o([`global-nav`,{"global-nav--portrait":e.portrait}]),"data-testid":`global-nav`},[f(`div`,bt,[e.portrait?(G(),r(`button`,{key:0,class:o([`global-nav__btn`,{"global-nav__btn--active":V(l)}]),title:V(n)(`nav.aiChat`),"data-testid":`global-nav-btn`,onClick:c[0]||=(...e)=>V(u)&&V(u)(...e)},[f(`i`,{class:o(V(I))},null,2),f(`span`,St,b(V(n)(`nav.aiChat`)),1)],10,xt)):Q(``,!0),e.portrait?(G(),r(`button`,{key:1,class:`global-nav__btn`,title:V(n)(`nav.services`),"data-testid":`global-nav-services-btn`,onClick:c[1]||=e=>a(`toggle-service-sidebar`)},[c[4]||=f(`i`,{class:`pi pi-list`},null,-1),f(`span`,wt,b(V(n)(`nav.services`)),1)],8,Ct)):Q(``,!0),(G(!0),r(h,null,z(d.value,t=>(G(),r(`button`,{key:t.id,class:o([`global-nav__btn`,{"global-nav__btn--active":e.activeTab===t.id}]),title:t.label,"data-testid":`global-nav-btn`,onClick:e=>a(`tab-change`,t.id)},[t.svgIcon===`terminal`?(G(),x(p,{key:0})):(G(),r(`i`,{key:1,class:o(t.icon)},null,2)),e.portrait?(G(),r(`span`,Et,b(t.label),1)):Q(``,!0)],10,Tt))),128)),f(`button`,{class:o([`global-nav__btn global-nav__btn--badged`,{"global-nav__btn--active":e.activeTab===`cloud-messaging`,"global-nav__btn--pulse":V(i).unreadCount>0&&e.activeTab!==`cloud-messaging`}]),title:V(n)(`nav.messaging`),"data-testid":`global-nav-messaging-btn`,onClick:c[2]||=e=>a(`tab-change`,`cloud-messaging`)},[f(`i`,{class:o(V(ae))},null,2),V(i).unreadCount>0?(G(),r(`span`,Ot,b(V(i).unreadCount>99?`99+`:V(i).unreadCount),1)):Q(``,!0),e.portrait?(G(),r(`span`,kt,b(V(n)(`nav.messaging`)),1)):Q(``,!0)],10,Dt)]),f(`div`,At,[e.portrait?Q(``,!0):(G(),r(`button`,{key:0,class:o([`global-nav__btn`,{"global-nav__btn--active":V(l)}]),title:V(n)(`nav.aiChat`),"data-testid":`global-nav-btn`,onClick:c[3]||=(...e)=>V(u)&&V(u)(...e)},[f(`i`,{class:o(V(I))},null,2)],10,jt)),(G(!0),r(h,null,z(m.value,t=>(G(),r(`button`,{key:t.id,class:o([`global-nav__btn`,{"global-nav__btn--active":e.activeTab===t.id}]),title:t.label,"data-testid":t.id===`environments`?`nav-environments`:`global-nav-btn`,onClick:e=>a(`tab-change`,t.id)},[f(`i`,{class:o(t.icon)},null,2),e.portrait?(G(),r(`span`,Nt,b(t.label),1)):Q(``,!0)],10,Mt))),128)),e.portrait?Q(``,!0):(G(),r(`div`,Pt)),f(`div`,Ft,[s(pt)]),e.portrait?Q(``,!0):(G(),r(`div`,It,[s(V(K))])),e.portrait?Q(``,!0):(G(),r(`div`,Lt,[s(yt)]))])],2))}}),[[`__scopeId`,`data-v-a4a70cd3`]]),zt={class:`service-nav`,"data-testid":`service-nav`},Bt={class:`service-nav__tabs`},Vt=[`title`,`onClick`],Ht={class:`service-nav__btn-inner`},Ut={key:0,class:`service-nav__badge`},Wt=T(q({__name:`ServiceNavBar`,props:{activeTab:{},serviceId:{}},emits:[`tab-change`],setup(e,{emit:t}){let n=e,a=t,{t:s}=Z(),l=c(()=>[{id:`wiki`,icon:`pi pi-file-edit`,label:`Wiki`},{id:`terminal`,icon:`pi pi-code`,label:s(`serviceNavBar.terminal`)},{id:`metrics`,icon:`pi pi-chart-line`,label:s(`serviceNavBar.metrics`)},{id:`config`,icon:`pi pi-cog`,label:s(`serviceNavBar.config`)},{id:`git`,icon:`pi pi-github`,label:s(`serviceNavBar.git`)}]),u=w(0),d=null,p=he(m,6e4,`service-navbar:git-status`);async function m(){if(n.serviceId)try{let e=await S.git.status.query({serviceId:n.serviceId});u.value=e.staged.length+e.unstaged.length+e.untracked.length}catch{u.value=0}}function g(){_(),n.serviceId&&(d=S.git.onStatusChange.subscribe({serviceId:n.serviceId},{onData(e){u.value=e.staged.length+e.unstaged.length+e.untracked.length},onError(e){let t=e?.message??``;t.includes(`PRECONDITION_FAILED`)||t.includes(`Unresolved variables`)||m()}}),p.start())}function _(){d?.unsubscribe(),d=null,p.stop(),u.value=0}return i(()=>n.serviceId,e=>{e?g():_()},{immediate:!0}),L(_),(t,n)=>(G(),r(`nav`,zt,[f(`div`,Bt,[(G(!0),r(h,null,z(l.value,t=>(G(),r(`button`,{key:t.id,class:o([`service-nav__btn`,{"service-nav__btn--active":e.activeTab===t.id}]),title:t.label,onClick:e=>a(`tab-change`,t.id)},[f(`div`,Ht,[f(`i`,{class:o(t.icon)},null,2),t.id===`git`&&u.value>0?(G(),r(`span`,Ut,b(u.value>99?`99+`:u.value),1)):Q(``,!0)])],10,Vt))),128))])]))}}),[[`__scopeId`,`data-v-c93f59f4`]]),Gt={class:`service-header`},Kt={class:`service-header__banner`},qt={class:`service-header__left`},Jt={key:0,class:`service-header__title`},Yt=[`title`],Xt=[`title`],Zt={key:1,class:`service-header__title`},Qt={key:0,class:`service-header__right`},$t={class:`service-header__editor-popover`},en={class:`service-header__editor-current`},tn={class:`service-header__editor-label`},nn={class:`service-header__editor-select`},rn={class:`service-header__editor-label`},an={key:0,class:`editor-option`},on={class:`editor-option`},sn={key:0,class:`service-header__mismatch-banner`},cn={class:`service-header__mismatch-body`},ln={key:0},un={key:1},dn={key:1,class:`service-header__clone-banner`},fn={key:0},pn={key:1},mn=T(q({__name:`ServiceHeader`,props:{service:{},totalProcesses:{},stateCount:{}},setup(t){let n=t,{t:o}=Z(),l=O(),u=Y(),d=w(),{urlHost:p}=xe(()=>n.service?oe(n.service)??void 0:void 0),g=c(()=>{let e=n.service;return e?fe(e,p.value).map(({url:e,source:t})=>({url:e,icon:t===`cloud`?`pi pi-cloud`:`pi pi-globe`})):[]}),_=w(!1),v=w([]),y=w(null),T=w(null),E=w(!1);async function k(){if(!n.service?.git?.remote){_.value=!1,v.value=[],y.value=null,T.value=null;return}let e=n.service.id;try{let t=await S.service.checkCwd.query({id:e});v.value=t.unresolvedVars??[],y.value=t.resolvedCwd??null,T.value=t.gitMismatch??null,_.value=t.canClone||(t.unresolvedVars??[]).length>0,t.exists&&t.gitMismatch===null&&setTimeout(async()=>{if(n.service?.id===e)try{let t=await S.service.checkCwd.query({id:e,checkReachability:!0});if(n.service?.id!==e)return;T.value=t.gitMismatch??null}catch{}},1500)}catch(e){console.error(`[checkCwd] error:`,e),_.value=!1,v.value=[],y.value=null,T.value=null}}i(()=>n.service?.id,()=>k(),{immediate:!0});async function A(){if(n.service){E.value=!0;try{await S.service.cloneRepository.mutate({id:n.service.id}),_.value=!1,l.add({severity:`success`,summary:`Repository cloned`,detail:`Cloned into ${y.value??n.service.cwd??`.`}`,life:4e3})}catch(e){l.add({severity:`error`,summary:`Clone failed`,detail:e.message,life:6e3})}finally{E.value=!1}}}let j=c(()=>n.service?u.getEffectiveEditor(n.service.id):null),M=c(()=>n.service?u.getServiceEditor(n.service.id):null),N=c(()=>[{label:o(`serviceHeader.useDefault`),value:`__default__`},...u.installedEditors.map(e=>({label:e.name,value:e.key}))]),P=c(()=>n.service?M.value?.key??`__default__`:`__default__`);function F(e){window.open(e,`_blank`)}function I(){let e=j.value,t=n.service?.cwd;if(!e){l.add({severity:`warn`,summary:o(`serviceHeader.noEditorConfigured`),detail:o(`serviceHeader.setDefaultEditorHint`),life:3e3});return}u.openEditor(e.key,t||`.`)}function L(e){d.value?.toggle(e)}async function R(e){n.service&&(e===`__default__`?await u.removeServiceEditor(n.service.id):await u.setServiceEditor(n.service.id,e))}return(n,i)=>{let c=ue(`router-link`),l=pe(`tooltip`);return G(),r(`header`,Gt,[f(`div`,Kt,[f(`div`,qt,[t.service?(G(),r(`h1`,Jt,[t.service.runner===`docker`?(G(),r(`i`,{key:0,class:`pi pi-box service-header__runner-icon`,title:V(o)(`serviceHeader.docker`)},null,8,Yt)):(G(),r(`i`,{key:1,class:`pi pi-desktop service-header__runner-icon`,title:V(o)(`serviceHeader.native`)},null,8,Xt)),C(b(t.service.name),1)])):(G(),r(`h1`,Zt,`Runeya`)),t.service&&t.totalProcesses>0?(G(),x(V(a),{key:2,value:`${t.stateCount.running} running`,severity:t.stateCount.running>0?`success`:`secondary`,class:`service-header__tag`},null,8,[`value`,`severity`])):Q(``,!0)]),t.service?(G(),r(`div`,Qt,[m((G(),x(V(e),{text:``,rounded:``,size:`small`,"aria-label":V(o)(`serviceHeader.openInEditor`),onClick:I,onContextmenu:U(L,[`prevent`])},{icon:H(()=>[s(be,{"editor-key":j.value?.key??null,size:14},null,8,[`editor-key`])]),_:1},8,[`aria-label`])),[[l,j.value?`Open in ${j.value.name}`:V(o)(`serviceHeader.openInEditor`),void 0,{bottom:!0}]]),m(s(V(e),{icon:`pi pi-chevron-down`,text:``,rounded:``,size:`small`,class:`service-header__editor-caret`,"aria-label":V(o)(`serviceHeader.editorOptions`),onClick:L},null,8,[`aria-label`]),[[l,V(o)(`serviceHeader.editorSettings`),void 0,{bottom:!0}]]),s(V(D),{ref_key:`editorPopover`,ref:d},{default:H(()=>[f(`div`,$t,[f(`div`,en,[f(`span`,tn,b(V(o)(`serviceHeader.editorDefault`)),1),f(`span`,null,b(V(u).defaultEditor?.name??V(o)(`serviceHeader.editorNotSet`)),1)]),f(`div`,nn,[f(`span`,rn,b(V(o)(`serviceHeader.editorThisService`)),1),s(V(ce),{"model-value":P.value,options:N.value,"option-label":`label`,"option-value":`value`,placeholder:V(o)(`serviceHeader.useDefault`),size:`small`,class:`service-header__editor-dropdown`,"onUpdate:modelValue":R},{value:H(e=>[e.value?(G(),r(`div`,an,[s(be,{"editor-key":e.value===`__default__`?null:e.value,size:14},null,8,[`editor-key`]),f(`span`,null,b(N.value.find(t=>t.value===e.value)?.label),1)])):Q(``,!0)]),option:H(e=>[f(`div`,on,[s(be,{"editor-key":e.option.value===`__default__`?null:e.option.value,size:14},null,8,[`editor-key`]),f(`span`,null,b(e.option.label),1)])]),_:1},8,[`model-value`,`options`,`placeholder`])]),s(c,{to:{name:`settings`,query:{section:`editor`}},class:`service-header__editor-settings-link`},{default:H(()=>[i[0]||=f(`i`,{class:`pi pi-cog`},null,-1),f(`span`,null,b(V(o)(`serviceHeader.editorSettings`)),1)]),_:1})])]),_:1},512),(G(!0),r(h,null,z(g.value,t=>m((G(),x(V(e),{key:t.url,icon:t.icon,text:``,rounded:``,size:`small`,"aria-label":`${V(o)(`serviceHeader.openServiceUrl`)} — ${t.url}`,onClick:e=>F(t.url)},null,8,[`icon`,`aria-label`,`onClick`])),[[l,t.url,void 0,{bottom:!0}]])),128))])):Q(``,!0)]),T.value&&t.service?(G(),r(`div`,sn,[i[10]||=f(`i`,{class:`pi pi-exclamation-triangle service-header__mismatch-icon`},null,-1),f(`div`,cn,[f(`strong`,null,b(T.value.unreachable?`Git remote unreachable`:T.value.actual===null?`No git remote found`:`Git remote mismatch`),1),T.value.unreachable?(G(),r(`span`,ln,[i[1]||=C(` Cannot reach `,-1),f(`code`,null,b(T.value.configured),1),i[2]||=C(` — check your network or SSH credentials. `,-1)])):T.value.actual===null?(G(),r(`span`,un,[i[3]||=C(` The directory `,-1),f(`code`,null,b(y.value??t.service.cwd),1),i[4]||=C(` has no `,-1),i[5]||=f(`code`,null,`origin`,-1),i[6]||=C(` remote, but the service is configured for `,-1),f(`code`,null,b(T.value.configured),1),i[7]||=C(`. `,-1)])):(G(),r(h,{key:2},[f(`span`,null,[i[8]||=C(`Configured: `,-1),f(`code`,null,b(T.value.configured),1)]),f(`span`,null,[i[9]||=C(`Actual: `,-1),f(`code`,null,b(T.value.actual),1)])],64))])])):Q(``,!0),_.value&&t.service?(G(),r(`div`,dn,[i[14]||=f(`i`,{class:`pi pi-folder-open service-header__clone-icon`},null,-1),(v.value??[]).length>0?(G(),r(`span`,fn,[i[11]||=C(` Working directory `,-1),f(`code`,null,b(y.value??t.service.cwd),1),i[12]||=C(` contains unresolved variables: `,-1),(G(!0),r(h,null,z(v.value??[],e=>(G(),r(`code`,{key:e,class:`service-header__clone-var`},`$`+b(e),1))),128)),i[13]||=C(` — set them in the environment before cloning. `,-1)])):(G(),r(`span`,pn,b(V(o)(`serviceHeader.cwdNotExist`,{cwd:y.value??t.service.cwd})),1)),(v.value??[]).length===0?(G(),x(V(e),{key:2,label:V(o)(`serviceHeader.cloneRepository`),icon:`pi pi-download`,size:`small`,loading:E.value,onClick:A},null,8,[`label`,`loading`])):Q(``,!0)])):Q(``,!0)])}}}),[[`__scopeId`,`data-v-ee28562f`]]),hn={class:`app-layout__main`,"data-testid":`page-content`},gn={class:`app-layout__content`},_n=T(q({__name:`AppMainArea`,props:{selectedService:{},selectedServiceId:{},selectedServiceProcesses:{},activeTab:{}},emits:[`tab-change`],setup(e,{emit:t}){let n=t;function i(e){n(`tab-change`,e)}return(t,n)=>(G(),r(`div`,hn,[s(mn,{service:e.selectedService},null,8,[`service`]),f(`div`,gn,[m(s(Wt,{"active-tab":e.activeTab,"service-id":e.selectedServiceId,onTabChange:i},null,8,[`active-tab`,`service-id`]),[[ee,!!e.selectedServiceId]]),f(`div`,{class:o(e.selectedServiceId?`app-layout__service-view`:[`ai-chat`,`kanban`,`agent-terminal`,`wiki-global`,`cloud-messaging`].includes(e.activeTab)?`app-layout__fullpage`:`app-layout__page`)},[e.selectedService?(G(),x(Se,{key:0,service:e.selectedService,processes:e.selectedServiceProcesses},null,8,[`service`,`processes`])):Q(``,!0),f(`div`,{class:o([`ai-chat`,`kanban`,`agent-terminal`,`wiki-global`,`cloud-messaging`].includes(e.activeTab)?`app-layout__router-view-fullpage`:`app-layout__router-view`)},[s(V(le))],2)],2)])]))}}),[[`__scopeId`,`data-v-d688302d`]]),vn={class:`environment-selector`},yn={for:`env-select`,class:`label`,"data-testid":`env-selector-label`},bn={class:`env-panel-heading`},xn={key:0,class:`env-option`},Sn={key:1},Cn={class:`env-option`},wn=T(q({__name:`EnvironmentSelector`,props:{modelValue:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=t,{t:i}=Z(),a=A(),o=c(()=>a.globalEnvironments);function l(e){if(e)return e.startsWith(`#`)?e:`#${e}`}function u(e){return a.environments.find(t=>t.id===e)}function p(e){n(`update:modelValue`,e)}return(t,n)=>(G(),r(`div`,vn,[f(`label`,yn,b(V(i)(`environmentSelector.label`)),1),s(V(ce),{id:`env-select`,"model-value":e.modelValue,options:o.value,"option-label":`name`,"option-value":`id`,"onUpdate:modelValue":p,placeholder:V(i)(`environmentSelector.placeholder`),disabled:e.disabled},{header:H(()=>[f(`div`,bn,b(V(i)(`environmentSelector.heading`)),1)]),value:H(e=>[e.value?(G(),r(`div`,xn,[u(e.value)?.color||u(e.value)?.bgColor?(G(),r(`span`,{key:0,class:`env-dot`,style:d({backgroundColor:l(u(e.value)?.bgColor)||l(u(e.value)?.color)})},null,4)):Q(``,!0),f(`span`,null,b(u(e.value)?.name??e.value),1)])):(G(),r(`span`,Sn,b(e.placeholder),1))]),option:H(e=>[f(`div`,Cn,[e.option.color||e.option.bgColor?(G(),r(`span`,{key:0,class:`env-dot`,style:d({backgroundColor:l(e.option.bgColor)||l(e.option.color)})},null,4)):Q(``,!0),f(`span`,null,b(e.option.name),1)])]),_:1},8,[`model-value`,`options`,`placeholder`,`disabled`])]))}}),[[`__scopeId`,`data-v-58732841`]]),Tn={class:`switcher`},En={class:`switcher__heading`},Dn={class:`switcher__group`},On={class:`switcher__title`},kn={key:0,class:`switcher__empty`},An=[`onClick`],jn={class:`switcher__name`},Mn=[`title`,`aria-label`,`onClick`],Nn={key:1,class:`switcher__loading`},Pn={class:`switcher__title`},Fn={key:0,class:`switcher__empty`},In=[`disabled`,`onClick`],Ln={key:0,class:`pi pi-spin pi-spinner`},Rn={class:`switcher__name`},zn={key:2,class:`pi pi-download switcher__hint`},Bn=[`title`,`aria-label`,`onClick`],Vn=[`title`,`aria-label`,`onClick`],Hn={key:2,class:`switcher__empty switcher__signin`},Un=T(q({__name:`ProjectSwitcher`,setup(n,{expose:i}){let{t:a}=Z(),l=R(),u=B(),d=E(),p=X(),{isLinked:m}=_e(),_=w(null),T=w(``),O=w(``),k=we(),{loading:A,error:j}=k,M=k.orgGroups,N=c(()=>d.projects.filter(e=>!e.orgId)),P=c(()=>p.activeProjectId),F=c(()=>p.activeOrgId);function I(e,t){return t===P.value&&e===F.value}function L(e){_.value?.toggle(e)}async function ee(){await k.refreshCloud()}function te(e){p.setActiveProject(e,null),_.value?.hide(),l.push({name:`dashboard`})}async function W(e,n,r){T.value=n,j.value=``;try{await k.pullProject(e,n,r),p.setActiveProject(n,e),_.value?.hide(),l.push({name:`dashboard`})}catch(r){j.value=t(r,a),ce(r,y(r))&&(J.value={orgId:e,projectId:n})}finally{T.value=``}}async function ne(){let e=J.value;if(J.value=null,!e)return;j.value=``;let t=k.orgGroups.value.find(t=>t.orgId===e.orgId);await W(e.orgId,e.projectId,t?.accountId)}function K(e,t){j.value=``,u.require({header:a(`projectSwitcher.deleteFromOrgTitle`),message:a(`projectSwitcher.deleteFromOrgConfirm`,{project:t.name,org:e.name}),icon:`pi pi-exclamation-triangle`,rejectLabel:a(`actions.cancel`),acceptLabel:a(`projectSwitcher.deleteFromOrgAccept`),acceptClass:`p-button-danger`,accept:()=>void re(e.orgId,t.projectId)})}async function re(e,n){O.value=n;try{await S.cloudSync.deleteProjectFromOrg.mutate({orgId:e,projectId:n}),await d.fetchAll(),await k.refreshCloud()}catch(e){j.value=t(e,a)}finally{O.value=``}}async function q(e,t){j.value=``;try{await S.cloudSync.untrackProject.mutate({orgId:e,projectId:t}),await d.fetchAll(),k.markUntracked(e,t)}catch(e){j.value=y(e)}}let J=w(null),ie=w(!1),Y=w(!1),ae=w(null);function oe(e){ae.value={id:e.id,name:e.name},Y.value=!0}function se(){_.value?.hide(),l.push({name:`dashboard`})}i({toggle:L});function ce(e,t){return t===`ORG_KEY_MISMATCH`||t===`ORG_VAULT_UNREADABLE`?!0:e?.syncState===`key-mismatch`}return(t,n)=>(G(),r(h,null,[s(V(D),{ref_key:`popover`,ref:_,onShow:ee,class:`project-switcher`},{default:H(()=>[f(`div`,Tn,[f(`h2`,En,b(V(a)(`projectSwitcher.heading`)),1),V(j)?(G(),x(V(v),{key:0,severity:`error`,closable:!1,class:`switcher__error`},{default:H(()=>[C(b(V(j)),1)]),_:1})):Q(``,!0),f(`section`,Dn,[f(`h3`,On,b(V(a)(`projectSwitcher.local`)),1),N.value.length===0?(G(),r(`p`,kn,b(V(a)(`projectSwitcher.noLocal`)),1)):Q(``,!0),(G(!0),r(h,null,z(N.value,e=>(G(),r(`button`,{key:e.id,class:o([`switcher__item`,{"is-active":e.id===P.value&&F.value===null}]),onClick:t=>te(e.id)},[n[6]||=f(`i`,{class:`pi pi-folder`},null,-1),f(`span`,jn,b(e.name),1),V(m)&&V(M).length?(G(),r(`span`,{key:0,class:`switcher__publish`,role:`button`,title:V(a)(`projectSwitcher.publish`),"aria-label":V(a)(`projectSwitcher.publish`),onClick:U(t=>oe(e),[`stop`])},[...n[5]||=[f(`i`,{class:`pi pi-cloud-upload`},null,-1)]],8,Mn)):Q(``,!0)],10,An))),128))]),V(A)?(G(),r(`div`,Nn,[s(V(g),{style:{width:`1.5rem`,height:`1.5rem`}})])):Q(``,!0),(G(!0),r(h,null,z(V(M),e=>(G(),r(`section`,{key:e.orgId,class:`switcher__group`},[f(`h3`,Pn,[s(Te,{"org-id":e.orgId,name:e.name,size:16},null,8,[`org-id`,`name`]),f(`span`,null,b(e.name),1)]),e.projects.length===0?(G(),r(`p`,Fn,b(V(a)(`projectSwitcher.noProjects`)),1)):Q(``,!0),(G(!0),r(h,null,z(e.projects,t=>(G(),r(`button`,{key:t.projectId,class:o([`switcher__item`,{"is-active":I(e.orgId,t.projectId)}]),disabled:T.value===t.projectId,onClick:n=>W(e.orgId,t.projectId,e.accountId)},[T.value===t.projectId?(G(),r(`i`,Ln)):(G(),x(Te,{key:1,"org-id":e.orgId,name:e.name,size:18},null,8,[`org-id`,`name`])),f(`span`,Rn,b(t.name),1),!t.local&&T.value!==t.projectId?(G(),r(`i`,zn)):t.local&&!I(e.orgId,t.projectId)?(G(),r(`span`,{key:3,class:`switcher__drop`,role:`button`,title:V(a)(`projectSwitcher.untrack`),"aria-label":V(a)(`projectSwitcher.untrack`),onClick:U(n=>q(e.orgId,t.projectId),[`stop`])},[...n[7]||=[f(`i`,{class:`pi pi-times`},null,-1)]],8,Bn)):Q(``,!0),V(m)?(G(),r(`span`,{key:4,class:`switcher__delete`,role:`button`,title:V(a)(`projectSwitcher.deleteFromOrg`,{org:e.name}),"aria-label":V(a)(`projectSwitcher.deleteFromOrg`,{org:e.name}),onClick:U(n=>K(e,t),[`stop`])},[f(`i`,{class:o([`pi`,O.value===t.projectId?`pi-spin pi-spinner`:`pi-trash`])},null,2)],8,Vn)):Q(``,!0)],10,In))),128))]))),128)),V(m)?Q(``,!0):(G(),r(`p`,Hn,b(V(M).length?V(a)(`projectSwitcher.signInMore`):V(a)(`projectSwitcher.signInHint`)),1)),s(V(e),{label:V(a)(`projectSwitcher.create`),icon:`pi pi-plus`,text:``,size:`small`,class:`switcher__create`,onClick:n[0]||=e=>ie.value=!0},null,8,[`label`])])]),_:1},512),s(Ce,{"org-id":J.value?.orgId??null,reference:`cloud`,title:V(a)(`projectSwitcher.keyPromptTitle`),hint:V(a)(`projectSwitcher.keyPromptHint`),"confirm-label":V(a)(`projectSwitcher.keyPromptUse`),onClose:n[1]||=e=>J.value=null,onAdopted:ne},null,8,[`org-id`,`title`,`hint`,`confirm-label`]),s(Ee,{visible:Y.value,"onUpdate:visible":n[2]||=e=>Y.value=e,project:ae.value,onPublished:n[3]||=e=>V(k).refreshCloud()},null,8,[`visible`,`project`]),s(De,{visible:ie.value,"onUpdate:visible":n[4]||=e=>ie.value=e,onCreated:se},null,8,[`visible`])],64))}}),[[`__scopeId`,`data-v-dc784917`]]),Wn={class:`bottom-bar`},Gn={class:`bottom-bar__content`},Kn=[`aria-label`],qn={class:`desktop-info`},Jn={class:`desktop-info__title`},Yn={class:`desktop-info__text`},Xn={key:0,class:`desktop-info__address`},Zn={class:`desktop-info__cta`},Qn=[`title`],$n={key:0,class:`pi pi-folder icon`},er={class:`value`},tr={class:`bottom-bar__right`},nr={key:0,class:`bottom-bar__section environment`},rr=[`title`],ir=[`src`,`alt`],ar={key:1,class:`cloud-avatar cloud-avatar--initials`},or=T(q({__name:`BottomBar`,setup(e){let t=E();A(),X();let n=O(),{t:i}=Z(),a=R(),{user:o,currentAccount:u,isLinked:d}=_e(),p=c(()=>{let e=o.value;return e?.image?ie(e.id,{accountId:u.value?.id}):``}),m=w(!1),g=c(()=>(o.value?.name||o.value?.email||`?`).trim().split(/\s+/).slice(0,2).map(e=>e.charAt(0).toUpperCase()).join(``)||`?`);function _(){a.push({name:`cloud-account`})}let{isDesktop:v,port:y}=l(),x=w(null);function T(e){x.value?.show(e)}function k(){x.value?.hide()}function j(){k(),a.push({name:`settings`,query:{section:`diagnostics`}})}let M=w(null);function N(e){M.value?.toggle(e)}let P=c(()=>t.currentProject),F=w({});S.cloudSync.orgNames.query().then(e=>{F.value=e}).catch(()=>{});let I=c(()=>{let e=P.value?.orgId;return e?F.value[e]??``:``}),L=c(()=>P.value?.activeEnvironmentId??null);async function z(e){P.value&&(await t.setActiveEnvironment(P.value,e)||n.add({severity:`error`,summary:i(`bottomBar.errorChangingEnv`),life:5e3}))}return(e,t)=>(G(),r(`div`,Wn,[f(`div`,Gn,[V(v)?(G(),r(`button`,{key:0,class:`bottom-bar__section desktop-badge`,"aria-label":V(i)(`bottomBar.desktopMode.title`),"data-testid":`bottom-bar-desktop`,onMouseenter:T,onMouseleave:k,onFocus:T,onBlur:k,onClick:j},[...t[1]||=[f(`i`,{class:`pi pi-desktop icon`},null,-1)]],40,Kn)):Q(``,!0),s(V(D),{ref_key:`desktopPopover`,ref:x,dismissable:!0},{default:H(()=>[f(`div`,qn,[f(`div`,Jn,[t[2]||=f(`i`,{class:`pi pi-desktop`},null,-1),f(`span`,null,b(V(i)(`bottomBar.desktopMode.title`)),1)]),f(`p`,Yn,b(V(i)(`bottomBar.desktopMode.description`)),1),V(y)?(G(),r(`p`,Xn,[C(b(V(i)(`bottomBar.desktopMode.address`))+` `,1),f(`code`,null,`http://localhost:`+b(V(y)),1)])):Q(``,!0),f(`p`,Zn,[t[3]||=f(`i`,{class:`pi pi-arrow-right`},null,-1),C(` `+b(V(i)(`bottomBar.desktopMode.goToDiagnostics`)),1)])])]),_:1},512),f(`button`,{class:`bottom-bar__section project-btn is-clickable`,title:V(i)(`bottomBar.switchProject`),"data-testid":`bottom-bar-project`,onClick:N},[P.value?.orgId?(G(),r(h,{key:1},[s(Te,{"org-id":P.value.orgId,name:I.value,size:16,title:I.value},null,8,[`org-id`,`name`,`title`]),t[4]||=f(`i`,{class:`pi pi-angle-right org-sep`},null,-1)],64)):(G(),r(`i`,$n)),f(`span`,er,b(P.value?.name??V(i)(`bottomBar.none`)),1),t[5]||=f(`i`,{class:`pi pi-angle-up caret`},null,-1)],8,Qn),s(Un,{ref_key:`switcher`,ref:M},null,512),f(`div`,tr,[P.value&&L.value?(G(),r(`div`,nr,[t[6]||=f(`i`,{class:`pi pi-globe icon`},null,-1),s(wn,{"model-value":L.value,"onUpdate:modelValue":z,class:`bottom-env-selector`},null,8,[`model-value`])])):Q(``,!0),V(d)?(G(),r(`button`,{key:2,class:`bottom-bar__section cloud-btn cloud-avatar-btn`,title:V(i)(`bottomBar.cloudAccount`),onClick:_},[p.value&&!m.value?(G(),r(`img`,{key:0,src:p.value,alt:V(o)?.name??``,class:`cloud-avatar`,onError:t[0]||=e=>m.value=!0},null,40,ir)):(G(),r(`span`,ar,b(g.value),1))],8,rr)):(G(),r(`button`,{key:1,class:`bottom-bar__section cloud-btn cloud-login`,onClick:_},[t[7]||=f(`i`,{class:`pi pi-cloud icon`},null,-1),f(`span`,null,b(V(i)(`bottomBar.cloudLogin`)),1)]))])])]))}}),[[`__scopeId`,`data-v-4ec24736`]]),sr={class:`cloud-banner__text`},cr=T(q({__name:`CloudProjectBanner`,setup(e){let{t}=Z(),a=E(),s=X(),{user:l,isLinked:u,currentAccount:d,loading:p}=_e(),m=n(k,ve()),h=c(()=>s.activeProjectId?a.currentProjectOrgId:null),g=w(null),_=w(new Map);i([()=>l.value?.id,h],async([e,t])=>{if(!(!e||!t)){m.refresh();try{let[e,t]=await Promise.all([S.cloudAuth.status.query(),S.cloudSync.orgClouds.query()]);g.value=d.value?.cloudUrl??e.cloudUrl??null,_.value=new Map(Object.entries(t))}catch{}}},{immediate:!0});function v(e,t){return e.replace(/\/+$/,``)===t.replace(/\/+$/,``)}let y=c(()=>{if(!h.value||p.value)return null;if(!u.value)return`offline`;let e=_.value.get(h.value);return e&&g.value&&!v(e,g.value)?`other-cloud`:m.loading.value||!m.organizations.value.length||m.organizations.value.some(e=>e.id===h.value)?null:`other-org`}),x=c(()=>y.value===`offline`?t(`cloudBanner.offline`):y.value===`other-cloud`?t(`cloudBanner.otherCloud`):t(`cloudBanner.otherOrg`));return(e,t)=>y.value?(G(),r(`div`,{key:0,class:o([`cloud-banner`,`cloud-banner--${y.value}`]),role:`status`,"data-testid":`cloud-project-banner`},[f(`i`,{class:o([y.value===`offline`?`pi pi-cloud-off`:`pi pi-exclamation-triangle`,`cloud-banner__icon`])},null,2),f(`span`,sr,b(x.value),1)],2)):Q(``,!0)}}),[[`__scopeId`,`data-v-cf467970`]]),lr=q({__name:`ProjectLocationGate`,setup(e){let t=E(),n=X(),{activeProjectId:r}=me(n),a=w(!1),o=w(``),s=w(null),c=w(``),l=new Set;function u(e,t){return`${e??`local`}:${t}`}return i([r,()=>t.projects.length],async([e])=>{if(!e||l.has(u(n.activeOrgId,e)))return;let r=t.getByRef({id:e,orgId:n.activeOrgId})??t.getById(e);if(r&&r.orgId){try{let{path:t}=await S.project.getLocalPath.query({id:e,orgId:r.orgId});if(t)return}catch{return}l.add(u(r.orgId,e)),o.value=e,s.value=r.orgId??null,c.value=r.name,a.value=!0}},{immediate:!0}),(e,t)=>o.value?(G(),x(Oe,{key:0,visible:a.value,"onUpdate:visible":t[0]||=e=>a.value=e,"project-id":o.value,"org-id":s.value,"project-name":c.value,required:``},null,8,[`visible`,`project-id`,`org-id`,`project-name`])):Q(``,!0)}}),ur={class:`app-layout__body`},dr=`runeya.serviceSidebar.widthPx`,fr=160,pr=600,mr=220,hr=`(max-width: 480px)`,gr=T(q({__name:`AppLayout`,setup(e){let t=R(),n=M(),a=E(),l=ne(),d=re(),p=N(),m=X(),h=A(),g=Y();ye();let _=w(!1),{size:v,isResizing:y,start:b}=u({axis:`x`,min:fr,max:pr,initial:mr,storageKey:dr}),x=w(window.matchMedia(hr).matches),S=window.matchMedia(hr);function C(e){x.value=e.matches,e.matches?_.value=!0:_.value=!1}S.addEventListener(`change`,C),x.value&&(_.value=!0);let T=c(()=>n.name===`service-detail`?n.params.id:null),D=c(()=>{if(n.name===`service-detail`){let e=n.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`||e===`wiki`?e:`terminal`}return n.path===`/wiki`?`wiki-global`:n.name===`environments`||n.name===`environment-edit`?`environments`:n.path===`/settings`?`settings`:n.path.startsWith(`/ai-chat`)||n.path.startsWith(`/scenario`)?`ai-chat`:n.path.startsWith(`/kanban`)?`kanban`:n.path===`/agent-terminal`?`agent-terminal`:n.name===`cloud-messaging`?`cloud-messaging`:`dashboard`}),O=c(()=>T.value?l.getById(T.value):null),k=c(()=>T.value?d.getByService(T.value):[]),j=c(()=>m.activeProjectId),P=c(()=>m.activeOrgId);function F(e){e===`dashboard`?t.push(`/`):e===`environments`?j.value&&t.push({name:`environments`,params:{projectId:j.value}}):e===`ai-chat`?t.push(`/ai-chat`):e===`kanban`?t.push(`/kanban`):e===`agent-terminal`?t.push(`/agent-terminal`):e===`settings`?t.push(`/settings`):e===`wiki-global`?t.push(`/wiki`):e===`cloud-messaging`?t.push({name:`cloud-messaging`}):T.value&&t.push(`/services/${T.value}/${e}`)}function I(e){let n=D.value,r=n===`terminal`||n===`metrics`||n===`config`||n===`git`||n===`wiki`?n:`terminal`;t.push(`/services/${e}/${r}`)}function z(){t.push(`/services/new`)}let B=[`dashboard`,`projects`,`agents`,`settings`,`audit`,`api-keys`,`ai-chat`,`kanban-list`,`kanban-board`,`agent-terminal`,`wiki-global`];i(j,async e=>{if(!e&&n.name&&!B.includes(n.name)&&t.push({name:`dashboard`}),e){try{await h.fetchAll(e,!0)}catch(e){console.error(`[AppLayout] Failed to load environments:`,e.message)}g.fetchPreferences(),H(e)||t.push({name:`launch-services`})}});function H(e){let t=(a.getByRef({id:e,orgId:m.activeOrgId})??a.getById(e))?.serviceIds??[];if(t.length===0)return!0;let n=te(d.processes);return t.some(e=>n.has(e))}return L(()=>{S.removeEventListener(`change`,C)}),se(async()=>{if(await Promise.all([a.fetchAll(),l.fetchAll(),d.fetchAll(),p.fetchAll()]),j.value)try{await h.fetchAll(j.value)}catch(e){console.error(`[AppLayout] Failed to load environments:`,e.message)}g.fetchAvailable(),j.value&&g.fetchPreferences(),p.subscribeStatus(),!j.value&&!B.includes(n.name)&&t.push({name:`dashboard`})}),(e,t)=>(G(),r(`div`,{class:o([`app-layout`,{"app-layout--portrait":x.value}])},[s(cr),s(lr),f(`div`,ur,[s(Rt,{"active-tab":D.value,portrait:x.value,onTabChange:F,onToggleServiceSidebar:t[0]||=e=>_.value=!_.value},null,8,[`active-tab`,`portrait`]),s(Qe,{"selected-service-id":T.value,collapsed:_.value,"active-project-id":j.value,"active-org-id":P.value,portrait:x.value,width:V(v),resizing:V(y),onSelectService:I,onAddService:z,onToggleCollapse:t[1]||=e=>_.value=!_.value},null,8,[`selected-service-id`,`collapsed`,`active-project-id`,`active-org-id`,`portrait`,`width`,`resizing`]),!x.value&&!_.value?(G(),r(`div`,{key:0,class:o([`app-layout__resizer`,{"app-layout__resizer--active":V(y)}]),onMousedown:t[2]||=U((...e)=>V(b)&&V(b)(...e),[`prevent`])},null,34)):Q(``,!0),x.value&&_.value?(G(),r(`div`,{key:1,class:`app-layout__sidebar-edge-trigger`,onClick:t[3]||=e=>_.value=!1},[...t[4]||=[f(`i`,{class:`pi pi-chevron-right`},null,-1)]])):Q(``,!0),s(_n,{"selected-service":O.value,"selected-service-id":T.value,"selected-service-processes":k.value,"active-tab":D.value,onTabChange:F},null,8,[`selected-service`,`selected-service-id`,`selected-service-processes`,`active-tab`])]),s(or)],2))}}),[[`__scopeId`,`data-v-1d5fb6b0`]]);export{gr as default};
@@ -1 +0,0 @@
1
- import{Bi as e,Da as t,Dn as n,Gi as r,Ii as i,Li as a,Ra as o,Rn as s,Wi as c,Ya as l,Yn as u,io as d,ja as f,ma as p,qi as m,ua as h,un as g,xr as _,zi as v}from"./index-DuGh2zls.js";import{n as y,t as b}from"./column-BYul0pb1.js";var x={class:`audit-page`},S={class:`filters`},C={key:0,class:`audit-metadata`},w=u(m({__name:`AuditPage`,setup(u){let{t:m}=_(),w=l([]),T=l(0),E=l(!1),D=l(void 0),O=l(void 0),k=l(0),A=l(20),j=i(()=>[{label:m(`auditPage.allActions`),value:void 0},{label:m(`auditPage.actionCreate`),value:`create`},{label:m(`auditPage.actionUpdate`),value:`update`},{label:m(`auditPage.actionDelete`),value:`delete`},{label:m(`auditPage.actionDeploy`),value:`deploy`},{label:m(`auditPage.actionStart`),value:`start`},{label:m(`auditPage.actionStop`),value:`stop`},{label:m(`auditPage.actionRestart`),value:`restart`}]),M=i(()=>[{label:m(`auditPage.allTypes`),value:void 0},{label:m(`auditPage.typeProject`),value:`project`},{label:m(`auditPage.typeService`),value:`service`},{label:m(`auditPage.typeProcess`),value:`process`},{label:m(`auditPage.typeAgent`),value:`agent`}]);async function N(){E.value=!0;try{let e=await s.audit.list.query({action:D.value,entityType:O.value,limit:A.value,offset:k.value});w.value=e.entries,T.value=e.total}catch(e){console.error(`Failed to load audit log:`,e)}finally{E.value=!1}}function P(e){k.value=e.first,A.value=e.rows,N()}function F(e){switch(e){case`create`:return`success`;case`delete`:return`danger`;case`start`:return`success`;case`stop`:return`warn`;default:return`info`}}function I(e){return Object.entries(e).map(([e,t])=>{let n=typeof t==`string`?t:JSON.stringify(t);return`${e}=${n.length>50?n.slice(0,50)+`...`:n}`}).join(`, `)}return t([D,O],()=>{k.value=0,N()}),h(N),(t,i)=>(p(),e(`div`,x,[a(`h2`,null,o(d(m)(`auditPage.title`)),1),a(`div`,S,[r(d(g),{modelValue:D.value,"onUpdate:modelValue":i[0]||=e=>D.value=e,options:j.value,"option-label":`label`,"option-value":`value`,placeholder:d(m)(`auditPage.filterByAction`),class:`filter-select`},null,8,[`modelValue`,`options`,`placeholder`]),r(d(g),{modelValue:O.value,"onUpdate:modelValue":i[1]||=e=>O.value=e,options:M.value,"option-label":`label`,"option-value":`value`,placeholder:d(m)(`auditPage.filterByType`),class:`filter-select`},null,8,[`modelValue`,`options`,`placeholder`])]),r(d(y),{value:w.value,loading:E.value,lazy:!0,paginator:!0,rows:A.value,"total-records":T.value,first:k.value,"rows-per-page-options":[10,20,50],"striped-rows":``,size:`small`,onPage:P},{default:f(()=>[r(d(b),{field:`timestamp`,header:d(m)(`auditPage.timeColumn`),sortable:!1,style:{width:`180px`}},{body:f(({data:e})=>[c(o(new Date(e.timestamp).toLocaleString()),1)]),_:1},8,[`header`]),r(d(b),{field:`action`,header:d(m)(`auditPage.actionColumn`),style:{width:`120px`}},{body:f(({data:e})=>[r(d(n),{value:e.action,severity:F(e.action)},null,8,[`value`,`severity`])]),_:1},8,[`header`]),r(d(b),{field:`entityType`,header:d(m)(`auditPage.entityTypeColumn`),style:{width:`120px`}},null,8,[`header`]),r(d(b),{field:`entityId`,header:d(m)(`auditPage.entityIdColumn`),style:{width:`260px`}},{body:f(({data:e})=>[a(`code`,null,o(e.entityId.substring(0,8))+`...`,1)]),_:1},8,[`header`]),r(d(b),{field:`userId`,header:d(m)(`auditPage.userColumn`),style:{width:`80px`}},null,8,[`header`]),r(d(b),{header:d(m)(`auditPage.detailsColumn`)},{body:f(({data:t})=>[t.metadata?(p(),e(`code`,C,o(I(t.metadata)),1)):v(``,!0)]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`,`rows`,`total-records`,`first`])]))}}),[[`__scopeId`,`data-v-01404a0e`]]);export{w as default};
@@ -1 +0,0 @@
1
- import"./cloud-session-DiJ37iee.js";import{t as e}from"./CloudAccountPage-DUCeHm0n.js";export{e as default};
@@ -1 +0,0 @@
1
- import{$n as e,Bi as t,Da as n,Fa as r,Gi as i,Ii as a,Li as o,Ni as s,On as c,Pn as l,Qt as u,Ra as d,Ri as f,Rn as p,Wi as m,Ya as h,Yn as ee,Zt as te,_r as ne,b as re,ga as g,i as ie,io as _,ja as v,ma as y,qi as b,r as ae,t as oe,zi as x}from"./index-DuGh2zls.js";import{r as se}from"./cloud-session-DiJ37iee.js";import{t as ce}from"./password-DFZGcIGP.js";var le={class:`cloud-account`},ue={class:`cloud-card`},de={class:`cloud-card__head`},fe={class:`cloud-card__headtext`},pe={class:`cloud-card__subtitle`},me={key:0,class:`panel`},he={class:`signup`},ge=[`href`],_e={key:1,class:`panel`},ve={class:`accounts`},ye=[`onClick`],be=[`src`,`alt`],xe={key:1,class:`avatar avatar--sm`},Se={class:`account__info`},Ce={class:`account__name`},we={key:0,class:`account__badge`},Te={class:`account__email`},Ee={key:0,class:`account__cloud`},De={class:`orgs`},Oe={class:`orgs__head`},ke={key:0,class:`orgs__empty`},Ae={key:1,class:`orgs__empty`},je=[`href`],Me={class:`orgs__list`},Ne={class:`org__row`},Pe={class:`org__info`},Fe={class:`org__name`},Ie={class:`org__state`},Le={class:`org__projects`},Re={key:0,class:`org__reset`},ze={class:`org__adopt`},Be={class:`org__reset-actions`},Ve={class:`org__reset-actions`},He={class:`org__reset-text`},Ue={class:`org__reset-actions`},We={class:`orgs`},Ge={class:`orgs__head`},Ke={key:0,class:`orgs__empty`},qe={key:1,class:`orgs__empty`},Je={key:2,class:`orgs__list`},Ye={class:`org__info`},Xe={class:`org__name`},Ze={key:0,class:`badge`},Qe={class:`org__state`},$e={class:`org-note`},et=[`href`],S=ee(b({__name:`CloudAccountPage`,setup(ee){let{accounts:b,currentAccount:S,signIn:tt,signOut:nt,refresh:rt}=se(),C=h(``),w=a(()=>b.value.find(e=>e.id===C.value)??S.value??b.value[0]??null);function it(e){return S.value?.id===e}let at=a(()=>new Set(b.value.map(e=>e.cloudUrl)).size>1);function ot(e){return oe(e.userId,{accountId:e.id})}function st(e,t){return(e||t||`?`).trim().split(/\s+/).slice(0,2).map(e=>e.charAt(0).toUpperCase()).join(``)||`?`}let T=h(``);async function ct(e){T.value=e;try{await nt(e),C.value===e&&(C.value=``),J.value=[],await $()}finally{T.value=``}}let lt=a(()=>ie()),E=a(()=>ae()),D=h(!1),O=h(``);async function k(){D.value=!0,O.value=``;try{await tt()}catch{O.value=`Impossible de joindre Runeya Cloud. Vérifiez la configuration du serveur local.`,D.value=!1}}let A=h([]),j=h(!1),M=h(``),N=h([]),P=te();function ut(e){let t=N.value.find(t=>t.orgId===e);if(!t)return`Non synchronisée`;switch(t.state){case`live`:return`Synchronisée`;case`connecting`:return`Connexion…`;case`unauthenticated`:return`Reconnexion au cloud requise`;case`outdated`:return t.lastIncompatibleVersion?`Mise à jour requise (plus récent que Runeya ${t.lastIncompatibleVersion})`:`Mise à jour de Runeya requise`;case`key-mismatch`:return`Clé de chiffrement différente de celle de l'organisation`;default:return`Arrêtée`}}let F=ne(),I=h({});async function dt(e){if(e.length)try{await p.cloudSync.rememberOrgNames.mutate({orgs:e.map(e=>({orgId:e.id,name:e.name}))})}catch{}}async function ft(){try{let e=await p.setup.getOrgKeys.query();I.value=Object.fromEntries(e.orgs.filter(e=>e.keyHex!==null).map(e=>[e.orgId,e.keyHex]))}catch{I.value={}}}async function pt(e){let t=I.value[e.id];if(t)try{await navigator.clipboard.writeText(t),F.add({severity:`success`,summary:`Copié`,detail:`Clé de ${e.name} copiée dans le presse-papiers`,life:2e3})}catch{F.add({severity:`error`,summary:`Erreur`,detail:`Impossible de copier dans le presse-papiers`,life:3e3})}}function mt(e){return N.value.find(t=>t.orgId===e)?.state===`key-mismatch`||L.value[e]===`mismatch`}let L=h({});async function ht(e){let t=await Promise.all(e.map(async e=>{try{let t=await p.cloudSync.orgKeyStatus.query({orgId:e.id});return[e.id,t.status]}catch{return[e.id,`unknown`]}}));L.value=Object.fromEntries(t)}let R=h({}),z=h({}),B=h({}),V=h({}),H=h(null),U=h(null);function gt(e){return/^[0-9a-f]{64}$/i.test((e??``).trim())}async function _t(e){H.value=e.id,B.value={...B.value,[e.id]:``};try{let t=await p.cloudSync.checkOrgKey.query({orgId:e.id,keyHex:(R.value[e.id]??``).trim()});V.value={...V.value,[e.id]:t.matches?`yes`:`no`}}catch(t){V.value={...V.value,[e.id]:void 0},B.value={...B.value,[e.id]:u(t)}}finally{H.value=null}}async function vt(e){U.value=e.id,B.value={...B.value,[e.id]:``};try{await p.cloudSync.adoptOrgKey.mutate({orgId:e.id,keyHex:(R.value[e.id]??``).trim(),masterPassword:z.value[e.id]??``}),R.value={...R.value,[e.id]:``},z.value={...z.value,[e.id]:``},V.value={...V.value,[e.id]:void 0},await q()}catch(t){B.value={...B.value,[e.id]:u(t)}}finally{U.value=null}}let W=h({}),G=h({}),K=h(null);async function yt(e){K.value=e.id,G.value={...G.value,[e.id]:``};try{await p.cloudSync.resetOrgKey.mutate({orgId:e.id}),W.value={...W.value,[e.id]:``},await q()}catch(t){G.value={...G.value,[e.id]:u(t)}}finally{K.value=null}}function bt(e){let t=P.projects.filter(t=>t.orgId===e).length;return t===0?`Aucun projet`:t===1?`1 projet`:`${t} projets`}async function q(){j.value=!0,M.value=``;try{let[e,t]=await Promise.all([re.organization.list(w.value?.id),p.cloudSync.list.query(),P.fetchAll(),ft()]);if(e.error){M.value=`Impossible de récupérer vos organisations.`;return}A.value=e.data??[],N.value=t,ht(A.value),dt(A.value)}catch(e){M.value=u(e)}finally{j.value=!1}}let J=h([]),Y=h(!1),X=h(``),Z=h(``),Q=new Intl.RelativeTimeFormat(`fr`,{numeric:`auto`});function xt(e){let t=new Date(e.lastSeenAt).getTime(),n=``;if(Number.isFinite(t)){let e=Math.round((t-Date.now())/6e4);n=Math.abs(e)<60?Q.format(e,`minute`):Math.abs(e)<1440?Q.format(Math.round(e/60),`hour`):Q.format(Math.round(e/1440),`day`)}return[e.kind===`device`?`Machine`:`Navigateur`,n&&`vu ${n}`,e.ipAddress].filter(Boolean).join(` · `)}async function $(){Y.value=!0,X.value=``;try{let e=w.value?.id;if(!e){J.value=[];return}J.value=(await p.cloudAuth.devices.query({accountId:e})).devices}catch(e){X.value=u(e)}finally{Y.value=!1}}async function St(e){Z.value=e.id,X.value=``;try{let{self:t}=await p.cloudAuth.revokeDevice.mutate({id:e.id,...w.value?{accountId:w.value.id}:{}});if(t){J.value=[],C.value=``,await rt();return}await $()}catch(e){X.value=u(e)}finally{Z.value=``}}return n(()=>w.value?.id,e=>{e&&(q(),$())},{immediate:!0}),(n,a)=>(y(),t(`div`,le,[o(`div`,ue,[o(`div`,de,[a[1]||=o(`div`,{class:`cloud-card__badge`},[o(`i`,{class:`pi pi-cloud`})],-1),o(`div`,fe,[a[0]||=o(`h1`,{class:`cloud-card__title`},`Runeya Cloud`,-1),o(`p`,pe,d(_(b).length?`Vos comptes`:`Connectez-vous pour synchroniser et collaborer`),1)])]),_(b).length?(y(),t(`div`,_e,[o(`ul`,ve,[(y(!0),t(s,null,g(_(b),n=>(y(),t(`li`,{key:n.id,class:r([`account`,{"account--inspected":w.value?.id===n.id}])},[o(`button`,{type:`button`,class:`account__pick`,onClick:e=>C.value=n.id},[n.image?(y(),t(`img`,{key:0,src:ot(n),alt:n.name,class:`avatar avatar--img avatar--sm`},null,8,be)):(y(),t(`div`,xe,d(st(n.name,n.email)),1)),o(`span`,Se,[o(`strong`,Ce,[m(d(n.name||n.email)+` `,1),it(n.id)?(y(),t(`span`,we,`projet ouvert`)):x(``,!0)]),o(`span`,Te,d(n.email),1),at.value?(y(),t(`span`,Ee,d(n.cloudUrl),1)):x(``,!0)])],8,ye),i(_(e),{icon:`pi pi-sign-out`,severity:`secondary`,text:``,rounded:``,size:`small`,loading:T.value===n.id,title:`Déconnecter ${n.email}`,"aria-label":`Déconnecter ${n.email}`,onClick:e=>ct(n.id)},null,8,[`loading`,`title`,`aria-label`,`onClick`])],2))),128))]),i(_(e),{label:`Lier un autre compte`,icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`accounts__add`,loading:D.value,onClick:k},null,8,[`loading`]),o(`div`,De,[o(`div`,Oe,[a[4]||=o(`h2`,{class:`orgs__title`},`Organisations`,-1),i(_(e),{icon:`pi pi-refresh`,severity:`secondary`,text:``,rounded:``,size:`small`,loading:j.value,"aria-label":`Rafraîchir`,onClick:q},null,8,[`loading`])]),j.value&&!A.value.length?(y(),t(`p`,ke,`Chargement…`)):A.value.length?(y(),t(s,{key:2},[o(`ul`,Me,[(y(!0),t(s,null,g(A.value,n=>(y(),t(`li`,{key:n.id,class:`org`},[o(`div`,Ne,[o(`div`,Pe,[o(`strong`,Fe,d(n.name),1),o(`span`,Ie,d(ut(n.id)),1)]),o(`span`,Le,d(bt(n.id)),1),I.value[n.id]?(y(),f(_(e),{key:0,icon:`pi pi-copy`,text:``,rounded:``,size:`small`,severity:`secondary`,title:`Copier la clé de cette organisation`,onClick:e=>pt(n)},null,8,[`onClick`])):x(``,!0)]),mt(n.id)?(y(),t(`div`,Re,[a[11]||=o(`p`,{class:`org__reset-text`},[m(` Cette organisation référence une autre clé de chiffrement que celle de cette machine, donc rien ne se synchronise. Deux issues, et elles ne se valent pas : adopter la clé de l'organisation rend lisible ce qui a déjà été chiffré sous elle ; la réinitialiser laisse tout cela `),o(`strong`,null,`définitivement illisible`),m(` et oblige les autres membres à recevoir la nouvelle clé. `)],-1),o(`div`,ze,[a[9]||=o(`p`,{class:`org__reset-text`},[o(`strong`,null,`Vous avez la clé de l'organisation ?`),m(` Collez-la : cette machine l'adoptera pour cette organisation. Seuls son coffre et ceux de ses projets sont re-chiffrés — vos autres organisations gardent la leur — et une sauvegarde est déposée dans chacun avant écriture. `)],-1),o(`div`,Be,[i(_(c),{modelValue:R.value[n.id],"onUpdate:modelValue":e=>R.value[n.id]=e,placeholder:`clé en 64 caractères hexadécimaux`,class:`org__reset-input`,autocomplete:`off`},null,8,[`modelValue`,`onUpdate:modelValue`]),i(_(e),{label:`Vérifier`,size:`small`,outlined:``,disabled:!gt(R.value[n.id])||H.value===n.id,loading:H.value===n.id,onClick:e=>_t(n)},null,8,[`disabled`,`loading`,`onClick`])]),V.value[n.id]===`no`?(y(),f(_(l),{key:0,severity:`warn`,closable:!1},{default:v(()=>[...a[7]||=[m(` Cette clé n'ouvre pas le canari de l'organisation. `,-1)]]),_:1})):x(``,!0),V.value[n.id]===`yes`?(y(),t(s,{key:1},[i(_(l),{severity:`success`,closable:!1},{default:v(()=>[...a[8]||=[m(` Cette clé est bien celle de l'organisation. `,-1)]]),_:1}),o(`div`,Ve,[i(_(ce),{modelValue:z.value[n.id],"onUpdate:modelValue":e=>z.value[n.id]=e,placeholder:`master password de cette machine`,feedback:!1,toggleMask:``,class:`org__reset-input`,inputClass:`w-full`},null,8,[`modelValue`,`onUpdate:modelValue`]),i(_(e),{label:`Adopter cette clé`,size:`small`,disabled:!z.value[n.id]||U.value===n.id,loading:U.value===n.id,onClick:e=>vt(n)},null,8,[`disabled`,`loading`,`onClick`])])],64)):x(``,!0),B.value[n.id]?(y(),f(_(l),{key:2,severity:`error`,closable:!1},{default:v(()=>[m(d(B.value[n.id]),1)]),_:2},1024)):x(``,!0)]),o(`p`,He,[a[10]||=m(` Personne n'a plus la clé ? Il reste la réinitialisation, qui fait repartir la synchronisation sous la clé d'ici. Pour confirmer, saisissez le nom de l'organisation : `,-1),o(`code`,null,d(n.name),1)]),o(`div`,Ue,[i(_(c),{modelValue:W.value[n.id],"onUpdate:modelValue":e=>W.value[n.id]=e,placeholder:n.name,class:`org__reset-input`,autocomplete:`off`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),i(_(e),{label:`Réinitialiser la clé`,severity:`danger`,size:`small`,disabled:W.value[n.id]?.trim()!==n.name||K.value===n.id,loading:K.value===n.id,onClick:e=>yt(n)},null,8,[`disabled`,`loading`,`onClick`])]),G.value[n.id]?(y(),f(_(l),{key:0,severity:`error`,closable:!1},{default:v(()=>[m(d(G.value[n.id]),1)]),_:2},1024)):x(``,!0)])):x(``,!0)]))),128))]),a[12]||=o(`p`,{class:`orgs__hint`},` Ouvrez un projet depuis le sélecteur en bas de la fenêtre pour le synchroniser sur cette machine. `,-1)],64)):(y(),t(`p`,Ae,[a[5]||=m(` Aucune organisation. Créez-en une sur `,-1),o(`a`,{href:E.value,target:`_blank`,rel:`noopener`,class:`link link--strong`},`Runeya Cloud`,8,je),a[6]||=m(`. `,-1)])),M.value?(y(),f(_(l),{key:3,severity:`error`,closable:!1},{default:v(()=>[m(d(M.value),1)]),_:1})):x(``,!0)]),o(`div`,We,[o(`div`,Ge,[a[13]||=o(`h2`,{class:`orgs__title`},`Sessions actives`,-1),i(_(e),{icon:`pi pi-refresh`,severity:`secondary`,text:``,rounded:``,size:`small`,loading:Y.value,"aria-label":`Rafraîchir`,onClick:$},null,8,[`loading`])]),Y.value&&!J.value.length?(y(),t(`p`,Ke,`Chargement…`)):J.value.length?(y(),t(`ul`,Je,[(y(!0),t(s,null,g(J.value,n=>(y(),t(`li`,{key:n.id,class:`org`},[o(`div`,Ye,[o(`strong`,Xe,[o(`i`,{class:r(n.kind===`device`?`pi pi-desktop`:`pi pi-globe`)},null,2),m(` `+d(n.name)+` `,1),n.current?(y(),t(`span`,Ze,`cette machine`)):x(``,!0)]),o(`span`,Qe,d(xt(n)),1)]),i(_(e),{label:n.current?`Délier`:`Révoquer`,icon:`pi pi-times`,severity:`danger`,size:`small`,text:``,loading:Z.value===n.id,onClick:e=>St(n)},null,8,[`label`,`loading`,`onClick`])]))),128))])):(y(),t(`p`,qe,`Aucune session active.`)),X.value?(y(),f(_(l),{key:3,severity:`error`,closable:!1},{default:v(()=>[m(d(X.value),1)]),_:1})):x(``,!0)]),o(`div`,$e,[a[16]||=o(`i`,{class:`pi pi-info-circle`},null,-1),o(`span`,null,[a[14]||=m(` La gestion des organisations se fait sur `,-1),o(`a`,{href:E.value,target:`_blank`,rel:`noopener`,class:`link link--strong`},`Runeya Cloud`,8,et),a[15]||=m(`. `,-1)])])])):(y(),t(`div`,me,[a[3]||=o(`p`,{class:`signin-note`},` La connexion se fait sur Runeya Cloud. Vous serez redirigé pour autoriser cette application locale, puis ramené ici. `,-1),i(_(e),{loading:D.value,label:`Se connecter avec Runeya Cloud`,icon:`pi pi-external-link`,class:`submit-btn`,onClick:k},null,8,[`loading`]),O.value?(y(),f(_(l),{key:0,severity:`error`,closable:!1},{default:v(()=>[m(d(O.value),1)]),_:1})):x(``,!0),o(`div`,he,[a[2]||=o(`span`,null,`Pas encore de compte ?`,-1),o(`a`,{href:lt.value,target:`_blank`,rel:`noopener`,class:`link link--strong`},`Créez-en un sur Runeya Cloud`,8,ge)])]))])]))}}),[[`__scopeId`,`data-v-c694908a`]]);export{S as t};
@@ -1,2 +0,0 @@
1
- import{$n as e,Bi as t,Fa as n,Gi as r,Ii as i,Li as a,R as o,Ra as s,Ri as c,Ya as l,Yn as u,Zn as d,_ as ee,b as te,en as f,fr as p,io as m,ja as ne,ma as h,n as g,pt as re,qi as _,r as v,t as ie,tt as ae,ut as oe,v as se,xr as ce,y}from"./index-DuGh2zls.js";import{r as b}from"./cloud-session-DiJ37iee.js";import{n as x}from"./src-BeueTtBP.js";import{t as S}from"./cloud-chat.store-BKPvf-qg.js";import"./useProjectCloudOrg-DL8Wyd1i.js";import{t as C}from"./useCloudOrg-Bd83ZcEV.js";var w={class:`cloud-chat`},T={class:`topbar`},E={key:0,class:`connect-cta`},D={class:`connect-cta__badge`},O={class:`connect-cta__title`},k={class:`connect-cta__desc`},A={key:1,class:`notice`},j=u(_({__name:`CloudMessagingPage`,setup(u){let{t:_}=ce(),j=p(),{user:M}=b(),N=i(()=>M.value?.id),P=i(()=>g());function F(e){return ie(e,{orgId:L.value})}function I(e,t){return t?_(`cloudMessaging.${e}`,t):_(`cloudMessaging.${e}`)}let{orgId:L,orgSlug:R,members:z,unavailability:B}=C(),V=l([]),{columnTitles:H}=se(V);function U(e,t){return H.value[ee(e,t)]}function W(){R.value&&window.open(`${v()}/app/${R.value}/settings/org/billing`,`_blank`,`noopener`)}let G=S();function le(e){G.noteChannelRead(e)}let K=i(()=>v().replace(/\/+$/,``));function ue(e){let t=/^\/app\/[^/]+(\/kanban\/[^/]+(?:\/card\/[^/?#]+)?)(?:[?#].*)?$/.exec(e);return t?t[1]:null}function de(e,t){if(t!==K.value){j.push(e);return}let n=ue(e);n?j.push(n):window.open(`${t}${e}`,`_blank`,`noopener`)}let{openWithContext:q}=f(),J=re(),Y=l(null),X=l(!1),Z=l(null);function Q(){let e=Z.value;if(!e)return``;let t=e=>new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}),n=e.messages.map(e=>`[${t(e.createdAt)}] ${e.userName}: ${e.content}`).join(`
2
- `);return`Messages de la conversation « ${e.title} » :\n\n${n}`}function $(){return _(`cloudMessaging.aiContextLabel`,{count:Z.value?.messages.length??0})}function fe(e){e.messages.length&&(Z.value=e,X.value=!0)}async function pe(e,t){let n=Q();n.trim()&&(await J.createConversation({runner:e,providerId:t}),q({text:n,label:$(),icon:`pi-comments`}))}function me(e,t,n){X.value=!1,Y.value?.showScenarioDialog(e,void 0,t,n??void 0)}async function he(e,t){X.value=!1,await pe(e===`keep`?void 0:e,t??void 0)}async function ge(e,t,n,r){let i=Q(),a=t||i,o=await J.createConversation({scenarioId:e,scenarioInput:a});if(a&&o){let t=n!==`keep`||r.trim()?{...n===`keep`?{}:{runnerOverride:n},...r.trim()?{modelOverride:r.trim()}:{}}:void 0;J.startScenarioRun(o.id,e,a,void 0,t)}q({text:i,label:$(),icon:`pi-comments`})}return(i,l)=>(h(),t(`div`,w,[a(`div`,T,[r(m(e),{icon:`pi pi-arrow-left`,text:``,rounded:``,onClick:l[0]||=e=>m(j).push({name:`cloud-account`})}),a(`h1`,null,s(m(_)(`cloudMessaging.title`)),1)]),m(M)?m(L)?(h(),c(m(x),{key:2,class:`panel`,client:m(te),"org-id":m(L),"cloud-api-base-url":P.value,"avatar-url":F,"stream-url":m(y),"notify-on-unread":!1,"current-user-id":N.value,members:m(z),t:I,"internal-origins":[K.value],"enable-select-to-ai":``,"card-column":U,onCardRefs:l[2]||=e=>V.value=e,onChannelRead:le,onAiContext:fe,onInternalLink:de,onUpgrade:W},null,8,[`client`,`org-id`,`cloud-api-base-url`,`stream-url`,`current-user-id`,`members`,`internal-origins`])):(h(),t(`div`,A,s(m(B)===`not-member`?m(_)(`cloudMessaging.orgNotAccessible`):m(_)(`cloudMessaging.noProjectOrg`)),1)):(h(),t(`div`,E,[a(`div`,D,[a(`i`,{class:n(m(ae))},null,2)]),a(`h2`,O,s(m(_)(`cloudMessaging.notConnectedTitle`)),1),a(`p`,k,s(m(_)(`cloudMessaging.notConnectedDesc`)),1),r(m(e),{label:m(_)(`cloudMessaging.connectAction`),icon:`pi pi-cloud`,onClick:l[1]||=e=>m(j).push({name:`cloud-account`})},null,8,[`label`])])),r(m(d),{visible:X.value,header:m(_)(`kanban.board.launchAiDialog.header`),modal:!0,style:{width:`700px`,maxHeight:`80vh`},breakpoints:{"800px":`95vw`},pt:{content:{style:`overflow-y:auto`}},"onUpdate:visible":l[3]||=e=>{e||(X.value=!1)}},{default:ne(()=>[r(oe,{compact:``,onSelectScenario:me,onSkip:he})]),_:1},8,[`visible`,`header`]),r(o,{ref_key:`aiModalsRef`,ref:Y,onConfirmScenarioStart:ge},null,512)]))}}),[[`__scopeId`,`data-v-b28e1ca2`]]);export{j as default};
@@ -1,164 +0,0 @@
1
- import{$n as e,Ai as t,An as n,Bi as r,Da as i,Dn as a,Fa as o,Gi as s,Hi as c,Ii as l,Ka as u,La as d,Li as f,Ma as p,Ni as m,On as h,Qt as g,Ra as _,Ri as v,Rn as y,Sr as b,Wi as x,Ya as S,Yn as C,Zn as ee,Zt as w,_a as T,_i as E,_n as D,_r as te,ai as O,ba as k,c as A,dt as j,er as M,fa as N,fn as P,fr as F,ga as I,gr as L,hi as R,io as z,ja as B,ji as V,ma as H,mt as U,na as W,nr as G,p as K,pi as q,pn as ne,qi as J,ra as re,u as ie,ua as ae,va as oe,xn as se,xr as Y,ya as ce,zi as X}from"./index-DuGh2zls.js";import{r as le}from"./cloud-session-DiJ37iee.js";import{t as ue}from"./ProcessControls-B5dlAAdP.js";import"./OrgKeyPrompt-CRf1ZPik.js";import"./useProjectCatalog-CnGHIrnh.js";import{n as de,r as fe,t as pe}from"./DirectoryPickerDialog-BlFmkPJx.js";import{t as me}from"./card-BQ1OXNVV.js";var he={class:`card-title-row`},ge={class:`card-title`},_e=[`aria-label`],ve={class:`card-description`},ye={class:`card-meta`},be={class:`meta-item`},xe=C(J({__name:`ProjectCard`,props:{project:{},active:{type:Boolean}},emits:[`click`],setup(e,{emit:t}){let n=t,{t:i}=Y(),a=l(()=>i(`dashboard.cloudProject`));function c(e,t){return!e||e.length<=t?e||``:e.slice(0,t)+`...`}return(t,i)=>{let l=ce(`tooltip`);return H(),v(z(me),{class:o([`project-card`,{"project-card--active":e.active}]),onClick:i[0]||=e=>n(`click`)},{title:B(()=>[f(`div`,he,[f(`span`,ge,_(e.project.name),1),e.project.orgId?p((H(),r(`i`,{key:0,class:`pi pi-cloud card-cloud`,"aria-label":a.value},null,8,_e)),[[l,a.value,void 0,{top:!0}]]):X(``,!0),s(z(M),{value:e.project.serviceIds.length,severity:`info`},null,8,[`value`]),T(t.$slots,`actions`,{},void 0,!0)])]),content:B(()=>[f(`p`,ve,_(c(e.project.description??``,120)),1),f(`div`,ye,[f(`span`,be,[i[1]||=f(`i`,{class:`pi pi-box`},null,-1),x(` `+_(e.project.serviceIds.length)+` service`+_(e.project.serviceIds.length===1?``:`s`),1)])])]),_:3},8,[`class`])}}}),[[`__scopeId`,`data-v-02bfd37c`]]),Se={class:`panel`},Ce={class:`panel__header`},we={class:`panel__title`},Te={key:0,class:`panel__empty`},Ee={key:1,class:`project-list`},De=[`aria-label`,`onClick`],Oe={key:0,class:`project-menu`},ke={class:`dialog-field`},Ae={for:`dashboard-edit-name`},je={class:`dialog-field`},Me={for:`dashboard-edit-desc`},Ne=C(J({__name:`ProjectsPanel`,setup(n){let{t:i}=Y(),o=te(),c=L(),u=w(),d=se(),{isLinked:p}=le(),b=S(!1),C=S(null),T=S(null),E=S(!1),O=S(!1),k=S(null),A=S(!1),j=S(null),M=S({name:``,description:``}),N=S(!1),P=S(null),F=l(()=>u.projects.find(e=>e.id===d.activeProjectId&&(e.orgId??null)===(d.activeOrgId??null))??null);function R(e){return F.value?.id===e.id&&(F.value?.orgId??null)===(e.orgId??null)}function U(e){d.setActiveProject(e.id,e.orgId??null)}function W(e,t){C.value=t,T.value?.toggle(e)}function G(){T.value?.hide()}function K(e){o.add({severity:`error`,summary:i(`common.error`),detail:g(e),life:5e3})}function q(e){o.add({severity:`success`,summary:i(`projectList.created`),detail:i(`projectList.createdDetail`,{name:e.name}),life:3e3})}function ne(e){G(),k.value=e,O.value=!0}function J(e){j.value=e,M.value={name:e.name,description:e.description??``},A.value=!0,G()}async function re(){let e=j.value;if(!(!e||!M.value.name.trim())){b.value=!0;try{if(!await u.update(e,{name:M.value.name.trim(),description:M.value.description.trim()})){K(u.error);return}A.value=!1,o.add({severity:`success`,summary:i(`projectDetail.nameUpdated`),life:2e3})}finally{b.value=!1}}}async function ie(e){if(G(),j.value=e,P.value=null,e.orgId)try{let{path:t}=await y.project.getLocalPath.query({id:e.id,orgId:e.orgId});P.value=t??null}catch{P.value=null}N.value=!0}function ae(e){P.value=e}function oe(e){G(),c.require({message:i(`dashboard.deleteProjectMessage`,{name:e.name}),header:i(`projectDetail.deleteProjectTitle`),icon:`pi pi-exclamation-triangle`,rejectLabel:i(`projectDetail.deleteProjectCancel`),acceptLabel:i(`projectDetail.deleteProjectConfirm`),acceptProps:{severity:`danger`},accept:()=>{ce(e)}})}async function ce(e){let t=R(e);if(!await u.remove(e)){K(u.error);return}if(t){let e=u.projects[0];e?d.setActiveProject(e.id,e.orgId??null):d.resetLaunch()}o.add({severity:`success`,summary:i(`projectDetail.projectDeleted`),life:2e3})}return(n,o)=>(H(),r(`section`,Se,[f(`div`,Ce,[f(`h2`,we,_(z(i)(`dashboard.projects`)),1),s(z(a),{value:String(z(u).projectCount),severity:`secondary`},null,8,[`value`]),s(z(e),{icon:`pi pi-plus`,label:z(i)(`projectList.newProject`),size:`small`,text:``,"data-testid":`new-project-btn`,onClick:o[0]||=e=>E.value=!0},null,8,[`label`])]),z(u).projects.length===0?(H(),r(`p`,Te,_(z(i)(`dashboard.noProjects`)),1)):(H(),r(`div`,Ee,[(H(!0),r(m,null,I(z(u).projects,e=>(H(),v(xe,{key:`${e.orgId??`local`}:${e.id}`,project:e,active:R(e),"data-testid":`project-row-link`,onClick:t=>U(e)},{actions:B(()=>[f(`button`,{type:`button`,class:`project-menu-button`,"aria-label":z(i)(`common.actions`),onClick:V(t=>W(t,e),[`stop`])},[...o[13]||=[f(`i`,{class:`pi pi-ellipsis-v`},null,-1)]],8,De)]),_:2},1032,[`project`,`active`,`onClick`]))),128))])),s(z(D),{ref_key:`menu`,ref:T},{default:B(()=>[C.value?(H(),r(`div`,Oe,[f(`button`,{type:`button`,class:`project-menu__item`,onClick:o[1]||=e=>J(C.value)},[o[14]||=f(`i`,{class:`pi pi-pencil`},null,-1),x(_(z(i)(`dashboard.editProject`)),1)]),!C.value.orgId&&z(p)?(H(),r(`button`,{key:0,type:`button`,class:`project-menu__item`,"data-testid":`project-publish`,onClick:o[2]||=e=>ne(C.value)},[o[15]||=f(`i`,{class:`pi pi-cloud-upload`},null,-1),x(_(z(i)(`projectSwitcher.publish`)),1)])):X(``,!0),C.value.orgId?(H(),r(`button`,{key:1,type:`button`,class:`project-menu__item`,"data-testid":`project-local-path`,onClick:o[3]||=e=>ie(C.value)},[o[16]||=f(`i`,{class:`pi pi-folder-open`},null,-1),x(_(z(i)(`projectDetail.cloud.localPath`)),1)])):X(``,!0),f(`button`,{type:`button`,class:`project-menu__item project-menu__item--danger`,onClick:o[4]||=e=>oe(C.value)},[o[17]||=f(`i`,{class:`pi pi-trash`},null,-1),x(_(z(i)(`projectDetail.deleteProjectTitle`)),1)])])):X(``,!0)]),_:1},512),s(fe,{visible:E.value,"onUpdate:visible":o[5]||=e=>E.value=e,onCreated:q},null,8,[`visible`]),s(de,{visible:O.value,"onUpdate:visible":o[6]||=e=>O.value=e,project:k.value,onPublished:o[7]||=e=>z(u).fetchAll()},null,8,[`visible`,`project`]),s(z(ee),{visible:A.value,"onUpdate:visible":o[11]||=e=>A.value=e,header:z(i)(`dashboard.editProject`),modal:``,style:{width:`420px`}},{footer:B(()=>[s(z(e),{label:z(i)(`actions.cancel`),severity:`secondary`,text:``,disabled:b.value,onClick:o[10]||=e=>A.value=!1},null,8,[`label`,`disabled`]),s(z(e),{label:z(i)(`actions.save`),icon:`pi pi-check`,loading:b.value,disabled:!M.value.name.trim(),onClick:re},null,8,[`label`,`loading`,`disabled`])]),default:B(()=>[f(`div`,ke,[f(`label`,Ae,_(z(i)(`common.name`)),1),s(z(h),{id:`dashboard-edit-name`,modelValue:M.value.name,"onUpdate:modelValue":o[8]||=e=>M.value.name=e,autofocus:``,onKeyup:t(re,[`enter`])},null,8,[`modelValue`])]),f(`div`,je,[f(`label`,Me,_(z(i)(`common.description`)),1),s(z(h),{id:`dashboard-edit-desc`,modelValue:M.value.description,"onUpdate:modelValue":o[9]||=e=>M.value.description=e,onKeyup:t(re,[`enter`])},null,8,[`modelValue`])])]),_:1},8,[`visible`,`header`]),j.value?.orgId?(H(),v(pe,{key:2,visible:N.value,"onUpdate:visible":o[12]||=e=>N.value=e,"project-id":j.value.id,"org-id":j.value.orgId,"project-name":j.value.name,"initial-path":P.value,onChosen:ae},null,8,[`visible`,`project-id`,`org-id`,`project-name`,`initial-path`])):X(``,!0)]))}}),[[`__scopeId`,`data-v-96906af6`]]);function Pe(e,t){let n=new Map;for(let e of t)e.from!==e.to&&n.set(e.to,[...n.get(e.to)??[],e.from]);let r=new Map,i=new Set,a=e=>{let t=r.get(e);if(t!==void 0)return t;if(i.has(e))return 0;i.add(e);let o=0;for(let t of n.get(e)??[])o=Math.max(o,a(t)+1);return i.delete(e),r.set(e,o),o};for(let t of e)a(t.id);return r}function Fe(e,t,n){if(e.length===0)return{nodes:[],width:n.padding*2,height:n.padding*2};let r=Pe(e,t),i=new Map;for(let t of e){let e=r.get(t.id)??0;i.set(e,[...i.get(e)??[],t])}let a=Math.max(...[...i.values()].map(e=>e.length)),o=Math.max(...i.keys()),s=n.padding*2+a*n.rowHeight,c=n.padding*2+(o+1)*n.columnWidth,l=[];for(let[e,t]of i){let r=(a-t.length)/2;t.forEach((t,i)=>{l.push({...t,depth:e,x:n.padding+e*n.columnWidth+n.columnWidth/2,y:n.padding+(r+i+.5)*n.rowHeight})})}let u=new Map(l.map(e=>[e.id,e]));return{nodes:e.map(e=>u.get(e.id)),width:c,height:s}}var Z=1.1,Ie=16;function Le(e){return Math.min(3,Math.max(.2,e))}function Re(e,t,n){let r=Le(e.scale*t),i=r/e.scale;return{scale:r,x:n.x-(n.x-e.x)*i,y:n.y-(n.y-e.y)*i}}function ze(e,t,n){return{...e,x:e.x+t,y:e.y+n}}function Be(e,t){if(t.width<=0||t.height<=0||e.width<=0||e.height<=0)return{x:0,y:0,scale:1};let n=Math.min(Ie,t.width/4,t.height/4),r=Le(Math.min(1,(t.width-2*n)/e.width,(t.height-2*n)/e.height));return{scale:r,x:(t.width-e.width*r)/2,y:(t.height-e.height*r)/2}}function Ve(){let e=S({x:0,y:0,scale:1}),t=S(!1),n=null,r=!1;function i(t){t.preventDefault();let n=t.currentTarget.getBoundingClientRect(),r=t.deltaY<0?Z:1/Z;e.value=Re(e.value,r,{x:t.clientX-n.left,y:t.clientY-n.top})}function a(t){if(!n)return;let i=t.clientX-n.x,a=t.clientY-n.y;(i!==0||a!==0)&&(r=!0),n={x:t.clientX,y:t.clientY},e.value=ze(e.value,i,a)}function o(){n=null,t.value=!1,window.removeEventListener(`pointermove`,a),window.removeEventListener(`pointerup`,o),window.removeEventListener(`pointercancel`,o),r&&setTimeout(()=>{r=!1},0)}function s(e){e.button===0&&(r=!1,n={x:e.clientX,y:e.clientY},t.value=!0,window.addEventListener(`pointermove`,a),window.addEventListener(`pointerup`,o),window.addEventListener(`pointercancel`,o))}function c(t,n){e.value=Be(t,n)}let l=e=>({x:e.width/2,y:e.height/2});function d(t){e.value=Re(e.value,Z*Z,l(t))}function f(t){e.value=Re(e.value,1/(Z*Z),l(t))}return u(o),{transform:e,isPanning:t,onWheel:i,onPointerDown:s,fit:c,zoomIn:d,zoomOut:f,dragJustEnded:()=>r}}var He={class:`panel service-graph`},Ue=[`aria-expanded`],We={class:`panel__title`},Ge={class:`service-graph__hint`},Ke={key:0,class:`panel__empty`},qe={key:1,class:`panel__empty`},Je={key:2,class:`panel__empty`},Ye={key:0,class:`panel__empty`},Xe={class:`service-graph__controls`},Ze=[`title`,`aria-label`],Qe=[`title`,`aria-label`],$e=[`title`,`aria-label`],et=[`viewBox`,`width`,`height`,`aria-label`],tt=[`d`],nt=[`aria-label`,`onMouseenter`,`onFocus`,`onClick`,`onKeydown`],rt=[`x`,`y`],it=[`x`,`y`],at=[`x`,`y`],ot={key:1,class:`service-graph__keys`},st={key:2,class:`service-graph__warnings`},ct=210,lt=84,ut=24,dt=150,ft=44,pt=`runeya.dashboard.serviceGraphCollapsed`,mt=C(J({__name:`ServiceGraphPanel`,props:{project:{}},setup(e){let n=e,{t:a}=Y(),s=F(),c=S([]),u=S([]),p=S([]),h=S(!1),g=S(!1),v=S(null);function b(){try{return localStorage.getItem(pt)!==`false`}catch{return!0}}let C=S(b());function ee(){C.value=!C.value;try{localStorage.setItem(pt,String(C.value))}catch{}}i(C,e=>{e||E()});function w(){c.value=[],u.value=[],p.value=[]}let T=0;async function E(){let e=n.project,t=++T;if(!e||C.value){w(),h.value=!1,g.value=!1;return}h.value=!0,g.value=!1;try{let n=await y.project.graph.query({id:e.id,orgId:e.orgId??null});if(t!==T)return;c.value=n.nodes,u.value=n.edges,p.value=n.dangling}catch{if(t!==T)return;g.value=!0,w()}finally{t===T&&(h.value=!1)}}i(()=>n.project?`${n.project.id}|${n.project.orgId??``}`:null,E,{immediate:!0});let D=l(()=>Fe(c.value,u.value,{columnWidth:ct,rowHeight:lt,padding:ut})),te=l(()=>new Map(D.value.nodes.map(e=>[e.id,e]))),O=l(()=>u.value.flatMap(e=>{let t=te.value.get(e.from),n=te.value.get(e.to);if(!t||!n)return[];let r=t.x+dt/2,i=n.x-dt/2,a=Math.max(40,Math.abs(i-r)/2);return[{...e,id:`${e.from}->${e.to}`,path:`M ${r} ${t.y} C ${r+a} ${t.y}, ${i-a} ${n.y}, ${i} ${n.y}`}]}));function k(e){return v.value!==null&&(e.from===v.value||e.to===v.value)}function A(e){return v.value===null||v.value===e?!1:!u.value.some(t=>t.from===v.value&&t.to===e||t.to===v.value&&t.from===e)}let j=l(()=>{if(!v.value)return[];let e=new Set;for(let t of u.value)if(t.from===v.value||t.to===v.value)for(let n of t.keys)e.add(n);return[...e].sort()});function M(e){return c.value.find(t=>t.id===e)}let N=S(null),P=Ve(),{transform:L,isPanning:R}=P;function B(){return{width:N.value?.clientWidth??0,height:N.value?.clientHeight??0}}function U(){P.fit({width:D.value.width,height:D.value.height},B())}i(()=>`${D.value.width}x${D.value.height}`,()=>void re(U),{immediate:!0});function W(e){P.dragJustEnded()||s.push(`/services/${e}`)}return(e,n)=>(H(),r(`section`,He,[f(`button`,{type:`button`,class:o([`panel__header service-graph__toggle`,{"service-graph__toggle--collapsed":C.value}]),"aria-expanded":!C.value,onClick:ee},[f(`i`,{class:o([`pi`,C.value?`pi-chevron-right`:`pi-chevron-down`]),"aria-hidden":`true`},null,2),f(`h2`,We,_(z(a)(`dashboard.graphTitle`)),1),f(`span`,Ge,_(z(a)(`dashboard.graphHint`)),1)],10,Ue),C.value?X(``,!0):(H(),r(m,{key:0},[h.value?(H(),r(`p`,Ke,_(z(a)(`dashboard.graphLoading`)),1)):g.value?(H(),r(`p`,qe,_(z(a)(`dashboard.graphFailed`)),1)):c.value.length===0?(H(),r(`p`,Je,_(z(a)(`dashboard.graphNoServices`)),1)):(H(),r(m,{key:3},[u.value.length===0?(H(),r(`p`,Ye,_(z(a)(`dashboard.graphNoLinks`)),1)):X(``,!0),f(`div`,{ref_key:`frame`,ref:N,class:o([`service-graph__frame`,{"service-graph__frame--panning":z(R)}]),onWheel:n[7]||=(...e)=>z(P).onWheel&&z(P).onWheel(...e),onPointerdown:n[8]||=(...e)=>z(P).onPointerDown&&z(P).onPointerDown(...e),onDblclick:V(U,[`self`])},[f(`div`,Xe,[f(`button`,{type:`button`,class:`service-graph__control`,title:z(a)(`dashboard.graphZoomIn`),"aria-label":z(a)(`dashboard.graphZoomIn`),onClick:n[0]||=e=>z(P).zoomIn(B()),onPointerdown:n[1]||=V(()=>{},[`stop`])},[...n[9]||=[f(`i`,{class:`pi pi-plus`,"aria-hidden":`true`},null,-1)]],40,Ze),f(`button`,{type:`button`,class:`service-graph__control`,title:z(a)(`dashboard.graphZoomOut`),"aria-label":z(a)(`dashboard.graphZoomOut`),onClick:n[2]||=e=>z(P).zoomOut(B()),onPointerdown:n[3]||=V(()=>{},[`stop`])},[...n[10]||=[f(`i`,{class:`pi pi-minus`,"aria-hidden":`true`},null,-1)]],40,Qe),f(`button`,{type:`button`,class:`service-graph__control`,title:z(a)(`dashboard.graphFit`),"aria-label":z(a)(`dashboard.graphFit`),onClick:U,onPointerdown:n[4]||=V(()=>{},[`stop`])},[...n[11]||=[f(`i`,{class:`pi pi-arrows-alt`,"aria-hidden":`true`},null,-1)]],40,$e)]),(H(),r(`svg`,{class:`service-graph__svg`,viewBox:`0 0 ${D.value.width} ${D.value.height}`,width:D.value.width,height:D.value.height,style:d({transform:`translate(${z(L).x}px, ${z(L).y}px) scale(${z(L).scale})`}),role:`img`,"aria-label":z(a)(`dashboard.graphAria`,{count:u.value.length})},[n[12]||=f(`defs`,null,[f(`marker`,{id:`service-graph-arrow`,viewBox:`0 0 10 10`,refX:`9`,refY:`5`,markerWidth:`6`,markerHeight:`6`,orient:`auto-start-reverse`},[f(`path`,{d:`M 0 0 L 10 5 L 0 10 z`,class:`service-graph__arrow-head`})])],-1),(H(!0),r(m,null,I(O.value,e=>(H(),r(`path`,{key:e.id,d:e.path,class:o([`service-graph__edge`,{"service-graph__edge--active":k(e),"service-graph__edge--dimmed":v.value!==null&&!k(e)}]),"marker-end":`url(#service-graph-arrow)`},null,10,tt))),128)),(H(!0),r(m,null,I(D.value.nodes,e=>(H(),r(`g`,{key:e.id,class:o([`service-graph__node`,{"service-graph__node--dimmed":A(e.id)}]),tabindex:`0`,role:`button`,"aria-label":e.name,onMouseenter:t=>v.value=e.id,onMouseleave:n[5]||=e=>v.value=null,onFocus:t=>v.value=e.id,onBlur:n[6]||=e=>v.value=null,onClick:t=>W(e.id),onKeydown:[t(V(t=>W(e.id),[`prevent`]),[`enter`]),t(V(t=>W(e.id),[`prevent`]),[`space`])]},[f(`rect`,{x:e.x-dt/2,y:e.y-ft/2,width:dt,height:ft,rx:`8`,class:o([`service-graph__box`,{"service-graph__box--ambiguous":e.ambiguousSlug}])},null,10,rt),f(`text`,{x:e.x,y:e.y-3,class:`service-graph__name`},_(e.name),9,it),f(`text`,{x:e.x,y:e.y+12,class:`service-graph__slug`},_(e.slug),9,at)],42,nt))),128))],12,et))],34),j.value.length>0?(H(),r(`p`,ot,[x(_(z(a)(`dashboard.graphVia`))+` `,1),(H(!0),r(m,null,I(j.value,e=>(H(),r(`code`,{key:e},_(e),1))),128))])):X(``,!0),p.value.length>0?(H(),r(`ul`,st,[(H(!0),r(m,null,I(p.value,e=>(H(),r(`li`,{key:`${e.from}-${e.slug}`},_(z(a)(`dashboard.graphDangling`,{service:M(e.from)?.name??e.from,slug:e.slug,keys:e.keys.join(`, `)})),1))),128))])):X(``,!0)],64))],64))]))}}),[[`__scopeId`,`data-v-20bb5767`]]),ht=b.extend({name:`togglebutton`,style:`
2
- .p-togglebutton {
3
- display: inline-flex;
4
- cursor: pointer;
5
- user-select: none;
6
- overflow: hidden;
7
- position: relative;
8
- color: dt('togglebutton.color');
9
- background: dt('togglebutton.background');
10
- border: 1px solid dt('togglebutton.border.color');
11
- padding: dt('togglebutton.padding');
12
- font-size: 1rem;
13
- font-family: inherit;
14
- font-feature-settings: inherit;
15
- transition:
16
- background dt('togglebutton.transition.duration'),
17
- color dt('togglebutton.transition.duration'),
18
- border-color dt('togglebutton.transition.duration'),
19
- outline-color dt('togglebutton.transition.duration'),
20
- box-shadow dt('togglebutton.transition.duration');
21
- border-radius: dt('togglebutton.border.radius');
22
- outline-color: transparent;
23
- font-weight: dt('togglebutton.font.weight');
24
- }
25
-
26
- .p-togglebutton-content {
27
- display: inline-flex;
28
- flex: 1 1 auto;
29
- align-items: center;
30
- justify-content: center;
31
- gap: dt('togglebutton.gap');
32
- padding: dt('togglebutton.content.padding');
33
- background: transparent;
34
- border-radius: dt('togglebutton.content.border.radius');
35
- transition:
36
- background dt('togglebutton.transition.duration'),
37
- color dt('togglebutton.transition.duration'),
38
- border-color dt('togglebutton.transition.duration'),
39
- outline-color dt('togglebutton.transition.duration'),
40
- box-shadow dt('togglebutton.transition.duration');
41
- }
42
-
43
- .p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover {
44
- background: dt('togglebutton.hover.background');
45
- color: dt('togglebutton.hover.color');
46
- }
47
-
48
- .p-togglebutton.p-togglebutton-checked {
49
- background: dt('togglebutton.checked.background');
50
- border-color: dt('togglebutton.checked.border.color');
51
- color: dt('togglebutton.checked.color');
52
- }
53
-
54
- .p-togglebutton-checked .p-togglebutton-content {
55
- background: dt('togglebutton.content.checked.background');
56
- box-shadow: dt('togglebutton.content.checked.shadow');
57
- }
58
-
59
- .p-togglebutton:focus-visible {
60
- box-shadow: dt('togglebutton.focus.ring.shadow');
61
- outline: dt('togglebutton.focus.ring.width') dt('togglebutton.focus.ring.style') dt('togglebutton.focus.ring.color');
62
- outline-offset: dt('togglebutton.focus.ring.offset');
63
- }
64
-
65
- .p-togglebutton.p-invalid {
66
- border-color: dt('togglebutton.invalid.border.color');
67
- }
68
-
69
- .p-togglebutton:disabled {
70
- opacity: 1;
71
- cursor: default;
72
- background: dt('togglebutton.disabled.background');
73
- border-color: dt('togglebutton.disabled.border.color');
74
- color: dt('togglebutton.disabled.color');
75
- }
76
-
77
- .p-togglebutton-label,
78
- .p-togglebutton-icon {
79
- position: relative;
80
- transition: none;
81
- }
82
-
83
- .p-togglebutton-icon {
84
- color: dt('togglebutton.icon.color');
85
- }
86
-
87
- .p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover .p-togglebutton-icon {
88
- color: dt('togglebutton.icon.hover.color');
89
- }
90
-
91
- .p-togglebutton.p-togglebutton-checked .p-togglebutton-icon {
92
- color: dt('togglebutton.icon.checked.color');
93
- }
94
-
95
- .p-togglebutton:disabled .p-togglebutton-icon {
96
- color: dt('togglebutton.icon.disabled.color');
97
- }
98
-
99
- .p-togglebutton-sm {
100
- padding: dt('togglebutton.sm.padding');
101
- font-size: dt('togglebutton.sm.font.size');
102
- }
103
-
104
- .p-togglebutton-sm .p-togglebutton-content {
105
- padding: dt('togglebutton.content.sm.padding');
106
- }
107
-
108
- .p-togglebutton-lg {
109
- padding: dt('togglebutton.lg.padding');
110
- font-size: dt('togglebutton.lg.font.size');
111
- }
112
-
113
- .p-togglebutton-lg .p-togglebutton-content {
114
- padding: dt('togglebutton.content.lg.padding');
115
- }
116
-
117
- .p-togglebutton-fluid {
118
- width: 100%;
119
- }
120
- `,classes:{root:function(e){var t=e.instance,n=e.props;return[`p-togglebutton p-component`,{"p-togglebutton-checked":t.active,"p-invalid":t.$invalid,"p-togglebutton-fluid":n.fluid,"p-togglebutton-sm p-inputfield-sm":n.size===`small`,"p-togglebutton-lg p-inputfield-lg":n.size===`large`}]},content:`p-togglebutton-content`,icon:`p-togglebutton-icon`,label:`p-togglebutton-label`}}),gt={name:`BaseToggleButton`,extends:n,props:{onIcon:String,offIcon:String,onLabel:{type:String,default:`Yes`},offLabel:{type:String,default:`No`},readonly:{type:Boolean,default:!1},tabindex:{type:Number,default:null},ariaLabelledby:{type:String,default:null},ariaLabel:{type:String,default:null},size:{type:String,default:null},fluid:{type:Boolean,default:null}},style:ht,provide:function(){return{$pcToggleButton:this,$parentInstance:this}}};function Q(e){"@babel/helpers - typeof";return Q=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Q(e)}function _t(e,t,n){return(t=vt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vt(e){var t=yt(e,`string`);return Q(t)==`symbol`?t:t+``}function yt(e,t){if(Q(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Q(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var bt={name:`ToggleButton`,extends:gt,inheritAttrs:!1,emits:[`change`],methods:{getPTOptions:function(e){return(e===`root`?this.ptmi:this.ptm)(e,{context:{active:this.active,disabled:this.disabled}})},onChange:function(e){!this.disabled&&!this.readonly&&(this.writeValue(!this.d_value,e),this.$emit(`change`,e))},onBlur:function(e){var t,n;(t=(n=this.formField).onBlur)==null||t.call(n,e)}},computed:{active:function(){return this.d_value===!0},hasLabel:function(){return E(this.onLabel)&&E(this.offLabel)},label:function(){return this.hasLabel?this.d_value?this.onLabel:this.offLabel:`\xA0`},dataP:function(){return O(_t({checked:this.active,invalid:this.$invalid},this.size,this.size))}},directives:{ripple:G}},xt=[`tabindex`,`disabled`,`aria-pressed`,`aria-label`,`aria-labelledby`,`data-p-checked`,`data-p-disabled`,`data-p`],St=[`data-p`];function Ct(e,t,n,i,a,s){var c=ce(`ripple`);return p((H(),r(`button`,W({type:`button`,class:e.cx(`root`),tabindex:e.tabindex,disabled:e.disabled,"aria-pressed":e.d_value,onClick:t[0]||=function(){return s.onChange&&s.onChange.apply(s,arguments)},onBlur:t[1]||=function(){return s.onBlur&&s.onBlur.apply(s,arguments)}},s.getPTOptions(`root`),{"aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,"data-p-checked":s.active,"data-p-disabled":e.disabled,"data-p":s.dataP}),[f(`span`,W({class:e.cx(`content`)},s.getPTOptions(`content`),{"data-p":s.dataP}),[T(e.$slots,`default`,{},function(){return[T(e.$slots,`icon`,{value:e.d_value,class:o(e.cx(`icon`))},function(){return[e.onIcon||e.offIcon?(H(),r(`span`,W({key:0,class:[e.cx(`icon`),e.d_value?e.onIcon:e.offIcon]},s.getPTOptions(`icon`)),null,16)):X(``,!0)]}),f(`span`,W({class:e.cx(`label`)},s.getPTOptions(`label`)),_(s.label),17)]})],16,St)],16,xt)),[[c]])}bt.render=Ct;var wt=b.extend({name:`selectbutton`,style:`
121
- .p-selectbutton {
122
- display: inline-flex;
123
- user-select: none;
124
- vertical-align: bottom;
125
- outline-color: transparent;
126
- border-radius: dt('selectbutton.border.radius');
127
- }
128
-
129
- .p-selectbutton .p-togglebutton {
130
- border-radius: 0;
131
- border-width: 1px 1px 1px 0;
132
- }
133
-
134
- .p-selectbutton .p-togglebutton:focus-visible {
135
- position: relative;
136
- z-index: 1;
137
- }
138
-
139
- .p-selectbutton .p-togglebutton:first-child {
140
- border-inline-start-width: 1px;
141
- border-start-start-radius: dt('selectbutton.border.radius');
142
- border-end-start-radius: dt('selectbutton.border.radius');
143
- }
144
-
145
- .p-selectbutton .p-togglebutton:last-child {
146
- border-start-end-radius: dt('selectbutton.border.radius');
147
- border-end-end-radius: dt('selectbutton.border.radius');
148
- }
149
-
150
- .p-selectbutton.p-invalid {
151
- outline: 1px solid dt('selectbutton.invalid.border.color');
152
- outline-offset: 0;
153
- }
154
-
155
- .p-selectbutton-fluid {
156
- width: 100%;
157
- }
158
-
159
- .p-selectbutton-fluid .p-togglebutton {
160
- flex: 1 1 0;
161
- }
162
- `,classes:{root:function(e){var t=e.props,n=e.instance;return[`p-selectbutton p-component`,{"p-invalid":n.$invalid,"p-selectbutton-fluid":t.fluid}]}}}),Tt={name:`BaseSelectButton`,extends:n,props:{options:Array,optionLabel:null,optionValue:null,optionDisabled:null,multiple:Boolean,allowEmpty:{type:Boolean,default:!0},dataKey:null,ariaLabelledby:{type:String,default:null},size:{type:String,default:null},fluid:{type:Boolean,default:null}},style:wt,provide:function(){return{$pcSelectButton:this,$parentInstance:this}}};function Et(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=kt(e))||t){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
163
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function Dt(e){return jt(e)||At(e)||kt(e)||Ot()}function Ot(){throw TypeError(`Invalid attempt to spread non-iterable instance.
164
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kt(e,t){if(e){if(typeof e==`string`)return Mt(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mt(e,t):void 0}}function At(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function jt(e){if(Array.isArray(e))return Mt(e)}function Mt(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Nt={name:`SelectButton`,extends:Tt,inheritAttrs:!1,emits:[`change`],methods:{getOptionLabel:function(e){return this.optionLabel?R(e,this.optionLabel):e},getOptionValue:function(e){return this.optionValue?R(e,this.optionValue):e},getOptionRenderKey:function(e){return this.dataKey?R(e,this.dataKey):this.getOptionLabel(e)},isOptionDisabled:function(e){return this.optionDisabled?R(e,this.optionDisabled):!1},isOptionReadonly:function(e){if(this.allowEmpty)return!1;var t=this.isSelected(e);return this.multiple?t&&this.d_value.length===1:t},onOptionSelect:function(e,t,n){var r=this;if(!(this.disabled||this.isOptionDisabled(t)||this.isOptionReadonly(t))){var i=this.isSelected(t),a=this.getOptionValue(t),o;if(this.multiple)if(i){if(o=this.d_value.filter(function(e){return!q(e,a,r.equalityKey)}),!this.allowEmpty&&o.length===0)return}else o=this.d_value?[].concat(Dt(this.d_value),[a]):[a];else{if(i&&!this.allowEmpty)return;o=i?null:a}this.writeValue(o,e),this.$emit(`change`,{originalEvent:e,value:o})}},isSelected:function(e){var t=!1,n=this.getOptionValue(e);if(this.multiple){if(this.d_value){var r=Et(this.d_value),i;try{for(r.s();!(i=r.n()).done;){var a=i.value;if(q(a,n,this.equalityKey)){t=!0;break}}}catch(e){r.e(e)}finally{r.f()}}}else t=q(this.d_value,n,this.equalityKey);return t}},computed:{equalityKey:function(){return this.optionValue?null:this.dataKey},dataP:function(){return O({invalid:this.$invalid})}},directives:{ripple:G},components:{ToggleButton:bt}},Pt=[`aria-labelledby`,`data-p`];function Ft(e,t,n,i,a,o){var s=oe(`ToggleButton`);return H(),r(`div`,W({class:e.cx(`root`),role:`group`,"aria-labelledby":e.ariaLabelledby},e.ptmi(`root`),{"data-p":o.dataP}),[(H(!0),r(m,null,I(e.options,function(t,n){return H(),v(s,{key:o.getOptionRenderKey(t),modelValue:o.isSelected(t),onLabel:o.getOptionLabel(t),offLabel:o.getOptionLabel(t),disabled:e.disabled||o.isOptionDisabled(t),unstyled:e.unstyled,size:e.size,readonly:o.isOptionReadonly(t),onChange:function(e){return o.onOptionSelect(e,t,n)},pt:e.ptm(`pcToggleButton`)},c({_:2},[e.$slots.option?{name:`default`,fn:B(function(){return[T(e.$slots,`option`,{option:t,index:n},function(){return[f(`span`,W({ref_for:!0},e.ptm(`pcToggleButton`).label),_(o.getOptionLabel(t)),17)]})]}),key:`0`}:void 0]),1032,[`modelValue`,`onLabel`,`offLabel`,`disabled`,`unstyled`,`size`,`readonly`,`onChange`,`pt`])}),128))],16,Pt)}Nt.render=Ft;function It(e){if(e==null||!Number.isFinite(e)||e<0)return`—`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d ${r%24}h`}var Lt={key:0,class:`service-row__agent`},Rt={key:1,class:`service-row__agent service-row__agent--missing`},zt=[`aria-label`],Bt={class:`service-row__name`},Vt={class:`service-row__state`},Ht={key:2,class:`pi pi-exclamation-triangle service-row__health`},Ut=C(J({__name:`ServiceStatusRow`,props:{service:{},processes:{},now:{}},setup(e){let t=e,{t:n}=Y(),i=F(),a=j(),c=l(()=>A(t.processes)),u=l(()=>c.value?.state??`stopped`),d=l(()=>{switch(u.value){case`running`:return`success`;case`starting`:return`warn`;case`errored`:return`danger`;default:return`idle`}}),h=l(()=>ie(t.service)),g=l(()=>h.value?a.getById(h.value)?.config.name??h.value:null),v=l(()=>{let e=c.value;return!e||e.state!==`running`?null:e.startedAt?Math.max(0,t.now-new Date(e.startedAt).getTime()):e.uptime*1e3}),y=l(()=>c.value?.healthStatus===`unhealthy`);function b(){i.push(`/services/${t.service.id}`)}return(t,i)=>{let a=ce(`tooltip`);return H(),r(`div`,{class:o([`service-row`,`service-row--${d.value}`])},[f(`button`,{type:`button`,class:`service-row__main`,"data-testid":`service-row-link`,onClick:b},[g.value?p((H(),r(`span`,Lt,[i[0]||=f(`i`,{class:`pi pi-server`},null,-1),x(_(g.value),1)])),[[a,g.value,void 0,{top:!0}]]):(H(),r(`span`,Rt,_(z(n)(`serviceHeader.noAgent`)),1)),f(`span`,{class:`service-row__dot`,role:`img`,"aria-label":z(n)(`status.${u.value}`)},null,8,zt),f(`span`,Bt,_(e.service.name),1),f(`span`,Vt,[x(_(z(n)(`status.${u.value}`))+` `,1),v.value===null?X(``,!0):(H(),r(m,{key:0},[x(` · `+_(z(It)(v.value)),1)],64))]),y.value?p((H(),r(`i`,Ht,null,512)),[[a,z(n)(`dashboard.unhealthy`),void 0,{top:!0}]]):X(``,!0)]),s(ue,{class:`service-row__controls`,compact:``,"agent-id":c.value?.agentId??h.value??``,"process-id":c.value?.id??e.service.id,state:u.value},null,8,[`agent-id`,`process-id`,`state`])],2)}}}),[[`__scopeId`,`data-v-9b75c217`]]);function Wt(){let e=K(),t=U(),n=l(()=>t.services.map(t=>{let n=e.getByService(t.id);return{service:t,processes:n,state:A(n)?.state??`stopped`}}));return{states:n,runningCount:l(()=>n.value.filter(e=>e.state===`running`||e.state===`starting`).length),erroredCount:l(()=>n.value.filter(e=>e.state===`errored`).length),stoppedCount:l(()=>n.value.filter(e=>e.state===`stopped`).length)}}var Gt={class:`panel`,"data-testid":`services-panel`},Kt={class:`panel__header`},qt={class:`panel__title`},Jt={key:0,class:`panel__empty`},Yt={key:1,class:`panel__empty`},Xt={key:2,class:`service-list`},Zt=C(J({__name:`ServicesPanel`,props:{project:{},now:{}},setup(t){let n=t,{t:i}=Y(),a=F(),o=S(`all`),c=S(``),u=l(()=>[{value:`all`,label:i(`dashboard.filterAll`)},{value:`running`,label:i(`dashboard.filterRunning`)},{value:`issues`,label:i(`dashboard.filterIssues`)},{value:`stopped`,label:i(`dashboard.filterStopped`)}]),{states:d}=Wt(),p=l(()=>{let e=c.value.trim().toLowerCase(),t=d.value.filter(t=>e&&!t.service.name.toLowerCase().includes(e)?!1:o.value===`running`?t.state===`running`||t.state===`starting`:o.value===`issues`?t.state===`errored`:o.value===`stopped`?t.state===`stopped`:!0),n=e=>e===`errored`?0:e===`starting`?1:e===`running`?2:3;return[...t].sort((e,t)=>n(e.state)-n(t.state)||e.service.name.localeCompare(t.service.name))});function g(){a.push({name:`service-create`,...n.project?{query:{projectId:n.project.id}}:{}})}return(n,a)=>(H(),r(`section`,Gt,[f(`div`,Kt,[f(`h2`,qt,_(z(i)(`dashboard.services`)),1),s(z(ne),{class:`panel__search`},{default:B(()=>[s(z(P),{class:`pi pi-search`}),s(z(h),{modelValue:c.value,"onUpdate:modelValue":a[0]||=e=>c.value=e,size:`small`,placeholder:z(i)(`projectDetail.searchServices`)},null,8,[`modelValue`,`placeholder`])]),_:1}),s(z(Nt),{modelValue:o.value,"onUpdate:modelValue":a[1]||=e=>o.value=e,options:u.value,"option-label":`label`,"option-value":`value`,size:`small`,"allow-empty":!1},null,8,[`modelValue`,`options`]),s(z(e),{class:`panel__create`,icon:`pi pi-plus`,label:z(i)(`projectDetail.createNew`),size:`small`,onClick:g},null,8,[`label`])]),z(d).length===0?(H(),r(`p`,Jt,_(z(i)(`dashboard.noServices`)),1)):p.value.length===0?(H(),r(`p`,Yt,_(z(i)(`dashboard.noServicesForFilter`)),1)):(H(),r(`div`,Xt,[(H(!0),r(m,null,I(p.value,e=>(H(),v(Ut,{key:e.service.id,service:e.service,processes:e.processes,now:t.now},null,8,[`service`,`processes`,`now`]))),128))]))]))}}),[[`__scopeId`,`data-v-a75d6318`]]),Qt={class:`stat-tile__value`},$t={class:`stat-tile__label`},$=C(J({__name:`StatTile`,props:{icon:{},value:{},label:{},tone:{},to:{}},setup(e){let t=e,n=F(),r=l(()=>t.tone??`neutral`);function i(){t.to&&n.push(t.to)}return(e,n)=>(H(),v(k(t.to?`button`:`div`),{type:t.to?`button`:void 0,class:o([`stat-tile`,[`stat-tile--${r.value}`,{"stat-tile--clickable":!!t.to}]]),onClick:i},{default:B(()=>[f(`i`,{class:o([`pi`,t.icon,`stat-tile__icon`])},null,2),f(`span`,Qt,_(t.value),1),f(`span`,$t,_(t.label),1)]),_:1},8,[`type`,`class`]))}}),[[`__scopeId`,`data-v-37755c11`]]),en={class:`dashboard-page`},tn={class:`dashboard-header`},nn={class:`dashboard-header__title`},rn={class:`dashboard-header__subtitle`},an=[`aria-label`],on={class:`dashboard-columns`},sn={class:`dashboard-aside`},cn={class:`panel`},ln={class:`panel__header`},un={class:`panel__title`},dn={key:0,class:`panel__empty`},fn={key:1,class:`agent-list`},pn={class:`agent-item__name`},mn={class:`agent-item__state`},hn=C(J({__name:`DashboardPage`,setup(e){let{t}=Y(),n=w(),i=j(),a=K(),c=U(),u=se(),d=S(Date.now()),p=null,h=S(null),g=l(()=>n.projects.find(e=>e.id===u.activeProjectId&&(e.orgId??null)===(u.activeOrgId??null))??null);ae(async()=>{await Promise.all([n.fetchAll(),i.fetchAll(),a.fetchAll(),c.fetchAll()]),p=setInterval(()=>{d.value=Date.now()},1e3);try{let e=await y.wiki.list.query({scope:`global`}),t=0,n=e=>{for(let r of e)r.type===`file`?t+=1:r.type===`dir`&&Array.isArray(r.children)&&n(r.children)};n(e.entries),h.value=t}catch{h.value=null}}),N(()=>{p&&clearInterval(p)});let{runningCount:b,erroredCount:x,stoppedCount:C}=Wt(),ee=l(()=>i.agents.filter(e=>!e.status.connected).length);return(e,n)=>(H(),r(`div`,en,[f(`header`,tn,[f(`h1`,nn,_(z(t)(`dashboard.title`)),1),f(`p`,rn,_(z(t)(`dashboard.subtitle`)),1)]),f(`section`,{class:`health-band`,"aria-label":z(t)(`dashboard.healthBand`)},[s($,{icon:`pi-play-circle`,tone:`success`,value:z(b),label:z(t)(`dashboard.servicesRunning`)},null,8,[`value`,`label`]),s($,{icon:`pi-exclamation-triangle`,tone:z(x)>0?`danger`:`neutral`,value:z(x),label:z(t)(`dashboard.servicesErrored`)},null,8,[`tone`,`value`,`label`]),s($,{icon:`pi-pause-circle`,tone:`neutral`,value:z(C),label:z(t)(`dashboard.servicesStopped`)},null,8,[`value`,`label`]),s($,{icon:`pi-server`,tone:ee.value>0?`warn`:`success`,value:`${z(i).connectedAgents.length}/${z(i).agents.length}`,label:z(t)(`dashboard.agentsConnected`),to:`/settings?section=agents`},null,8,[`tone`,`value`,`label`])],8,an),g.value?(H(),v(mt,{key:0,project:g.value},null,8,[`project`])):X(``,!0),f(`div`,on,[s(Zt,{project:g.value,now:d.value},null,8,[`project`,`now`]),f(`div`,sn,[s(Ne),f(`section`,cn,[f(`div`,ln,[f(`h2`,un,_(z(t)(`dashboard.agentStatus`)),1)]),z(i).agents.length===0?(H(),r(`p`,dn,_(z(t)(`dashboard.noAgents`)),1)):(H(),r(`ul`,fn,[(H(!0),r(m,null,I(z(i).agents,e=>(H(),r(`li`,{key:e.config.id,class:`agent-item`},[f(`span`,{class:o([`agent-item__dot`,e.status.connected?`agent-item__dot--on`:`agent-item__dot--off`])},null,2),f(`span`,pn,_(e.config.name),1),f(`span`,mn,_(e.status.connected?z(t)(`dashboard.connected`):z(t)(`dashboard.disconnected`)),1)]))),128))]))]),s($,{icon:`pi-book`,value:h.value??`—`,label:z(t)(`dashboard.globalWiki`),to:`/wiki`},null,8,[`value`,`label`])])])]))}}),[[`__scopeId`,`data-v-398f289d`]]);export{hn as default};
@@ -1 +0,0 @@
1
- import{$n as e,$t as t,Ai as n,Bi as r,Da as i,Fa as a,Gi as o,Ii as s,Li as c,Ni as l,On as u,Pn as d,Qt as f,Ra as p,Ri as m,Rn as h,Wi as g,Ya as _,Yn as v,Zn as y,Zt as b,fn as x,ga as S,io as C,ja as w,ma as T,n as E,pn as D,qi as O,ta as k,un as A,wa as j,xn as M,xr as N,zi as P}from"./index-DuGh2zls.js";import{t as F}from"./OrgKeyPrompt-CRf1ZPik.js";import{t as I}from"./useProjectCatalog-CnGHIrnh.js";var L={class:`create-form`},R={class:`create-field`},z={for:`new-project-name`},B={class:`create-field`},V={for:`new-project-desc`},H={class:`create-field`},U={for:`new-project-target`},W={class:`create-hint`},G=v(O({__name:`ProjectCreateDialog`,props:{visible:{type:Boolean,required:!0},visibleModifiers:{}},emits:k([`created`],[`update:visible`]),setup(r,{emit:a}){let l=j(r,`visible`),f=a,{t:v}=N(),x=b(),S=M(),D=I(),O=_(``),k=_(``),F=_(`local`),G=_(!1),K=_(``),q=s(()=>[{id:`local`,name:v(`projectSwitcher.local`)},...D.orgGroups.value.map(e=>({id:e.orgId,name:e.name}))]);i(l,e=>{e&&(O.value=``,k.value=``,F.value=S.activeOrgId??`local`,K.value=``,D.refreshCloud())},{immediate:!0});async function J(){let e=O.value.trim();if(!e||G.value)return;let n=F.value===`local`?null:F.value,r=n?null:x.projects.find(e=>!e.orgId);if(r){K.value=v(`projectSwitcher.localProjectExists`,{name:r.name});return}G.value=!0,K.value=``;try{let t=await x.create({name:e,description:k.value.trim()||void 0,orgId:n});if(!t)throw Error(x.error??v(`projectSwitcher.createFailed`));n&&await h.cloudSync.trackProject.mutate({orgId:n,cloudUrl:E(),projectId:t.id}),S.setActiveProject(t.id,n),l.value=!1,f(`created`,{id:t.id,name:t.name,orgId:n})}catch(e){K.value=t(e,v)}finally{G.value=!1}}return(t,r)=>(T(),m(C(y),{visible:l.value,"onUpdate:visible":r[4]||=e=>l.value=e,header:C(v)(`projectSwitcher.createTitle`),modal:``,style:{width:`26rem`}},{footer:w(()=>[o(C(e),{label:C(v)(`actions.cancel`),severity:`secondary`,text:``,disabled:G.value,onClick:r[3]||=e=>l.value=!1},null,8,[`label`,`disabled`]),o(C(e),{label:C(v)(`projectSwitcher.create`),icon:`pi pi-plus`,loading:G.value,disabled:!O.value.trim(),onClick:J},null,8,[`label`,`loading`,`disabled`])]),default:w(()=>[c(`div`,L,[c(`div`,R,[c(`label`,z,p(C(v)(`projectSwitcher.nameLabel`)),1),o(C(u),{id:`new-project-name`,modelValue:O.value,"onUpdate:modelValue":r[0]||=e=>O.value=e,autofocus:``,placeholder:C(v)(`projectSwitcher.namePlaceholder`),onKeyup:n(J,[`enter`])},null,8,[`modelValue`,`placeholder`])]),c(`div`,B,[c(`label`,V,p(C(v)(`projectList.descriptionLabel`)),1),o(C(u),{id:`new-project-desc`,modelValue:k.value,"onUpdate:modelValue":r[1]||=e=>k.value=e,placeholder:C(v)(`projectList.descriptionPlaceholder`),onKeyup:n(J,[`enter`])},null,8,[`modelValue`,`placeholder`])]),c(`div`,H,[c(`label`,U,p(C(v)(`projectSwitcher.targetLabel`)),1),o(C(A),{inputId:`new-project-target`,modelValue:F.value,"onUpdate:modelValue":r[2]||=e=>F.value=e,options:q.value,optionLabel:`name`,optionValue:`id`},null,8,[`modelValue`,`options`]),c(`small`,W,p(F.value===`local`?C(v)(`projectSwitcher.localHint`):C(v)(`projectSwitcher.cloudHint`)),1)]),K.value?(T(),m(C(d),{key:0,severity:`error`,closable:!1},{default:w(()=>[g(p(K.value),1)]),_:1})):P(``,!0)])]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-5540c110`]]),K={class:`publish-form`},q={for:`publish-target`},J={class:`publish-hint`},Y=v(O({__name:`ProjectPublishDialog`,props:k({project:{}},{visible:{type:Boolean,required:!0},visibleModifiers:{}}),emits:k([`published`],[`update:visible`]),setup(n,{emit:a}){let s=j(n,`visible`),u=n,v=a,{t:x}=N(),S=b(),D=M(),O=I(),k=_(null),L=_(!1),R=_(``),z=_(null);i(s,async e=>{e&&(R.value=``,k.value=O.orgGroups.value[0]?.orgId??null,await O.refreshCloud(),k.value??=O.orgGroups.value[0]?.orgId??null)},{immediate:!0});async function B(){let e=u.project,n=k.value;if(!(!e||!n)){L.value=!0,R.value=``;try{await h.cloudSync.publishProject.mutate({orgId:n,cloudUrl:E(),projectId:e.id}),await S.fetchAll(),D.activeProjectId===e.id&&D.setActiveProject(e.id,n),s.value=!1,v(`published`,n)}catch(e){R.value=t(e,x),f(e)===`ORG_KEY_MISMATCH`&&(z.value=n)}finally{L.value=!1}}}async function V(){z.value=null,R.value=``,await B()}return(t,i)=>(T(),r(l,null,[o(C(y),{visible:s.value,"onUpdate:visible":i[2]||=e=>s.value=e,header:C(x)(`projectSwitcher.publishTitle`,{project:n.project?.name??``}),modal:``,style:{width:`26rem`}},{footer:w(()=>[o(C(e),{label:C(x)(`actions.cancel`),severity:`secondary`,text:``,disabled:L.value,onClick:i[1]||=e=>s.value=!1},null,8,[`label`,`disabled`]),o(C(e),{label:C(x)(`projectSwitcher.publishAccept`),icon:`pi pi-cloud-upload`,loading:L.value,disabled:!k.value,onClick:B},null,8,[`label`,`loading`,`disabled`])]),default:w(()=>[c(`div`,K,[c(`label`,q,p(C(x)(`projectSwitcher.publishOrgLabel`)),1),o(C(A),{inputId:`publish-target`,modelValue:k.value,"onUpdate:modelValue":i[0]||=e=>k.value=e,options:C(O).orgGroups.value,optionLabel:`name`,optionValue:`orgId`},null,8,[`modelValue`,`options`]),c(`small`,J,p(C(x)(`projectSwitcher.publishHint`)),1),R.value?(T(),m(C(d),{key:0,severity:`error`,closable:!1},{default:w(()=>[g(p(R.value),1)]),_:1})):P(``,!0)])]),_:1},8,[`visible`,`header`]),o(F,{"org-id":z.value,reference:`cloud`,title:C(x)(`projectSwitcher.keyPromptTitle`),hint:C(x)(`projectSwitcher.keyPromptHint`),"confirm-label":C(x)(`projectSwitcher.keyPromptUse`),onClose:i[3]||=e=>z.value=null,onAdopted:V},null,8,[`org-id`,`title`,`hint`,`confirm-label`])],64))}}),[[`__scopeId`,`data-v-99853b0d`]]),X={class:`picker-lead`},Z={class:`picker-path`},Q={class:`picker-list`,"data-testid":`directory-picker-list`},$={key:0,class:`picker-empty`},ee={key:1,class:`picker-empty`},te={key:2,class:`picker-empty`},ne=[`onClick`],re={class:`picker-row__name`},ie={key:0,class:`picker-row__badge`},ae={key:3,class:`picker-empty`},oe=v(O({__name:`DirectoryPickerDialog`,props:{visible:{type:Boolean},projectId:{},orgId:{},projectName:{},required:{type:Boolean},initialPath:{}},emits:[`update:visible`,`chosen`],setup(t,{emit:n}){let v=t,b=n,{t:E}=N(),O=_(``),k=_(null),A=_([]),j=_(!1),M=_(!1),F=_(!1),I=_(``),L=_(null),R=_(``),z=e=>e.normalize(`NFD`).replace(/\p{Diacritic}/gu,``).toLowerCase(),B=s(()=>{let e=z(R.value.trim());return e?A.value.filter(t=>z(t.name).includes(e)):A.value}),V=s(()=>!!O.value&&L.value?.ok===!0&&!F.value);async function H(e){M.value=!0,I.value=``;try{let t=await h.filesystem.listDirectories.query({path:e});O.value=t.path,k.value=t.parent,A.value=t.entries,j.value=t.truncated,R.value=``,await U()}catch(e){I.value=f(e)??E(`directoryPicker.readError`)}finally{M.value=!1}}async function U(){if(O.value)try{let e=await h.filesystem.checkProjectTarget.query({path:O.value,projectId:v.projectId,orgId:v.orgId});L.value={ok:e.ok,reason:e.reason,otherProjectId:e.otherProjectId}}catch{L.value={ok:!1,reason:`missing`,otherProjectId:null}}}async function W(){try{await H((await h.filesystem.suggestedRoots.query())[0]?.path??`~`)}catch(e){I.value=f(e)??E(`directoryPicker.readError`)}}async function G(){if(V.value){F.value=!0,I.value=``;try{await h.project.setLocalPath.mutate({id:v.projectId,orgId:v.orgId,path:O.value}),b(`chosen`,O.value),b(`update:visible`,!1)}catch(e){I.value=f(e)??E(`directoryPicker.saveError`)}finally{F.value=!1}}}i(()=>v.visible,e=>{e&&!O.value&&(v.initialPath?H(v.initialPath):W())},{immediate:!0});let K=s(()=>{let e=L.value?.reason;return e?E(e===`has-runeya-project`?`directoryPicker.refusedHasProject`:e===`taken`?`directoryPicker.refusedTaken`:`directoryPicker.refusedMissing`):``});return(n,i)=>(T(),m(C(y),{visible:t.visible,modal:``,closable:!t.required,"close-on-escape":!t.required,header:C(E)(`directoryPicker.title`,{project:t.projectName}),style:{width:`46rem`,maxWidth:`95vw`},"data-testid":`directory-picker`,"onUpdate:visible":i[3]||=e=>b(`update:visible`,e)},{footer:w(()=>[t.required?P(``,!0):(T(),m(C(e),{key:0,label:C(E)(`actions.cancel`),text:``,onClick:i[2]||=e=>b(`update:visible`,!1)},null,8,[`label`])),o(C(e),{label:C(E)(`directoryPicker.confirm`),disabled:!V.value,loading:F.value,"data-testid":`directory-picker-confirm`,onClick:G},null,8,[`label`,`disabled`,`loading`])]),default:w(()=>[c(`p`,X,p(C(E)(`directoryPicker.lead`)),1),c(`div`,Z,[o(C(e),{icon:`pi pi-arrow-up`,text:``,disabled:!k.value||M.value,"aria-label":C(E)(`directoryPicker.up`),"data-testid":`directory-picker-up`,onClick:i[0]||=e=>k.value&&H(k.value)},null,8,[`disabled`,`aria-label`]),o(C(u),{"model-value":O.value,readonly:``,class:`picker-path__input`,"data-testid":`directory-picker-current`},null,8,[`model-value`])]),o(C(D),{class:`picker-filter`},{default:w(()=>[o(C(x),{class:`pi pi-search`}),o(C(u),{modelValue:R.value,"onUpdate:modelValue":i[1]||=e=>R.value=e,placeholder:C(E)(`directoryPicker.filterPlaceholder`),"data-testid":`directory-picker-filter`,fluid:``},null,8,[`modelValue`,`placeholder`])]),_:1}),c(`div`,Q,[M.value?(T(),r(`p`,$,p(C(E)(`directoryPicker.loading`)),1)):A.value.length?B.value.length?P(``,!0):(T(),r(`p`,te,p(C(E)(`directoryPicker.noMatch`,{filter:R.value})),1)):(T(),r(`p`,ee,p(C(E)(`directoryPicker.empty`)),1)),(T(!0),r(l,null,S(B.value,e=>(T(),r(`button`,{key:e.path,type:`button`,class:a([`picker-row`,{"picker-row--taken":e.hasRuneyaProject}]),onClick:t=>H(e.path)},[i[4]||=c(`i`,{class:`pi pi-folder`},null,-1),c(`span`,re,p(e.name),1),e.hasRuneyaProject?(T(),r(`span`,ie,p(C(E)(`directoryPicker.badgeHasProject`)),1)):P(``,!0)],10,ne))),128)),j.value?(T(),r(`p`,ae,p(C(E)(`directoryPicker.truncated`)),1)):P(``,!0)]),K.value?(T(),m(C(d),{key:0,severity:`warn`,closable:!1,"data-testid":`directory-picker-refusal`},{default:w(()=>[g(p(K.value),1)]),_:1})):P(``,!0),I.value?(T(),m(C(d),{key:1,severity:`error`,closable:!1,"data-testid":`directory-picker-error`},{default:w(()=>[g(p(I.value),1)]),_:1})):P(``,!0)]),_:1},8,[`visible`,`closable`,`close-on-escape`,`header`]))}}),[[`__scopeId`,`data-v-56650643`]]);export{Y as n,G as r,oe as t};
@@ -1,108 +0,0 @@
1
- import{$n as e,An as t,Bi as n,Da as r,Dn as i,Er as a,Fa as o,Gi as s,Gr as c,Ii as l,Jr as u,Li as d,Nr as f,On as p,Ra as m,Ri as h,Sr as g,Wi as _,Ya as v,Yn as y,_r as ee,at as te,bi as b,bn as ne,cr as x,dt as re,gn as ie,io as S,it as ae,ja as C,ji as w,kr as T,ma as E,na as D,ot as oe,pr as O,qi as k,rt as se,ua as ce,un as le,va as A,vn as j,xr as ue,zi as M,zr as N}from"./index-DuGh2zls.js";import{n as de,t as P}from"./column-BYul0pb1.js";import{t as F}from"./fieldset-COorWSfN.js";import{t as fe}from"./multiselect-Bc92p6F4.js";import{t as pe}from"./toggleswitch-j4QSxoFG.js";import{i as me,n as he,o as ge,r as I,t as L}from"./tabpanel-B4bmmOWW.js";import{i as _e,n as ve,r as ye,t as be}from"./useEnvVarAutocomplete-BcVa9mel.js";var R=g.extend({name:`colorpicker`,style:`
2
- .p-colorpicker {
3
- display: inline-block;
4
- position: relative;
5
- }
6
-
7
- .p-colorpicker-dragging {
8
- cursor: pointer;
9
- }
10
-
11
- .p-colorpicker-preview {
12
- width: dt('colorpicker.preview.width');
13
- height: dt('colorpicker.preview.height');
14
- padding: 0;
15
- border: 0 none;
16
- border-radius: dt('colorpicker.preview.border.radius');
17
- transition:
18
- background dt('colorpicker.transition.duration'),
19
- color dt('colorpicker.transition.duration'),
20
- border-color dt('colorpicker.transition.duration'),
21
- outline-color dt('colorpicker.transition.duration'),
22
- box-shadow dt('colorpicker.transition.duration');
23
- outline-color: transparent;
24
- cursor: pointer;
25
- }
26
-
27
- .p-colorpicker-preview:enabled:focus-visible {
28
- border-color: dt('colorpicker.preview.focus.border.color');
29
- box-shadow: dt('colorpicker.preview.focus.ring.shadow');
30
- outline: dt('colorpicker.preview.focus.ring.width') dt('colorpicker.preview.focus.ring.style') dt('colorpicker.preview.focus.ring.color');
31
- outline-offset: dt('colorpicker.preview.focus.ring.offset');
32
- }
33
-
34
- .p-colorpicker-panel {
35
- background: dt('colorpicker.panel.background');
36
- border: 1px solid dt('colorpicker.panel.border.color');
37
- border-radius: dt('colorpicker.panel.border.radius');
38
- box-shadow: dt('colorpicker.panel.shadow');
39
- width: 193px;
40
- height: 166px;
41
- position: absolute;
42
- top: 0;
43
- left: 0;
44
- }
45
-
46
- .p-colorpicker-panel-inline {
47
- box-shadow: none;
48
- position: static;
49
- }
50
-
51
- .p-colorpicker-content {
52
- position: relative;
53
- }
54
-
55
- .p-colorpicker-color-selector {
56
- width: 150px;
57
- height: 150px;
58
- inset-block-start: 8px;
59
- inset-inline-start: 8px;
60
- position: absolute;
61
- }
62
-
63
- .p-colorpicker-color-background {
64
- width: 100%;
65
- height: 100%;
66
- background: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, #fff 0%, rgba(255, 255, 255, 0) 100%);
67
- }
68
-
69
- .p-colorpicker-color-handle {
70
- position: absolute;
71
- inset-block-start: 0px;
72
- inset-inline-start: 150px;
73
- border-radius: 100%;
74
- width: 10px;
75
- height: 10px;
76
- border-width: 1px;
77
- border-style: solid;
78
- margin: -5px 0 0 -5px;
79
- cursor: pointer;
80
- opacity: 0.85;
81
- border-color: dt('colorpicker.handle.color');
82
- }
83
-
84
- .p-colorpicker-hue {
85
- width: 17px;
86
- height: 150px;
87
- inset-block-start: 8px;
88
- inset-inline-start: 167px;
89
- position: absolute;
90
- opacity: 0.85;
91
- background: linear-gradient(0deg, red 0, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, red);
92
- }
93
-
94
- .p-colorpicker-hue-handle {
95
- position: absolute;
96
- inset-block-start: 150px;
97
- inset-inline-start: 0px;
98
- width: 21px;
99
- margin-inline-start: -2px;
100
- margin-block-start: -5px;
101
- height: 10px;
102
- border-width: 2px;
103
- border-style: solid;
104
- opacity: 0.85;
105
- cursor: pointer;
106
- border-color: dt('colorpicker.handle.color');
107
- }
108
- `,classes:{root:`p-colorpicker p-component`,preview:function(e){var t=e.props;return[`p-colorpicker-preview`,{"p-disabled":t.disabled}]},panel:function(e){var t=e.instance,n=e.props;return[`p-colorpicker-panel`,{"p-colorpicker-panel-inline":n.inline,"p-disabled":n.disabled,"p-invalid":t.$invalid}]},colorSelector:`p-colorpicker-color-selector`,colorBackground:`p-colorpicker-color-background`,colorHandle:`p-colorpicker-color-handle`,hue:`p-colorpicker-hue`,hueHandle:`p-colorpicker-hue-handle`}}),z={name:`ColorPicker`,extends:{name:`BaseColorPicker`,extends:t,props:{defaultColor:{type:null,default:`ff0000`},inline:{type:Boolean,default:!1},format:{type:String,default:`hex`},tabindex:{type:String,default:null},autoZIndex:{type:Boolean,default:!0},baseZIndex:{type:Number,default:0},appendTo:{type:[String,Object],default:`body`},inputId:{type:String,default:null},panelClass:null,overlayClass:null},style:R,provide:function(){return{$pcColorPicker:this,$parentInstance:this}}},inheritAttrs:!1,emits:[`change`,`show`,`hide`],data:function(){return{overlayVisible:!1}},hsbValue:null,localHue:null,outsideClickListener:null,documentMouseMoveListener:null,documentMouseUpListener:null,scrollHandler:null,resizeListener:null,hueDragging:null,colorDragging:null,selfUpdate:null,picker:null,colorSelector:null,colorHandle:null,hueView:null,hueHandle:null,watch:{modelValue:{immediate:!0,handler:function(e){this.hsbValue=this.toHSB(e),this.selfUpdate?this.selfUpdate=!1:this.updateUI()}}},beforeUnmount:function(){this.unbindOutsideClickListener(),this.unbindDragListeners(),this.unbindResizeListener(),this.scrollHandler&&=(this.scrollHandler.destroy(),null),this.picker&&this.autoZIndex&&a.clear(this.picker),this.clearRefs()},mounted:function(){this.updateUI()},methods:{pickColor:function(e){var t=this.colorSelector.getBoundingClientRect(),n=t.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),r=t.left+document.body.scrollLeft,i=Math.floor(100*Math.max(0,Math.min(150,(e.pageX||e.changedTouches[0].pageX)-r))/150),a=Math.floor(100*(150-Math.max(0,Math.min(150,(e.pageY||e.changedTouches[0].pageY)-n)))/150);this.hsbValue=this.validateHSB({h:this.localHue,s:i,b:a}),this.selfUpdate=!0,this.updateColorHandle(),this.updateInput(),this.updateModel(e)},pickHue:function(e){var t=this.hueView.getBoundingClientRect().top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0);this.localHue=Math.floor(360*(150-Math.max(0,Math.min(150,(e.pageY||e.changedTouches[0].pageY)-t)))/150),this.hsbValue=this.validateHSB({h:this.localHue,s:this.hsbValue.s,b:this.hsbValue.b}),this.selfUpdate=!0,this.updateColorSelector(),this.updateHue(),this.updateModel(e),this.updateInput()},updateModel:function(e){var t=this.d_value;switch(this.format){case`hex`:t=this.HSBtoHEX(this.hsbValue);break;case`rgb`:t=this.HSBtoRGB(this.hsbValue);break;case`hsb`:t=this.hsbValue;break}this.writeValue(t,e),this.$emit(`change`,{event:e,value:t})},updateColorSelector:function(){if(this.colorSelector){var e=this.validateHSB({h:this.hsbValue.h,s:100,b:100});this.colorSelector.style.backgroundColor=`#`+this.HSBtoHEX(e)}},updateColorHandle:function(){this.colorHandle&&(this.colorHandle.style.left=Math.floor(150*this.hsbValue.s/100)+`px`,this.colorHandle.style.top=Math.floor(150*(100-this.hsbValue.b)/100)+`px`)},updateHue:function(){this.hueHandle&&(this.hueHandle.style.top=Math.floor(150-150*this.hsbValue.h/360)+`px`)},updateInput:function(){this.$refs.input&&(this.$refs.input.style.backgroundColor=`#`+this.HSBtoHEX(this.hsbValue))},updateUI:function(){this.updateHue(),this.updateColorHandle(),this.updateInput(),this.updateColorSelector()},validateHSB:function(e){return{h:Math.min(360,Math.max(0,e.h)),s:Math.min(100,Math.max(0,e.s)),b:Math.min(100,Math.max(0,e.b))}},validateRGB:function(e){return{r:Math.min(255,Math.max(0,e.r)),g:Math.min(255,Math.max(0,e.g)),b:Math.min(255,Math.max(0,e.b))}},validateHEX:function(e){var t=6-e.length;if(t>0){for(var n=[],r=0;r<t;r++)n.push(`0`);n.push(e),e=n.join(``)}return e},HEXtoRGB:function(e){var t=parseInt(e.indexOf(`#`)>-1?e.substring(1):e,16);return{r:t>>16,g:(t&65280)>>8,b:t&255}},HEXtoHSB:function(e){return this.RGBtoHSB(this.HEXtoRGB(e))},RGBtoHSB:function(e){var t={h:0,s:0,b:0},n=Math.min(e.r,e.g,e.b),r=Math.max(e.r,e.g,e.b),i=r-n;return t.b=r,t.s=r===0?0:255*i/r,t.s===0?t.h=-1:e.r===r?t.h=(e.g-e.b)/i:e.g===r?t.h=2+(e.b-e.r)/i:t.h=4+(e.r-e.g)/i,t.h*=60,t.h<0&&(t.h+=360),t.s*=100/255,t.b*=100/255,t},HSBtoRGB:function(e){var t={r:null,g:null,b:null},n=Math.round(e.h),r=Math.round(e.s*255/100),i=Math.round(e.b*255/100);if(r===0)t={r:i,g:i,b:i};else{var a=i,o=(255-r)*i/255,s=(a-o)*(n%60)/60;n===360&&(n=0),n<60?(t.r=a,t.b=o,t.g=o+s):n<120?(t.g=a,t.b=o,t.r=a-s):n<180?(t.g=a,t.r=o,t.b=o+s):n<240?(t.b=a,t.r=o,t.g=a-s):n<300?(t.b=a,t.g=o,t.r=o+s):n<360?(t.r=a,t.g=o,t.b=a-s):(t.r=0,t.g=0,t.b=0)}return{r:Math.round(t.r),g:Math.round(t.g),b:Math.round(t.b)}},RGBtoHEX:function(e){var t=[e.r.toString(16),e.g.toString(16),e.b.toString(16)];for(var n in t)t[n].length===1&&(t[n]=`0`+t[n]);return t.join(``)},HSBtoHEX:function(e){return this.RGBtoHEX(this.HSBtoRGB(e))},toHSB:function(e){var t;if(e)switch(this.format){case`hex`:t=this.HEXtoHSB(e);break;case`rgb`:t=this.RGBtoHSB(e);break;case`hsb`:t=e;break}else t=this.HEXtoHSB(this.defaultColor);return t.s===0||t.b===0?t.h=this.localHue:this.localHue=t.h,t},onOverlayEnter:function(e){this.updateUI(),this.alignOverlay(),this.bindOutsideClickListener(),this.bindScrollListener(),this.bindResizeListener(),this.autoZIndex&&a.set(`overlay`,e,this.baseZIndex||this.$primevue.config.zIndex.overlay),this.$attrSelector&&e.setAttribute(this.$attrSelector,``),this.$emit(`show`)},onOverlayLeave:function(){this.unbindOutsideClickListener(),this.unbindScrollListener(),this.unbindResizeListener(),this.clearRefs(),this.$emit(`hide`)},onOverlayAfterLeave:function(e){this.autoZIndex&&a.clear(e)},alignOverlay:function(){this.appendTo===`self`?f(this.picker,this.$refs.input):T(this.picker,this.$refs.input)},onInputClick:function(){this.disabled||(this.overlayVisible=!this.overlayVisible)},onInputKeydown:function(e){switch(e.code){case`Space`:this.overlayVisible=!this.overlayVisible,e.preventDefault();break;case`Escape`:case`Tab`:this.overlayVisible=!1;break}},onInputBlur:function(e){var t,n;(t=(n=this.formField).onBlur)==null||t.call(n)},onColorMousedown:function(e){this.disabled||(this.bindDragListeners(),this.onColorDragStart(e))},onColorDragStart:function(e){this.disabled||(this.colorDragging=!0,this.pickColor(e),this.$el.setAttribute(`p-colorpicker-dragging`,`true`),!this.isUnstyled&&c(this.$el,`p-colorpicker-dragging`),e.preventDefault())},onDrag:function(e){this.colorDragging&&(this.pickColor(e),e.preventDefault()),this.hueDragging&&(this.pickHue(e),e.preventDefault())},onDragEnd:function(){this.colorDragging=!1,this.hueDragging=!1,this.$el.setAttribute(`p-colorpicker-dragging`,`false`),!this.isUnstyled&&N(this.$el,`p-colorpicker-dragging`),this.unbindDragListeners()},onHueMousedown:function(e){this.disabled||(this.bindDragListeners(),this.onHueDragStart(e))},onHueDragStart:function(e){this.disabled||(this.hueDragging=!0,this.pickHue(e),!this.isUnstyled&&c(this.$el,`p-colorpicker-dragging`),e.preventDefault())},isInputClicked:function(e){return this.$refs.input&&this.$refs.input.isSameNode(e.target)},bindDragListeners:function(){this.bindDocumentMouseMoveListener(),this.bindDocumentMouseUpListener()},unbindDragListeners:function(){this.unbindDocumentMouseMoveListener(),this.unbindDocumentMouseUpListener()},bindOutsideClickListener:function(){var e=this;this.outsideClickListener||(this.outsideClickListener=function(t){e.overlayVisible&&e.picker&&!e.picker.contains(t.target)&&!e.isInputClicked(t)&&(e.overlayVisible=!1)},document.addEventListener(`click`,this.outsideClickListener,!0))},unbindOutsideClickListener:function(){this.outsideClickListener&&=(document.removeEventListener(`click`,this.outsideClickListener,!0),null)},bindScrollListener:function(){var e=this;this.scrollHandler||=new O(this.$refs.container,function(){e.overlayVisible&&=!1}),this.scrollHandler.bindScrollListener()},unbindScrollListener:function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},bindResizeListener:function(){var e=this;this.resizeListener||(this.resizeListener=function(){e.overlayVisible&&!u()&&(e.overlayVisible=!1)},window.addEventListener(`resize`,this.resizeListener))},unbindResizeListener:function(){this.resizeListener&&=(window.removeEventListener(`resize`,this.resizeListener),null)},bindDocumentMouseMoveListener:function(){this.documentMouseMoveListener||(this.documentMouseMoveListener=this.onDrag.bind(this),document.addEventListener(`mousemove`,this.documentMouseMoveListener))},unbindDocumentMouseMoveListener:function(){this.documentMouseMoveListener&&=(document.removeEventListener(`mousemove`,this.documentMouseMoveListener),null)},bindDocumentMouseUpListener:function(){this.documentMouseUpListener||(this.documentMouseUpListener=this.onDragEnd.bind(this),document.addEventListener(`mouseup`,this.documentMouseUpListener))},unbindDocumentMouseUpListener:function(){this.documentMouseUpListener&&=(document.removeEventListener(`mouseup`,this.documentMouseUpListener),null)},pickerRef:function(e){this.picker=e},colorSelectorRef:function(e){this.colorSelector=e},colorHandleRef:function(e){this.colorHandle=e},hueViewRef:function(e){this.hueView=e},hueHandleRef:function(e){this.hueHandle=e},clearRefs:function(){this.picker=null,this.colorSelector=null,this.colorHandle=null,this.hueView=null,this.hueHandle=null},onOverlayClick:function(e){j.emit(`overlay-click`,{originalEvent:e,target:this.$el})}},components:{Portal:x}};function B(e){"@babel/helpers - typeof";return B=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},B(e)}function V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function H(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?V(Object(n),!0).forEach(function(t){U(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):V(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function U(e,t,n){return(t=W(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function W(e){var t=G(e,`string`);return B(t)==`symbol`?t:t+``}function G(e,t){if(B(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(B(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var K=[`id`,`tabindex`,`disabled`];function q(e,t,r,i,a,o){var c=A(`Portal`);return E(),n(`div`,D({ref:`container`,class:e.cx(`root`)},e.ptmi(`root`)),[e.inline?M(``,!0):(E(),n(`input`,D({key:0,ref:`input`,id:e.inputId,type:`text`,class:e.cx(`preview`),readonly:``,tabindex:e.tabindex,disabled:e.disabled,onClick:t[0]||=function(){return o.onInputClick&&o.onInputClick.apply(o,arguments)},onKeydown:t[1]||=function(){return o.onInputKeydown&&o.onInputKeydown.apply(o,arguments)},onBlur:t[2]||=function(){return o.onInputBlur&&o.onInputBlur.apply(o,arguments)}},e.ptm(`preview`)),null,16,K)),s(c,{appendTo:e.appendTo,disabled:e.inline},{default:C(function(){return[s(b,D({name:`p-anchored-overlay`,onEnter:o.onOverlayEnter,onLeave:o.onOverlayLeave,onAfterLeave:o.onOverlayAfterLeave},e.ptm(`transition`)),{default:C(function(){return[e.inline||a.overlayVisible?(E(),n(`div`,D({key:0,ref:o.pickerRef,class:[e.cx(`panel`),e.panelClass,e.overlayClass],onClick:t[11]||=function(){return o.onOverlayClick&&o.onOverlayClick.apply(o,arguments)}},H(H({},e.ptm(`panel`)),e.ptm(`overlay`))),[d(`div`,D({class:e.cx(`content`)},e.ptm(`content`)),[d(`div`,D({ref:o.colorSelectorRef,class:e.cx(`colorSelector`),onMousedown:t[3]||=function(e){return o.onColorMousedown(e)},onTouchstart:t[4]||=function(e){return o.onColorDragStart(e)},onTouchmove:t[5]||=function(e){return o.onDrag(e)},onTouchend:t[6]||=function(e){return o.onDragEnd()}},e.ptm(`colorSelector`)),[d(`div`,D({class:e.cx(`colorBackground`)},e.ptm(`colorBackground`)),[d(`div`,D({ref:o.colorHandleRef,class:e.cx(`colorHandle`)},e.ptm(`colorHandle`)),null,16)],16)],16),d(`div`,D({ref:o.hueViewRef,class:e.cx(`hue`),onMousedown:t[7]||=function(e){return o.onHueMousedown(e)},onTouchstart:t[8]||=function(e){return o.onHueDragStart(e)},onTouchmove:t[9]||=function(e){return o.onDrag(e)},onTouchend:t[10]||=function(e){return o.onDragEnd()}},e.ptm(`hue`)),[d(`div`,D({ref:o.hueHandleRef,class:e.cx(`hueHandle`)},e.ptm(`hueHandle`)),null,16)],16)],16)],16)):M(``,!0)]}),_:1},16,[`onEnter`,`onLeave`,`onAfterLeave`])]}),_:1},8,[`appendTo`,`disabled`])],16)}z.render=q;var xe={class:`environment-form`},Se={class:`form-group`},Ce={for:`name`},we={key:0,class:`text-red-500`},Te={class:`form-group`},Ee={for:`description`},De={class:`form-row`},Oe={class:`form-group flex-1`},ke={for:`color`},Ae={class:`color-field`},je={class:`text-gray-500`},Me={class:`form-group flex-1`},Ne={for:`bgColor`},Pe={class:`color-field`},Fe={class:`text-gray-500`},Ie={class:`form-group`},Le={class:`switch-row`},Re={for:`defaultSwitch`},ze={class:`text-gray-500`},Be={key:0,class:`form-group`},Ve={for:`agentSelect`},He={class:`text-gray-500`},Ue={class:`form-actions`},We={class:`tab-content`},Ge={class:`form-group`},Ke={for:`parents`},qe={style:{padding:`0.5rem 0.75rem`}},Je={class:`text-gray-500`},Ye={key:1},Xe={class:`inherited-header`},Ze={class:`inherited-row-key`},Qe={class:`preview-key`},$e={class:`value-row`},et=[`onClick`],tt=[`onClick`],nt={key:0,class:`secret-mask`},rt={key:1,class:`preview-value`},it={key:2,class:`empty-variables`},J=`__inherit__`,Y=y(k({__name:`EnvironmentForm`,props:{projectId:{},environmentId:{},initialData:{}},emits:[`save`,`cancel`],setup(t,{emit:a}){let c=t,u=a,f=ne(),g=re(),y=ee(),{t:b}=ue(),x=v(!1),T=v(!1),D=v({}),O=e=>(e??``).replace(/^#/,``),k=v({name:c.initialData?.name??``,description:c.initialData?.description??``,parentIds:c.initialData?.parentIds??[],color:O(c.initialData?.color),bgColor:O(c.initialData?.bgColor),default:c.initialData?.default??!1,agentId:c.initialData?.agentId??J}),A=l(()=>(c.initialData?.scope??`global`)===`global`),j=l(()=>[{label:b(`environmentForm.agentDefaultInherit`),value:J},...g.agents.map(e=>({label:e.config.name||e.config.id,value:e.config.id}))]),N=l(()=>f.environments.filter(e=>!(c.initialData?.id&&e.id===c.initialData.id))),R=v(``),B=l(()=>{let e=R.value.trim().toLowerCase();if(!e)return N.value;let t=e.split(/\s+/);return N.value.filter(e=>{let n=e.name.toLowerCase();return t.every(e=>n.includes(e))})}),V=l(()=>!!c.environmentId),H=v(null),{values:U}=ve({projectId:()=>c.projectId,environmentId:()=>c.environmentId,agentId:()=>k.value.agentId===J?void 0:k.value.agentId}),{suggestions:W,meta:G,search:K}=be(()=>H.value),q=v(new Set);function Y(e){let t=new Set(q.value);t.has(e)?t.delete(e):t.add(e),q.value=t}let X=v(null);function at(e,t){navigator.clipboard.writeText(t),X.value=e,setTimeout(()=>{X.value===e&&(X.value=null)},1500)}async function ot(){if(!(!V.value||!c.environmentId)){T.value=!0;try{await f.update({id:c.environmentId,parentIds:k.value.parentIds}),await Z()}catch(e){y.add({severity:`error`,summary:b(`environmentForm.failedToSaveParents`),detail:e.message??``,life:5e3})}finally{T.value=!1}}}async function Z(){if(c.environmentId)try{H.value=await f.resolve(c.environmentId)}catch{H.value=null}}function st(e){return!e||typeof e!=`object`?[]:Object.entries(e).map(([e,t])=>({variableId:e,key:t.key||e,slot:{value:t.value?.value??``,pre:t.value?.pre??``,post:t.value?.post??``,isSecret:t.value?.isSecret??!1}}))}let ct=l(()=>H.value?st(H.value.variables):[]),Q=l(()=>!c.environmentId||!H.value?.sources?[]:ct.value.filter(e=>H.value.sources[e.variableId]?.environmentId!==c.environmentId)),$=l(()=>{if(!H.value?.sources)return{};let e={};for(let[t,n]of Object.entries(H.value.sources))e[t]={environmentId:n.environmentId,overridden:n.overridden};return e});ce(()=>{V.value&&Z()});async function lt(){if(D.value={},!k.value.name.trim()){D.value.name=b(`environmentForm.nameRequired`);return}x.value=!0;try{let e=e=>e?e.startsWith(`#`)?e:`#${e}`:``,t=e(k.value.color),n=e(k.value.bgColor),r=k.value.agentId===J?void 0:k.value.agentId;u(`save`,{projectId:c.projectId,name:k.value.name.trim(),description:k.value.description.trim(),parentIds:k.value.parentIds,...V.value?{}:{variables:{}},default:k.value.default,...t&&{color:t},...n&&{bgColor:n},agentId:r})}finally{x.value=!1}}return r(()=>c.initialData,()=>{c.initialData&&(k.value.name=c.initialData.name??``,k.value.description=c.initialData.description??``,k.value.parentIds=c.initialData.parentIds??[],k.value.color=O(c.initialData.color),k.value.bgColor=O(c.initialData.bgColor),k.value.default=c.initialData.default??!1,k.value.agentId=c.initialData.agentId??J)}),(t,r)=>(E(),n(`div`,xe,[s(S(ge),{value:`0`,class:`environment-form__tabs`},{default:C(()=>[s(S(me),null,{default:C(()=>[s(S(I),{value:`0`},{default:C(()=>[r[13]||=d(`i`,{class:`pi pi-cog tab-icon`},null,-1),d(`span`,null,m(S(b)(`environmentForm.tabConfiguration`)),1)]),_:1}),s(S(I),{value:`1`},{default:C(()=>[r[14]||=d(`i`,{class:`pi pi-database tab-icon`},null,-1),d(`span`,null,m(S(b)(`environmentForm.tabVariables`)),1)]),_:1})]),_:1}),s(S(he),null,{default:C(()=>[s(S(L),{value:`0`},{default:C(()=>[d(`form`,{onSubmit:w(lt,[`prevent`]),class:`tab-content`},[s(S(F),{legend:S(b)(`environmentForm.generalInfo`)},{default:C(()=>[d(`div`,Se,[d(`label`,Ce,[_(m(S(b)(`environmentForm.nameLabel`))+` `,1),r[15]||=d(`span`,{class:`required`},`*`,-1)]),s(S(p),{id:`name`,modelValue:k.value.name,"onUpdate:modelValue":r[0]||=e=>k.value.name=e,placeholder:S(b)(`environmentForm.namePlaceholder`),class:`w-full`,disabled:x.value},null,8,[`modelValue`,`placeholder`,`disabled`]),D.value.name?(E(),n(`small`,we,m(D.value.name),1)):M(``,!0)]),d(`div`,Te,[d(`label`,Ee,m(S(b)(`environmentForm.descriptionLabel`)),1),s(S(ie),{id:`description`,modelValue:k.value.description,"onUpdate:modelValue":r[1]||=e=>k.value.description=e,placeholder:S(b)(`environmentForm.descriptionPlaceholder`),rows:`3`,class:`w-full`,disabled:x.value},null,8,[`modelValue`,`placeholder`,`disabled`])])]),_:1},8,[`legend`]),s(S(F),{legend:S(b)(`environmentForm.appearance`)},{default:C(()=>[d(`div`,De,[d(`div`,Oe,[d(`label`,ke,m(S(b)(`environmentForm.textColorLabel`)),1),d(`div`,Ae,[s(S(z),{id:`color`,modelValue:k.value.color,"onUpdate:modelValue":r[2]||=e=>k.value.color=e,disabled:x.value},null,8,[`modelValue`,`disabled`]),s(S(p),{modelValue:k.value.color,"onUpdate:modelValue":r[3]||=e=>k.value.color=e,placeholder:`#3B82F6`,class:`color-input`,disabled:x.value},null,8,[`modelValue`,`disabled`])]),d(`small`,je,m(S(b)(`environmentForm.textColorHint`)),1)]),d(`div`,Me,[d(`label`,Ne,m(S(b)(`environmentForm.bgColorLabel`)),1),d(`div`,Pe,[s(S(z),{id:`bgColor`,modelValue:k.value.bgColor,"onUpdate:modelValue":r[4]||=e=>k.value.bgColor=e,disabled:x.value},null,8,[`modelValue`,`disabled`]),s(S(p),{modelValue:k.value.bgColor,"onUpdate:modelValue":r[5]||=e=>k.value.bgColor=e,placeholder:`#DBEAFE`,class:`color-input`,disabled:x.value},null,8,[`modelValue`,`disabled`])]),d(`small`,Fe,m(S(b)(`environmentForm.bgColorHint`)),1)])])]),_:1},8,[`legend`]),s(S(F),{legend:S(b)(`environmentForm.settings`)},{default:C(()=>[d(`div`,Ie,[d(`div`,Le,[d(`label`,Re,m(S(b)(`environmentForm.defaultLabel`)),1),s(S(pe),{id:`defaultSwitch`,modelValue:k.value.default,"onUpdate:modelValue":r[6]||=e=>k.value.default=e,disabled:x.value},null,8,[`modelValue`,`disabled`])]),d(`small`,ze,m(S(b)(`environmentForm.defaultHint`)),1)]),A.value?(E(),n(`div`,Be,[d(`label`,Ve,m(S(b)(`environmentForm.agentDefaultLabel`)),1),s(S(le),{id:`agentSelect`,modelValue:k.value.agentId,"onUpdate:modelValue":r[7]||=e=>k.value.agentId=e,options:j.value,"option-label":`label`,"option-value":`value`,class:`w-full`,disabled:x.value},null,8,[`modelValue`,`options`,`disabled`]),d(`small`,He,m(S(b)(`environmentForm.agentDefaultHint`)),1)])):M(``,!0)]),_:1},8,[`legend`]),d(`div`,Ue,[s(S(e),{type:`button`,label:S(b)(`environmentForm.cancel`),severity:`secondary`,disabled:x.value,onClick:r[8]||=e=>t.$emit(`cancel`)},null,8,[`label`,`disabled`]),s(S(e),{type:`submit`,label:S(b)(`environmentForm.save`),loading:x.value,disabled:x.value},null,8,[`label`,`loading`,`disabled`])])],32)]),_:1}),s(S(L),{value:`1`},{default:C(()=>[d(`div`,We,[N.value.length>0?(E(),h(S(F),{key:0,legend:S(b)(`environmentForm.inheritance`)},{default:C(()=>[d(`div`,Ge,[d(`label`,Ke,m(S(b)(`environmentForm.parentLabel`)),1),s(S(fe),{id:`parents`,modelValue:k.value.parentIds,"onUpdate:modelValue":r[10]||=e=>k.value.parentIds=e,options:B.value,"option-label":`name`,"option-value":`id`,placeholder:S(b)(`environmentForm.parentPlaceholder`),disabled:x.value||T.value,loading:T.value,class:`w-full`,onShow:r[11]||=e=>R.value=``,onHide:ot},{header:C(()=>[d(`div`,qe,[s(S(p),{modelValue:R.value,"onUpdate:modelValue":r[9]||=e=>R.value=e,placeholder:S(b)(`environmentForm.parentFilter`),class:`w-full`,size:`small`},null,8,[`modelValue`,`placeholder`])])]),_:1},8,[`modelValue`,`options`,`placeholder`,`disabled`,`loading`]),d(`small`,Je,m(S(b)(`environmentForm.parentHint`)),1)])]),_:1},8,[`legend`])):M(``,!0),V.value&&c.environmentId?(E(),n(`div`,Ye,[s(ye,{"environment-id":c.environmentId,editable:!0,"autocomplete-enabled":!0,"autocomplete-suggestions":S(W),"autocomplete-meta":S(G),"resolved-env":H.value?.env??{},"service-builtins":S(U),"show-overrides":!0,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:S(K),onVariablesChanged:Z},null,8,[`environment-id`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`,`onAutocompleteSearch`]),Q.value.length>0?(E(),h(S(se),{key:0,class:`inherited-accordion`},{default:C(()=>[s(S(ae),{value:`inherited`},{default:C(()=>[s(S(te),null,{default:C(()=>[d(`span`,Xe,[r[16]||=d(`i`,{class:`pi pi-arrow-down-left`},null,-1),_(` `+m(S(b)(`environmentForm.inheritedVariables`))+` `,1),s(S(i),{value:String(Q.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),s(S(oe),null,{default:C(()=>[s(S(de),{value:Q.value,size:`small`,"show-headers":!1},{default:C(()=>[s(S(P),{style:{width:`35%`}},{body:C(({data:e})=>[d(`div`,Ze,[d(`code`,Qe,m(e.key),1),$.value[e.variableId]?(E(),h(_e,{key:0,"environment-id":$.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):M(``,!0)])]),_:1}),s(S(P),{style:{width:`65%`}},{body:C(({data:e})=>[d(`span`,$e,[d(`span`,{class:`value-actions`,onClick:r[12]||=w(()=>{},[`stop`])},[e.slot.isSecret?(E(),n(`i`,{key:0,class:o([q.value.has(e.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>Y(e.variableId)},null,10,et)):M(``,!0),d(`i`,{class:o([X.value===e.variableId?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>at(e.variableId,e.slot.pre+e.slot.value+e.slot.post)},null,10,tt)]),e.slot.isSecret&&!q.value.has(e.variableId)?(E(),n(`span`,nt,`***`)):(E(),n(`code`,rt,m(e.slot.pre)+m(e.slot.value)+m(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):M(``,!0)])):(E(),n(`div`,it,[r[17]||=d(`i`,{class:`pi pi-info-circle`},null,-1),d(`span`,null,m(S(b)(`environmentForm.variablesAfterCreate`)),1)]))])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-4cdb8dbe`]]);export{Y as t};
@@ -1 +0,0 @@
1
- import{$n as e,Bi as t,Gi as n,Ii as r,Li as i,Nn as a,Qt as o,Ra as s,Ri as c,Ya as l,Yn as u,_r as d,bn as f,dr as p,fr as m,io as h,ma as g,qi as _,ua as v,xr as y,zi as b}from"./index-DuGh2zls.js";import"./useServiceUrlHost-DIEqEQRR.js";import{t as x}from"./EnvironmentForm-DtgwWpcp.js";import"./useEnvVarAutocomplete-BcVa9mel.js";var S={class:`environment-form-page`},C={class:`header`},w={key:0,class:`loading`},T={key:1,class:`form-container`},E=u(_({__name:`EnvironmentFormPage`,setup(u){let{t:_}=y(),E=p(),D=m(),O=f(),k=d(),A=r(()=>E.params.projectId),j=r(()=>E.params.id),M=r(()=>!!j.value),N=l(!1),P=l(null);async function F(){if(M.value){N.value=!0;try{let e=O.getById(j.value);if(!e){console.error(`Environment not found`),L();return}P.value=e}catch(e){console.error(`Failed to load environment:`,o(e))}finally{N.value=!1}}}async function I(e){try{M.value&&P.value?(await O.update({...e,id:P.value.id}),await F(),k.add({severity:`success`,summary:_(`environmentFormPage.updated`),detail:`"${e.name}" ${_(`environmentFormPage.updatedDesc`)}`,life:3e3})):(await O.create(e),k.add({severity:`success`,summary:_(`environmentFormPage.created`),detail:`"${e.name}" ${_(`environmentFormPage.createdDesc`)}`,life:3e3}),L())}catch(e){console.error(`Save failed:`,o(e)),k.add({severity:`error`,summary:_(`environmentFormPage.saveFailed`),detail:o(e)??_(`environmentFormPage.saveFailedDesc`),life:5e3})}}function L(){D.back()}return v(async()=>{O.environments.length===0&&await O.fetchAll(A.value),M.value&&await F()}),(r,o)=>(g(),t(`div`,S,[i(`div`,C,[n(h(e),{icon:`pi pi-arrow-left`,text:``,onClick:L,class:`back-button`}),i(`h1`,null,s(M.value?h(_)(`environmentFormPage.editTitle`):h(_)(`environmentFormPage.createTitle`)),1),o[0]||=i(`div`,{style:{width:`40px`}},null,-1)]),N.value?(g(),t(`div`,w,[n(h(a))])):(g(),t(`div`,T,[P.value||!M.value?(g(),c(x,{key:0,"project-id":A.value,"environment-id":j.value,"initial-data":P.value,onSave:I,onCancel:L},null,8,[`project-id`,`environment-id`,`initial-data`])):b(``,!0)]))]))}}),[[`__scopeId`,`data-v-f667ca1c`]]);export{E as default};
@@ -1 +0,0 @@
1
- import{$n as e,Bi as t,Dn as n,Fa as r,Gi as i,Ii as a,La as o,Li as s,Ma as c,Ni as l,Nn as u,Qt as d,Ra as f,Ri as p,Wi as m,Ya as h,Yn as g,Zn as _,Zt as ee,_r as v,bn as te,dr as ne,fr as re,ga as y,gr as ie,io as b,ja as x,ji as S,ma as C,qi as w,ua as ae,xn as oe,xr as T,ya as E,zi as D}from"./index-DuGh2zls.js";import"./useServiceUrlHost-DIEqEQRR.js";import{t as O}from"./card-BQ1OXNVV.js";import{t as k}from"./EnvironmentForm-DtgwWpcp.js";import"./useEnvVarAutocomplete-BcVa9mel.js";var A={class:`environment-list-page`},j={class:`header`},M={class:`subtitle`},N={key:0,class:`loading`},P={key:1,class:`environments-grid`},F={class:`title-row`},I={class:`title-name`},L={class:`badges`},R=[`title`,`onClick`],z={key:0,class:`description`},se={key:1,class:`parents`},B={class:`var-count`},V={class:`actions`},H=g(w({__name:`EnvironmentListPage`,setup(g){let{t:w}=T(),H=ne(),U=re(),W=te(),G=ee(),K=oe(),ce=ie(),q=v(),J=a(()=>H.params.projectId),Y=h(!1),X=a(()=>G.getByRef({id:J.value,orgId:K.activeOrgId})??G.getById(J.value)),Z=a(()=>X.value?.activeEnvironmentId),le=a(()=>W.environments.filter(e=>e.scope===`global`||!e.scope)),ue=e=>e.map(e=>W.getById(e)?.name||e);function Q(e){if(e)return e.startsWith(`#`)?e:`#${e}`}ae(async()=>{await W.fetchAll(J.value)});async function de(e){try{await W.create(e),Y.value=!1,q.add({severity:`success`,summary:w(`environmentList.created`),detail:w(`environmentList.createdDesc`),life:3e3})}catch(e){q.add({severity:`error`,summary:w(`environmentList.createError`),detail:d(e)??w(`environmentList.createErrorDesc`),life:5e3})}}function $(e){U.push(`/projects/${J.value}/environments/${e}/edit`)}async function fe(e){try{await W.update({id:e,default:!0}),q.add({severity:`success`,summary:w(`environmentList.defaultSet`),detail:w(`environmentList.defaultSetDesc`),life:3e3})}catch(e){q.add({severity:`error`,summary:w(`environmentList.failedToSetDefault`),detail:d(e),life:5e3})}}async function pe(e){try{if(!X.value)return;await G.setActiveEnvironment(X.value,e),await W.fetchAll(J.value),q.add({severity:`success`,summary:w(`environmentList.activated`),life:3e3})}catch(e){q.add({severity:`error`,summary:w(`environmentList.failedToActivate`),detail:d(e),life:5e3})}}function me(e,t){ce.require({message:w(`environmentList.deleteConfirmMsg`,{name:t}),header:w(`environmentList.deleteTitle`),icon:`pi pi-exclamation-triangle`,accept:async()=>{try{await W.deleteEnv(e),q.add({severity:`success`,summary:w(`environmentList.deleted`),detail:w(`environmentList.deletedDesc`),life:3e3})}catch(e){q.add({severity:`error`,summary:w(`environmentList.failedToDelete`),detail:d(e),life:5e3})}}})}return(a,d)=>{let h=E(`tooltip`);return C(),t(`div`,A,[s(`div`,j,[s(`div`,null,[s(`h1`,null,f(b(w)(`environmentList.title`)),1),s(`p`,M,f(b(w)(`environmentList.subtitle`)),1)]),i(b(e),{onClick:d[0]||=e=>Y.value=!0,icon:`pi pi-plus`,label:b(w)(`environmentList.createButton`)},null,8,[`label`])]),b(W).loading?(C(),t(`div`,N,[i(b(u))])):(C(),t(`div`,P,[(C(!0),t(l,null,y(le.value,a=>(C(),p(b(O),{key:a.id,class:r([`environment-card`,{active:a.id===Z.value,immutable:a.immutable}]),style:o(a.bgColor||a.color?{borderLeftColor:Q(a.bgColor)||Q(a.color),borderLeftWidth:`4px`}:{}),onClick:e=>$(a.id)},{title:x(()=>[s(`div`,F,[s(`div`,I,[a.color||a.bgColor?(C(),t(`span`,{key:0,class:`env-swatch`,style:o({backgroundColor:Q(a.bgColor)||Q(a.color),color:Q(a.color)})},null,4)):D(``,!0),s(`span`,null,f(a.name),1)]),s(`div`,L,[a.immutable?(C(),p(b(n),{key:0,severity:`warning`,value:b(w)(`environmentList.immutableBadge`)},null,8,[`value`])):D(``,!0),a.id===Z.value?(C(),p(b(n),{key:1,severity:`success`,value:b(w)(`environmentList.activeBadge`)},null,8,[`value`])):D(``,!0),s(`i`,{class:r([`star-default pi`,a.default?`pi-star-fill`:`pi-star`]),title:a.default?b(w)(`environmentList.defaultEnv`):b(w)(`environmentList.setAsDefault`),onClick:S(e=>!a.default&&fe(a.id),[`stop`])},null,10,R)])])]),content:x(()=>[a.description?(C(),t(`p`,z,f(a.description),1)):D(``,!0),a.parentIds.length>0?(C(),t(`p`,se,[d[3]||=s(`strong`,null,`Parents:`,-1),m(` `+f(ue(a.parentIds).join(`, `)),1)])):D(``,!0),s(`p`,B,[d[4]||=s(`strong`,null,`Variables:`,-1),m(` `+f(Object.keys(a.variables??{}).length),1)])]),footer:x(()=>[s(`div`,V,[a.id!==Z.value&&!a.immutable?c((C(),p(b(e),{key:0,onClick:S(e=>pe(a.id),[`stop`]),text:``,rounded:``,icon:`pi pi-check`},null,8,[`onClick`])),[[h,b(w)(`environmentList.activateButton`),void 0,{top:!0}]]):D(``,!0),c(i(b(e),{onClick:S(e=>$(a.id),[`stop`]),text:``,rounded:``,icon:`pi pi-pencil`},null,8,[`onClick`]),[[h,b(w)(`environmentList.editButton`),void 0,{top:!0}]]),!a.immutable&&a.id!==Z.value?c((C(),p(b(e),{key:1,onClick:S(e=>me(a.id,a.name),[`stop`]),text:``,rounded:``,icon:`pi pi-trash`,severity:`danger`,"data-testid":`env-delete-btn`},null,8,[`onClick`])),[[h,b(w)(`environmentList.deleteButton`),void 0,{top:!0}]]):D(``,!0)])]),_:2},1032,[`class`,`style`,`onClick`]))),128))])),i(b(_),{visible:Y.value,"onUpdate:visible":d[2]||=e=>Y.value=e,header:b(w)(`environments.createEnvironment`),style:{width:`600px`}},{default:x(()=>[i(k,{"project-id":J.value,onSave:de,onCancel:d[1]||=e=>Y.value=!1},null,8,[`project-id`])]),_:1},8,[`visible`,`header`])])}}}),[[`__scopeId`,`data-v-a6e43b0f`]]);export{H as default};