@runeya/runeya 2.0.116 → 2.0.117

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 (256) hide show
  1. package/{chat-AOL2TMLR.js → chat-QLIFNGA2.js} +3 -3
  2. package/{chunk-VPANMGAI.js → chunk-F7A7XH3N.js} +50 -3
  3. package/chunk-F7A7XH3N.js.map +1 -0
  4. package/{chunk-44XAJ3MK.js → chunk-K3H5WJRQ.js} +13 -2
  5. package/chunk-K3H5WJRQ.js.map +1 -0
  6. package/{companion-YYXSCN3H.js → companion-RLSRXTNO.js} +2 -2
  7. package/index.js +3 -3
  8. package/package.json +1 -1
  9. package/{src-S5TDMHPI.js → src-Q2AWI57U.js} +10 -5
  10. package/src-Q2AWI57U.js.map +1 -0
  11. package/web/assets/AgentScalarChatInterface.vue-DVTbGHHm.js +13 -0
  12. package/web/assets/AgentTerminalPage-BK1JBjF7.js +1 -0
  13. package/web/assets/AiChatPage-CzLTf0Dh.js +1 -0
  14. package/web/assets/AppLayout-DIpd73gZ.js +1 -0
  15. package/web/assets/AuditPage-DDemuQXR.js +1 -0
  16. package/web/assets/CloudAccountPage-BW4UfXnM.js +1 -0
  17. package/web/assets/CloudAccountPage-f9nRZeNR.js +1 -0
  18. package/web/assets/CloudMessagingPage-2gjGcJwo.js +2 -0
  19. package/web/assets/DashboardPage-2qCxx4Sm.js +164 -0
  20. package/web/assets/DirectoryPickerDialog-DxxSRtWi.js +1 -0
  21. package/web/assets/{EditorIcon-DJxKo-Bu.js → EditorIcon-DoAjQCrb.js} +2 -2
  22. package/web/assets/{EnvironmentForm-1NSDqR4s.js → EnvironmentForm-CgsN_8EO.js} +2 -2
  23. package/web/assets/EnvironmentFormPage-Cg6oojrW.js +1 -0
  24. package/web/assets/EnvironmentListPage-DgQaxPct.js +1 -0
  25. package/web/assets/KanbanBoardPage-C2zkv8-3.js +4 -0
  26. package/web/assets/KanbanBoardPage-fEP3w_nz.css +1 -0
  27. package/web/assets/KanbanListPage-nH2wjGBV.js +1 -0
  28. package/web/assets/LaunchProjectPage-CGr9lWsC.js +1 -0
  29. package/web/assets/LaunchServicesPage-CLGbYznW.js +1 -0
  30. package/web/assets/LogViewer-CxPBFVR1.js +3 -0
  31. package/web/assets/OrgKeyPrompt-bIIIdk_5.js +1 -0
  32. package/web/assets/{ProcessControls-B_21fX0o.js → ProcessControls-BAThUaVo.js} +1 -1
  33. package/web/assets/ProcessDetailPage-Uh2TiAAJ.js +1 -0
  34. package/web/assets/{ProcessMetrics-jxJHtg7z.js → ProcessMetrics-BnfF7Esx.js} +2 -2
  35. package/web/assets/RandomJobTestPage-D7j9GCJM.js +2 -0
  36. package/web/assets/ScenarioEditorPage-Ct8pvptW.js +14 -0
  37. package/web/assets/SendToChatDialog-Byzw5hfV.js +1 -0
  38. package/web/assets/ServiceControlsBar-Dht6GO3P.js +1 -0
  39. package/web/assets/ServiceDetailPage-CbeFd4R4.js +2 -0
  40. package/web/assets/ServiceFormPage-BNbDJB1o.js +1 -0
  41. package/web/assets/SettingsPage-Dxhmpet-.js +2063 -0
  42. package/web/assets/UnlockPage-DJfS33Iu.js +1 -0
  43. package/web/assets/VaultMigrationPage-2bVNCDJk.js +1 -0
  44. package/web/assets/VersionBadge-1RvUznxK.js +1 -0
  45. package/web/assets/WikiPage-Ck-HfGMo.js +1 -0
  46. package/web/assets/WikiView-DnZi2CXf.js +1 -0
  47. package/web/assets/add-scalar-classes-DZeMJUzs.js +387 -0
  48. package/web/assets/{autocomplete-CeUb1Plo.js → autocomplete-DVfF8-mq.js} +3 -3
  49. package/web/assets/{basic-shape-diamond.svg-D95sAEHe.js → basic-shape-diamond.svg-D8aU5xwY.js} +1 -1
  50. package/web/assets/{basic-shape-hexagon.svg-Bhu8sbuK.js → basic-shape-hexagon.svg-C48LyQUE.js} +1 -1
  51. package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-BPXa2nfu.js → basic-shape-primary-circle-ellipse-round.svg-Cn4csfd0.js} +1 -1
  52. package/web/assets/{basic-shape-primary-square-rectangle.svg-DYx2Drq6.js → basic-shape-primary-square-rectangle.svg-C9Hhhoy0.js} +1 -1
  53. package/web/assets/{basic-shape-shield.svg-iaNrBbaU.js → basic-shape-shield.svg-BtyWy6Hb.js} +1 -1
  54. package/web/assets/{browser-Bd9Xf4OZ.js → browser-D-xywlrw.js} +1 -1
  55. package/web/assets/{browser-DhkJWAns.js → browser-SQJu0kqP.js} +1 -1
  56. package/web/assets/card-C0WVIEBg.js +32 -0
  57. package/web/assets/{checkbox-DZeCLgbK.js → checkbox-bUKoFar-.js} +3 -3
  58. package/web/assets/{chip-CzDSaVrV.js → chip-FS8CF7nQ.js} +2 -2
  59. package/web/assets/client-DKfN77U3.js +24 -0
  60. package/web/assets/cloud-chat.store-C0O-wJT9.js +1 -0
  61. package/web/assets/cloud-client-D4Mr6l0A.js +1 -0
  62. package/web/assets/cloud-session-D9RcOxiL.js +2 -0
  63. package/web/assets/cloud-session-kXf1tl4W.js +1 -0
  64. package/web/assets/column-BGKAKQS9.js +763 -0
  65. package/web/assets/{computer-device-desktop-monitor.svg-CK-yuA7j.js → computer-device-desktop-monitor.svg-MSBAl_IT.js} +1 -1
  66. package/web/assets/{computer-device-desktop.svg-DnR_dL9H.js → computer-device-desktop.svg-CEWAl-1r.js} +1 -1
  67. package/web/assets/{computer-device-laptop.svg-B4NDUXf6.js → computer-device-laptop.svg-DQ1d2ADo.js} +1 -1
  68. package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-CDy5Mj_3.js → computer-device-mobile-phone-android-samsung-back.svg-Dzz2XEW6.js} +1 -1
  69. package/web/assets/{computer-device-mobile-phone-android-samsung.svg-DZwCAngQ.js → computer-device-mobile-phone-android-samsung.svg-BfiSZRYt.js} +1 -1
  70. package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-qnHXKnfy.js → computer-device-mobile-phone-iphone-x-back.svg-BKDNa4ua.js} +1 -1
  71. package/web/assets/{computer-device-mobile-phone-iphone-x.svg-CufxVRii.js → computer-device-mobile-phone-iphone-x.svg-CxwOtpMv.js} +1 -1
  72. package/web/assets/{computer-device-mobile-tablet-touch.svg-DvNOww1M.js → computer-device-mobile-tablet-touch.svg-D-d6m_kv.js} +1 -1
  73. package/web/assets/{computer-device-mobile-tablet.svg-C30Nrbgf.js → computer-device-mobile-tablet.svg-D8b5on89.js} +1 -1
  74. package/web/assets/{computer-device-network-ethernet-cat6.svg-BkhnUZzo.js → computer-device-network-ethernet-cat6.svg-c-FuyKH3.js} +1 -1
  75. package/web/assets/{computer-device-network-lan-www.svg-DXEfVvcC.js → computer-device-network-lan-www.svg-DVIwP-3w.js} +1 -1
  76. package/web/assets/{computer-device-network-wifi-connection.svg-CRSKVh1x.js → computer-device-network-wifi-connection.svg-BXtM5IP8.js} +1 -1
  77. package/web/assets/{computer-device-network-wifi-router.svg-DwfOCroy.js → computer-device-network-wifi-router.svg-D0MA5S5K.js} +1 -1
  78. package/web/assets/{cssMode-Dc5jzss9.js → cssMode-C1ocy9fG.js} +1 -1
  79. package/web/assets/{divider-Diym1gIH.js → divider-DaQ67Uqu.js} +2 -2
  80. package/web/assets/{docx-preview-B62lLslx.js → docx-preview-D2pXpGJL.js} +1 -1
  81. package/web/assets/{ecology-science-erlenmeyer-flask.svg-CVBcLrkT.js → ecology-science-erlenmeyer-flask.svg-BC5h7SBw.js} +1 -1
  82. package/web/assets/{fieldset-xjeWC_Zd.js → fieldset-DASecQzo.js} +2 -2
  83. package/web/assets/{freemarker2-CCSFwo1D.js → freemarker2-Co24PBKb.js} +1 -1
  84. package/web/assets/{handlebars-Bo71unsx.js → handlebars-BiGhhRTT.js} +1 -1
  85. package/web/assets/{html-Bm9228kc.js → html-jVmuH_kg.js} +1 -1
  86. package/web/assets/{htmlMode-BmR9QSyO.js → htmlMode-DfGryePh.js} +1 -1
  87. package/web/assets/{image-flash-lightning.svg-BdEJcGIK.js → image-flash-lightning.svg-pmP3Tybf.js} +1 -1
  88. package/web/assets/{image-picture-flower.svg-B-mtrwDE.js → image-picture-flower.svg-D5oOhzzg.js} +1 -1
  89. package/web/assets/{index-8J1A633V.js → index-DBUGVNfV.js} +293 -293
  90. package/web/assets/{index-CuOHmXqW.css → index-nUGeXteT.css} +1 -1
  91. package/web/assets/{interface-alert-exclamation-diamond.svg-9cBuGRNJ.js → interface-alert-exclamation-diamond.svg-H0YNQW-M.js} +1 -1
  92. package/web/assets/{interface-alert-exclamation-triangle-warning.svg-CEzfFTAS.js → interface-alert-exclamation-triangle-warning.svg-MmLyfLsu.js} +1 -1
  93. package/web/assets/{interface-alert-information-circle.svg-BjpTNsHF.js → interface-alert-information-circle.svg-DPtcCWUk.js} +1 -1
  94. package/web/assets/{interface-award-crown.svg-DGFO5nfn.js → interface-award-crown.svg-D4TDd5uG.js} +1 -1
  95. package/web/assets/{interface-bookmark.svg-u38u4053.js → interface-bookmark-tag.svg-DY2HHX7j.js} +1 -1
  96. package/web/assets/{interface-bookmark-tag.svg-D5jyBgha.js → interface-bookmark.svg-BOJKIiPZ.js} +1 -1
  97. package/web/assets/{interface-calendar-date-one.svg-CEE3ju0p.js → interface-calendar-date-one.svg-Ml9gQeRQ.js} +1 -1
  98. package/web/assets/{interface-content-book-open-pages.svg-S1nvOdAe.js → interface-content-book-open-pages.svg-DjrtXzto.js} +1 -1
  99. package/web/assets/{interface-content-book-page.svg-CtDjLJwZ.js → interface-content-book-page.svg-C7WDuE63.js} +1 -1
  100. package/web/assets/{interface-content-file.svg-AD0WHI0R.js → interface-content-file.svg-Bj1fDi8J.js} +1 -1
  101. package/web/assets/{interface-content-folder.svg-CM-PNCCw.js → interface-content-folder.svg-CtoSNYlE.js} +1 -1
  102. package/web/assets/interface-content-folder.svg-DGDMeUjj.js +1 -0
  103. package/web/assets/{interface-copy-clipboard.svg-rflxiB0d.js → interface-copy-clipboard.svg-CndmGYGb.js} +1 -1
  104. package/web/assets/{interface-edit-attachment.svg-DrANyzys.js → interface-edit-attachment.svg-C8GKdk_Y.js} +1 -1
  105. package/web/assets/{interface-edit-binocular.svg-BETaEZ89.js → interface-edit-binocular.svg-JwEBvvNd.js} +1 -1
  106. package/web/assets/{interface-edit-magic-wand.svg-Bj6FVo53.js → interface-edit-magic-wand.svg-dhVstxFv.js} +1 -1
  107. package/web/assets/{interface-edit-tool-paint-roller.svg-Bp6eRqNw.js → interface-edit-tool-paint-roller.svg-BOT-wlXa.js} +1 -1
  108. package/web/assets/{interface-edit-tool-pencil.svg-DcLn0a3t.js → interface-edit-tool-pencil.svg-Bkzz_y5T.js} +1 -1
  109. package/web/assets/{interface-favorite-award.svg-DUwbk0Rk.js → interface-favorite-award.svg-CUsXllHu.js} +1 -1
  110. package/web/assets/{interface-favorite-flag.svg-BRp2Dr2h.js → interface-favorite-flag.svg-D4tuSHHG.js} +1 -1
  111. package/web/assets/{interface-favorite-heart.svg-Bt_5Dxks.js → interface-favorite-heart.svg-D-HpTcun.js} +1 -1
  112. package/web/assets/{interface-favorite-star.svg-iaJ9oR-m.js → interface-favorite-star.svg-Cud3tgeY.js} +1 -1
  113. package/web/assets/{interface-favorite-stars-sparkles.svg-C3lZkFSY.js → interface-favorite-stars-sparkles.svg-CSCGE6jh.js} +1 -1
  114. package/web/assets/{interface-hierarchy-flowchart.svg-NRnPKxEv.js → interface-hierarchy-flowchart.svg-qBM4FMpY.js} +1 -1
  115. package/web/assets/{interface-home-house.svg-C2pnwXuY.js → interface-home-house.svg-YhTW7PqZ.js} +1 -1
  116. package/web/assets/{interface-hyperlink.svg-DMdhqTQ5.js → interface-hyperlink.svg-SzbaajGz.js} +1 -1
  117. package/web/assets/{interface-lighting-brightness.svg-Dvs_nG0d.js → interface-lighting-brightness.svg-C2-5tyeD.js} +1 -1
  118. package/web/assets/{interface-lock-closed.svg-CBeF2Ru4.js → interface-lock-closed.svg-gcAhT36X.js} +1 -1
  119. package/web/assets/{interface-lock-open-unlock.svg-sChGga1F.js → interface-lock-open-unlock.svg-BC3s82xO.js} +1 -1
  120. package/web/assets/{interface-login-key.svg-cZB0Vhyp.js → interface-login-key.svg-C-2XbaU2.js} +1 -1
  121. package/web/assets/{interface-search.svg-CjcIgtti.js → interface-search.svg-B0QE3jtv.js} +1 -1
  122. package/web/assets/{interface-setting-cog.svg-H5RLVC2p.js → interface-setting-cog.svg-D3xvk8YU.js} +1 -1
  123. package/web/assets/{interface-share-megaphone-bullhorn.svg-BEk0DA1W.js → interface-share-megaphone-bullhorn.svg-CRa9esm0.js} +1 -1
  124. package/web/assets/{interface-share-rocket.svg-p6tQEwJ6.js → interface-share-rocket.svg-TdCeEZOl.js} +1 -1
  125. package/web/assets/{interface-share-satellite.svg-BScMkxzb.js → interface-share-satellite.svg-DZTk90vq.js} +1 -1
  126. package/web/assets/{interface-share-space-ship.svg-RtJDwluc.js → interface-share-space-ship.svg-C_8R9-Nb.js} +1 -1
  127. package/web/assets/{interface-share.svg-_Rnlgc89.js → interface-share.svg-CUenxjcS.js} +1 -1
  128. package/web/assets/{interface-signal-square.svg-sGo7FmcD.js → interface-signal-square.svg-CM6pbneT.js} +1 -1
  129. package/web/assets/{interface-time-clock-circle.svg-CoQLcW4m.js → interface-time-clock-circle.svg-DaKkRSPs.js} +1 -1
  130. package/web/assets/{interface-time-hour-glass.svg-C4rHS8Sx.js → interface-time-hour-glass.svg-BupwUgts.js} +1 -1
  131. package/web/assets/{interface-users-multiple.svg-B4ewwKgQ.js → interface-users-multiple.svg-C3UEzidB.js} +1 -1
  132. package/web/assets/{interface-weather-moon.svg-TOU86ccq.js → interface-weather-moon.svg-DuiN-Lpe.js} +1 -1
  133. package/web/assets/{javascript-3xh4h-z5.js → javascript-cyCZQpCs.js} +1 -1
  134. package/web/assets/{jsonMode-C6AJYdBQ.js → jsonMode-C7bOJkxl.js} +2 -2
  135. package/web/assets/{liquid-B1uuh-2_.js → liquid-wNd-_zNC.js} +1 -1
  136. package/web/assets/{lspLanguageFeatures-BSf4GNlz.js → lspLanguageFeatures-BLqGpyw3.js} +3 -3
  137. package/web/assets/{mail-chat-bubble-square.svg-Fe7IU49T.js → mail-chat-bubble-square.svg-DYRNn-F8.js} +1 -1
  138. package/web/assets/{mail-send-email-paper-airplane.svg-Cu3dNuIm.js → mail-send-email-paper-airplane.svg-C52yHOX7.js} +1 -1
  139. package/web/assets/{mail-send-envelope.svg-C3l1liPg.js → mail-send-envelope.svg-0-Xc7oiy.js} +1 -1
  140. package/web/assets/{mdx-DjWUPAFj.js → mdx-Q8jGyneU.js} +1 -1
  141. package/web/assets/{minus-Cy49kn7z.js → minus-DytRiHhn.js} +2 -2
  142. package/web/assets/modal-DIpZHaX_.js +1 -0
  143. package/web/assets/modal-Dx2t6N7O.js +5 -0
  144. package/web/assets/{money-cashier-receipt.svg-OkY-eUsN.js → money-cashier-receipt.svg-vbdCrl5f.js} +1 -1
  145. package/web/assets/{money-currency-dollar-pay.svg-DVA6DUQs.js → money-currency-dollar-pay.svg-B0WPo5zD.js} +1 -1
  146. package/web/assets/{money-graph-arrow-increase.svg-5zYZLe6Q.js → money-graph-arrow-increase.svg-u1MYvAWb.js} +1 -1
  147. package/web/assets/{money-graph-bar-chart-increase.svg-CqGQIzPc.js → money-graph-bar-chart-increase.svg--vnvg38g.js} +1 -1
  148. package/web/assets/multiselect-0FlwwPJ2.js +251 -0
  149. package/web/assets/{nature-ecology-leaf.svg-B-jPo4Mf.js → nature-ecology-leaf.svg-Bm86NNsZ.js} +1 -1
  150. package/web/assets/{password-FAGLfFXd.js → password-D4dFyeDf.js} +4 -4
  151. package/web/assets/{phone-telephone.svg-BBDd4gOe.js → phone-telephone.svg-CDu0gfrF.js} +1 -1
  152. package/web/assets/{plus-DvHGmumH.js → plus-DyqgWY-p.js} +6 -6
  153. package/web/assets/process.store-Dy_a775l.js +1 -0
  154. package/web/assets/{programming-bug.svg-Di_RRUT8.js → programming-bug.svg-GOtIFzyq.js} +1 -1
  155. package/web/assets/{programming-cloud.svg-UXDdd80c.js → programming-cloud.svg-Dob7Yyhx.js} +1 -1
  156. package/web/assets/{programming-computer-database-server.svg-DqyeVkz2.js → programming-computer-database-server.svg-BL9a2tMm.js} +1 -1
  157. package/web/assets/{programming-computer-database.svg-BB9uaRkU.js → programming-computer-database.svg-CvSRjqHa.js} +1 -1
  158. package/web/assets/{programming-module-four-layout.svg-DXHXfvRQ.js → programming-module-four-layout.svg-HWf5upwd.js} +1 -1
  159. package/web/assets/{programming-module-three.svg-BqdjaGQY.js → programming-module-three.svg-v9W9DdQq.js} +1 -1
  160. package/web/assets/{programming-module.svg-Dca7humV.js → programming-module.svg-BHJLgt2p.js} +1 -1
  161. package/web/assets/{programming-script-code.svg-S7W_TNxH.js → programming-script-code.svg-BDIXsnT6.js} +1 -1
  162. package/web/assets/project-launch.store-BFSsFFjl.js +1 -0
  163. package/web/assets/project.store-CbypuRJa.js +1 -0
  164. package/web/assets/{python-BMgf76Zf.js → python-C_Cyv2aj.js} +1 -1
  165. package/web/assets/{radiobutton-BQ5ty9EJ.js → radiobutton-F_E8D321.js} +2 -2
  166. package/web/assets/{razor-DRB94rOF.js → razor-DustIlxk.js} +1 -1
  167. package/web/assets/router-BujVDJWr.js +1 -0
  168. package/web/assets/settings-scope-hbAQWfja.js +1 -0
  169. package/web/assets/settings.store-CaQ6QeSL.js +1 -0
  170. package/web/assets/{shopping-cart.svg-BSU4UsCc.js → shopping-cart.svg-DyoeDwG3.js} +1 -1
  171. package/web/assets/{shopping-gift-present.svg-CC16xqoa.js → shopping-gift-present.svg-BKPtii5v.js} +1 -1
  172. package/web/assets/{shopping-shipping-box-parcel-package.svg-jK-_sKtf.js → shopping-shipping-box-parcel-package.svg-BvBFvRrd.js} +1 -1
  173. package/web/assets/src-40AEWC6e.js +1 -0
  174. package/web/assets/{src-Brqld0NK.js → src-CagkHqfs.js} +34 -34
  175. package/web/assets/src-XBWUvtlx.js +572 -0
  176. package/web/assets/{tabpanel-BytkhVWV.js → tabpanel-BbQfLmF1.js} +3 -3
  177. package/web/assets/{tag-new-circle.svg-DOyNg7L6.js → tag-new-circle.svg-hTnv3ssK.js} +1 -1
  178. package/web/assets/theme-CXVscC2X.js +1 -0
  179. package/web/assets/{toggleswitch-Qo70K7EJ.js → toggleswitch-Ct_pe9Y7.js} +2 -2
  180. package/web/assets/{travel-map-earth-globe.svg-D6szY-qJ.js → travel-map-earth-globe.svg-CpkewKvu.js} +1 -1
  181. package/web/assets/trpc-C5MKhb-3.js +1 -0
  182. package/web/assets/{tsMode-Lbkz8xJi.js → tsMode-WejVCjTD.js} +5 -5
  183. package/web/assets/{typescript-C9Y4Q3Pi.js → typescript-Bhy-yTki.js} +1 -1
  184. package/web/assets/useAiChatDrawer-tRwj5DTE.js +1 -0
  185. package/web/assets/{useCloudOrg-C0YVyKuT.js → useCloudOrg-DyonGJWX.js} +1 -1
  186. package/web/assets/useEnvVarAutocomplete-wZvdJ--F.js +1 -0
  187. package/web/assets/useProjectCatalog-tOf78QC4.js +1 -0
  188. package/web/assets/useProjectCloudOrg-hi8bDROZ.js +1 -0
  189. package/web/assets/useServiceUrlHost-B9WSS4Mi.js +1 -0
  190. package/web/assets/{xml-BAzLHFet.js → xml-DhE3CKSm.js} +1 -1
  191. package/web/assets/{yaml-Dd3JbA6E.js → yaml-BnNl--CF.js} +1 -1
  192. package/web/index.html +2 -2
  193. package/chunk-44XAJ3MK.js.map +0 -1
  194. package/chunk-VPANMGAI.js.map +0 -1
  195. package/src-S5TDMHPI.js.map +0 -1
  196. package/web/assets/AgentScalarChatInterface.vue-BF7maBl3.js +0 -13
  197. package/web/assets/AgentTerminalPage-CvmJM-z2.js +0 -1
  198. package/web/assets/AiChatPage-CZvzic7w.js +0 -1
  199. package/web/assets/AppLayout-B6rcGZ-d.js +0 -1
  200. package/web/assets/AuditPage-Zow6i_p1.js +0 -1
  201. package/web/assets/CloudAccountPage-C7NM_P_L.js +0 -1
  202. package/web/assets/CloudAccountPage-EIJZWYuK.js +0 -1
  203. package/web/assets/CloudMessagingPage-TLIkdLja.js +0 -2
  204. package/web/assets/DashboardPage-DVe-s0J_.js +0 -164
  205. package/web/assets/DirectoryPickerDialog-B7FOXRqJ.js +0 -1
  206. package/web/assets/EnvironmentFormPage-B8u9s5R1.js +0 -1
  207. package/web/assets/EnvironmentListPage-CmzFuAkD.js +0 -1
  208. package/web/assets/KanbanBoardPage-B4luJ-Om.css +0 -1
  209. package/web/assets/KanbanBoardPage-BwlRY-B5.js +0 -4
  210. package/web/assets/KanbanListPage-BHvmkCBo.js +0 -1
  211. package/web/assets/LaunchProjectPage-CLtvEtB7.js +0 -1
  212. package/web/assets/LaunchServicesPage-CNwMUBEf.js +0 -1
  213. package/web/assets/LogViewer-CttayRws.js +0 -3
  214. package/web/assets/OrgKeyPrompt-BCUxooW7.js +0 -1
  215. package/web/assets/ProcessDetailPage-C9SV4g8j.js +0 -1
  216. package/web/assets/RandomJobTestPage-0PVLJcpY.js +0 -2
  217. package/web/assets/ScenarioEditorPage-CDRQjUbW.js +0 -14
  218. package/web/assets/SendToChatDialog-WvHUhHoF.js +0 -1
  219. package/web/assets/ServiceControlsBar-BUTVG9E_.js +0 -1
  220. package/web/assets/ServiceDetailPage-BzPogs-k.js +0 -2
  221. package/web/assets/ServiceFormPage-BAnq0Ajd.js +0 -1
  222. package/web/assets/SettingsPage-B60IQ4-n.js +0 -2063
  223. package/web/assets/UnlockPage-BrBOIaYO.js +0 -1
  224. package/web/assets/VaultMigrationPage-DwPlrgAk.js +0 -1
  225. package/web/assets/VersionBadge-VifKvUR5.js +0 -1
  226. package/web/assets/WikiPage-hb8nDENE.js +0 -1
  227. package/web/assets/WikiView-BGFK-ViQ.js +0 -1
  228. package/web/assets/add-scalar-classes-B7RXfMBe.js +0 -387
  229. package/web/assets/card-WTAGOi1D.js +0 -32
  230. package/web/assets/client-DcD_v2XG.js +0 -24
  231. package/web/assets/cloud-chat.store-C0vZ0R5r.js +0 -1
  232. package/web/assets/cloud-client-P2Cyjp5i.js +0 -1
  233. package/web/assets/cloud-session-5od8XXV-.js +0 -2
  234. package/web/assets/cloud-session-DEFzA7ER.js +0 -1
  235. package/web/assets/column-D-tpUFcH.js +0 -763
  236. package/web/assets/interface-content-folder.svg-vAfHUVxs.js +0 -1
  237. package/web/assets/modal-4lYrZSCG.js +0 -1
  238. package/web/assets/modal-C0BaKlvZ.js +0 -5
  239. package/web/assets/multiselect-C2K875ec.js +0 -251
  240. package/web/assets/process.store-Dkhppeiw.js +0 -1
  241. package/web/assets/project-launch.store-HsHnuv7p.js +0 -1
  242. package/web/assets/project.store-nYOH1fu8.js +0 -1
  243. package/web/assets/router-CEGkI1tc.js +0 -1
  244. package/web/assets/settings-scope-Dj1u8OM-.js +0 -1
  245. package/web/assets/settings.store-CzBxGLJM.js +0 -1
  246. package/web/assets/src-21gpk7yl.js +0 -572
  247. package/web/assets/src-DYhMIuuF.js +0 -1
  248. package/web/assets/theme-GoDEfTsY.js +0 -1
  249. package/web/assets/trpc-D_S7-UJx.js +0 -1
  250. package/web/assets/useAiChatDrawer-GXkAcvQ3.js +0 -1
  251. package/web/assets/useEnvVarAutocomplete-Dkjm0cg5.js +0 -1
  252. package/web/assets/useProjectCatalog-BwvqZBo1.js +0 -1
  253. package/web/assets/useProjectCloudOrg-DpsnzqQF.js +0 -1
  254. package/web/assets/useServiceUrlHost-BFSLGMHh.js +0 -1
  255. /package/{chat-AOL2TMLR.js.map → chat-QLIFNGA2.js.map} +0 -0
  256. /package/{companion-YYXSCN3H.js.map → companion-RLSRXTNO.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{Aa as e,Ai as t,An as n,Ca as r,Ci as i,Ct as a,Da as o,En as s,Gn as c,Hn as l,Ii as u,Kt as d,L as f,Li as p,Mi as m,Oi as h,Qt as g,Rn as _,Si as v,Ti as y,Tn as b,Tt as x,Un as S,Va as C,Vn as w,Xa as T,Xt as E,Yi as D,Yt as O,Zt as k,_n as A,ca as j,cr as ee,d as M,en as N,ft as P,gn as F,gt as I,hn as L,ia as R,ir as te,it as z,ji as B,ki as V,kn as ne,ln as H,lr as re,lt as U,mt as ie,na as ae,nt as W,oa as G,pr as K,rr as q,rt as oe,st as se,tr as ce,tt as le,vi as ue,wa as de,ya as J,yt as fe,zi as Y}from"./index-DBUGVNfV.js";import"./cloud-session-D9RcOxiL.js";import"./src-40AEWC6e.js";import"./useServiceUrlHost-B9WSS4Mi.js";import"./ProcessControls-BAThUaVo.js";import{t as pe}from"./ServiceControlsBar-Dht6GO3P.js";import{t as me}from"./uuid--pMuF47W.js";import{n as he,t as ge}from"./column-BGKAKQS9.js";import{n as X}from"./plus-DyqgWY-p.js";import{t as _e}from"./checkbox-bUKoFar-.js";import"./useProjectCloudOrg-hi8bDROZ.js";import{t as Z}from"./toggleswitch-Ct_pe9Y7.js";import{i as ve,n as ye,o as be,r as Q,t as $}from"./tabpanel-BbQfLmF1.js";import{i as xe,n as Se,r as Ce,t as we}from"./useEnvVarAutocomplete-wZvdJ--F.js";import{t as Te}from"./autocomplete-DVfF8-mq.js";import"./src-CagkHqfs.js";import"./w3c-keyname-tfhvQ9CV.js";import"./SendToChatDialog-Byzw5hfV.js";import{n as Ee,t as De}from"./ProcessMetrics-BnfF7Esx.js";import{t as Oe}from"./LogViewer-CxPBFVR1.js";import{t as ke}from"./divider-DaQ67Uqu.js";import{t as Ae}from"./settings.store-CaQ6QeSL.js";import{t as je}from"./WikiView-DnZi2CXf.js";var Me={key:0,class:`log-details`},Ne={class:`log-details__section`},Pe={class:`log-details__label`},Fe={class:`log-details__value log-details__value--box`},Ie={class:`log-details__section`},Le={class:`log-details__label`},Re={class:`log-details__value log-details__value--box log-details__value--code`},ze={class:`log-details__section`},Be={class:`log-details__label`},Ve={class:`log-details__value log-details__value--box`},He={class:`log-details__process`},Ue={class:`log-details__section`},We={class:`log-details__label`},Ge={class:`log-details__value log-details__value--box`},Ke={key:0,class:`log-details__section`},qe={class:`log-details__label`},Je={class:`log-details__value log-details__value--box log-details__value--code`,"data-testid":`log-details-cwd`},Ye={class:`log-details__section`},Xe={class:`log-details__label`},Ze={class:`log-details__value log-details__value--box`},Qe={key:1,class:`log-details__section`},$e={class:`log-details__label`},et={class:`log-details__value log-details__value--box`},tt={key:2,class:`log-details__section`},nt={class:`log-details__label`},rt={class:`log-details__value log-details__value--box log-details__value--code`},it=w(Y({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(n,{emit:i}){let a=n,{t:o}=K(),s=M(),u=i,d=h(()=>{if(!a.log)return``;let e=new Date(a.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=h(()=>a.log?a.log.level.charAt(0).toUpperCase()+a.log.level.slice(1):``),g=h(()=>!a.log||a.log.pid==null?o(`logDetails.notAvailable`):String(a.log.pid)),_=h(()=>a.log?s.getByService(a.log.processId)[0]?.cwd??null:null);function v(){a.log&&u(`view-process`,a.log.processId)}function y(){u(`update:visible`,!1)}return(i,a)=>(G(),t(T(l),{visible:n.visible,position:`right`,header:T(o)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":y},{default:r(()=>[n.log?(G(),m(`div`,Me,[V(`div`,Ne,[V(`div`,Pe,e(T(o)(`logDetails.type`)),1),V(`div`,Fe,e(f.value),1)]),V(`div`,Ie,[V(`div`,Le,e(T(o)(`logDetails.rawMessage`)),1),V(`div`,Re,e(n.log.raw),1)]),V(`div`,ze,[V(`div`,Be,e(T(o)(`logDetails.serviceId`)),1),V(`div`,Ve,[V(`div`,He,[V(`span`,null,e(n.log.processId),1),p(T(c),{label:T(o)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:v},null,8,[`label`])])])]),V(`div`,Ue,[V(`div`,We,e(T(o)(`logDetails.pid`)),1),V(`div`,Ge,e(g.value),1)]),_.value?(G(),m(`div`,Ke,[V(`div`,qe,e(T(o)(`logDetails.cwd`)),1),V(`div`,Je,e(_.value),1)])):B(``,!0),V(`div`,Ye,[V(`div`,Xe,e(T(o)(`logDetails.timestamp`)),1),V(`div`,Ze,e(d.value),1)]),n.log.stream?(G(),m(`div`,Qe,[V(`div`,$e,e(T(o)(`logDetails.stream`)),1),V(`div`,et,e(n.log.stream),1)])):B(``,!0),n.log.metadata&&Object.keys(n.log.metadata).length>0?(G(),m(`div`,tt,[V(`div`,nt,e(T(o)(`logDetails.metadata`)),1),V(`div`,rt,e(JSON.stringify(n.log.metadata,null,2)),1)])):B(``,!0)])):B(``,!0)]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-4e3f7abe`]]),at=500,ot=5,st=I;function ct(e){return e+Math.random()*e*.3}function lt(e,t){let r=C([]),i=C(!1),a=null,o=0,s=null,c=ne(()=>{o=0,i.value||S()}),l=[],u=null,d=C(0),f=C(0),p=0,m=0,h=null;function g(){h||=setInterval(()=>{d.value=p,f.value=m,p=0,m=0},1e3)}function v(){h&&=(clearInterval(h),null),d.value=0,f.value=0,p=0,m=0}function y(){if(u=null,l.length===0)return;let e=l;l=[],m+=e.length;let t=[...r.value,...e];t.length>at&&(t=t.slice(t.length-at)),r.value=t}function b(){!e.value||!t.value||(i.value=!0,a=n.process.onLog.subscribe({agentId:e.value,processId:t.value},{onData(e){let t=e;if(o=0,_(`connected`),t.some(e=>e.__clearLogBuffer)){r.value=[],l=[];return}p+=t.length,l.push(...t),u===null&&(u=requestAnimationFrame(y))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),i.value=!1,a=null,x()}}))}function x(){if(o>=ot){console.warn(`[useLogStream] Max retries (${ot}) reached`),_(`disconnected`);return}_(`reconnecting`);let e=ct(st*2**o);o++,s=setTimeout(()=>{s=null,S()},e)}async function S(){if(!i.value&&!(!e.value||!t.value)){o=0;try{let i=await n.process.logs.query({agentId:e.value,processId:t.value});i.length>at&&(i=i.slice(i.length-at)),r.value=i,_(`connected`)}catch{}b()}}function w(){s&&=(clearTimeout(s),null),u!==null&&(cancelAnimationFrame(u),u=null),l=[],v(),a&&=(a.unsubscribe(),null),i.value=!1,o=0,r.value=[]}return J([e,t],([e,t],[n,r])=>{(e!==n||t!==r)&&(i.value&&w(),S())}),R(()=>{c(),w()}),{logs:r,isStreaming:i,start:S,stop:w,receivedPerSec:d,flushedPerSec:f,startStats:g,stopStats:v}}var ut={class:`service-terminal__toolbar`},dt={class:`service-terminal__toolbar-left`},ft={key:0,class:`pid-option`},pt={key:1,class:`pid-option`},mt={key:0,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,style:{"margin-right":`0.5rem`}},ht={key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,style:{"margin-right":`0.5rem`}},gt={class:`pid-option`},_t={key:0,class:`pi pi-list`,style:{"margin-right":`0.5rem`}},vt=[`title`],yt=[`title`],bt={class:`service-terminal__toolbar-right`},xt={class:`service-terminal__content`,"data-testid":`service-terminal-content`},St={key:1,class:`service-terminal__shortcuts`},Ct={class:`service-terminal__command-input`},wt={class:`service-terminal__bottom`},Tt=`runeya_command_history_`,Et=50,Dt=w(Y({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(i){let{t:a}=K(),s=i,l=h(()=>s.processes.find(e=>e.state===`running`||e.state===`starting`)??s.processes[0]??null),u=h(()=>l.value?.agentId??``),d=h(()=>l.value?.id??``),f=re(),{logs:g,isStreaming:_,start:v,stop:b,receivedPerSec:x,flushedPerSec:S,startStats:w,stopStats:E}=lt(u,d),O=C(!1);J(O,e=>{e?w():E()});function k(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),O.value=!O.value)}let A=h(()=>{let e=new Map;return g.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=s.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=h(()=>$.value===`all`?g.value:g.value.filter(e=>e.pid===$.value)),M=h(()=>A.value.filter(e=>e.isActive).length),N=h(()=>{let e=[{label:a(`serviceTerminal.allProcesses`),value:`all`,badge:M.value>0?`${M.value} ${a(`serviceTerminal.active`)}`:void 0,isActive:void 0}];return A.value.forEach(({pid:t,logCount:n,isActive:r})=>{e.push({label:`PID: ${t}`,value:t,badge:`${n} logs`,isActive:r})}),e});h(()=>s.processes.filter(e=>e.state===`running`).length);async function P(){if(l.value)try{await n.process.clearLogBuffer.mutate({agentId:l.value.agentId,processId:l.value.id}),g.value=[]}catch(e){f.add({severity:`error`,summary:a(`serviceTerminal.error`),detail:e.message??a(`serviceTerminal.failedToClearLogs`),life:5e3})}}let I=h(()=>s.service.shortcuts??[]),L=C(new Set);async function te(e){let t=l.value?.agentId??s.service.agentId,r=l.value?.id??s.service.id;if(!t){f.add({severity:`warn`,summary:a(`serviceTerminal.noAgent`),detail:a(`serviceTerminal.noAgentDesc`),life:3e3});return}if(L.value.has(e.id)){try{await n.process.cancelShortcut.mutate({agentId:t,processId:r,shortcutId:e.id})}catch{}return}L.value=new Set([...L.value,e.id]);try{await n.process.executeShortcut.mutate({agentId:t,processId:r,shortcut:e})}catch(e){f.add({severity:`error`,summary:a(`serviceTerminal.shortcutFailed`),detail:e.message??a(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(L.value);t.delete(e.id),L.value=t}}let z=C(``),ne=C(new Set),U=h(()=>ne.value.size>0),ie=C(null),W=C([]),q=C(-1),oe=`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(`,`),se=C([]);function ce(e){let t=e.query.toLowerCase().trim();if(!t||!z.value.trim()){se.value=[];return}let n=[...W.value.slice().reverse(),...oe],r=new Set;se.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(Tt+s.service.id);e&&(W.value=JSON.parse(e))}catch{W.value=[]}}function ue(){try{localStorage.setItem(Tt+s.service.id,JSON.stringify(W.value))}catch{}}function de(e){W.value[W.value.length-1]!==e&&(W.value=[...W.value,e],W.value.length>Et&&(W.value=W.value.slice(-Et)),ue())}async function fe(){let e=l.value?.agentId??s.service.agentId,t=l.value?.id??s.service.id;if(e)try{await n.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function Y(){if(!z.value.trim())return;let e=l.value?.agentId??s.service.agentId,t=l.value?.id??s.service.id;if(!e){f.add({severity:`warn`,summary:a(`serviceTerminal.noAgent`),detail:a(`serviceTerminal.noAgentDesc`),life:3e3});return}let r=me(),i=z.value.trim();de(i),z.value=``,se.value=[],q.value=-1,ne.value=new Set([...ne.value,r]);try{await n.process.executeAdHocCommand.mutate({agentId:e,processId:t,command:i,commandId:r})}catch(e){f.add({severity:`error`,summary:a(`serviceTerminal.commandFailed`),detail:e.message??a(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(ne.value);e.delete(r),ne.value=e,D(()=>{document.querySelector(`.service-terminal__input`)?.focus()})}}function he(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),Y();return}if(e.key===`ArrowUp`){if(e.preventDefault(),W.value.length===0)return;q.value===-1?q.value=W.value.length-1:q.value>0&&q.value--,z.value=W.value[q.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),q.value===-1)return;q.value<W.value.length-1?(q.value++,z.value=W.value[q.value]||``):(q.value=-1,z.value=``)}}function ge(){if(g.value.length===0)return;let e=g.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=`${s.service.name}-${new Date().toISOString().slice(0,19).replaceAll(`:`,`-`)}.log`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}let X=C(0),_e=0,Z=null,ve=null;J(l,e=>{if(!(e&&(e.state===`running`||e.state===`starting`))){Z&&=(clearInterval(Z),null),ve=null,X.value=e?.uptime??0;return}let t=e.uptime??0;e.id!==ve&&(Z&&=(clearInterval(Z),null),ve=e.id,_e=e.startedAt?new Date(e.startedAt).getTime():Date.now()-t,X.value=Date.now()-_e,Z=setInterval(()=>{X.value=Date.now()-_e},1e3))},{immediate:!0});let ye=C(!0),be=C(null),Q=C(!1),$=C(`all`),xe=C(!1);function Se(){xe.value=!xe.value}ae(()=>{le(),l.value&&v(),window.addEventListener(`keydown`,k)}),R(()=>{b(),window.removeEventListener(`keydown`,k),Z&&clearInterval(Z)});function Ce(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 we(e){be.value=e,Q.value=!0}function Ee(e){Q.value=!1,f.add({severity:`info`,summary:`Process`,detail:`Process ID: ${e}`,life:3e3})}return(n,u)=>(G(),m(`div`,{class:o([`service-terminal`,{"service-terminal--fullscreen":xe.value}]),"data-testid":`service-terminal`},[xe.value?(G(),t(pe,{key:0,service:i.service,processes:i.processes},null,8,[`service`,`processes`])):B(``,!0),V(`div`,ut,[V(`div`,dt,[p(T(c),{label:T(a)(`serviceTerminal.logs`),severity:ye.value?`primary`:`secondary`,text:``,size:`small`,onClick:u[0]||=e=>ye.value=!0},null,8,[`label`,`severity`]),p(T(H),{modelValue:$.value,"onUpdate:modelValue":u[1]||=e=>$.value=e,options:N.value,"option-label":`label`,"option-value":`value`,class:`service-terminal__pid-selector`},{value:r(n=>[n.value===`all`?(G(),m(`div`,ft,[u[5]||=V(`i`,{class:`pi pi-list`,style:{"margin-right":`0.5rem`}},null,-1),V(`span`,null,e(T(a)(`serviceTerminal.allProcesses`)),1),M.value>0?(G(),t(T(F),{key:0,value:`${M.value} ${T(a)(`serviceTerminal.active`)}`,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):B(``,!0)])):(G(),m(`div`,pt,[N.value.find(e=>e.value===n.value)?.isActive?(G(),m(`i`,mt)):(G(),m(`i`,ht)),V(`span`,null,`PID: `+e(n.value),1)]))]),option:r(n=>[V(`div`,gt,[n.option.value===`all`?(G(),m(`i`,_t)):n.option.isActive?(G(),m(`i`,{key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,title:T(a)(`serviceTerminal.running`)},null,8,vt)):(G(),m(`i`,{key:2,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,title:T(a)(`serviceTerminal.stopped`)},null,8,yt)),V(`span`,null,e(n.option.label),1),n.option.badge?(G(),t(T(F),{key:3,value:n.option.badge,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):B(``,!0)])]),_:1},8,[`modelValue`,`options`])]),V(`div`,bt,[p(T(c),{icon:xe.value?`pi pi-window-minimize`:`pi pi-window-maximize`,text:``,rounded:``,size:`small`,title:xe.value?T(a)(`serviceTerminal.exitFullscreen`):T(a)(`serviceTerminal.fullscreen`),onClick:Se},null,8,[`icon`,`title`]),p(T(c),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,title:T(a)(`serviceTerminal.downloadLogs`),disabled:T(g).length===0,onClick:ge},null,8,[`title`,`disabled`]),p(T(c),{icon:`pi pi-trash`,text:``,rounded:``,size:`small`,title:T(a)(`serviceTerminal.clearLogs`),disabled:T(g).length===0,onClick:P},null,8,[`title`,`disabled`])])]),V(`div`,xt,[p(Oe,{logs:ee.value,loading:!1,"received-per-sec":T(x),"flushed-per-sec":T(S),"show-stats":O.value,"service-label":s.service.label||s.service.name,onLogClick:we},null,8,[`logs`,`received-per-sec`,`flushed-per-sec`,`show-stats`,`service-label`])]),I.value.length>0?(G(),m(`div`,St,[(G(!0),m(y,null,j(I.value,e=>(G(),t(T(c),{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))])):B(``,!0),V(`div`,Ct,[u[6]||=V(`span`,{class:`service-terminal__prompt`,"data-testid":`terminal-prompt`},`>`,-1),p(T(Te),{ref_key:`adHocCommandInput`,ref:ie,modelValue:z.value,"onUpdate:modelValue":u[2]||=e=>z.value=e,suggestions:se.value,class:`service-terminal__autocomplete`,"input-class":`service-terminal__input`,placeholder:T(a)(`serviceTerminal.enterCommand`),"aria-label":T(a)(`serviceTerminal.enterCommand`),disabled:!(l.value?.agentId??s.service.agentId),"data-testid":`terminal-command-input`,onComplete:ce,onKeydown:he},null,8,[`modelValue`,`suggestions`,`placeholder`,`aria-label`,`disabled`]),p(T(c),{icon:U.value?`pi pi-stop`:`pi pi-play`,severity:U.value?`danger`:void 0,size:`small`,"data-testid":`terminal-run-btn`,disabled:!(l.value?.agentId??s.service.agentId)||!z.value.trim()&&!U.value,onClick:u[3]||=e=>U.value?fe():Y()},null,8,[`icon`,`severity`,`disabled`])]),V(`div`,wt,[l.value?(G(),t(T(F),{key:0,icon:`pi pi-server`,value:l.value.agentId.slice(0,8),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):B(``,!0),i.service.cwd?(G(),t(T(F),{key:1,icon:`pi pi-folder`,value:i.service.cwd,severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):B(``,!0),l.value&&(l.value.state===`running`||l.value.state===`starting`)?(G(),t(T(F),{key:2,icon:`pi pi-clock`,value:Ce(X.value/1e3),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):B(``,!0)]),p(it,{visible:Q.value,"onUpdate:visible":u[4]||=e=>Q.value=e,log:be.value,onViewProcess:Ee},null,8,[`visible`,`log`])],2))}}),[[`__scopeId`,`data-v-8ce2178d`]]),Ot=5,kt=I;function At(e){return e+Math.random()*e*.3}function jt(e,t){let r=C(null),i=C(!1),a=C(!1),o=null,s=0,c=null;async function l(){if(!i.value){a.value=!0;try{r.value=await n.process.metrics.query({agentId:e.value,processId:t.value})}catch(e){console.error(`Failed to fetch initial metrics:`,k(e))}finally{a.value=!1}u()}}function u(){i.value=!0,o=n.process.onMetrics.subscribe({agentId:e.value,processId:t.value},{onData(e){s=0,_(`connected`),r.value=e},onError(e){console.error(`Metrics stream error:`,e),i.value=!1,o=null,d()}})}function d(){if(s>=Ot){console.warn(`Metrics stream: max retries (${Ot}) reached, giving up`),_(`disconnected`);return}_(`reconnecting`);let e=At(kt*2**s);s++,c=setTimeout(()=>{c=null,u()},e)}function f(){c&&=(clearTimeout(c),null),o&&=(o.unsubscribe(),null),i.value=!1,s=0}return J([e,t],([e,t],[n,r])=>{(e!==n||t!==r)&&i.value&&(f(),l())}),R(()=>{f()}),{metrics:r,isStreaming:i,isLoading:a,start:l,stop:f}}var Mt={class:`service-metrics`,"data-testid":`service-metrics`},Nt={key:1,class:`service-metrics__skeleton`},Pt={class:`metric-skeleton`},Ft={class:`metric-skeleton`},It={key:2,class:`service-metrics__no-data`},Lt={key:1,class:`service-metrics__no-process`},Rt=w(Y({__name:`ServiceMetrics`,props:{service:{},processes:{}},setup(n){let r=n,i=h(()=>r.processes.find(e=>e.state===`running`||e.state===`starting`)??r.processes[0]??null),a=h(()=>i.value?.agentId??``),o=h(()=>i.value?.id??``),{t:s}=K(),{metrics:c,isLoading:l,start:u,stop:d}=jt(a,o);return ae(()=>{i.value&&u()}),R(()=>{d()}),(n,r)=>(G(),m(`div`,Mt,[i.value?(G(),m(y,{key:0},[T(c)?(G(),t(De,{key:0,cpu:T(c).cpu,memory:T(c).memory},null,8,[`cpu`,`memory`])):T(l)?(G(),m(`div`,Nt,[V(`div`,Pt,[p(T(Ee),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),p(T(Ee),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),p(T(Ee),{width:`100%`,height:`6px`,"border-radius":`4px`})]),V(`div`,Ft,[p(T(Ee),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),p(T(Ee),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),p(T(Ee),{width:`6rem`,height:`0.65rem`})])])):(G(),m(`div`,It,e(T(s)(`serviceMetrics.noData`)),1))],64)):(G(),m(`div`,Lt,[r[0]||=V(`i`,{class:`pi pi-info-circle`},null,-1),V(`span`,null,e(T(s)(`serviceMetrics.notRunning`)),1)]))]))}}),[[`__scopeId`,`data-v-94f5993b`]]),zt=`runeya:debug`;function Bt(){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 Vt=Bt();if(Vt!==null)try{localStorage.setItem(zt,String(Vt))}catch{}function Ht(){try{return localStorage.getItem(zt)===`true`}catch{return!1}}var Ut=C(Ht());function Wt(){function e(){Ut.value=!Ut.value;try{localStorage.setItem(zt,String(Ut.value))}catch{}}return{isDebug:Ut,toggle:e}}var Gt={class:`config-general`},Kt={class:`config-card`},qt={class:`config-card__header`},Jt={class:`config-card`},Yt={class:`config-card__header`},Xt={class:`config-card__hint`},Zt={class:`config-card`},Qt={class:`config-card`},$t={class:`config-card__header`},en={class:`config-card__hint`},tn={class:`config-card`},nn={class:`config-card__header`},rn={class:`config-card__hint`},an={class:`config-card`},on={class:`config-card__header`},sn={class:`config-card__hint`},cn={class:`config-card`},ln={class:`config-card__header`},un={class:`config-card__hint`},dn={class:`config-card`},fn={class:`config-card__header`},pn={class:`config-card__hint`},mn={class:`config-card`},hn={class:`config-card__header`},gn={class:`config-card__hint`},_n={class:`config-card__hint`},vn={class:`config-card`},yn={class:`config-card__header`},bn={class:`config-card__hint`},xn={class:`config-meta`},Sn={class:`config-card config-card--inline`},Cn={class:`config-card__header`},wn={class:`config-card config-card--inline`},Tn={class:`config-card__header`},En=150,Dn=w(Y({__name:`ServiceConfigGeneral`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let{t:r}=K(),a=P(),o=O(),s=C([]);function l(e){let t=e.query.trim().toLowerCase(),n=new Set(E.value.groups);s.value=S.value.filter(e=>!n.has(e)&&(!t||e.toLowerCase().includes(t)))}function d(e,t){let n=t.trim();if(n){if(e===`ports`){let e=Number(n);if(!Number.isInteger(e)||e<1||e>65535||E.value.ports.includes(String(e)))return;E.value.ports=[...E.value.ports,String(e)]}else{if(E.value.groups.includes(n))return;E.value.groups=[...E.value.groups,n]}I()}}function f(e){let t=e.target;d(`groups`,t.value),t.value=``,s.value=[]}function g(e,t){let n=e.target;!n||typeof n.value!=`string`||!n.value.trim()||setTimeout(()=>{d(t,n.value),n.value=``},En)}let _=t,b=n,x=h(()=>o.projects.find(e=>e.serviceIds.includes(_.service.id)&&(e.orgId??null)===(_.service.orgId??null))??null),S=h(()=>{let e=x.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 w(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}let E=C({name:_.service.name,cwd:_.service.cwd??``,ports:(_.service.ports??[]).map(String),groups:[..._.service.groups??[]],description:_.service.description??``,docsPath:_.service.docsPath??``,url:_.service.url??``,openapiUrl:_.service.openapiUrl??``,gitRemote:_.service.git?.remote??``,gitHome:_.service.git?.home??``,autoRestart:_.service.autoRestart,clearLogsOnStart:_.service.clearLogsOnStart??!1}),D=C(w(_.service.meta));J(()=>_.service,e=>{E.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},D.value=w(e.meta)});function k(){D.value=[...D.value,{key:``,value:``}]}function ee(e){D.value=D.value.filter((t,n)=>n!==e)}function M(e,t,n){D.value=D.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function N(){let e={};for(let{key:t,value:n}of D.value){let r=t.trim();r&&(e[r]=n)}return{name:E.value.name,cwd:E.value.cwd||null,ports:E.value.ports.map(Number).filter(e=>e>0&&e<=65535),groups:E.value.groups,description:E.value.description,docsPath:E.value.docsPath??``,url:E.value.url,openapiUrl:E.value.openapiUrl,git:E.value.gitRemote||E.value.gitHome?{remote:E.value.gitRemote||void 0,home:E.value.gitHome||void 0}:null,autoRestart:E.value.autoRestart,clearLogsOnStart:E.value.clearLogsOnStart,meta:Object.keys(e).length>0?e:null}}let F=null;function I(){F&&clearTimeout(F),F=setTimeout(()=>{b(`save`,N()),F=null},150)}return(t,n)=>(G(),m(`div`,Gt,[V(`div`,Kt,[V(`div`,qt,[n[14]||=V(`i`,{class:`pi pi-tag`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.name`)),1)]),p(T(A),{modelValue:E.value.name,"onUpdate:modelValue":n[0]||=e=>E.value.name=e,class:`config-card__input`,onBlur:I,onKeydown:v(i(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),V(`div`,Jt,[V(`div`,Yt,[n[15]||=V(`i`,{class:`pi pi-folder`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.workingDirectory`)),1)]),p(T(A),{modelValue:E.value.cwd,"onUpdate:modelValue":n[1]||=e=>E.value.cwd=e,class:`config-card__input`,placeholder:`.`,onBlur:I,onKeydown:v(i(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),V(`small`,Xt,e(T(r)(`serviceConfigGeneral.cwdHint`)),1)]),V(`div`,Zt,[n[16]||=V(`div`,{class:`config-card__header`},[V(`i`,{class:`pi pi-file-edit`}),V(`span`,null,`Dossier de documentation (wiki)`)],-1),p(T(A),{modelValue:E.value.docsPath,"onUpdate:modelValue":n[2]||=e=>E.value.docsPath=e,class:`config-card__input`,placeholder:`(défaut : même que cwd)`,onBlur:I,onKeydown:v(i(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[17]||=V(`small`,{class:`config-card__hint`},[u(` Chemin relatif au cwd du service (ex. `),V(`code`,null,`docs`),u(`) ou absolu. Si vide, utilise le cwd. `)],-1)]),V(`div`,Qt,[V(`div`,$t,[n[18]||=V(`i`,{class:`pi pi-globe`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.ports`)),1)]),p(T(Te),{modelValue:E.value.ports,"onUpdate:modelValue":n[3]||=e=>E.value.ports=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:T(r)(`serviceConfigGeneral.portsPlaceholder`),onChange:I,onBlur:n[4]||=e=>g(e,`ports`)},null,8,[`modelValue`,`placeholder`]),V(`small`,en,e(T(r)(`serviceConfigGeneral.portsHint`)),1)]),V(`div`,tn,[V(`div`,nn,[n[19]||=V(`i`,{class:`pi pi-th-large`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.groups`)),1)]),p(T(Te),{modelValue:E.value.groups,"onUpdate:modelValue":n[5]||=e=>E.value.groups=e,multiple:``,suggestions:s.value,"complete-on-focus":!0,class:`config-card__input`,placeholder:T(r)(`serviceConfigGeneral.groupsPlaceholder`),onComplete:l,onChange:I,onKeydown:v(f,[`enter`]),onBlur:n[6]||=e=>g(e,`groups`)},null,8,[`modelValue`,`suggestions`,`placeholder`]),V(`small`,rn,e(T(r)(`serviceConfigGeneral.groupsHint`)),1)]),V(`div`,an,[V(`div`,on,[n[20]||=V(`i`,{class:`pi pi-info-circle`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.description`)),1)]),p(T(L),{modelValue:E.value.description,"onUpdate:modelValue":n[7]||=e=>E.value.description=e,class:`config-card__input`,rows:2,onBlur:I},null,8,[`modelValue`]),V(`small`,sn,e(T(r)(`serviceConfigGeneral.descriptionHint`)),1)]),V(`div`,cn,[V(`div`,ln,[n[21]||=V(`i`,{class:`pi pi-external-link`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.url`)),1)]),p(T(A),{modelValue:E.value.url,"onUpdate:modelValue":n[8]||=e=>E.value.url=e,class:`config-card__input`,placeholder:`https://...`,onBlur:I,onKeydown:v(i(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),V(`small`,un,e(T(r)(`serviceConfigGeneral.urlHint`)),1)]),V(`div`,dn,[V(`div`,fn,[n[22]||=V(`i`,{class:`pi pi-book`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.openapiUrl`)),1)]),p(T(A),{modelValue:E.value.openapiUrl,"onUpdate:modelValue":n[9]||=e=>E.value.openapiUrl=e,class:`config-card__input`,placeholder:`https://.../swagger.json`,onBlur:I,onKeydown:v(i(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),V(`small`,pn,e(T(r)(`serviceConfigGeneral.openapiUrlHint`)),1)]),V(`div`,mn,[V(`div`,hn,[n[23]||=V(`i`,{class:`pi pi-github`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.git`)),1)]),p(T(A),{modelValue:E.value.gitRemote,"onUpdate:modelValue":n[10]||=e=>E.value.gitRemote=e,class:`config-card__input`,placeholder:`git@github.com:org/repo.git`,onBlur:I,onKeydown:v(i(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),V(`small`,gn,e(T(r)(`serviceConfigGeneral.gitRemoteHint`)),1),p(T(A),{modelValue:E.value.gitHome,"onUpdate:modelValue":n[11]||=e=>E.value.gitHome=e,class:`config-card__input`,style:{"margin-top":`0.5rem`},placeholder:`https://github.com/org/repo`,onBlur:I,onKeydown:v(i(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),V(`small`,_n,e(T(r)(`serviceConfigGeneral.gitHomeHint`)),1)]),V(`div`,vn,[V(`div`,yn,[n[24]||=V(`i`,{class:`pi pi-hashtag`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.meta`)),1)]),V(`small`,bn,e(T(r)(`serviceConfigGeneral.metaHint`)),1),V(`div`,xn,[(G(!0),m(y,null,j(D.value,(e,t)=>(G(),m(`div`,{key:t,class:`config-meta__row`},[p(T(A),{"model-value":e.key,placeholder:T(r)(`serviceConfigGeneral.metaKeyPlaceholder`),class:`config-meta__input`,"onUpdate:modelValue":e=>M(t,`key`,e),onBlur:I,onKeydown:v(i(I,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(T(A),{"model-value":e.value,placeholder:T(r)(`serviceConfigGeneral.metaValuePlaceholder`),class:`config-meta__input config-meta__input--wide`,"onUpdate:modelValue":e=>M(t,`value`,e),onBlur:I,onKeydown:v(i(I,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(T(c),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{ee(t),I()}},null,8,[`onClick`])]))),128)),p(T(c),{label:T(r)(`serviceConfigGeneral.addEntry`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`config-meta__add`,onClick:k},null,8,[`label`])])]),V(`div`,Sn,[V(`div`,Cn,[n[25]||=V(`i`,{class:`pi pi-refresh`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.autoRestart`)),1)]),p(T(Z),{modelValue:E.value.autoRestart,"onUpdate:modelValue":n[12]||=e=>E.value.autoRestart=e,onChange:I},null,8,[`modelValue`])]),V(`div`,wn,[V(`div`,Tn,[n[26]||=V(`i`,{class:`pi pi-trash`},null,-1),V(`span`,null,e(T(r)(`serviceConfigGeneral.clearLogs`)),1)]),p(T(Z),{modelValue:E.value.clearLogsOnStart,"onUpdate:modelValue":n[13]||=e=>E.value.clearLogsOnStart=e,onChange:I},null,8,[`modelValue`])])]))}}),[[`__scopeId`,`data-v-6fef6778`]]),On={class:`docker-config`},kn={class:`docker-config__section`},An={for:`docker-mode-image`,class:`docker-config__section-title`},jn={class:`docker-config__mode-toggle`},Mn={class:`docker-config__mode-option`},Nn={class:`docker-config__mode-option`},Pn={key:0,class:`docker-config__section`},Fn={for:`docker-image`,class:`docker-config__label`},In={class:`docker-config__section`},Ln={class:`docker-config__section`},Rn={for:`docker-build-context`,class:`docker-config__label`},zn={class:`docker-config__section`},Bn={for:`docker-add-build-arg`,class:`docker-config__label`},Vn={class:`docker-config__kv-list`},Hn={class:`docker-config__section`},Un={for:`docker-target-stage`,class:`docker-config__label`},Wn={class:`docker-config__section`},Gn={for:`docker-user`,class:`docker-config__section-title`},Kn={class:`docker-config__section`},qn={for:`docker-user`,class:`docker-config__label`},Jn={class:`docker-config__section`},Yn={for:`docker-network-mode`,class:`docker-config__label`},Xn={key:2,class:`docker-config__section`},Zn={for:`docker-add-port`,class:`docker-config__label`},Qn={class:`docker-config__list`},$n={class:`docker-config__section`},er={for:`docker-add-volume`,class:`docker-config__label`},tr={class:`docker-config__checkbox-row`},nr={for:`mountRootpath`,class:`docker-config__checkbox-label`},rr={class:`docker-config__list`},ir={class:`docker-config__section`},ar={class:`docker-config__checkbox-row`},or={for:`useNativeCommand`,class:`docker-config__checkbox-label`},sr={key:0,class:`docker-config__shell-row`},cr={for:`docker-native-shell`,class:`docker-config__label`},lr={class:`docker-config__hint`},ur={key:1,class:`docker-config__mode-toggle docker-config__mode-toggle--indented`},dr={class:`docker-config__mode-option`},fr={class:`docker-config__mode-option`},pr={class:`docker-config__section`},mr={for:`docker-entrypoint`,class:`docker-config__label`},hr={class:`docker-config__section`},gr={for:`docker-command`,class:`docker-config__label`},_r={class:`docker-config__section`},vr={for:`docker-add-bootstrap`,class:`docker-config__section-title`},yr={class:`docker-config__hint-inline`},br={class:`docker-config__bootstrap-row`},xr={class:`docker-config__bootstrap-field`},Sr=[`for`],Cr={class:`docker-config__bootstrap-field`},wr=[`for`],Tr={class:`docker-config__bootstrap-field docker-config__bootstrap-field--wide`},Er=[`for`],Dr={class:`docker-config__bootstrap-field`},Or=[`for`],kr={class:`docker-config__bootstrap-actions`},Ar={class:`docker-config__section`},jr=w(Y({__name:`ServiceConfigDocker`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let{t:a}=K(),o=t,s=n,l=o.service.dockerConfig??{},d=C(l.dockerfile?`build`:`image`),h=C(l.image??``),g=C(l.dockerfile??``),_=C(l.buildContext??``),b=C(Object.entries(l.buildArgs??{}).map(([e,t])=>({key:e,value:t}))),x=C(l.targetStage??``),w=C(l.networkMode??`host`),E=C([...l.ports??[]]),D=C([...l.volumes??[]]),O=C(l.mountRootpath??!1),k=C(l.entrypoint??``),ee=C(l.command??``),M=C(l.user??``),N=C(l.useNativeCommand??!1),P=C(l.nativeCommandMode??`isolated`),F=C(l.nativeShell??`sh`),I=[{label:`sh (POSIX)`,value:`sh`},{label:`bash`,value:`bash`},{label:`zsh`,value:`zsh`},{label:`ash (Alpine)`,value:`ash`}],L=C([...l.bootstrapCommands??[]]),R=C(!1),te=[{label:`Host (--network host)`,value:`host`},{label:`Bridge`,value:`bridge`}];function z(){b.value=[...b.value,{key:``,value:``}]}function ne(e){b.value=b.value.filter((t,n)=>n!==e)}function re(e,t,n){b.value=b.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function U(){E.value=[...E.value,``]}function ie(e){E.value=E.value.filter((t,n)=>n!==e)}function ae(e,t){E.value=E.value.map((n,r)=>r===e?t:n)}function W(){D.value=[...D.value,``]}function q(e){D.value=D.value.filter((t,n)=>n!==e)}function oe(e,t){D.value=D.value.map((n,r)=>r===e?t:n)}function se(){L.value=[...L.value,{id:me(),label:`Bootstrap`,entrypoint:`/bin/sh`,command:`-c ""`,user:void 0}]}function ce(e){L.value=L.value.filter((t,n)=>n!==e)}function le(e,t,n){L.value=L.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function J(e,t){let n=[...L.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],L.value=n)}let fe=null;function Y(){fe&&clearTimeout(fe),fe=setTimeout(()=>{let e={};for(let{key:t,value:n}of b.value)t.trim()&&(e[t.trim()]=n);s(`save`,{image:d.value===`image`&&h.value||void 0,dockerfile:d.value===`build`&&g.value||void 0,buildContext:_.value||void 0,buildArgs:e,targetStage:x.value||void 0,networkMode:w.value,ports:E.value.filter(Boolean),volumes:D.value.filter(Boolean),mountRootpath:O.value,entrypoint:k.value||void 0,command:ee.value||void 0,user:M.value||void 0,useNativeCommand:N.value,nativeCommandMode:P.value,nativeShell:F.value,bootstrapCommands:L.value}),fe=null},150)}function pe(e){ce(e),Y()}function he(e,t){J(e,t),Y()}function ge(e){ne(e),Y()}function X(e){ie(e),Y()}function Z(e){q(e),Y()}return(t,n)=>(G(),m(`div`,On,[V(`div`,kn,[V(`label`,An,e(T(a)(`serviceConfigDocker.imageSource`)),1),V(`div`,jn,[V(`label`,Mn,[de(V(`input`,{id:`docker-mode-image`,"onUpdate:modelValue":n[0]||=e=>d.value=e,type:`radio`,value:`image`,class:`docker-config__radio`,onChange:Y},null,544),[[ue,d.value]]),u(` `+e(T(a)(`serviceConfigDocker.pullImage`)),1)]),V(`label`,Nn,[de(V(`input`,{"onUpdate:modelValue":n[1]||=e=>d.value=e,type:`radio`,value:`build`,class:`docker-config__radio`,onChange:Y},null,544),[[ue,d.value]]),u(` `+e(T(a)(`serviceConfigDocker.buildDockerfile`)),1)])])]),d.value===`image`?(G(),m(`div`,Pn,[V(`label`,Fn,e(T(a)(`serviceConfigDocker.image`)),1),p(T(A),{id:`docker-image`,modelValue:h.value,"onUpdate:modelValue":n[2]||=e=>h.value=e,placeholder:T(a)(`serviceConfigDocker.imagePlaceholder`),class:`docker-config__input`,onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):B(``,!0),d.value===`build`?(G(),m(y,{key:1},[V(`div`,In,[n[18]||=V(`label`,{for:`docker-dockerfile-btn`,class:`docker-config__label`},`Dockerfile`,-1),p(T(c),{id:`docker-dockerfile-btn`,label:T(a)(`serviceConfigDocker.editDockerfile`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,size:`small`,onClick:n[3]||=e=>R.value=!0},null,8,[`label`]),p(T(S),{visible:R.value,"onUpdate:visible":n[6]||=e=>R.value=e,header:T(a)(`serviceConfigDocker.editDockerfile`),modal:``,style:{width:`800px`}},{footer:r(()=>[p(T(c),{label:T(a)(`serviceConfigDocker.closeDockerfile`),icon:`pi pi-times`,onClick:n[5]||=()=>{R.value=!1,Y()}},null,8,[`label`])]),default:r(()=>[p(f,{modelValue:g.value,"onUpdate:modelValue":n[4]||=e=>g.value=e,language:`dockerfile`,style:{height:`400px`}},null,8,[`modelValue`])]),_:1},8,[`visible`,`header`])]),V(`div`,Ln,[V(`label`,Rn,e(T(a)(`serviceConfigDocker.buildContext`)),1),p(T(A),{id:`docker-build-context`,modelValue:_.value,"onUpdate:modelValue":n[7]||=e=>_.value=e,placeholder:`.`,class:`docker-config__input`,onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),V(`div`,zn,[V(`label`,Bn,e(T(a)(`serviceConfigDocker.buildArgs`)),1),V(`div`,Vn,[(G(!0),m(y,null,j(b.value,(e,t)=>(G(),m(`div`,{key:t,class:`docker-config__kv-row`},[p(T(A),{"model-value":e.key,placeholder:T(a)(`serviceConfigDocker.argNamePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>re(t,`key`,e),onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(T(A),{"model-value":e.value,placeholder:T(a)(`serviceConfigDocker.argValuePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>re(t,`value`,e),onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(T(c),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>ge(t)},null,8,[`onClick`])]))),128)),p(T(c),{id:`docker-add-build-arg`,label:T(a)(`serviceConfigDocker.addBuildArg`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:z},null,8,[`label`])])]),V(`div`,Hn,[V(`label`,Un,e(T(a)(`serviceConfigDocker.targetStage`)),1),p(T(A),{id:`docker-target-stage`,modelValue:x.value,"onUpdate:modelValue":n[8]||=e=>x.value=e,placeholder:T(a)(`serviceConfigDocker.targetStagePlaceholder`),class:`docker-config__input`,onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)):B(``,!0),p(T(ke)),V(`div`,Wn,[V(`label`,Gn,e(T(a)(`serviceConfigDocker.runtimeConfig`)),1)]),V(`div`,Kn,[V(`label`,qn,e(T(a)(`serviceConfigDocker.userGroup`)),1),p(T(A),{id:`docker-user`,modelValue:M.value,"onUpdate:modelValue":n[9]||=e=>M.value=e,placeholder:T(a)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),V(`div`,Jn,[V(`label`,Yn,e(T(a)(`serviceConfigDocker.networkMode`)),1),p(T(H),{"input-id":`docker-network-mode`,modelValue:w.value,"onUpdate:modelValue":n[10]||=e=>w.value=e,options:te,"option-label":`label`,"option-value":`value`,class:`docker-config__select`,onChange:Y},null,8,[`modelValue`])]),w.value===`bridge`?(G(),m(`div`,Xn,[V(`label`,Zn,e(T(a)(`serviceConfigDocker.portMappings`)),1),V(`div`,Qn,[(G(!0),m(y,null,j(E.value,(e,t)=>(G(),m(`div`,{key:t,class:`docker-config__list-row`},[p(T(A),{"model-value":e,placeholder:T(a)(`serviceConfigDocker.portPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ae(t,e),onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(T(c),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>X(t)},null,8,[`onClick`])]))),128)),p(T(c),{id:`docker-add-port`,label:T(a)(`serviceConfigDocker.addPort`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:U},null,8,[`label`])])])):B(``,!0),V(`div`,$n,[V(`label`,er,e(T(a)(`serviceConfigDocker.volumes`)),1),V(`div`,tr,[p(T(_e),{modelValue:O.value,"onUpdate:modelValue":n[11]||=e=>O.value=e,binary:!0,"input-id":`mountRootpath`,onChange:Y},null,8,[`modelValue`]),V(`label`,nr,e(T(a)(`serviceConfigDocker.autoMount`)),1)]),V(`div`,rr,[(G(!0),m(y,null,j(D.value,(e,t)=>(G(),m(`div`,{key:t,class:`docker-config__list-row`},[p(T(A),{"model-value":e,placeholder:T(a)(`serviceConfigDocker.volumePlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>oe(t,e),onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),p(T(c),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Z(t)},null,8,[`onClick`])]))),128)),p(T(c),{id:`docker-add-volume`,label:T(a)(`serviceConfigDocker.addVolume`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:W},null,8,[`label`])])]),p(T(ke)),V(`div`,ir,[V(`div`,ar,[p(T(_e),{modelValue:N.value,"onUpdate:modelValue":n[12]||=e=>N.value=e,binary:!0,"input-id":`useNativeCommand`,onChange:Y},null,8,[`modelValue`]),V(`label`,or,e(T(a)(`serviceConfigDocker.runNative`)),1)]),n[21]||=V(`span`,{class:`docker-config__hint`},` When enabled, the service command is executed directly inside the container (ignores CMD override below). `,-1),N.value?(G(),m(`div`,sr,[V(`label`,cr,e(T(a)(`serviceConfigDocker.shell`)),1),p(T(H),{"input-id":`docker-native-shell`,modelValue:F.value,"onUpdate:modelValue":n[13]||=e=>F.value=e,options:I,"option-label":`label`,"option-value":`value`,class:`docker-config__select docker-config__select--small`,editable:``,placeholder:T(a)(`serviceConfigDocker.shellPlaceholder`),onChange:Y},null,8,[`modelValue`,`placeholder`]),V(`span`,lr,[u(e(T(a)(`serviceConfigDocker.shellHint`))+` (`,1),n[19]||=V(`code`,null,`shell -c '...'`,-1),n[20]||=u(`)`,-1)])])):B(``,!0),N.value?(G(),m(`div`,ur,[V(`label`,dr,[de(V(`input`,{"onUpdate:modelValue":n[14]||=e=>P.value=e,type:`radio`,value:`isolated`,class:`docker-config__radio`,onChange:Y},null,544),[[ue,P.value]]),u(` `+e(T(a)(`serviceConfigDocker.isolated`)),1)]),V(`label`,fr,[de(V(`input`,{"onUpdate:modelValue":n[15]||=e=>P.value=e,type:`radio`,value:`shared`,class:`docker-config__radio`,onChange:Y},null,544),[[ue,P.value]]),u(` `+e(T(a)(`serviceConfigDocker.shared`)),1)])])):B(``,!0)]),N.value?B(``,!0):(G(),m(y,{key:3},[n[22]||=V(`div`,{class:`docker-config__section`},[V(`label`,{for:`docker-entrypoint`,class:`docker-config__section-title`},`Override`)],-1),V(`div`,pr,[V(`label`,mr,e(T(a)(`serviceConfigDocker.entrypoint`)),1),p(T(A),{id:`docker-entrypoint`,modelValue:k.value,"onUpdate:modelValue":n[16]||=e=>k.value=e,placeholder:T(a)(`serviceConfigDocker.entrypointPlaceholder`),class:`docker-config__input`,onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),V(`div`,hr,[V(`label`,gr,e(T(a)(`serviceConfigDocker.cmdOverride`)),1),p(T(A),{id:`docker-command`,modelValue:ee.value,"onUpdate:modelValue":n[17]||=e=>ee.value=e,placeholder:T(a)(`serviceConfigDocker.cmdPlaceholder`),class:`docker-config__input`,onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)),p(T(ke)),V(`div`,_r,[V(`label`,vr,[u(e(T(a)(`serviceConfigDocker.bootstrapCommands`))+` `,1),V(`span`,yr,` — `+e(T(a)(`serviceConfigDocker.bootstrapCommandsHint`)),1)])]),(G(!0),m(y,null,j(L.value,(e,t)=>(G(),m(`div`,{key:e.id,class:`docker-config__bootstrap-card`},[V(`div`,br,[V(`div`,xr,[V(`label`,{class:`docker-config__label`,for:`docker-bootstrap-label-${t}`},`Label`,8,Sr),p(T(A),{id:`docker-bootstrap-label-${t}`,"model-value":e.label,placeholder:T(a)(`serviceConfigDocker.bootstrapLabelPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>le(t,`label`,e),onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),V(`div`,Cr,[V(`label`,{class:`docker-config__label`,for:`docker-bootstrap-entrypoint-${t}`},`Entrypoint`,8,wr),p(T(A),{id:`docker-bootstrap-entrypoint-${t}`,"model-value":e.entrypoint??``,placeholder:`/bin/sh`,class:`docker-config__input`,"onUpdate:modelValue":e=>le(t,`entrypoint`,e),onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),V(`div`,Tr,[V(`label`,{class:`docker-config__label`,for:`docker-bootstrap-command-${t}`},`Command`,8,Er),p(T(A),{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:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),V(`div`,Dr,[V(`label`,{class:`docker-config__label`,for:`docker-bootstrap-user-${t}`},`User:Group`,8,Or),p(T(A),{id:`docker-bootstrap-user-${t}`,"model-value":e.user??``,placeholder:T(a)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,"onUpdate:modelValue":e=>le(t,`user`,e),onBlur:Y,onKeydown:v(i(Y,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),V(`div`,kr,[p(T(c),{icon:`pi pi-arrow-up`,text:``,rounded:``,size:`small`,disabled:t===0,onClick:e=>he(t,-1)},null,8,[`disabled`,`onClick`]),p(T(c),{icon:`pi pi-arrow-down`,text:``,rounded:``,size:`small`,disabled:t===L.value.length-1,onClick:e=>he(t,1)},null,8,[`disabled`,`onClick`]),p(T(c),{icon:`pi pi-times`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>pe(t)},null,8,[`onClick`])])])]))),128)),V(`div`,Ar,[p(T(c),{id:`docker-add-bootstrap`,label:T(a)(`serviceConfigDocker.addBootstrapCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:se},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-91c13548`]]),Mr={class:`config-commands`},Nr={class:`config-commands__execution`},Pr={class:`config-card config-card--execution`},Fr={class:`config-card__header`},Ir={class:`config-card__hint`},Lr={class:`config-card config-card--execution`},Rr={class:`config-card__header`},zr={key:0,class:`runner-option`},Br={class:`runner-option`},Vr={class:`config-commands__tab-content`},Hr={key:0,class:`config-commands__empty`},Ur={class:`config-commands__row`},Wr={class:`config-commands__field`},Gr=[`for`],Kr={class:`config-commands__field config-commands__field--wide`},qr=[`for`],Jr={class:`config-commands__field`},Yr=[`for`],Xr={class:`config-commands__actions-cell`},Zr={class:`config-commands__footer`},Qr={class:`config-commands__tab-content`},$r=`__inherit__`,ei=w(Y({__name:`ServiceConfigCommands`,props:{service:{}},emits:[`save`,`dockerSave`],setup(t,{emit:n}){let a=t,s=n,{t:l}=K(),u=U(),d=null,f=C({agentId:a.service.agentId??$r,runner:a.service.runner});J(()=>a.service,e=>{f.value={agentId:e.agentId??$r,runner:e.runner}});let g=h(()=>[{label:l(`serviceConfigCommands.native`),value:`native`,icon:`pi pi-desktop`},{label:l(`serviceConfigCommands.docker`),value:`docker`,icon:`pi pi-box`}]),_=h(()=>g.value.find(e=>e.value===f.value.runner)?.icon??`pi pi-box`),b=h(()=>[{label:l(`serviceForm.agentInherit`),value:$r},...u.agents.map(e=>({label:`${e.config.name} (${e.status.connected?l(`serviceConfigCommands.online`):l(`serviceConfigCommands.offline`)})`,value:e.config.id}))]),x=C([...a.service.commands??[]]);J(()=>a.service,e=>{d||(x.value=[...e.commands??[]])});function S(){x.value=[...x.value,{id:me(),label:``,command:``,cwd:void 0,shell:!0}]}function w(e){x.value=x.value.filter((t,n)=>n!==e)}function E(e,t,n){x.value=x.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function D(){d&&clearTimeout(d),d=setTimeout(()=>{s(`save`,{agentId:f.value.agentId===$r?null:f.value.agentId||null,runner:f.value.runner,commands:x.value}),d=null},150)}function O(e){s(`dockerSave`,e)}function k(e){w(e),D()}return(n,a)=>(G(),m(`div`,Mr,[V(`div`,Nr,[V(`div`,Pr,[V(`div`,Fr,[a[2]||=V(`i`,{class:`pi pi-server`},null,-1),V(`span`,null,e(T(l)(`serviceConfigCommands.agent`)),1)]),p(T(H),{modelValue:f.value.agentId,"onUpdate:modelValue":a[0]||=e=>f.value.agentId=e,options:b.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:D},null,8,[`modelValue`,`options`]),V(`small`,Ir,e(T(l)(`serviceForm.agentHintEdit`)),1)]),V(`div`,Lr,[V(`div`,Rr,[V(`i`,{class:o(_.value)},null,2),V(`span`,null,e(T(l)(`serviceConfigCommands.runner`)),1)]),p(T(H),{modelValue:f.value.runner,"onUpdate:modelValue":a[1]||=e=>f.value.runner=e,options:g.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:D},{value:r(t=>[t.value?(G(),m(`div`,zr,[V(`i`,{class:o(g.value.find(e=>e.value===t.value)?.icon)},null,2),V(`span`,null,e(g.value.find(e=>e.value===t.value)?.label),1)])):B(``,!0)]),option:r(t=>[V(`div`,Br,[V(`i`,{class:o(t.option.icon)},null,2),V(`span`,null,e(t.option.label),1)])]),_:1},8,[`modelValue`,`options`])])]),p(T(be),{value:`0`},{default:r(()=>[p(T(ve),null,{default:r(()=>[p(T(Q),{value:`0`},{default:r(()=>[a[3]||=V(`i`,{class:`pi pi-desktop tab-icon`},null,-1),V(`span`,null,e(T(l)(`serviceConfigCommands.native`)),1)]),_:1}),p(T(Q),{value:`1`},{default:r(()=>[a[4]||=V(`i`,{class:`pi pi-box tab-icon`},null,-1),V(`span`,null,e(T(l)(`serviceConfigCommands.docker`)),1)]),_:1})]),_:1}),p(T(ye),null,{default:r(()=>[p(T($),{value:`0`},{default:r(()=>[V(`div`,Vr,[x.value.length===0?(G(),m(`div`,Hr,[V(`p`,null,e(T(l)(`serviceConfigCommands.noCommands`)),1)])):B(``,!0),(G(!0),m(y,null,j(x.value,(t,n)=>(G(),m(`div`,{key:t.id,class:`config-card`},[V(`div`,Ur,[V(`div`,Wr,[V(`label`,{class:`config-commands__label`,for:`cmd-label-${n}`},e(T(l)(`serviceConfigCommands.labelPlaceholder`)),9,Gr),p(T(A),{id:`cmd-label-${n}`,"model-value":t.label,placeholder:T(l)(`serviceConfigCommands.labelPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>E(n,`label`,e),onBlur:D,onKeydown:v(i(D,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),V(`div`,Kr,[V(`label`,{class:`config-commands__label`,for:`cmd-command-${n}`},e(T(l)(`serviceConfigCommands.commandPlaceholder`)),9,qr),p(T(A),{id:`cmd-command-${n}`,"model-value":t.command,placeholder:`e.g. npm start`,class:`config-card__input`,"onUpdate:modelValue":e=>E(n,`command`,e),onBlur:D,onKeydown:v(i(D,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),V(`div`,Jr,[V(`label`,{class:`config-commands__label`,for:`cmd-cwd-${n}`},`Working Dir (optional)`,8,Yr),p(T(A),{id:`cmd-cwd-${n}`,"model-value":t.cwd??``,placeholder:T(l)(`serviceConfigCommands.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>E(n,`cwd`,e),onBlur:D,onKeydown:v(i(D,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),V(`div`,Xr,[p(T(c),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>k(n)},null,8,[`onClick`])])])]))),128)),V(`div`,Zr,[p(T(c),{label:T(l)(`serviceConfigCommands.addCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:S},null,8,[`label`])])])]),_:1}),p(T($),{value:`1`},{default:r(()=>[V(`div`,Qr,[p(jr,{service:t.service,onSave:O},null,8,[`service`])])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-df297a71`]]),ti={class:`config-env`,"data-testid":`config-env`},ni={key:0,class:`active-env-display`},ri={class:`active-env-label`},ii={key:1,class:`inheritance-toggle`},ai={class:`inheritance-label`},oi={class:`inherited-header`},si={class:`inherited-row-key`},ci={class:`preview-key`},li={class:`value-row`},ui=[`onClick`],di=[`onClick`],fi={key:0,class:`secret-mask`},pi={key:1,class:`preview-value`},mi={class:`config-env__header`},hi={class:`config-env__title`},gi={class:`config-env__actions`},_i={key:3,class:`variables-view`},vi={key:0},yi={key:1,class:`empty-state`},bi={class:`inherited-header`},xi={class:`passthrough-info`},Si={class:`preview-key`},Ci={key:0,class:`preview-value`},wi={key:1,class:`passthrough-undefined`},Ti={key:4,class:`empty-state`},Ei={key:5,class:`empty-state`},Di={class:`editor-container`},Oi={key:0,class:`editor-env-banner`},ki={class:`editor-env-text`},Ai={class:`editor-section`,"data-testid":`variables-editor`},ji={key:0,class:`loading-container`},Mi={key:1,class:`preview-container`},Ni={class:`preview-info`},Pi={class:`preview-key`},Fi={class:`value-row`},Ii=[`onClick`],Li=[`onClick`],Ri={key:0,class:`secret-mask`},zi={key:1,class:`preview-value`},Bi=w(Y({__name:`ServiceConfigEnv`,props:{service:{},projectId:{},activeEnvironmentId:{}},setup(s){let l=s,{t:d}=K(),f=re(),g=ee(),_=E(),v=O(),y=N(),w=M(),D=h(()=>v.getByRef({id:l.projectId,orgId:y.activeOrgId})?.activeEnvironmentId??null),k=h(()=>_.findServiceEnvironment(l.service.id,D.value??``)),A=C(!1),j=C(!1),P=C(!1),I=C(!1),L=C(null),R=C(null),{suggestions:te,meta:ne,search:H}=we(()=>R.value??L.value),U=C(new Set);function ie(e){let t=new Set(U.value);t.has(e)?t.delete(e):t.add(e),U.value=t}let q=C(null);function se(e,t){navigator.clipboard.writeText(t),q.value=e,setTimeout(()=>{q.value===e&&(q.value=null)},1500)}let ce=C({}),ue=C(!1),{values:de,agentEntry:fe,urlHost:Y}=Se({projectId:()=>l.projectId,environmentId:()=>D.value,agentId:()=>l.service.agentId}),pe=h(()=>{let e={...de.value};Object.assign(e,a(l.service.ports)),e[`service.NAME`]=l.service.name,e[`service.ID`]=l.service.id,Object.assign(e,x(l.service,Y.value)),l.service.url&&(e[`service.BASE_URL`]=l.service.url);let t=me(fe.value?.status?.cwd,fe.value?.status?.home);return t&&(e[`service.CWD`]=t),e});function me(e,t){let n=(l.service.resolvedCwd??l.service.cwd??``).trim();return n?n.startsWith(`~/`)&&t?t+n.slice(1):n.includes(`$`)?null:n.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(n)?n:null:e??null}let X=h(()=>fe.value?.config.passthroughEnv??[]),_e=h(()=>X.value.length>0);async function ve(){if(!l.service.agentId||!_e.value){ce.value={};return}ue.value=!0;try{ce.value=await n.agent.getPassthroughEnv.query({id:l.service.agentId})}catch{ce.value={}}finally{ue.value=!1}}let ye=h(()=>X.value.map(e=>({name:e,value:ce.value[e]??null}))),be=h(()=>!k.value||!D.value?!0:k.value.parentIds?.includes(D.value)??!0);async function Q(e){if(!(!k.value||!D.value)){I.value=!0;try{await _.update({id:k.value.id,parentIds:e?[D.value]:[]}),await Ae()}catch(e){f.add({severity:`error`,summary:d(`serviceConfigEnv.error`),detail:e.message??d(`serviceConfigEnv.failedToUpdateInheritance`),life:5e3})}finally{I.value=!1}}}let $=h(()=>{let e=v.getByRef({id:l.projectId,orgId:y.activeOrgId});return e?.activeEnvironmentId?_.getById(e.activeEnvironmentId):null});function Te(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 Ee=h(()=>L.value?Te(L.value.variables):[]),De=h(()=>{if(!k.value||!L.value?.sources)return Ee.value;let e=k.value.id;return Ee.value.filter(t=>L.value.sources[t.variableId]?.environmentId===e)}),Oe=h(()=>{if(!k.value||!L.value?.sources)return[];let e=k.value.id;return Ee.value.filter(t=>L.value.sources[t.variableId]?.environmentId!==e)}),ke=h(()=>{if(!L.value?.sources)return{};let e={};for(let[t,n]of Object.entries(L.value.sources))e[t]={environmentId:n.environmentId,overridden:n.overridden,...n.resolvedFrom?{resolvedFrom:n.resolvedFrom}:{},...n.overriddenBy?{overriddenBy:n.overriddenBy}:{}};return e});async function Ae(){if(k.value)try{L.value=await _.resolve(k.value.id)}catch(e){console.error(`Failed to resolve environment:`,e)}}async function je(){if(D.value)try{R.value=await _.resolve(D.value)}catch{}}async function Me(){P.value=!0;try{await Fe(),await Ae(),j.value=!0}catch(e){f.add({severity:`error`,summary:d(`serviceConfigEnv.error`),detail:e.message??d(`serviceConfigEnv.failedToLoadPreview`),life:5e3})}finally{P.value=!1}}let Ne=h(()=>L.value?Object.entries(L.value.env).map(([e,t])=>({key:e,value:Object.entries(pe.value).reduce((e,[t,n])=>e.replaceAll(`{{${t}}}`,n),t)})):[]);function Pe(e,t){return t?`***`:e.length>50?e.substring(0,47)+`...`:e}async function Fe(){if(k.value)return k.value;if(!D.value)return null;let e=$.value;return e?(await _.create({name:`${l.service.name??l.service.id} — ${e.name}`,projectId:l.projectId,scope:`service`,reference:l.service.id,activateOn:D.value,parentIds:[D.value],variables:{}}),k.value):null}let Ie=h(()=>{let e=w.getByService(l.service.id);return e.length>0?e[0]:null}),Le=h(()=>{let e=Ie.value?.state;return e===`running`||e===`errored`});async function Re(){await Fe(),A.value=!0,await Promise.all([Ae(),je()])}function ze(){if(A.value=!1,!Le.value||!Ie.value)return;let e=Ie.value.state===`running`?`restart`:`start`,t=l.service.name||l.service.id;g.require({message:d(e===`restart`?`serviceConfigEnv.restartConfirmMsg`:`serviceConfigEnv.startConfirmMsg`,{name:t}),header:d(e===`restart`?`serviceConfigEnv.restartTitle`:`serviceConfigEnv.startTitle`),icon:`pi pi-refresh`,acceptLabel:d(e===`restart`?`serviceConfigEnv.restartTitle`:`actions.start`),rejectLabel:d(`serviceConfigEnv.notNow`),accept:async()=>{try{let t=l.service.agentId;if(!t)return;e===`restart`?(await w.restart(t,l.service.id),f.add({severity:`success`,summary:d(`serviceConfigEnv.serviceRestarted`),life:3e3})):(await w.start(t,l.service.id),f.add({severity:`success`,summary:d(`serviceConfigEnv.serviceStarted`),life:3e3}))}catch(t){f.add({severity:`error`,summary:d(`serviceConfigEnv.error`),detail:t.message??d(`serviceConfigEnv.failedToAction`,{action:e}),life:5e3})}}})}return J($,async e=>{e&&await Promise.all([Ae(),je()])}),J(()=>l.service.agentId,()=>{ve()}),ae(async()=>{l.projectId&&await _.fetchAll(l.projectId),await Promise.all([Ae(),je(),ve()])}),(n,a)=>(G(),m(`div`,ti,[D.value?(G(),m(`div`,ni,[V(`span`,ri,e(T(d)(`serviceConfigEnv.activeEnvironment`)),1),p(xe,{"environment-id":D.value},null,8,[`environment-id`])])):B(``,!0),k.value&&$.value?(G(),m(`div`,ii,[p(T(Z),{"model-value":be.value,disabled:I.value,"onUpdate:modelValue":Q},null,8,[`model-value`,`disabled`]),V(`span`,ai,e(be.value?T(d)(`serviceConfigEnv.inheritsFrom`,{name:$.value.name}):T(d)(`serviceConfigEnv.isolated`,{name:$.value.name})),1)])):B(``,!0),Oe.value.length>0?(G(),t(T(le),{key:2,class:`inherited-accordion`},{default:r(()=>[p(T(W),{value:`inherited`},{default:r(()=>[p(T(oe),null,{default:r(()=>[V(`span`,oi,[a[6]||=V(`i`,{class:`pi pi-arrow-down-left`},null,-1),u(` `+e(T(d)(`serviceConfigEnv.inheritedVars`))+` `,1),p(T(F),{value:String(Oe.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),p(T(z),null,{default:r(()=>[p(T(he),{value:Oe.value,size:`small`,"show-headers":!1},{default:r(()=>[p(T(ge),{style:{width:`35%`}},{body:r(({data:n})=>[V(`div`,si,[V(`code`,ci,e(n.key),1),ke.value[n.variableId]?(G(),t(xe,{key:0,"environment-id":ke.value[n.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):B(``,!0)])]),_:1}),p(T(ge),{style:{width:`65%`}},{body:r(({data:t})=>[V(`span`,li,[V(`span`,{class:`value-actions`,onClick:a[0]||=i(()=>{},[`stop`])},[t.slot.isSecret?(G(),m(`i`,{key:0,class:o([U.value.has(t.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:e=>ie(t.variableId)},null,10,ui)):B(``,!0),V(`i`,{class:o([q.value===t.variableId?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:e=>se(t.variableId,t.slot.pre+t.slot.value+t.slot.post)},null,10,di)]),t.slot.isSecret&&!U.value.has(t.variableId)?(G(),m(`span`,fi,`***`)):(G(),m(`code`,pi,e(t.slot.pre)+e(t.slot.value)+e(t.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):B(``,!0),V(`div`,mi,[V(`h3`,hi,e(T(d)(`serviceConfigEnv.envVars`)),1),V(`div`,gi,[p(T(c),{label:T(d)(`serviceConfigEnv.editVariables`),icon:`pi pi-pencil`,size:`small`,outlined:``,"data-testid":`env-edit-btn`,disabled:!D.value,onClick:Re},null,8,[`label`,`disabled`]),p(T(c),{label:T(d)(`serviceConfigEnv.preview`),icon:`pi pi-eye`,size:`small`,outlined:``,severity:`secondary`,loading:P.value,disabled:!D.value,"data-testid":`env-preview-btn`,onClick:Me},null,8,[`label`,`loading`,`disabled`])])]),k.value?(G(),m(`div`,_i,[De.value.length>0?(G(),m(`div`,vi,[p(Ce,{"environment-id":k.value.id,sources:ke.value,"resolved-env":{...R.value?.env??{},...L.value?.env??{}},"service-builtins":pe.value,editable:!1,"show-overrides":!0,"show-override-badge":!0,"show-delete":!1,"show-add-button":!1,onVariablesChanged:Ae},null,8,[`environment-id`,`sources`,`resolved-env`,`service-builtins`])])):(G(),m(`div`,yi,[V(`p`,null,e(T(d)(`serviceConfigEnv.noVarsConfigured`)),1)])),_e.value?(G(),t(T(le),{key:2,class:`inherited-accordion`},{default:r(()=>[p(T(W),{value:`passthrough`},{default:r(()=>[p(T(oe),null,{default:r(()=>[V(`span`,bi,[a[7]||=V(`i`,{class:`pi pi-globe`},null,-1),u(` `+e(T(d)(`agentPage.passthrough.titleShort`))+` `,1),p(T(F),{value:String(X.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),p(T(z),null,{default:r(()=>[V(`p`,xi,e(T(d)(`serviceConfigEnv.passthroughInfo`)),1),ue.value?(G(),t(T(b),{key:0,style:{width:`24px`,height:`24px`}})):(G(),t(T(he),{key:1,value:ye.value,stripedRows:``,size:`small`},{default:r(()=>[p(T(ge),{field:`name`,header:T(d)(`common.key`),style:{width:`35%`}},{body:r(({data:t})=>[V(`code`,Si,e(t.name),1)]),_:1},8,[`header`]),p(T(ge),{header:T(d)(`common.value`),style:{width:`65%`}},{body:r(({data:t})=>[t.value===null?(G(),m(`span`,wi,e(T(d)(`serviceConfigEnv.undefined`)),1)):(G(),m(`span`,Ci,e(t.value),1))]),_:1},8,[`header`])]),_:1},8,[`value`]))]),_:1})]),_:1})]),_:1})):B(``,!0)])):D.value?(G(),m(`div`,Ei,[V(`p`,null,e(T(d)(`serviceConfigEnv.noVarsConfigured`)),1)])):(G(),m(`div`,Ti,[V(`p`,null,e(T(d)(`serviceConfigEnv.noActiveEnv`)),1)])),p(T(S),{visible:A.value,header:T(d)(`serviceConfigEnv.editVarsHeader`),style:{width:`900px`},modal:``,"onUpdate:visible":a[2]||=e=>{e||ze()}},{footer:r(()=>[p(T(c),{label:T(d)(`actions.close`),icon:`pi pi-times`,onClick:a[1]||=e=>ze()},null,8,[`label`])]),default:r(()=>[V(`div`,Di,[D.value?(G(),m(`div`,Oi,[V(`span`,ki,e(T(d)(`serviceConfigEnv.editingVarsFor`,{name:s.service.name||s.service.id})),1),p(xe,{"environment-id":D.value},null,8,[`environment-id`])])):B(``,!0),V(`div`,Ai,[k.value?(G(),t(Ce,{key:0,"environment-id":k.value.id,editable:!0,sources:ke.value,"autocomplete-enabled":!0,"autocomplete-suggestions":T(te),"autocomplete-meta":T(ne),"resolved-env":{...R.value?.env??{},...L.value?.env??{}},"service-builtins":pe.value,"show-overrides":!0,onVariablesChanged:Ae,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:T(H)},null,8,[`environment-id`,`sources`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`,`onAutocompleteSearch`])):B(``,!0)])])]),_:1},8,[`visible`,`header`]),p(T(S),{visible:j.value,"onUpdate:visible":a[5]||=e=>j.value=e,header:T(d)(`serviceConfigEnv.previewHeader`),style:{width:`700px`},modal:``,"data-testid":`env-preview-dialog`},{footer:r(()=>[p(T(c),{label:T(d)(`actions.close`),icon:`pi pi-times`,onClick:a[4]||=e=>j.value=!1},null,8,[`label`])]),default:r(()=>[P.value?(G(),m(`div`,ji,[p(T(b))])):L.value?(G(),m(`div`,Mi,[V(`p`,Ni,e(T(d)(`serviceConfigEnv.injectedVarsInfo`)),1),p(T(he),{value:Ne.value,stripedRows:``,size:`small`,rows:15,paginator:Ne.value.length>15},{default:r(()=>[p(T(ge),{field:`key`,header:T(d)(`common.key`),style:{width:`35%`}},{body:r(({data:t})=>[V(`code`,Pi,e(t.key),1)]),_:1},8,[`header`]),p(T(ge),{header:T(d)(`common.value`),style:{width:`65%`}},{body:r(({data:t})=>[V(`span`,Fi,[V(`span`,{class:`value-actions`,onClick:a[3]||=i(()=>{},[`stop`])},[L.value.envSecrets.includes(t.key)?(G(),m(`i`,{key:0,class:o([U.value.has(`preview:`+t.key)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:e=>ie(`preview:`+t.key)},null,10,Ii)):B(``,!0),V(`i`,{class:o([q.value===`preview:`+t.key?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:e=>se(`preview:`+t.key,t.value)},null,10,Li)]),L.value.envSecrets.includes(t.key)&&!U.value.has(`preview:`+t.key)?(G(),m(`span`,Ri,`***`)):(G(),m(`span`,zi,e(Pe(t.value,!1)),1))])]),_:1},8,[`header`])]),_:1},8,[`value`,`paginator`])])):B(``,!0)]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-952c6d8e`]]),Vi={class:`config-health`},Hi={class:`config-card config-card--inline`},Ui={class:`config-card__header`},Wi={class:`config-card`},Gi={class:`config-card__header`},Ki={class:`config-card`},qi={class:`config-card__header`},Ji={class:`config-card`},Yi={class:`config-card__header`},Xi={class:`config-card`},Zi={class:`config-card__header`},Qi={key:1,class:`config-card`},$i={class:`config-card__header`},ea={class:`config-card__hint`},ta={class:`config-card`},na={class:`config-card__header`},ra={class:`config-card`},ia={class:`config-card__header`},aa={class:`config-card`},oa={class:`config-card__header`},sa={class:`config-card`},ca={class:`config-card__header`},la=w(Y({__name:`ServiceConfigHealthCheck`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let r=t,a=n,{t:o}=K(),s=C(!!r.service.healthCheck),c=C({type:r.service.healthCheck?.type??`http`,path:r.service.healthCheck?.path??`/health`,interval:r.service.healthCheck?.interval??3e4,timeout:r.service.healthCheck?.timeout??5e3,retries:r.service.healthCheck?.retries??3,method:r.service.healthCheck?.method??`GET`,expectedStatus:r.service.healthCheck?.expectedStatus??200,initialDelay:r.service.healthCheck?.initialDelay??5e3,command:r.service.healthCheck?.command??``}),l=[{label:`HTTP Request`,value:`http`},{label:`Command`,value:`command`}],u=[{label:`GET`,value:`GET`},{label:`HEAD`,value:`HEAD`},{label:`POST`,value:`POST`},{label:`PUT`,value:`PUT`}];J(()=>r.service,e=>{s.value=!!e.healthCheck,c.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 d=null;function f(){d&&clearTimeout(d),d=setTimeout(()=>{if(!s.value)a(`save`,void 0);else{if(c.value.type===`http`&&!c.value.path?.trim()||c.value.type===`command`&&!c.value.command?.trim())return;a(`save`,{type:c.value.type,path:c.value.path,method:c.value.method,expectedStatus:c.value.expectedStatus,command:c.value.command||void 0,interval:c.value.interval,timeout:c.value.timeout,retries:c.value.retries,initialDelay:c.value.initialDelay})}d=null},150)}return(t,n)=>(G(),m(`div`,Vi,[V(`div`,Hi,[V(`div`,Ui,[n[10]||=V(`i`,{class:`pi pi-heart`},null,-1),V(`span`,null,e(T(o)(`serviceConfigHealthCheck.enable`)),1)]),p(T(Z),{modelValue:s.value,"onUpdate:modelValue":n[0]||=e=>s.value=e,onChange:f},null,8,[`modelValue`])]),s.value?(G(),m(y,{key:0},[V(`div`,Wi,[V(`div`,Gi,[n[11]||=V(`i`,{class:`pi pi-cog`},null,-1),V(`span`,null,e(T(o)(`serviceConfigHealthCheck.type`)),1)]),p(T(H),{modelValue:c.value.type,"onUpdate:modelValue":n[1]||=e=>c.value.type=e,options:l,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:f},null,8,[`modelValue`]),n[12]||=V(`small`,{class:`config-card__hint`},`HTTP checks a URL endpoint; Command runs a shell command (exit 0 = healthy)`,-1)]),c.value.type===`http`?(G(),m(y,{key:0},[V(`div`,Ki,[V(`div`,qi,[n[13]||=V(`i`,{class:`pi pi-link`},null,-1),V(`span`,null,e(T(o)(`serviceConfigHealthCheck.path`)),1)]),p(T(A),{modelValue:c.value.path,"onUpdate:modelValue":n[2]||=e=>c.value.path=e,class:`config-card__input`,placeholder:`/health`,onBlur:f,onKeydown:v(i(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),V(`div`,Ji,[V(`div`,Yi,[n[14]||=V(`i`,{class:`pi pi-directions`},null,-1),V(`span`,null,e(T(o)(`serviceConfigHealthCheck.method`)),1)]),p(T(H),{modelValue:c.value.method,"onUpdate:modelValue":n[3]||=e=>c.value.method=e,options:u,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:f},null,8,[`modelValue`])]),V(`div`,Xi,[V(`div`,Zi,[n[15]||=V(`i`,{class:`pi pi-check-circle`},null,-1),V(`span`,null,e(T(o)(`serviceConfigHealthCheck.expectedStatus`)),1)]),p(T(X),{modelValue:c.value.expectedStatus,"onUpdate:modelValue":n[4]||=e=>c.value.expectedStatus=e,class:`config-card__input`,"use-grouping":!1,min:100,max:599,onBlur:f,onKeydown:v(i(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[16]||=V(`small`,{class:`config-card__hint`},`HTTP status code to expect (default 200)`,-1)])],64)):B(``,!0),c.value.type===`command`?(G(),m(`div`,Qi,[V(`div`,$i,[n[17]||=V(`i`,{class:`pi pi-code`},null,-1),V(`span`,null,e(T(o)(`serviceConfigHealthCheck.command`)),1)]),p(T(L),{modelValue:c.value.command,"onUpdate:modelValue":n[5]||=e=>c.value.command=e,class:`config-card__input`,rows:`2`,placeholder:`curl -sf http://localhost:3000/health`,"auto-resize":``,onBlur:f},null,8,[`modelValue`]),V(`small`,ea,e(T(o)(`serviceConfigHealthCheck.commandHint`)),1)])):B(``,!0),V(`div`,ta,[V(`div`,na,[n[18]||=V(`i`,{class:`pi pi-hourglass`},null,-1),V(`span`,null,e(T(o)(`serviceConfigHealthCheck.initialDelay`)),1)]),p(T(X),{modelValue:c.value.initialDelay,"onUpdate:modelValue":n[6]||=e=>c.value.initialDelay=e,class:`config-card__input`,"use-grouping":!1,min:0,onBlur:f,onKeydown:v(i(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[19]||=V(`small`,{class:`config-card__hint`},`Wait before first health check (ms)`,-1)]),V(`div`,ra,[V(`div`,ia,[n[20]||=V(`i`,{class:`pi pi-clock`},null,-1),V(`span`,null,e(T(o)(`serviceConfigHealthCheck.interval`)),1)]),p(T(X),{modelValue:c.value.interval,"onUpdate:modelValue":n[7]||=e=>c.value.interval=e,class:`config-card__input`,"use-grouping":!1,min:1e3,onBlur:f,onKeydown:v(i(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),V(`div`,aa,[V(`div`,oa,[n[21]||=V(`i`,{class:`pi pi-stopwatch`},null,-1),V(`span`,null,e(T(o)(`serviceConfigHealthCheck.timeout`)),1)]),p(T(X),{modelValue:c.value.timeout,"onUpdate:modelValue":n[8]||=e=>c.value.timeout=e,class:`config-card__input`,"use-grouping":!1,min:500,onBlur:f,onKeydown:v(i(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),V(`div`,sa,[V(`div`,ca,[n[22]||=V(`i`,{class:`pi pi-replay`},null,-1),V(`span`,null,e(T(o)(`serviceConfigHealthCheck.retries`)),1)]),p(T(X),{modelValue:c.value.retries,"onUpdate:modelValue":n[9]||=e=>c.value.retries=e,class:`config-card__input`,"use-grouping":!1,min:0,max:10,onBlur:f,onKeydown:v(i(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])],64)):B(``,!0)]))}}),[[`__scopeId`,`data-v-63e32039`]]),ua={class:`config-shortcuts`},da={key:0,class:`config-shortcuts__empty`},fa={class:`config-shortcuts__row`},pa={class:`config-shortcuts__field`},ma=[`for`],ha={class:`config-shortcuts__field config-shortcuts__field--wide`},ga=[`for`],_a={class:`config-shortcuts__field`},va=[`for`],ya={class:`config-shortcuts__actions-cell`},ba={class:`config-shortcuts__footer`},xa=w(Y({__name:`ServiceConfigShortcuts`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let r=t,{t:a}=K(),o=n,s=C([...r.service.shortcuts??[]]),l=null;J(()=>r.service,e=>{l||(s.value=[...e.shortcuts??[]])});function u(){s.value=[...s.value,{id:me(),label:``,command:``,cwd:void 0}]}function d(e){s.value=s.value.filter((t,n)=>n!==e)}function f(e,t,n){s.value=s.value.map((r,i)=>i===e?{...r,[t]:n||void 0}:r)}function h(){l&&clearTimeout(l),l=setTimeout(()=>{o(`save`,s.value),l=null},150)}function g(e){d(e),h()}return(t,n)=>(G(),m(`div`,ua,[s.value.length===0?(G(),m(`div`,da,[V(`p`,null,e(T(a)(`serviceConfigShortcuts.empty`)),1)])):B(``,!0),(G(!0),m(y,null,j(s.value,(t,n)=>(G(),m(`div`,{key:t.id,class:`config-card`},[V(`div`,fa,[V(`div`,pa,[V(`label`,{class:`config-shortcuts__label`,for:`shortcut-label-${n}`},e(T(a)(`serviceConfigShortcuts.label`)),9,ma),p(T(A),{id:`shortcut-label-${n}`,"model-value":t.label,placeholder:T(a)(`serviceConfigShortcuts.labelPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-label-input`,"onUpdate:modelValue":e=>f(n,`label`,e),onBlur:h,onKeydown:v(i(h,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),V(`div`,ha,[V(`label`,{class:`config-shortcuts__label`,for:`shortcut-command-${n}`},e(T(a)(`serviceConfigShortcuts.command`)),9,ga),p(T(A),{id:`shortcut-command-${n}`,"model-value":t.command,placeholder:T(a)(`serviceConfigShortcuts.commandPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-command-input`,"onUpdate:modelValue":e=>f(n,`command`,e),onBlur:h,onKeydown:v(i(h,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),V(`div`,_a,[V(`label`,{class:`config-shortcuts__label`,for:`shortcut-cwd-${n}`},e(T(a)(`serviceConfigShortcuts.workingDir`)),9,va),p(T(A),{id:`shortcut-cwd-${n}`,"model-value":t.cwd??``,placeholder:T(a)(`serviceConfigShortcuts.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>f(n,`cwd`,e),onBlur:h,onKeydown:v(i(h,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),V(`div`,ya,[p(T(c),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>g(n)},null,8,[`onClick`])])])]))),128)),V(`div`,ba,[p(T(c),{label:T(a)(`serviceConfigShortcuts.addShortcut`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,"data-testid":`add-shortcut-btn`,onClick:u},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-d6ecb989`]]),Sa={class:`config-log-parsers`},Ca={class:`config-card`},wa={class:`config-card__header`},Ta={class:`config-card__hint`},Ea={class:`config-card`},Da={class:`config-card__header`},Oa={class:`config-card__header-hint`},ka={class:`config-log-parsers__order`},Aa={class:`config-log-parsers__name`},ja={key:1,class:`config-log-parsers__empty`},Ma={class:`config-log-parsers__add-row`},Na={class:`config-log-parsers__footer`},Pa=w(Y({__name:`ServiceConfigLogs`,props:{service:{}},emits:[`save`],setup(n,{emit:i}){let a=n,o=i,s=te(),{t:l}=K(),d=Ae(),f=C([...a.service.parserIds??[]]);J(()=>a.service,e=>{f.value=[...e.parserIds??[]]});let g=h(()=>[...d.parsers].filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name))),_=h(()=>g.value.filter(e=>!f.value.includes(e.id))),v=C(f.value.map(e=>d.parsers.find(t=>t.id===e)).filter(e=>e!==void 0));J(f,e=>{let t=v.value.filter(t=>e.includes(t.id)),n=e.filter(e=>!t.find(t=>t.id===e)).map(e=>d.parsers.find(t=>t.id===e)).filter(e=>e!==void 0);v.value=[...t,...n]}),J(()=>d.parsers,()=>{v.value=f.value.map(e=>d.parsers.find(t=>t.id===e)).filter(e=>e!==void 0)});let b=C(null);function x(e){if(!e)return;let t=d.parsers.find(t=>t.id===e);t&&(f.value=[...f.value,e],v.value=[...v.value,t],b.value=null,E())}function S(e){f.value=f.value.filter(t=>t!==e),v.value=v.value.filter(t=>t.id!==e),E()}function w(){f.value=v.value.map(e=>e.id),E()}function E(){o(`save`,{parserIds:v.value.map(e=>e.id)})}return ae(()=>{d.fetchParsers(),d.subscribeParsers()}),R(()=>{d.unsubscribeParsers()}),(n,i)=>(G(),m(`div`,Sa,[V(`div`,Ca,[V(`div`,wa,[i[3]||=V(`i`,{class:`pi pi-code`},null,-1),V(`span`,null,e(T(l)(`serviceConfigLogs.jsParsers`)),1)]),V(`small`,Ta,e(T(l)(`serviceConfigLogs.jsParsersHint`)),1)]),V(`div`,Ea,[V(`div`,Da,[i[4]||=V(`i`,{class:`pi pi-sort-alt`},null,-1),V(`span`,null,e(T(l)(`serviceConfigLogs.executionOrder`)),1),V(`small`,Oa,e(T(l)(`serviceConfigLogs.executionOrderHint`)),1)]),v.value.length>0?(G(),t(T(se),{key:0,modelValue:v.value,"onUpdate:modelValue":i[0]||=e=>v.value=e,animation:150,handle:`.drag-handle`,class:`config-log-parsers__drag-list`,"data-testid":`log-parsers-drag-list`,onEnd:w},{default:r(()=>[(G(!0),m(y,null,j(v.value,(n,a)=>(G(),m(`div`,{key:n.id,class:`config-log-parsers__drag-row`,"data-testid":`log-parsers-drag-row`},[i[5]||=V(`span`,{class:`drag-handle`,"data-testid":`drag-handle`},[V(`i`,{class:`pi pi-bars`})],-1),V(`span`,ka,e(a+1),1),V(`span`,Aa,e(n.name),1),n.builtin?(G(),t(T(F),{key:0,severity:`secondary`,class:`config-log-parsers__builtin-badge`},{default:r(()=>[u(e(T(l)(`serviceConfigLogs.builtin`)),1)]),_:1})):B(``,!0),n.enabled?B(``,!0):(G(),t(T(F),{key:1,severity:`warn`,class:`config-log-parsers__disabled-badge`},{default:r(()=>[u(e(T(l)(`serviceConfigLogs.disabled`)),1)]),_:1})),p(T(c),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,class:`config-log-parsers__delete`,onClick:e=>S(n.id)},null,8,[`onClick`])]))),128))]),_:1},8,[`modelValue`])):B(``,!0),v.value.length===0?(G(),m(`div`,ja,e(T(l)(`serviceConfigLogs.empty`)),1)):B(``,!0),V(`div`,Ma,[p(T(H),{modelValue:b.value,"onUpdate:modelValue":[i[1]||=e=>b.value=e,x],options:_.value,"option-label":`name`,"option-value":`id`,placeholder:T(l)(`serviceConfigLogs.addParser`),class:`config-log-parsers__add-select`,loading:T(d).loading,disabled:_.value.length===0},{option:r(({option:n})=>[V(`span`,null,e(n.name),1),n.builtin?(G(),t(T(F),{key:0,severity:`secondary`,class:`ml-2`,style:{"font-size":`0.65rem`,padding:`0.1rem 0.35rem`}},{default:r(()=>[u(e(T(l)(`serviceConfigLogs.builtin`)),1)]),_:1})):B(``,!0)]),_:1},8,[`modelValue`,`options`,`placeholder`,`loading`,`disabled`])])]),V(`div`,Na,[p(T(c),{label:T(l)(`serviceConfigLogs.manageParsers`),icon:`pi pi-cog`,severity:`secondary`,outlined:``,size:`small`,onClick:i[2]||=e=>T(s).push({name:`settings`,query:{section:`parsers`}})},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-73b711b6`]]),Fa={class:`config-log-sources`},Ia={class:`config-card`},La={class:`config-card__header`},Ra={class:`config-card__hint`},za={key:0,class:`config-card config-card--list`},Ba={class:`source-row__info`},Va={class:`source-row__type`},Ha={class:`source-row__label`},Ua={class:`source-row__actions`},Wa={key:1,class:`config-log-sources__empty`},Ga={class:`config-log-sources__footer`},Ka={class:`dialog-form`},qa={class:`dialog-form__field`},Ja={for:`lsrc-type`,class:`dialog-form__label`},Ya={class:`dialog-form__field`},Xa={for:`lsrc-path-file`,class:`dialog-form__label`},Za={class:`dialog-form__field`},Qa={for:`lsrc-encoding-file`,class:`dialog-form__label`},$a={class:`dialog-form__field dialog-form__field--row`},eo={for:`lsrc-startFromEnd-file`,class:`dialog-form__label`},to={class:`dialog-form__field dialog-form__field--row`},no={for:`lsrc-createIfNotExists-file`,class:`dialog-form__label`},ro={class:`dialog-form__field`},io={for:`lsrc-connectionString-mongo`,class:`dialog-form__label`},ao={class:`dialog-form__row`},oo={class:`dialog-form__field`},so={class:`dialog-form__field`},co={class:`dialog-form__row`},lo={class:`dialog-form__field`},uo={class:`dialog-form__field`},fo={class:`dialog-form__field`},po={class:`dialog-form__row`},mo={class:`dialog-form__field dialog-form__field--grow`},ho={class:`dialog-form__field dialog-form__field--port`},go={class:`dialog-form__row`},_o={class:`dialog-form__field`},vo={class:`dialog-form__field`},yo={class:`dialog-form__row`},bo={class:`dialog-form__field`},xo={class:`dialog-form__field`},So={class:`dialog-form__row`},Co={class:`dialog-form__field`},wo={class:`dialog-form__field`},To={class:`dialog-form__row`},Eo={class:`dialog-form__field`},Do={class:`dialog-form__field`},Oo={class:`dialog-form__field`},ko={key:3,class:`dialog-form__hint-block`},Ao=w(Y({__name:`ServiceConfigLogSources`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let{t:i}=K(),a=t,s=n,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([...a.service.logSources??[]]);J(()=>a.service.logSources,e=>{f.value=[...e??[]]});let h=C(!1),g=C(null),_=C(d(`console`));function v(){g.value=null,_.value=d(`file`),h.value=!0}function b(e){g.value=e,_.value={...f.value[e]},h.value=!0}function x(e){_.value=d(e)}function w(){g.value===null?f.value=[...f.value,{..._.value}]:f.value=f.value.map((e,t)=>t===g.value?{..._.value}:e),h.value=!1,s(`save`,{logSources:f.value})}function E(e){f.value=f.value.filter((t,n)=>n!==e),s(`save`,{logSources:f.value})}function D(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 O(e){return e===`console`?`pi-terminal`:e===`file`?`pi-file`:`pi-database`}return(t,n)=>(G(),m(`div`,Fa,[V(`div`,Ia,[V(`div`,La,[n[23]||=V(`i`,{class:`pi pi-inbox`},null,-1),V(`span`,null,e(T(i)(`serviceConfigLogSources.title`)),1)]),V(`small`,Ra,e(T(i)(`serviceConfigLogSources.hint`)),1)]),f.value.length>0?(G(),m(`div`,za,[(G(!0),m(y,null,j(f.value,(t,n)=>(G(),m(`div`,{key:n,class:`source-row`},[V(`i`,{class:o(`pi ${O(t.type)} source-row__icon`)},null,2),V(`div`,Ba,[V(`span`,Va,e(t.type),1),V(`span`,Ha,e(D(t)),1)]),V(`div`,Ua,[p(T(c),{icon:`pi pi-pencil`,text:``,size:`small`,severity:`secondary`,onClick:e=>b(n)},null,8,[`onClick`]),p(T(c),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>E(n)},null,8,[`onClick`])])]))),128))])):(G(),m(`div`,Wa,[n[24]||=V(`i`,{class:`pi pi-inbox config-log-sources__empty-icon`},null,-1),V(`p`,null,e(T(i)(`serviceConfigLogSources.empty`)),1),V(`small`,null,e(T(i)(`serviceConfigLogSources.emptyHint`)),1)])),V(`div`,Ga,[p(T(c),{label:T(i)(`serviceConfigLogSources.addSource`),icon:`pi pi-plus`,size:`small`,onClick:v},null,8,[`label`])]),p(T(S),{visible:h.value,"onUpdate:visible":n[22]||=e=>h.value=e,header:g.value===null?T(i)(`serviceConfigLogSources.addDialog`):T(i)(`serviceConfigLogSources.editDialog`),modal:``,style:{width:`520px`}},{footer:r(()=>[p(T(c),{label:T(i)(`serviceConfigLogSources.cancel`),severity:`secondary`,outlined:``,onClick:n[21]||=e=>h.value=!1},null,8,[`label`]),p(T(c),{label:g.value===null?T(i)(`serviceConfigLogSources.add`):T(i)(`serviceConfigLogSources.save`),icon:`pi pi-check`,onClick:w},null,8,[`label`])]),default:r(()=>[V(`div`,Ka,[V(`div`,qa,[V(`label`,Ja,e(T(i)(`serviceConfigLogSources.type`)),1),p(T(H),{"input-id":`lsrc-type`,"model-value":_.value.type,options:l,"option-label":`label`,"option-value":`value`,class:`dialog-form__input`,"onUpdate:modelValue":x},null,8,[`model-value`])]),_.value.type===`file`?(G(),m(y,{key:0},[V(`div`,Ya,[V(`label`,Xa,[u(e(T(i)(`serviceConfigLogSources.path`))+` `,1),n[25]||=V(`span`,{class:`dialog-form__required`},`*`,-1)]),p(T(A),{id:`lsrc-path-file`,modelValue:_.value.path,"onUpdate:modelValue":n[0]||=e=>_.value.path=e,class:`dialog-form__input`,placeholder:`/var/log/app.log`},null,8,[`modelValue`])]),V(`div`,Za,[V(`label`,Qa,e(T(i)(`serviceConfigLogSources.encoding`)),1),p(T(A),{id:`lsrc-encoding-file`,modelValue:_.value.encoding,"onUpdate:modelValue":n[1]||=e=>_.value.encoding=e,class:`dialog-form__input`,placeholder:`utf-8`},null,8,[`modelValue`])]),V(`div`,$a,[V(`label`,eo,e(T(i)(`serviceConfigLogSources.startFromEnd`)),1),p(T(Z),{"input-id":`lsrc-startFromEnd-file`,modelValue:_.value.startFromEnd,"onUpdate:modelValue":n[2]||=e=>_.value.startFromEnd=e},null,8,[`modelValue`])]),V(`div`,to,[V(`label`,no,e(T(i)(`serviceConfigLogSources.createIfNotExists`)),1),p(T(Z),{"input-id":`lsrc-createIfNotExists-file`,modelValue:_.value.createIfNotExists,"onUpdate:modelValue":n[3]||=e=>_.value.createIfNotExists=e},null,8,[`modelValue`])])],64)):_.value.type===`mongo`?(G(),m(y,{key:1},[V(`div`,ro,[V(`label`,io,[u(e(T(i)(`serviceConfigLogSources.connectionString`))+` `,1),n[26]||=V(`span`,{class:`dialog-form__required`},`*`,-1)]),p(T(A),{id:`lsrc-connectionString-mongo`,modelValue:_.value.connectionString,"onUpdate:modelValue":n[4]||=e=>_.value.connectionString=e,class:`dialog-form__input`,placeholder:`mongodb://user:pass@host:27017`,type:`password`,autocomplete:`off`},null,8,[`modelValue`])]),V(`div`,ao,[V(`div`,oo,[n[27]||=V(`label`,{for:`lsrc-database-mongo`,class:`dialog-form__label`},[u(`Database `),V(`span`,{class:`dialog-form__required`},`*`)],-1),p(T(A),{id:`lsrc-database-mongo`,modelValue:_.value.database,"onUpdate:modelValue":n[5]||=e=>_.value.database=e,class:`dialog-form__input`,placeholder:`mydb`},null,8,[`modelValue`])]),V(`div`,so,[n[28]||=V(`label`,{for:`lsrc-collection-mongo`,class:`dialog-form__label`},[u(`Collection `),V(`span`,{class:`dialog-form__required`},`*`)],-1),p(T(A),{id:`lsrc-collection-mongo`,modelValue:_.value.collection,"onUpdate:modelValue":n[6]||=e=>_.value.collection=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),V(`div`,co,[V(`div`,lo,[n[29]||=V(`label`,{for:`lsrc-timestampField-mongo`,class:`dialog-form__label`},`Timestamp field`,-1),p(T(A),{id:`lsrc-timestampField-mongo`,modelValue:_.value.timestampField,"onUpdate:modelValue":n[7]||=e=>_.value.timestampField=e,class:`dialog-form__input`,placeholder:`timestamp`},null,8,[`modelValue`])]),V(`div`,uo,[n[30]||=V(`label`,{for:`lsrc-messageField-mongo`,class:`dialog-form__label`},`Message field`,-1),p(T(A),{id:`lsrc-messageField-mongo`,modelValue:_.value.messageField,"onUpdate:modelValue":n[8]||=e=>_.value.messageField=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),V(`div`,fo,[n[31]||=V(`label`,{for:`lsrc-levelField-mongo`,class:`dialog-form__label`},[u(`Level field `),V(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),p(T(A),{id:`lsrc-levelField-mongo`,modelValue:_.value.levelField,"onUpdate:modelValue":n[9]||=e=>_.value.levelField=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])])],64)):_.value.type===`mysql`?(G(),m(y,{key:2},[V(`div`,po,[V(`div`,mo,[n[32]||=V(`label`,{for:`lsrc-host-mysql`,class:`dialog-form__label`},[u(`Host `),V(`span`,{class:`dialog-form__required`},`*`)],-1),p(T(A),{id:`lsrc-host-mysql`,modelValue:_.value.host,"onUpdate:modelValue":n[10]||=e=>_.value.host=e,class:`dialog-form__input`,placeholder:`localhost`},null,8,[`modelValue`])]),V(`div`,ho,[n[33]||=V(`label`,{for:`lsrc-port-mysql`,class:`dialog-form__label`},`Port`,-1),p(T(X),{"input-id":`lsrc-port-mysql`,modelValue:_.value.port,"onUpdate:modelValue":n[11]||=e=>_.value.port=e,min:1,max:65535,class:`dialog-form__input`},null,8,[`modelValue`])])]),V(`div`,go,[V(`div`,_o,[n[34]||=V(`label`,{for:`lsrc-user-mysql`,class:`dialog-form__label`},[u(`User `),V(`span`,{class:`dialog-form__required`},`*`)],-1),p(T(A),{id:`lsrc-user-mysql`,modelValue:_.value.user,"onUpdate:modelValue":n[12]||=e=>_.value.user=e,class:`dialog-form__input`,placeholder:`root`},null,8,[`modelValue`])]),V(`div`,vo,[n[35]||=V(`label`,{for:`lsrc-password-mysql`,class:`dialog-form__label`},`Password`,-1),p(T(A),{id:`lsrc-password-mysql`,modelValue:_.value.password,"onUpdate:modelValue":n[13]||=e=>_.value.password=e,class:`dialog-form__input`,type:`password`,autocomplete:`new-password`},null,8,[`modelValue`])])]),V(`div`,yo,[V(`div`,bo,[n[36]||=V(`label`,{for:`lsrc-database-mysql`,class:`dialog-form__label`},[u(`Database `),V(`span`,{class:`dialog-form__required`},`*`)],-1),p(T(A),{id:`lsrc-database-mysql`,modelValue:_.value.database,"onUpdate:modelValue":n[14]||=e=>_.value.database=e,class:`dialog-form__input`,placeholder:`app_db`},null,8,[`modelValue`])]),V(`div`,xo,[n[37]||=V(`label`,{for:`lsrc-table-mysql`,class:`dialog-form__label`},[u(`Table `),V(`span`,{class:`dialog-form__required`},`*`)],-1),p(T(A),{id:`lsrc-table-mysql`,modelValue:_.value.table,"onUpdate:modelValue":n[15]||=e=>_.value.table=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),V(`div`,So,[V(`div`,Co,[n[38]||=V(`label`,{for:`lsrc-timestampColumn-mysql`,class:`dialog-form__label`},`Timestamp column`,-1),p(T(A),{id:`lsrc-timestampColumn-mysql`,modelValue:_.value.timestampColumn,"onUpdate:modelValue":n[16]||=e=>_.value.timestampColumn=e,class:`dialog-form__input`,placeholder:`created_at`},null,8,[`modelValue`])]),V(`div`,wo,[n[39]||=V(`label`,{for:`lsrc-messageColumn-mysql`,class:`dialog-form__label`},`Message column`,-1),p(T(A),{id:`lsrc-messageColumn-mysql`,modelValue:_.value.messageColumn,"onUpdate:modelValue":n[17]||=e=>_.value.messageColumn=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),V(`div`,To,[V(`div`,Eo,[n[40]||=V(`label`,{for:`lsrc-levelColumn-mysql`,class:`dialog-form__label`},[u(`Level column `),V(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),p(T(A),{id:`lsrc-levelColumn-mysql`,modelValue:_.value.levelColumn,"onUpdate:modelValue":n[18]||=e=>_.value.levelColumn=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])]),V(`div`,Do,[n[41]||=V(`label`,{for:`lsrc-pollIntervalMs-mysql`,class:`dialog-form__label`},`Poll interval (ms)`,-1),p(T(X),{"input-id":`lsrc-pollIntervalMs-mysql`,modelValue:_.value.pollIntervalMs,"onUpdate:modelValue":n[19]||=e=>_.value.pollIntervalMs=e,min:500,max:6e4,class:`dialog-form__input`},null,8,[`modelValue`])])]),V(`div`,Oo,[n[42]||=V(`label`,{for:`lsrc-query-mysql`,class:`dialog-form__label`},[u(`Custom query `),V(`span`,{class:`dialog-form__hint`},[u(`(optional, must include `),V(`code`,null,`WHERE … > ?`),u(`)`)])],-1),p(T(A),{id:`lsrc-query-mysql`,modelValue:_.value.query,"onUpdate:modelValue":n[20]||=e=>_.value.query=e,class:`dialog-form__input`,placeholder:`SELECT * FROM logs WHERE created_at > ? ORDER BY id ASC`},null,8,[`modelValue`])])],64)):_.value.type===`console`?(G(),m(`small`,ko,`The console source captures stdout/stderr and is always active. Adding it here has no effect unless you want to track it explicitly.`)):B(``,!0)])]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-1ceb461a`]]),jo={class:`config-traefik`},Mo={class:`traefik-entry__fields`},No=w(Y({__name:`ServiceConfigTraefik`,props:{service:{}},emits:[`save`],setup(e,{emit:a}){let o=e,l=a,d=C([...o.service.localUrls??[]]),f=C(null);ae(async()=>{o.service.agentId&&(f.value=(await n.settings.getAgentTraefikConfig.query({agentId:o.service.agentId})).enabled)});let h=null;J(()=>o.service,e=>{h||(d.value=[...e.localUrls??[]])});function g(){d.value=[...d.value,{url:``,port:3e3}]}function _(e){d.value=d.value.filter((t,n)=>n!==e),x()}function b(e,t,n){d.value=d.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function x(){h&&clearTimeout(h),h=setTimeout(()=>{l(`save`,{localUrls:d.value.filter(e=>e.url.trim())}),h=null},150)}return(e,n)=>(G(),m(`div`,jo,[f.value===!1?(G(),t(T(s),{key:0,severity:`warn`,closable:!1},{default:r(()=>[n[1]||=u(` Traefik n'est pas activé. Configurez-le dans `,-1),p(T(ce),{to:{name:`settings`,query:{section:`agents`}}},{default:r(()=>[...n[0]||=[u(`Paramètres → Agents`,-1)]]),_:1}),n[2]||=u(` (bouton Traefik sur la ligne de l'agent) pour que ces URLs soient actives. `,-1)]),_:1})):B(``,!0),(G(!0),m(y,null,j(d.value,(e,t)=>(G(),m(`div`,{key:t,class:`traefik-entry`},[V(`div`,Mo,[p(T(A),{"model-value":e.url,class:`traefik-entry__url`,placeholder:`mon-app.local.mondomaine.com`,"onUpdate:modelValue":e=>b(t,`url`,e),onBlur:x,onKeydown:v(i(x,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`]),p(T(X),{"model-value":e.port,class:`traefik-entry__port`,min:1,max:65535,"use-grouping":!1,placeholder:`3000`,"onUpdate:modelValue":e=>{b(t,`port`,e??3e3),x()}},null,8,[`model-value`,`onUpdate:modelValue`]),p(T(c),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:e=>_(t)},null,8,[`onClick`])])]))),128)),p(T(c),{icon:`pi pi-plus`,label:`Ajouter une URL`,size:`small`,outlined:``,onClick:g})]))}}),[[`__scopeId`,`data-v-a71f945b`]]),Po={class:`config-view`,"data-testid":`config-view`},Fo={class:`config-view__header`},Io={class:`config-view__title`},Lo={class:`config-view__actions`},Ro=w(Y({__name:`ServiceConfigView`,props:{service:{},projectId:{}},emits:[`remove-service`],setup(t,{emit:n}){let i=t,a=n,{t:o}=K(),s=P(),l=O(),u=N(),{isDebug:d}=Wt(),f=q(),g=te(),_=[`general`,`commands`,`shortcuts`,`env`,`health`,`log-parsers`,`log-sources`,`traefik`],v=h(()=>{let e=f.query.configTab;return _.includes(e)?e:`general`});function y(e){g.replace({query:{...f.query,configTab:e}})}let b=h(()=>l.getByRef({id:i.projectId,orgId:u.activeOrgId})?.activeEnvironmentId);async function x(e,t){await t()?d.value&&console.debug(`[autosave] ${e} saved`):console.error(`[autosave] ${e} failed:`,s.error??`Save failed`)}async function S(e){await x(`General`,()=>s.update(i.service.id,e))}async function C(e){await x(`Commands`,()=>s.update(i.service.id,e))}async function w(e){await x(`Health check`,()=>s.update(i.service.id,{healthCheck:e??null}))}async function E(e){await x(`Shortcuts`,()=>s.update(i.service.id,{shortcuts:e}))}async function D(e){await x(`Docker`,()=>s.update(i.service.id,{dockerConfig:e}))}async function k(e){await x(`Log parsers`,()=>s.update(i.service.id,e))}async function A(e){await x(`Log sources`,()=>s.update(i.service.id,e))}async function j(e){await x(`Traefik`,()=>s.update(i.service.id,e))}function ee(){a(`remove-service`,i.service.id)}return(n,i)=>(G(),m(`div`,Po,[V(`div`,Fo,[V(`h2`,Io,e(T(o)(`serviceConfigView.title`)),1),V(`div`,Lo,[p(T(c),{label:T(o)(`serviceConfigView.remove`),icon:`pi pi-trash`,severity:`danger`,size:`small`,outlined:``,onClick:ee},null,8,[`label`])])]),p(T(be),{value:v.value,class:`config-view__tabs`,"onUpdate:value":y},{default:r(()=>[p(T(ve),null,{default:r(()=>[p(T(Q),{value:`general`,"data-testid":`tab-config`},{default:r(()=>[i[0]||=V(`i`,{class:`pi pi-cog tab-icon`},null,-1),V(`span`,null,e(T(o)(`serviceConfigView.tabGeneral`)),1)]),_:1}),p(T(Q),{value:`commands`,"data-testid":`tab-commands`},{default:r(()=>[i[1]||=V(`i`,{class:`pi pi-code tab-icon`},null,-1),V(`span`,null,e(T(o)(`serviceConfigView.tabCommands`)),1)]),_:1}),p(T(Q),{value:`shortcuts`,"data-testid":`tab-shortcuts`},{default:r(()=>[i[2]||=V(`i`,{class:`pi pi-bolt tab-icon`},null,-1),V(`span`,null,e(T(o)(`serviceConfigView.tabShortcuts`)),1)]),_:1}),p(T(Q),{value:`env`,"data-testid":`tab-env`},{default:r(()=>[i[3]||=V(`i`,{class:`pi pi-database tab-icon`},null,-1),V(`span`,null,e(T(o)(`serviceConfigView.tabEnvironment`)),1)]),_:1}),p(T(Q),{value:`health`},{default:r(()=>[i[4]||=V(`i`,{class:`pi pi-heart tab-icon`},null,-1),V(`span`,null,e(T(o)(`serviceConfigView.tabHealthCheck`)),1)]),_:1}),p(T(Q),{value:`log-parsers`,"data-testid":`tab-log-parsers`},{default:r(()=>[i[5]||=V(`i`,{class:`pi pi-list tab-icon`},null,-1),V(`span`,null,e(T(o)(`serviceConfigView.tabLogParsers`)),1)]),_:1}),p(T(Q),{value:`log-sources`},{default:r(()=>[i[6]||=V(`i`,{class:`pi pi-inbox tab-icon`},null,-1),V(`span`,null,e(T(o)(`serviceConfigView.tabLogSources`)),1)]),_:1}),p(T(Q),{value:`traefik`},{default:r(()=>[...i[7]||=[V(`i`,{class:`pi pi-server tab-icon`},null,-1),V(`span`,null,`Traefik`,-1)]]),_:1})]),_:1}),p(T(ye),null,{default:r(()=>[p(T($),{value:`general`},{default:r(()=>[p(Dn,{service:t.service,onSave:S},null,8,[`service`])]),_:1}),p(T($),{value:`commands`},{default:r(()=>[p(ei,{service:t.service,onSave:C,onDockerSave:D},null,8,[`service`])]),_:1}),p(T($),{value:`shortcuts`,"data-testid":`tabpanel-shortcuts`},{default:r(()=>[p(xa,{service:t.service,onSave:E},null,8,[`service`])]),_:1}),p(T($),{value:`env`},{default:r(()=>[p(Bi,{service:t.service,"project-id":t.projectId,"active-environment-id":b.value},null,8,[`service`,`project-id`,`active-environment-id`])]),_:1}),p(T($),{value:`health`},{default:r(()=>[p(la,{service:t.service,onSave:w},null,8,[`service`])]),_:1}),p(T($),{value:`log-parsers`,"data-testid":`tabpanel-log-parsers`},{default:r(()=>[p(Pa,{service:t.service,onSave:k},null,8,[`service`])]),_:1}),p(T($),{value:`log-sources`},{default:r(()=>[p(Ao,{service:t.service,onSave:A},null,8,[`service`])]),_:1}),p(T($),{value:`traefik`},{default:r(()=>[p(No,{service:t.service,onSave:j},null,8,[`service`])]),_:1})]),_:1})]),_:1},8,[`value`])]))}}),[[`__scopeId`,`data-v-af965568`]]),zo={key:0,class:`service-detail`},Bo={key:1,class:`service-detail__not-found`},Vo={key:2,class:`service-detail__not-found`},Ho=w(Y({__name:`ServiceDetailPage`,setup(n){let r=q(),i=te(),a=re(),o=ee(),{t:s}=K(),c=P(),l=M(),u=O(),{setServiceContext:f}=g(),p=h(()=>r.params.id);J(p,e=>f(e),{immediate:!0}),R(()=>f(null));let _=h(()=>{let e=r.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`||e===`wiki`?e:`terminal`}),v=C(null),y=C(!1),b=h(()=>c.getById(p.value)||(v.value?.id===p.value?v.value:null));J(p,async e=>{if(v.value=null,!(!e||c.getById(e))){y.value=!0;try{v.value=await c.fetchOne(e)}finally{y.value=!1}}},{immediate:!0});let x=h(()=>l.getByService(p.value)),S=h(()=>u.currentProject?.id??``);function w(e){let t=c.getById(e);o.require({message:s(`serviceDetail.deleteConfirmMessage`,{name:t?.name??e}),header:s(`serviceDetail.deleteConfirmHeader`),icon:`pi pi-exclamation-triangle`,rejectLabel:s(`actions.cancel`),acceptLabel:s(`actions.delete`),acceptProps:{severity:`danger`},accept:async()=>{await c.remove(e)&&(a.add({severity:`success`,summary:s(`serviceDetail.removed`),detail:s(`serviceDetail.deleted`),life:3e3}),i.push(`/`))}})}return(n,r)=>b.value?(G(),m(`div`,zo,[_.value===`terminal`?(G(),t(Dt,{key:`terminal-`+p.value,service:b.value,processes:x.value},null,8,[`service`,`processes`])):_.value===`metrics`?(G(),t(Rt,{key:`metrics-`+p.value,service:b.value,processes:x.value},null,8,[`service`,`processes`])):_.value===`config`?(G(),t(Ro,{key:`config-`+p.value,service:b.value,"project-id":S.value,onRemoveService:w},null,8,[`service`,`project-id`])):_.value===`git`?(G(),t(d,{key:`git-`+p.value,"service-id":p.value},null,8,[`service-id`])):_.value===`wiki`?(G(),t(je,{key:`wiki-`+p.value,scope:`service:${p.value}`},null,8,[`scope`])):B(``,!0)])):y.value?(G(),m(`div`,Bo)):(G(),m(`div`,Vo,[V(`p`,null,e(T(s)(`serviceDetail.notFound`)),1)]))}}),[[`__scopeId`,`data-v-e5220f62`]]);export{Ho as default};
@@ -0,0 +1 @@
1
+ import{Aa as e,An as t,Ca as n,Ci as r,Gn as i,Li as a,Mi as o,Oi as s,Si as c,Ti as l,Tn as ee,Va as u,Vn as d,Xa as f,Yt as te,Zt as p,_n as m,ca as ne,d as re,en as ie,ft as ae,ir as oe,ji as h,ki as g,ln as _,lr as se,lt as ce,na as le,oa as v,pr as ue,rr as de,za as fe,zi as y}from"./index-DBUGVNfV.js";import{n as b}from"./plus-DyqgWY-p.js";import{t as pe}from"./fieldset-DASecQzo.js";import{t as me}from"./toggleswitch-Ct_pe9Y7.js";import{t as he}from"./autocomplete-DVfF8-mq.js";import{t as x}from"./divider-DaQ67Uqu.js";var ge={class:`service-form-page`},_e={class:`page-header`},ve={key:0,class:`restart-banner`},ye={key:1,class:`loading-container`},be={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=d(y({__name:`ServiceFormPage`,props:{id:{}},setup(d){let y=d,I=oe(),Ke=de(),L=se(),R=te(),z=ae(),B=ce(),V=ie(),qe=re(),{t:H}=ue(),U=s(()=>!!y.id),W=s(()=>Ke.query.projectId),G=u(!1),K=u(!1),q=u(null),J=u(null),Y=u(!1),X=fe({projectId:``,agentId:F,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),Z=u([]),Je=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Ye=s(()=>R.projects.map(e=>({label:e.name,value:e.id}))),Q=s(()=>[{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(y.id){G.value=!0;try{let e=await t.service.get.query({id:y.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:p(e)??H(`serviceForm.failedToLoad`),life:5e3}),I.back()}finally{G.value=!1}}}async function $(){if(!(!U.value||!y.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 t.service.update.mutate({id:y.id,...e}))?.stoppedForAgentChange?(q.value=e.agentId,J.value=y.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:p(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:p(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=await z.create({name:X.name.trim(),...X.agentId&&X.agentId!==F?{agentId:X.agentId}:{}});if(!e)throw Error(z.error??`Failed to create service`);let t=R.getByRef({id:X.projectId,orgId:V.activeOrgId})??R.getById(X.projectId);await R.addService(t??{id:X.projectId},e.id),L.add({severity:`success`,summary:H(`serviceForm.serviceCreated`),detail:H(`serviceForm.configureAfterCreate`),life:3e3}),I.push({name:`service-detail`,params:{id:e.id,tab:`config`}})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:p(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}return le(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()}),(t,s)=>(v(),o(`div`,ge,[g(`div`,_e,[a(f(i),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:s[0]||=e=>f(I).back()}),g(`h1`,null,e(U.value?f(H)(`serviceForm.editTitle`):f(H)(`serviceForm.createTitle`)),1)]),J.value?(v(),o(`div`,ve,[g(`span`,null,e(f(H)(`serviceForm.agentChangedServiceStopped`)),1),a(f(i),{label:f(H)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:Y.value,onClick:et},null,8,[`label`,`loading`]),a(f(i),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:s[1]||=e=>{J.value=null,q.value=null}})])):h(``,!0),G.value?(v(),o(`div`,ye,[a(f(ee))])):(v(),o(`form`,{key:2,class:`service-form`,onSubmit:r(tt,[`prevent`])},[U.value?(v(),o(l,{key:1},[g(`div`,M,[g(`div`,N,[g(`div`,xe,[g(`label`,Se,e(f(H)(`serviceForm.nameLabelShort`)),1),a(f(m),{id:`svc-name-edit`,modelValue:X.name,"onUpdate:modelValue":s[6]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:c(r($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,Ce,[g(`label`,we,e(f(H)(`serviceForm.runnerLabel`)),1),a(f(_),{id:`svc-runner`,modelValue:X.runner,"onUpdate:modelValue":s[7]||=e=>X.runner=e,options:Je,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),g(`div`,Te,[g(`label`,Ee,e(f(H)(`serviceForm.agentLabel`)),1),a(f(_),{id:`svc-agent-edit`,modelValue:X.agentId,"onUpdate:modelValue":s[8]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),g(`small`,De,e(f(H)(`serviceForm.agentHintEdit`)),1)]),g(`div`,Oe,[g(`div`,ke,[g(`label`,Ae,e(f(H)(`serviceForm.cwdLabel`)),1),a(f(m),{id:`svc-cwd`,modelValue:X.cwd,"onUpdate:modelValue":s[9]||=e=>X.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:c(r($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,je,[g(`label`,Me,e(f(H)(`serviceForm.portsLabel`)),1),a(f(he),{inputId:`svc-ports`,modelValue:X.ports,"onUpdate:modelValue":s[10]||=e=>X.ports=e,multiple:``,typeahead:!1,placeholder:f(H)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),g(`div`,P,[a(f(me),{modelValue:X.autoRestart,"onUpdate:modelValue":s[11]||=e=>X.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),g(`label`,Ne,e(f(H)(`serviceForm.autoRestart`)),1)])]),a(f(x)),g(`div`,Pe,[g(`div`,Fe,[g(`h3`,null,e(f(H)(`serviceForm.envVars`)),1),a(f(i),{label:f(H)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Xe},null,8,[`label`])]),Z.value.length===0?(v(),o(`div`,Ie,[g(`small`,null,e(f(H)(`serviceForm.noEnvVars`)),1)])):h(``,!0),(v(!0),o(l,null,ne(Z.value,(e,t)=>(v(),o(`div`,{key:t,class:`env-row`},[a(f(m),{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:c(r($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),s[17]||=g(`span`,{class:`env-eq`},`=`,-1),a(f(m),{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:c(r($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),a(f(i),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Ze(t),$()}},null,8,[`onClick`])]))),128))]),a(f(x)),a(f(pe),{legend:f(H)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!X.healthCheck.enabled,onToggle:s[16]||=e=>{X.healthCheck.enabled=!e.value,$()}},{default:n(()=>[g(`div`,Le,[g(`label`,Re,e(f(H)(`serviceForm.healthCheckPath`)),1),a(f(m),{id:`hc-path`,modelValue:X.healthCheck.path,"onUpdate:modelValue":s[12]||=e=>X.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:c(r($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,ze,[g(`div`,Be,[g(`label`,Ve,e(f(H)(`serviceForm.interval`)),1),a(f(b),{id:`hc-interval`,modelValue:X.healthCheck.interval,"onUpdate:modelValue":s[13]||=e=>X.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:c(r($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,He,[g(`label`,Ue,e(f(H)(`serviceForm.timeout`)),1),a(f(b),{id:`hc-timeout`,modelValue:X.healthCheck.timeout,"onUpdate:modelValue":s[14]||=e=>X.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:c(r($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,We,[g(`label`,Ge,e(f(H)(`serviceForm.retries`)),1),a(f(b),{id:`hc-retries`,modelValue:X.healthCheck.retries,"onUpdate:modelValue":s[15]||=e=>X.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:c(r($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),a(f(x))],64)):(v(),o(l,{key:0},[g(`div`,be,[g(`div`,S,[g(`label`,C,e(f(H)(`serviceForm.projectLabel`)),1),a(f(_),{id:`svc-project`,modelValue:X.projectId,"onUpdate:modelValue":s[2]||=e=>X.projectId=e,options:Ye.value,optionLabel:`label`,optionValue:`value`,placeholder:f(H)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),g(`small`,w,e(f(H)(`serviceForm.projectHint`)),1)]),g(`div`,T,[g(`label`,E,e(f(H)(`serviceForm.agentLabel`)),1),a(f(_),{id:`svc-agent`,modelValue:X.agentId,"onUpdate:modelValue":s[3]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,placeholder:f(H)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),g(`small`,D,e(f(H)(`serviceForm.agentHint`)),1)]),g(`div`,O,[g(`label`,k,e(f(H)(`serviceForm.nameLabel`)),1),a(f(m),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":s[4]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),g(`small`,A,e(f(H)(`serviceForm.nameConfigHint`)),1)])]),a(f(x)),g(`div`,j,[a(f(i),{label:f(H)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:s[5]||=e=>f(I).back()},null,8,[`label`]),a(f(i),{label:f(H)(`serviceForm.create`),icon:`pi pi-check`,loading:K.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-47e4793d`]]);export{I as default};