@runeya/runeya 2.0.137 → 2.0.139

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 (402) hide show
  1. package/agent/index.js +36 -10
  2. package/agent/index.js.map +1 -1
  3. package/agent-manager-NAGIMH2T.js +11 -0
  4. package/chat-Q2UMYXQL.js +21 -0
  5. package/{chunk-ZFELQG4B.js → chunk-EV3TBM7E.js} +78 -5
  6. package/chunk-EV3TBM7E.js.map +1 -0
  7. package/{chunk-FJLMXLMK.js → chunk-GLIU3J47.js} +354 -128
  8. package/chunk-GLIU3J47.js.map +1 -0
  9. package/{chunk-BDQOBEZ3.js → chunk-GOMF7NWS.js} +2 -2
  10. package/{desktop-launcher-3COY6F6H.js → chunk-GWQV5KKU.js} +193 -13
  11. package/chunk-GWQV5KKU.js.map +1 -0
  12. package/{chunk-5EMEJNVU.js → chunk-LE6XQ3OV.js} +13 -1
  13. package/chunk-LE6XQ3OV.js.map +1 -0
  14. package/{chunk-J4GLFY7G.js → chunk-MSICJEZD.js} +5 -5
  15. package/{chunk-NURPXHLB.js → chunk-OZBSOSAS.js} +26 -12
  16. package/chunk-OZBSOSAS.js.map +1 -0
  17. package/{chunk-P65BO7WZ.js → chunk-WNCXZ6E7.js} +165 -125
  18. package/chunk-WNCXZ6E7.js.map +1 -0
  19. package/{chunk-I7JHF5FE.js → chunk-XHGJHYDC.js} +4 -4
  20. package/chunk-YSYLL57J.js +87 -0
  21. package/chunk-YSYLL57J.js.map +1 -0
  22. package/{companion-Q67RAO3N.js → companion-MGX62L4T.js} +9 -7
  23. package/desktop-installer-page-OJTOKP7V.js +598 -0
  24. package/desktop-installer-page-OJTOKP7V.js.map +1 -0
  25. package/desktop-launcher-HKXP4LRI.js +43 -0
  26. package/desktop-wizard-XIDDAG7L.js +15 -0
  27. package/index.js +30 -21
  28. package/index.js.map +1 -1
  29. package/mcp-server/index.js +49 -1
  30. package/mcp-server/index.js.map +1 -1
  31. package/{node-4UUJN2WG.js → node-RN4URNZ5.js} +4 -4
  32. package/package.json +1 -1
  33. package/settings-manager-BBNCDDQJ.js +10 -0
  34. package/settings-manager-BBNCDDQJ.js.map +1 -0
  35. package/{src-7O3GCEIB.js → src-KWLVQD36.js} +193 -92
  36. package/src-KWLVQD36.js.map +1 -0
  37. package/{vault-resolver-57Q2DVOR.js → vault-resolver-B5P2OUI5.js} +20 -2
  38. package/vault-resolver-B5P2OUI5.js.map +1 -0
  39. package/web/assets/AgentScalarChatInterface.vue-CqGVVIo8.js +13 -0
  40. package/web/assets/AgentTerminalPage-mVD1jsWC.js +1 -0
  41. package/web/assets/AiChatPage-J-JAXhoT.js +1 -0
  42. package/web/assets/AppLayout-6eKmu_TP.css +1 -0
  43. package/web/assets/AppLayout-CsUnvWA0.js +1 -0
  44. package/web/assets/AuditPage-gzMJbY4c.js +1 -0
  45. package/web/assets/CloudAccountPage-CIUmdyoI.js +1 -0
  46. package/web/assets/CloudAccountPage-Cm1ibhZY.js +1 -0
  47. package/web/assets/CloudAccountPage-eoNciq1Q.css +1 -0
  48. package/web/assets/CloudMessagingPage-EV4MwYrk.js +2 -0
  49. package/web/assets/DashboardPage-CrMccWRA.js +1 -0
  50. package/web/assets/DirectoryPickerDialog-Cnr4SkLc.js +1 -0
  51. package/web/assets/DirectoryPickerDialog-D1lQ83i5.css +1 -0
  52. package/web/assets/{EditorIcon-DXYoMZnL.js → EditorIcon-Dlr9ami0.js} +2 -2
  53. package/web/assets/{EnvironmentForm-D3pZuxVn.js → EnvironmentForm-NiG4dzT9.js} +2 -2
  54. package/web/assets/EnvironmentFormPage-TJzOWwS7.js +1 -0
  55. package/web/assets/EnvironmentListPage-oR335kl1.js +1 -0
  56. package/web/assets/KanbanBoardPage-Cta-iCIL.css +1 -0
  57. package/web/assets/KanbanBoardPage-Dol6K6rI.js +4 -0
  58. package/web/assets/KanbanListPage-C2yhMB2L.js +1 -0
  59. package/web/assets/{KanbanListPage-DxJFx6A6.css → KanbanListPage-CEJ9Vluh.css} +1 -1
  60. package/web/assets/LaunchProjectPage-BGIRMKdM.js +1 -0
  61. package/web/assets/LaunchProjectPage-CU2iF25_.css +1 -0
  62. package/web/assets/LaunchServicesPage-9aAno4Gc.css +1 -0
  63. package/web/assets/LaunchServicesPage-DqIG8ZDk.js +1 -0
  64. package/web/assets/LaunchShell-C7RrqA4k.js +1 -0
  65. package/web/assets/LaunchShell-CGtjrl6_.css +1 -0
  66. package/web/assets/LogViewer-BWtCyqa4.js +3 -0
  67. package/web/assets/OrgKeyPrompt-B343sYVi.css +1 -0
  68. package/web/assets/OrgKeyPrompt-IjlZPHOI.js +1 -0
  69. package/web/assets/OrgLogo-B0TayK5W.js +1 -0
  70. package/web/assets/ProcessControls-Bw28Duzs.js +1 -0
  71. package/web/assets/ProcessDetailPage-CVYQJ4aI.js +1 -0
  72. package/web/assets/{ProcessMetrics-CdQc_8Z0.js → ProcessMetrics-D0HzDnGO.js} +3 -3
  73. package/web/assets/ProjectCreateDialog-CLFPf8ds.js +1 -0
  74. package/web/assets/ProjectCreateDialog-UEIYMerY.css +1 -0
  75. package/web/assets/ProjectLocationGate-D68jdBcV.js +1 -0
  76. package/web/assets/ProjectPublishDialog-CDpS6xcQ.css +1 -0
  77. package/web/assets/ProjectPublishDialog-Cvvjeuyq.js +1 -0
  78. package/web/assets/RandomJobTestPage-CuUJfwwb.js +2 -0
  79. package/web/assets/ScenarioEditorPage-Ckq6XNl2.js +14 -0
  80. package/web/assets/SendToChatDialog-4a4_2amD.js +1 -0
  81. package/web/assets/ServiceControlsBar-OC7cDCM7.js +1 -0
  82. package/web/assets/ServiceDetailPage-BMlS1q4i.js +2 -0
  83. package/web/assets/ServiceFormPage-CozmJNy1.js +1 -0
  84. package/web/assets/{SettingsPage-DA7lVKfg.css → SettingsPage-CF548HPl.css} +1 -1
  85. package/web/assets/SettingsPage-CkJQwWCW.js +2063 -0
  86. package/web/assets/UnlockPage-94m6Ap-H.js +1 -0
  87. package/web/assets/VaultMigrationPage-Bj6KgIUi.js +1 -0
  88. package/web/assets/VersionBadge-DjTAz-tn.js +1 -0
  89. package/web/assets/WikiPage-n_vxXevo.js +1 -0
  90. package/web/assets/WikiView-lxEITfCa.js +1 -0
  91. package/web/assets/add-scalar-classes-lFkCrmFv.js +387 -0
  92. package/web/assets/{autocomplete-DobAPPYJ.js → autocomplete-bClqtFV-.js} +3 -3
  93. package/web/assets/{basic-shape-diamond.svg-FbeAPLc-.js → basic-shape-diamond.svg-DFdUK3gN.js} +1 -1
  94. package/web/assets/{basic-shape-hexagon.svg-CtwcdpTe.js → basic-shape-hexagon.svg-BKiT9xxU.js} +1 -1
  95. package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-DsSs3S2_.js → basic-shape-primary-circle-ellipse-round.svg-tmXcRxRQ.js} +1 -1
  96. package/web/assets/{basic-shape-primary-square-rectangle.svg-CNe1RNx8.js → basic-shape-primary-square-rectangle.svg-C9duFSNc.js} +1 -1
  97. package/web/assets/{basic-shape-shield.svg-DwZMLfah.js → basic-shape-shield.svg-CLzO94DF.js} +1 -1
  98. package/web/assets/{browser-Dz1gvldT.js → browser-BEDlGGfe.js} +1 -1
  99. package/web/assets/{browser-DsZ9HxVm.js → browser-CivlztYP.js} +1 -1
  100. package/web/assets/card-wcTFC8yG.js +32 -0
  101. package/web/assets/{checkbox-DPknldTJ.js → checkbox-TtO_mmrY.js} +2 -2
  102. package/web/assets/{chevronup-D2Lr2GiV.js → chevronup-Cd93cHVj.js} +4 -4
  103. package/web/assets/{chip-Caiakd-N.js → chip-omKmLLWH.js} +2 -2
  104. package/web/assets/client-BKIls6aD.js +24 -0
  105. package/web/assets/cloud-chat.store-Bskr_EXO.js +1 -0
  106. package/web/assets/cloud-client-rcfqjfUK.js +1 -0
  107. package/web/assets/cloud-session-CycNU7YV.js +1 -0
  108. package/web/assets/cloud-session-DiaAeCJI.js +2 -0
  109. package/web/assets/column-DgtEciO-.js +763 -0
  110. package/web/assets/composables-Ce8WccBy.js +1 -0
  111. package/web/assets/{computer-device-desktop-monitor.svg-CwiGN14T.js → computer-device-desktop-monitor.svg-D3YaocxY.js} +1 -1
  112. package/web/assets/{computer-device-desktop.svg-BC2VdXDZ.js → computer-device-desktop.svg-lnn_cyCx.js} +1 -1
  113. package/web/assets/{computer-device-laptop.svg-BOp8AKN6.js → computer-device-laptop.svg-9f5_Ipnq.js} +1 -1
  114. package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-CmbpPX1u.js → computer-device-mobile-phone-android-samsung-back.svg-DxHwZI5u.js} +1 -1
  115. package/web/assets/{computer-device-mobile-phone-android-samsung.svg-_WGKWVtZ.js → computer-device-mobile-phone-android-samsung.svg-CnYqoXt4.js} +1 -1
  116. package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-DmLh97KG.js → computer-device-mobile-phone-iphone-x-back.svg-D8JfsF_0.js} +1 -1
  117. package/web/assets/{computer-device-mobile-phone-iphone-x.svg-C7-5mdyV.js → computer-device-mobile-phone-iphone-x.svg-CUbRWc7v.js} +1 -1
  118. package/web/assets/{computer-device-mobile-tablet-touch.svg-DiUaSnhU.js → computer-device-mobile-tablet-touch.svg-CBX2kbI1.js} +1 -1
  119. package/web/assets/{computer-device-mobile-tablet.svg-B6nfbYm_.js → computer-device-mobile-tablet.svg-CIn05KEg.js} +1 -1
  120. package/web/assets/{computer-device-network-ethernet-cat6.svg-DwtVKy79.js → computer-device-network-ethernet-cat6.svg-Dj0GRqXd.js} +1 -1
  121. package/web/assets/{computer-device-network-lan-www.svg-vQKfG3Xz.js → computer-device-network-lan-www.svg-D-G7js6t.js} +1 -1
  122. package/web/assets/{computer-device-network-wifi-connection.svg-DhHaOUge.js → computer-device-network-wifi-connection.svg-JnvMwBMA.js} +1 -1
  123. package/web/assets/{computer-device-network-wifi-router.svg-1dQS4k4J.js → computer-device-network-wifi-router.svg--XxSrk_J.js} +1 -1
  124. package/web/assets/{cssMode-CdQL22W5.js → cssMode-C3gHbz_w.js} +1 -1
  125. package/web/assets/{divider-DhYR4BAO.js → divider-eMI33mv1.js} +2 -2
  126. package/web/assets/{docx-preview-D-jP_CCs.js → docx-preview-CTkzTOcl.js} +1 -1
  127. package/web/assets/{ecology-science-erlenmeyer-flask.svg-D76wQVA2.js → ecology-science-erlenmeyer-flask.svg-DrHKX7bH.js} +1 -1
  128. package/web/assets/{fieldset-BtOjs_Hh.js → fieldset-CiIJH8Xe.js} +2 -2
  129. package/web/assets/{freemarker2-BADW9vhy.js → freemarker2-DWxB7Wcd.js} +1 -1
  130. package/web/assets/{handlebars-CwWQD_C8.js → handlebars-CWUdFsNH.js} +1 -1
  131. package/web/assets/{html-y87CEbe3.js → html-DhvF7iHg.js} +1 -1
  132. package/web/assets/{htmlMode-CVagtvVh.js → htmlMode-CIuDa6YW.js} +1 -1
  133. package/web/assets/{image-flash-lightning.svg-OvpKi3a3.js → image-flash-lightning.svg-qFK_1eYx.js} +1 -1
  134. package/web/assets/{image-picture-flower.svg-DLOePozT.js → image-picture-flower.svg-qAmkHnOu.js} +1 -1
  135. package/web/assets/{index-CcIrffU_.js → index-CzSAFmCu.js} +363 -363
  136. package/web/assets/index-D0IPNhsg.css +1 -0
  137. package/web/assets/{interface-alert-exclamation-diamond.svg-4Vk7SoQ1.js → interface-alert-exclamation-diamond.svg-Dugh0ymo.js} +1 -1
  138. package/web/assets/{interface-alert-exclamation-triangle-warning.svg-BLAvc4am.js → interface-alert-exclamation-triangle-warning.svg-8neoRFVP.js} +1 -1
  139. package/web/assets/{interface-alert-information-circle.svg-CaAXpDAI.js → interface-alert-information-circle.svg-DM9S7DBv.js} +1 -1
  140. package/web/assets/{interface-award-crown.svg-CW7XG0wx.js → interface-award-crown.svg--68HCcUG.js} +1 -1
  141. package/web/assets/{interface-bookmark.svg-BpLEuOv2.js → interface-bookmark-tag.svg-BESGrlZw.js} +1 -1
  142. package/web/assets/{interface-bookmark-tag.svg-DPWVVeZU.js → interface-bookmark.svg-CVadIwuA.js} +1 -1
  143. package/web/assets/{interface-calendar-date-one.svg-DbBgvI4W.js → interface-calendar-date-one.svg-D9XP9Dv_.js} +1 -1
  144. package/web/assets/{interface-content-book-open-pages.svg-BbsuvPZM.js → interface-content-book-open-pages.svg-DMI3yFmk.js} +1 -1
  145. package/web/assets/{interface-content-book-page.svg-DbRPz1j8.js → interface-content-book-page.svg-BPxSHq3g.js} +1 -1
  146. package/web/assets/{interface-content-file.svg-OJPKABxS.js → interface-content-file.svg-D0Mbjb8x.js} +1 -1
  147. package/web/assets/interface-content-folder.svg-D3wbwhAD.js +1 -0
  148. package/web/assets/{interface-content-folder.svg-3D_5OE_-.js → interface-content-folder.svg-EUO1l7Mn.js} +1 -1
  149. package/web/assets/{interface-copy-clipboard.svg-DqthVh9J.js → interface-copy-clipboard.svg-DI-wp72J.js} +1 -1
  150. package/web/assets/{interface-edit-attachment.svg-BAPCnZ0B.js → interface-edit-attachment.svg-CrWbaWn_.js} +1 -1
  151. package/web/assets/{interface-edit-binocular.svg-BoV39ouF.js → interface-edit-binocular.svg-BzUDq1Il.js} +1 -1
  152. package/web/assets/{interface-edit-magic-wand.svg-Cz36nKVn.js → interface-edit-magic-wand.svg-DaAdEL5x.js} +1 -1
  153. package/web/assets/{interface-edit-tool-paint-roller.svg-DZUQotD5.js → interface-edit-tool-paint-roller.svg-C972BXSM.js} +1 -1
  154. package/web/assets/{interface-edit-tool-pencil.svg-DBf1Y9Tj.js → interface-edit-tool-pencil.svg-47QCYH9f.js} +1 -1
  155. package/web/assets/{interface-favorite-award.svg-B93sRjxf.js → interface-favorite-award.svg-DROP-rzN.js} +1 -1
  156. package/web/assets/{interface-favorite-flag.svg-DKHuT11J.js → interface-favorite-flag.svg-B1gpMdkg.js} +1 -1
  157. package/web/assets/{interface-favorite-heart.svg-Bw5FZQ7d.js → interface-favorite-heart.svg-Dc0MMGJl.js} +1 -1
  158. package/web/assets/{interface-favorite-star.svg-CgLbct_b.js → interface-favorite-star.svg-D6A5KWft.js} +1 -1
  159. package/web/assets/{interface-favorite-stars-sparkles.svg-B7cYS4ef.js → interface-favorite-stars-sparkles.svg-CpEr4y41.js} +1 -1
  160. package/web/assets/{interface-hierarchy-flowchart.svg-zwuaRdWq.js → interface-hierarchy-flowchart.svg-DjvgRFcZ.js} +1 -1
  161. package/web/assets/{interface-home-house.svg-B85yMFCe.js → interface-home-house.svg-BMmVKlSc.js} +1 -1
  162. package/web/assets/{interface-hyperlink.svg-US6b-Svn.js → interface-hyperlink.svg-BewFXeyZ.js} +1 -1
  163. package/web/assets/{interface-lighting-brightness.svg-mZWkhb7f.js → interface-lighting-brightness.svg-B74_Fwt9.js} +1 -1
  164. package/web/assets/{interface-lock-closed.svg-9oHuNwuY.js → interface-lock-closed.svg-B_kTyHSd.js} +1 -1
  165. package/web/assets/{interface-lock-open-unlock.svg-DBetdJny.js → interface-lock-open-unlock.svg-BpmOnQWL.js} +1 -1
  166. package/web/assets/{interface-login-key.svg-BZnZTYd1.js → interface-login-key.svg-CjYpI4bh.js} +1 -1
  167. package/web/assets/{interface-search.svg-CMXAOoam.js → interface-search.svg-FJmFWdB4.js} +1 -1
  168. package/web/assets/{interface-setting-cog.svg-CKckatt7.js → interface-setting-cog.svg-CfzSne-G.js} +1 -1
  169. package/web/assets/{interface-share-megaphone-bullhorn.svg-DH7kVqN-.js → interface-share-megaphone-bullhorn.svg-CIIzDsMB.js} +1 -1
  170. package/web/assets/{interface-share-rocket.svg-BNXcMugi.js → interface-share-rocket.svg-DqTBI7lO.js} +1 -1
  171. package/web/assets/{interface-share-satellite.svg-Bb8t607w.js → interface-share-satellite.svg-nJfwIxpE.js} +1 -1
  172. package/web/assets/{interface-share-space-ship.svg-Dk4rbLtF.js → interface-share-space-ship.svg-hSmFC9Bt.js} +1 -1
  173. package/web/assets/{interface-share.svg-CtX8dq5i.js → interface-share.svg-DW5W5LS6.js} +1 -1
  174. package/web/assets/{interface-signal-square.svg-DmUIlYTd.js → interface-signal-square.svg-CxjWE1n9.js} +1 -1
  175. package/web/assets/{interface-time-clock-circle.svg-D2ZNaXT3.js → interface-time-clock-circle.svg-OliTsm3U.js} +1 -1
  176. package/web/assets/{interface-time-hour-glass.svg-Ddo-8hHe.js → interface-time-hour-glass.svg-Cq5G77ft.js} +1 -1
  177. package/web/assets/{interface-users-multiple.svg-Jh7S0sT4.js → interface-users-multiple.svg-BZxMlLou.js} +1 -1
  178. package/web/assets/{interface-weather-moon.svg-DbdQFgL2.js → interface-weather-moon.svg-lFXrwEyz.js} +1 -1
  179. package/web/assets/{javascript-BVGFyXBk.js → javascript-BVZ1omk1.js} +1 -1
  180. package/web/assets/{jsonMode-vnFlxYl9.js → jsonMode-CiBARvaV.js} +2 -2
  181. package/web/assets/{liquid-DieKMEvN.js → liquid-CUYREU3G.js} +1 -1
  182. package/web/assets/{lspLanguageFeatures-DoeI-8Y7.js → lspLanguageFeatures-BCfkeNgB.js} +3 -3
  183. package/web/assets/{mail-chat-bubble-square.svg-CApdU2ea.js → mail-chat-bubble-square.svg-DbOh-u2f.js} +1 -1
  184. package/web/assets/{mail-send-email-paper-airplane.svg-jjZ0KB32.js → mail-send-email-paper-airplane.svg-Ci3654Ap.js} +1 -1
  185. package/web/assets/{mail-send-envelope.svg-B6Tsoh-8.js → mail-send-envelope.svg-BUCSUoVb.js} +1 -1
  186. package/web/assets/{mdx-BCkszXid.js → mdx-GNBOgT3C.js} +1 -1
  187. package/web/assets/{minus-DfLQX3s2.js → minus-qBqqwoxz.js} +2 -2
  188. package/web/assets/modal-CsKPvO45.js +5 -0
  189. package/web/assets/modal-E9FRG--u.js +1 -0
  190. package/web/assets/{money-cashier-receipt.svg-DM-I8Snr.js → money-cashier-receipt.svg-qOZhZZs2.js} +1 -1
  191. package/web/assets/{money-currency-dollar-pay.svg-CkDRewrV.js → money-currency-dollar-pay.svg-WYlopKIm.js} +1 -1
  192. package/web/assets/{money-graph-arrow-increase.svg-BT4KLHWz.js → money-graph-arrow-increase.svg-DAcyYWIw.js} +1 -1
  193. package/web/assets/{money-graph-bar-chart-increase.svg-EvyIJ3Uu.js → money-graph-bar-chart-increase.svg-Bcjxz1Kd.js} +1 -1
  194. package/web/assets/multiselect-DiGSzibm.js +251 -0
  195. package/web/assets/{nature-ecology-leaf.svg-uZBwXdg9.js → nature-ecology-leaf.svg-d0AKmyxH.js} +1 -1
  196. package/web/assets/{password-D1R5w1qL.js → password-BwMjgK0Q.js} +4 -4
  197. package/web/assets/{phone-telephone.svg-BSvOskIB.js → phone-telephone.svg-BzKK2wbN.js} +1 -1
  198. package/web/assets/{plus-CNGSRnxy.js → plus-D6Rlmwbp.js} +6 -6
  199. package/web/assets/process.store-I5VZVT0x.js +1 -0
  200. package/web/assets/{programming-bug.svg-CLnGs4K-.js → programming-bug.svg-BtSROvd5.js} +1 -1
  201. package/web/assets/{programming-cloud.svg-CxBovXBR.js → programming-cloud.svg-YDPFJdYt.js} +1 -1
  202. package/web/assets/{programming-computer-database-server.svg-C1JmOyio.js → programming-computer-database-server.svg-C_7cgE9Q.js} +1 -1
  203. package/web/assets/{programming-computer-database.svg-BRjyOzP4.js → programming-computer-database.svg-CLw76mik.js} +1 -1
  204. package/web/assets/{programming-module-four-layout.svg-Blwzw6Qz.js → programming-module-four-layout.svg-BsoC5ySI.js} +1 -1
  205. package/web/assets/{programming-module-three.svg-6bkrmWsU.js → programming-module-three.svg-CThoMoAk.js} +1 -1
  206. package/web/assets/{programming-module.svg-CBS9xKxX.js → programming-module.svg-BQ1YjjAj.js} +1 -1
  207. package/web/assets/{programming-script-code.svg-BVhyoAD3.js → programming-script-code.svg-BKT_wilO.js} +1 -1
  208. package/web/assets/project-launch.store-CBnJKGQe.js +1 -0
  209. package/web/assets/project.store-JIcOcKSg.js +1 -0
  210. package/web/assets/{python-CiPYtj_d.js → python-BXwGt-Ip.js} +1 -1
  211. package/web/assets/{radiobutton--KWBHcDP.js → radiobutton-D20sH1UN.js} +3 -3
  212. package/web/assets/{razor-CSoWGP30.js → razor-RXambmP2.js} +1 -1
  213. package/web/assets/router-BXj_oCbf.js +1 -0
  214. package/web/assets/{selectbutton-C0NL5n4w.js → selectbutton-rLcf19Xf.js} +4 -4
  215. package/web/assets/settings-scope-Cy_9OGE1.js +1 -0
  216. package/web/assets/settings.store-DrKeFdgW.js +1 -0
  217. package/web/assets/{shopping-cart.svg-C-8NG_Po.js → shopping-cart.svg-EjTn3XQF.js} +1 -1
  218. package/web/assets/{shopping-gift-present.svg-Bp6q5VzJ.js → shopping-gift-present.svg-AQNlzazh.js} +1 -1
  219. package/web/assets/{shopping-shipping-box-parcel-package.svg-DeWaEIwm.js → shopping-shipping-box-parcel-package.svg-VB9n6UNi.js} +1 -1
  220. package/web/assets/src-ByEHJyfr.js +1 -0
  221. package/web/assets/{src-BHR3l7pa.js → src-CUwD1xPP.js} +35 -35
  222. package/web/assets/src-C_auNJtg.css +1 -0
  223. package/web/assets/{tag-new-circle.svg-CTljXsqE.js → tag-new-circle.svg-BllOd5JW.js} +1 -1
  224. package/web/assets/theme-DuAHBQRP.js +1 -0
  225. package/web/assets/{toggleswitch-d41l5g27.js → toggleswitch-C-88_GnB.js} +2 -2
  226. package/web/assets/{travel-map-earth-globe.svg-BUkcntCp.js → travel-map-earth-globe.svg-ChLDmmU9.js} +1 -1
  227. package/web/assets/trpc-BoKwANhj.js +1 -0
  228. package/web/assets/{tsMode-B2c-rCAa.js → tsMode-CIN3QIw8.js} +6 -6
  229. package/web/assets/{typescript-CmW4u_GQ.js → typescript-wXu_7Eym.js} +1 -1
  230. package/web/assets/useAiChatDrawer-Bs1Gxhn2.js +1 -0
  231. package/web/assets/{useCloudOrg-E4l-99WA.js → useCloudOrg-0AZ58M3V.js} +1 -1
  232. package/web/assets/useEnvVarAutocomplete-BXC_JUF7.js +102 -0
  233. package/web/assets/{useEnvVarAutocomplete-DsxEF6Ya.css → useEnvVarAutocomplete-dxAmKsn7.css} +1 -1
  234. package/web/assets/useProjectCloudOrg-UIfVePy9.js +1 -0
  235. package/web/assets/useServiceUrlHost-BXbIxPaT.js +1 -0
  236. package/web/assets/{xml-BxMqu3hT.js → xml-FTYGqn2R.js} +1 -1
  237. package/web/assets/{yaml-Djx7E3R1.js → yaml-DQEEK2dU.js} +1 -1
  238. package/web/index.html +2 -2
  239. package/agent-manager-FUU72VGH.js +0 -11
  240. package/chat-C26CBAZX.js +0 -21
  241. package/chunk-5EMEJNVU.js.map +0 -1
  242. package/chunk-FJLMXLMK.js.map +0 -1
  243. package/chunk-NURPXHLB.js.map +0 -1
  244. package/chunk-P65BO7WZ.js.map +0 -1
  245. package/chunk-ZFELQG4B.js.map +0 -1
  246. package/desktop-launcher-3COY6F6H.js.map +0 -1
  247. package/desktop-wizard-4CYANX2O.js +0 -209
  248. package/desktop-wizard-4CYANX2O.js.map +0 -1
  249. package/settings-manager-J4QBIU3T.js +0 -10
  250. package/src-7O3GCEIB.js.map +0 -1
  251. package/web/assets/AgentScalarChatInterface.vue-BGGkpyp3.js +0 -13
  252. package/web/assets/AgentTerminalPage-B8gLray2.js +0 -1
  253. package/web/assets/AiChatPage-BKITsyMx.js +0 -1
  254. package/web/assets/AppLayout-B72S4nTi.css +0 -1
  255. package/web/assets/AppLayout-BYw7v2sp.js +0 -1
  256. package/web/assets/AuditPage-nHTwzyia.js +0 -1
  257. package/web/assets/CloudAccountPage-DYOvfMjD.css +0 -1
  258. package/web/assets/CloudAccountPage-DuaZz2j4.js +0 -1
  259. package/web/assets/CloudAccountPage-XHxI-ixD.js +0 -1
  260. package/web/assets/CloudMessagingPage-B2N5K-Xs.js +0 -2
  261. package/web/assets/DashboardPage-VoWJeWh_.js +0 -1
  262. package/web/assets/DirectoryPickerDialog-B5SuJOhv.js +0 -1
  263. package/web/assets/DirectoryPickerDialog-Ctp1lYoS.css +0 -1
  264. package/web/assets/EnvironmentFormPage-BIXbPTN5.js +0 -1
  265. package/web/assets/EnvironmentListPage-CHa-Ni3w.js +0 -1
  266. package/web/assets/KanbanBoardPage-B46zbE2H.css +0 -1
  267. package/web/assets/KanbanBoardPage-BFTNpm8P.js +0 -4
  268. package/web/assets/KanbanListPage-CYuIrKXH.js +0 -1
  269. package/web/assets/LaunchProjectPage-9hhGBdOh.css +0 -1
  270. package/web/assets/LaunchProjectPage-jy-R3Fiw.js +0 -1
  271. package/web/assets/LaunchServicesPage-BMtm_8yP.css +0 -1
  272. package/web/assets/LaunchServicesPage-DX7nyo36.js +0 -1
  273. package/web/assets/LaunchShell-BHfseuPM.js +0 -1
  274. package/web/assets/LaunchShell-HenrOlHV.css +0 -1
  275. package/web/assets/LogViewer-C-pHXudR.js +0 -3
  276. package/web/assets/OrgKeyPrompt-CrHXZdKL.css +0 -1
  277. package/web/assets/OrgKeyPrompt-OPnK5oPm.js +0 -1
  278. package/web/assets/OrgLogo-Cxa49Tl3.js +0 -1
  279. package/web/assets/ProcessControls-DXDyR6XX.js +0 -1
  280. package/web/assets/ProcessDetailPage-DNKTwgPW.js +0 -1
  281. package/web/assets/RandomJobTestPage-BE8HkgSb.js +0 -2
  282. package/web/assets/ScenarioEditorPage-Coo6ExzZ.js +0 -14
  283. package/web/assets/SendToChatDialog-ClXerpCU.js +0 -1
  284. package/web/assets/ServiceControlsBar-C7HrPjQI.js +0 -1
  285. package/web/assets/ServiceDetailPage-Cxuy0Yix.js +0 -2
  286. package/web/assets/ServiceFormPage-CCOu1h8v.js +0 -1
  287. package/web/assets/SettingsPage-Dt1ViDQe.js +0 -2063
  288. package/web/assets/UnlockPage-C5iEOAKH.js +0 -1
  289. package/web/assets/VaultMigrationPage-CwRWvFY7.js +0 -1
  290. package/web/assets/VersionBadge-Bqb72GXf.js +0 -1
  291. package/web/assets/WikiPage-Bl1jDKKp.js +0 -1
  292. package/web/assets/WikiView-58u6vU3q.js +0 -1
  293. package/web/assets/add-scalar-classes-CT5KQbzH.js +0 -387
  294. package/web/assets/card-46tM5yU0.js +0 -32
  295. package/web/assets/client-KL5c1Dog.js +0 -24
  296. package/web/assets/cloud-chat.store-Belo5SKd.js +0 -1
  297. package/web/assets/cloud-client-Cqa2Udt8.js +0 -1
  298. package/web/assets/cloud-session-56bUtkSL.js +0 -2
  299. package/web/assets/cloud-session-Dqm0C6H5.js +0 -1
  300. package/web/assets/column-DQ53_qc6.js +0 -763
  301. package/web/assets/composables-CHyZa9ag.js +0 -1
  302. package/web/assets/index-CKOtBNaZ.css +0 -1
  303. package/web/assets/interface-content-folder.svg-8mYqkDao.js +0 -1
  304. package/web/assets/modal-CCco27Sn.js +0 -5
  305. package/web/assets/modal-D4J85_wC.js +0 -1
  306. package/web/assets/multiselect-BmjidXlj.js +0 -251
  307. package/web/assets/process.store-p1LqnpY2.js +0 -1
  308. package/web/assets/project-launch.store-BBYtCcv8.js +0 -1
  309. package/web/assets/project.store-D_2v7amt.js +0 -1
  310. package/web/assets/router-CRKT3825.js +0 -1
  311. package/web/assets/settings-scope-DblmUa3N.js +0 -1
  312. package/web/assets/settings.store-DKTQyerJ.js +0 -1
  313. package/web/assets/src-BN5gTC76.css +0 -1
  314. package/web/assets/src-BRLkogf3.js +0 -1
  315. package/web/assets/theme-BZzt_Sgl.js +0 -1
  316. package/web/assets/trpc-Db0Atu8A.js +0 -1
  317. package/web/assets/useAiChatDrawer-0QJJVXul.js +0 -1
  318. package/web/assets/useEnvVarAutocomplete-BDqUWoGr.js +0 -102
  319. package/web/assets/useProjectCatalog-Cxt-hL1H.js +0 -1
  320. package/web/assets/useProjectCloudOrg-CwLTQLIO.js +0 -1
  321. package/web/assets/useServiceUrlHost-VIA3uP5-.js +0 -1
  322. /package/{agent-manager-FUU72VGH.js.map → agent-manager-NAGIMH2T.js.map} +0 -0
  323. /package/{chat-C26CBAZX.js.map → chat-Q2UMYXQL.js.map} +0 -0
  324. /package/{chunk-BDQOBEZ3.js.map → chunk-GOMF7NWS.js.map} +0 -0
  325. /package/{chunk-J4GLFY7G.js.map → chunk-MSICJEZD.js.map} +0 -0
  326. /package/{chunk-I7JHF5FE.js.map → chunk-XHGJHYDC.js.map} +0 -0
  327. /package/{companion-Q67RAO3N.js.map → companion-MGX62L4T.js.map} +0 -0
  328. /package/{node-4UUJN2WG.js.map → desktop-launcher-HKXP4LRI.js.map} +0 -0
  329. /package/{settings-manager-J4QBIU3T.js.map → desktop-wizard-XIDDAG7L.js.map} +0 -0
  330. /package/{vault-resolver-57Q2DVOR.js.map → node-RN4URNZ5.js.map} +0 -0
  331. /package/web/assets/{abap-BwLGULgU.js → abap-CRsXUZTC.js} +0 -0
  332. /package/web/assets/{apex-BmwhxS2n.js → apex-CN6ZSzwM.js} +0 -0
  333. /package/web/assets/{azcli-7RvE_Zal.js → azcli-ULFzG1xV.js} +0 -0
  334. /package/web/assets/{bat-DRPmS6Na.js → bat-BVH8lwB4.js} +0 -0
  335. /package/web/assets/{bicep-BwfkS7ZV.js → bicep-B8jMqZ8i.js} +0 -0
  336. /package/web/assets/{browser-D3d3061H.js → browser-xa0YgePN.js} +0 -0
  337. /package/web/assets/{cameligo-BJ_mdC8E.js → cameligo-DuuRwBiE.js} +0 -0
  338. /package/web/assets/{clojure-CQKq7DWt.js → clojure-DUpiEmPZ.js} +0 -0
  339. /package/web/assets/{coffee-DJRj2iwd.js → coffee-BO4ou798.js} +0 -0
  340. /package/web/assets/{cpp-BC1yJTUW.js → cpp-CHOtY2DW.js} +0 -0
  341. /package/web/assets/{csharp-D6U2fAAT.js → csharp-D3t5O1XD.js} +0 -0
  342. /package/web/assets/{csp-B2Ue_UmV.js → csp-CJpJWgPE.js} +0 -0
  343. /package/web/assets/{css-CEzlcbMY.js → css-CAeYpQS5.js} +0 -0
  344. /package/web/assets/{cypher-D5Sg38Yj.js → cypher-D9-TC6ep.js} +0 -0
  345. /package/web/assets/{dart-BhjKRv6v.js → dart-CYoMdUUD.js} +0 -0
  346. /package/web/assets/{dockerfile-BnivEbtE.js → dockerfile-B2ffS5e2.js} +0 -0
  347. /package/web/assets/{ecl-TS1StLK1.js → ecl-BL_MLv5o.js} +0 -0
  348. /package/web/assets/{elixir-BX9ta6DO.js → elixir-DTTK5HpM.js} +0 -0
  349. /package/web/assets/{flow9-CoOB42ee.js → flow9-CnqIliGA.js} +0 -0
  350. /package/web/assets/{fsharp-DmQslDFn.js → fsharp-BtsygJkw.js} +0 -0
  351. /package/web/assets/{go-BbEGGooY.js → go-DksUoC0w.js} +0 -0
  352. /package/web/assets/{graphql-E24y5sn9.js → graphql-DCtJGb0Q.js} +0 -0
  353. /package/web/assets/{hcl-pBZphP8G.js → hcl-Vm6MaTNZ.js} +0 -0
  354. /package/web/assets/{ini-BSbRgr25.js → ini-DdyyiZLB.js} +0 -0
  355. /package/web/assets/{java-D8KvzsMp.js → java-D9tw0Sq3.js} +0 -0
  356. /package/web/assets/{julia-BDRytf15.js → julia-DsaDhMSi.js} +0 -0
  357. /package/web/assets/{kotlin-CNcQo-uP.js → kotlin-eMyqSg05.js} +0 -0
  358. /package/web/assets/{less-0HRV-2Rz.js → less-BTExquT2.js} +0 -0
  359. /package/web/assets/{lexon-DdJG3_pW.js → lexon-Btiu1CPR.js} +0 -0
  360. /package/web/assets/{lua-Blq8Mukj.js → lua-uIHSqSt_.js} +0 -0
  361. /package/web/assets/{m3-CXbmzr9W.js → m3-DtY-QwwW.js} +0 -0
  362. /package/web/assets/{markdown-DFIISzT8.js → markdown-DalwAnMR.js} +0 -0
  363. /package/web/assets/{mips-C2XSYglv.js → mips-BocGRfi2.js} +0 -0
  364. /package/web/assets/{msdax-D3Jl6oAY.js → msdax-CQFbyz50.js} +0 -0
  365. /package/web/assets/{mysql-mCqxt_Co.js → mysql-BM8uo0J8.js} +0 -0
  366. /package/web/assets/{objective-c-CUKLr4E9.js → objective-c-H3c5-SZb.js} +0 -0
  367. /package/web/assets/{pascal-BpqDI6Ur.js → pascal-BgiV8eY7.js} +0 -0
  368. /package/web/assets/{pascaligo-BVchPyL4.js → pascaligo-DT9ZcxD2.js} +0 -0
  369. /package/web/assets/{perl-Dgc9v23P.js → perl-B0U4-W-w.js} +0 -0
  370. /package/web/assets/{pgsql-Dk9IX1G_.js → pgsql-B6kZRXs9.js} +0 -0
  371. /package/web/assets/{php-XeFLn3yL.js → php-DG9vCwQM.js} +0 -0
  372. /package/web/assets/{pla-DQMfrdXZ.js → pla-B4Y4wk5I.js} +0 -0
  373. /package/web/assets/{postiats-DiKrdL3K.js → postiats-C_eWfeAP.js} +0 -0
  374. /package/web/assets/{powerquery-Cj9Q91Zv.js → powerquery-DfX2HFDF.js} +0 -0
  375. /package/web/assets/{powershell-DxLElnzU.js → powershell-Bxsmga8Z.js} +0 -0
  376. /package/web/assets/{protobuf-7vT2HdZD.js → protobuf-BjgmCR9H.js} +0 -0
  377. /package/web/assets/{pug-oi96TUbQ.js → pug-ryXuxA3i.js} +0 -0
  378. /package/web/assets/{qsharp-DNr9IwS2.js → qsharp-91Kv1jwy.js} +0 -0
  379. /package/web/assets/{r-C-REi_Zk.js → r-j6OkO-Lp.js} +0 -0
  380. /package/web/assets/{redis-BvOCrLoN.js → redis-B2Usw_gW.js} +0 -0
  381. /package/web/assets/{redshift-jNEw-REz.js → redshift-Bl5n-UlH.js} +0 -0
  382. /package/web/assets/{restructuredtext-B9ET-x7N.js → restructuredtext-IIWeXmeu.js} +0 -0
  383. /package/web/assets/{ruby-BIEBiJDZ.js → ruby-DQH1R4pC.js} +0 -0
  384. /package/web/assets/{rust-BnoIVewm.js → rust-BJi0001n.js} +0 -0
  385. /package/web/assets/{sb-Bwvy9clh.js → sb-C34JQX0H.js} +0 -0
  386. /package/web/assets/{scala-DPv5zS47.js → scala-BqHjuqsC.js} +0 -0
  387. /package/web/assets/{scheme-BQqNVxf_.js → scheme-DIfjDH23.js} +0 -0
  388. /package/web/assets/{scss-Ck1AFDEz.js → scss-MxgEDdb7.js} +0 -0
  389. /package/web/assets/{shell-C4IYs9Z7.js → shell-D_SMEq6l.js} +0 -0
  390. /package/web/assets/{solidity-D3bS77xq.js → solidity-CyBHDO6p.js} +0 -0
  391. /package/web/assets/{sophia-BSTVfueD.js → sophia-8_L-7Xrk.js} +0 -0
  392. /package/web/assets/{sparql-BGcXD7s2.js → sparql-CXxyP-1c.js} +0 -0
  393. /package/web/assets/{sql-CIsSgyam.js → sql-DNd4NFJw.js} +0 -0
  394. /package/web/assets/{st-dV1d_AXx.js → st-DPFJcK-4.js} +0 -0
  395. /package/web/assets/{swift-CK8gXWQn.js → swift-DE_LJ5Ub.js} +0 -0
  396. /package/web/assets/{systemverilog-B9tHBIJU.js → systemverilog-IgPgwLQ7.js} +0 -0
  397. /package/web/assets/{tcl-BgRT60RV.js → tcl-Cr-fmmH0.js} +0 -0
  398. /package/web/assets/{twig-CGkLO4Nl.js → twig-Dd_ODPfV.js} +0 -0
  399. /package/web/assets/{typespec-DMP9WuzC.js → typespec-CeK8X8vB.js} +0 -0
  400. /package/web/assets/{uuid-H0yY5A03.js → uuid-6HQMUkhT.js} +0 -0
  401. /package/web/assets/{vb-DfSbhl3d.js → vb-CyLVxxH6.js} +0 -0
  402. /package/web/assets/{wgsl-CaJmoLY5.js → wgsl-CmRFGM3r.js} +0 -0
@@ -1 +0,0 @@
1
- import{Di as e,Ei as t,Fn as n,Ga as r,Ia as i,Mi as a,Pi as o,Ti as s,bi as c,oa as l,p as u,rr as d,sr as f,ta as p,ya as m,zn as h}from"./index-CcIrffU_.js";var g={class:`process-controls`},_=n(o({__name:`ProcessControls`,props:{agentId:{},processId:{},state:{},compact:{type:Boolean}},emits:[`action`],setup(n,{emit:o}){let _=n,v=o,y=d(),b=u(),{t:x}=f(),S=i(null),C=e=>e===`stopped`||e===`errored`,w=e=>e===`running`||e===`starting`,T=e=>e===`running`;async function E(){S.value=`start`;try{await b.start(_.agentId,_.processId)}catch(e){y.add({severity:`error`,summary:x(`processControls.startFailed`),detail:e.message??x(`processControls.startServiceFailed`),life:5e3})}finally{S.value=null,v(`action`,`start`)}}async function D(){S.value=`stop`;try{await b.stop(_.agentId,_.processId)}catch(e){y.add({severity:`error`,summary:x(`processControls.stopFailed`),detail:e.message??x(`processControls.stopServiceFailed`),life:5e3})}finally{S.value=null,v(`action`,`stop`)}}async function O(){S.value=`restart`;try{await b.restart(_.agentId,_.processId)}catch(e){y.add({severity:`error`,summary:x(`processControls.restartFailed`),detail:e.message??x(`processControls.restartServiceFailed`),life:5e3})}finally{S.value=null,v(`action`,`restart`)}}return(n,i)=>{let o=l(`tooltip`);return p(),e(`div`,g,[C(_.state)?m((p(),s(r(h),{key:0,icon:`pi pi-play`,label:_.compact?void 0:r(x)(`actions.start`),"aria-label":r(x)(`actions.start`),severity:`success`,size:`small`,text:_.compact,rounded:_.compact,"data-testid":`process-start-btn`,disabled:S.value!==null,loading:S.value===`start`,onClick:E},null,8,[`label`,`aria-label`,`text`,`rounded`,`disabled`,`loading`])),[[o,_.compact?r(x)(`actions.start`):void 0,void 0,{top:!0}]]):t(``,!0),w(_.state)?(p(),e(c,{key:1},[m(a(r(h),{icon:`pi pi-stop`,label:_.compact?void 0:r(x)(`actions.stop`),"aria-label":r(x)(`actions.stop`),severity:`danger`,size:`small`,text:_.compact,rounded:_.compact,disabled:S.value!==null,loading:S.value===`stop`,onClick:D},null,8,[`label`,`aria-label`,`text`,`rounded`,`disabled`,`loading`]),[[o,_.compact?r(x)(`actions.stop`):void 0,void 0,{top:!0}]]),T(_.state)?m((p(),s(r(h),{key:0,icon:`pi pi-refresh`,label:_.compact?void 0:r(x)(`actions.restart`),"aria-label":r(x)(`actions.restart`),severity:`warn`,size:`small`,text:_.compact,rounded:_.compact,disabled:S.value!==null,loading:S.value===`restart`,onClick:O},null,8,[`label`,`aria-label`,`text`,`rounded`,`disabled`,`loading`])),[[o,_.compact?r(x)(`actions.restart`):void 0,void 0,{top:!0}]]):t(``,!0)],64)):t(``,!0)])}}}),[[`__scopeId`,`data-v-03ce62b3`]]);export{_ as t};
@@ -1 +0,0 @@
1
- import{$i as e,Ci as t,Di as n,Ei as r,Fn as i,Ga as a,Ia as o,Mi as s,Pi as c,Qn as ee,Ta as l,Ti as te,Z as u,Zi as ne,bi as re,pn as ie,sr as ae,ta as d,wi as f,wn as p,yn as oe,zn as m}from"./index-CcIrffU_.js";import"./cloud-session-56bUtkSL.js";import"./src-BRLkogf3.js";import{t as se}from"./ProcessControls-DXDyR6XX.js";import"./useProjectCloudOrg-CwLTQLIO.js";import"./SendToChatDialog-ClXerpCU.js";import{n as h,t as ce}from"./ProcessMetrics-CdQc_8Z0.js";import{t as le}from"./LogViewer-C-pHXudR.js";var ue={class:`process-detail`},de={key:0,class:`process-detail__loading`},fe={key:1,class:`process-detail__error`},pe={class:`process-detail__header`},me={class:`process-detail__header-left`},he={class:`process-detail__title`},g={class:`process-detail__id`},_={key:0,class:`process-detail__metrics`},v={class:`section-title`},y={key:1,class:`process-detail__metrics-skeleton`},b={class:`metric-skeleton`},x={class:`metric-skeleton`},S={class:`process-detail__info`},C={class:`info-grid`},w={key:0,class:`info-item`},T={class:`info-label`},E={class:`info-value`},D={key:1,class:`info-item`},O={class:`info-label`},k={class:`info-value`},A={class:`info-item`},j={class:`info-label`},M={class:`info-value`},N={key:2,class:`info-item`},P={class:`info-label`},F={class:`info-value`},I={key:3,class:`info-item`},L={class:`info-label`},R={class:`info-value`},ge={key:4,class:`info-item info-item--wide`},_e={class:`info-label`},ve={class:`info-value info-value--path`,"data-testid":`process-cwd`},ye={class:`process-detail__logs`},be={class:`section-title`},xe={class:`process-detail__log-container`},z=i(c({__name:`ProcessDetailPage`,props:{agentId:{},processId:{}},setup(i){let c=i,z=ee(),{t:B}=ae(),Se=u(),Ce=t(()=>V.value?.agentId?Se.agents.find(e=>e.config.id===V.value.agentId)?.config.name??V.value.agentId:null),V=o(null),H=o([]),U=o(null),W=o(!1),G=o(!0),K=o(!0),q=o(null),J=null,Y=null,X=null,Z={running:{severity:`success`,icon:`pi pi-check-circle`},stopped:{severity:`secondary`,icon:`pi pi-stop-circle`},errored:{severity:`danger`,icon:`pi pi-times-circle`},starting:{severity:`warn`,icon:`pi pi-spin pi-spinner`}},Q=t(()=>Z[V.value?.state??`stopped`]??Z.stopped);async function $(){try{V.value=await p.process.get.query({agentId:c.agentId,id:c.processId})}catch(e){q.value=e instanceof Error?e.message:`Failed to load process`}}async function we(){K.value=!0;try{H.value=await p.process.logs.query({agentId:c.agentId,processId:c.processId})}catch{}finally{K.value=!1}}async function Te(){W.value=!0;try{U.value=await p.process.metrics.query({agentId:c.agentId,processId:c.processId})}catch{}finally{W.value=!1}}function Ee(){let e=p.process.onLog.subscribe({agentId:c.agentId,processId:c.processId},{onData(e){H.value=[...H.value,e],H.value.length>1e4&&(H.value=H.value.slice(H.value.length-1e4))}});J=()=>e.unsubscribe()}function De(){let e=p.process.onStatus.subscribe({agentId:c.agentId,processId:c.processId},{onData(e){V.value=e}});Y=()=>e.unsubscribe()}function Oe(){let e=p.process.onMetrics.subscribe({agentId:c.agentId,processId:c.processId},{onData(e){U.value=e}});X=()=>e.unsubscribe()}function ke(){$()}return ne(async()=>{G.value=!0,await Promise.all([$(),we(),Te()]),G.value=!1,Ee(),De(),Oe()}),e(()=>{J?.(),Y?.(),X?.()}),(e,t)=>(d(),n(`div`,ue,[G.value?(d(),n(`div`,de,[s(a(oe),{style:{width:`3rem`,height:`3rem`}}),f(`span`,null,l(a(B)(`processDetail.loading`)),1)])):q.value?(d(),n(`div`,fe,[t[2]||=f(`i`,{class:`pi pi-exclamation-triangle`,style:{"font-size":`2rem`,color:`var(--p-red-500)`}},null,-1),f(`p`,null,l(q.value),1),s(a(m),{label:a(B)(`processDetail.goBack`),icon:`pi pi-arrow-left`,severity:`secondary`,onClick:t[0]||=e=>a(z).back()},null,8,[`label`])])):V.value?(d(),n(re,{key:2},[f(`div`,pe,[f(`div`,me,[s(a(m),{icon:`pi pi-arrow-left`,text:``,rounded:``,severity:`secondary`,"aria-label":a(B)(`processDetail.goBack`),onClick:t[1]||=e=>a(z).back()},null,8,[`aria-label`]),f(`div`,he,[f(`h1`,null,l(V.value.serviceId),1),f(`span`,g,l(V.value.id),1)]),s(a(ie),{value:V.value.state,severity:Q.value.severity,icon:Q.value.icon},null,8,[`value`,`severity`,`icon`])]),s(se,{"agent-id":c.agentId,"process-id":c.processId,state:V.value.state,onAction:ke},null,8,[`agent-id`,`process-id`,`state`])]),U.value||W.value?(d(),n(`section`,_,[f(`h2`,v,l(a(B)(`processDetail.metrics`)),1),U.value?(d(),te(ce,{key:0,cpu:U.value.cpu,memory:U.value.memory},null,8,[`cpu`,`memory`])):(d(),n(`div`,y,[f(`div`,b,[s(a(h),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),s(a(h),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),s(a(h),{width:`100%`,height:`6px`,"border-radius":`4px`})]),f(`div`,x,[s(a(h),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),s(a(h),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),s(a(h),{width:`6rem`,height:`0.65rem`})])]))])):r(``,!0),f(`section`,S,[f(`div`,C,[V.value.pid?(d(),n(`div`,w,[f(`span`,T,l(a(B)(`processDetail.pid`)),1),f(`span`,E,l(V.value.pid),1)])):r(``,!0),V.value.agentId?(d(),n(`div`,D,[f(`span`,O,l(a(B)(`processDetail.agent`)),1),f(`span`,k,l(Ce.value),1)])):r(``,!0),f(`div`,A,[f(`span`,j,l(a(B)(`processDetail.restarts`)),1),f(`span`,M,l(V.value.restartCount),1)]),V.value.startedAt?(d(),n(`div`,N,[f(`span`,P,l(a(B)(`processDetail.started`)),1),f(`span`,F,l(new Date(V.value.startedAt).toLocaleString()),1)])):r(``,!0),V.value.exitCode==null?r(``,!0):(d(),n(`div`,I,[f(`span`,L,l(a(B)(`processDetail.exitCode`)),1),f(`span`,R,l(V.value.exitCode),1)])),V.value.cwd?(d(),n(`div`,ge,[f(`span`,_e,l(a(B)(`processDetail.cwd`)),1),f(`span`,ve,l(V.value.cwd),1)])):r(``,!0)])]),f(`section`,ye,[f(`h2`,be,l(a(B)(`processDetail.logs`)),1),f(`div`,xe,[s(le,{logs:H.value,loading:K.value,"service-label":V.value?.serviceId},null,8,[`logs`,`loading`,`service-label`])])])],64)):r(``,!0)]))}}),[[`__scopeId`,`data-v-bc7cc41f`]]);export{z as default};
@@ -1,2 +0,0 @@
1
- import{$i as e,Di as t,Fn as n,Ga as r,Ia as i,Mi as a,Pi as o,Ta as s,Wi as c,Zi as l,ji as u,ta as d,wi as f,wn as p,zn as m}from"./index-CcIrffU_.js";var h={class:`random-job-test`},g={class:`random-job-test__actions`},_={class:`random-job-test__meta`},v={key:0,class:`random-job-test__empty`},y={key:1},b=`runeya:random-job-test:job-id`,x=`runeya:random-job-test:logs`,S=n(o({__name:`RandomJobTestPage`,setup(n){let o=i(null),S=i(!1),C=i([]),w=i(null),T=null;function E(){o.value?sessionStorage.setItem(b,o.value):sessionStorage.removeItem(b),sessionStorage.setItem(x,JSON.stringify(C.value))}function D(e){C.value=[...C.value,e],C.value.length>2e3&&(C.value=C.value.slice(C.value.length-2e3)),E(),c(()=>{w.value&&(w.value.scrollTop=w.value.scrollHeight)})}function O(){T?.unsubscribe(),T=null}function k(e){O(),T=p.debug.streamRandomJob.subscribe({jobId:e},{onData(e){e.type===`tick`?D(`[${new Date(e.at).toLocaleTimeString()}] #${e.index} -> ${e.value.toFixed(8)}`):(D(`[${new Date(e.at).toLocaleTimeString()}] done: ${e.reason}`),S.value=!1,o.value=null,E())},onError(e){D(`[sub] error: ${e.message}`),S.value=!1,E()},onComplete(){D(`[sub] complete`),S.value=!1,E()}}),D(`[sub] started for job ${e}`)}async function A(){if(S.value)return;C.value=[],E();let e=await p.debug.startRandomJob.mutate({intervalMs:300,maxTicks:1e3});o.value=e.jobId,S.value=!0,E(),D(`[job] started id=${e.jobId}, intervalMs=${e.intervalMs}, maxTicks=${e.maxTicks}`),k(e.jobId)}async function j(){if(o.value)try{await p.debug.stopRandomJob.mutate({jobId:o.value}),D(`[job] stop requested id=${o.value}`),S.value=!1,o.value=null,E()}catch(e){D(`[job] stop error: ${e.message}`)}}function M(){C.value=[],E()}return l(async()=>{let e=sessionStorage.getItem(x);if(e)try{let t=JSON.parse(e);Array.isArray(t)&&(C.value=t)}catch{}let t=sessionStorage.getItem(b);if(t){o.value=t;try{let e=await p.debug.randomJobStatus.query({jobId:t});S.value=e.running,E(),e.running?(D(`[job] reconnected id=${t}, tick=${e.tick}`),k(t)):(D(`[job] previous job ended (id=${t})`),o.value=null,E())}catch{S.value=!1,o.value=null,D(`[job] previous job not found`),E()}}}),e(()=>{O()}),(e,n)=>(d(),t(`div`,h,[n[3]||=f(`header`,{class:`random-job-test__header`},[f(`h1`,null,`Random Job Test`),f(`p`,null,`Click start to launch a server job and stream Math.random() values in real time.`)],-1),f(`div`,g,[a(r(m),{label:`Start job`,icon:`pi pi-play`,disabled:S.value,onClick:A},null,8,[`disabled`]),a(r(m),{label:`Stop`,icon:`pi pi-stop`,severity:`danger`,disabled:!S.value,onClick:j},null,8,[`disabled`]),a(r(m),{label:`Clear logs`,icon:`pi pi-trash`,severity:`secondary`,outlined:``,onClick:M})]),f(`div`,_,[f(`span`,null,[n[0]||=f(`strong`,null,`Job ID:`,-1),u(` `+s(o.value??`none`),1)]),f(`span`,null,[n[1]||=f(`strong`,null,`Status:`,-1),u(` `+s(S.value?`running`:`idle`),1)]),f(`span`,null,[n[2]||=f(`strong`,null,`Lines:`,-1),u(` `+s(C.value.length),1)])]),f(`section`,{ref_key:`logsEl`,ref:w,class:`random-job-test__logs`,"aria-live":`polite`},[C.value.length===0?(d(),t(`div`,v,`No logs yet.`)):(d(),t(`pre`,y,s(C.value.join(`
2
- `)),1))],512)]))}}),[[`__scopeId`,`data-v-96a75827`]]);export{S as default};
@@ -1,14 +0,0 @@
1
- import{$ as e,$i as t,B as n,Ca as r,Ci as i,Di as a,Ei as o,Et as s,F as c,Fn as l,Ft as u,Ga as d,H as f,I as p,Ia as m,Ii as h,L as g,Ln as _,Mi as v,N as y,P as b,Pi as x,Q as S,Qn as ee,R as te,Sa as C,Ta as w,Ti as T,U as ne,Ui as E,V as re,Va as D,Wi as ie,Xt as ae,Zi as oe,Zn as se,_i as ce,ai as O,at as le,bi as ue,fa as de,ha as fe,ia as k,ji as pe,kt as me,la as he,ma as ge,mn as _e,na as ve,nn as ye,oa as be,oi as xe,ot as Se,ra as Ce,rn as we,rr as Te,sa as Ee,sr as De,ta as A,va as j,vi as Oe,vt as ke,wa as Ae,wi as M,wn as je,ya as N,z as Me,zi as Ne,zn as P}from"./index-CcIrffU_.js";import{t as Pe}from"./uuid-H0yY5A03.js";import{t as Fe}from"./checkbox-DPknldTJ.js";import{t as Ie}from"./multiselect-BmjidXlj.js";var Le={name:`ControlButton`,compatConfig:{MODE:3}},Re=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},F={type:`button`,class:`vue-flow__controls-button`};function I(e,t,n,r,i,o){return A(),a(`button`,F,[k(e.$slots,`default`)])}var L=Re(Le,[[`render`,I]]),ze={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`},Be=[M(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`},null,-1)];function Ve(e,t){return A(),a(`svg`,ze,Be)}var R={render:Ve},He={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`},Ue=[M(`path`,{d:`M0 0h32v4.2H0z`},null,-1)];function We(e,t){return A(),a(`svg`,He,Ue)}var Ge={render:We},Ke={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`},qe=[M(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0 0 27.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94a.919.919 0 0 1-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`},null,-1)];function Je(e,t){return A(),a(`svg`,Ke,qe)}var Ye={render:Je},Xe={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`},Ze=[M(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`},null,-1)];function Qe(e,t){return A(),a(`svg`,Xe,Ze)}var $e={render:Qe},z={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`},B=[M(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047z`},null,-1)];function V(e,t){return A(),a(`svg`,z,B)}var H={render:V},et=x({name:`Controls`,compatConfig:{MODE:3},props:{showZoom:{type:Boolean,default:!0},showFitView:{type:Boolean,default:!0},showInteractive:{type:Boolean,default:!0},fitViewParams:{},position:{default:()=>c.BottomLeft}},emits:[`zoomIn`,`zoomOut`,`fitView`,`interactionChange`],setup(e,{emit:t}){let{nodesDraggable:n,nodesConnectable:r,elementsSelectable:i,setInteractive:s,zoomIn:c,zoomOut:l,fitView:u,viewport:m,minZoom:h,maxZoom:g}=f(),_=D(()=>n.value||r.value||i.value),y=D(()=>m.value.zoom<=h.value),b=D(()=>m.value.zoom>=g.value);function x(){c(),t(`zoomIn`)}function S(){l(),t(`zoomOut`)}function ee(){u(e.fitViewParams),t(`fitView`)}function te(){s(!_.value),t(`interactionChange`,!_.value)}return(e,t)=>(A(),T(d(p),{class:`vue-flow__controls`,position:e.position},{default:j(()=>[k(e.$slots,`top`),e.showZoom?(A(),a(ue,{key:0},[k(e.$slots,`control-zoom-in`,{},()=>[v(L,{class:`vue-flow__controls-zoomin`,disabled:b.value,onClick:x},{default:j(()=>[k(e.$slots,`icon-zoom-in`,{},()=>[(A(),T(Ee(d(R))))])]),_:3},8,[`disabled`])]),k(e.$slots,`control-zoom-out`,{},()=>[v(L,{class:`vue-flow__controls-zoomout`,disabled:y.value,onClick:S},{default:j(()=>[k(e.$slots,`icon-zoom-out`,{},()=>[(A(),T(Ee(d(Ge))))])]),_:3},8,[`disabled`])])],64)):o(``,!0),e.showFitView?k(e.$slots,`control-fit-view`,{key:1},()=>[v(L,{class:`vue-flow__controls-fitview`,onClick:ee},{default:j(()=>[k(e.$slots,`icon-fit-view`,{},()=>[(A(),T(Ee(d(Ye))))])]),_:3})]):o(``,!0),e.showInteractive?k(e.$slots,`control-interactive`,{key:2},()=>[e.showInteractive?(A(),T(L,{key:0,class:`vue-flow__controls-interactive`,onClick:te},{default:j(()=>[_.value?k(e.$slots,`icon-unlock`,{key:0},()=>[(A(),T(Ee(d(H))))]):o(``,!0),_.value?o(``,!0):k(e.$slots,`icon-lock`,{key:1},()=>[(A(),T(Ee(d($e))))])]),_:3})):o(``,!0)]):o(``,!0),k(e.$slots,`default`)]),_:3},8,[`position`]))}}),tt={value:()=>{}};function U(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new nt(n)}function nt(e){this._=e}function rt(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}nt.prototype=U.prototype={constructor:nt,on:function(e,t){var n=this._,r=rt(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=it(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=at(n[i],e.name,t);else if(t==null)for(i in n)n[i]=at(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new nt(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function it(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function at(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=tt,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var ot=`http://www.w3.org/1999/xhtml`,st={svg:`http://www.w3.org/2000/svg`,xhtml:ot,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function ct(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),st.hasOwnProperty(t)?{space:st[t],local:e}:e}function lt(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===ot&&t.documentElement.namespaceURI===ot?t.createElement(e):t.createElementNS(n,e)}}function ut(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function dt(e){var t=ct(e);return(t.local?ut:lt)(t)}function ft(){}function pt(e){return e==null?ft:function(){return this.querySelector(e)}}function mt(e){typeof e!=`function`&&(e=pt(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new q(r,this._parents)}function ht(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function gt(){return[]}function _t(e){return e==null?gt:function(){return this.querySelectorAll(e)}}function vt(e){return function(){return ht(e.apply(this,arguments))}}function yt(e){e=typeof e==`function`?vt(e):_t(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new q(r,i)}function bt(e){return function(){return this.matches(e)}}function xt(e){return function(t){return t.matches(e)}}var St=Array.prototype.find;function Ct(e){return function(){return St.call(this.children,e)}}function W(){return this.firstElementChild}function wt(e){return this.select(e==null?W:Ct(typeof e==`function`?e:xt(e)))}var Tt=Array.prototype.filter;function G(){return Array.from(this.children)}function Et(e){return function(){return Tt.call(this.children,e)}}function Dt(e){return this.selectAll(e==null?G:Et(typeof e==`function`?e:xt(e)))}function Ot(e){typeof e!=`function`&&(e=bt(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new q(r,this._parents)}function kt(e){return Array(e.length)}function At(){return new q(this._enter||this._groups.map(kt),this._parents)}function jt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}jt.prototype={constructor:jt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Mt(e){return function(){return e}}function Nt(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new jt(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Pt(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new jt(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function Ft(e){return e.__data__}function It(e,t){if(!arguments.length)return Array.from(this,Ft);var n=t?Pt:Nt,r=this._parents,i=this._groups;typeof e!=`function`&&(e=Mt(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=Lt(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new q(o,r),o._enter=s,o._exit=c,o}function Lt(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Rt(){return new q(this._exit||this._groups.map(kt),this._parents)}function zt(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function Bt(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new q(s,this._parents)}function K(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Vt(e){e||=Ht;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new q(i,this._parents).order()}function Ht(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Ut(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Wt(){return Array.from(this)}function Gt(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function Kt(){let e=0;for(let t of this)++e;return e}function qt(){return!this.node()}function Jt(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function Yt(e){return function(){this.removeAttribute(e)}}function Xt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Zt(e,t){return function(){this.setAttribute(e,t)}}function Qt(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function $t(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function en(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function tn(e,t){var n=ct(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Xt:Yt:typeof t==`function`?n.local?en:$t:n.local?Qt:Zt)(n,t))}function nn(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function rn(e){return function(){this.style.removeProperty(e)}}function an(e,t,n){return function(){this.style.setProperty(e,t,n)}}function on(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function sn(e,t,n){return arguments.length>1?this.each((t==null?rn:typeof t==`function`?on:an)(e,t,n??``)):cn(this.node(),e)}function cn(e,t){return e.style.getPropertyValue(t)||nn(e).getComputedStyle(e,null).getPropertyValue(t)}function ln(e){return function(){delete this[e]}}function un(e,t){return function(){this[e]=t}}function dn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function fn(e,t){return arguments.length>1?this.each((t==null?ln:typeof t==`function`?dn:un)(e,t)):this.node()[e]}function pn(e){return e.trim().split(/^|\s+/)}function mn(e){return e.classList||new hn(e)}function hn(e){this._node=e,this._names=pn(e.getAttribute(`class`)||``)}hn.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function gn(e,t){for(var n=mn(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function _n(e,t){for(var n=mn(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function vn(e){return function(){gn(this,e)}}function yn(e){return function(){_n(this,e)}}function bn(e,t){return function(){(t.apply(this,arguments)?gn:_n)(this,e)}}function xn(e,t){var n=pn(e+``);if(arguments.length<2){for(var r=mn(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?bn:t?vn:yn)(n,t))}function Sn(){this.textContent=``}function Cn(e){return function(){this.textContent=e}}function wn(e){return function(){this.textContent=e.apply(this,arguments)??``}}function Tn(e){return arguments.length?this.each(e==null?Sn:(typeof e==`function`?wn:Cn)(e)):this.node().textContent}function En(){this.innerHTML=``}function Dn(e){return function(){this.innerHTML=e}}function On(e){return function(){this.innerHTML=e.apply(this,arguments)??``}}function kn(e){return arguments.length?this.each(e==null?En:(typeof e==`function`?On:Dn)(e)):this.node().innerHTML}function An(){this.nextSibling&&this.parentNode.appendChild(this)}function jn(){return this.each(An)}function Mn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Nn(){return this.each(Mn)}function Pn(e){var t=typeof e==`function`?e:dt(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Fn(){return null}function In(e,t){var n=typeof e==`function`?e:dt(e),r=t==null?Fn:typeof t==`function`?t:pt(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Ln(){var e=this.parentNode;e&&e.removeChild(this)}function Rn(){return this.each(Ln)}function zn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Bn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Vn(e){return this.select(e?Bn:zn)}function Hn(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function Un(e){return function(t){e.call(this,t,this.__data__)}}function Wn(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function Gn(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function Kn(e,t,n){return function(){var r=this.__on,i,a=Un(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function qn(e,t,n){var r=Wn(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?Kn:Gn,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function Jn(e,t,n){var r=nn(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function Yn(e,t){return function(){return Jn(this,e,t)}}function Xn(e,t){return function(){return Jn(this,e,t.apply(this,arguments))}}function Zn(e,t){return this.each((typeof t==`function`?Xn:Yn)(e,t))}function*Qn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var $n=[null];function q(e,t){this._groups=e,this._parents=t}function er(){return new q([[document.documentElement]],$n)}function tr(){return this}q.prototype=er.prototype={constructor:q,select:mt,selectAll:yt,selectChild:wt,selectChildren:Dt,filter:Ot,data:It,enter:At,exit:Rt,join:zt,merge:Bt,selection:tr,order:K,sort:Vt,call:Ut,nodes:Wt,node:Gt,size:Kt,empty:qt,each:Jt,attr:tn,style:sn,property:fn,classed:xn,text:Tn,html:kn,raise:jn,lower:Nn,append:Pn,insert:In,remove:Rn,clone:Vn,datum:Hn,on:qn,dispatch:Zn,[Symbol.iterator]:Qn};function nr(e){return typeof e==`string`?new q([[document.querySelector(e)]],[document.documentElement]):new q([[e]],$n)}function rr(e){let t;for(;t=e.sourceEvent;)e=t;return e}function ir(e,t){if(e=rr(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var ar={capture:!0,passive:!1};function or(e){e.preventDefault(),e.stopImmediatePropagation()}function sr(e){var t=e.document.documentElement,n=nr(e).on(`dragstart.drag`,or,ar);`onselectstart`in t?n.on(`selectstart.drag`,or,ar):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function cr(e,t){var n=e.document.documentElement,r=nr(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,or,ar),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function lr(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ur(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function dr(){}var fr=.7,pr=1/fr,mr=`\\s*([+-]?\\d+)\\s*`,hr=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,J=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,gr=/^#([0-9a-f]{3,8})$/,_r=RegExp(`^rgb\\(${mr},${mr},${mr}\\)$`),vr=RegExp(`^rgb\\(${J},${J},${J}\\)$`),yr=RegExp(`^rgba\\(${mr},${mr},${mr},${hr}\\)$`),br=RegExp(`^rgba\\(${J},${J},${J},${hr}\\)$`),xr=RegExp(`^hsl\\(${hr},${J},${J}\\)$`),Sr=RegExp(`^hsla\\(${hr},${J},${J},${hr}\\)$`),Cr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};lr(dr,Or,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:wr,formatHex:wr,formatHex8:Tr,formatHsl:Er,formatRgb:Dr,toString:Dr});function wr(){return this.rgb().formatHex()}function Tr(){return this.rgb().formatHex8()}function Er(){return Br(this).formatHsl()}function Dr(){return this.rgb().formatRgb()}function Or(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=gr.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?kr(t):n===3?new Y(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ar(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ar(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=_r.exec(e))?new Y(t[1],t[2],t[3],1):(t=vr.exec(e))?new Y(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=yr.exec(e))?Ar(t[1],t[2],t[3],t[4]):(t=br.exec(e))?Ar(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=xr.exec(e))?zr(t[1],t[2]/100,t[3]/100,1):(t=Sr.exec(e))?zr(t[1],t[2]/100,t[3]/100,t[4]):Cr.hasOwnProperty(e)?kr(Cr[e]):e===`transparent`?new Y(NaN,NaN,NaN,0):null}function kr(e){return new Y(e>>16&255,e>>8&255,e&255,1)}function Ar(e,t,n,r){return r<=0&&(e=t=n=NaN),new Y(e,t,n,r)}function jr(e){return e instanceof dr||(e=Or(e)),e?(e=e.rgb(),new Y(e.r,e.g,e.b,e.opacity)):new Y}function Mr(e,t,n,r){return arguments.length===1?jr(e):new Y(e,t,n,r??1)}function Y(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}lr(Y,Mr,ur(dr,{brighter(e){return e=e==null?pr:pr**+e,new Y(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?fr:fr**+e,new Y(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Y(Lr(this.r),Lr(this.g),Lr(this.b),Ir(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Nr,formatHex:Nr,formatHex8:Pr,formatRgb:Fr,toString:Fr}));function Nr(){return`#${Rr(this.r)}${Rr(this.g)}${Rr(this.b)}`}function Pr(){return`#${Rr(this.r)}${Rr(this.g)}${Rr(this.b)}${Rr((isNaN(this.opacity)?1:this.opacity)*255)}`}function Fr(){let e=Ir(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Lr(this.r)}, ${Lr(this.g)}, ${Lr(this.b)}${e===1?`)`:`, ${e})`}`}function Ir(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Lr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Rr(e){return e=Lr(e),(e<16?`0`:``)+e.toString(16)}function zr(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new X(e,t,n,r)}function Br(e){if(e instanceof X)return new X(e.h,e.s,e.l,e.opacity);if(e instanceof dr||(e=Or(e)),!e)return new X;if(e instanceof X)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new X(o,s,c,e.opacity)}function Vr(e,t,n,r){return arguments.length===1?Br(e):new X(e,t,n,r??1)}function X(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}lr(X,Vr,ur(dr,{brighter(e){return e=e==null?pr:pr**+e,new X(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?fr:fr**+e,new X(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Y(Wr(e>=240?e-240:e+120,i,r),Wr(e,i,r),Wr(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new X(Hr(this.h),Ur(this.s),Ur(this.l),Ir(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Ir(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Hr(this.h)}, ${Ur(this.s)*100}%, ${Ur(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Hr(e){return e=(e||0)%360,e<0?e+360:e}function Ur(e){return Math.max(0,Math.min(1,e||0))}function Wr(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Gr=e=>()=>e;function Kr(e,t){return function(n){return e+n*t}}function qr(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Jr(e){return(e=+e)==1?Yr:function(t,n){return n-t?qr(t,n,e):Gr(isNaN(t)?n:t)}}function Yr(e,t){var n=t-e;return n?Kr(e,n):Gr(isNaN(e)?t:e)}var Xr=function e(t){var n=Jr(t);function r(e,t){var r=n((e=Mr(e)).r,(t=Mr(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Yr(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r}(1);function Zr(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var Qr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,$r=new RegExp(Qr.source,`g`);function ei(e){return function(){return e}}function ti(e){return function(t){return e(t)+``}}function ni(e,t){var n=Qr.lastIndex=$r.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=Qr.exec(e))&&(i=$r.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Zr(r,i)})),n=$r.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?ti(c[0].x):ei(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}var ri=180/Math.PI,ii={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ai(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*ri,skewX:Math.atan(c)*ri,scaleX:o,scaleY:s}}var oi;function si(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?ii:ai(t.a,t.b,t.c,t.d,t.e,t.f)}function ci(e){return e==null||(oi||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),oi.setAttribute(`transform`,e),!(e=oi.transform.baseVal.consolidate()))?ii:(e=e.matrix,ai(e.a,e.b,e.c,e.d,e.e,e.f))}function li(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:Zr(e,i)},{i:c-2,x:Zr(r,a)})}else (i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:Zr(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:Zr(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:Zr(e,n)},{i:s-2,x:Zr(t,r)})}else (n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var ui=li(si,`px, `,`px)`,`deg)`),di=li(ci,`, `,`)`,`)`),fi=1e-12;function pi(e){return((e=Math.exp(e))+1/e)/2}function mi(e){return((e=Math.exp(e))-1/e)/2}function hi(e){return((e=Math.exp(2*e))-1)/(e+1)}var gi=function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<fi)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=pi(y),c=s/(n*g)*(i*hi(t*r+y)-mi(y));return[a+c*d,o+c*f,s*i/pi(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i}(Math.SQRT2,2,4),_i=0,vi=0,yi=0,bi=1e3,xi,Si,Ci=0,wi=0,Ti=0,Ei=typeof performance==`object`&&performance.now?performance:Date,Di=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Oi(){return wi||=(Di(ki),Ei.now()+Ti)}function ki(){wi=0}function Ai(){this._call=this._time=this._next=null}Ai.prototype=ji.prototype={constructor:Ai,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?Oi():+n)+(t==null?0:+t),!this._next&&Si!==this&&(Si?Si._next=this:xi=this,Si=this),this._call=e,this._time=n,Ii()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ii())}};function ji(e,t,n){var r=new Ai;return r.restart(e,t,n),r}function Mi(){Oi(),++_i;for(var e=xi,t;e;)(t=wi-e._time)>=0&&e._call.call(void 0,t),e=e._next;--_i}function Ni(){wi=(Ci=Ei.now())+Ti,_i=vi=0;try{Mi()}finally{_i=0,Fi(),wi=0}}function Pi(){var e=Ei.now(),t=e-Ci;t>bi&&(Ti-=t,Ci=e)}function Fi(){for(var e,t=xi,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:xi=n);Si=e,Ii(r)}function Ii(e){_i||(vi&&=clearTimeout(vi),e-wi>24?(e<1/0&&(vi=setTimeout(Ni,e-Ei.now()-Ti)),yi&&=clearInterval(yi)):(yi||=(Ci=Ei.now(),setInterval(Pi,bi)),_i=1,Di(Ni)))}function Li(e,t,n){var r=new Ai;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Ri=U(`start`,`end`,`cancel`,`interrupt`),zi=[],Bi=0,Vi=1,Hi=2,Ui=3,Wi=4,Gi=5,Ki=6;function qi(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Yi(e,n,{name:t,index:r,group:i,on:Ri,tween:zi,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Bi})}function Ji(e,t){var n=Q(e,t);if(n.state>Bi)throw Error(`too late; already scheduled`);return n}function Z(e,t){var n=Q(e,t);if(n.state>Ui)throw Error(`too late; already running`);return n}function Q(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Yi(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=ji(a,0,n.time);function a(e){n.state=Vi,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==Vi)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===Ui)return Li(o);f.state===Wi?(f.state=Ki,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=Ki,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(Li(function(){n.state===Ui&&(n.state=Wi,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=Hi,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===Hi){for(n.state=Ui,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=Gi,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===Gi&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=Ki,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function Xi(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>Hi&&r.state<Gi,r.state=Ki,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function Zi(e){return this.each(function(){Xi(this,e)})}function Qi(e,t){var n,r;return function(){var i=Z(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function $i(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=Z(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function ea(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=Q(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?Qi:$i)(n,e,t))}function ta(e,t,n){var r=e._id;return e.each(function(){var e=Z(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return Q(e,r).value[t]}}function na(e,t){var n;return(typeof t==`number`?Zr:t instanceof Or?Xr:(n=Or(t))?(t=n,Xr):ni)(e,t)}function ra(e){return function(){this.removeAttribute(e)}}function ia(e){return function(){this.removeAttributeNS(e.space,e.local)}}function aa(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function oa(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function sa(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function ca(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function la(e,t){var n=ct(e),r=n===`transform`?di:na;return this.attrTween(e,typeof t==`function`?(n.local?ca:sa)(n,r,ta(this,`attr.`+e,t)):t==null?(n.local?ia:ra)(n):(n.local?oa:aa)(n,r,t))}function ua(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function da(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function fa(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&da(e,i)),n}return i._value=t,i}function pa(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&ua(e,i)),n}return i._value=t,i}function ma(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=ct(e);return this.tween(n,(r.local?fa:pa)(r,t))}function ha(e,t){return function(){Ji(this,e).delay=+t.apply(this,arguments)}}function ga(e,t){return t=+t,function(){Ji(this,e).delay=t}}function _a(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?ha:ga)(t,e)):Q(this.node(),t).delay}function va(e,t){return function(){Z(this,e).duration=+t.apply(this,arguments)}}function ya(e,t){return t=+t,function(){Z(this,e).duration=t}}function ba(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?va:ya)(t,e)):Q(this.node(),t).duration}function xa(e,t){if(typeof t!=`function`)throw Error();return function(){Z(this,e).ease=t}}function Sa(e){var t=this._id;return arguments.length?this.each(xa(t,e)):Q(this.node(),t).ease}function Ca(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();Z(this,e).ease=n}}function wa(e){if(typeof e!=`function`)throw Error();return this.each(Ca(this._id,e))}function Ta(e){typeof e!=`function`&&(e=bt(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new eo(r,this._parents,this._name,this._id)}function Ea(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new eo(o,this._parents,this._name,this._id)}function Da(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function Oa(e,t,n){var r,i,a=Da(t)?Ji:Z;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function ka(e,t){var n=this._id;return arguments.length<2?Q(this.node(),n).on.on(e):this.each(Oa(n,e,t))}function Aa(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function ja(){return this.on(`end.remove`,Aa(this._id))}function Ma(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=pt(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,qi(l[f],t,n,f,l,Q(u,n)));return new eo(a,this._parents,t,n)}function Na(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=_t(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=Q(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&qi(p,t,n,h,f,m);a.push(f),o.push(u)}return new eo(a,o,t,n)}var Pa=er.prototype.constructor;function Fa(){return new Pa(this._groups,this._parents)}function Ia(e,t){var n,r,i;return function(){var a=cn(this,e),o=(this.style.removeProperty(e),cn(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function La(e){return function(){this.style.removeProperty(e)}}function Ra(e,t,n){var r,i=n+``,a;return function(){var o=cn(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function za(e,t,n){var r,i,a;return function(){var o=cn(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),cn(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Ba(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=Z(this,e),l=c.on,u=c.value[a]==null?s||=La(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function Va(e,t,n){var r=(e+=``)==`transform`?ui:na;return t==null?this.styleTween(e,Ia(e,r)).on(`end.style.`+e,La(e)):typeof t==`function`?this.styleTween(e,za(e,r,ta(this,`style.`+e,t))).each(Ba(this._id,e)):this.styleTween(e,Ra(e,r,t),n).on(`end.style.`+e,null)}function Ha(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Ua(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&Ha(e,a,n)),r}return a._value=t,a}function Wa(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,Ua(e,t,n??``))}function Ga(e){return function(){this.textContent=e}}function Ka(e){return function(){this.textContent=e(this)??``}}function qa(e){return this.tween(`text`,typeof e==`function`?Ka(ta(this,`text`,e)):Ga(e==null?``:e+``))}function Ja(e){return function(t){this.textContent=e.call(this,t)}}function Ya(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Ja(r)),t}return r._value=e,r}function Xa(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,Ya(e))}function Za(){for(var e=this._name,t=this._id,n=to(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=Q(c,t);qi(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new eo(r,this._parents,e,n)}function Qa(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=Z(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var $a=0;function eo(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function to(){return++$a}var no=er.prototype;eo.prototype={constructor:eo,select:Ma,selectAll:Na,selectChild:no.selectChild,selectChildren:no.selectChildren,filter:Ta,merge:Ea,selection:Fa,transition:Za,call:no.call,nodes:no.nodes,node:no.node,size:no.size,empty:no.empty,each:no.each,on:ka,attr:la,attrTween:ma,style:Va,styleTween:Wa,text:qa,textTween:Xa,remove:ja,tween:ea,delay:_a,duration:ba,ease:Sa,easeVarying:wa,end:Qa,[Symbol.iterator]:no[Symbol.iterator]};function ro(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var io={time:null,delay:0,duration:250,ease:ro};function ao(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function oo(e){var t,n;e instanceof eo?(t=e._id,e=e._name):(t=to(),(n=io).time=Oi(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&qi(c,e,t,l,o,n||ao(c,t));return new eo(r,this._parents,e,t)}er.prototype.interrupt=Zi,er.prototype.transition=oo;var so=e=>()=>e;function co(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function lo(e,t,n){this.k=e,this.x=t,this.y=n}lo.prototype={constructor:lo,scale:function(e){return e===1?this:new lo(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new lo(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var uo=new lo(1,0,0);lo.prototype;function fo(e){e.stopImmediatePropagation()}function po(e){e.preventDefault(),e.stopImmediatePropagation()}function mo(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function ho(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function go(){return this.__zoom||uo}function _o(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function vo(){return navigator.maxTouchPoints||`ontouchstart`in this}function yo(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function bo(){var e=mo,t=ho,n=yo,r=_o,i=vo,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=gi,l=U(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,go).on(`wheel.zoom`,te,{passive:!1}).on(`mousedown.zoom`,C).on(`dblclick.zoom`,w).filter(i).on(`touchstart.zoom`,T).on(`touchmove.zoom`,ne).on(`touchend.zoom touchcancel.zoom`,E).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,go),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(uo.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new lo(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new lo(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new lo(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new ee(e,t)}function ee(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}ee.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=nr(this.that).datum();l.call(e,this.that,new co(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function te(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=ir(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],Xi(this),s.start();po(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function C(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=nr(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=ir(t,i),l=t.clientX,u=t.clientY;sr(t.view),fo(t),a.mouse=[c,this.__zoom.invert(c)],Xi(this),a.start();function d(e){if(po(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=ir(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),cr(e.view,a.moved),po(e),a.event(e).end()}}function w(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=ir(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);po(r),s>0?nr(this).transition().duration(s).call(x,d,c,r):nr(this).call(_.transform,d,c,r)}}function T(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(fo(t),s=0;s<i;++s)c=r[s],l=ir(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),Xi(this),a.start())}}function ne(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(po(e),s=0;s<a;++s)c=i[s],l=ir(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function E(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(fo(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=ir(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=nr(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:so(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:so(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:so(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:so([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var xo=Symbol(`MiniMapSlots`),So=[`id`,`x`,`y`,`rx`,`ry`,`width`,`height`,`fill`,`stroke`,`stroke-width`,`shape-rendering`],Co=x({name:`MiniMapNode`,compatConfig:{MODE:3},inheritAttrs:!1,props:{id:{},type:{},selected:{type:Boolean},dragging:{type:Boolean},position:{},dimensions:{},borderRadius:{},color:{},shapeRendering:{},strokeColor:{},strokeWidth:{},hidden:{type:Boolean}},emits:[`click`,`dblclick`,`mouseenter`,`mousemove`,`mouseleave`],setup(e,{emit:t}){let n=e,i=Ne(xo),s=he(),c=D(()=>s.style??{});function l(e){t(`click`,e)}function u(e){t(`dblclick`,e)}function f(e){t(`mouseenter`,e)}function p(e){t(`mousemove`,e)}function m(e){t(`mouseleave`,e)}return(e,t)=>!e.hidden&&e.dimensions.width!==0&&e.dimensions.height!==0?(A(),a(ue,{key:0},[d(i)[`node-${n.type}`]?(A(),T(Ee(d(i)[`node-${n.type}`]),r(E({key:0},{...n,...e.$attrs})),null,16)):(A(),a(`rect`,E({key:1,id:e.id},e.$attrs,{class:[`vue-flow__minimap-node`,{selected:e.selected,dragging:e.dragging}],x:e.position.x,y:e.position.y,rx:e.borderRadius,ry:e.borderRadius,width:e.dimensions.width,height:e.dimensions.height,fill:e.color||c.value.background||c.value.backgroundColor,stroke:e.strokeColor,"stroke-width":e.strokeWidth,"shape-rendering":e.shapeRendering,onClick:l,onDblclick:u,onMouseenter:f,onMousemove:p,onMouseleave:m}),null,16,So))],64)):o(``,!0)}}),wo=[`width`,`height`,`viewBox`,`aria-labelledby`],To=[`id`],Eo=[`d`,`fill`,`stroke`,`stroke-width`],Do=x({name:`MiniMap`,compatConfig:{MODE:3},props:{nodeColor:{type:[String,Function],default:`#e2e2e2`},nodeStrokeColor:{type:[String,Function],default:`transparent`},nodeClassName:{type:[String,Function]},nodeBorderRadius:{default:5},nodeStrokeWidth:{default:2},maskColor:{default:`rgb(240, 240, 240, 0.6)`},maskStrokeColor:{default:`none`},maskStrokeWidth:{default:1},position:{default:`bottom-right`},pannable:{type:Boolean,default:!1},zoomable:{type:Boolean,default:!1},width:{},height:{},ariaLabel:{default:`Vue Flow mini map`},inversePan:{type:Boolean,default:!1},zoomStep:{default:1},offsetScale:{default:5},maskBorderRadius:{default:0}},emits:[`click`,`nodeClick`,`nodeDblclick`,`nodeMouseenter`,`nodeMousemove`,`nodeMouseleave`],setup(e,{emit:t}){let r=de(),s=he(),{id:c,edges:l,viewport:u,translateExtent:h,dimensions:g,emits:_,d3Selection:v,d3Zoom:y,getNodesInitialized:b}=f(),x=m();ve(xo,r);let S=D(()=>e.width??s.style?.width??200),ee=D(()=>e.height??s.style?.height??150),E=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`,ie=i(()=>typeof e.nodeColor==`string`?()=>e.nodeColor:e.nodeColor),ae=i(()=>typeof e.nodeStrokeColor==`string`?()=>e.nodeStrokeColor:e.nodeStrokeColor),oe=i(()=>typeof e.nodeClassName==`string`?()=>e.nodeClassName:typeof e.nodeClassName==`function`?e.nodeClassName:()=>``),se=i(()=>n(b.value.filter(e=>!e.hidden))),ce=i(()=>({x:-u.value.x/u.value.zoom,y:-u.value.y/u.value.zoom,width:g.value.width/u.value.zoom,height:g.value.height/u.value.zoom})),O=i(()=>b.value&&b.value.length?te(se.value,ce.value):ce.value),le=i(()=>{let e=O.value.width/S.value,t=O.value.height/ee.value;return Math.max(e,t)}),k=i(()=>{let t=le.value*S.value,n=le.value*ee.value,r=e.offsetScale*le.value;return{offset:r,x:O.value.x-(t-O.value.width)/2-r,y:O.value.y-(n-O.value.height)/2-r,width:t+r*2,height:n+r*2}}),pe=i(()=>!k.value.x||!k.value.y?``:`
2
- M${k.value.x-k.value.offset},${k.value.y-k.value.offset}
3
- h${k.value.width+k.value.offset*2}
4
- v${k.value.height+k.value.offset*2}
5
- h${-k.value.width-k.value.offset*2}z
6
- M${ce.value.x+e.maskBorderRadius},${ce.value.y}
7
- h${ce.value.width-2*e.maskBorderRadius}
8
- a${e.maskBorderRadius},${e.maskBorderRadius} 0 0 1 ${e.maskBorderRadius},${e.maskBorderRadius}
9
- v${ce.value.height-2*e.maskBorderRadius}
10
- a${e.maskBorderRadius},${e.maskBorderRadius} 0 0 1 -${e.maskBorderRadius},${e.maskBorderRadius}
11
- h${-(ce.value.width-2*e.maskBorderRadius)}
12
- a${e.maskBorderRadius},${e.maskBorderRadius} 0 0 1 -${e.maskBorderRadius},-${e.maskBorderRadius}
13
- v${-(ce.value.height-2*e.maskBorderRadius)}
14
- a${e.maskBorderRadius},${e.maskBorderRadius} 0 0 1 ${e.maskBorderRadius},-${e.maskBorderRadius}z`);fe(t=>{if(x.value){let n=nr(x.value),r=bo().wheelDelta(t=>ne(t)*(e.zoomStep/10)).on(`zoom`,e.pannable?t=>{if(t.sourceEvent.type!==`mousemove`||!v.value||!y.value)return;let n=le.value*Math.max(1,u.value.zoom)*(e.inversePan?-1:1),r={x:u.value.x-t.sourceEvent.movementX*n,y:u.value.y-t.sourceEvent.movementY*n},i=[[0,0],[g.value.width,g.value.height]],a=uo.translate(r.x,r.y).scale(u.value.zoom),o=y.value.constrain()(a,i,h.value);y.value.transform(v.value,o)}:()=>{}).on(`zoom.wheel`,e.zoomable?t=>{if(t.sourceEvent.type!==`wheel`||!v.value||!y.value)return;let n=t.sourceEvent.ctrlKey&&re()?10:1,r=-t.sourceEvent.deltaY*(t.sourceEvent.deltaMode===1?.05:t.sourceEvent.deltaMode?1:.002)*e.zoomStep,i=u.value.zoom*2**(r*n);y.value.scaleTo(v.value,i)}:()=>{});n.call(r),t(()=>{n.on(`zoom`,null)})}},{flush:`post`});function me(e){let[n,r]=ir(e);t(`click`,{event:e,position:{x:n,y:r}})}function ge(e,n){let r={event:e,node:n,connectedEdges:Me([n],l.value)};_.miniMapNodeClick(r),t(`nodeClick`,r)}function _e(e,n){let r={event:e,node:n,connectedEdges:Me([n],l.value)};_.miniMapNodeDoubleClick(r),t(`nodeDblclick`,r)}function ye(e,n){let r={event:e,node:n,connectedEdges:Me([n],l.value)};_.miniMapNodeMouseEnter(r),t(`nodeMouseenter`,r)}function be(e,n){let r={event:e,node:n,connectedEdges:Me([n],l.value)};_.miniMapNodeMouseMove(r),t(`nodeMousemove`,r)}function xe(e,n){let r={event:e,node:n,connectedEdges:Me([n],l.value)};_.miniMapNodeMouseLeave(r),t(`nodeMouseleave`,r)}return(e,t)=>(A(),T(d(p),{position:e.position,class:C([`vue-flow__minimap`,{pannable:e.pannable,zoomable:e.zoomable}])},{default:j(()=>[(A(),a(`svg`,{ref_key:`el`,ref:x,width:S.value,height:ee.value,viewBox:[k.value.x,k.value.y,k.value.width,k.value.height].join(` `),role:`img`,"aria-labelledby":`vue-flow__minimap-${d(c)}`,onClick:me},[e.ariaLabel?(A(),a(`title`,{key:0,id:`vue-flow__minimap-${d(c)}`},w(e.ariaLabel),9,To)):o(``,!0),(A(!0),a(ue,null,Ce(d(b),t=>(A(),T(Co,{id:t.id,key:t.id,f:``,position:t.computedPosition,dimensions:t.dimensions,selected:t.selected,dragging:t.dragging,style:Ae(t.style),class:C(oe.value(t)),color:ie.value(t),"border-radius":e.nodeBorderRadius,"stroke-color":ae.value(t),"stroke-width":e.nodeStrokeWidth,"shape-rendering":d(E),type:t.type,hidden:t.hidden,onClick:e=>ge(e,t),onDblclick:e=>_e(e,t),onMouseenter:e=>ye(e,t),onMousemove:e=>be(e,t),onMouseleave:e=>xe(e,t)},null,8,[`id`,`position`,`dimensions`,`selected`,`dragging`,`style`,`class`,`color`,`border-radius`,`stroke-color`,`stroke-width`,`shape-rendering`,`type`,`hidden`,`onClick`,`onDblclick`,`onMouseenter`,`onMousemove`,`onMouseleave`]))),128)),M(`path`,{class:`vue-flow__minimap-mask`,d:pe.value,fill:e.maskColor,stroke:e.maskStrokeColor,"stroke-width":e.maskStrokeWidth,"fill-rule":`evenodd`},null,8,Eo)],8,wo))]),_:1},8,[`position`,`class`]))}}),Oo={group:`Group`,node:`Node`,role:`Role`,leader:`Leader`};function ko(e){let{locale:t}=De();function n(n){let r=(typeof e==`function`?e():e.value)?.labels?.[n];if(!r)return Oo[n];let i=t.value;return r[i]??r[i.split(`-`)[0]]??Oo[n]}return i(()=>({group:n(`group`),node:n(`node`),role:n(`role`),leader:n(`leader`)}))}var Ao={class:`scenario-node-editor`},jo={class:`form-row`},Mo={class:`form-group`},No={class:`form-label`,for:`scennode-label`},Po={key:0,class:`form-group`},Fo={class:`form-label`,for:`scennode-role`},Io={key:0,class:`role-preview`},Lo={class:`role-preview__label`},Ro={class:`role-preview__text`},zo={class:`form-row`},Bo={class:`form-group`},Vo={class:`form-label`,for:`scennode-group`},Ho={key:0,class:`form-group`},Uo={class:`form-label`,for:`scennode-parent`},Wo={class:`form-row`},Go={class:`form-group`},Ko={class:`form-label`,for:`scennode-aicli`},qo={class:`form-group`},Jo={class:`form-label`,for:`scennode-model`},Yo={key:1,class:`form-note`},Xo={class:`inline-check`},Zo={for:`canAddNode`},Qo={class:`inline-check`},$o={for:`injectParentOutputs`},es={key:0,class:`form-group`},ts={class:`form-label`,for:`scennode-ancestors`},ns={class:`inline-check`},rs={for:`isLeader`},is={class:`form-note`},as={key:2,class:`form-group`},os={class:`form-label`,for:`scennode-question`},ss={key:3,class:`form-group`},cs={class:`form-label`,for:`scennode-prompt`},ls=l(x({__name:`ScenarioNodeEditor`,props:{node:{},groups:{},nodes:{},leaderId:{},preset:{},traversalMode:{}},emits:[`update`,`delete`,`set-leader`],setup(t,{emit:n}){let r=t,{t:s}=De(),{claudeCodeAvailable:c,codexAvailable:l}=O(e()),u=n;function f(e){return e===`codex`?``:`sonnet`}let p=m({...r.node,aiCli:r.node.aiCli??`claude-code`,model:r.node.model??f(r.node.aiCli),injectParentOutputs:r.node.injectParentOutputs??!1,injectedAncestorIds:r.node.injectedAncestorIds??[]});function h(e){return{...e,aiCli:e.aiCli??`claude-code`,model:e.model??f(e.aiCli),injectParentOutputs:e.injectParentOutputs??!1,injectedAncestorIds:e.injectedAncestorIds??[]}}let g=h(r.node);ge(()=>r.node,e=>{g=h(e),p.value=h(e)},{deep:!0}),ge(p,e=>{let t={};e.label!==g.label&&(t.label=e.label),e.role!==g.role&&(t.role=e.role),e.groupId!==g.groupId&&(t.groupId=e.groupId),JSON.stringify(e.parentIds)!==JSON.stringify(g.parentIds)&&(t.parentIds=e.parentIds),e.prompt!==g.prompt&&(t.prompt=e.prompt),e.question!==g.question&&(t.question=e.question),e.canAddNode!==g.canAddNode&&(t.canAddNode=e.canAddNode),e.aiCli!==g.aiCli&&(t.aiCli=e.aiCli),e.model!==g.model&&(t.model=e.model),e.injectParentOutputs!==g.injectParentOutputs&&(t.injectParentOutputs=e.injectParentOutputs),JSON.stringify(e.injectedAncestorIds)!==JSON.stringify(g.injectedAncestorIds)&&(t.injectedAncestorIds=e.injectedAncestorIds),Object.keys(t).length>0&&u(`update`,t)},{deep:!0});let _=i(()=>r.preset?.roles.length?r.preset.roles.map(e=>({label:e.name,value:e.id})):[]),y=i(()=>[{label:`Claude Code${c.value?``:` — non installé`}`,value:`claude-code`,disabled:!c.value},{label:`Codex (OpenAI)${l.value?``:` — non installé`}`,value:`codex`,disabled:!l.value}]),b=i(()=>p.value.aiCli===`codex`?[]:[{label:s(`scenarioNodeEditor.modelHaiku`),value:`haiku`},{label:s(`scenarioNodeEditor.modelSonnet`),value:`sonnet`},{label:s(`scenarioNodeEditor.modelOpus`),value:`opus`}]);ge(()=>p.value.aiCli,(e,t)=>{if(e===t)return;let n={"claude-code":`sonnet`,codex:``};p.value.model=n[e]??`sonnet`});let x=i(()=>r.groups.map(e=>({label:e.name,value:e.id}))),S=i(()=>r.nodes.filter(e=>e.id!==r.node.id).map(e=>({label:e.label||e.id,value:e.id}))),ee=i(()=>r.traversalMode===`topological`);ge(()=>p.value.parentIds,()=>{let e=new Map(r.nodes.map(e=>[e.id,e])),t=new Set,n=[...p.value.parentIds];for(;n.length>0;){let r=n.shift();if(!t.has(r)){t.add(r);let i=e.get(r);i&&n.push(...i.parentIds)}}p.value.injectedAncestorIds=(p.value.injectedAncestorIds??[]).filter(e=>t.has(e))});let te=i(()=>{let e=new Map(r.nodes.map(e=>[e.id,e])),t=new Set,n=[...r.node.parentIds??[]];for(;n.length>0;){let r=n.shift();if(!t.has(r)){t.add(r);let i=e.get(r);i&&n.push(...i.parentIds)}}return r.nodes.filter(e=>t.has(e.id)).map(e=>({label:e.label||e.id,value:e.id}))}),C=i(()=>r.node.id===r.leaderId);i(()=>!C.value);let ne=i(()=>!C.value),E=ko(()=>r.preset),re=i(()=>r.preset?.roles.find(e=>e.id===p.value.role));return(e,t)=>(A(),a(`div`,Ao,[M(`div`,jo,[M(`div`,Mo,[M(`label`,No,w(d(s)(`scenarioNodeEditor.label`)),1),v(d(_e),{id:`scennode-label`,modelValue:p.value.label,"onUpdate:modelValue":t[0]||=e=>p.value.label=e,class:`w-full`,size:`small`,placeholder:`${d(E).node} name`},null,8,[`modelValue`,`placeholder`])]),_.value.length?(A(),a(`div`,Po,[M(`label`,Fo,w(d(E).role),1),v(d(ae),{"input-id":`scennode-role`,modelValue:p.value.role,"onUpdate:modelValue":t[1]||=e=>p.value.role=e,options:_.value,"option-label":`label`,"option-value":`value`,class:`w-full`,size:`small`},null,8,[`modelValue`,`options`])])):o(``,!0)]),re.value?.systemPrompt?(A(),a(`div`,Io,[M(`span`,Lo,w(d(s)(`scenarioNodeEditor.systemPrompt`)),1),M(`p`,Ro,w(re.value.systemPrompt),1)])):o(``,!0),M(`div`,zo,[M(`div`,Bo,[M(`label`,Vo,w(d(E).group),1),v(d(ae),{"input-id":`scennode-group`,modelValue:p.value.groupId,"onUpdate:modelValue":t[2]||=e=>p.value.groupId=e,options:x.value,"option-label":`label`,"option-value":`value`,placeholder:`Select a ${d(E).group.toLowerCase()}`,class:`w-full`,size:`small`},null,8,[`modelValue`,`options`,`placeholder`])]),ne.value?(A(),a(`div`,Ho,[M(`label`,Uo,w(d(s)(`scenarioNodeEditor.reportsTo`)),1),v(d(ae),{"input-id":`scennode-parent`,"model-value":p.value.parentIds[0]??null,options:S.value,"option-label":`label`,"option-value":`value`,placeholder:d(s)(`scenarioNodeEditor.noParent`),"show-clear":!0,class:`w-full`,size:`small`,"onUpdate:modelValue":t[3]||=e=>{p.value.parentIds=e?[e,...p.value.parentIds.slice(1)]:p.value.parentIds.slice(1)}},null,8,[`model-value`,`options`,`placeholder`])])):o(``,!0)]),p.value.type===`ask`?o(``,!0):(A(),a(ue,{key:1},[M(`div`,Wo,[M(`div`,Go,[M(`label`,Ko,w(d(s)(`scenarioNodeEditor.aiRunner`)),1),v(d(ae),{"input-id":`scennode-aicli`,modelValue:p.value.aiCli,"onUpdate:modelValue":t[4]||=e=>p.value.aiCli=e,options:y.value,"option-label":`label`,"option-value":`value`,"option-disabled":`disabled`,class:`w-full`,size:`small`},null,8,[`modelValue`,`options`])]),M(`div`,qo,[M(`label`,Jo,w(d(s)(`scenarioNodeEditor.model`)),1),p.value.aiCli===`codex`?(A(),a(`small`,Yo,w(d(s)(`scenarioNodeEditor.modelAuto`)),1)):(A(),T(d(ae),{key:0,"input-id":`scennode-model`,modelValue:p.value.model,"onUpdate:modelValue":t[5]||=e=>p.value.model=e,options:b.value,"option-label":`label`,"option-value":`value`,class:`w-full`,size:`small`},null,8,[`modelValue`,`options`]))])]),M(`div`,Xo,[v(d(Fe),{modelValue:p.value.canAddNode,"onUpdate:modelValue":t[6]||=e=>p.value.canAddNode=e,binary:``,"input-id":`canAddNode`},null,8,[`modelValue`]),M(`label`,Zo,w(d(s)(`scenarioNodeEditor.canSpawnNodes`)),1)]),ee.value&&!C.value?(A(),a(ue,{key:0},[M(`div`,Qo,[v(d(Fe),{modelValue:p.value.injectParentOutputs,"onUpdate:modelValue":t[7]||=e=>p.value.injectParentOutputs=e,binary:``,"input-id":`injectParentOutputs`},null,8,[`modelValue`]),M(`label`,$o,w(d(s)(`scenarioNodeEditor.injectParentOutputs`)),1)]),te.value.length>0?(A(),a(`div`,es,[M(`label`,ts,w(d(s)(`scenarioNodeEditor.injectedAncestorIds`)),1),v(d(Ie),{"input-id":`scennode-ancestors`,modelValue:p.value.injectedAncestorIds,"onUpdate:modelValue":t[8]||=e=>p.value.injectedAncestorIds=e,options:te.value,"option-label":`label`,"option-value":`value`,placeholder:d(s)(`scenarioNodeEditor.injectedAncestorIdsPlaceholder`),filter:``,class:`w-full`,size:`small`},null,8,[`modelValue`,`options`,`placeholder`])])):o(``,!0)],64)):o(``,!0)],64)),M(`div`,ns,[v(d(Fe),{"model-value":C.value,binary:``,"input-id":`isLeader`,disabled:C.value,"onUpdate:modelValue":t[9]||=e=>u(`set-leader`,r.node.id)},null,8,[`model-value`,`disabled`]),M(`label`,rs,[pe(w(d(E).leader)+` `,1),M(`span`,is,w(d(s)(`scenarioNodeEditor.entryPoint`)),1)])]),p.value.type===`ask`?(A(),a(`div`,as,[M(`label`,os,w(d(s)(`scenarioNodeEditor.question`)),1),v(d(ye),{id:`scennode-question`,modelValue:p.value.question,"onUpdate:modelValue":t[10]||=e=>p.value.question=e,rows:`4`,class:`w-full`,style:{resize:`none`},placeholder:d(s)(`scenarioNodeEditor.questionPlaceholder`)},null,8,[`modelValue`,`placeholder`])])):(A(),a(`div`,ss,[M(`label`,cs,w(d(s)(`scenarioNodeEditor.prompt`)),1),v(d(ye),{id:`scennode-prompt`,modelValue:p.value.prompt,"onUpdate:modelValue":t[11]||=e=>p.value.prompt=e,rows:`8`,class:`w-full`,style:{resize:`none`}},null,8,[`modelValue`])]))]))}}),[[`__scopeId`,`data-v-d47fface`]]),us={class:`scenario-editor`},ds={class:`scenario-editor__toolbar`},fs={class:`scenario-editor__toolbar-row scenario-editor__toolbar-row--primary`},ps={class:`scenario-editor__icon-input`},ms={class:`scenario-editor__toolbar-row scenario-editor__toolbar-row--secondary`},hs={class:`pi pi-question-circle scenario-editor__traversal-help`},gs={class:`add-node-popover`},_s={class:`add-node-popover__item-text`},vs={class:`add-node-popover__item-label`},ys={class:`add-node-popover__item-desc`},bs={class:`add-node-popover__item-text`},xs={class:`add-node-popover__item-label`},Ss={class:`add-node-popover__item-desc`},Cs={class:`scenario-editor__content`},ws={key:0,class:`scenario-editor__ai-panel`},Ts={class:`scenario-editor__ai-panel-header`},Es={key:0,class:`scenario-editor__ai-provider`},Ds={for:`scened-ai-provider`,class:`scenario-editor__ai-provider-label`},Os={key:1,class:`scenario-editor__ai-no-provider`},ks=[`innerHTML`],As={class:`scenario-editor__ai-hint`},js={key:2,class:`scenario-editor__ai-stream`},Ms={class:`scenario-editor__ai-stream-label`},Ns={key:0,class:`pi pi-spin pi-spinner`},Ps={key:1,class:`pi pi-check`,style:{color:`var(--p-green-500)`}},Fs={key:2,class:`pi pi-exclamation-triangle`,style:{color:`var(--p-orange-500)`}},Is={class:`scenario-editor__ai-stream-text`},Ls={key:3,class:`scenario-editor__ai-error`},Rs={key:0,class:`scenario-editor__panel scenario-editor__panel--editor`},zs={class:`detail-header`},Bs={class:`detail-header__title`},Vs={class:`detail-body`},Hs={class:`detail-field`},Us={for:`scened-group-name`,class:`detail-label`},Ws={class:`detail-field`},Gs={for:`scened-group-desc`,class:`detail-label`},Ks={class:`detail-field`},qs={for:`scened-group-color`,class:`detail-label`},Js={class:`detail-color-row`},Ys=[`value`],Xs={class:`detail-footer`},Zs={key:0,class:`detail-footer`},Qs={class:`switch-dialog__intro`},$s={class:`inline-check`,style:{"margin-top":`1rem`,gap:`0.6rem`}},ec={for:`dontShowAgain`,style:{"font-size":`0.85rem`,cursor:`pointer`}},tc={class:`switch-dialog__intro`},nc={class:`switch-dialog__intro`},rc={class:`switch-dialog__links`},ic={class:`switch-dialog__node`},ac={class:`switch-dialog__node`},oc={class:`add-node-form`},sc={for:`scened-add-node-group`,class:`add-node-label`},cc={class:`export-json`},lc={key:0,class:`import-error`},uc={style:{margin:`0 0 1rem`}},dc=`runeya:hierarchical-multi-parent-notice-dismissed`,fc=`scenario-flow`,pc=160,mc=48,$=24,hc=32,gc=60,_c=10,vc=l(x({__name:`ScenarioEditorPage`,setup(e){let{t:n}=De(),c=se(),l=ee(),p=Te(),x=m(!1),te=m([]),ne=m(localStorage.getItem(dc)===`true`),re=m(!1),D=m(!1),O=S(),{setCenter:de,updateNode:fe,getSelectedNodes:k,getSelectedEdges:he,removeSelectedElements:ge,fitView:ve,viewport:Ee}=f(fc);function Ae(e){if(e.key!==`Delete`&&e.key!==`Backspace`)return;let t=e.target;if(!(t.tagName===`INPUT`||t.tagName===`TEXTAREA`)){if(G.value){let e=G.value;for(let t of B.value){let n=t.parentIds.findIndex(n=>`e-${n}-${t.id}`===e);if(n!==-1){yt(t.id,{parentIds:t.parentIds.filter((e,t)=>t!==n)});break}}G.value=void 0;return}for(let e of k.value)z.value.some(t=>t.id===e.id)?ft(e.id):B.value.some(t=>t.id===e.id)&&vt(e.id)}}let Me=i(()=>c.params.id),Ne=i(()=>!Me.value),Ie=m(`New scenario`),Le=m(``),Re=m(``),F=m(``),I=m(`hierarchical`),L=m(void 0),ze=m(!1),Be=m([]),Ve=i(()=>Be.value.find(e=>e.id===L.value)),R=ko(Ve),He=m();function Ue(e){He.value?.toggle(e)}function We(e){He.value?.hide(),mt(e)}async function Ge(){try{Be.value=await je.scenario.listPresets.query()}catch{}}let Ke=m(!1),qe=m(void 0),Je=m(0);function Ye(e){L.value=e;let t=Be.value.find(t=>t.id===e);t?.defaultTraversalMode&&(I.value=t.defaultTraversalMode),t?.initialData?(z.value=[...t.initialData.groups],B.value=[...t.initialData.nodes],F.value=t.initialData.leaderId,V.value=void 0,H.value=void 0):e||(z.value=[],B.value=[],F.value=``,V.value=void 0,H.value=void 0)}function Xe(){return B.value.length>0||z.value.length>0}function Ze(e){let t=e?Be.value.find(t=>t.id===e):void 0;(!e||t?.initialData)&&Xe()?(qe.value=e,Ke.value=!0):Ye(e)}function Qe(){Ke.value=!1,Ye(qe.value),qe.value=void 0}function $e(){Ke.value=!1,qe.value=void 0,Je.value++}let z=m([]),B=m([]),V=m(),H=m(),tt=m(!1),U=m(null),nt=m(`ai`),rt=i(()=>{let e=new Map;if(!V.value)return e;let t=V.value,n=B.value.find(e=>e.id===t);if(!n)return e;let r=B.value.filter(e=>(e.parentIds??[]).includes(t)||(n.parentIds??[]).includes(e.id)),i=new Map;for(let e of r){let t=e.groupId??null;i.has(t)||i.set(t,[]),i.get(t).push(e)}for(let t of i.values())t.length<=1||[...t].sort((e,t)=>e.position.x-t.position.x).forEach((t,n)=>e.set(t.id,-n*15));return e}),it=i(()=>{let e=V.value?(()=>{let e=V.value,t=B.value.find(t=>t.id===e),n=B.value.filter(n=>(n.parentIds??[]).includes(e)||(t?.parentIds??[]).includes(n.id)).map(e=>e.id);return new Set([e,...n])})():null,t=e?new Set(B.value.filter(t=>e.has(t.id)&&t.groupId).map(e=>e.groupId)):null,n=H.value??null,r=n?new Set(B.value.filter(e=>e.groupId===n).map(e=>e.id)):null,i=z.value.map(e=>{let r=t&&!t.has(e.id),i=n&&e.id!==n,a=r||i,o=n===e.id;return{id:e.id,type:`group`,position:e.position,zIndex:o?500:1,style:{width:`${e.width}px`,height:`${e.height}px`,opacity:a?`0.25`:`1`,transition:`opacity 0.15s ease`},data:{label:e.name,color:e.color??void 0},draggable:!0,selectable:!0}}),a=new Map;for(let e of B.value)for(let t of e.parentIds??[]){let n=at(e.id)<at(t),r=a.get(t)??{hasUp:!1,hasDown:!1};n?r.hasUp=!0:r.hasDown=!0,a.set(t,r)}let o=B.value.map(t=>{let n=a.get(t.id)??{hasUp:!1,hasDown:!1},i=rt.value.get(t.id)??0,o=e&&!e.has(t.id),s=r&&!r.has(t.id),c=o||s,l=r?.has(t.id);return{id:t.id,position:{x:t.position.x+i,y:t.position.y},zIndex:l?1500:1e3,style:c?{opacity:`0.25`,transition:`opacity 0.15s ease`}:{opacity:`1`,transition:`opacity 0.15s ease`},data:{label:t.label,isLeader:t.id===F.value,type:t.type,roleName:Ve.value?.roles.find(e=>e.id===t.role)?.name,showTopHandle:n.hasUp,showBottomHandle:n.hasDown||!n.hasUp},draggable:!0,selectable:!0,parentNode:t.groupId??void 0,extent:t.groupId?`parent`:void 0}});return[...i,...o]});function at(e){let t=B.value.find(t=>t.id===e);return t?t.groupId?(z.value.find(e=>e.id===t.groupId)?.position.y??0)+t.position.y:t.position.y:0}let ot=i(()=>{let e=new Map;for(let t of B.value)e.set(t.id,0);let t=new Map;for(let e of B.value)t.set(e.id,[]);for(let e of B.value)for(let n of e.parentIds??[])t.get(n)?.push(e.id);let n=new Set,r=[];function i(a){e.set(a,1),r.push(a);for(let o of t.get(a)??[])if(e.get(o)===1){let e=r.indexOf(o);for(let t=e;t<r.length-1;t++)n.add(`e-${r[t]}-${r[t+1]}`);n.add(`e-${a}-${o}`)}else e.get(o)===0&&i(o);r.pop(),e.set(a,2)}for(let t of B.value)e.get(t.id)===0&&i(t.id);return n}),st=i(()=>{let e=[],t=I.value===`topological`;for(let n of B.value)for(let r of n.parentIds??[]){let i=`e-${r}-${n.id}`,a=G.value===i,o=!G.value&&!!V.value&&(V.value===r||V.value===n.id),s=a||o,c=ot.value.has(i),l=at(n.id)<at(r),u=B.value.find(e=>e.id===r)?.groupId??null,d=n.groupId??null,f=!!H.value&&u!==H.value&&d!==H.value||V.value&&!G.value&&!s||G.value&&!a;e.push({id:i,source:r,target:n.id,sourceHandle:l?`source-top`:`source-bottom`,type:`step`,zIndex:c?700:s?600:500,class:c?`edge--cycle`:void 0,animated:t,style:{stroke:c?`rgb(239,68,68)`:s?`rgb(168,85,247)`:`rgba(99,102,241,0.55)`,strokeWidth:c||s?3:2.5,opacity:f?.15:1,...t?{strokeDasharray:`5,3`}:{}}})}return e});i(()=>B.value.map(e=>({id:e.id,label:e.label||e.id})));function ct(){let e={id:`group-${Pe().slice(0,8)}`,name:`Group ${z.value.length+1}`,position:{x:100*z.value.length,y:100*z.value.length},width:300,height:200};z.value=[...z.value,e]}let lt=m(!1),ut=m(null),dt=m(0);function ft(e){let t=B.value.filter(t=>t.groupId===e).length;if(t>0){ut.value=e,dt.value=t,lt.value=!0;return}pt(e)}function pt(e){let t=B.value.filter(t=>t.groupId===e).map(e=>e.id);B.value=B.value.filter(e=>!t.includes(e.id)).map(e=>({...e,parentIds:e.parentIds.filter(e=>!t.includes(e))})),z.value=z.value.filter(t=>t.id!==e),H.value===e&&(H.value=void 0),V.value&&t.includes(V.value)&&(V.value=void 0)}function mt(e=`ai`){if(!z.value.length){p.add({severity:`warn`,summary:n(`scenarioEditor.toast.noGroupsSummary`),detail:n(`scenarioEditor.toast.noGroupsDetail`),life:3e3});return}nt.value=e,U.value=z.value[0]?.id??null,tt.value=!0}function ht(e){if(!e)return{x:100,y:100};let t=B.value.filter(t=>t.groupId===e);if(t.length===0)return{x:$,y:hc+$};let n=t.reduce((e,t)=>e.position.y>t.position.y?e:t);return{x:n.position.x,y:n.position.y+mc+_c}}function gt(e){if(!e)return;let t=z.value.find(t=>t.id===e);if(!t)return;let n=B.value.filter(t=>t.groupId===e);if(n.length===0)return;let r=Math.max(...n.map(e=>e.position.y+mc)),i=Math.max(...n.map(e=>e.position.x+pc)),a=r+$,o=Math.max(t.width??200,i+$),s=(t.position.y??0)+(t.height??0),c=(t.position.y??0)+a-s;if(W(e,{width:o,height:a}),c>0)for(let t of z.value)t.id!==e&&(t.position.y??0)>=s&&W(t.id,{position:{x:t.position.x,y:(t.position.y??0)+c}})}function _t(){if(!U.value){p.add({severity:`warn`,summary:n(`scenarioEditor.toast.groupRequiredSummary`),detail:n(`scenarioEditor.toast.groupRequiredDetail`),life:3e3});return}let e=`node-${Pe().slice(0,8)}`,t={id:e,type:nt.value,parentIds:[],groupId:U.value,label:``,role:`other`,prompt:``,question:``,autoGenerated:!0,canAddNode:!1,aiCli:`claude-code`,model:`sonnet`,position:ht(U.value),injectParentOutputs:!1,injectedAncestorIds:[]};B.value=[...B.value,t],B.value.length===1&&(F.value=e),gt(U.value),tt.value=!1,V.value=e,ie(()=>updateNodeInternals(B.value.map(e=>e.id)))}function vt(e){if(e===F.value){p.add({severity:`warn`,summary:n(`scenarioEditor.toast.leaderSummary`),detail:n(`scenarioEditor.toast.leaderDetail`),life:3e3});return}let t=new Set(B.value.filter(t=>t.parentIds[0]===e).map(e=>e.id));B.value=B.value.filter(t=>t.id!==e).map(e=>t.has(e.id)?{...e,parentId:F.value}:e),V.value===e&&(V.value=void 0)}function yt(e,t){B.value=B.value.map(n=>n.id===e?{...n,...t}:n);let n=B.value.find(t=>t.id===e);if(n&&(`label`in t&&fe(e,{data:{label:n.label,isLeader:n.id===F.value}}),`groupId`in t)){let n={x:50,y:50};fe(e,{parentNode:t.groupId??void 0,extent:t.groupId?`parent`:void 0,position:n}),B.value=B.value.map(t=>t.id===e?{...t,position:n}:t)}}function bt(e,t){W(e,{name:t}),fe(e,{data:{label:t}})}function xt(e,t,n){}function St(e){for(let t of e)if(t.type===`remove`){let e=t.id?.split(`-`);if(!e||e.length<3)continue;for(let e of B.value){let n=e.parentIds??[],r=n.findIndex(n=>`e-${n}-${e.id}`===t.id);if(r!==-1){yt(e.id,{parentIds:n.filter((e,t)=>t!==r)});break}}}}function Ct(e){for(let t of e)t.type===`dimensions`&&t.dimensions&&z.value.find(e=>e.id===t.id)&&W(t.id,{width:t.dimensions.width,height:t.dimensions.height}),t.type===`position`&&t.position&&!t.dragging&&z.value.find(e=>e.id===t.id)&&W(t.id,{position:t.position}),t.type===`remove`&&B.value.some(e=>e.id===t.id)&&vt(t.id)}function W(e,t){z.value=z.value.map(n=>n.id===e?{...n,...t}:n)}function wt(e){let t=e.node.id,n=e.node.position,r=z.value.find(e=>e.id===t),i=B.value.find(e=>e.id===t);r?W(t,{position:n}):i&&(yt(t,{position:n}),Tt(t,n.y)),jt({refit:!1})}function Tt(e,t){let n=B.value.find(t=>t.id===e);if(!n)return;let r=n.parentIds[0]??null,i=new Set(B.value.filter(e=>(e.parentIds[0]??null)===r).map(e=>e.id));if(i.size<=1)return;let a=B.value.filter(e=>i.has(e.id)).sort((n,r)=>(n.id===e?t:n.position.y)-(r.id===e?t:r.position.y)),o=B.value.map((e,t)=>({n:e,i:t})).filter(({n:e})=>i.has(e.id)).map(({i:e})=>e),s=[...B.value];o.forEach((e,t)=>{s[e]=a[t]}),B.value=s}let G=m();function Et(e){let t=e.edge.id;G.value===t?(G.value=void 0,ge({edges:[e.edge]})):G.value=t}function Dt(e){let t=e.node.id;G.value=void 0,z.value.some(e=>e.id===t)?H.value===t?(H.value=void 0,ge({nodes:[e.node]})):(H.value=t,V.value=void 0):B.value.some(e=>e.id===t)&&(V.value===t?(V.value=void 0,ge({nodes:[e.node]})):(V.value=t,H.value=void 0))}function Ot(e){let t=e.target,n=e.source;if(n===t)return;let r=B.value.find(e=>e.id===t);if(!r)return;let i=r.parentIds??[];i.includes(n)||(I.value===`hierarchical`?(yt(t,{parentIds:[n]}),i.length>0&&!ne.value&&(D.value=!1,re.value=!0)):yt(t,{parentIds:[...i,n]}),ie(()=>jt({refit:!1})))}function kt(){D.value&&(ne.value=!0,localStorage.setItem(dc,`true`)),re.value=!1}function At(){B.value=B.value.map(e=>({...e,parentIds:e.parentIds.slice(0,1),injectParentOutputs:!1,injectedAncestorIds:[]}))}function jt({refit:e=!0}={}){let t=new Map;for(let e of B.value)t.set(e.id,[]);for(let e of B.value)e.parentIds[0]&&t.has(e.parentIds[0])&&t.get(e.parentIds[0]).push(e.id);let n=new Map,r=0,i;function a(e,o){let s=B.value.find(t=>t.id===e).groupId??null;s!==i&&(i!==void 0&&(r+=$),s!==null&&(r+=hc+$),i=s),n.set(e,{x:o*gc,y:r}),r+=mc+_c;for(let n of t.get(e)??[])a(n,o+1)}let o=B.value.filter(e=>e.parentIds.length===0),s=o.length>0?o.map(e=>e.id):[F.value];for(let e of s)a(e,0),r+=$+_c,i=void 0;for(let e of B.value){let t=n.get(e.id);t&&yt(e.id,{position:t})}for(let e of z.value){let t=B.value.filter(t=>t.groupId===e.id);if(t.length===0)continue;let r=t.map(e=>n.get(e.id)??e.position),i=Math.min(...r.map(e=>e.x))-$,a=Math.min(...r.map(e=>e.y))-$-hc,o=Math.max(...r.map(e=>e.x+pc))+$,s=Math.max(...r.map(e=>e.y+mc))+$;W(e.id,{position:{x:i,y:a},width:o-i,height:s-a});for(let e of t){let t=n.get(e.id);t&&yt(e.id,{position:{x:t.x-i,y:t.y-a}})}}e&&ie(()=>ve({includeHiddenNodes:!1,padding:.1,maxZoom:Ee.value.zoom}))}function Mt(e){if(e===`hierarchical`){let e=B.value.filter(e=>e.parentIds.length>1).length;if(B.value.reduce((e,t)=>e+Math.max(0,t.parentIds.length-1),0),e>0){let e=new Map(B.value.map(e=>[e.id,e]));te.value=B.value.filter(e=>e.parentIds.length>1).flatMap(t=>t.parentIds.slice(1).map(n=>({from:e.get(n)?.label||n,to:t.label||t.id}))),x.value=!0;return}At()}I.value=e}function Nt(e){V.value&&yt(V.value,e)}function Pt(e){vt(e)}function Ft(){let e=new Set(B.value.map(e=>e.id));e.has(F.value)||(F.value=B.value[0]?.id??`leader`),B.value=B.value.map(t=>{if(t.id===F.value)return{...t,parentIds:[]};let n=(t.parentIds??[]).filter(t=>e.has(t));return n.length===0&&t.id!==F.value?{...t,parentIds:[F.value]}:n.length===(t.parentIds??[]).length?t:{...t,parentIds:n}})}async function It(){if(Ne.value)return;await O.fetchScenarios();let e=O.scenarios.find(e=>e.id===Me.value);if(!e){p.add({severity:`error`,summary:n(`scenarioEditor.toast.notFoundSummary`),detail:n(`scenarioEditor.toast.notFoundDetail`),life:3e3}),l.push({name:`settings`,query:{section:`scenario`}});return}Ie.value=e.name,Le.value=e.icon??``,Re.value=e.description??``,F.value=e.leaderId,I.value=e.traversalMode??`hierarchical`,L.value=e.presetId,ze.value=e.isPublished??!1,z.value=[...e.groups],B.value=[...e.nodes]}async function Lt(){if(!Ie.value.trim()){p.add({severity:`warn`,summary:n(`scenarioEditor.toast.validationSummary`),detail:n(`scenarioEditor.toast.nameRequired`),life:3e3});return}if(!B.value.length){p.add({severity:`warn`,summary:n(`scenarioEditor.toast.validationSummary`),detail:n(`scenarioEditor.toast.nodeRequired`),life:3e3});return}if(!B.value.some(e=>e.id===F.value)){p.add({severity:`warn`,summary:n(`scenarioEditor.toast.validationSummary`),detail:n(`scenarioEditor.toast.leaderRequired`),life:3e3});return}Ft();let e={name:Ie.value.trim(),icon:Le.value.trim()||void 0,description:Re.value.trim()||void 0,leaderId:F.value,traversalMode:I.value,presetId:L.value,isPublished:ze.value,groups:z.value,nodes:B.value};try{if(Ne.value){let t=await O.createScenario(e);p.add({severity:`success`,summary:n(`scenarioEditor.toast.createdSummary`),detail:n(`scenarioEditor.toast.createdDetail`),life:2500}),l.replace({name:`scenario-edit`,params:{id:t.id}})}else await O.updateScenario(Me.value,e),p.add({severity:`success`,summary:n(`scenarioEditor.toast.savedSummary`),detail:n(`scenarioEditor.toast.savedDetail`),life:2500})}catch(e){p.add({severity:`error`,summary:`Error`,detail:e.message,life:3500})}}function Rt(){l.push({name:`settings`,query:{section:`scenario`}})}let zt=m(!1),Bt=m(``),K=m(!1),Vt=m(``),Ht=m(``),Ut=m(1),Wt=m(null),Gt=m(null),Kt=s({leaderId:me().max(128),groups:ke(le).max(100),nodes:ke(Se).max(500)}),qt=m(null),Jt=null;function Yt(){!Bt.value.trim()||K.value||(Jt?.unsubscribe(),Vt.value=``,qt.value=null,Ht.value=``,K.value=!0,Jt=je.scenario.streamGenerateWithAI.subscribe({prompt:Bt.value.trim(),providerId:Wt.value??void 0,model:Gt.value??void 0,current:z.value.length>0||B.value.length>0?{leaderId:F.value,groups:z.value,nodes:B.value}:void 0},{onData(e){if(e.type===`delta`)Vt.value+=e.text;else if(e.type===`done`){K.value=!1;let e=Vt.value.trim(),t=e.match(/```(?:json)?\s*([\s\S]*?)```/);t&&(e=t[1].trim());try{qt.value=Kt.parse(JSON.parse(e))}catch{Ht.value=n(`scenarioEditor.toast.invalidJson`)}}},onError(e){K.value=!1,Ht.value=e.message??`Unknown error`},onComplete(){K.value=!1}}))}function Xt(){if(!qt.value)return;let{leaderId:e,groups:t,nodes:r}=qt.value;F.value=e,z.value=t,B.value=r,qt.value=null,Vt.value=``,Bt.value=``,zt.value=!1,p.add({severity:`success`,summary:n(`scenarioEditor.toast.appliedSummary`),detail:n(`scenarioEditor.toast.appliedDetail`),life:3e3})}let Zt=m(!1),Qt=m(!1),$t=m(``),en=m(``),tn=i(()=>JSON.stringify({name:Ie.value,description:Re.value||void 0,leaderId:F.value,groups:z.value,nodes:B.value},null,2));async function nn(){await navigator.clipboard.writeText(tn.value),p.add({severity:`success`,summary:n(`scenarioEditor.toast.copiedSummary`),life:2e3})}let rn=s({leaderId:me().max(128),groups:ke(le).max(100),nodes:ke(Se).max(500),name:me().max(200).optional(),description:me().max(2e3).optional()});function an(){en.value=``;try{let e=rn.parse(JSON.parse($t.value));e.name&&(Ie.value=e.name),e.description&&(Re.value=e.description),F.value=e.leaderId,z.value=e.groups,B.value=e.nodes,Qt.value=!1,p.add({severity:`success`,summary:n(`scenarioEditor.toast.importedSummary`),life:2e3})}catch(e){en.value=e.message}}return t(()=>{Jt?.unsubscribe()}),oe(async()=>{await Promise.all([It(),Ge()])}),(e,t)=>{let i=be(`tooltip`);return A(),a(ue,null,[M(`div`,us,[M(`div`,ds,[M(`div`,fs,[v(d(P),{icon:`pi pi-arrow-left`,text:``,rounded:``,onClick:Rt}),N((A(),a(`div`,ps,[M(`i`,{class:C(Le.value?`pi ${Le.value}`:`pi pi-image`),style:{opacity:`0.5`}},null,2),v(d(_e),{modelValue:Le.value,"onUpdate:modelValue":t[0]||=e=>Le.value=e,style:{width:`130px`,"font-size":`0.8rem`},placeholder:`pi-building`},null,8,[`modelValue`])])),[[i,`PrimeIcons class (ex: pi-building, pi-users)`,void 0,{bottom:!0}]]),v(d(_e),{modelValue:Ie.value,"onUpdate:modelValue":t[1]||=e=>Ie.value=e,class:`scenario-editor__name`,placeholder:d(n)(`scenarioEditor.placeholderName`)},null,8,[`modelValue`,`placeholder`]),v(d(_e),{modelValue:Re.value,"onUpdate:modelValue":t[2]||=e=>Re.value=e,class:`scenario-editor__desc`,placeholder:d(n)(`scenarioEditor.placeholderDescription`)},null,8,[`modelValue`,`placeholder`]),t[40]||=M(`div`,{style:{flex:`1`}},null,-1),N(v(d(P),{icon:ze.value?`pi pi-globe`:`pi pi-lock`,severity:ze.value?`success`:`secondary`,text:``,rounded:``,onClick:t[3]||=e=>ze.value=!ze.value},null,8,[`icon`,`severity`]),[[i,ze.value?d(n)(`scenarioEditor.tooltipUnpublish`):d(n)(`scenarioEditor.tooltipPublish`),void 0,{bottom:!0}]]),N(v(d(P),{icon:`pi pi-save`,onClick:Lt},null,512),[[i,d(n)(`scenarioEditor.tooltipSave`),void 0,{bottom:!0}]])]),M(`div`,ms,[Be.value.length>0?(A(),T(d(ae),{key:Je.value,"model-value":L.value,options:[{label:d(n)(`scenarioEditor.noPreset`),value:void 0},...Be.value.map(e=>({label:e.name,value:e.id}))],"option-label":`label`,"option-value":`value`,size:`small`,placeholder:d(n)(`scenarioEditor.noPreset`),class:`scenario-editor__preset-select`,"onUpdate:modelValue":Ze},null,8,[`model-value`,`options`,`placeholder`])):o(``,!0),v(d(ae),{"model-value":I.value,options:[{label:d(n)(`scenarioEditor.traversalHierarchical`),value:`hierarchical`},{label:d(n)(`scenarioEditor.traversalTopological`),value:`topological`}],"option-label":`label`,"option-value":`value`,size:`small`,disabled:Ve.value!=null&&Ve.value.canChangeTraversalMode===!1,class:`scenario-editor__traversal-select`,"onUpdate:modelValue":Mt},null,8,[`model-value`,`options`,`disabled`]),N(M(`i`,hs,null,512),[[i,{value:d(n)(`scenarioEditor.traversalHelp`),escape:!1},void 0,{bottom:!0}]]),t[43]||=M(`div`,{class:`scenario-editor__toolbar-sep`},null,-1),N(v(d(P),{title:d(R).group,icon:`pi pi-plus`,text:``,size:`small`,severity:`secondary`,label:d(R).group,class:`scenario-editor__toolbar-btn`,onClick:ct},null,8,[`title`,`label`]),[[i,`${d(n)(`actions.add`)} ${d(R).group.toLowerCase()}`,void 0,{bottom:!0}]]),N(v(d(P),{title:d(R).node,icon:`pi pi-plus`,text:``,size:`small`,severity:`secondary`,label:d(R).node,class:`scenario-editor__toolbar-btn`,onClick:Ue},null,8,[`title`,`label`]),[[i,`${d(n)(`actions.add`)} ${d(R).node.toLowerCase()}`,void 0,{bottom:!0}]]),v(d(we),{ref_key:`addNodePopover`,ref:He},{default:j(()=>[M(`div`,gs,[M(`button`,{class:`add-node-popover__item`,onClick:t[4]||=e=>We(`ai`)},[t[41]||=M(`i`,{class:`pi pi-microchip-ai`,style:{"font-size":`1.1rem`}},null,-1),M(`div`,_s,[M(`span`,vs,`AI `+w(d(R).node),1),M(`span`,ys,w(d(n)(`scenarioEditor.aiNodeDesc`)),1)])]),M(`button`,{class:`add-node-popover__item`,onClick:t[5]||=e=>We(`ask`)},[t[42]||=M(`i`,{class:`pi pi-comment`,style:{"font-size":`1.1rem`}},null,-1),M(`div`,bs,[M(`span`,xs,`Ask `+w(d(R).node),1),M(`span`,Ss,w(d(n)(`scenarioEditor.askNodeDesc`)),1)])])])]),_:1},512),t[44]||=M(`div`,{style:{flex:`1`}},null,-1),N(v(d(P),{icon:`pi pi-sitemap`,text:``,rounded:``,size:`small`,severity:`secondary`,onClick:jt},null,512),[[i,d(n)(`scenarioEditor.tooltipAutoLayout`),void 0,{bottom:!0}]]),N(v(d(P),{icon:`pi pi-upload`,text:``,rounded:``,size:`small`,severity:`secondary`,onClick:t[6]||=e=>{Qt.value=!0,$t.value=``,en.value=``}},null,512),[[i,d(n)(`scenarioEditor.tooltipImport`),void 0,{bottom:!0}]]),N(v(d(P),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,severity:`secondary`,onClick:t[7]||=e=>Zt.value=!0},null,512),[[i,d(n)(`scenarioEditor.tooltipExport`),void 0,{bottom:!0}]]),N(v(d(P),{icon:`pi pi-sparkles`,text:``,rounded:``,size:`small`,severity:zt.value?`contrast`:`secondary`,onClick:t[8]||=e=>zt.value=!zt.value},null,8,[`severity`]),[[i,zt.value?d(n)(`scenarioEditor.tooltipCloseAI`):d(n)(`scenarioEditor.tooltipGenerateAI`),void 0,{bottom:!0}]])])]),M(`div`,Cs,[zt.value?(A(),a(`div`,ws,[M(`div`,Ts,[t[45]||=M(`i`,{class:`pi pi-sparkles`},null,-1),M(`span`,null,w(d(n)(`scenarioEditor.aiPanelTitle`)),1)]),Ut.value>0?(A(),a(`div`,Es,[M(`label`,Ds,w(d(n)(`scenarioEditor.aiProvider`)),1),v(u,{"input-id":`scened-ai-provider`,modelValue:Wt.value,"onUpdate:modelValue":t[9]||=e=>Wt.value=e,model:Gt.value,"onUpdate:model":t[10]||=e=>Gt.value=e,"storage-key":`runeya.scenario.generateAi`,"hide-when-single":!1,placeholder:d(n)(`scenarioEditor.aiSelectProvider`),class:`w-full`,disabled:K.value,onLoaded:t[11]||=e=>Ut.value=e},null,8,[`modelValue`,`model`,`placeholder`,`disabled`])])):(A(),a(`div`,Os,[t[46]||=M(`i`,{class:`pi pi-exclamation-triangle`},null,-1),M(`span`,{innerHTML:d(n)(`scenarioEditor.aiNoProvider`)},null,8,ks)])),v(d(ye),{modelValue:Bt.value,"onUpdate:modelValue":t[12]||=e=>Bt.value=e,placeholder:d(n)(`scenarioEditor.aiPromptPlaceholder`),rows:4,class:`scenario-editor__ai-textarea`,disabled:K.value,onKeydown:ce(Oe(Yt,[`ctrl`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`disabled`,`onKeydown`]),v(d(P),{label:K.value?d(n)(`scenarioEditor.aiGenerating`):B.value.length>0?d(n)(`scenarioEditor.aiModify`):d(n)(`scenarioEditor.aiGenerate`),icon:`pi pi-sparkles`,loading:K.value,disabled:!Bt.value.trim(),class:`scenario-editor__ai-btn`,onClick:Yt},null,8,[`label`,`loading`,`disabled`]),M(`p`,As,w(d(n)(`scenarioEditor.aiHint`)),1),Vt.value||K.value?(A(),a(`div`,js,[M(`div`,Ms,[K.value?(A(),a(`i`,Ns)):qt.value?(A(),a(`i`,Ps)):(A(),a(`i`,Fs)),M(`span`,null,w(K.value?d(n)(`scenarioEditor.aiGenerating`):qt.value?d(n)(`scenarioEditor.aiValidJson`):d(n)(`scenarioEditor.aiRawResponse`)),1)]),M(`pre`,Is,w(Vt.value),1)])):o(``,!0),Ht.value?(A(),a(`div`,Ls,[t[47]||=M(`i`,{class:`pi pi-times-circle`},null,-1),pe(` `+w(Ht.value),1)])):o(``,!0),qt.value?(A(),T(d(P),{key:4,label:d(n)(`scenarioEditor.aiApply`),icon:`pi pi-check`,severity:`success`,class:`scenario-editor__ai-btn`,onClick:Xt},null,8,[`label`])):o(``,!0)])):o(``,!0),M(`div`,{class:`scenario-editor__canvas`,tabindex:`0`,onKeydown:Ae},[v(d(g),{nodes:it.value,edges:st.value,"nodes-draggable":!0,"nodes-connectable":!0,"elements-selectable":!0,"delete-key-code":null,"fit-view-on-init":``,id:fc,class:`scenario-flow-canvas`,onNodeDragStop:wt,onNodeClick:Dt,onEdgeClick:Et,onPaneClick:t[13]||=e=>{V.value=void 0,H.value=void 0,G.value=void 0},onConnect:Ot,onNodesChange:Ct,onEdgesChange:St},{"node-default":j(e=>[v(y,r(h(e)),null,16)]),"node-group":j(e=>[v(b,E(e,{onUpdateLabel:bt,onResizeEnd:xt,onRemove:ft}),null,16)]),default:j(()=>[v(d(et)),v(d(Do))]),_:1},8,[`nodes`,`edges`])],32),v(xe,{name:`drawer`},{default:j(()=>[H.value||V.value?(A(),a(`div`,Rs,[M(`div`,zs,[M(`i`,{class:C([H.value?`pi pi-users`:`pi pi-microchip-ai`,`detail-header__icon`])},null,2),M(`span`,Bs,w(H.value?d(R).group:d(R).node),1),v(d(P),{icon:`pi pi-times`,text:``,rounded:``,size:`small`,class:`detail-header__close`,onClick:t[14]||=e=>{H.value=void 0,V.value=void 0}})]),H.value&&z.value.find(e=>e.id===H.value)?(A(),a(ue,{key:0},[M(`div`,Vs,[M(`div`,Hs,[M(`label`,Us,w(d(n)(`scenarioEditor.groupName`)),1),v(d(_e),{id:`scened-group-name`,"model-value":z.value.find(e=>e.id===H.value).name,class:`w-full`,size:`small`,"onUpdate:modelValue":t[15]||=e=>W(H.value,{name:e})},null,8,[`model-value`])]),M(`div`,Ws,[M(`label`,Gs,w(d(n)(`scenarioEditor.groupDescription`)),1),v(d(ye),{id:`scened-group-desc`,"model-value":z.value.find(e=>e.id===H.value).description??``,class:`w-full`,placeholder:d(n)(`scenarioEditor.groupDescriptionPlaceholder`),rows:`3`,"auto-resize":``,style:{resize:`none`},"onUpdate:modelValue":t[16]||=e=>W(H.value,{description:e||void 0})},null,8,[`model-value`,`placeholder`])]),M(`div`,Ks,[M(`label`,qs,w(d(n)(`scenarioEditor.groupAccentColor`)),1),M(`div`,Js,[M(`input`,{id:`scened-group-color`,type:`color`,value:z.value.find(e=>e.id===H.value).color??`#6366f1`,class:`detail-color-picker`,onInput:t[17]||=e=>W(H.value,{color:e.target.value})},null,40,Ys),v(d(_e),{"model-value":z.value.find(e=>e.id===H.value).color??``,placeholder:`#6366f1`,size:`small`,class:`detail-color-text`,"onUpdate:modelValue":t[18]||=e=>W(H.value,{color:e||void 0})},null,8,[`model-value`]),z.value.find(e=>e.id===H.value).color?N((A(),T(d(P),{key:0,icon:`pi pi-times`,text:``,rounded:``,size:`small`,severity:`secondary`,onClick:t[19]||=e=>W(H.value,{color:void 0})},null,512)),[[i,d(n)(`scenarioEditor.groupResetColor`)]]):o(``,!0)])])]),M(`div`,Xs,[v(d(P),{label:`${d(n)(`actions.delete`)} ${d(R).group.toLowerCase()}`,icon:`pi pi-trash`,severity:`danger`,outlined:``,size:`small`,class:`w-full`,onClick:t[20]||=e=>ft(H.value)},null,8,[`label`])])],64)):V.value&&B.value.find(e=>e.id===V.value)?(A(),a(ue,{key:1},[(A(),T(ls,{key:V.value,node:B.value.find(e=>e.id===V.value),groups:z.value,nodes:B.value,"leader-id":F.value,preset:Ve.value,"traversal-mode":I.value,onUpdate:Nt,onDelete:Pt,onSetLeader:t[21]||=e=>F.value=e},null,8,[`node`,`groups`,`nodes`,`leader-id`,`preset`,`traversal-mode`])),V.value===F.value?o(``,!0):(A(),a(`div`,Zs,[v(d(P),{label:`${d(n)(`actions.delete`)} ${d(R).node.toLowerCase()}`,icon:`pi pi-trash`,severity:`danger`,outlined:``,size:`small`,class:`w-full`,onClick:t[22]||=e=>Pt(V.value)},null,8,[`label`])]))],64)):o(``,!0)])):o(``,!0)]),_:1})])]),v(d(_),{visible:re.value,"onUpdate:visible":t[24]||=e=>re.value=e,header:d(n)(`scenarioEditor.multiParentNoticeTitle`),modal:``,style:{width:`420px`}},{footer:j(()=>[v(d(P),{label:d(n)(`actions.ok`),onClick:kt},null,8,[`label`])]),default:j(()=>[M(`p`,Qs,w(d(n)(`scenarioEditor.multiParentNoticeMessage`)),1),M(`div`,$s,[v(d(Fe),{modelValue:D.value,"onUpdate:modelValue":t[23]||=e=>D.value=e,binary:``,"input-id":`dontShowAgain`},null,8,[`modelValue`]),M(`label`,ec,w(d(n)(`scenarioEditor.dontShowAgain`)),1)])]),_:1},8,[`visible`,`header`]),v(d(_),{visible:lt.value,"onUpdate:visible":t[27]||=e=>lt.value=e,header:d(n)(`scenarioEditor.deleteGroupTitle`),modal:``,style:{width:`380px`}},{footer:j(()=>[v(d(P),{label:d(n)(`actions.cancel`),text:``,onClick:t[25]||=e=>lt.value=!1},null,8,[`label`]),v(d(P),{label:d(n)(`actions.delete`),severity:`danger`,onClick:t[26]||=()=>{lt.value=!1,pt(ut.value)}},null,8,[`label`])]),default:j(()=>[M(`p`,tc,w(d(n)(`scenarioEditor.deleteGroupMessage`,{count:dt.value})),1)]),_:1},8,[`visible`,`header`]),v(d(_),{visible:x.value,"onUpdate:visible":t[30]||=e=>x.value=e,header:d(n)(`scenarioEditor.switchToHierarchicalTitle`),modal:``,style:{width:`400px`}},{footer:j(()=>[v(d(P),{label:d(n)(`actions.cancel`),text:``,onClick:t[28]||=e=>x.value=!1},null,8,[`label`]),v(d(P),{label:d(n)(`actions.confirm`),severity:`danger`,onClick:t[29]||=()=>{x.value=!1,I.value=`hierarchical`,At()}},null,8,[`label`])]),default:j(()=>[M(`p`,nc,w(d(n)(`scenarioEditor.switchToHierarchicalMessage`)),1),M(`ul`,rc,[(A(!0),a(ue,null,Ce(te.value,e=>(A(),a(`li`,{key:`${e.from}-${e.to}`},[M(`span`,ic,w(e.from),1),t[48]||=M(`i`,{class:`pi pi-arrow-right switch-dialog__arrow`},null,-1),M(`span`,ac,w(e.to),1)]))),128))])]),_:1},8,[`visible`,`header`]),v(d(_),{visible:tt.value,"onUpdate:visible":t[33]||=e=>tt.value=e,header:nt.value===`ask`?`${d(n)(`actions.add`)} Ask ${d(R).node}`:`${d(n)(`actions.add`)} AI ${d(R).node}`,modal:``,style:{width:`360px`}},{footer:j(()=>[v(d(P),{label:d(n)(`actions.cancel`),severity:`secondary`,text:``,onClick:t[32]||=e=>tt.value=!1},null,8,[`label`]),v(d(P),{label:d(n)(`actions.add`),icon:`pi pi-user-plus`,disabled:!U.value,onClick:_t},null,8,[`label`,`disabled`])]),default:j(()=>[M(`div`,oc,[M(`label`,sc,[pe(w(d(R).group)+` `,1),t[49]||=M(`span`,{class:`required`},`*`,-1)]),v(d(ae),{"input-id":`scened-add-node-group`,modelValue:U.value,"onUpdate:modelValue":t[31]||=e=>U.value=e,options:z.value.map(e=>({label:e.name,value:e.id})),"option-label":`label`,"option-value":`value`,placeholder:`${d(n)(`actions.add`)} ${d(R).group.toLowerCase()}`,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])])]),_:1},8,[`visible`,`header`]),v(d(_),{visible:Zt.value,"onUpdate:visible":t[35]||=e=>Zt.value=e,header:d(n)(`scenarioEditor.exportHeader`),modal:``,"dismissable-mask":``,style:{width:`600px`}},{footer:j(()=>[v(d(P),{label:d(n)(`scenarioEditor.copyJson`),icon:`pi pi-copy`,onClick:nn},null,8,[`label`]),v(d(P),{label:d(n)(`actions.close`),severity:`secondary`,text:``,onClick:t[34]||=e=>Zt.value=!1},null,8,[`label`])]),default:j(()=>[M(`pre`,cc,w(tn.value),1)]),_:1},8,[`visible`,`header`]),v(d(_),{visible:Qt.value,"onUpdate:visible":t[38]||=e=>Qt.value=e,header:d(n)(`scenarioEditor.importHeader`),modal:``,style:{width:`600px`}},{footer:j(()=>[v(d(P),{label:d(n)(`actions.cancel`),severity:`secondary`,text:``,onClick:t[37]||=e=>Qt.value=!1},null,8,[`label`]),v(d(P),{label:d(n)(`actions.apply`),icon:`pi pi-check`,disabled:!$t.value.trim(),onClick:an},null,8,[`label`,`disabled`])]),default:j(()=>[v(d(ye),{modelValue:$t.value,"onUpdate:modelValue":t[36]||=e=>$t.value=e,rows:`12`,class:`w-full`,placeholder:d(n)(`scenarioEditor.importPlaceholder`)},null,8,[`modelValue`,`placeholder`]),en.value?(A(),a(`p`,lc,w(en.value),1)):o(``,!0)]),_:1},8,[`visible`,`header`]),v(d(_),{visible:Ke.value,"onUpdate:visible":t[39]||=e=>Ke.value=e,header:d(n)(`scenarioEditor.applyPresetHeader`),modal:``,style:{width:`400px`}},{footer:j(()=>[v(d(P),{label:d(n)(`actions.cancel`),severity:`secondary`,text:``,onClick:$e},null,8,[`label`]),v(d(P),{label:d(n)(`scenarioEditor.applyPresetConfirm`),icon:`pi pi-refresh`,severity:`warn`,onClick:Qe},null,8,[`label`])]),default:j(()=>[M(`p`,uc,w(d(n)(`scenarioEditor.applyPresetMessage`)),1)]),_:1},8,[`visible`,`header`])],64)}}}),[[`__scopeId`,`data-v-c6bfd8e3`]]);export{vc as default};
@@ -1 +0,0 @@
1
- import{Ga as e,Ia as t,Pi as n,Ti as r,b as i,rr as a,sr as o,ta as s}from"./index-CcIrffU_.js";import{t as c}from"./src-BRLkogf3.js";import{t as l}from"./useProjectCloudOrg-CwLTQLIO.js";var u=n({__name:`SendToChatDialog`,setup(n,{expose:u}){let{t:d}=o(),f=a(),{orgId:p,cloudUser:m}=l(),h=t(null);function g(e,t){return t?d(`sendToChat.${e}`,t):d(`sendToChat.${e}`)}function _(){f.add({severity:`success`,summary:d(`sendToChat.sent`),life:2500})}function v(e){p.value&&h.value?.open(e)}return u({open:v}),(t,n)=>(s(),r(e(c),{ref_key:`dialogRef`,ref:h,client:e(i),t:g,"current-user-id":e(m)?.id,"org-id":e(p),"lock-organization":``,onSent:_},null,8,[`client`,`current-user-id`,`org-id`]))}});export{u as t};
@@ -1 +0,0 @@
1
- import{Ci as e,Di as t,Fn as n,Ga as r,Mi as i,Pi as a,Z as o,c as s,pn as c,sr as l,ta as u,u as d,wi as f}from"./index-CcIrffU_.js";import{t as p}from"./ProcessControls-DXDyR6XX.js";var m={class:`service-controls-bar`},h={class:`service-controls-bar__left`},g={class:`service-controls-bar__right`},_=n(a({__name:`ServiceControlsBar`,props:{service:{},processes:{}},setup(n){let a=n,_=e(()=>s(a.processes)),v=e(()=>_.value?_.value.state:`stopped`),{t:y}=l(),b=o(),x=e(()=>{let e=d(a.service);return e?b.getById(e)?.config.name??e:null}),S=e(()=>{switch(v.value){case`running`:return`success`;case`starting`:return`warn`;case`errored`:return`danger`;default:return`secondary`}});return(e,a)=>(u(),t(`div`,m,[f(`div`,h,[i(r(c),{value:v.value,severity:S.value,class:`service-controls-bar__tag`},null,8,[`value`,`severity`]),i(r(c),{value:x.value??r(y)(`serviceHeader.noAgent`),severity:x.value?`secondary`:`warn`,icon:`pi pi-server`,class:`service-controls-bar__tag`},null,8,[`value`,`severity`])]),f(`div`,g,[i(p,{"agent-id":r(d)(n.service,_.value)??``,"process-id":_.value?.id??n.service.id,state:_.value?.state??`stopped`},null,8,[`agent-id`,`process-id`,`state`])])]))}}),[[`__scopeId`,`data-v-171f20af`]]);export{_ as t};
@@ -1,2 +0,0 @@
1
- import{$i as e,Bt as t,Ci as n,Cn as r,Di as i,Ei as a,Fn as o,Ga as s,Ia as c,In as l,Ln as u,Lt as d,M as f,Mi as p,Mn as m,Pi as h,Pt as g,Qn as _,Rt as v,Sa as y,Ta as b,Ti as x,Wi as S,Xt as C,Y as w,Yn as T,Z as E,Zi as D,Zn as O,_i as k,bi as A,bn as j,dt as ee,et as M,it as N,ji as P,ma as F,mn as I,nn as L,nr as te,nt as R,on as ne,p as re,pi as ie,pn as ae,pt as z,ra as B,rr as oe,sn as V,sr as H,st as se,ta as U,u as W,va as G,vi as K,wi as q,wn as J,ya as ce,yn as le,zn as Y}from"./index-CcIrffU_.js";import"./cloud-session-56bUtkSL.js";import"./src-BRLkogf3.js";import"./useServiceUrlHost-VIA3uP5-.js";import"./ProcessControls-DXDyR6XX.js";import{t as ue}from"./ServiceControlsBar-C7HrPjQI.js";import{t as de}from"./uuid-H0yY5A03.js";import{n as fe,t as X}from"./column-DQ53_qc6.js";import{n as Z}from"./plus-CNGSRnxy.js";import{t as pe}from"./checkbox-DPknldTJ.js";import"./useProjectCloudOrg-CwLTQLIO.js";import{t as me}from"./toggleswitch-d41l5g27.js";import{a as he,i as Q,n as $,r as ge,s as _e}from"./chevronup-D2Lr2GiV.js";import{a as ve,c as ye,i as be,n as xe,o as Se,r as Ce,s as we,t as Te}from"./useEnvVarAutocomplete-BDqUWoGr.js";import{t as Ee}from"./autocomplete-DobAPPYJ.js";import"./SendToChatDialog-ClXerpCU.js";import{n as De,t as Oe}from"./ProcessMetrics-CdQc_8Z0.js";import{t as ke}from"./LogViewer-C-pHXudR.js";import{t as Ae}from"./divider-DhYR4BAO.js";import{t as je}from"./settings.store-DKTQyerJ.js";import{t as Me}from"./WikiView-58u6vU3q.js";var Ne={key:0,class:`log-details`},Pe={class:`log-details__section`},Fe={class:`log-details__label`},Ie={class:`log-details__value log-details__value--box`},Le={class:`log-details__section`},Re={class:`log-details__label`},ze={class:`log-details__value log-details__value--box log-details__value--code`},Be={class:`log-details__section`},Ve={class:`log-details__label`},He={class:`log-details__value log-details__value--box`},Ue={class:`log-details__process`},We={class:`log-details__section`},Ge={class:`log-details__label`},Ke={class:`log-details__value log-details__value--box`},qe={key:0,class:`log-details__section`},Je={class:`log-details__label`},Ye={class:`log-details__value log-details__value--box log-details__value--code`,"data-testid":`log-details-cwd`},Xe={class:`log-details__section`},Ze={class:`log-details__label`},Qe={class:`log-details__value log-details__value--box`},$e={key:1,class:`log-details__section`},et={class:`log-details__label`},tt={class:`log-details__value log-details__value--box`},nt={key:2,class:`log-details__section`},rt={class:`log-details__label`},it={class:`log-details__value log-details__value--box log-details__value--code`},at=o(h({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(e,{emit:t}){let r=e,{t:o}=H(),c=re(),u=t,d=n(()=>{if(!r.log)return``;let e=new Date(r.log.timestamp);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)} ${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}:${String(e.getSeconds()).padStart(2,`0`)}`}),f=n(()=>r.log?r.log.level.charAt(0).toUpperCase()+r.log.level.slice(1):``),m=n(()=>!r.log||r.log.pid==null?o(`logDetails.notAvailable`):String(r.log.pid)),h=n(()=>r.log?c.getByService(r.log.processId)[0]?.cwd??null:null);function g(){r.log&&u(`view-process`,r.log.processId)}function _(){u(`update:visible`,!1)}return(t,n)=>(U(),x(s(l),{visible:e.visible,position:`right`,header:s(o)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":_},{default:G(()=>[e.log?(U(),i(`div`,Ne,[q(`div`,Pe,[q(`div`,Fe,b(s(o)(`logDetails.type`)),1),q(`div`,Ie,b(f.value),1)]),q(`div`,Le,[q(`div`,Re,b(s(o)(`logDetails.rawMessage`)),1),q(`div`,ze,b(e.log.raw),1)]),q(`div`,Be,[q(`div`,Ve,b(s(o)(`logDetails.serviceId`)),1),q(`div`,He,[q(`div`,Ue,[q(`span`,null,b(e.log.processId),1),p(s(Y),{label:s(o)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:g},null,8,[`label`])])])]),q(`div`,We,[q(`div`,Ge,b(s(o)(`logDetails.pid`)),1),q(`div`,Ke,b(m.value),1)]),h.value?(U(),i(`div`,qe,[q(`div`,Je,b(s(o)(`logDetails.cwd`)),1),q(`div`,Ye,b(h.value),1)])):a(``,!0),q(`div`,Xe,[q(`div`,Ze,b(s(o)(`logDetails.timestamp`)),1),q(`div`,Qe,b(d.value),1)]),e.log.stream?(U(),i(`div`,$e,[q(`div`,et,b(s(o)(`logDetails.stream`)),1),q(`div`,tt,b(e.log.stream),1)])):a(``,!0),e.log.metadata&&Object.keys(e.log.metadata).length>0?(U(),i(`div`,nt,[q(`div`,rt,b(s(o)(`logDetails.metadata`)),1),q(`div`,it,b(JSON.stringify(e.log.metadata,null,2)),1)])):a(``,!0)])):a(``,!0)]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-4e3f7abe`]]),ot=500,st=5,ct=N;function lt(e){return e+Math.random()*e*.3}function ut(t,n){let i=c([]),a=c(!1),o=null,s=0,l=null,u=r(()=>{s=0,a.value||w()}),d=[],f=null,p=c(0),h=c(0),g=0,_=0,v=null;function y(){v||=setInterval(()=>{p.value=g,h.value=_,g=0,_=0},1e3)}function b(){v&&=(clearInterval(v),null),p.value=0,h.value=0,g=0,_=0}function x(){if(f=null,d.length===0)return;let e=d;d=[],_+=e.length;let t=[...i.value,...e];t.length>ot&&(t=t.slice(t.length-ot)),i.value=t}function S(){!t.value||!n.value||(a.value=!0,o=J.process.onLog.subscribe({agentId:t.value,processId:n.value},{onData(e){let t=e;if(s=0,m(`connected`),t.some(e=>e.__clearLogBuffer)){i.value=[],d=[];return}g+=t.length,d.push(...t),f===null&&(f=requestAnimationFrame(x))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),a.value=!1,o=null,C()}}))}function C(){if(s>=st){console.warn(`[useLogStream] Max retries (${st}) reached`),m(`disconnected`);return}m(`reconnecting`);let e=lt(ct*2**s);s++,l=setTimeout(()=>{l=null,w()},e)}async function w(){if(!a.value&&!(!t.value||!n.value)){s=0;try{let e=await J.process.logs.query({agentId:t.value,processId:n.value});e.length>ot&&(e=e.slice(e.length-ot)),i.value=e,m(`connected`)}catch{}S()}}function T(){l&&=(clearTimeout(l),null),f!==null&&(cancelAnimationFrame(f),f=null),d=[],b(),o&&=(o.unsubscribe(),null),a.value=!1,s=0,i.value=[]}return F([t,n],([e,t],[n,r])=>{(e!==n||t!==r)&&(a.value&&T(),w())}),e(()=>{u(),T()}),{logs:i,isStreaming:a,start:w,stop:T,receivedPerSec:p,flushedPerSec:h,startStats:y,stopStats:b}}var dt={class:`service-terminal__toolbar`},ft={class:`service-terminal__toolbar-left`},pt={key:0,class:`pid-option`},mt={key:1,class:`pid-option`},ht={key:0,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,style:{"margin-right":`0.5rem`}},gt={key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,style:{"margin-right":`0.5rem`}},_t={class:`pid-option`},vt={key:0,class:`pi pi-list`,style:{"margin-right":`0.5rem`}},yt=[`title`],bt=[`title`],xt={class:`service-terminal__toolbar-right`},St={class:`service-terminal__content`,"data-testid":`service-terminal-content`},Ct={key:1,class:`service-terminal__shortcuts`},wt={class:`service-terminal__command-input`},Tt={class:`service-terminal__bottom`},Et=`runeya_command_history_`,Dt=50,Ot=o(h({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(t){let{t:r}=H(),o=t,l=n(()=>o.processes.find(e=>e.state===`running`||e.state===`starting`)??o.processes[0]??null),u=n(()=>l.value?.agentId??``),d=n(()=>l.value?.id??``),f=oe(),{logs:m,isStreaming:h,start:g,stop:_,receivedPerSec:v,flushedPerSec:w,startStats:T,stopStats:E}=ut(u,d),O=c(!1);F(O,e=>{e?T():E()});function k(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),O.value=!O.value)}let j=n(()=>{let e=new Map;return m.value.forEach(t=>{if(t.pid!=null){let n=e.get(t.pid);if(n)n.lastSeen=new Date(Math.max(n.lastSeen.getTime(),new Date(t.timestamp).getTime())),n.logCount++;else{let n=o.processes.find(e=>e.pid===t.pid&&(e.state===`running`||e.state===`starting`));e.set(t.pid,{pid:t.pid,lastSeen:new Date(t.timestamp),logCount:1,isActive:!!n})}}}),Array.from(e.values()).sort((e,t)=>t.lastSeen.getTime()-e.lastSeen.getTime())}),ee=n(()=>xe.value===`all`?m.value:m.value.filter(e=>e.pid===xe.value)),M=n(()=>j.value.filter(e=>e.isActive).length),N=n(()=>{let e=[{label:r(`serviceTerminal.allProcesses`),value:`all`,badge:M.value>0?`${M.value} ${r(`serviceTerminal.active`)}`:void 0,isActive:void 0}];return j.value.forEach(({pid:t,logCount:n,isActive:r})=>{e.push({label:`PID: ${t}`,value:t,badge:`${n} logs`,isActive:r})}),e});n(()=>o.processes.filter(e=>e.state===`running`).length);async function P(){if(l.value)try{await J.process.clearLogBuffer.mutate({agentId:l.value.agentId,processId:l.value.id}),m.value=[]}catch(e){f.add({severity:`error`,summary:r(`serviceTerminal.error`),detail:e.message??r(`serviceTerminal.failedToClearLogs`),life:5e3})}}let I=n(()=>o.service.shortcuts??[]),L=c(new Set);async function te(e){let t=W(o.service,l.value),n=l.value?.id??o.service.id;if(!t){f.add({severity:`warn`,summary:r(`serviceTerminal.noAgent`),detail:r(`serviceTerminal.noAgentDesc`),life:3e3});return}if(L.value.has(e.id)){try{await J.process.cancelShortcut.mutate({agentId:t,processId:n,shortcutId:e.id})}catch{}return}L.value=new Set([...L.value,e.id]);try{await J.process.executeShortcut.mutate({agentId:t,processId:n,shortcut:e})}catch(e){f.add({severity:`error`,summary:r(`serviceTerminal.shortcutFailed`),detail:e.message??r(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(L.value);t.delete(e.id),L.value=t}}let R=c(``),ne=c(new Set),re=n(()=>ne.value.size>0),ie=c(null),z=c([]),V=c(-1),se=`ls,ls -la,ls -lh,pwd,echo,echo $PWD,cat,cat package.json,grep,find,find . -name,ps,ps aux,top,htop,df -h,du -sh,tail,tail -f,tail -n 100,head,head -n 20,wc -l,curl,wget,git status,git log,git diff,git branch,npm run,npm install,npm test,npm start,yarn,yarn install,yarn test,yarn build,docker ps,docker logs,docker exec,env,printenv,whoami,hostname,date,uptime`.split(`,`),K=c([]);function ce(e){let t=e.query.toLowerCase().trim();if(!t||!R.value.trim()){K.value=[];return}let n=[...z.value.slice().reverse(),...se],r=new Set;K.value=n.filter(e=>r.has(e)?!1:(r.add(e),e.toLowerCase().includes(t))).slice(0,10)}function le(){try{let e=localStorage.getItem(Et+o.service.id);e&&(z.value=JSON.parse(e))}catch{z.value=[]}}function fe(){try{localStorage.setItem(Et+o.service.id,JSON.stringify(z.value))}catch{}}function X(e){z.value[z.value.length-1]!==e&&(z.value=[...z.value,e],z.value.length>Dt&&(z.value=z.value.slice(-Dt)),fe())}async function Z(){let e=W(o.service,l.value),t=l.value?.id??o.service.id;if(e)try{await J.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function pe(){if(!R.value.trim())return;let e=W(o.service,l.value),t=l.value?.id??o.service.id;if(!e){f.add({severity:`warn`,summary:r(`serviceTerminal.noAgent`),detail:r(`serviceTerminal.noAgentDesc`),life:3e3});return}let n=de(),i=R.value.trim();X(i),R.value=``,K.value=[],V.value=-1,ne.value=new Set([...ne.value,n]);try{await J.process.executeAdHocCommand.mutate({agentId:e,processId:t,command:i,commandId:n})}catch(e){f.add({severity:`error`,summary:r(`serviceTerminal.commandFailed`),detail:e.message??r(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(ne.value);e.delete(n),ne.value=e,S(()=>{document.querySelector(`.service-terminal__input`)?.focus()})}}function me(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),pe();return}if(e.key===`ArrowUp`){if(e.preventDefault(),z.value.length===0)return;V.value===-1?V.value=z.value.length-1:V.value>0&&V.value--,R.value=z.value[V.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),V.value===-1)return;V.value<z.value.length-1?(V.value++,R.value=z.value[V.value]||``):(V.value=-1,R.value=``)}}function he(){if(m.value.length===0)return;let e=m.value.map(e=>`[${new Date(e.timestamp).toISOString()}] ${e.level.toUpperCase().padEnd(5)} ${e.message}`),t=new Blob([e.join(`
2
- `)],{type:`text/plain`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${o.service.name}-${new Date().toISOString().slice(0,19).replaceAll(`:`,`-`)}.log`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}let Q=c(0),$=0,ge=null,_e=null;F(l,e=>{if(!(e&&(e.state===`running`||e.state===`starting`))){ge&&=(clearInterval(ge),null),_e=null,Q.value=e?.uptime??0;return}let t=e.uptime??0;e.id!==_e&&(ge&&=(clearInterval(ge),null),_e=e.id,$=e.startedAt?new Date(e.startedAt).getTime():Date.now()-t,Q.value=Date.now()-$,ge=setInterval(()=>{Q.value=Date.now()-$},1e3))},{immediate:!0});let ve=c(!0),ye=c(null),be=c(!1),xe=c(`all`),Se=c(!1);function Ce(){Se.value=!Se.value}D(()=>{le(),l.value&&g(),window.addEventListener(`keydown`,k)}),e(()=>{_(),window.removeEventListener(`keydown`,k),ge&&clearInterval(ge)});function we(e){let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}:${r.toString().padStart(2,`0`)}`}function Te(e){ye.value=e,be.value=!0}function De(e){be.value=!1,f.add({severity:`info`,summary:`Process`,detail:`Process ID: ${e}`,life:3e3})}return(e,n)=>(U(),i(`div`,{class:y([`service-terminal`,{"service-terminal--fullscreen":Se.value}]),"data-testid":`service-terminal`},[Se.value?(U(),x(ue,{key:0,service:t.service,processes:t.processes},null,8,[`service`,`processes`])):a(``,!0),q(`div`,dt,[q(`div`,ft,[p(s(Y),{label:s(r)(`serviceTerminal.logs`),severity:ve.value?`primary`:`secondary`,text:``,size:`small`,onClick:n[0]||=e=>ve.value=!0},null,8,[`label`,`severity`]),p(s(C),{modelValue:xe.value,"onUpdate:modelValue":n[1]||=e=>xe.value=e,options:N.value,"option-label":`label`,"option-value":`value`,class:`service-terminal__pid-selector`},{value:G(e=>[e.value===`all`?(U(),i(`div`,pt,[n[5]||=q(`i`,{class:`pi pi-list`,style:{"margin-right":`0.5rem`}},null,-1),q(`span`,null,b(s(r)(`serviceTerminal.allProcesses`)),1),M.value>0?(U(),x(s(ae),{key:0,value:`${M.value} ${s(r)(`serviceTerminal.active`)}`,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):a(``,!0)])):(U(),i(`div`,mt,[N.value.find(t=>t.value===e.value)?.isActive?(U(),i(`i`,ht)):(U(),i(`i`,gt)),q(`span`,null,`PID: `+b(e.value),1)]))]),option:G(e=>[q(`div`,_t,[e.option.value===`all`?(U(),i(`i`,vt)):e.option.isActive?(U(),i(`i`,{key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,title:s(r)(`serviceTerminal.running`)},null,8,yt)):(U(),i(`i`,{key:2,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,title:s(r)(`serviceTerminal.stopped`)},null,8,bt)),q(`span`,null,b(e.option.label),1),e.option.badge?(U(),x(s(ae),{key:3,value:e.option.badge,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):a(``,!0)])]),_:1},8,[`modelValue`,`options`])]),q(`div`,xt,[p(s(Y),{icon:Se.value?`pi pi-window-minimize`:`pi pi-window-maximize`,text:``,rounded:``,size:`small`,title:Se.value?s(r)(`serviceTerminal.exitFullscreen`):s(r)(`serviceTerminal.fullscreen`),onClick:Ce},null,8,[`icon`,`title`]),p(s(Y),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,title:s(r)(`serviceTerminal.downloadLogs`),disabled:s(m).length===0,onClick:he},null,8,[`title`,`disabled`]),p(s(Y),{icon:`pi pi-trash`,text:``,rounded:``,size:`small`,title:s(r)(`serviceTerminal.clearLogs`),disabled:s(m).length===0,onClick:P},null,8,[`title`,`disabled`])])]),q(`div`,St,[p(ke,{logs:ee.value,loading:!1,"received-per-sec":s(v),"flushed-per-sec":s(w),"show-stats":O.value,"service-label":o.service.label||o.service.name,onLogClick:Te},null,8,[`logs`,`received-per-sec`,`flushed-per-sec`,`show-stats`,`service-label`])]),I.value.length>0?(U(),i(`div`,Ct,[(U(!0),i(A,null,B(I.value,e=>(U(),x(s(Y),{key:e.id,label:e.label||e.command,"data-shortcut-id":e.id,class:`shortcut-badge`,icon:L.value.has(e.id)?`pi pi-stop`:`pi pi-play`,size:`small`,outlined:!L.value.has(e.id),severity:L.value.has(e.id)?`danger`:void 0,onClick:t=>te(e)},null,8,[`label`,`data-shortcut-id`,`icon`,`outlined`,`severity`,`onClick`]))),128))])):a(``,!0),q(`div`,wt,[n[6]||=q(`span`,{class:`service-terminal__prompt`,"data-testid":`terminal-prompt`},`>`,-1),p(s(Ee),{ref_key:`adHocCommandInput`,ref:ie,modelValue:R.value,"onUpdate:modelValue":n[2]||=e=>R.value=e,suggestions:K.value,class:`service-terminal__autocomplete`,"input-class":`service-terminal__input`,placeholder:s(r)(`serviceTerminal.enterCommand`),"aria-label":s(r)(`serviceTerminal.enterCommand`),disabled:!s(W)(o.service,l.value),"data-testid":`terminal-command-input`,onComplete:ce,onKeydown:me},null,8,[`modelValue`,`suggestions`,`placeholder`,`aria-label`,`disabled`]),p(s(Y),{icon:re.value?`pi pi-stop`:`pi pi-play`,severity:re.value?`danger`:void 0,size:`small`,"data-testid":`terminal-run-btn`,disabled:!s(W)(o.service,l.value)||!R.value.trim()&&!re.value,onClick:n[3]||=e=>re.value?Z():pe()},null,8,[`icon`,`severity`,`disabled`])]),q(`div`,Tt,[l.value?(U(),x(s(ae),{key:0,icon:`pi pi-server`,value:l.value.agentId.slice(0,8),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):a(``,!0),t.service.cwd?(U(),x(s(ae),{key:1,icon:`pi pi-folder`,value:t.service.cwd,severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):a(``,!0),l.value&&(l.value.state===`running`||l.value.state===`starting`)?(U(),x(s(ae),{key:2,icon:`pi pi-clock`,value:we(Q.value/1e3),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):a(``,!0)]),p(at,{visible:be.value,"onUpdate:visible":n[4]||=e=>be.value=e,log:ye.value,onViewProcess:De},null,8,[`visible`,`log`])],2))}}),[[`__scopeId`,`data-v-ce19c81b`]]),kt=5,At=N;function jt(e){return e+Math.random()*e*.3}function Mt(t,n){let r=c(null),i=c(!1),a=c(!1),o=null,s=0,l=null;async function u(){if(!i.value){a.value=!0;try{r.value=await J.process.metrics.query({agentId:t.value,processId:n.value})}catch(e){console.error(`Failed to fetch initial metrics:`,v(e))}finally{a.value=!1}d()}}function d(){i.value=!0,o=J.process.onMetrics.subscribe({agentId:t.value,processId:n.value},{onData(e){s=0,m(`connected`),r.value=e},onError(e){console.error(`Metrics stream error:`,e),i.value=!1,o=null,f()}})}function f(){if(s>=kt){console.warn(`Metrics stream: max retries (${kt}) reached, giving up`),m(`disconnected`);return}m(`reconnecting`);let e=jt(At*2**s);s++,l=setTimeout(()=>{l=null,d()},e)}function p(){l&&=(clearTimeout(l),null),o&&=(o.unsubscribe(),null),i.value=!1,s=0}return F([t,n],([e,t],[n,r])=>{(e!==n||t!==r)&&i.value&&(p(),u())}),e(()=>{p()}),{metrics:r,isStreaming:i,isLoading:a,start:u,stop:p}}var Nt={class:`service-metrics`,"data-testid":`service-metrics`},Pt={key:1,class:`service-metrics__skeleton`},Ft={class:`metric-skeleton`},It={class:`metric-skeleton`},Lt={key:2,class:`service-metrics__no-data`},Rt={key:1,class:`service-metrics__no-process`},zt=o(h({__name:`ServiceMetrics`,props:{service:{},processes:{}},setup(t){let r=t,a=n(()=>r.processes.find(e=>e.state===`running`||e.state===`starting`)??r.processes[0]??null),o=n(()=>a.value?.agentId??``),c=n(()=>a.value?.id??``),{t:l}=H(),{metrics:u,isLoading:d,start:f,stop:m}=Mt(o,c);return D(()=>{a.value&&f()}),e(()=>{m()}),(e,t)=>(U(),i(`div`,Nt,[a.value?(U(),i(A,{key:0},[s(u)?(U(),x(Oe,{key:0,cpu:s(u).cpu,memory:s(u).memory},null,8,[`cpu`,`memory`])):s(d)?(U(),i(`div`,Pt,[q(`div`,Ft,[p(s(De),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),p(s(De),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),p(s(De),{width:`100%`,height:`6px`,"border-radius":`4px`})]),q(`div`,It,[p(s(De),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),p(s(De),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),p(s(De),{width:`6rem`,height:`0.65rem`})])])):(U(),i(`div`,Lt,b(s(l)(`serviceMetrics.noData`)),1))],64)):(U(),i(`div`,Rt,[t[0]||=q(`i`,{class:`pi pi-info-circle`},null,-1),q(`span`,null,b(s(l)(`serviceMetrics.notRunning`)),1)]))]))}}),[[`__scopeId`,`data-v-94f5993b`]]),Bt=`runeya:debug`;function Vt(){if(typeof window>`u`)return null;let e=new URLSearchParams(window.location.search).get(`debug`);return e===`1`||e===`true`?!0:e===`0`||e===`false`?!1:null}var Ht=Vt();if(Ht!==null)try{localStorage.setItem(Bt,String(Ht))}catch{}function Ut(){try{return localStorage.getItem(Bt)===`true`}catch{return!1}}var Wt=c(Ut());function Gt(){function e(){Wt.value=!Wt.value;try{localStorage.setItem(Bt,String(Wt.value))}catch{}}return{isDebug:Wt,toggle:e}}var Kt={class:`config-general`},qt={class:`config-card`},Jt={class:`config-card__header`},Yt={class:`config-card`},Xt={class:`config-card__header`},Zt={class:`config-card__hint`},Qt={class:`config-card`},$t={class:`config-card`},en={class:`config-card__header`},tn={class:`config-card__hint`},nn={class:`config-card`},rn={class:`config-card__header`},an={class:`config-card__hint`},on={class:`config-card`},sn={class:`config-card__header`},cn={class:`config-card__hint`},ln={class:`config-card`},un={class:`config-card__header`},dn={class:`config-card__hint`},fn={class:`config-card`},pn={class:`config-card__header`},mn={class:`config-card__hint`},hn={class:`config-card`},gn={class:`config-card__header`},_n={class:`config-card__hint`},vn={class:`config-card__hint`},yn={class:`config-card`},bn={class:`config-card__header`},xn={class:`config-card__hint`},Sn={class:`config-meta`},Cn={class:`config-card config-card--inline`},wn={class:`config-card__header`},Tn={class:`config-card config-card--inline`},En={class:`config-card__header`},Dn=150,On=o(h({__name:`ServiceConfigGeneral`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:r}=H(),a=M(),o=d(),l=c([]);function u(e){let t=e.query.trim().toLowerCase(),n=new Set(S.value.groups);l.value=y.value.filter(e=>!n.has(e)&&(!t||e.toLowerCase().includes(t)))}function f(e,t){let n=t.trim();if(n){if(e===`ports`){let e=Number(n);if(!Number.isInteger(e)||e<1||e>65535||S.value.ports.includes(String(e)))return;S.value.ports=[...S.value.ports,String(e)]}else{if(S.value.groups.includes(n))return;S.value.groups=[...S.value.groups,n]}j()}}function m(e){let t=e.target;f(`groups`,t.value),t.value=``,l.value=[]}function h(e,t){let n=e.target;!n||typeof n.value!=`string`||!n.value.trim()||setTimeout(()=>{f(t,n.value),n.value=``},Dn)}let g=e,_=t,v=n(()=>o.projects.find(e=>e.serviceIds.includes(g.service.id)&&(e.orgId??null)===(g.service.orgId??null))??null),y=n(()=>{let e=v.value;if(!e)return[];let t=new Set;for(let n of e.serviceIds)for(let e of a.getById(n)?.groups??[])t.add(e);return[...t].sort((e,t)=>e.localeCompare(t))});function x(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}let S=c({name:g.service.name,cwd:g.service.cwd??``,ports:(g.service.ports??[]).map(String),groups:[...g.service.groups??[]],description:g.service.description??``,docsPath:g.service.docsPath??``,url:g.service.url??``,openapiUrl:g.service.openapiUrl??``,gitRemote:g.service.git?.remote??``,gitHome:g.service.git?.home??``,autoRestart:g.service.autoRestart,clearLogsOnStart:g.service.clearLogsOnStart??!1}),C=c(x(g.service.meta));F(()=>g.service,e=>{S.value={name:e.name,cwd:e.cwd??``,ports:(e.ports??[]).map(String),groups:[...e.groups??[]],description:e.description??``,docsPath:e.docsPath??``,url:e.url??``,openapiUrl:e.openapiUrl??``,gitRemote:e.git?.remote??``,gitHome:e.git?.home??``,autoRestart:e.autoRestart,clearLogsOnStart:e.clearLogsOnStart??!1},C.value=x(e.meta)});function w(){C.value=[...C.value,{key:``,value:``}]}function T(e){C.value=C.value.filter((t,n)=>n!==e)}function E(e,t,n){C.value=C.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function D(){let e={};for(let{key:t,value:n}of C.value){let r=t.trim();r&&(e[r]=n)}return{name:S.value.name,cwd:S.value.cwd||null,ports:S.value.ports.map(Number).filter(e=>e>0&&e<=65535),groups:S.value.groups,description:S.value.description,docsPath:S.value.docsPath??``,url:S.value.url,openapiUrl:S.value.openapiUrl,git:S.value.gitRemote||S.value.gitHome?{remote:S.value.gitRemote||void 0,home:S.value.gitHome||void 0}:null,autoRestart:S.value.autoRestart,clearLogsOnStart:S.value.clearLogsOnStart,meta:Object.keys(e).length>0?e:null}}let O=null;function j(){O&&clearTimeout(O),O=setTimeout(()=>{_(`save`,D()),O=null},150)}return(e,t)=>(U(),i(`div`,Kt,[q(`div`,qt,[q(`div`,Jt,[t[14]||=q(`i`,{class:`pi pi-tag`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.name`)),1)]),p(s(I),{modelValue:S.value.name,"onUpdate:modelValue":t[0]||=e=>S.value.name=e,class:`config-card__input`,onBlur:j,onKeydown:k(K(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),q(`div`,Yt,[q(`div`,Xt,[t[15]||=q(`i`,{class:`pi pi-folder`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.workingDirectory`)),1)]),p(s(I),{modelValue:S.value.cwd,"onUpdate:modelValue":t[1]||=e=>S.value.cwd=e,class:`config-card__input`,placeholder:`.`,onBlur:j,onKeydown:k(K(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),q(`small`,Zt,b(s(r)(`serviceConfigGeneral.cwdHint`)),1)]),q(`div`,Qt,[t[16]||=q(`div`,{class:`config-card__header`},[q(`i`,{class:`pi pi-file-edit`}),q(`span`,null,`Dossier de documentation (wiki)`)],-1),p(s(I),{modelValue:S.value.docsPath,"onUpdate:modelValue":t[2]||=e=>S.value.docsPath=e,class:`config-card__input`,placeholder:`(défaut : même que cwd)`,onBlur:j,onKeydown:k(K(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[17]||=q(`small`,{class:`config-card__hint`},[P(` Chemin relatif au cwd du service (ex. `),q(`code`,null,`docs`),P(`) ou absolu. Si vide, utilise le cwd. `)],-1)]),q(`div`,$t,[q(`div`,en,[t[18]||=q(`i`,{class:`pi pi-globe`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.ports`)),1)]),p(s(Ee),{modelValue:S.value.ports,"onUpdate:modelValue":t[3]||=e=>S.value.ports=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:s(r)(`serviceConfigGeneral.portsPlaceholder`),onChange:j,onBlur:t[4]||=e=>h(e,`ports`)},null,8,[`modelValue`,`placeholder`]),q(`small`,tn,b(s(r)(`serviceConfigGeneral.portsHint`)),1)]),q(`div`,nn,[q(`div`,rn,[t[19]||=q(`i`,{class:`pi pi-th-large`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.groups`)),1)]),p(s(Ee),{modelValue:S.value.groups,"onUpdate:modelValue":t[5]||=e=>S.value.groups=e,multiple:``,suggestions:l.value,"complete-on-focus":!0,class:`config-card__input`,placeholder:s(r)(`serviceConfigGeneral.groupsPlaceholder`),onComplete:u,onChange:j,onKeydown:k(m,[`enter`]),onBlur:t[6]||=e=>h(e,`groups`)},null,8,[`modelValue`,`suggestions`,`placeholder`]),q(`small`,an,b(s(r)(`serviceConfigGeneral.groupsHint`)),1)]),q(`div`,on,[q(`div`,sn,[t[20]||=q(`i`,{class:`pi pi-info-circle`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.description`)),1)]),p(s(L),{modelValue:S.value.description,"onUpdate:modelValue":t[7]||=e=>S.value.description=e,class:`config-card__input`,rows:2,onBlur:j},null,8,[`modelValue`]),q(`small`,cn,b(s(r)(`serviceConfigGeneral.descriptionHint`)),1)]),q(`div`,ln,[q(`div`,un,[t[21]||=q(`i`,{class:`pi pi-external-link`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.url`)),1)]),p(s(I),{modelValue:S.value.url,"onUpdate:modelValue":t[8]||=e=>S.value.url=e,class:`config-card__input`,placeholder:`https://...`,onBlur:j,onKeydown:k(K(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),q(`small`,dn,b(s(r)(`serviceConfigGeneral.urlHint`)),1)]),q(`div`,fn,[q(`div`,pn,[t[22]||=q(`i`,{class:`pi pi-book`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.openapiUrl`)),1)]),p(s(I),{modelValue:S.value.openapiUrl,"onUpdate:modelValue":t[9]||=e=>S.value.openapiUrl=e,class:`config-card__input`,placeholder:`https://.../swagger.json`,onBlur:j,onKeydown:k(K(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),q(`small`,mn,b(s(r)(`serviceConfigGeneral.openapiUrlHint`)),1)]),q(`div`,hn,[q(`div`,gn,[t[23]||=q(`i`,{class:`pi pi-github`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.git`)),1)]),p(s(I),{modelValue:S.value.gitRemote,"onUpdate:modelValue":t[10]||=e=>S.value.gitRemote=e,class:`config-card__input`,placeholder:`git@github.com:org/repo.git`,onBlur:j,onKeydown:k(K(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),q(`small`,_n,b(s(r)(`serviceConfigGeneral.gitRemoteHint`)),1),p(s(I),{modelValue:S.value.gitHome,"onUpdate:modelValue":t[11]||=e=>S.value.gitHome=e,class:`config-card__input`,style:{"margin-top":`0.5rem`},placeholder:`https://github.com/org/repo`,onBlur:j,onKeydown:k(K(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),q(`small`,vn,b(s(r)(`serviceConfigGeneral.gitHomeHint`)),1)]),q(`div`,yn,[q(`div`,bn,[t[24]||=q(`i`,{class:`pi pi-hashtag`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.meta`)),1)]),q(`small`,xn,b(s(r)(`serviceConfigGeneral.metaHint`)),1),q(`div`,Sn,[(U(!0),i(A,null,B(C.value,(e,t)=>(U(),i(`div`,{key:t,class:`config-meta__row`},[p(s(I),{"model-value":e.key,placeholder:s(r)(`serviceConfigGeneral.metaKeyPlaceholder`),class:`config-meta__input`,"onUpdate:modelValue":e=>E(t,`key`,e),onBlur:j,onKeydown:k(K(j,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(s(I),{"model-value":e.value,placeholder:s(r)(`serviceConfigGeneral.metaValuePlaceholder`),class:`config-meta__input config-meta__input--wide`,"onUpdate:modelValue":e=>E(t,`value`,e),onBlur:j,onKeydown:k(K(j,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(s(Y),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{T(t),j()}},null,8,[`onClick`])]))),128)),p(s(Y),{label:s(r)(`serviceConfigGeneral.addEntry`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`config-meta__add`,onClick:w},null,8,[`label`])])]),q(`div`,Cn,[q(`div`,wn,[t[25]||=q(`i`,{class:`pi pi-refresh`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.autoRestart`)),1)]),p(s(me),{modelValue:S.value.autoRestart,"onUpdate:modelValue":t[12]||=e=>S.value.autoRestart=e,onChange:j},null,8,[`modelValue`])]),q(`div`,Tn,[q(`div`,En,[t[26]||=q(`i`,{class:`pi pi-trash`},null,-1),q(`span`,null,b(s(r)(`serviceConfigGeneral.clearLogs`)),1)]),p(s(me),{modelValue:S.value.clearLogsOnStart,"onUpdate:modelValue":t[13]||=e=>S.value.clearLogsOnStart=e,onChange:j},null,8,[`modelValue`])])]))}}),[[`__scopeId`,`data-v-6fef6778`]]),kn={class:`docker-config`},An={class:`docker-config__section`},jn={for:`docker-mode-image`,class:`docker-config__section-title`},Mn={class:`docker-config__mode-toggle`},Nn={class:`docker-config__mode-option`},Pn={class:`docker-config__mode-option`},Fn={key:0,class:`docker-config__section`},In={for:`docker-image`,class:`docker-config__label`},Ln={class:`docker-config__section`},Rn={class:`docker-config__section`},zn={for:`docker-build-context`,class:`docker-config__label`},Bn={class:`docker-config__section`},Vn={for:`docker-add-build-arg`,class:`docker-config__label`},Hn={class:`docker-config__kv-list`},Un={class:`docker-config__section`},Wn={for:`docker-target-stage`,class:`docker-config__label`},Gn={class:`docker-config__section`},Kn={for:`docker-user`,class:`docker-config__section-title`},qn={class:`docker-config__section`},Jn={for:`docker-user`,class:`docker-config__label`},Yn={class:`docker-config__section`},Xn={for:`docker-network-mode`,class:`docker-config__label`},Zn={key:2,class:`docker-config__section`},Qn={for:`docker-add-port`,class:`docker-config__label`},$n={class:`docker-config__list`},er={class:`docker-config__section`},tr={for:`docker-add-volume`,class:`docker-config__label`},nr={class:`docker-config__checkbox-row`},rr={for:`mountRootpath`,class:`docker-config__checkbox-label`},ir={class:`docker-config__list`},ar={class:`docker-config__section`},or={class:`docker-config__checkbox-row`},sr={for:`useNativeCommand`,class:`docker-config__checkbox-label`},cr={key:0,class:`docker-config__shell-row`},lr={for:`docker-native-shell`,class:`docker-config__label`},ur={class:`docker-config__hint`},dr={key:1,class:`docker-config__mode-toggle docker-config__mode-toggle--indented`},fr={class:`docker-config__mode-option`},pr={class:`docker-config__mode-option`},mr={class:`docker-config__section`},hr={for:`docker-entrypoint`,class:`docker-config__label`},gr={class:`docker-config__section`},_r={for:`docker-command`,class:`docker-config__label`},vr={class:`docker-config__section`},yr={for:`docker-add-bootstrap`,class:`docker-config__section-title`},br={class:`docker-config__hint-inline`},xr={class:`docker-config__bootstrap-row`},Sr={class:`docker-config__bootstrap-field`},Cr=[`for`],wr={class:`docker-config__bootstrap-field`},Tr=[`for`],Er={class:`docker-config__bootstrap-field docker-config__bootstrap-field--wide`},Dr=[`for`],Or={class:`docker-config__bootstrap-field`},kr=[`for`],Ar={class:`docker-config__bootstrap-actions`},jr={class:`docker-config__section`},Mr=o(h({__name:`ServiceConfigDocker`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:n}=H(),r=e,o=t,l=r.service.dockerConfig??{},d=c(l.dockerfile?`build`:`image`),m=c(l.image??``),h=c(l.dockerfile??``),g=c(l.buildContext??``),_=c(Object.entries(l.buildArgs??{}).map(([e,t])=>({key:e,value:t}))),v=c(l.targetStage??``),y=c(l.networkMode??`host`),x=c([...l.ports??[]]),S=c([...l.volumes??[]]),w=c(l.mountRootpath??!1),T=c(l.entrypoint??``),E=c(l.command??``),D=c(l.user??``),O=c(l.useNativeCommand??!1),j=c(l.nativeCommandMode??`isolated`),ee=c(l.nativeShell??`sh`),M=[{label:`sh (POSIX)`,value:`sh`},{label:`bash`,value:`bash`},{label:`zsh`,value:`zsh`},{label:`ash (Alpine)`,value:`ash`}],N=c([...l.bootstrapCommands??[]]),F=c(!1),L=[{label:`Host (--network host)`,value:`host`},{label:`Bridge`,value:`bridge`}];function te(){_.value=[..._.value,{key:``,value:``}]}function R(e){_.value=_.value.filter((t,n)=>n!==e)}function ne(e,t,n){_.value=_.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function re(){x.value=[...x.value,``]}function ae(e){x.value=x.value.filter((t,n)=>n!==e)}function z(e,t){x.value=x.value.map((n,r)=>r===e?t:n)}function oe(){S.value=[...S.value,``]}function V(e){S.value=S.value.filter((t,n)=>n!==e)}function se(e,t){S.value=S.value.map((n,r)=>r===e?t:n)}function W(){N.value=[...N.value,{id:de(),label:`Bootstrap`,entrypoint:`/bin/sh`,command:`-c ""`,user:void 0}]}function J(e){N.value=N.value.filter((t,n)=>n!==e)}function le(e,t,n){N.value=N.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function ue(e,t){let n=[...N.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],N.value=n)}let fe=null;function X(){fe&&clearTimeout(fe),fe=setTimeout(()=>{let e={};for(let{key:t,value:n}of _.value)t.trim()&&(e[t.trim()]=n);o(`save`,{image:d.value===`image`&&m.value||void 0,dockerfile:d.value===`build`&&h.value||void 0,buildContext:g.value||void 0,buildArgs:e,targetStage:v.value||void 0,networkMode:y.value,ports:x.value.filter(Boolean),volumes:S.value.filter(Boolean),mountRootpath:w.value,entrypoint:T.value||void 0,command:E.value||void 0,user:D.value||void 0,useNativeCommand:O.value,nativeCommandMode:j.value,nativeShell:ee.value,bootstrapCommands:N.value}),fe=null},150)}function Z(e){J(e),X()}function me(e,t){ue(e,t),X()}function he(e){R(e),X()}function Q(e){ae(e),X()}function $(e){V(e),X()}return(e,t)=>(U(),i(`div`,kn,[q(`div`,An,[q(`label`,jn,b(s(n)(`serviceConfigDocker.imageSource`)),1),q(`div`,Mn,[q(`label`,Nn,[ce(q(`input`,{id:`docker-mode-image`,"onUpdate:modelValue":t[0]||=e=>d.value=e,type:`radio`,value:`image`,class:`docker-config__radio`,onChange:X},null,544),[[ie,d.value]]),P(` `+b(s(n)(`serviceConfigDocker.pullImage`)),1)]),q(`label`,Pn,[ce(q(`input`,{"onUpdate:modelValue":t[1]||=e=>d.value=e,type:`radio`,value:`build`,class:`docker-config__radio`,onChange:X},null,544),[[ie,d.value]]),P(` `+b(s(n)(`serviceConfigDocker.buildDockerfile`)),1)])])]),d.value===`image`?(U(),i(`div`,Fn,[q(`label`,In,b(s(n)(`serviceConfigDocker.image`)),1),p(s(I),{id:`docker-image`,modelValue:m.value,"onUpdate:modelValue":t[2]||=e=>m.value=e,placeholder:s(n)(`serviceConfigDocker.imagePlaceholder`),class:`docker-config__input`,onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):a(``,!0),d.value===`build`?(U(),i(A,{key:1},[q(`div`,Ln,[t[18]||=q(`label`,{for:`docker-dockerfile-btn`,class:`docker-config__label`},`Dockerfile`,-1),p(s(Y),{id:`docker-dockerfile-btn`,label:s(n)(`serviceConfigDocker.editDockerfile`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,size:`small`,onClick:t[3]||=e=>F.value=!0},null,8,[`label`]),p(s(u),{visible:F.value,"onUpdate:visible":t[6]||=e=>F.value=e,header:s(n)(`serviceConfigDocker.editDockerfile`),modal:``,style:{width:`800px`}},{footer:G(()=>[p(s(Y),{label:s(n)(`serviceConfigDocker.closeDockerfile`),icon:`pi pi-times`,onClick:t[5]||=()=>{F.value=!1,X()}},null,8,[`label`])]),default:G(()=>[p(f,{modelValue:h.value,"onUpdate:modelValue":t[4]||=e=>h.value=e,language:`dockerfile`,style:{height:`400px`}},null,8,[`modelValue`])]),_:1},8,[`visible`,`header`])]),q(`div`,Rn,[q(`label`,zn,b(s(n)(`serviceConfigDocker.buildContext`)),1),p(s(I),{id:`docker-build-context`,modelValue:g.value,"onUpdate:modelValue":t[7]||=e=>g.value=e,placeholder:`.`,class:`docker-config__input`,onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),q(`div`,Bn,[q(`label`,Vn,b(s(n)(`serviceConfigDocker.buildArgs`)),1),q(`div`,Hn,[(U(!0),i(A,null,B(_.value,(e,t)=>(U(),i(`div`,{key:t,class:`docker-config__kv-row`},[p(s(I),{"model-value":e.key,placeholder:s(n)(`serviceConfigDocker.argNamePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>ne(t,`key`,e),onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(s(I),{"model-value":e.value,placeholder:s(n)(`serviceConfigDocker.argValuePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>ne(t,`value`,e),onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(s(Y),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>he(t)},null,8,[`onClick`])]))),128)),p(s(Y),{id:`docker-add-build-arg`,label:s(n)(`serviceConfigDocker.addBuildArg`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:te},null,8,[`label`])])]),q(`div`,Un,[q(`label`,Wn,b(s(n)(`serviceConfigDocker.targetStage`)),1),p(s(I),{id:`docker-target-stage`,modelValue:v.value,"onUpdate:modelValue":t[8]||=e=>v.value=e,placeholder:s(n)(`serviceConfigDocker.targetStagePlaceholder`),class:`docker-config__input`,onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)):a(``,!0),p(s(Ae)),q(`div`,Gn,[q(`label`,Kn,b(s(n)(`serviceConfigDocker.runtimeConfig`)),1)]),q(`div`,qn,[q(`label`,Jn,b(s(n)(`serviceConfigDocker.userGroup`)),1),p(s(I),{id:`docker-user`,modelValue:D.value,"onUpdate:modelValue":t[9]||=e=>D.value=e,placeholder:s(n)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),q(`div`,Yn,[q(`label`,Xn,b(s(n)(`serviceConfigDocker.networkMode`)),1),p(s(C),{"input-id":`docker-network-mode`,modelValue:y.value,"onUpdate:modelValue":t[10]||=e=>y.value=e,options:L,"option-label":`label`,"option-value":`value`,class:`docker-config__select`,onChange:X},null,8,[`modelValue`])]),y.value===`bridge`?(U(),i(`div`,Zn,[q(`label`,Qn,b(s(n)(`serviceConfigDocker.portMappings`)),1),q(`div`,$n,[(U(!0),i(A,null,B(x.value,(e,t)=>(U(),i(`div`,{key:t,class:`docker-config__list-row`},[p(s(I),{"model-value":e,placeholder:s(n)(`serviceConfigDocker.portPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>z(t,e),onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(s(Y),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Q(t)},null,8,[`onClick`])]))),128)),p(s(Y),{id:`docker-add-port`,label:s(n)(`serviceConfigDocker.addPort`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:re},null,8,[`label`])])])):a(``,!0),q(`div`,er,[q(`label`,tr,b(s(n)(`serviceConfigDocker.volumes`)),1),q(`div`,nr,[p(s(pe),{modelValue:w.value,"onUpdate:modelValue":t[11]||=e=>w.value=e,binary:!0,"input-id":`mountRootpath`,onChange:X},null,8,[`modelValue`]),q(`label`,rr,b(s(n)(`serviceConfigDocker.autoMount`)),1)]),q(`div`,ir,[(U(!0),i(A,null,B(S.value,(e,t)=>(U(),i(`div`,{key:t,class:`docker-config__list-row`},[p(s(I),{"model-value":e,placeholder:s(n)(`serviceConfigDocker.volumePlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>se(t,e),onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(s(Y),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>$(t)},null,8,[`onClick`])]))),128)),p(s(Y),{id:`docker-add-volume`,label:s(n)(`serviceConfigDocker.addVolume`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:oe},null,8,[`label`])])]),p(s(Ae)),q(`div`,ar,[q(`div`,or,[p(s(pe),{modelValue:O.value,"onUpdate:modelValue":t[12]||=e=>O.value=e,binary:!0,"input-id":`useNativeCommand`,onChange:X},null,8,[`modelValue`]),q(`label`,sr,b(s(n)(`serviceConfigDocker.runNative`)),1)]),t[21]||=q(`span`,{class:`docker-config__hint`},` When enabled, the service command is executed directly inside the container (ignores CMD override below). `,-1),O.value?(U(),i(`div`,cr,[q(`label`,lr,b(s(n)(`serviceConfigDocker.shell`)),1),p(s(C),{"input-id":`docker-native-shell`,modelValue:ee.value,"onUpdate:modelValue":t[13]||=e=>ee.value=e,options:M,"option-label":`label`,"option-value":`value`,class:`docker-config__select docker-config__select--small`,editable:``,placeholder:s(n)(`serviceConfigDocker.shellPlaceholder`),onChange:X},null,8,[`modelValue`,`placeholder`]),q(`span`,ur,[P(b(s(n)(`serviceConfigDocker.shellHint`))+` (`,1),t[19]||=q(`code`,null,`shell -c '...'`,-1),t[20]||=P(`)`,-1)])])):a(``,!0),O.value?(U(),i(`div`,dr,[q(`label`,fr,[ce(q(`input`,{"onUpdate:modelValue":t[14]||=e=>j.value=e,type:`radio`,value:`isolated`,class:`docker-config__radio`,onChange:X},null,544),[[ie,j.value]]),P(` `+b(s(n)(`serviceConfigDocker.isolated`)),1)]),q(`label`,pr,[ce(q(`input`,{"onUpdate:modelValue":t[15]||=e=>j.value=e,type:`radio`,value:`shared`,class:`docker-config__radio`,onChange:X},null,544),[[ie,j.value]]),P(` `+b(s(n)(`serviceConfigDocker.shared`)),1)])])):a(``,!0)]),O.value?a(``,!0):(U(),i(A,{key:3},[t[22]||=q(`div`,{class:`docker-config__section`},[q(`label`,{for:`docker-entrypoint`,class:`docker-config__section-title`},`Override`)],-1),q(`div`,mr,[q(`label`,hr,b(s(n)(`serviceConfigDocker.entrypoint`)),1),p(s(I),{id:`docker-entrypoint`,modelValue:T.value,"onUpdate:modelValue":t[16]||=e=>T.value=e,placeholder:s(n)(`serviceConfigDocker.entrypointPlaceholder`),class:`docker-config__input`,onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),q(`div`,gr,[q(`label`,_r,b(s(n)(`serviceConfigDocker.cmdOverride`)),1),p(s(I),{id:`docker-command`,modelValue:E.value,"onUpdate:modelValue":t[17]||=e=>E.value=e,placeholder:s(n)(`serviceConfigDocker.cmdPlaceholder`),class:`docker-config__input`,onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)),p(s(Ae)),q(`div`,vr,[q(`label`,yr,[P(b(s(n)(`serviceConfigDocker.bootstrapCommands`))+` `,1),q(`span`,br,` — `+b(s(n)(`serviceConfigDocker.bootstrapCommandsHint`)),1)])]),(U(!0),i(A,null,B(N.value,(e,t)=>(U(),i(`div`,{key:e.id,class:`docker-config__bootstrap-card`},[q(`div`,xr,[q(`div`,Sr,[q(`label`,{class:`docker-config__label`,for:`docker-bootstrap-label-${t}`},`Label`,8,Cr),p(s(I),{id:`docker-bootstrap-label-${t}`,"model-value":e.label,placeholder:s(n)(`serviceConfigDocker.bootstrapLabelPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>le(t,`label`,e),onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),q(`div`,wr,[q(`label`,{class:`docker-config__label`,for:`docker-bootstrap-entrypoint-${t}`},`Entrypoint`,8,Tr),p(s(I),{id:`docker-bootstrap-entrypoint-${t}`,"model-value":e.entrypoint??``,placeholder:`/bin/sh`,class:`docker-config__input`,"onUpdate:modelValue":e=>le(t,`entrypoint`,e),onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),q(`div`,Er,[q(`label`,{class:`docker-config__label`,for:`docker-bootstrap-command-${t}`},`Command`,8,Dr),p(s(I),{id:`docker-bootstrap-command-${t}`,"model-value":e.command,placeholder:`-c "npm install"`,class:`docker-config__input`,"onUpdate:modelValue":e=>le(t,`command`,e),onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),q(`div`,Or,[q(`label`,{class:`docker-config__label`,for:`docker-bootstrap-user-${t}`},`User:Group`,8,kr),p(s(I),{id:`docker-bootstrap-user-${t}`,"model-value":e.user??``,placeholder:s(n)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,"onUpdate:modelValue":e=>le(t,`user`,e),onBlur:X,onKeydown:k(K(X,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),q(`div`,Ar,[p(s(Y),{icon:`pi pi-arrow-up`,text:``,rounded:``,size:`small`,disabled:t===0,onClick:e=>me(t,-1)},null,8,[`disabled`,`onClick`]),p(s(Y),{icon:`pi pi-arrow-down`,text:``,rounded:``,size:`small`,disabled:t===N.value.length-1,onClick:e=>me(t,1)},null,8,[`disabled`,`onClick`]),p(s(Y),{icon:`pi pi-times`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Z(t)},null,8,[`onClick`])])])]))),128)),q(`div`,jr,[p(s(Y),{id:`docker-add-bootstrap`,label:s(n)(`serviceConfigDocker.addBootstrapCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:W},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-91c13548`]]),Nr={class:`config-commands`},Pr={class:`config-commands__execution`},Fr={class:`config-card config-card--execution`},Ir={class:`config-card__header`},Lr={class:`config-card__hint`},Rr={class:`config-card config-card--execution`},zr={class:`config-card__header`},Br={key:0,class:`runner-option`},Vr={class:`runner-option`},Hr={class:`config-commands__tab-content`},Ur={key:0,class:`config-commands__empty`},Wr={class:`config-commands__row`},Gr={class:`config-commands__field`},Kr=[`for`],qr={class:`config-commands__field config-commands__field--wide`},Jr=[`for`],Yr={class:`config-commands__field`},Xr=[`for`],Zr={class:`config-commands__actions-cell`},Qr={class:`config-commands__footer`},$r={class:`config-commands__tab-content`},ei=`__inherit__`,ti=o(h({__name:`ServiceConfigCommands`,props:{service:{}},emits:[`save`,`dockerSave`],setup(e,{emit:t}){let r=e,o=t,{t:l}=H(),u=E(),d=null,f=c({agentId:r.service.agentId??ei,runner:r.service.runner});F(()=>r.service,e=>{f.value={agentId:e.agentId??ei,runner:e.runner}});let m=n(()=>[{label:l(`serviceConfigCommands.native`),value:`native`,icon:`pi pi-desktop`},{label:l(`serviceConfigCommands.docker`),value:`docker`,icon:`pi pi-box`}]),h=n(()=>m.value.find(e=>e.value===f.value.runner)?.icon??`pi pi-box`),g=n(()=>[{label:l(`serviceForm.agentInherit`),value:ei},...u.agents.map(e=>({label:`${e.config.name} (${e.status.connected?l(`serviceConfigCommands.online`):l(`serviceConfigCommands.offline`)})`,value:e.config.id}))]),_=c([...r.service.commands??[]]);F(()=>r.service,e=>{d||(_.value=[...e.commands??[]])});function v(){_.value=[..._.value,{id:de(),label:``,command:``,cwd:void 0,shell:!0}]}function x(e){_.value=_.value.filter((t,n)=>n!==e)}function S(e,t,n){_.value=_.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function w(){d&&clearTimeout(d),d=setTimeout(()=>{o(`save`,{agentId:f.value.agentId===ei?null:f.value.agentId||null,runner:f.value.runner,commands:_.value}),d=null},150)}function T(e){o(`dockerSave`,e)}function D(e){x(e),w()}return(t,n)=>(U(),i(`div`,Nr,[q(`div`,Pr,[q(`div`,Fr,[q(`div`,Ir,[n[2]||=q(`i`,{class:`pi pi-server`},null,-1),q(`span`,null,b(s(l)(`serviceConfigCommands.agent`)),1)]),p(s(C),{modelValue:f.value.agentId,"onUpdate:modelValue":n[0]||=e=>f.value.agentId=e,options:g.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:w},null,8,[`modelValue`,`options`]),q(`small`,Lr,b(s(l)(`serviceForm.agentHintEdit`)),1)]),q(`div`,Rr,[q(`div`,zr,[q(`i`,{class:y(h.value)},null,2),q(`span`,null,b(s(l)(`serviceConfigCommands.runner`)),1)]),p(s(C),{modelValue:f.value.runner,"onUpdate:modelValue":n[1]||=e=>f.value.runner=e,options:m.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:w},{value:G(e=>[e.value?(U(),i(`div`,Br,[q(`i`,{class:y(m.value.find(t=>t.value===e.value)?.icon)},null,2),q(`span`,null,b(m.value.find(t=>t.value===e.value)?.label),1)])):a(``,!0)]),option:G(e=>[q(`div`,Vr,[q(`i`,{class:y(e.option.icon)},null,2),q(`span`,null,b(e.option.label),1)])]),_:1},8,[`modelValue`,`options`])])]),p(s(_e),{value:`0`},{default:G(()=>[p(s(he),null,{default:G(()=>[p(s(Q),{value:`0`},{default:G(()=>[n[3]||=q(`i`,{class:`pi pi-desktop tab-icon`},null,-1),q(`span`,null,b(s(l)(`serviceConfigCommands.native`)),1)]),_:1}),p(s(Q),{value:`1`},{default:G(()=>[n[4]||=q(`i`,{class:`pi pi-box tab-icon`},null,-1),q(`span`,null,b(s(l)(`serviceConfigCommands.docker`)),1)]),_:1})]),_:1}),p(s(ge),null,{default:G(()=>[p(s($),{value:`0`},{default:G(()=>[q(`div`,Hr,[_.value.length===0?(U(),i(`div`,Ur,[q(`p`,null,b(s(l)(`serviceConfigCommands.noCommands`)),1)])):a(``,!0),(U(!0),i(A,null,B(_.value,(e,t)=>(U(),i(`div`,{key:e.id,class:`config-card`},[q(`div`,Wr,[q(`div`,Gr,[q(`label`,{class:`config-commands__label`,for:`cmd-label-${t}`},b(s(l)(`serviceConfigCommands.labelPlaceholder`)),9,Kr),p(s(I),{id:`cmd-label-${t}`,"model-value":e.label,placeholder:s(l)(`serviceConfigCommands.labelPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>S(t,`label`,e),onBlur:w,onKeydown:k(K(w,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),q(`div`,qr,[q(`label`,{class:`config-commands__label`,for:`cmd-command-${t}`},b(s(l)(`serviceConfigCommands.commandPlaceholder`)),9,Jr),p(s(I),{id:`cmd-command-${t}`,"model-value":e.command,placeholder:`e.g. npm start`,class:`config-card__input`,"onUpdate:modelValue":e=>S(t,`command`,e),onBlur:w,onKeydown:k(K(w,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),q(`div`,Yr,[q(`label`,{class:`config-commands__label`,for:`cmd-cwd-${t}`},`Working Dir (optional)`,8,Xr),p(s(I),{id:`cmd-cwd-${t}`,"model-value":e.cwd??``,placeholder:s(l)(`serviceConfigCommands.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>S(t,`cwd`,e),onBlur:w,onKeydown:k(K(w,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),q(`div`,Zr,[p(s(Y),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>D(t)},null,8,[`onClick`])])])]))),128)),q(`div`,Qr,[p(s(Y),{label:s(l)(`serviceConfigCommands.addCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:v},null,8,[`label`])])])]),_:1}),p(s($),{value:`1`},{default:G(()=>[q(`div`,$r,[p(Mr,{service:e.service,onSave:T},null,8,[`service`])])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-df297a71`]]),ni={class:`config-env`,"data-testid":`config-env`},ri={key:0,class:`active-env-display`},ii={class:`active-env-label`},ai={key:1,class:`inheritance-toggle`},oi={class:`inheritance-label`},si={class:`inherited-header`},ci={class:`inherited-row-key`},li={class:`preview-key`},ui={class:`value-row`},di=[`onClick`],fi=[`onClick`],pi={key:0,class:`secret-mask`},mi={key:1,class:`preview-value`},hi={class:`config-env__header`},gi={class:`config-env__title`},_i={class:`config-env__actions`},vi={key:3,class:`variables-view`},yi={key:0},bi={key:1,class:`empty-state`},xi={class:`inherited-header`},Si={class:`passthrough-info`},Ci={class:`preview-key`},wi={key:0,class:`preview-value`},Ti={key:1,class:`passthrough-undefined`},Ei={key:4,class:`empty-state`},Di={key:5,class:`empty-state`},Oi={class:`editor-container`},ki={key:0,class:`editor-env-banner`},Ai={class:`editor-env-text`},ji={class:`editor-section`,"data-testid":`variables-editor`},Mi={key:0,class:`loading-container`},Ni={key:1,class:`preview-container`},Pi={class:`preview-info`},Fi={class:`preview-key`},Ii={class:`value-row`},Li=[`onClick`],Ri=[`onClick`],zi={key:0,class:`secret-mask`},Bi={key:1,class:`preview-value`},Vi=o(h({__name:`ServiceConfigEnv`,props:{service:{},projectId:{},activeEnvironmentId:{}},setup(e){let t=e,{t:r}=H(),o=oe(),l=te(),f=ne(),m=d(),h=V(),g=re(),_=n(()=>m.getByRef({id:t.projectId,orgId:h.activeOrgId})?.activeEnvironmentId??null),v=n(()=>f.findServiceEnvironment(t.service.id,_.value??``)),S=c(!1),C=c(!1),w=c(!1),T=c(!1),E=c(null),O=c(null),{suggestions:k,meta:A,search:j}=Te(()=>O.value??E.value),M=c(new Set);function N(e){let t=new Set(M.value);t.has(e)?t.delete(e):t.add(e),M.value=t}let I=c(null);function L(e,t){navigator.clipboard.writeText(t),I.value=e,setTimeout(()=>{I.value===e&&(I.value=null)},1500)}let R=c({}),ie=c(!1),{values:B,agentEntry:se,urlHost:ce}=xe({projectId:()=>t.projectId,environmentId:()=>_.value,agentId:()=>W(t.service)??void 0}),ue=n(()=>{let e={...B.value};Object.assign(e,ee(t.service.ports)),e[`service.NAME`]=t.service.name,e[`service.ID`]=t.service.id,Object.assign(e,z(t.service,ce.value)),t.service.url&&(e[`service.BASE_URL`]=t.service.url);let n=de(se.value?.status?.cwd,se.value?.status?.home);return n&&(e[`service.CWD`]=n),e});function de(e,n){let r=(t.service.resolvedCwd??t.service.cwd??``).trim();return r?r.startsWith(`~/`)&&n?n+r.slice(1):r.includes(`$`)?null:r.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(r)?r:null:e??null}let Z=n(()=>se.value?.config.passthroughEnv??[]),pe=n(()=>Z.value.length>0);async function he(){let e=W(t.service);if(!e||!pe.value){R.value={};return}ie.value=!0;try{R.value=await J.agent.getPassthroughEnv.query({id:e})}catch{R.value={}}finally{ie.value=!1}}let Q=n(()=>Z.value.map(e=>({name:e,value:R.value[e]??null}))),$=n(()=>!v.value||!_.value?!0:v.value.parentIds?.includes(_.value)??!0);async function ge(e){if(!(!v.value||!_.value)){T.value=!0;try{await f.update({id:v.value.id,parentIds:e?[_.value]:[]}),await je()}catch(e){o.add({severity:`error`,summary:r(`serviceConfigEnv.error`),detail:e.message??r(`serviceConfigEnv.failedToUpdateInheritance`),life:5e3})}finally{T.value=!1}}}let _e=n(()=>{let e=m.getByRef({id:t.projectId,orgId:h.activeOrgId});return e?.activeEnvironmentId?f.getById(e.activeEnvironmentId):null});function Ee(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 De=n(()=>E.value?Ee(E.value.variables):[]),Oe=n(()=>{if(!v.value||!E.value?.sources)return De.value;let e=v.value.id;return De.value.filter(t=>E.value.sources[t.variableId]?.environmentId===e)}),ke=n(()=>{if(!v.value||!E.value?.sources)return[];let e=v.value.id;return De.value.filter(t=>E.value.sources[t.variableId]?.environmentId!==e)}),Ae=n(()=>{if(!E.value?.sources)return{};let e={};for(let[t,n]of Object.entries(E.value.sources))e[t]={environmentId:n.environmentId,overridden:n.overridden,...n.resolvedFrom?{resolvedFrom:n.resolvedFrom}:{},...n.overriddenBy?{overriddenBy:n.overriddenBy}:{}};return e});async function je(){if(v.value)try{E.value=await f.resolve(v.value.id)}catch(e){console.error(`Failed to resolve environment:`,e)}}async function Me(){if(_.value)try{O.value=await f.resolve(_.value)}catch{}}async function Ne(){w.value=!0;try{await Ie(),await je(),C.value=!0}catch(e){o.add({severity:`error`,summary:r(`serviceConfigEnv.error`),detail:e.message??r(`serviceConfigEnv.failedToLoadPreview`),life:5e3})}finally{w.value=!1}}let Pe=n(()=>E.value?Object.entries(E.value.env).map(([e,t])=>({key:e,value:Object.entries(ue.value).reduce((e,[t,n])=>e.replaceAll(`{{${t}}}`,n),t)})):[]);function Fe(e,t){return t?`***`:e.length>50?e.substring(0,47)+`...`:e}async function Ie(){if(v.value)return v.value;if(!_.value)return null;let e=_e.value;return e?(await f.create({name:`${t.service.name??t.service.id} — ${e.name}`,projectId:t.projectId,scope:`service`,reference:t.service.id,activateOn:_.value,parentIds:[_.value],variables:{}}),v.value):null}let Le=n(()=>{let e=g.getByService(t.service.id);return e.length>0?e[0]:null}),Re=n(()=>{let e=Le.value?.state;return e===`running`||e===`errored`});async function ze(){await Ie(),S.value=!0,await Promise.all([je(),Me()])}function Be(){if(S.value=!1,!Re.value||!Le.value)return;let e=Le.value.state===`running`?`restart`:`start`,n=t.service.name||t.service.id;l.require({message:r(e===`restart`?`serviceConfigEnv.restartConfirmMsg`:`serviceConfigEnv.startConfirmMsg`,{name:n}),header:r(e===`restart`?`serviceConfigEnv.restartTitle`:`serviceConfigEnv.startTitle`),icon:`pi pi-refresh`,acceptLabel:r(e===`restart`?`serviceConfigEnv.restartTitle`:`actions.start`),rejectLabel:r(`serviceConfigEnv.notNow`),accept:async()=>{try{let n=W(t.service);if(!n)return;e===`restart`?(await g.restart(n,t.service.id),o.add({severity:`success`,summary:r(`serviceConfigEnv.serviceRestarted`),life:3e3})):(await g.start(n,t.service.id),o.add({severity:`success`,summary:r(`serviceConfigEnv.serviceStarted`),life:3e3}))}catch(t){o.add({severity:`error`,summary:r(`serviceConfigEnv.error`),detail:t.message??r(`serviceConfigEnv.failedToAction`,{action:e}),life:5e3})}}})}return F(_e,async e=>{e&&await Promise.all([je(),Me()])}),F(()=>W(t.service),()=>{he()}),D(async()=>{t.projectId&&await f.fetchAll(t.projectId),await Promise.all([je(),Me(),he()])}),(t,n)=>(U(),i(`div`,ni,[_.value?(U(),i(`div`,ri,[q(`span`,ii,b(s(r)(`serviceConfigEnv.activeEnvironment`)),1),p(be,{"environment-id":_.value},null,8,[`environment-id`])])):a(``,!0),v.value&&_e.value?(U(),i(`div`,ai,[p(s(me),{"model-value":$.value,disabled:T.value,"onUpdate:modelValue":ge},null,8,[`model-value`,`disabled`]),q(`span`,oi,b($.value?s(r)(`serviceConfigEnv.inheritsFrom`,{name:_e.value.name}):s(r)(`serviceConfigEnv.isolated`,{name:_e.value.name})),1)])):a(``,!0),ke.value.length>0?(U(),x(s(ve),{key:2,class:`inherited-accordion`},{default:G(()=>[p(s(Se),{value:`inherited`},{default:G(()=>[p(s(we),null,{default:G(()=>[q(`span`,si,[n[6]||=q(`i`,{class:`pi pi-arrow-down-left`},null,-1),P(` `+b(s(r)(`serviceConfigEnv.inheritedVars`))+` `,1),p(s(ae),{value:String(ke.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),p(s(ye),null,{default:G(()=>[p(s(fe),{value:ke.value,size:`small`,"show-headers":!1},{default:G(()=>[p(s(X),{style:{width:`35%`}},{body:G(({data:e})=>[q(`div`,ci,[q(`code`,li,b(e.key),1),Ae.value[e.variableId]?(U(),x(be,{key:0,"environment-id":Ae.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):a(``,!0)])]),_:1}),p(s(X),{style:{width:`65%`}},{body:G(({data:e})=>[q(`span`,ui,[q(`span`,{class:`value-actions`,onClick:n[0]||=K(()=>{},[`stop`])},[e.slot.isSecret?(U(),i(`i`,{key:0,class:y([M.value.has(e.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>N(e.variableId)},null,10,di)):a(``,!0),q(`i`,{class:y([I.value===e.variableId?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>L(e.variableId,e.slot.pre+e.slot.value+e.slot.post)},null,10,fi)]),e.slot.isSecret&&!M.value.has(e.variableId)?(U(),i(`span`,pi,`***`)):(U(),i(`code`,mi,b(e.slot.pre)+b(e.slot.value)+b(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):a(``,!0),q(`div`,hi,[q(`h3`,gi,b(s(r)(`serviceConfigEnv.envVars`)),1),q(`div`,_i,[p(s(Y),{label:s(r)(`serviceConfigEnv.editVariables`),icon:`pi pi-pencil`,size:`small`,outlined:``,"data-testid":`env-edit-btn`,disabled:!_.value,onClick:ze},null,8,[`label`,`disabled`]),p(s(Y),{label:s(r)(`serviceConfigEnv.preview`),icon:`pi pi-eye`,size:`small`,outlined:``,severity:`secondary`,loading:w.value,disabled:!_.value,"data-testid":`env-preview-btn`,onClick:Ne},null,8,[`label`,`loading`,`disabled`])])]),v.value?(U(),i(`div`,vi,[Oe.value.length>0?(U(),i(`div`,yi,[p(Ce,{"environment-id":v.value.id,sources:Ae.value,"resolved-env":{...O.value?.env??{},...E.value?.env??{}},"service-builtins":ue.value,editable:!1,"show-overrides":!0,"show-override-badge":!0,"show-delete":!1,"show-add-button":!1,onVariablesChanged:je},null,8,[`environment-id`,`sources`,`resolved-env`,`service-builtins`])])):(U(),i(`div`,bi,[q(`p`,null,b(s(r)(`serviceConfigEnv.noVarsConfigured`)),1)])),pe.value?(U(),x(s(ve),{key:2,class:`inherited-accordion`},{default:G(()=>[p(s(Se),{value:`passthrough`},{default:G(()=>[p(s(we),null,{default:G(()=>[q(`span`,xi,[n[7]||=q(`i`,{class:`pi pi-globe`},null,-1),P(` `+b(s(r)(`agentPage.passthrough.titleShort`))+` `,1),p(s(ae),{value:String(Z.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),p(s(ye),null,{default:G(()=>[q(`p`,Si,b(s(r)(`serviceConfigEnv.passthroughInfo`)),1),ie.value?(U(),x(s(le),{key:0,style:{width:`24px`,height:`24px`}})):(U(),x(s(fe),{key:1,value:Q.value,stripedRows:``,size:`small`},{default:G(()=>[p(s(X),{field:`name`,header:s(r)(`common.key`),style:{width:`35%`}},{body:G(({data:e})=>[q(`code`,Ci,b(e.name),1)]),_:1},8,[`header`]),p(s(X),{header:s(r)(`common.value`),style:{width:`65%`}},{body:G(({data:e})=>[e.value===null?(U(),i(`span`,Ti,b(s(r)(`serviceConfigEnv.undefined`)),1)):(U(),i(`span`,wi,b(e.value),1))]),_:1},8,[`header`])]),_:1},8,[`value`]))]),_:1})]),_:1})]),_:1})):a(``,!0)])):_.value?(U(),i(`div`,Di,[q(`p`,null,b(s(r)(`serviceConfigEnv.noVarsConfigured`)),1)])):(U(),i(`div`,Ei,[q(`p`,null,b(s(r)(`serviceConfigEnv.noActiveEnv`)),1)])),p(s(u),{visible:S.value,header:s(r)(`serviceConfigEnv.editVarsHeader`),style:{width:`900px`},modal:``,"onUpdate:visible":n[2]||=e=>{e||Be()}},{footer:G(()=>[p(s(Y),{label:s(r)(`actions.close`),icon:`pi pi-times`,onClick:n[1]||=e=>Be()},null,8,[`label`])]),default:G(()=>[q(`div`,Oi,[_.value?(U(),i(`div`,ki,[q(`span`,Ai,b(s(r)(`serviceConfigEnv.editingVarsFor`,{name:e.service.name||e.service.id})),1),p(be,{"environment-id":_.value},null,8,[`environment-id`])])):a(``,!0),q(`div`,ji,[v.value?(U(),x(Ce,{key:0,"environment-id":v.value.id,editable:!0,sources:Ae.value,"autocomplete-enabled":!0,"autocomplete-suggestions":s(k),"autocomplete-meta":s(A),"resolved-env":{...O.value?.env??{},...E.value?.env??{}},"service-builtins":ue.value,"show-overrides":!0,onVariablesChanged:je,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:s(j)},null,8,[`environment-id`,`sources`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`,`onAutocompleteSearch`])):a(``,!0)])])]),_:1},8,[`visible`,`header`]),p(s(u),{visible:C.value,"onUpdate:visible":n[5]||=e=>C.value=e,header:s(r)(`serviceConfigEnv.previewHeader`),style:{width:`700px`},modal:``,"dismissable-mask":``,"data-testid":`env-preview-dialog`},{footer:G(()=>[p(s(Y),{label:s(r)(`actions.close`),icon:`pi pi-times`,onClick:n[4]||=e=>C.value=!1},null,8,[`label`])]),default:G(()=>[w.value?(U(),i(`div`,Mi,[p(s(le))])):E.value?(U(),i(`div`,Ni,[q(`p`,Pi,b(s(r)(`serviceConfigEnv.injectedVarsInfo`)),1),p(s(fe),{value:Pe.value,stripedRows:``,size:`small`,rows:15,paginator:Pe.value.length>15},{default:G(()=>[p(s(X),{field:`key`,header:s(r)(`common.key`),style:{width:`35%`}},{body:G(({data:e})=>[q(`code`,Fi,b(e.key),1)]),_:1},8,[`header`]),p(s(X),{header:s(r)(`common.value`),style:{width:`65%`}},{body:G(({data:e})=>[q(`span`,Ii,[q(`span`,{class:`value-actions`,onClick:n[3]||=K(()=>{},[`stop`])},[E.value.envSecrets.includes(e.key)?(U(),i(`i`,{key:0,class:y([M.value.has(`preview:`+e.key)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>N(`preview:`+e.key)},null,10,Li)):a(``,!0),q(`i`,{class:y([I.value===`preview:`+e.key?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>L(`preview:`+e.key,e.value)},null,10,Ri)]),E.value.envSecrets.includes(e.key)&&!M.value.has(`preview:`+e.key)?(U(),i(`span`,zi,`***`)):(U(),i(`span`,Bi,b(Fe(e.value,!1)),1))])]),_:1},8,[`header`])]),_:1},8,[`value`,`paginator`])])):a(``,!0)]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-4ce7f69c`]]),Hi={class:`config-health`},Ui={class:`config-card config-card--inline`},Wi={class:`config-card__header`},Gi={class:`config-card`},Ki={class:`config-card__header`},qi={class:`config-card`},Ji={class:`config-card__header`},Yi={class:`config-card`},Xi={class:`config-card__header`},Zi={class:`config-card`},Qi={class:`config-card__header`},$i={key:1,class:`config-card`},ea={class:`config-card__header`},ta={class:`config-card__hint`},na={class:`config-card`},ra={class:`config-card__header`},ia={class:`config-card`},aa={class:`config-card__header`},oa={class:`config-card`},sa={class:`config-card__header`},ca={class:`config-card`},la={class:`config-card__header`},ua=o(h({__name:`ServiceConfigHealthCheck`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,r=t,{t:o}=H(),l=c(!!n.service.healthCheck),u=c({type:n.service.healthCheck?.type??`http`,path:n.service.healthCheck?.path??`/health`,interval:n.service.healthCheck?.interval??3e4,timeout:n.service.healthCheck?.timeout??5e3,retries:n.service.healthCheck?.retries??3,method:n.service.healthCheck?.method??`GET`,expectedStatus:n.service.healthCheck?.expectedStatus??200,initialDelay:n.service.healthCheck?.initialDelay??5e3,command:n.service.healthCheck?.command??``}),d=[{label:`HTTP Request`,value:`http`},{label:`Command`,value:`command`}],f=[{label:`GET`,value:`GET`},{label:`HEAD`,value:`HEAD`},{label:`POST`,value:`POST`},{label:`PUT`,value:`PUT`}];F(()=>n.service,e=>{l.value=!!e.healthCheck,u.value={type:e.healthCheck?.type??`http`,path:e.healthCheck?.path??`/health`,interval:e.healthCheck?.interval??3e4,timeout:e.healthCheck?.timeout??5e3,retries:e.healthCheck?.retries??3,method:e.healthCheck?.method??`GET`,expectedStatus:e.healthCheck?.expectedStatus??200,initialDelay:e.healthCheck?.initialDelay??5e3,command:e.healthCheck?.command??``}});let m=null;function h(){m&&clearTimeout(m),m=setTimeout(()=>{if(!l.value)r(`save`,void 0);else{if(u.value.type===`http`&&!u.value.path?.trim()||u.value.type===`command`&&!u.value.command?.trim())return;r(`save`,{type:u.value.type,path:u.value.path,method:u.value.method,expectedStatus:u.value.expectedStatus,command:u.value.command||void 0,interval:u.value.interval,timeout:u.value.timeout,retries:u.value.retries,initialDelay:u.value.initialDelay})}m=null},150)}return(e,t)=>(U(),i(`div`,Hi,[q(`div`,Ui,[q(`div`,Wi,[t[10]||=q(`i`,{class:`pi pi-heart`},null,-1),q(`span`,null,b(s(o)(`serviceConfigHealthCheck.enable`)),1)]),p(s(me),{modelValue:l.value,"onUpdate:modelValue":t[0]||=e=>l.value=e,onChange:h},null,8,[`modelValue`])]),l.value?(U(),i(A,{key:0},[q(`div`,Gi,[q(`div`,Ki,[t[11]||=q(`i`,{class:`pi pi-cog`},null,-1),q(`span`,null,b(s(o)(`serviceConfigHealthCheck.type`)),1)]),p(s(C),{modelValue:u.value.type,"onUpdate:modelValue":t[1]||=e=>u.value.type=e,options:d,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:h},null,8,[`modelValue`]),t[12]||=q(`small`,{class:`config-card__hint`},`HTTP checks a URL endpoint; Command runs a shell command (exit 0 = healthy)`,-1)]),u.value.type===`http`?(U(),i(A,{key:0},[q(`div`,qi,[q(`div`,Ji,[t[13]||=q(`i`,{class:`pi pi-link`},null,-1),q(`span`,null,b(s(o)(`serviceConfigHealthCheck.path`)),1)]),p(s(I),{modelValue:u.value.path,"onUpdate:modelValue":t[2]||=e=>u.value.path=e,class:`config-card__input`,placeholder:`/health`,onBlur:h,onKeydown:k(K(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),q(`div`,Yi,[q(`div`,Xi,[t[14]||=q(`i`,{class:`pi pi-directions`},null,-1),q(`span`,null,b(s(o)(`serviceConfigHealthCheck.method`)),1)]),p(s(C),{modelValue:u.value.method,"onUpdate:modelValue":t[3]||=e=>u.value.method=e,options:f,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:h},null,8,[`modelValue`])]),q(`div`,Zi,[q(`div`,Qi,[t[15]||=q(`i`,{class:`pi pi-check-circle`},null,-1),q(`span`,null,b(s(o)(`serviceConfigHealthCheck.expectedStatus`)),1)]),p(s(Z),{modelValue:u.value.expectedStatus,"onUpdate:modelValue":t[4]||=e=>u.value.expectedStatus=e,class:`config-card__input`,"use-grouping":!1,min:100,max:599,onBlur:h,onKeydown:k(K(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[16]||=q(`small`,{class:`config-card__hint`},`HTTP status code to expect (default 200)`,-1)])],64)):a(``,!0),u.value.type===`command`?(U(),i(`div`,$i,[q(`div`,ea,[t[17]||=q(`i`,{class:`pi pi-code`},null,-1),q(`span`,null,b(s(o)(`serviceConfigHealthCheck.command`)),1)]),p(s(L),{modelValue:u.value.command,"onUpdate:modelValue":t[5]||=e=>u.value.command=e,class:`config-card__input`,rows:`2`,placeholder:`curl -sf http://localhost:3000/health`,"auto-resize":``,onBlur:h},null,8,[`modelValue`]),q(`small`,ta,b(s(o)(`serviceConfigHealthCheck.commandHint`)),1)])):a(``,!0),q(`div`,na,[q(`div`,ra,[t[18]||=q(`i`,{class:`pi pi-hourglass`},null,-1),q(`span`,null,b(s(o)(`serviceConfigHealthCheck.initialDelay`)),1)]),p(s(Z),{modelValue:u.value.initialDelay,"onUpdate:modelValue":t[6]||=e=>u.value.initialDelay=e,class:`config-card__input`,"use-grouping":!1,min:0,onBlur:h,onKeydown:k(K(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[19]||=q(`small`,{class:`config-card__hint`},`Wait before first health check (ms)`,-1)]),q(`div`,ia,[q(`div`,aa,[t[20]||=q(`i`,{class:`pi pi-clock`},null,-1),q(`span`,null,b(s(o)(`serviceConfigHealthCheck.interval`)),1)]),p(s(Z),{modelValue:u.value.interval,"onUpdate:modelValue":t[7]||=e=>u.value.interval=e,class:`config-card__input`,"use-grouping":!1,min:1e3,onBlur:h,onKeydown:k(K(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),q(`div`,oa,[q(`div`,sa,[t[21]||=q(`i`,{class:`pi pi-stopwatch`},null,-1),q(`span`,null,b(s(o)(`serviceConfigHealthCheck.timeout`)),1)]),p(s(Z),{modelValue:u.value.timeout,"onUpdate:modelValue":t[8]||=e=>u.value.timeout=e,class:`config-card__input`,"use-grouping":!1,min:500,onBlur:h,onKeydown:k(K(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),q(`div`,ca,[q(`div`,la,[t[22]||=q(`i`,{class:`pi pi-replay`},null,-1),q(`span`,null,b(s(o)(`serviceConfigHealthCheck.retries`)),1)]),p(s(Z),{modelValue:u.value.retries,"onUpdate:modelValue":t[9]||=e=>u.value.retries=e,class:`config-card__input`,"use-grouping":!1,min:0,max:10,onBlur:h,onKeydown:k(K(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])],64)):a(``,!0)]))}}),[[`__scopeId`,`data-v-63e32039`]]),da={class:`config-shortcuts`},fa={key:0,class:`config-shortcuts__empty`},pa={class:`config-shortcuts__row`},ma={class:`config-shortcuts__field`},ha=[`for`],ga={class:`config-shortcuts__field config-shortcuts__field--wide`},_a=[`for`],va={class:`config-shortcuts__field`},ya=[`for`],ba={class:`config-shortcuts__actions-cell`},xa={class:`config-shortcuts__footer`},Sa=o(h({__name:`ServiceConfigShortcuts`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,{t:r}=H(),o=t,l=c([...n.service.shortcuts??[]]),u=null;F(()=>n.service,e=>{u||(l.value=[...e.shortcuts??[]])});function d(){l.value=[...l.value,{id:de(),label:``,command:``,cwd:void 0}]}function f(e){l.value=l.value.filter((t,n)=>n!==e)}function m(e,t,n){l.value=l.value.map((r,i)=>i===e?{...r,[t]:n||void 0}:r)}function h(){u&&clearTimeout(u),u=setTimeout(()=>{o(`save`,l.value),u=null},150)}function g(e){f(e),h()}return(e,t)=>(U(),i(`div`,da,[l.value.length===0?(U(),i(`div`,fa,[q(`p`,null,b(s(r)(`serviceConfigShortcuts.empty`)),1)])):a(``,!0),(U(!0),i(A,null,B(l.value,(e,t)=>(U(),i(`div`,{key:e.id,class:`config-card`},[q(`div`,pa,[q(`div`,ma,[q(`label`,{class:`config-shortcuts__label`,for:`shortcut-label-${t}`},b(s(r)(`serviceConfigShortcuts.label`)),9,ha),p(s(I),{id:`shortcut-label-${t}`,"model-value":e.label,placeholder:s(r)(`serviceConfigShortcuts.labelPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-label-input`,"onUpdate:modelValue":e=>m(t,`label`,e),onBlur:h,onKeydown:k(K(h,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),q(`div`,ga,[q(`label`,{class:`config-shortcuts__label`,for:`shortcut-command-${t}`},b(s(r)(`serviceConfigShortcuts.command`)),9,_a),p(s(I),{id:`shortcut-command-${t}`,"model-value":e.command,placeholder:s(r)(`serviceConfigShortcuts.commandPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-command-input`,"onUpdate:modelValue":e=>m(t,`command`,e),onBlur:h,onKeydown:k(K(h,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),q(`div`,va,[q(`label`,{class:`config-shortcuts__label`,for:`shortcut-cwd-${t}`},b(s(r)(`serviceConfigShortcuts.workingDir`)),9,ya),p(s(I),{id:`shortcut-cwd-${t}`,"model-value":e.cwd??``,placeholder:s(r)(`serviceConfigShortcuts.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>m(t,`cwd`,e),onBlur:h,onKeydown:k(K(h,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),q(`div`,ba,[p(s(Y),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>g(t)},null,8,[`onClick`])])])]))),128)),q(`div`,xa,[p(s(Y),{label:s(r)(`serviceConfigShortcuts.addShortcut`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,"data-testid":`add-shortcut-btn`,onClick:d},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-d6ecb989`]]),Ca={class:`config-log-parsers`},wa={class:`config-card`},Ta={class:`config-card__header`},Ea={class:`config-card__hint`},Da={class:`config-card`},Oa={class:`config-card__header`},ka={class:`config-card__header-hint`},Aa={class:`config-log-parsers__order`},ja={class:`config-log-parsers__name`},Ma={key:1,class:`config-log-parsers__empty`},Na={class:`config-log-parsers__add-row`},Pa={class:`config-log-parsers__footer`},Fa=o(h({__name:`ServiceConfigLogs`,props:{service:{}},emits:[`save`],setup(t,{emit:r}){let o=t,l=r,u=_(),{t:d}=H(),f=je(),m=c([...o.service.parserIds??[]]);F(()=>o.service,e=>{m.value=[...e.parserIds??[]]});let h=n(()=>[...f.parsers].filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name))),g=n(()=>h.value.filter(e=>!m.value.includes(e.id))),v=c(m.value.map(e=>f.parsers.find(t=>t.id===e)).filter(e=>e!==void 0));F(m,e=>{let t=v.value.filter(t=>e.includes(t.id)),n=e.filter(e=>!t.find(t=>t.id===e)).map(e=>f.parsers.find(t=>t.id===e)).filter(e=>e!==void 0);v.value=[...t,...n]}),F(()=>f.parsers,()=>{v.value=m.value.map(e=>f.parsers.find(t=>t.id===e)).filter(e=>e!==void 0)});let y=c(null);function S(e){if(!e)return;let t=f.parsers.find(t=>t.id===e);t&&(m.value=[...m.value,e],v.value=[...v.value,t],y.value=null,O())}function T(e){m.value=m.value.filter(t=>t!==e),v.value=v.value.filter(t=>t.id!==e),O()}function E(){m.value=v.value.map(e=>e.id),O()}function O(){l(`save`,{parserIds:v.value.map(e=>e.id)})}return D(()=>{f.fetchParsers(),f.subscribeParsers()}),e(()=>{f.unsubscribeParsers()}),(e,t)=>(U(),i(`div`,Ca,[q(`div`,wa,[q(`div`,Ta,[t[3]||=q(`i`,{class:`pi pi-code`},null,-1),q(`span`,null,b(s(d)(`serviceConfigLogs.jsParsers`)),1)]),q(`small`,Ea,b(s(d)(`serviceConfigLogs.jsParsersHint`)),1)]),q(`div`,Da,[q(`div`,Oa,[t[4]||=q(`i`,{class:`pi pi-sort-alt`},null,-1),q(`span`,null,b(s(d)(`serviceConfigLogs.executionOrder`)),1),q(`small`,ka,b(s(d)(`serviceConfigLogs.executionOrderHint`)),1)]),v.value.length>0?(U(),x(s(w),{key:0,modelValue:v.value,"onUpdate:modelValue":t[0]||=e=>v.value=e,animation:150,handle:`.drag-handle`,class:`config-log-parsers__drag-list`,"data-testid":`log-parsers-drag-list`,onEnd:E},{default:G(()=>[(U(!0),i(A,null,B(v.value,(e,n)=>(U(),i(`div`,{key:e.id,class:`config-log-parsers__drag-row`,"data-testid":`log-parsers-drag-row`},[t[5]||=q(`span`,{class:`drag-handle`,"data-testid":`drag-handle`},[q(`i`,{class:`pi pi-bars`})],-1),q(`span`,Aa,b(n+1),1),q(`span`,ja,b(e.name),1),e.builtin?(U(),x(s(ae),{key:0,severity:`secondary`,class:`config-log-parsers__builtin-badge`},{default:G(()=>[P(b(s(d)(`serviceConfigLogs.builtin`)),1)]),_:1})):a(``,!0),e.enabled?a(``,!0):(U(),x(s(ae),{key:1,severity:`warn`,class:`config-log-parsers__disabled-badge`},{default:G(()=>[P(b(s(d)(`serviceConfigLogs.disabled`)),1)]),_:1})),p(s(Y),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,class:`config-log-parsers__delete`,onClick:t=>T(e.id)},null,8,[`onClick`])]))),128))]),_:1},8,[`modelValue`])):a(``,!0),v.value.length===0?(U(),i(`div`,Ma,b(s(d)(`serviceConfigLogs.empty`)),1)):a(``,!0),q(`div`,Na,[p(s(C),{modelValue:y.value,"onUpdate:modelValue":[t[1]||=e=>y.value=e,S],options:g.value,"option-label":`name`,"option-value":`id`,placeholder:s(d)(`serviceConfigLogs.addParser`),class:`config-log-parsers__add-select`,loading:s(f).loading,disabled:g.value.length===0},{option:G(({option:e})=>[q(`span`,null,b(e.name),1),e.builtin?(U(),x(s(ae),{key:0,severity:`secondary`,class:`ml-2`,style:{"font-size":`0.65rem`,padding:`0.1rem 0.35rem`}},{default:G(()=>[P(b(s(d)(`serviceConfigLogs.builtin`)),1)]),_:1})):a(``,!0)]),_:1},8,[`modelValue`,`options`,`placeholder`,`loading`,`disabled`])])]),q(`div`,Pa,[p(s(Y),{label:s(d)(`serviceConfigLogs.manageParsers`),icon:`pi pi-cog`,severity:`secondary`,outlined:``,size:`small`,onClick:t[2]||=e=>s(u).push({name:`settings`,query:{section:`parsers`}})},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-73b711b6`]]),Ia={class:`config-log-sources`},La={class:`config-card`},Ra={class:`config-card__header`},za={class:`config-card__hint`},Ba={key:0,class:`config-card config-card--list`},Va={class:`source-row__info`},Ha={class:`source-row__type`},Ua={class:`source-row__label`},Wa={class:`source-row__actions`},Ga={key:1,class:`config-log-sources__empty`},Ka={class:`config-log-sources__footer`},qa={class:`dialog-form`},Ja={class:`dialog-form__field`},Ya={for:`lsrc-type`,class:`dialog-form__label`},Xa={class:`dialog-form__field`},Za={for:`lsrc-path-file`,class:`dialog-form__label`},Qa={class:`dialog-form__field`},$a={for:`lsrc-encoding-file`,class:`dialog-form__label`},eo={class:`dialog-form__field dialog-form__field--row`},to={for:`lsrc-startFromEnd-file`,class:`dialog-form__label`},no={class:`dialog-form__field dialog-form__field--row`},ro={for:`lsrc-createIfNotExists-file`,class:`dialog-form__label`},io={class:`dialog-form__field`},ao={for:`lsrc-connectionString-mongo`,class:`dialog-form__label`},oo={class:`dialog-form__row`},so={class:`dialog-form__field`},co={class:`dialog-form__field`},lo={class:`dialog-form__row`},uo={class:`dialog-form__field`},fo={class:`dialog-form__field`},po={class:`dialog-form__field`},mo={class:`dialog-form__row`},ho={class:`dialog-form__field dialog-form__field--grow`},go={class:`dialog-form__field dialog-form__field--port`},_o={class:`dialog-form__row`},vo={class:`dialog-form__field`},yo={class:`dialog-form__field`},bo={class:`dialog-form__row`},xo={class:`dialog-form__field`},So={class:`dialog-form__field`},Co={class:`dialog-form__row`},wo={class:`dialog-form__field`},To={class:`dialog-form__field`},Eo={class:`dialog-form__row`},Do={class:`dialog-form__field`},Oo={class:`dialog-form__field`},ko={class:`dialog-form__field`},Ao={key:3,class:`dialog-form__hint-block`},jo=o(h({__name:`ServiceConfigLogSources`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:n}=H(),r=e,o=t,l=[{label:`Console (stdout/stderr)`,value:`console`,icon:`pi-terminal`},{label:`File`,value:`file`,icon:`pi-file`},{label:`MongoDB`,value:`mongo`,icon:`pi-database`},{label:`MySQL`,value:`mysql`,icon:`pi-database`}];function d(e){return e===`console`?{type:`console`}:e===`file`?{type:`file`,path:``,encoding:`utf-8`,startFromEnd:!0,createIfNotExists:!1}:e===`mongo`?{type:`mongo`,connectionString:``,database:``,collection:``,timestampField:`timestamp`,messageField:`message`}:{type:`mysql`,host:`localhost`,port:3306,user:``,password:``,database:``,table:``,timestampColumn:`created_at`,messageColumn:`message`,pollIntervalMs:2e3}}let f=c([...r.service.logSources??[]]);F(()=>r.service.logSources,e=>{f.value=[...e??[]]});let m=c(!1),h=c(null),g=c(d(`console`));function _(){h.value=null,g.value=d(`file`),m.value=!0}function v(e){h.value=e,g.value={...f.value[e]},m.value=!0}function x(e){g.value=d(e)}function S(){h.value===null?f.value=[...f.value,{...g.value}]:f.value=f.value.map((e,t)=>t===h.value?{...g.value}:e),m.value=!1,o(`save`,{logSources:f.value})}function w(e){f.value=f.value.filter((t,n)=>n!==e),o(`save`,{logSources:f.value})}function T(e){return e.type===`console`?`Console`:e.type===`file`?e.path||`(no path)`:e.type===`mongo`?e.database?`mongo/${e.database}/${e.collection}`:`(not configured)`:e.type===`mysql`?e.database?`mysql/${e.host}/${e.database}/${e.table}`:`(not configured)`:e.type}function E(e){return e===`console`?`pi-terminal`:e===`file`?`pi-file`:`pi-database`}return(e,t)=>(U(),i(`div`,Ia,[q(`div`,La,[q(`div`,Ra,[t[23]||=q(`i`,{class:`pi pi-inbox`},null,-1),q(`span`,null,b(s(n)(`serviceConfigLogSources.title`)),1)]),q(`small`,za,b(s(n)(`serviceConfigLogSources.hint`)),1)]),f.value.length>0?(U(),i(`div`,Ba,[(U(!0),i(A,null,B(f.value,(e,t)=>(U(),i(`div`,{key:t,class:`source-row`},[q(`i`,{class:y(`pi ${E(e.type)} source-row__icon`)},null,2),q(`div`,Va,[q(`span`,Ha,b(e.type),1),q(`span`,Ua,b(T(e)),1)]),q(`div`,Wa,[p(s(Y),{icon:`pi pi-pencil`,text:``,size:`small`,severity:`secondary`,onClick:e=>v(t)},null,8,[`onClick`]),p(s(Y),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>w(t)},null,8,[`onClick`])])]))),128))])):(U(),i(`div`,Ga,[t[24]||=q(`i`,{class:`pi pi-inbox config-log-sources__empty-icon`},null,-1),q(`p`,null,b(s(n)(`serviceConfigLogSources.empty`)),1),q(`small`,null,b(s(n)(`serviceConfigLogSources.emptyHint`)),1)])),q(`div`,Ka,[p(s(Y),{label:s(n)(`serviceConfigLogSources.addSource`),icon:`pi pi-plus`,size:`small`,onClick:_},null,8,[`label`])]),p(s(u),{visible:m.value,"onUpdate:visible":t[22]||=e=>m.value=e,header:h.value===null?s(n)(`serviceConfigLogSources.addDialog`):s(n)(`serviceConfigLogSources.editDialog`),modal:``,style:{width:`520px`}},{footer:G(()=>[p(s(Y),{label:s(n)(`serviceConfigLogSources.cancel`),severity:`secondary`,outlined:``,onClick:t[21]||=e=>m.value=!1},null,8,[`label`]),p(s(Y),{label:h.value===null?s(n)(`serviceConfigLogSources.add`):s(n)(`serviceConfigLogSources.save`),icon:`pi pi-check`,onClick:S},null,8,[`label`])]),default:G(()=>[q(`div`,qa,[q(`div`,Ja,[q(`label`,Ya,b(s(n)(`serviceConfigLogSources.type`)),1),p(s(C),{"input-id":`lsrc-type`,"model-value":g.value.type,options:l,"option-label":`label`,"option-value":`value`,class:`dialog-form__input`,"onUpdate:modelValue":x},null,8,[`model-value`])]),g.value.type===`file`?(U(),i(A,{key:0},[q(`div`,Xa,[q(`label`,Za,[P(b(s(n)(`serviceConfigLogSources.path`))+` `,1),t[25]||=q(`span`,{class:`dialog-form__required`},`*`,-1)]),p(s(I),{id:`lsrc-path-file`,modelValue:g.value.path,"onUpdate:modelValue":t[0]||=e=>g.value.path=e,class:`dialog-form__input`,placeholder:`/var/log/app.log`},null,8,[`modelValue`])]),q(`div`,Qa,[q(`label`,$a,b(s(n)(`serviceConfigLogSources.encoding`)),1),p(s(I),{id:`lsrc-encoding-file`,modelValue:g.value.encoding,"onUpdate:modelValue":t[1]||=e=>g.value.encoding=e,class:`dialog-form__input`,placeholder:`utf-8`},null,8,[`modelValue`])]),q(`div`,eo,[q(`label`,to,b(s(n)(`serviceConfigLogSources.startFromEnd`)),1),p(s(me),{"input-id":`lsrc-startFromEnd-file`,modelValue:g.value.startFromEnd,"onUpdate:modelValue":t[2]||=e=>g.value.startFromEnd=e},null,8,[`modelValue`])]),q(`div`,no,[q(`label`,ro,b(s(n)(`serviceConfigLogSources.createIfNotExists`)),1),p(s(me),{"input-id":`lsrc-createIfNotExists-file`,modelValue:g.value.createIfNotExists,"onUpdate:modelValue":t[3]||=e=>g.value.createIfNotExists=e},null,8,[`modelValue`])])],64)):g.value.type===`mongo`?(U(),i(A,{key:1},[q(`div`,io,[q(`label`,ao,[P(b(s(n)(`serviceConfigLogSources.connectionString`))+` `,1),t[26]||=q(`span`,{class:`dialog-form__required`},`*`,-1)]),p(s(I),{id:`lsrc-connectionString-mongo`,modelValue:g.value.connectionString,"onUpdate:modelValue":t[4]||=e=>g.value.connectionString=e,class:`dialog-form__input`,placeholder:`mongodb://user:pass@host:27017`,type:`password`,autocomplete:`off`},null,8,[`modelValue`])]),q(`div`,oo,[q(`div`,so,[t[27]||=q(`label`,{for:`lsrc-database-mongo`,class:`dialog-form__label`},[P(`Database `),q(`span`,{class:`dialog-form__required`},`*`)],-1),p(s(I),{id:`lsrc-database-mongo`,modelValue:g.value.database,"onUpdate:modelValue":t[5]||=e=>g.value.database=e,class:`dialog-form__input`,placeholder:`mydb`},null,8,[`modelValue`])]),q(`div`,co,[t[28]||=q(`label`,{for:`lsrc-collection-mongo`,class:`dialog-form__label`},[P(`Collection `),q(`span`,{class:`dialog-form__required`},`*`)],-1),p(s(I),{id:`lsrc-collection-mongo`,modelValue:g.value.collection,"onUpdate:modelValue":t[6]||=e=>g.value.collection=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),q(`div`,lo,[q(`div`,uo,[t[29]||=q(`label`,{for:`lsrc-timestampField-mongo`,class:`dialog-form__label`},`Timestamp field`,-1),p(s(I),{id:`lsrc-timestampField-mongo`,modelValue:g.value.timestampField,"onUpdate:modelValue":t[7]||=e=>g.value.timestampField=e,class:`dialog-form__input`,placeholder:`timestamp`},null,8,[`modelValue`])]),q(`div`,fo,[t[30]||=q(`label`,{for:`lsrc-messageField-mongo`,class:`dialog-form__label`},`Message field`,-1),p(s(I),{id:`lsrc-messageField-mongo`,modelValue:g.value.messageField,"onUpdate:modelValue":t[8]||=e=>g.value.messageField=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),q(`div`,po,[t[31]||=q(`label`,{for:`lsrc-levelField-mongo`,class:`dialog-form__label`},[P(`Level field `),q(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),p(s(I),{id:`lsrc-levelField-mongo`,modelValue:g.value.levelField,"onUpdate:modelValue":t[9]||=e=>g.value.levelField=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])])],64)):g.value.type===`mysql`?(U(),i(A,{key:2},[q(`div`,mo,[q(`div`,ho,[t[32]||=q(`label`,{for:`lsrc-host-mysql`,class:`dialog-form__label`},[P(`Host `),q(`span`,{class:`dialog-form__required`},`*`)],-1),p(s(I),{id:`lsrc-host-mysql`,modelValue:g.value.host,"onUpdate:modelValue":t[10]||=e=>g.value.host=e,class:`dialog-form__input`,placeholder:`localhost`},null,8,[`modelValue`])]),q(`div`,go,[t[33]||=q(`label`,{for:`lsrc-port-mysql`,class:`dialog-form__label`},`Port`,-1),p(s(Z),{"input-id":`lsrc-port-mysql`,modelValue:g.value.port,"onUpdate:modelValue":t[11]||=e=>g.value.port=e,min:1,max:65535,class:`dialog-form__input`},null,8,[`modelValue`])])]),q(`div`,_o,[q(`div`,vo,[t[34]||=q(`label`,{for:`lsrc-user-mysql`,class:`dialog-form__label`},[P(`User `),q(`span`,{class:`dialog-form__required`},`*`)],-1),p(s(I),{id:`lsrc-user-mysql`,modelValue:g.value.user,"onUpdate:modelValue":t[12]||=e=>g.value.user=e,class:`dialog-form__input`,placeholder:`root`},null,8,[`modelValue`])]),q(`div`,yo,[t[35]||=q(`label`,{for:`lsrc-password-mysql`,class:`dialog-form__label`},`Password`,-1),p(s(I),{id:`lsrc-password-mysql`,modelValue:g.value.password,"onUpdate:modelValue":t[13]||=e=>g.value.password=e,class:`dialog-form__input`,type:`password`,autocomplete:`new-password`},null,8,[`modelValue`])])]),q(`div`,bo,[q(`div`,xo,[t[36]||=q(`label`,{for:`lsrc-database-mysql`,class:`dialog-form__label`},[P(`Database `),q(`span`,{class:`dialog-form__required`},`*`)],-1),p(s(I),{id:`lsrc-database-mysql`,modelValue:g.value.database,"onUpdate:modelValue":t[14]||=e=>g.value.database=e,class:`dialog-form__input`,placeholder:`app_db`},null,8,[`modelValue`])]),q(`div`,So,[t[37]||=q(`label`,{for:`lsrc-table-mysql`,class:`dialog-form__label`},[P(`Table `),q(`span`,{class:`dialog-form__required`},`*`)],-1),p(s(I),{id:`lsrc-table-mysql`,modelValue:g.value.table,"onUpdate:modelValue":t[15]||=e=>g.value.table=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),q(`div`,Co,[q(`div`,wo,[t[38]||=q(`label`,{for:`lsrc-timestampColumn-mysql`,class:`dialog-form__label`},`Timestamp column`,-1),p(s(I),{id:`lsrc-timestampColumn-mysql`,modelValue:g.value.timestampColumn,"onUpdate:modelValue":t[16]||=e=>g.value.timestampColumn=e,class:`dialog-form__input`,placeholder:`created_at`},null,8,[`modelValue`])]),q(`div`,To,[t[39]||=q(`label`,{for:`lsrc-messageColumn-mysql`,class:`dialog-form__label`},`Message column`,-1),p(s(I),{id:`lsrc-messageColumn-mysql`,modelValue:g.value.messageColumn,"onUpdate:modelValue":t[17]||=e=>g.value.messageColumn=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),q(`div`,Eo,[q(`div`,Do,[t[40]||=q(`label`,{for:`lsrc-levelColumn-mysql`,class:`dialog-form__label`},[P(`Level column `),q(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),p(s(I),{id:`lsrc-levelColumn-mysql`,modelValue:g.value.levelColumn,"onUpdate:modelValue":t[18]||=e=>g.value.levelColumn=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])]),q(`div`,Oo,[t[41]||=q(`label`,{for:`lsrc-pollIntervalMs-mysql`,class:`dialog-form__label`},`Poll interval (ms)`,-1),p(s(Z),{"input-id":`lsrc-pollIntervalMs-mysql`,modelValue:g.value.pollIntervalMs,"onUpdate:modelValue":t[19]||=e=>g.value.pollIntervalMs=e,min:500,max:6e4,class:`dialog-form__input`},null,8,[`modelValue`])])]),q(`div`,ko,[t[42]||=q(`label`,{for:`lsrc-query-mysql`,class:`dialog-form__label`},[P(`Custom query `),q(`span`,{class:`dialog-form__hint`},[P(`(optional, must include `),q(`code`,null,`WHERE … > ?`),P(`)`)])],-1),p(s(I),{id:`lsrc-query-mysql`,modelValue:g.value.query,"onUpdate:modelValue":t[20]||=e=>g.value.query=e,class:`dialog-form__input`,placeholder:`SELECT * FROM logs WHERE created_at > ? ORDER BY id ASC`},null,8,[`modelValue`])])],64)):g.value.type===`console`?(U(),i(`small`,Ao,`The console source captures stdout/stderr and is always active. Adding it here has no effect unless you want to track it explicitly.`)):a(``,!0)])]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-1ceb461a`]]),Mo={class:`config-traefik`},No={class:`traefik-entry__fields`},Po=o(h({__name:`ServiceConfigTraefik`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,r=t,o=c([...n.service.localUrls??[]]),l=c(null);D(async()=>{let e=W(n.service);e&&(l.value=(await J.settings.getAgentTraefikConfig.query({agentId:e})).enabled)});let u=null;F(()=>n.service,e=>{u||(o.value=[...e.localUrls??[]])});function d(){o.value=[...o.value,{url:``,port:3e3}]}function f(e){o.value=o.value.filter((t,n)=>n!==e),h()}function m(e,t,n){o.value=o.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function h(){u&&clearTimeout(u),u=setTimeout(()=>{r(`save`,{localUrls:o.value.filter(e=>e.url.trim())}),u=null},150)}return(e,t)=>(U(),i(`div`,Mo,[l.value===!1?(U(),x(s(j),{key:0,severity:`warn`,closable:!1},{default:G(()=>[t[1]||=P(` Traefik n'est pas activé. Configurez-le dans `,-1),p(s(T),{to:{name:`settings`,query:{section:`agents`}}},{default:G(()=>[...t[0]||=[P(`Paramètres → Agents`,-1)]]),_:1}),t[2]||=P(` (bouton Traefik sur la ligne de l'agent) pour que ces URLs soient actives. `,-1)]),_:1})):a(``,!0),(U(!0),i(A,null,B(o.value,(e,t)=>(U(),i(`div`,{key:t,class:`traefik-entry`},[q(`div`,No,[p(s(I),{"model-value":e.url,class:`traefik-entry__url`,placeholder:`mon-app.local.mondomaine.com`,"onUpdate:modelValue":e=>m(t,`url`,e),onBlur:h,onKeydown:k(K(h,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`]),p(s(Z),{"model-value":e.port,class:`traefik-entry__port`,min:1,max:65535,"use-grouping":!1,placeholder:`3000`,"onUpdate:modelValue":e=>{m(t,`port`,e??3e3),h()}},null,8,[`model-value`,`onUpdate:modelValue`]),p(s(Y),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:e=>f(t)},null,8,[`onClick`])])]))),128)),p(s(Y),{icon:`pi pi-plus`,label:`Ajouter une URL`,size:`small`,outlined:``,onClick:d})]))}}),[[`__scopeId`,`data-v-4637fc30`]]),Fo={class:`config-view`,"data-testid":`config-view`},Io={class:`config-view__header`},Lo={class:`config-view__title`},Ro={class:`config-view__actions`},zo=o(h({__name:`ServiceConfigView`,props:{service:{},projectId:{}},emits:[`remove-service`],setup(e,{emit:t}){let r=e,a=t,{t:o}=H(),c=M(),l=d(),u=V(),{isDebug:f}=Gt(),m=O(),h=_(),g=[`general`,`commands`,`shortcuts`,`env`,`health`,`log-parsers`,`log-sources`,`traefik`],v=n(()=>{let e=m.query.configTab;return g.includes(e)?e:`general`});function y(e){h.replace({query:{...m.query,configTab:e}})}let x=n(()=>l.getByRef({id:r.projectId,orgId:u.activeOrgId})?.activeEnvironmentId);async function S(e,t){await t()?f.value&&console.debug(`[autosave] ${e} saved`):console.error(`[autosave] ${e} failed:`,c.error??`Save failed`)}async function C(e){await S(`General`,()=>c.update(r.service.id,e))}async function w(e){await S(`Commands`,()=>c.update(r.service.id,e))}async function T(e){await S(`Health check`,()=>c.update(r.service.id,{healthCheck:e??null}))}async function E(e){await S(`Shortcuts`,()=>c.update(r.service.id,{shortcuts:e}))}async function D(e){await S(`Docker`,()=>c.update(r.service.id,{dockerConfig:e}))}async function k(e){await S(`Log parsers`,()=>c.update(r.service.id,e))}async function A(e){await S(`Log sources`,()=>c.update(r.service.id,e))}async function j(e){await S(`Traefik`,()=>c.update(r.service.id,e))}function ee(){a(`remove-service`,r.service.id)}return(t,n)=>(U(),i(`div`,Fo,[q(`div`,Io,[q(`h2`,Lo,b(s(o)(`serviceConfigView.title`)),1),q(`div`,Ro,[p(s(Y),{label:s(o)(`serviceConfigView.remove`),icon:`pi pi-trash`,severity:`danger`,size:`small`,outlined:``,onClick:ee},null,8,[`label`])])]),p(s(_e),{value:v.value,class:`config-view__tabs`,"onUpdate:value":y},{default:G(()=>[p(s(he),null,{default:G(()=>[p(s(Q),{value:`general`,"data-testid":`tab-config`},{default:G(()=>[n[0]||=q(`i`,{class:`pi pi-cog tab-icon`},null,-1),q(`span`,null,b(s(o)(`serviceConfigView.tabGeneral`)),1)]),_:1}),p(s(Q),{value:`commands`,"data-testid":`tab-commands`},{default:G(()=>[n[1]||=q(`i`,{class:`pi pi-code tab-icon`},null,-1),q(`span`,null,b(s(o)(`serviceConfigView.tabCommands`)),1)]),_:1}),p(s(Q),{value:`shortcuts`,"data-testid":`tab-shortcuts`},{default:G(()=>[n[2]||=q(`i`,{class:`pi pi-bolt tab-icon`},null,-1),q(`span`,null,b(s(o)(`serviceConfigView.tabShortcuts`)),1)]),_:1}),p(s(Q),{value:`env`,"data-testid":`tab-env`},{default:G(()=>[n[3]||=q(`i`,{class:`pi pi-database tab-icon`},null,-1),q(`span`,null,b(s(o)(`serviceConfigView.tabEnvironment`)),1)]),_:1}),p(s(Q),{value:`health`},{default:G(()=>[n[4]||=q(`i`,{class:`pi pi-heart tab-icon`},null,-1),q(`span`,null,b(s(o)(`serviceConfigView.tabHealthCheck`)),1)]),_:1}),p(s(Q),{value:`log-parsers`,"data-testid":`tab-log-parsers`},{default:G(()=>[n[5]||=q(`i`,{class:`pi pi-list tab-icon`},null,-1),q(`span`,null,b(s(o)(`serviceConfigView.tabLogParsers`)),1)]),_:1}),p(s(Q),{value:`log-sources`},{default:G(()=>[n[6]||=q(`i`,{class:`pi pi-inbox tab-icon`},null,-1),q(`span`,null,b(s(o)(`serviceConfigView.tabLogSources`)),1)]),_:1}),p(s(Q),{value:`traefik`},{default:G(()=>[...n[7]||=[q(`i`,{class:`pi pi-server tab-icon`},null,-1),q(`span`,null,`Traefik`,-1)]]),_:1})]),_:1}),p(s(ge),null,{default:G(()=>[p(s($),{value:`general`},{default:G(()=>[p(On,{service:e.service,onSave:C},null,8,[`service`])]),_:1}),p(s($),{value:`commands`},{default:G(()=>[p(ti,{service:e.service,onSave:w,onDockerSave:D},null,8,[`service`])]),_:1}),p(s($),{value:`shortcuts`,"data-testid":`tabpanel-shortcuts`},{default:G(()=>[p(Sa,{service:e.service,onSave:E},null,8,[`service`])]),_:1}),p(s($),{value:`env`},{default:G(()=>[p(Vi,{service:e.service,"project-id":e.projectId,"active-environment-id":x.value},null,8,[`service`,`project-id`,`active-environment-id`])]),_:1}),p(s($),{value:`health`},{default:G(()=>[p(ua,{service:e.service,onSave:T},null,8,[`service`])]),_:1}),p(s($),{value:`log-parsers`,"data-testid":`tabpanel-log-parsers`},{default:G(()=>[p(Fa,{service:e.service,onSave:k},null,8,[`service`])]),_:1}),p(s($),{value:`log-sources`},{default:G(()=>[p(jo,{service:e.service,onSave:A},null,8,[`service`])]),_:1}),p(s($),{value:`traefik`},{default:G(()=>[p(Po,{service:e.service,onSave:j},null,8,[`service`])]),_:1})]),_:1})]),_:1},8,[`value`])]))}}),[[`__scopeId`,`data-v-af965568`]]),Bo={key:0,class:`service-detail`},Vo={key:1,class:`service-detail__not-found`},Ho={key:2,class:`service-detail__not-found`},Uo=o(h({__name:`ServiceDetailPage`,setup(r){let o=O(),l=_(),u=oe(),f=te(),{t:p}=H(),m=M(),h=re(),v=d(),{setServiceContext:y}=t(),S=n(()=>o.params.id);F(S,e=>y(e),{immediate:!0}),e(()=>y(null));let C=n(()=>{let e=o.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`||e===`wiki`?e:`terminal`}),w=c(null),T=c(!1),E=n(()=>m.getById(S.value)||(w.value?.id===S.value?w.value:null));F(S,async e=>{if(w.value=null,!(!e||m.getById(e))){T.value=!0;try{w.value=await m.fetchOne(e)}finally{T.value=!1}}},{immediate:!0});let D=n(()=>h.getByService(S.value)),k=n(()=>v.currentProject?.id??``);function A(e){let t=m.getById(e);f.require({message:p(`serviceDetail.deleteConfirmMessage`,{name:t?.name??e}),header:p(`serviceDetail.deleteConfirmHeader`),icon:`pi pi-exclamation-triangle`,rejectLabel:p(`actions.cancel`),acceptLabel:p(`actions.delete`),acceptProps:{severity:`danger`},accept:async()=>{await m.remove(e)&&(u.add({severity:`success`,summary:p(`serviceDetail.removed`),detail:p(`serviceDetail.deleted`),life:3e3}),l.push(`/`))}})}return(e,t)=>E.value?(U(),i(`div`,Bo,[C.value===`terminal`?(U(),x(Ot,{key:`terminal-`+S.value,service:E.value,processes:D.value},null,8,[`service`,`processes`])):C.value===`metrics`?(U(),x(zt,{key:`metrics-`+S.value,service:E.value,processes:D.value},null,8,[`service`,`processes`])):C.value===`config`?(U(),x(zo,{key:`config-`+S.value,service:E.value,"project-id":k.value,onRemoveService:A},null,8,[`service`,`project-id`])):C.value===`git`?(U(),x(g,{key:`git-`+S.value,"service-id":S.value},null,8,[`service-id`])):C.value===`wiki`?(U(),x(Me,{key:`wiki-`+S.value,scope:`service:${S.value}`},null,8,[`scope`])):a(``,!0)])):T.value?(U(),i(`div`,Vo)):(U(),i(`div`,Ho,[q(`p`,null,b(s(p)(`serviceDetail.notFound`)),1)]))}}),[[`__scopeId`,`data-v-e5220f62`]]);export{Uo as default};
@@ -1 +0,0 @@
1
- import{Ci as e,Di as t,Ei as n,Fn as r,Ga as i,Ia as a,Lt as ee,Mi as o,Pa as te,Pi as s,Qn as ne,Rt as c,Ta as l,Xt as u,Z as re,Zi as ie,Zn as ae,_i as d,bi as f,et as oe,mn as p,p as se,ra as ce,rr as le,sn as ue,sr as de,ta as m,va as fe,vi as h,wi as g,wn as _,yn as pe,zn as v}from"./index-CcIrffU_.js";import{n as y}from"./plus-CNGSRnxy.js";import{t as me}from"./fieldset-BtOjs_Hh.js";import{t as he}from"./toggleswitch-d41l5g27.js";import{t as ge}from"./autocomplete-DobAPPYJ.js";import{t as b}from"./divider-DhYR4BAO.js";var _e={class:`service-form-page`},ve={class:`page-header`},ye={key:0,class:`restart-banner`},be={key:1,class:`loading-container`},x={class:`form-section`},S={class:`form-group`},C={for:`svc-project`},w={class:`form-hint`},T={class:`form-group`},E={for:`svc-agent`},D={class:`form-hint`},O={class:`form-group`},k={for:`svc-name`},A={class:`form-hint`},j={class:`form-actions`},M={class:`form-section`},N={class:`form-row`},xe={class:`form-group flex-1`},Se={for:`svc-name-edit`},Ce={class:`form-group`,style:{width:`160px`}},we={for:`svc-runner`},Te={class:`form-group`},Ee={for:`svc-agent-edit`},De={class:`form-hint`},Oe={class:`form-row`},ke={class:`form-group flex-1`},Ae={for:`svc-cwd`},je={class:`form-group`,style:{"min-width":`200px`}},Me={for:`svc-ports`},P={class:`form-group switch-group`},Ne={for:`svc-autorestart`},Pe={class:`form-section`},Fe={class:`section-header`},Ie={key:0,class:`empty-env`},Le={class:`form-group`},Re={for:`hc-path`},ze={class:`form-row`},Be={class:`form-group flex-1`},Ve={for:`hc-interval`},He={class:`form-group flex-1`},Ue={for:`hc-timeout`},We={class:`form-group flex-1`},Ge={for:`hc-retries`},F=`__inherit__`,I=r(s({__name:`ServiceFormPage`,props:{id:{}},setup(r){let s=r,I=ne(),Ke=ae(),L=le(),R=ee(),z=oe(),B=re(),V=ue(),qe=se(),{t:H}=de(),U=e(()=>!!s.id),W=e(()=>Ke.query.projectId),G=a(!1),K=a(!1),q=a(null),J=a(null),Y=a(!1),X=te({projectId:``,agentId:F,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),Z=a([]),Je=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Ye=e(()=>R.projects.map(e=>({label:e.name,value:e.id}))),Q=e(()=>[{label:H(`serviceForm.agentInherit`),value:F},...B.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Xe(){Z.value=[...Z.value,{key:``,value:``,isSecret:!1}]}function Ze(e){Z.value=Z.value.filter((t,n)=>n!==e)}function Qe(){let e={},t=!1;for(let n of Z.value){let r=n.key.trim();r&&(e[r]={value:{value:n.value,pre:``,post:``,isSecret:n.isSecret}},t=!0)}return t?e:void 0}async function $e(){if(s.id){G.value=!0;try{let e=await _.service.get.query({id:s.id});X.agentId=e.agentId??F,X.name=e.name,X.cwd=e.cwd??``,X.ports=(e.ports??[]).map(String),X.runner=e.runner,X.autoRestart=e.autoRestart,e.healthCheck&&(X.healthCheck.enabled=!0,X.healthCheck.path=e.healthCheck.path,X.healthCheck.interval=e.healthCheck.interval,X.healthCheck.timeout=e.healthCheck.timeout,X.healthCheck.retries=e.healthCheck.retries),e.variables&&typeof e.variables==`object`&&Object.keys(e.variables).length>0&&(Z.value=Object.entries(e.variables).map(([e,t])=>{let n=t;return{key:e,value:n.value.value??``,isSecret:n.value.isSecret??!1}}))}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:c(e)??H(`serviceForm.failedToLoad`),life:5e3}),I.back()}finally{G.value=!1}}}async function $(){if(!(!U.value||!s.id||K.value||G.value)){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}K.value=!0;try{let e={agentId:X.agentId===F?null:X.agentId||null,name:X.name.trim(),cwd:X.cwd.trim()||void 0,ports:X.ports.map(Number).filter(e=>e>0&&e<=65535),runner:X.runner,autoRestart:X.autoRestart,variables:Qe(),healthCheck:X.healthCheck.enabled?{path:X.healthCheck.path,interval:X.healthCheck.interval,timeout:X.healthCheck.timeout,retries:X.healthCheck.retries}:void 0};(await _.service.update.mutate({id:s.id,...e}))?.stoppedForAgentChange?(q.value=e.agentId,J.value=s.id,L.add({severity:`warn`,summary:H(`serviceForm.saved`),detail:H(`serviceForm.agentChangedServiceStopped`),life:4e3})):L.add({severity:`success`,summary:H(`serviceForm.saved`),life:1500})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:c(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}}async function et(){if(!(!q.value||!J.value)){Y.value=!0;try{await qe.start(q.value,J.value),q.value=null,J.value=null,L.add({severity:`success`,summary:H(`serviceForm.restarted`),life:2e3})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:c(e),life:5e3})}finally{Y.value=!1}}}async function tt(){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}if(!X.projectId){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.projectRequired`),life:3e3});return}K.value=!0;try{let e=R.getByRef({id:X.projectId,orgId:V.activeOrgId})??R.getById(X.projectId),t=await z.create({name:X.name.trim(),...X.agentId&&X.agentId!==F?{agentId:X.agentId}:{},projectId:X.projectId,orgId:e?.orgId??null});if(!t)throw Error(z.error??`Failed to create service`);await R.addService(e??{id:X.projectId},t.id),L.add({severity:`success`,summary:H(`serviceForm.serviceCreated`),detail:H(`serviceForm.configureAfterCreate`),life:3e3}),I.push({name:`service-detail`,params:{id:t.id,tab:`config`}})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:c(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}return ie(async()=>{await Promise.all([R.fetchAll(),B.fetchAll()]),W.value?X.projectId=W.value:!X.projectId&&V.activeProjectId&&(X.projectId=V.activeProjectId),U.value&&await $e()}),(e,r)=>(m(),t(`div`,_e,[g(`div`,ve,[o(i(v),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:r[0]||=e=>i(I).back()}),g(`h1`,null,l(U.value?i(H)(`serviceForm.editTitle`):i(H)(`serviceForm.createTitle`)),1)]),J.value?(m(),t(`div`,ye,[g(`span`,null,l(i(H)(`serviceForm.agentChangedServiceStopped`)),1),o(i(v),{label:i(H)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:Y.value,onClick:et},null,8,[`label`,`loading`]),o(i(v),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:r[1]||=e=>{J.value=null,q.value=null}})])):n(``,!0),G.value?(m(),t(`div`,be,[o(i(pe))])):(m(),t(`form`,{key:2,class:`service-form`,onSubmit:h(tt,[`prevent`])},[U.value?(m(),t(f,{key:1},[g(`div`,M,[g(`div`,N,[g(`div`,xe,[g(`label`,Se,l(i(H)(`serviceForm.nameLabelShort`)),1),o(i(p),{id:`svc-name-edit`,modelValue:X.name,"onUpdate:modelValue":r[6]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:d(h($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,Ce,[g(`label`,we,l(i(H)(`serviceForm.runnerLabel`)),1),o(i(u),{id:`svc-runner`,modelValue:X.runner,"onUpdate:modelValue":r[7]||=e=>X.runner=e,options:Je,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),g(`div`,Te,[g(`label`,Ee,l(i(H)(`serviceForm.agentLabel`)),1),o(i(u),{id:`svc-agent-edit`,modelValue:X.agentId,"onUpdate:modelValue":r[8]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),g(`small`,De,l(i(H)(`serviceForm.agentHintEdit`)),1)]),g(`div`,Oe,[g(`div`,ke,[g(`label`,Ae,l(i(H)(`serviceForm.cwdLabel`)),1),o(i(p),{id:`svc-cwd`,modelValue:X.cwd,"onUpdate:modelValue":r[9]||=e=>X.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:d(h($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,je,[g(`label`,Me,l(i(H)(`serviceForm.portsLabel`)),1),o(i(ge),{inputId:`svc-ports`,modelValue:X.ports,"onUpdate:modelValue":r[10]||=e=>X.ports=e,multiple:``,typeahead:!1,placeholder:i(H)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),g(`div`,P,[o(i(he),{modelValue:X.autoRestart,"onUpdate:modelValue":r[11]||=e=>X.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),g(`label`,Ne,l(i(H)(`serviceForm.autoRestart`)),1)])]),o(i(b)),g(`div`,Pe,[g(`div`,Fe,[g(`h3`,null,l(i(H)(`serviceForm.envVars`)),1),o(i(v),{label:i(H)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Xe},null,8,[`label`])]),Z.value.length===0?(m(),t(`div`,Ie,[g(`small`,null,l(i(H)(`serviceForm.noEnvVars`)),1)])):n(``,!0),(m(!0),t(f,null,ce(Z.value,(e,n)=>(m(),t(`div`,{key:n,class:`env-row`},[o(i(p),{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:d(h($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),r[17]||=g(`span`,{class:`env-eq`},`=`,-1),o(i(p),{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:d(h($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),o(i(v),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Ze(n),$()}},null,8,[`onClick`])]))),128))]),o(i(b)),o(i(me),{legend:i(H)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!X.healthCheck.enabled,onToggle:r[16]||=e=>{X.healthCheck.enabled=!e.value,$()}},{default:fe(()=>[g(`div`,Le,[g(`label`,Re,l(i(H)(`serviceForm.healthCheckPath`)),1),o(i(p),{id:`hc-path`,modelValue:X.healthCheck.path,"onUpdate:modelValue":r[12]||=e=>X.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:d(h($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,ze,[g(`div`,Be,[g(`label`,Ve,l(i(H)(`serviceForm.interval`)),1),o(i(y),{id:`hc-interval`,modelValue:X.healthCheck.interval,"onUpdate:modelValue":r[13]||=e=>X.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:d(h($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,He,[g(`label`,Ue,l(i(H)(`serviceForm.timeout`)),1),o(i(y),{id:`hc-timeout`,modelValue:X.healthCheck.timeout,"onUpdate:modelValue":r[14]||=e=>X.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:d(h($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,We,[g(`label`,Ge,l(i(H)(`serviceForm.retries`)),1),o(i(y),{id:`hc-retries`,modelValue:X.healthCheck.retries,"onUpdate:modelValue":r[15]||=e=>X.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:d(h($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),o(i(b))],64)):(m(),t(f,{key:0},[g(`div`,x,[g(`div`,S,[g(`label`,C,l(i(H)(`serviceForm.projectLabel`)),1),o(i(u),{id:`svc-project`,modelValue:X.projectId,"onUpdate:modelValue":r[2]||=e=>X.projectId=e,options:Ye.value,optionLabel:`label`,optionValue:`value`,placeholder:i(H)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),g(`small`,w,l(i(H)(`serviceForm.projectHint`)),1)]),g(`div`,T,[g(`label`,E,l(i(H)(`serviceForm.agentLabel`)),1),o(i(u),{id:`svc-agent`,modelValue:X.agentId,"onUpdate:modelValue":r[3]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,placeholder:i(H)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),g(`small`,D,l(i(H)(`serviceForm.agentHint`)),1)]),g(`div`,O,[g(`label`,k,l(i(H)(`serviceForm.nameLabel`)),1),o(i(p),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":r[4]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),g(`small`,A,l(i(H)(`serviceForm.nameConfigHint`)),1)])]),o(i(b)),g(`div`,j,[o(i(v),{label:i(H)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:r[5]||=e=>i(I).back()},null,8,[`label`]),o(i(v),{label:i(H)(`serviceForm.create`),icon:`pi pi-check`,loading:K.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-3efdfa72`]]);export{I as default};