@runeya/runeya 2.0.120 → 2.0.122
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.
- package/agent/index.js +17 -2
- package/agent/index.js.map +1 -1
- package/agent-manager-BSPEFZKZ.js +10 -0
- package/{chat-PXMMZIAY.js → chat-SE5GIT4B.js} +7 -6
- package/{chunk-22RJM654.js → chunk-BVBK2WII.js} +155 -157
- package/chunk-BVBK2WII.js.map +1 -0
- package/chunk-GL7WA5K3.js +92 -0
- package/chunk-GL7WA5K3.js.map +1 -0
- package/{chunk-GIHR3BGT.js → chunk-NIU3CN5A.js} +37 -17
- package/chunk-NIU3CN5A.js.map +1 -0
- package/{chunk-H6VIS4OY.js → chunk-T2BV5WZE.js} +18 -3
- package/chunk-T2BV5WZE.js.map +1 -0
- package/{chunk-NYKFDU76.js → chunk-VNLIA5PV.js} +137 -59
- package/chunk-VNLIA5PV.js.map +1 -0
- package/{chunk-2WXQIUVC.js → chunk-XTLQOYLT.js} +147 -81
- package/chunk-XTLQOYLT.js.map +1 -0
- package/{companion-4RQ3AMOL.js → companion-HEJHC3UR.js} +5 -4
- package/{desktop-launcher-ADGRYF4S.js → desktop-launcher-EGGVXXKV.js} +2 -2
- package/index.js +4 -4
- package/package.json +1 -1
- package/settings-manager-4GAINSJO.js +10 -0
- package/{src-NRKK27F3.js → src-YUVA6WCM.js} +259 -172
- package/src-YUVA6WCM.js.map +1 -0
- package/web/assets/AgentScalarChatInterface.vue-DrcrJYKe.js +13 -0
- package/web/assets/AgentTerminalPage-BonnuSSS.js +1 -0
- package/web/assets/AiChatPage-DzTc9-iH.js +1 -0
- package/web/assets/AppLayout-DRTTSl7g.js +1 -0
- package/web/assets/{AppLayout-kIdcdJ2n.css → AppLayout-vWoE_P8T.css} +1 -1
- package/web/assets/AuditPage-CBWGaY0D.js +1 -0
- package/web/assets/CloudAccountPage-DTrPLz-p.js +1 -0
- package/web/assets/CloudAccountPage-DYOvfMjD.css +1 -0
- package/web/assets/CloudAccountPage-DvbOBtHJ.js +1 -0
- package/web/assets/CloudMessagingPage-BB-_RdEk.js +2 -0
- package/web/assets/DashboardPage-MdYRjTwv.js +164 -0
- package/web/assets/DirectoryPickerDialog-DROtNZ9T.js +1 -0
- package/web/assets/{EditorIcon-CdapdMgo.js → EditorIcon-LCl9V_-a.js} +2 -2
- package/web/assets/{EnvironmentForm-Dgrt5I5N.js → EnvironmentForm-BUadxutb.js} +2 -2
- package/web/assets/EnvironmentFormPage-Do3NwXL5.js +1 -0
- package/web/assets/EnvironmentListPage-DiG8nF1p.js +1 -0
- package/web/assets/KanbanBoardPage-_QCZ2A2f.js +4 -0
- package/web/assets/KanbanListPage-Dl-FpuPX.css +1 -0
- package/web/assets/KanbanListPage-nyfKMn50.js +1 -0
- package/web/assets/LaunchProjectPage-VHAUZ-cq.js +1 -0
- package/web/assets/LaunchServicesPage-CRv2zJxH.js +1 -0
- package/web/assets/LogViewer-DcoQF_33.js +3 -0
- package/web/assets/OrgKeyPrompt-X9hHtpi9.js +1 -0
- package/web/assets/{ProcessControls-DRyD5bQg.js → ProcessControls-PKQWukd7.js} +1 -1
- package/web/assets/ProcessDetailPage-DhFoi4DT.js +1 -0
- package/web/assets/{ProcessMetrics-D5SgFgFU.js → ProcessMetrics-CMewzyxA.js} +2 -2
- package/web/assets/RandomJobTestPage-CErdKP1K.js +2 -0
- package/web/assets/ScenarioEditorPage-CpRlfU3g.js +14 -0
- package/web/assets/SendToChatDialog-DIp62wvw.js +1 -0
- package/web/assets/ServiceControlsBar-Bk4M-tKR.js +1 -0
- package/web/assets/ServiceDetailPage-BxAZTqFu.js +2 -0
- package/web/assets/ServiceFormPage-Dr_e9QMM.js +1 -0
- package/web/assets/SettingsPage-Dx1eYZKP.js +2063 -0
- package/web/assets/UnlockPage-CgynzFN3.js +1 -0
- package/web/assets/UnlockPage-DU3hoV78.css +1 -0
- package/web/assets/VaultMigrationPage-Cw--n60U.js +1 -0
- package/web/assets/VersionBadge-Ct-qYNDF.js +1 -0
- package/web/assets/WikiPage-D7N7nA2O.js +1 -0
- package/web/assets/WikiView-Izg2SvGt.js +1 -0
- package/web/assets/add-scalar-classes-BP_OZa5m.js +387 -0
- package/web/assets/{autocomplete-ByrzVX5h.js → autocomplete-DMfvn4sK.js} +3 -3
- package/web/assets/{basic-shape-diamond.svg-h2koobo1.js → basic-shape-diamond.svg-B5H1r2bp.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg--IMj5O6H.js → basic-shape-hexagon.svg-CYAjKF0z.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-B0JqtIPK.js → basic-shape-primary-circle-ellipse-round.svg-CgleCAf-.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-nMUFcz3q.js → basic-shape-primary-square-rectangle.svg-1Oa48Hhs.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-B01_o2Y1.js → basic-shape-shield.svg-F6dZwVUJ.js} +1 -1
- package/web/assets/{browser-OPkfGEHD.js → browser-CmPAWcJ7.js} +1 -1
- package/web/assets/{browser-DcLBGCAS.js → browser-D3KJ0m2n.js} +1 -1
- package/web/assets/card-Ciw7uU90.js +32 -0
- package/web/assets/{checkbox-DGCPu95-.js → checkbox-BCCx0Nu6.js} +3 -3
- package/web/assets/{chip-Chk5tAnb.js → chip-JRh6DXig.js} +2 -2
- package/web/assets/client-BIlYBe0s.js +24 -0
- package/web/assets/cloud-chat.store-BUYi4kYT.js +1 -0
- package/web/assets/cloud-client-CujRC6FF.js +1 -0
- package/web/assets/cloud-session-CSIV9Uvx.js +1 -0
- package/web/assets/{cloud-session-CnTOFA6T.js → cloud-session-CZWto5y3.js} +2 -2
- package/web/assets/column-DSBHw97f.js +763 -0
- package/web/assets/{computer-device-desktop-monitor.svg-CfTbcAFd.js → computer-device-desktop-monitor.svg-D7wu2cQ4.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-Cl-xv361.js → computer-device-desktop.svg-BtVwjOEG.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-ukRjIyMq.js → computer-device-laptop.svg-f3tFeUHj.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-CoDvI0SU.js → computer-device-mobile-phone-android-samsung-back.svg-CmJcGkrL.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-BQWjk4Zt.js → computer-device-mobile-phone-android-samsung.svg-C2ke6Sbg.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-DAoSG317.js → computer-device-mobile-phone-iphone-x-back.svg-DxMqUXKE.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-BPjvW-EA.js → computer-device-mobile-phone-iphone-x.svg-DkbKlrh8.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-BYEFFDGJ.js → computer-device-mobile-tablet-touch.svg-DP0uXMda.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-DNLPmtgI.js → computer-device-mobile-tablet.svg-C064ZFQm.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-BLWV1j_N.js → computer-device-network-ethernet-cat6.svg-Dwzl7zBN.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-BOoU0zpo.js → computer-device-network-lan-www.svg-BgErom5w.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-DGwn0IjA.js → computer-device-network-wifi-connection.svg-ByqNsV6y.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-C5g_K48A.js → computer-device-network-wifi-router.svg-AySGITbi.js} +1 -1
- package/web/assets/{cssMode-Cx5qrxXy.js → cssMode-BqrZ4SB-.js} +1 -1
- package/web/assets/{divider-BrS14lDG.js → divider-BswZTb8q.js} +2 -2
- package/web/assets/{docx-preview-DAPpQjxw.js → docx-preview-t_oOha_C.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-DomVqm74.js → ecology-science-erlenmeyer-flask.svg-Keg4ZY0z.js} +1 -1
- package/web/assets/{fieldset-C0CmkHzJ.js → fieldset-DaWy9FsL.js} +2 -2
- package/web/assets/{freemarker2-183f16_T.js → freemarker2-Br0kiufp.js} +1 -1
- package/web/assets/{handlebars-Ck2u5MRS.js → handlebars-BrATzKUL.js} +1 -1
- package/web/assets/{html-RFHCet7g.js → html-LWTJcTM2.js} +1 -1
- package/web/assets/{htmlMode-MLvTePcj.js → htmlMode-A23pWfMP.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-C_9EqK2Z.js → image-flash-lightning.svg-uQfoT6Ex.js} +1 -1
- package/web/assets/{image-picture-flower.svg-Cw0p4SDa.js → image-picture-flower.svg-XxD1bCHC.js} +1 -1
- package/web/assets/{index-De7vzwYE.js → index-e5dmzMc-.js} +362 -362
- package/web/assets/{index-qjiWPMcS.css → index-rUoTy8xc.css} +1 -1
- package/web/assets/{interface-alert-exclamation-diamond.svg-D_7jQp52.js → interface-alert-exclamation-diamond.svg-gQAlkILu.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-slrQHD7Z.js → interface-alert-exclamation-triangle-warning.svg-Ga2rsl6o.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-D6HZsCxj.js → interface-alert-information-circle.svg-BS0N2R1M.js} +1 -1
- package/web/assets/{interface-award-crown.svg-C8KlpCo8.js → interface-award-crown.svg-CtLbK4Gl.js} +1 -1
- package/web/assets/{interface-bookmark.svg-CcHEFyZI.js → interface-bookmark-tag.svg-Dfd6eXAX.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-4m7iWpFd.js → interface-bookmark.svg-Clt6TTov.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-B-NpBZQW.js → interface-calendar-date-one.svg-BmFNLrzR.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-D6JSr0DE.js → interface-content-book-open-pages.svg-u8kJbc3N.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-4JwHKP99.js → interface-content-book-page.svg-Csk8d0R8.js} +1 -1
- package/web/assets/{interface-content-file.svg-dDsVtuW0.js → interface-content-file.svg-DIoD1UhJ.js} +1 -1
- package/web/assets/interface-content-folder.svg-BPZbNQNK.js +1 -0
- package/web/assets/{interface-content-folder.svg-VlaIOWsg.js → interface-content-folder.svg-ipO7hYM2.js} +1 -1
- package/web/assets/{interface-copy-clipboard.svg-C8NaVJTP.js → interface-copy-clipboard.svg-BaK2fHKS.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-DLv3r8Ta.js → interface-edit-attachment.svg-CrpyP6c6.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-Dn_isC0z.js → interface-edit-binocular.svg-Cw-YeqUQ.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-D7nDtfWR.js → interface-edit-magic-wand.svg-BPa49t_4.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-pvqfHBhq.js → interface-edit-tool-paint-roller.svg-Cfag7vxY.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-65sH97q4.js → interface-edit-tool-pencil.svg-BNAmX0d_.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-ByKr9sn6.js → interface-favorite-award.svg-CIMvocAv.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-Dw-AP2Bq.js → interface-favorite-flag.svg-8C3GXK06.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-B_rIv8ZF.js → interface-favorite-heart.svg-CEU_IALn.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-DdSC1aGg.js → interface-favorite-star.svg-Bs0RUtgk.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-B2P_fEQm.js → interface-favorite-stars-sparkles.svg-CZYZ5qkH.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-Dn7xVcha.js → interface-hierarchy-flowchart.svg-DOgEXHV2.js} +1 -1
- package/web/assets/{interface-home-house.svg-CPV7dtoL.js → interface-home-house.svg-lDERGk8q.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-BxEpW0yS.js → interface-hyperlink.svg-CAZrs64U.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-CHwx5muE.js → interface-lighting-brightness.svg-CVANBB7i.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-Ct9YyvGT.js → interface-lock-closed.svg-qDLyceL-.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-DuuZ9seB.js → interface-lock-open-unlock.svg-Bc-cq6eU.js} +1 -1
- package/web/assets/{interface-login-key.svg-DwQq_1hs.js → interface-login-key.svg-D6wZBYEi.js} +1 -1
- package/web/assets/{interface-search.svg-Cd9FPHXP.js → interface-search.svg-BVM6kkvA.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-C2oUvcZk.js → interface-setting-cog.svg-uJYqlmKx.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-D_sqPbcr.js → interface-share-megaphone-bullhorn.svg-CgBVBu7Z.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-DHw9o1DN.js → interface-share-rocket.svg-C1iCXMlX.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-CYuWbhdH.js → interface-share-satellite.svg-uH-Cvq9d.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-CsQbvDGw.js → interface-share-space-ship.svg-81lauyV5.js} +1 -1
- package/web/assets/{interface-share.svg-CxR58P36.js → interface-share.svg-DO85t-F0.js} +1 -1
- package/web/assets/{interface-signal-square.svg-BFCAMIlM.js → interface-signal-square.svg-CFAni6lY.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-BMtmcI_Z.js → interface-time-clock-circle.svg-BUQfluh7.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-F_74mbfe.js → interface-time-hour-glass.svg-BAZDU-C5.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-GqG3hBlb.js → interface-users-multiple.svg-Bj0AvF2-.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-By26aJ-s.js → interface-weather-moon.svg-Cxz-5thD.js} +1 -1
- package/web/assets/{javascript-DWG-shUz.js → javascript-CuP68vN5.js} +1 -1
- package/web/assets/{jsonMode-c7o5Rqeq.js → jsonMode-CdGjze9r.js} +1 -1
- package/web/assets/{liquid-DqJ-7gUQ.js → liquid-fJJZPdJb.js} +1 -1
- package/web/assets/{lspLanguageFeatures-C_r6rVue.js → lspLanguageFeatures-YzzH9q9a.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-1OECQtwZ.js → mail-chat-bubble-square.svg-DY1-sN8v.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-DGa9kXqg.js → mail-send-email-paper-airplane.svg-6zVEUG2-.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-DOnW83Qn.js → mail-send-envelope.svg-DNpA7Auy.js} +1 -1
- package/web/assets/{mdx-BmXiyjsf.js → mdx-CphM-wvX.js} +1 -1
- package/web/assets/{minus-Bva6o6mu.js → minus-DD84SZSh.js} +2 -2
- package/web/assets/modal-CKGM8Wb3.js +5 -0
- package/web/assets/modal-Dd5rzDUd.js +1 -0
- package/web/assets/{money-cashier-receipt.svg-C9S8E9Gs.js → money-cashier-receipt.svg-ChxLUMT0.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-CXNYqgJd.js → money-currency-dollar-pay.svg-CcPdfv1E.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-DVTCnF_9.js → money-graph-arrow-increase.svg-BsmXO8yM.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-CIlyGCUY.js → money-graph-bar-chart-increase.svg-QVk3zD8i.js} +1 -1
- package/web/assets/multiselect-3cR58mLz.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-xc6FzauK.js → nature-ecology-leaf.svg-nzup63P6.js} +1 -1
- package/web/assets/{password-B_HLITFe.js → password-CCYLOu-C.js} +4 -4
- package/web/assets/{phone-telephone.svg-D6y6im-g.js → phone-telephone.svg-BLtgdZw-.js} +1 -1
- package/web/assets/{plus-DJr2QEgS.js → plus-jk73RdzY.js} +5 -5
- package/web/assets/process.store-jsfEBwiA.js +1 -0
- package/web/assets/{programming-bug.svg-jKhqPvQ0.js → programming-bug.svg-BCN6lOn1.js} +1 -1
- package/web/assets/{programming-cloud.svg-C1_us4-8.js → programming-cloud.svg-DHNBRNkQ.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-C_8mq7k2.js → programming-computer-database-server.svg-C4DheEbm.js} +1 -1
- package/web/assets/{programming-computer-database.svg-Cc445gb5.js → programming-computer-database.svg-cD2w2ZZ6.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-B5fbcAO3.js → programming-module-four-layout.svg-D6_P2rTG.js} +1 -1
- package/web/assets/{programming-module-three.svg-J7fncT0c.js → programming-module-three.svg-Dc076Z_f.js} +1 -1
- package/web/assets/{programming-module.svg-BVjzZRgZ.js → programming-module.svg-D0c9akII.js} +1 -1
- package/web/assets/{programming-script-code.svg-By609kb5.js → programming-script-code.svg-BrT3KZQe.js} +1 -1
- package/web/assets/project-launch.store-Bp7vasUu.js +1 -0
- package/web/assets/project.store-DuZriz9o.js +1 -0
- package/web/assets/{python-jVn8dPRY.js → python-DMw-TRDY.js} +1 -1
- package/web/assets/{radiobutton-erK19fCL.js → radiobutton-CnoEo0qc.js} +2 -2
- package/web/assets/{razor-BJoJ2H1P.js → razor-BTS4Lk96.js} +1 -1
- package/web/assets/router-BU2tqcBm.js +1 -0
- package/web/assets/settings-scope-Bg_X1n_Y.js +1 -0
- package/web/assets/{settings.store-CcYfFedF.js → settings.store-DeGpnclr.js} +1 -1
- package/web/assets/{shopping-cart.svg-a8Rjk8rK.js → shopping-cart.svg-pvFNKXP_.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-BIN9jnEb.js → shopping-gift-present.svg-PYJ4_vdS.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-05MVPg3v.js → shopping-shipping-box-parcel-package.svg-KMRd9Rmg.js} +1 -1
- package/web/assets/src-BsadAol0.js +572 -0
- package/web/assets/{src-DCcw9sU3.css → src-DU1mBjF-.css} +1 -1
- package/web/assets/src-NXursDRf.js +1 -0
- package/web/assets/{tabpanel-BIAV4aKH.js → tabpanel-CKudNnqo.js} +3 -3
- package/web/assets/{tag-new-circle.svg-ehKpryNe.js → tag-new-circle.svg-Bf83DYRq.js} +1 -1
- package/web/assets/theme-D6M00FyZ.js +1 -0
- package/web/assets/{toggleswitch-qhHjeH7s.js → toggleswitch-Cv0supU2.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-D0Dk72so.js → travel-map-earth-globe.svg-WxnFDzEH.js} +1 -1
- package/web/assets/trpc-mWVODCs2.js +1 -0
- package/web/assets/{tsMode-B-s4JVyR.js → tsMode-CfruLmor.js} +5 -5
- package/web/assets/{typescript-CToySho3.js → typescript-BvsjNfHT.js} +1 -1
- package/web/assets/useAiChatDrawer-vNey6IKe.js +1 -0
- package/web/assets/useCloudOrg-B0o8vN4e.js +1 -0
- package/web/assets/useEnvVarAutocomplete-DJMTIim7.js +1 -0
- package/web/assets/useProjectCatalog-B6GXBDDA.js +1 -0
- package/web/assets/{useProjectCloudOrg-DOTcwa9I.js → useProjectCloudOrg-BwLsTiz0.js} +1 -1
- package/web/assets/useServiceUrlHost-CE4Qoy-J.js +1 -0
- package/web/assets/{xml-BMt9wg3H.js → xml-BTID20Kj.js} +1 -1
- package/web/assets/{yaml-RmzWffCM.js → yaml-BtOf_8je.js} +1 -1
- package/web/index.html +2 -2
- package/agent-manager-ACPQWUZ5.js +0 -9
- package/chunk-22RJM654.js.map +0 -1
- package/chunk-2WXQIUVC.js.map +0 -1
- package/chunk-GIHR3BGT.js.map +0 -1
- package/chunk-H6VIS4OY.js.map +0 -1
- package/chunk-NYKFDU76.js.map +0 -1
- package/settings-manager-2C7RY6ZC.js +0 -9
- package/src-NRKK27F3.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-Lgml1vhh.js +0 -13
- package/web/assets/AgentTerminalPage-CwxbyQxm.js +0 -1
- package/web/assets/AiChatPage-CknE-NOo.js +0 -1
- package/web/assets/AppLayout-DT6bb__K.js +0 -1
- package/web/assets/AuditPage-DzK5Tp3Z.js +0 -1
- package/web/assets/CloudAccountPage-BDQpVEAX.js +0 -1
- package/web/assets/CloudAccountPage-CWdxZvAC.js +0 -1
- package/web/assets/CloudAccountPage-CfMY69pk.css +0 -1
- package/web/assets/CloudMessagingPage-BX0QPzkR.js +0 -2
- package/web/assets/DashboardPage-BNBzT2zb.js +0 -164
- package/web/assets/DirectoryPickerDialog-ZT-tL_4A.js +0 -1
- package/web/assets/EnvironmentFormPage-B7uerFJ0.js +0 -1
- package/web/assets/EnvironmentListPage-tTe_1yh-.js +0 -1
- package/web/assets/KanbanBoardPage-DTZVqxd6.js +0 -4
- package/web/assets/KanbanListPage-C5rbZ1eL.css +0 -1
- package/web/assets/KanbanListPage-D82HSRy7.js +0 -1
- package/web/assets/LaunchProjectPage-DgaslasQ.js +0 -1
- package/web/assets/LaunchServicesPage-I2HCqujc.js +0 -1
- package/web/assets/LogViewer-CYuoSJAN.js +0 -3
- package/web/assets/OrgKeyPrompt-Asz6FlrN.js +0 -1
- package/web/assets/ProcessDetailPage-DHmTCgj8.js +0 -1
- package/web/assets/RandomJobTestPage-COLLiJzt.js +0 -2
- package/web/assets/ScenarioEditorPage-rDIB08Ap.js +0 -14
- package/web/assets/SendToChatDialog-BvUmZhUU.js +0 -1
- package/web/assets/ServiceControlsBar-DGTsbA5Q.js +0 -1
- package/web/assets/ServiceDetailPage-Ddko3DNN.js +0 -2
- package/web/assets/ServiceFormPage-oVVmtWjt.js +0 -1
- package/web/assets/SettingsPage-BcQruhk1.js +0 -2063
- package/web/assets/UnlockPage-CpysPhlT.css +0 -1
- package/web/assets/UnlockPage-OH7UV01L.js +0 -1
- package/web/assets/VaultMigrationPage-B4a0WihW.js +0 -1
- package/web/assets/VersionBadge-URtOAd5L.js +0 -1
- package/web/assets/WikiPage-BotpKBAY.js +0 -1
- package/web/assets/WikiView-DQCs79lu.js +0 -1
- package/web/assets/add-scalar-classes-CnAomA8D.js +0 -387
- package/web/assets/card-C3Xots9M.js +0 -32
- package/web/assets/client-CbBJUuyt.js +0 -24
- package/web/assets/cloud-chat.store-COR3nnYR.js +0 -1
- package/web/assets/cloud-client-DZFY1sze.js +0 -1
- package/web/assets/cloud-session-CCJUvzk1.js +0 -1
- package/web/assets/column-ROcesBUs.js +0 -763
- package/web/assets/interface-content-folder.svg-CagI3wg0.js +0 -1
- package/web/assets/modal-AUS2ksVq.js +0 -5
- package/web/assets/modal-BR3MAJDn.js +0 -1
- package/web/assets/multiselect-aPow7kzy.js +0 -251
- package/web/assets/process.store-CVrBwiRB.js +0 -1
- package/web/assets/project-launch.store-DCuERm8z.js +0 -1
- package/web/assets/project.store-D0oo8kyl.js +0 -1
- package/web/assets/router-0UcfydXq.js +0 -1
- package/web/assets/settings-scope-DdLe151G.js +0 -1
- package/web/assets/src-BiwZaAz3.js +0 -1
- package/web/assets/src-OmBj_GBQ.js +0 -572
- package/web/assets/theme-DiK_jXoN.js +0 -1
- package/web/assets/trpc-DOYpfRgV.js +0 -1
- package/web/assets/useAiChatDrawer-BSlDU8P0.js +0 -1
- package/web/assets/useCloudOrg-_EGQ6eUY.js +0 -1
- package/web/assets/useEnvVarAutocomplete-B4h_6ylX.js +0 -1
- package/web/assets/useProjectCatalog-B3GacZkf.js +0 -1
- package/web/assets/useServiceUrlHost-B-38dOxY.js +0 -1
- /package/{agent-manager-ACPQWUZ5.js.map → agent-manager-BSPEFZKZ.js.map} +0 -0
- /package/{chat-PXMMZIAY.js.map → chat-SE5GIT4B.js.map} +0 -0
- /package/{companion-4RQ3AMOL.js.map → companion-HEJHC3UR.js.map} +0 -0
- /package/{desktop-launcher-ADGRYF4S.js.map → desktop-launcher-EGGVXXKV.js.map} +0 -0
- /package/{settings-manager-2C7RY6ZC.js.map → settings-manager-4GAINSJO.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Ai as e,An as t,Ci as n,Ct as r,Di as i,Fa as a,Fi as o,Fn as s,Hi as c,Ii as l,Jn as u,Ka as d,Kn as f,Kt as p,L as m,Li as h,Ma as g,Ni as _,Oa as v,Oi as y,Pi as b,Pn as x,Tn as S,Tt as C,Un as w,Vi as T,Wi as E,Xn as D,Xt as O,Yt as k,Zt as A,_n as ee,cr as j,d as M,da as N,ea as P,ft as F,gt as I,it as L,jn as te,ka as R,la as z,lr as B,lt as V,mr as ne,mt as re,nt as H,or as U,pa as W,pn as ie,pr as ae,qn as oe,rt as se,sa as ce,sn as le,st as ue,to as G,tt as de,vn as fe,vr as K,wa as q,wn as J,yt as Y}from"./index-De7vzwYE.js";import"./cloud-session-CnTOFA6T.js";import"./src-BiwZaAz3.js";import"./useServiceUrlHost-B-38dOxY.js";import"./ProcessControls-DRyD5bQg.js";import{t as pe}from"./ServiceControlsBar-DGTsbA5Q.js";import{t as me}from"./uuid--pMuF47W.js";import{n as he,t as ge}from"./column-ROcesBUs.js";import{n as X}from"./plus-DJr2QEgS.js";import{t as _e}from"./checkbox-DGCPu95-.js";import"./useProjectCloudOrg-DOTcwa9I.js";import{t as Z}from"./toggleswitch-qhHjeH7s.js";import{i as ve,n as ye,o as be,r as Q,t as $}from"./tabpanel-BIAV4aKH.js";import{i as xe,n as Se,r as Ce,t as we}from"./useEnvVarAutocomplete-B4h_6ylX.js";import{t as Te}from"./autocomplete-ByrzVX5h.js";import"./SendToChatDialog-BvUmZhUU.js";import{n as Ee,t as De}from"./ProcessMetrics-D5SgFgFU.js";import{t as Oe}from"./LogViewer-CYuoSJAN.js";import{t as ke}from"./divider-BrS14lDG.js";import{t as Ae}from"./settings.store-CcYfFedF.js";import{t as je}from"./WikiView-DQCs79lu.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=f(E({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(e,{emit:t}){let n=e,{t:r}=K(),i=M(),s=t,u=_(()=>{if(!n.log)return``;let e=new Date(n.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`)}`}),d=_(()=>n.log?n.log.level.charAt(0).toUpperCase()+n.log.level.slice(1):``),f=_(()=>!n.log||n.log.pid==null?r(`logDetails.notAvailable`):String(n.log.pid)),p=_(()=>n.log?i.getByService(n.log.processId)[0]?.cwd??null:null);function m(){n.log&&s(`view-process`,n.log.processId)}function g(){s(`update:visible`,!1)}return(t,n)=>(N(),o(G(oe),{visible:e.visible,position:`right`,header:G(r)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":g},{default:v(()=>[e.log?(N(),h(`div`,Me,[b(`div`,Ne,[b(`div`,Pe,a(G(r)(`logDetails.type`)),1),b(`div`,Fe,a(d.value),1)]),b(`div`,Ie,[b(`div`,Le,a(G(r)(`logDetails.rawMessage`)),1),b(`div`,Re,a(e.log.raw),1)]),b(`div`,ze,[b(`div`,Be,a(G(r)(`logDetails.serviceId`)),1),b(`div`,Ve,[b(`div`,He,[b(`span`,null,a(e.log.processId),1),c(G(D),{label:G(r)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:m},null,8,[`label`])])])]),b(`div`,Ue,[b(`div`,We,a(G(r)(`logDetails.pid`)),1),b(`div`,Ge,a(f.value),1)]),p.value?(N(),h(`div`,Ke,[b(`div`,qe,a(G(r)(`logDetails.cwd`)),1),b(`div`,Je,a(p.value),1)])):l(``,!0),b(`div`,Ye,[b(`div`,Xe,a(G(r)(`logDetails.timestamp`)),1),b(`div`,Ze,a(u.value),1)]),e.log.stream?(N(),h(`div`,Qe,[b(`div`,$e,a(G(r)(`logDetails.stream`)),1),b(`div`,et,a(e.log.stream),1)])):l(``,!0),e.log.metadata&&Object.keys(e.log.metadata).length>0?(N(),h(`div`,tt,[b(`div`,nt,a(G(r)(`logDetails.metadata`)),1),b(`div`,rt,a(JSON.stringify(e.log.metadata,null,2)),1)])):l(``,!0)])):l(``,!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 n=d([]),r=d(!1),i=null,a=0,o=null,c=x(()=>{a=0,r.value||C()}),l=[],u=null,f=d(0),p=d(0),m=0,h=0,g=null;function _(){g||=setInterval(()=>{f.value=m,p.value=h,m=0,h=0},1e3)}function v(){g&&=(clearInterval(g),null),f.value=0,p.value=0,m=0,h=0}function y(){if(u=null,l.length===0)return;let e=l;l=[],h+=e.length;let t=[...n.value,...e];t.length>at&&(t=t.slice(t.length-at)),n.value=t}function b(){!e.value||!t.value||(r.value=!0,i=s.process.onLog.subscribe({agentId:e.value,processId:t.value},{onData(e){let t=e;if(a=0,w(`connected`),t.some(e=>e.__clearLogBuffer)){n.value=[],l=[];return}m+=t.length,l.push(...t),u===null&&(u=requestAnimationFrame(y))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),r.value=!1,i=null,S()}}))}function S(){if(a>=ot){console.warn(`[useLogStream] Max retries (${ot}) reached`),w(`disconnected`);return}w(`reconnecting`);let e=ct(st*2**a);a++,o=setTimeout(()=>{o=null,C()},e)}async function C(){if(!r.value&&!(!e.value||!t.value)){a=0;try{let r=await s.process.logs.query({agentId:e.value,processId:t.value});r.length>at&&(r=r.slice(r.length-at)),n.value=r,w(`connected`)}catch{}b()}}function T(){o&&=(clearTimeout(o),null),u!==null&&(cancelAnimationFrame(u),u=null),l=[],v(),i&&=(i.unsubscribe(),null),r.value=!1,a=0,n.value=[]}return q([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&(r.value&&T(),C())}),z(()=>{c(),T()}),{logs:n,isStreaming:r,start:C,stop:T,receivedPerSec:f,flushedPerSec:p,startStats:_,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=f(E({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(t){let{t:n}=K(),r=t,i=_(()=>r.processes.find(e=>e.state===`running`||e.state===`starting`)??r.processes[0]??null),u=_(()=>i.value?.agentId??``),f=_(()=>i.value?.id??``),p=ne(),{logs:m,isStreaming:y,start:x,stop:S,receivedPerSec:C,flushedPerSec:w,startStats:T,stopStats:E}=lt(u,f),O=d(!1);q(O,e=>{e?T():E()});function k(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),O.value=!O.value)}let A=_(()=>{let e=new Map;return m.value.forEach(t=>{if(t.pid!=null){let n=e.get(t.pid);if(n)n.lastSeen=new Date(Math.max(n.lastSeen.getTime(),new Date(t.timestamp).getTime())),n.logCount++;else{let n=r.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=_(()=>$.value===`all`?m.value:m.value.filter(e=>e.pid===$.value)),j=_(()=>A.value.filter(e=>e.isActive).length),M=_(()=>{let e=[{label:n(`serviceTerminal.allProcesses`),value:`all`,badge:j.value>0?`${j.value} ${n(`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});_(()=>r.processes.filter(e=>e.state===`running`).length);async function F(){if(i.value)try{await s.process.clearLogBuffer.mutate({agentId:i.value.agentId,processId:i.value.id}),m.value=[]}catch(e){p.add({severity:`error`,summary:n(`serviceTerminal.error`),detail:e.message??n(`serviceTerminal.failedToClearLogs`),life:5e3})}}let I=_(()=>r.service.shortcuts??[]),L=d(new Set);async function te(e){let t=i.value?.agentId??r.service.agentId,a=i.value?.id??r.service.id;if(!t){p.add({severity:`warn`,summary:n(`serviceTerminal.noAgent`),detail:n(`serviceTerminal.noAgentDesc`),life:3e3});return}if(L.value.has(e.id)){try{await s.process.cancelShortcut.mutate({agentId:t,processId:a,shortcutId:e.id})}catch{}return}L.value=new Set([...L.value,e.id]);try{await s.process.executeShortcut.mutate({agentId:t,processId:a,shortcut:e})}catch(e){p.add({severity:`error`,summary:n(`serviceTerminal.shortcutFailed`),detail:e.message??n(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(L.value);t.delete(e.id),L.value=t}}let R=d(``),B=d(new Set),V=_(()=>B.value.size>0),re=d(null),H=d([]),U=d(-1),ie=`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(`,`),ae=d([]);function oe(e){let t=e.query.toLowerCase().trim();if(!t||!R.value.trim()){ae.value=[];return}let n=[...H.value.slice().reverse(),...ie],r=new Set;ae.value=n.filter(e=>r.has(e)?!1:(r.add(e),e.toLowerCase().includes(t))).slice(0,10)}function se(){try{let e=localStorage.getItem(Tt+r.service.id);e&&(H.value=JSON.parse(e))}catch{H.value=[]}}function ue(){try{localStorage.setItem(Tt+r.service.id,JSON.stringify(H.value))}catch{}}function de(e){H.value[H.value.length-1]!==e&&(H.value=[...H.value,e],H.value.length>Et&&(H.value=H.value.slice(-Et)),ue())}async function fe(){let e=i.value?.agentId??r.service.agentId,t=i.value?.id??r.service.id;if(e)try{await s.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function Y(){if(!R.value.trim())return;let e=i.value?.agentId??r.service.agentId,t=i.value?.id??r.service.id;if(!e){p.add({severity:`warn`,summary:n(`serviceTerminal.noAgent`),detail:n(`serviceTerminal.noAgentDesc`),life:3e3});return}let a=me(),o=R.value.trim();de(o),R.value=``,ae.value=[],U.value=-1,B.value=new Set([...B.value,a]);try{await s.process.executeAdHocCommand.mutate({agentId:e,processId:t,command:o,commandId:a})}catch(e){p.add({severity:`error`,summary:n(`serviceTerminal.commandFailed`),detail:e.message??n(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(B.value);e.delete(a),B.value=e,P(()=>{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(),H.value.length===0)return;U.value===-1?U.value=H.value.length-1:U.value>0&&U.value--,R.value=H.value[U.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),U.value===-1)return;U.value<H.value.length-1?(U.value++,R.value=H.value[U.value]||``):(U.value=-1,R.value=``)}}function ge(){if(m.value.length===0)return;let e=m.value.map(e=>`[${new Date(e.timestamp).toISOString()}] ${e.level.toUpperCase().padEnd(5)} ${e.message}`),t=new Blob([e.join(`
|
|
2
|
-
`)],{type:`text/plain`}),n=URL.createObjectURL(t),i=document.createElement(`a`);i.href=n,i.download=`${r.service.name}-${new Date().toISOString().slice(0,19).replaceAll(`:`,`-`)}.log`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(n)}let X=d(0),_e=0,Z=null,ve=null;q(i,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=d(!0),be=d(null),Q=d(!1),$=d(`all`),xe=d(!1);function Se(){xe.value=!xe.value}ce(()=>{se(),i.value&&x(),window.addEventListener(`keydown`,k)}),z(()=>{S(),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,p.add({severity:`info`,summary:`Process`,detail:`Process ID: ${e}`,life:3e3})}return(s,u)=>(N(),h(`div`,{class:g([`service-terminal`,{"service-terminal--fullscreen":xe.value}]),"data-testid":`service-terminal`},[xe.value?(N(),o(pe,{key:0,service:t.service,processes:t.processes},null,8,[`service`,`processes`])):l(``,!0),b(`div`,ut,[b(`div`,dt,[c(G(D),{label:G(n)(`serviceTerminal.logs`),severity:ye.value?`primary`:`secondary`,text:``,size:`small`,onClick:u[0]||=e=>ye.value=!0},null,8,[`label`,`severity`]),c(G(le),{modelValue:$.value,"onUpdate:modelValue":u[1]||=e=>$.value=e,options:M.value,"option-label":`label`,"option-value":`value`,class:`service-terminal__pid-selector`},{value:v(e=>[e.value===`all`?(N(),h(`div`,ft,[u[5]||=b(`i`,{class:`pi pi-list`,style:{"margin-right":`0.5rem`}},null,-1),b(`span`,null,a(G(n)(`serviceTerminal.allProcesses`)),1),j.value>0?(N(),o(G(J),{key:0,value:`${j.value} ${G(n)(`serviceTerminal.active`)}`,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):l(``,!0)])):(N(),h(`div`,pt,[M.value.find(t=>t.value===e.value)?.isActive?(N(),h(`i`,mt)):(N(),h(`i`,ht)),b(`span`,null,`PID: `+a(e.value),1)]))]),option:v(e=>[b(`div`,gt,[e.option.value===`all`?(N(),h(`i`,_t)):e.option.isActive?(N(),h(`i`,{key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,title:G(n)(`serviceTerminal.running`)},null,8,vt)):(N(),h(`i`,{key:2,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,title:G(n)(`serviceTerminal.stopped`)},null,8,yt)),b(`span`,null,a(e.option.label),1),e.option.badge?(N(),o(G(J),{key:3,value:e.option.badge,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):l(``,!0)])]),_:1},8,[`modelValue`,`options`])]),b(`div`,bt,[c(G(D),{icon:xe.value?`pi pi-window-minimize`:`pi pi-window-maximize`,text:``,rounded:``,size:`small`,title:xe.value?G(n)(`serviceTerminal.exitFullscreen`):G(n)(`serviceTerminal.fullscreen`),onClick:Se},null,8,[`icon`,`title`]),c(G(D),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,title:G(n)(`serviceTerminal.downloadLogs`),disabled:G(m).length===0,onClick:ge},null,8,[`title`,`disabled`]),c(G(D),{icon:`pi pi-trash`,text:``,rounded:``,size:`small`,title:G(n)(`serviceTerminal.clearLogs`),disabled:G(m).length===0,onClick:F},null,8,[`title`,`disabled`])])]),b(`div`,xt,[c(Oe,{logs:ee.value,loading:!1,"received-per-sec":G(C),"flushed-per-sec":G(w),"show-stats":O.value,"service-label":r.service.label||r.service.name,onLogClick:we},null,8,[`logs`,`received-per-sec`,`flushed-per-sec`,`show-stats`,`service-label`])]),I.value.length>0?(N(),h(`div`,St,[(N(!0),h(e,null,W(I.value,e=>(N(),o(G(D),{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))])):l(``,!0),b(`div`,Ct,[u[6]||=b(`span`,{class:`service-terminal__prompt`,"data-testid":`terminal-prompt`},`>`,-1),c(G(Te),{ref_key:`adHocCommandInput`,ref:re,modelValue:R.value,"onUpdate:modelValue":u[2]||=e=>R.value=e,suggestions:ae.value,class:`service-terminal__autocomplete`,"input-class":`service-terminal__input`,placeholder:G(n)(`serviceTerminal.enterCommand`),"aria-label":G(n)(`serviceTerminal.enterCommand`),disabled:!(i.value?.agentId??r.service.agentId),"data-testid":`terminal-command-input`,onComplete:oe,onKeydown:he},null,8,[`modelValue`,`suggestions`,`placeholder`,`aria-label`,`disabled`]),c(G(D),{icon:V.value?`pi pi-stop`:`pi pi-play`,severity:V.value?`danger`:void 0,size:`small`,"data-testid":`terminal-run-btn`,disabled:!(i.value?.agentId??r.service.agentId)||!R.value.trim()&&!V.value,onClick:u[3]||=e=>V.value?fe():Y()},null,8,[`icon`,`severity`,`disabled`])]),b(`div`,wt,[i.value?(N(),o(G(J),{key:0,icon:`pi pi-server`,value:i.value.agentId.slice(0,8),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):l(``,!0),t.service.cwd?(N(),o(G(J),{key:1,icon:`pi pi-folder`,value:t.service.cwd,severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):l(``,!0),i.value&&(i.value.state===`running`||i.value.state===`starting`)?(N(),o(G(J),{key:2,icon:`pi pi-clock`,value:Ce(X.value/1e3),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):l(``,!0)]),c(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 n=d(null),r=d(!1),i=d(!1),a=null,o=0,c=null;async function l(){if(!r.value){i.value=!0;try{n.value=await s.process.metrics.query({agentId:e.value,processId:t.value})}catch(e){console.error(`Failed to fetch initial metrics:`,O(e))}finally{i.value=!1}u()}}function u(){r.value=!0,a=s.process.onMetrics.subscribe({agentId:e.value,processId:t.value},{onData(e){o=0,w(`connected`),n.value=e},onError(e){console.error(`Metrics stream error:`,e),r.value=!1,a=null,f()}})}function f(){if(o>=Ot){console.warn(`Metrics stream: max retries (${Ot}) reached, giving up`),w(`disconnected`);return}w(`reconnecting`);let e=At(kt*2**o);o++,c=setTimeout(()=>{c=null,u()},e)}function p(){c&&=(clearTimeout(c),null),a&&=(a.unsubscribe(),null),r.value=!1,o=0}return q([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&r.value&&(p(),l())}),z(()=>{p()}),{metrics:n,isStreaming:r,isLoading:i,start:l,stop:p}}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=f(E({__name:`ServiceMetrics`,props:{service:{},processes:{}},setup(t){let n=t,r=_(()=>n.processes.find(e=>e.state===`running`||e.state===`starting`)??n.processes[0]??null),i=_(()=>r.value?.agentId??``),s=_(()=>r.value?.id??``),{t:l}=K(),{metrics:u,isLoading:d,start:f,stop:p}=jt(i,s);return ce(()=>{r.value&&f()}),z(()=>{p()}),(t,n)=>(N(),h(`div`,Mt,[r.value?(N(),h(e,{key:0},[G(u)?(N(),o(De,{key:0,cpu:G(u).cpu,memory:G(u).memory},null,8,[`cpu`,`memory`])):G(d)?(N(),h(`div`,Nt,[b(`div`,Pt,[c(G(Ee),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),c(G(Ee),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),c(G(Ee),{width:`100%`,height:`6px`,"border-radius":`4px`})]),b(`div`,Ft,[c(G(Ee),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),c(G(Ee),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),c(G(Ee),{width:`6rem`,height:`0.65rem`})])])):(N(),h(`div`,It,a(G(l)(`serviceMetrics.noData`)),1))],64)):(N(),h(`div`,Lt,[n[0]||=b(`i`,{class:`pi pi-info-circle`},null,-1),b(`span`,null,a(G(l)(`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=d(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=f(E({__name:`ServiceConfigGeneral`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let{t:r}=K(),o=F(),s=k(),l=d([]);function u(e){let t=e.query.trim().toLowerCase(),n=new Set(E.value.groups);l.value=C.value.filter(e=>!n.has(e)&&(!t||e.toLowerCase().includes(t)))}function f(e,t){let n=t.trim();if(n){if(e===`ports`){let e=Number(n);if(!Number.isInteger(e)||e<1||e>65535||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 p(e){let t=e.target;f(`groups`,t.value),t.value=``,l.value=[]}function m(e,t){let n=e.target;!n||typeof n.value!=`string`||!n.value.trim()||setTimeout(()=>{f(t,n.value),n.value=``},En)}let g=t,v=n,x=_(()=>s.projects.find(e=>e.serviceIds.includes(g.service.id)&&(e.orgId??null)===(g.service.orgId??null))??null),C=_(()=>{let e=x.value;if(!e)return[];let t=new Set;for(let n of e.serviceIds)for(let e of o.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=d({name:g.service.name,cwd:g.service.cwd??``,ports:(g.service.ports??[]).map(String),groups:[...g.service.groups??[]],description:g.service.description??``,docsPath:g.service.docsPath??``,url:g.service.url??``,openapiUrl:g.service.openapiUrl??``,gitRemote:g.service.git?.remote??``,gitHome:g.service.git?.home??``,autoRestart:g.service.autoRestart,clearLogsOnStart:g.service.clearLogsOnStart??!1}),O=d(w(g.service.meta));q(()=>g.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},O.value=w(e.meta)});function A(){O.value=[...O.value,{key:``,value:``}]}function ee(e){O.value=O.value.filter((t,n)=>n!==e)}function j(e,t,n){O.value=O.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function M(){let e={};for(let{key:t,value:n}of O.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 P=null;function I(){P&&clearTimeout(P),P=setTimeout(()=>{v(`save`,M()),P=null},150)}return(t,n)=>(N(),h(`div`,Gt,[b(`div`,Kt,[b(`div`,qt,[n[14]||=b(`i`,{class:`pi pi-tag`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.name`)),1)]),c(G(S),{modelValue:E.value.name,"onUpdate:modelValue":n[0]||=e=>E.value.name=e,class:`config-card__input`,onBlur:I,onKeydown:i(y(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),b(`div`,Jt,[b(`div`,Yt,[n[15]||=b(`i`,{class:`pi pi-folder`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.workingDirectory`)),1)]),c(G(S),{modelValue:E.value.cwd,"onUpdate:modelValue":n[1]||=e=>E.value.cwd=e,class:`config-card__input`,placeholder:`.`,onBlur:I,onKeydown:i(y(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),b(`small`,Xt,a(G(r)(`serviceConfigGeneral.cwdHint`)),1)]),b(`div`,Zt,[n[16]||=b(`div`,{class:`config-card__header`},[b(`i`,{class:`pi pi-file-edit`}),b(`span`,null,`Dossier de documentation (wiki)`)],-1),c(G(S),{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:i(y(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[17]||=b(`small`,{class:`config-card__hint`},[T(` Chemin relatif au cwd du service (ex. `),b(`code`,null,`docs`),T(`) ou absolu. Si vide, utilise le cwd. `)],-1)]),b(`div`,Qt,[b(`div`,$t,[n[18]||=b(`i`,{class:`pi pi-globe`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.ports`)),1)]),c(G(Te),{modelValue:E.value.ports,"onUpdate:modelValue":n[3]||=e=>E.value.ports=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:G(r)(`serviceConfigGeneral.portsPlaceholder`),onChange:I,onBlur:n[4]||=e=>m(e,`ports`)},null,8,[`modelValue`,`placeholder`]),b(`small`,en,a(G(r)(`serviceConfigGeneral.portsHint`)),1)]),b(`div`,tn,[b(`div`,nn,[n[19]||=b(`i`,{class:`pi pi-th-large`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.groups`)),1)]),c(G(Te),{modelValue:E.value.groups,"onUpdate:modelValue":n[5]||=e=>E.value.groups=e,multiple:``,suggestions:l.value,"complete-on-focus":!0,class:`config-card__input`,placeholder:G(r)(`serviceConfigGeneral.groupsPlaceholder`),onComplete:u,onChange:I,onKeydown:i(p,[`enter`]),onBlur:n[6]||=e=>m(e,`groups`)},null,8,[`modelValue`,`suggestions`,`placeholder`]),b(`small`,rn,a(G(r)(`serviceConfigGeneral.groupsHint`)),1)]),b(`div`,an,[b(`div`,on,[n[20]||=b(`i`,{class:`pi pi-info-circle`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.description`)),1)]),c(G(ie),{modelValue:E.value.description,"onUpdate:modelValue":n[7]||=e=>E.value.description=e,class:`config-card__input`,rows:2,onBlur:I},null,8,[`modelValue`]),b(`small`,sn,a(G(r)(`serviceConfigGeneral.descriptionHint`)),1)]),b(`div`,cn,[b(`div`,ln,[n[21]||=b(`i`,{class:`pi pi-external-link`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.url`)),1)]),c(G(S),{modelValue:E.value.url,"onUpdate:modelValue":n[8]||=e=>E.value.url=e,class:`config-card__input`,placeholder:`https://...`,onBlur:I,onKeydown:i(y(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),b(`small`,un,a(G(r)(`serviceConfigGeneral.urlHint`)),1)]),b(`div`,dn,[b(`div`,fn,[n[22]||=b(`i`,{class:`pi pi-book`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.openapiUrl`)),1)]),c(G(S),{modelValue:E.value.openapiUrl,"onUpdate:modelValue":n[9]||=e=>E.value.openapiUrl=e,class:`config-card__input`,placeholder:`https://.../swagger.json`,onBlur:I,onKeydown:i(y(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),b(`small`,pn,a(G(r)(`serviceConfigGeneral.openapiUrlHint`)),1)]),b(`div`,mn,[b(`div`,hn,[n[23]||=b(`i`,{class:`pi pi-github`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.git`)),1)]),c(G(S),{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:i(y(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),b(`small`,gn,a(G(r)(`serviceConfigGeneral.gitRemoteHint`)),1),c(G(S),{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:i(y(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),b(`small`,_n,a(G(r)(`serviceConfigGeneral.gitHomeHint`)),1)]),b(`div`,vn,[b(`div`,yn,[n[24]||=b(`i`,{class:`pi pi-hashtag`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.meta`)),1)]),b(`small`,bn,a(G(r)(`serviceConfigGeneral.metaHint`)),1),b(`div`,xn,[(N(!0),h(e,null,W(O.value,(e,t)=>(N(),h(`div`,{key:t,class:`config-meta__row`},[c(G(S),{"model-value":e.key,placeholder:G(r)(`serviceConfigGeneral.metaKeyPlaceholder`),class:`config-meta__input`,"onUpdate:modelValue":e=>j(t,`key`,e),onBlur:I,onKeydown:i(y(I,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),c(G(S),{"model-value":e.value,placeholder:G(r)(`serviceConfigGeneral.metaValuePlaceholder`),class:`config-meta__input config-meta__input--wide`,"onUpdate:modelValue":e=>j(t,`value`,e),onBlur:I,onKeydown:i(y(I,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),c(G(D),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{ee(t),I()}},null,8,[`onClick`])]))),128)),c(G(D),{label:G(r)(`serviceConfigGeneral.addEntry`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`config-meta__add`,onClick:A},null,8,[`label`])])]),b(`div`,Sn,[b(`div`,Cn,[n[25]||=b(`i`,{class:`pi pi-refresh`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.autoRestart`)),1)]),c(G(Z),{modelValue:E.value.autoRestart,"onUpdate:modelValue":n[12]||=e=>E.value.autoRestart=e,onChange:I},null,8,[`modelValue`])]),b(`div`,wn,[b(`div`,Tn,[n[26]||=b(`i`,{class:`pi pi-trash`},null,-1),b(`span`,null,a(G(r)(`serviceConfigGeneral.clearLogs`)),1)]),c(G(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=f(E({__name:`ServiceConfigDocker`,props:{service:{}},emits:[`save`],setup(t,{emit:r}){let{t:o}=K(),s=t,f=r,p=s.service.dockerConfig??{},g=d(p.dockerfile?`build`:`image`),_=d(p.image??``),x=d(p.dockerfile??``),C=d(p.buildContext??``),w=d(Object.entries(p.buildArgs??{}).map(([e,t])=>({key:e,value:t}))),E=d(p.targetStage??``),O=d(p.networkMode??`host`),k=d([...p.ports??[]]),A=d([...p.volumes??[]]),ee=d(p.mountRootpath??!1),j=d(p.entrypoint??``),M=d(p.command??``),P=d(p.user??``),F=d(p.useNativeCommand??!1),I=d(p.nativeCommandMode??`isolated`),L=d(p.nativeShell??`sh`),te=[{label:`sh (POSIX)`,value:`sh`},{label:`bash`,value:`bash`},{label:`zsh`,value:`zsh`},{label:`ash (Alpine)`,value:`ash`}],z=d([...p.bootstrapCommands??[]]),B=d(!1),V=[{label:`Host (--network host)`,value:`host`},{label:`Bridge`,value:`bridge`}];function ne(){w.value=[...w.value,{key:``,value:``}]}function re(e){w.value=w.value.filter((t,n)=>n!==e)}function H(e,t,n){w.value=w.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function U(){k.value=[...k.value,``]}function ie(e){k.value=k.value.filter((t,n)=>n!==e)}function ae(e,t){k.value=k.value.map((n,r)=>r===e?t:n)}function oe(){A.value=[...A.value,``]}function se(e){A.value=A.value.filter((t,n)=>n!==e)}function ce(e,t){A.value=A.value.map((n,r)=>r===e?t:n)}function ue(){z.value=[...z.value,{id:me(),label:`Bootstrap`,entrypoint:`/bin/sh`,command:`-c ""`,user:void 0}]}function de(e){z.value=z.value.filter((t,n)=>n!==e)}function fe(e,t,n){z.value=z.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function q(e,t){let n=[...z.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],z.value=n)}let J=null;function Y(){J&&clearTimeout(J),J=setTimeout(()=>{let e={};for(let{key:t,value:n}of w.value)t.trim()&&(e[t.trim()]=n);f(`save`,{image:g.value===`image`&&_.value||void 0,dockerfile:g.value===`build`&&x.value||void 0,buildContext:C.value||void 0,buildArgs:e,targetStage:E.value||void 0,networkMode:O.value,ports:k.value.filter(Boolean),volumes:A.value.filter(Boolean),mountRootpath:ee.value,entrypoint:j.value||void 0,command:M.value||void 0,user:P.value||void 0,useNativeCommand:F.value,nativeCommandMode:I.value,nativeShell:L.value,bootstrapCommands:z.value}),J=null},150)}function pe(e){de(e),Y()}function he(e,t){q(e,t),Y()}function ge(e){re(e),Y()}function X(e){ie(e),Y()}function Z(e){se(e),Y()}return(t,r)=>(N(),h(`div`,On,[b(`div`,kn,[b(`label`,An,a(G(o)(`serviceConfigDocker.imageSource`)),1),b(`div`,jn,[b(`label`,Mn,[R(b(`input`,{id:`docker-mode-image`,"onUpdate:modelValue":r[0]||=e=>g.value=e,type:`radio`,value:`image`,class:`docker-config__radio`,onChange:Y},null,544),[[n,g.value]]),T(` `+a(G(o)(`serviceConfigDocker.pullImage`)),1)]),b(`label`,Nn,[R(b(`input`,{"onUpdate:modelValue":r[1]||=e=>g.value=e,type:`radio`,value:`build`,class:`docker-config__radio`,onChange:Y},null,544),[[n,g.value]]),T(` `+a(G(o)(`serviceConfigDocker.buildDockerfile`)),1)])])]),g.value===`image`?(N(),h(`div`,Pn,[b(`label`,Fn,a(G(o)(`serviceConfigDocker.image`)),1),c(G(S),{id:`docker-image`,modelValue:_.value,"onUpdate:modelValue":r[2]||=e=>_.value=e,placeholder:G(o)(`serviceConfigDocker.imagePlaceholder`),class:`docker-config__input`,onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):l(``,!0),g.value===`build`?(N(),h(e,{key:1},[b(`div`,In,[r[18]||=b(`label`,{for:`docker-dockerfile-btn`,class:`docker-config__label`},`Dockerfile`,-1),c(G(D),{id:`docker-dockerfile-btn`,label:G(o)(`serviceConfigDocker.editDockerfile`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,size:`small`,onClick:r[3]||=e=>B.value=!0},null,8,[`label`]),c(G(u),{visible:B.value,"onUpdate:visible":r[6]||=e=>B.value=e,header:G(o)(`serviceConfigDocker.editDockerfile`),modal:``,style:{width:`800px`}},{footer:v(()=>[c(G(D),{label:G(o)(`serviceConfigDocker.closeDockerfile`),icon:`pi pi-times`,onClick:r[5]||=()=>{B.value=!1,Y()}},null,8,[`label`])]),default:v(()=>[c(m,{modelValue:x.value,"onUpdate:modelValue":r[4]||=e=>x.value=e,language:`dockerfile`,style:{height:`400px`}},null,8,[`modelValue`])]),_:1},8,[`visible`,`header`])]),b(`div`,Ln,[b(`label`,Rn,a(G(o)(`serviceConfigDocker.buildContext`)),1),c(G(S),{id:`docker-build-context`,modelValue:C.value,"onUpdate:modelValue":r[7]||=e=>C.value=e,placeholder:`.`,class:`docker-config__input`,onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),b(`div`,zn,[b(`label`,Bn,a(G(o)(`serviceConfigDocker.buildArgs`)),1),b(`div`,Vn,[(N(!0),h(e,null,W(w.value,(e,t)=>(N(),h(`div`,{key:t,class:`docker-config__kv-row`},[c(G(S),{"model-value":e.key,placeholder:G(o)(`serviceConfigDocker.argNamePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>H(t,`key`,e),onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),c(G(S),{"model-value":e.value,placeholder:G(o)(`serviceConfigDocker.argValuePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>H(t,`value`,e),onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),c(G(D),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>ge(t)},null,8,[`onClick`])]))),128)),c(G(D),{id:`docker-add-build-arg`,label:G(o)(`serviceConfigDocker.addBuildArg`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:ne},null,8,[`label`])])]),b(`div`,Hn,[b(`label`,Un,a(G(o)(`serviceConfigDocker.targetStage`)),1),c(G(S),{id:`docker-target-stage`,modelValue:E.value,"onUpdate:modelValue":r[8]||=e=>E.value=e,placeholder:G(o)(`serviceConfigDocker.targetStagePlaceholder`),class:`docker-config__input`,onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)):l(``,!0),c(G(ke)),b(`div`,Wn,[b(`label`,Gn,a(G(o)(`serviceConfigDocker.runtimeConfig`)),1)]),b(`div`,Kn,[b(`label`,qn,a(G(o)(`serviceConfigDocker.userGroup`)),1),c(G(S),{id:`docker-user`,modelValue:P.value,"onUpdate:modelValue":r[9]||=e=>P.value=e,placeholder:G(o)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),b(`div`,Jn,[b(`label`,Yn,a(G(o)(`serviceConfigDocker.networkMode`)),1),c(G(le),{"input-id":`docker-network-mode`,modelValue:O.value,"onUpdate:modelValue":r[10]||=e=>O.value=e,options:V,"option-label":`label`,"option-value":`value`,class:`docker-config__select`,onChange:Y},null,8,[`modelValue`])]),O.value===`bridge`?(N(),h(`div`,Xn,[b(`label`,Zn,a(G(o)(`serviceConfigDocker.portMappings`)),1),b(`div`,Qn,[(N(!0),h(e,null,W(k.value,(e,t)=>(N(),h(`div`,{key:t,class:`docker-config__list-row`},[c(G(S),{"model-value":e,placeholder:G(o)(`serviceConfigDocker.portPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ae(t,e),onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),c(G(D),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>X(t)},null,8,[`onClick`])]))),128)),c(G(D),{id:`docker-add-port`,label:G(o)(`serviceConfigDocker.addPort`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:U},null,8,[`label`])])])):l(``,!0),b(`div`,$n,[b(`label`,er,a(G(o)(`serviceConfigDocker.volumes`)),1),b(`div`,tr,[c(G(_e),{modelValue:ee.value,"onUpdate:modelValue":r[11]||=e=>ee.value=e,binary:!0,"input-id":`mountRootpath`,onChange:Y},null,8,[`modelValue`]),b(`label`,nr,a(G(o)(`serviceConfigDocker.autoMount`)),1)]),b(`div`,rr,[(N(!0),h(e,null,W(A.value,(e,t)=>(N(),h(`div`,{key:t,class:`docker-config__list-row`},[c(G(S),{"model-value":e,placeholder:G(o)(`serviceConfigDocker.volumePlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ce(t,e),onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),c(G(D),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Z(t)},null,8,[`onClick`])]))),128)),c(G(D),{id:`docker-add-volume`,label:G(o)(`serviceConfigDocker.addVolume`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:oe},null,8,[`label`])])]),c(G(ke)),b(`div`,ir,[b(`div`,ar,[c(G(_e),{modelValue:F.value,"onUpdate:modelValue":r[12]||=e=>F.value=e,binary:!0,"input-id":`useNativeCommand`,onChange:Y},null,8,[`modelValue`]),b(`label`,or,a(G(o)(`serviceConfigDocker.runNative`)),1)]),r[21]||=b(`span`,{class:`docker-config__hint`},` When enabled, the service command is executed directly inside the container (ignores CMD override below). `,-1),F.value?(N(),h(`div`,sr,[b(`label`,cr,a(G(o)(`serviceConfigDocker.shell`)),1),c(G(le),{"input-id":`docker-native-shell`,modelValue:L.value,"onUpdate:modelValue":r[13]||=e=>L.value=e,options:te,"option-label":`label`,"option-value":`value`,class:`docker-config__select docker-config__select--small`,editable:``,placeholder:G(o)(`serviceConfigDocker.shellPlaceholder`),onChange:Y},null,8,[`modelValue`,`placeholder`]),b(`span`,lr,[T(a(G(o)(`serviceConfigDocker.shellHint`))+` (`,1),r[19]||=b(`code`,null,`shell -c '...'`,-1),r[20]||=T(`)`,-1)])])):l(``,!0),F.value?(N(),h(`div`,ur,[b(`label`,dr,[R(b(`input`,{"onUpdate:modelValue":r[14]||=e=>I.value=e,type:`radio`,value:`isolated`,class:`docker-config__radio`,onChange:Y},null,544),[[n,I.value]]),T(` `+a(G(o)(`serviceConfigDocker.isolated`)),1)]),b(`label`,fr,[R(b(`input`,{"onUpdate:modelValue":r[15]||=e=>I.value=e,type:`radio`,value:`shared`,class:`docker-config__radio`,onChange:Y},null,544),[[n,I.value]]),T(` `+a(G(o)(`serviceConfigDocker.shared`)),1)])])):l(``,!0)]),F.value?l(``,!0):(N(),h(e,{key:3},[r[22]||=b(`div`,{class:`docker-config__section`},[b(`label`,{for:`docker-entrypoint`,class:`docker-config__section-title`},`Override`)],-1),b(`div`,pr,[b(`label`,mr,a(G(o)(`serviceConfigDocker.entrypoint`)),1),c(G(S),{id:`docker-entrypoint`,modelValue:j.value,"onUpdate:modelValue":r[16]||=e=>j.value=e,placeholder:G(o)(`serviceConfigDocker.entrypointPlaceholder`),class:`docker-config__input`,onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),b(`div`,hr,[b(`label`,gr,a(G(o)(`serviceConfigDocker.cmdOverride`)),1),c(G(S),{id:`docker-command`,modelValue:M.value,"onUpdate:modelValue":r[17]||=e=>M.value=e,placeholder:G(o)(`serviceConfigDocker.cmdPlaceholder`),class:`docker-config__input`,onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)),c(G(ke)),b(`div`,_r,[b(`label`,vr,[T(a(G(o)(`serviceConfigDocker.bootstrapCommands`))+` `,1),b(`span`,yr,` — `+a(G(o)(`serviceConfigDocker.bootstrapCommandsHint`)),1)])]),(N(!0),h(e,null,W(z.value,(e,t)=>(N(),h(`div`,{key:e.id,class:`docker-config__bootstrap-card`},[b(`div`,br,[b(`div`,xr,[b(`label`,{class:`docker-config__label`,for:`docker-bootstrap-label-${t}`},`Label`,8,Sr),c(G(S),{id:`docker-bootstrap-label-${t}`,"model-value":e.label,placeholder:G(o)(`serviceConfigDocker.bootstrapLabelPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>fe(t,`label`,e),onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),b(`div`,Cr,[b(`label`,{class:`docker-config__label`,for:`docker-bootstrap-entrypoint-${t}`},`Entrypoint`,8,wr),c(G(S),{id:`docker-bootstrap-entrypoint-${t}`,"model-value":e.entrypoint??``,placeholder:`/bin/sh`,class:`docker-config__input`,"onUpdate:modelValue":e=>fe(t,`entrypoint`,e),onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),b(`div`,Tr,[b(`label`,{class:`docker-config__label`,for:`docker-bootstrap-command-${t}`},`Command`,8,Er),c(G(S),{id:`docker-bootstrap-command-${t}`,"model-value":e.command,placeholder:`-c "npm install"`,class:`docker-config__input`,"onUpdate:modelValue":e=>fe(t,`command`,e),onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),b(`div`,Dr,[b(`label`,{class:`docker-config__label`,for:`docker-bootstrap-user-${t}`},`User:Group`,8,Or),c(G(S),{id:`docker-bootstrap-user-${t}`,"model-value":e.user??``,placeholder:G(o)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,"onUpdate:modelValue":e=>fe(t,`user`,e),onBlur:Y,onKeydown:i(y(Y,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),b(`div`,kr,[c(G(D),{icon:`pi pi-arrow-up`,text:``,rounded:``,size:`small`,disabled:t===0,onClick:e=>he(t,-1)},null,8,[`disabled`,`onClick`]),c(G(D),{icon:`pi pi-arrow-down`,text:``,rounded:``,size:`small`,disabled:t===z.value.length-1,onClick:e=>he(t,1)},null,8,[`disabled`,`onClick`]),c(G(D),{icon:`pi pi-times`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>pe(t)},null,8,[`onClick`])])])]))),128)),b(`div`,Ar,[c(G(D),{id:`docker-add-bootstrap`,label:G(o)(`serviceConfigDocker.addBootstrapCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:ue},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=f(E({__name:`ServiceConfigCommands`,props:{service:{}},emits:[`save`,`dockerSave`],setup(t,{emit:n}){let r=t,o=n,{t:s}=K(),u=V(),f=null,p=d({agentId:r.service.agentId??$r,runner:r.service.runner});q(()=>r.service,e=>{p.value={agentId:e.agentId??$r,runner:e.runner}});let m=_(()=>[{label:s(`serviceConfigCommands.native`),value:`native`,icon:`pi pi-desktop`},{label:s(`serviceConfigCommands.docker`),value:`docker`,icon:`pi pi-box`}]),x=_(()=>m.value.find(e=>e.value===p.value.runner)?.icon??`pi pi-box`),C=_(()=>[{label:s(`serviceForm.agentInherit`),value:$r},...u.agents.map(e=>({label:`${e.config.name} (${e.status.connected?s(`serviceConfigCommands.online`):s(`serviceConfigCommands.offline`)})`,value:e.config.id}))]),w=d([...r.service.commands??[]]);q(()=>r.service,e=>{f||(w.value=[...e.commands??[]])});function T(){w.value=[...w.value,{id:me(),label:``,command:``,cwd:void 0,shell:!0}]}function E(e){w.value=w.value.filter((t,n)=>n!==e)}function O(e,t,n){w.value=w.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function k(){f&&clearTimeout(f),f=setTimeout(()=>{o(`save`,{agentId:p.value.agentId===$r?null:p.value.agentId||null,runner:p.value.runner,commands:w.value}),f=null},150)}function A(e){o(`dockerSave`,e)}function ee(e){E(e),k()}return(n,r)=>(N(),h(`div`,Mr,[b(`div`,Nr,[b(`div`,Pr,[b(`div`,Fr,[r[2]||=b(`i`,{class:`pi pi-server`},null,-1),b(`span`,null,a(G(s)(`serviceConfigCommands.agent`)),1)]),c(G(le),{modelValue:p.value.agentId,"onUpdate:modelValue":r[0]||=e=>p.value.agentId=e,options:C.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:k},null,8,[`modelValue`,`options`]),b(`small`,Ir,a(G(s)(`serviceForm.agentHintEdit`)),1)]),b(`div`,Lr,[b(`div`,Rr,[b(`i`,{class:g(x.value)},null,2),b(`span`,null,a(G(s)(`serviceConfigCommands.runner`)),1)]),c(G(le),{modelValue:p.value.runner,"onUpdate:modelValue":r[1]||=e=>p.value.runner=e,options:m.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:k},{value:v(e=>[e.value?(N(),h(`div`,zr,[b(`i`,{class:g(m.value.find(t=>t.value===e.value)?.icon)},null,2),b(`span`,null,a(m.value.find(t=>t.value===e.value)?.label),1)])):l(``,!0)]),option:v(e=>[b(`div`,Br,[b(`i`,{class:g(e.option.icon)},null,2),b(`span`,null,a(e.option.label),1)])]),_:1},8,[`modelValue`,`options`])])]),c(G(be),{value:`0`},{default:v(()=>[c(G(ve),null,{default:v(()=>[c(G(Q),{value:`0`},{default:v(()=>[r[3]||=b(`i`,{class:`pi pi-desktop tab-icon`},null,-1),b(`span`,null,a(G(s)(`serviceConfigCommands.native`)),1)]),_:1}),c(G(Q),{value:`1`},{default:v(()=>[r[4]||=b(`i`,{class:`pi pi-box tab-icon`},null,-1),b(`span`,null,a(G(s)(`serviceConfigCommands.docker`)),1)]),_:1})]),_:1}),c(G(ye),null,{default:v(()=>[c(G($),{value:`0`},{default:v(()=>[b(`div`,Vr,[w.value.length===0?(N(),h(`div`,Hr,[b(`p`,null,a(G(s)(`serviceConfigCommands.noCommands`)),1)])):l(``,!0),(N(!0),h(e,null,W(w.value,(e,t)=>(N(),h(`div`,{key:e.id,class:`config-card`},[b(`div`,Ur,[b(`div`,Wr,[b(`label`,{class:`config-commands__label`,for:`cmd-label-${t}`},a(G(s)(`serviceConfigCommands.labelPlaceholder`)),9,Gr),c(G(S),{id:`cmd-label-${t}`,"model-value":e.label,placeholder:G(s)(`serviceConfigCommands.labelPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>O(t,`label`,e),onBlur:k,onKeydown:i(y(k,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),b(`div`,Kr,[b(`label`,{class:`config-commands__label`,for:`cmd-command-${t}`},a(G(s)(`serviceConfigCommands.commandPlaceholder`)),9,qr),c(G(S),{id:`cmd-command-${t}`,"model-value":e.command,placeholder:`e.g. npm start`,class:`config-card__input`,"onUpdate:modelValue":e=>O(t,`command`,e),onBlur:k,onKeydown:i(y(k,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),b(`div`,Jr,[b(`label`,{class:`config-commands__label`,for:`cmd-cwd-${t}`},`Working Dir (optional)`,8,Yr),c(G(S),{id:`cmd-cwd-${t}`,"model-value":e.cwd??``,placeholder:G(s)(`serviceConfigCommands.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>O(t,`cwd`,e),onBlur:k,onKeydown:i(y(k,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),b(`div`,Xr,[c(G(D),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>ee(t)},null,8,[`onClick`])])])]))),128)),b(`div`,Zr,[c(G(D),{label:G(s)(`serviceConfigCommands.addCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:T},null,8,[`label`])])])]),_:1}),c(G($),{value:`1`},{default:v(()=>[b(`div`,Qr,[c(jr,{service:t.service,onSave:A},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=f(E({__name:`ServiceConfigEnv`,props:{service:{},projectId:{},activeEnvironmentId:{}},setup(e){let n=e,{t:i}=K(),f=ne(),p=ae(),m=ee(),x=k(),S=fe(),w=M(),E=_(()=>x.getByRef({id:n.projectId,orgId:S.activeOrgId})?.activeEnvironmentId??null),O=_(()=>m.findServiceEnvironment(n.service.id,E.value??``)),A=d(!1),j=d(!1),P=d(!1),F=d(!1),I=d(null),te=d(null),{suggestions:R,meta:z,search:B}=we(()=>te.value??I.value),V=d(new Set);function re(e){let t=new Set(V.value);t.has(e)?t.delete(e):t.add(e),V.value=t}let U=d(null);function W(e,t){navigator.clipboard.writeText(t),U.value=e,setTimeout(()=>{U.value===e&&(U.value=null)},1500)}let ie=d({}),oe=d(!1),{values:le,agentEntry:ue,urlHost:Y}=Se({projectId:()=>n.projectId,environmentId:()=>E.value,agentId:()=>n.service.agentId}),pe=_(()=>{let e={...le.value};Object.assign(e,r(n.service.ports)),e[`service.NAME`]=n.service.name,e[`service.ID`]=n.service.id,Object.assign(e,C(n.service,Y.value)),n.service.url&&(e[`service.BASE_URL`]=n.service.url);let t=me(ue.value?.status?.cwd,ue.value?.status?.home);return t&&(e[`service.CWD`]=t),e});function me(e,t){let r=(n.service.resolvedCwd??n.service.cwd??``).trim();return r?r.startsWith(`~/`)&&t?t+r.slice(1):r.includes(`$`)?null:r.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(r)?r:null:e??null}let X=_(()=>ue.value?.config.passthroughEnv??[]),_e=_(()=>X.value.length>0);async function ve(){if(!n.service.agentId||!_e.value){ie.value={};return}oe.value=!0;try{ie.value=await s.agent.getPassthroughEnv.query({id:n.service.agentId})}catch{ie.value={}}finally{oe.value=!1}}let ye=_(()=>X.value.map(e=>({name:e,value:ie.value[e]??null}))),be=_(()=>!O.value||!E.value?!0:O.value.parentIds?.includes(E.value)??!0);async function Q(e){if(!(!O.value||!E.value)){F.value=!0;try{await m.update({id:O.value.id,parentIds:e?[E.value]:[]}),await Ae()}catch(e){f.add({severity:`error`,summary:i(`serviceConfigEnv.error`),detail:e.message??i(`serviceConfigEnv.failedToUpdateInheritance`),life:5e3})}finally{F.value=!1}}}let $=_(()=>{let e=x.getByRef({id:n.projectId,orgId:S.activeOrgId});return e?.activeEnvironmentId?m.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=_(()=>I.value?Te(I.value.variables):[]),De=_(()=>{if(!O.value||!I.value?.sources)return Ee.value;let e=O.value.id;return Ee.value.filter(t=>I.value.sources[t.variableId]?.environmentId===e)}),Oe=_(()=>{if(!O.value||!I.value?.sources)return[];let e=O.value.id;return Ee.value.filter(t=>I.value.sources[t.variableId]?.environmentId!==e)}),ke=_(()=>{if(!I.value?.sources)return{};let e={};for(let[t,n]of Object.entries(I.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(O.value)try{I.value=await m.resolve(O.value.id)}catch(e){console.error(`Failed to resolve environment:`,e)}}async function je(){if(E.value)try{te.value=await m.resolve(E.value)}catch{}}async function Me(){P.value=!0;try{await Fe(),await Ae(),j.value=!0}catch(e){f.add({severity:`error`,summary:i(`serviceConfigEnv.error`),detail:e.message??i(`serviceConfigEnv.failedToLoadPreview`),life:5e3})}finally{P.value=!1}}let Ne=_(()=>I.value?Object.entries(I.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(O.value)return O.value;if(!E.value)return null;let e=$.value;return e?(await m.create({name:`${n.service.name??n.service.id} — ${e.name}`,projectId:n.projectId,scope:`service`,reference:n.service.id,activateOn:E.value,parentIds:[E.value],variables:{}}),O.value):null}let Ie=_(()=>{let e=w.getByService(n.service.id);return e.length>0?e[0]:null}),Le=_(()=>{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=n.service.name||n.service.id;p.require({message:i(e===`restart`?`serviceConfigEnv.restartConfirmMsg`:`serviceConfigEnv.startConfirmMsg`,{name:t}),header:i(e===`restart`?`serviceConfigEnv.restartTitle`:`serviceConfigEnv.startTitle`),icon:`pi pi-refresh`,acceptLabel:i(e===`restart`?`serviceConfigEnv.restartTitle`:`actions.start`),rejectLabel:i(`serviceConfigEnv.notNow`),accept:async()=>{try{let t=n.service.agentId;if(!t)return;e===`restart`?(await w.restart(t,n.service.id),f.add({severity:`success`,summary:i(`serviceConfigEnv.serviceRestarted`),life:3e3})):(await w.start(t,n.service.id),f.add({severity:`success`,summary:i(`serviceConfigEnv.serviceStarted`),life:3e3}))}catch(t){f.add({severity:`error`,summary:i(`serviceConfigEnv.error`),detail:t.message??i(`serviceConfigEnv.failedToAction`,{action:e}),life:5e3})}}})}return q($,async e=>{e&&await Promise.all([Ae(),je()])}),q(()=>n.service.agentId,()=>{ve()}),ce(async()=>{n.projectId&&await m.fetchAll(n.projectId),await Promise.all([Ae(),je(),ve()])}),(n,r)=>(N(),h(`div`,ti,[E.value?(N(),h(`div`,ni,[b(`span`,ri,a(G(i)(`serviceConfigEnv.activeEnvironment`)),1),c(xe,{"environment-id":E.value},null,8,[`environment-id`])])):l(``,!0),O.value&&$.value?(N(),h(`div`,ii,[c(G(Z),{"model-value":be.value,disabled:F.value,"onUpdate:modelValue":Q},null,8,[`model-value`,`disabled`]),b(`span`,ai,a(be.value?G(i)(`serviceConfigEnv.inheritsFrom`,{name:$.value.name}):G(i)(`serviceConfigEnv.isolated`,{name:$.value.name})),1)])):l(``,!0),Oe.value.length>0?(N(),o(G(de),{key:2,class:`inherited-accordion`},{default:v(()=>[c(G(H),{value:`inherited`},{default:v(()=>[c(G(se),null,{default:v(()=>[b(`span`,oi,[r[6]||=b(`i`,{class:`pi pi-arrow-down-left`},null,-1),T(` `+a(G(i)(`serviceConfigEnv.inheritedVars`))+` `,1),c(G(J),{value:String(Oe.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),c(G(L),null,{default:v(()=>[c(G(he),{value:Oe.value,size:`small`,"show-headers":!1},{default:v(()=>[c(G(ge),{style:{width:`35%`}},{body:v(({data:e})=>[b(`div`,si,[b(`code`,ci,a(e.key),1),ke.value[e.variableId]?(N(),o(xe,{key:0,"environment-id":ke.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):l(``,!0)])]),_:1}),c(G(ge),{style:{width:`65%`}},{body:v(({data:e})=>[b(`span`,li,[b(`span`,{class:`value-actions`,onClick:r[0]||=y(()=>{},[`stop`])},[e.slot.isSecret?(N(),h(`i`,{key:0,class:g([V.value.has(e.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>re(e.variableId)},null,10,ui)):l(``,!0),b(`i`,{class:g([U.value===e.variableId?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>W(e.variableId,e.slot.pre+e.slot.value+e.slot.post)},null,10,di)]),e.slot.isSecret&&!V.value.has(e.variableId)?(N(),h(`span`,fi,`***`)):(N(),h(`code`,pi,a(e.slot.pre)+a(e.slot.value)+a(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):l(``,!0),b(`div`,mi,[b(`h3`,hi,a(G(i)(`serviceConfigEnv.envVars`)),1),b(`div`,gi,[c(G(D),{label:G(i)(`serviceConfigEnv.editVariables`),icon:`pi pi-pencil`,size:`small`,outlined:``,"data-testid":`env-edit-btn`,disabled:!E.value,onClick:Re},null,8,[`label`,`disabled`]),c(G(D),{label:G(i)(`serviceConfigEnv.preview`),icon:`pi pi-eye`,size:`small`,outlined:``,severity:`secondary`,loading:P.value,disabled:!E.value,"data-testid":`env-preview-btn`,onClick:Me},null,8,[`label`,`loading`,`disabled`])])]),O.value?(N(),h(`div`,_i,[De.value.length>0?(N(),h(`div`,vi,[c(Ce,{"environment-id":O.value.id,sources:ke.value,"resolved-env":{...te.value?.env??{},...I.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`])])):(N(),h(`div`,yi,[b(`p`,null,a(G(i)(`serviceConfigEnv.noVarsConfigured`)),1)])),_e.value?(N(),o(G(de),{key:2,class:`inherited-accordion`},{default:v(()=>[c(G(H),{value:`passthrough`},{default:v(()=>[c(G(se),null,{default:v(()=>[b(`span`,bi,[r[7]||=b(`i`,{class:`pi pi-globe`},null,-1),T(` `+a(G(i)(`agentPage.passthrough.titleShort`))+` `,1),c(G(J),{value:String(X.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),c(G(L),null,{default:v(()=>[b(`p`,xi,a(G(i)(`serviceConfigEnv.passthroughInfo`)),1),oe.value?(N(),o(G(t),{key:0,style:{width:`24px`,height:`24px`}})):(N(),o(G(he),{key:1,value:ye.value,stripedRows:``,size:`small`},{default:v(()=>[c(G(ge),{field:`name`,header:G(i)(`common.key`),style:{width:`35%`}},{body:v(({data:e})=>[b(`code`,Si,a(e.name),1)]),_:1},8,[`header`]),c(G(ge),{header:G(i)(`common.value`),style:{width:`65%`}},{body:v(({data:e})=>[e.value===null?(N(),h(`span`,wi,a(G(i)(`serviceConfigEnv.undefined`)),1)):(N(),h(`span`,Ci,a(e.value),1))]),_:1},8,[`header`])]),_:1},8,[`value`]))]),_:1})]),_:1})]),_:1})):l(``,!0)])):E.value?(N(),h(`div`,Ei,[b(`p`,null,a(G(i)(`serviceConfigEnv.noVarsConfigured`)),1)])):(N(),h(`div`,Ti,[b(`p`,null,a(G(i)(`serviceConfigEnv.noActiveEnv`)),1)])),c(G(u),{visible:A.value,header:G(i)(`serviceConfigEnv.editVarsHeader`),style:{width:`900px`},modal:``,"onUpdate:visible":r[2]||=e=>{e||ze()}},{footer:v(()=>[c(G(D),{label:G(i)(`actions.close`),icon:`pi pi-times`,onClick:r[1]||=e=>ze()},null,8,[`label`])]),default:v(()=>[b(`div`,Di,[E.value?(N(),h(`div`,Oi,[b(`span`,ki,a(G(i)(`serviceConfigEnv.editingVarsFor`,{name:e.service.name||e.service.id})),1),c(xe,{"environment-id":E.value},null,8,[`environment-id`])])):l(``,!0),b(`div`,Ai,[O.value?(N(),o(Ce,{key:0,"environment-id":O.value.id,editable:!0,sources:ke.value,"autocomplete-enabled":!0,"autocomplete-suggestions":G(R),"autocomplete-meta":G(z),"resolved-env":{...te.value?.env??{},...I.value?.env??{}},"service-builtins":pe.value,"show-overrides":!0,onVariablesChanged:Ae,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:G(B)},null,8,[`environment-id`,`sources`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`,`onAutocompleteSearch`])):l(``,!0)])])]),_:1},8,[`visible`,`header`]),c(G(u),{visible:j.value,"onUpdate:visible":r[5]||=e=>j.value=e,header:G(i)(`serviceConfigEnv.previewHeader`),style:{width:`700px`},modal:``,"data-testid":`env-preview-dialog`},{footer:v(()=>[c(G(D),{label:G(i)(`actions.close`),icon:`pi pi-times`,onClick:r[4]||=e=>j.value=!1},null,8,[`label`])]),default:v(()=>[P.value?(N(),h(`div`,ji,[c(G(t))])):I.value?(N(),h(`div`,Mi,[b(`p`,Ni,a(G(i)(`serviceConfigEnv.injectedVarsInfo`)),1),c(G(he),{value:Ne.value,stripedRows:``,size:`small`,rows:15,paginator:Ne.value.length>15},{default:v(()=>[c(G(ge),{field:`key`,header:G(i)(`common.key`),style:{width:`35%`}},{body:v(({data:e})=>[b(`code`,Pi,a(e.key),1)]),_:1},8,[`header`]),c(G(ge),{header:G(i)(`common.value`),style:{width:`65%`}},{body:v(({data:e})=>[b(`span`,Fi,[b(`span`,{class:`value-actions`,onClick:r[3]||=y(()=>{},[`stop`])},[I.value.envSecrets.includes(e.key)?(N(),h(`i`,{key:0,class:g([V.value.has(`preview:`+e.key)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>re(`preview:`+e.key)},null,10,Ii)):l(``,!0),b(`i`,{class:g([U.value===`preview:`+e.key?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>W(`preview:`+e.key,e.value)},null,10,Li)]),I.value.envSecrets.includes(e.key)&&!V.value.has(`preview:`+e.key)?(N(),h(`span`,Ri,`***`)):(N(),h(`span`,zi,a(Pe(e.value,!1)),1))])]),_:1},8,[`header`])]),_:1},8,[`value`,`paginator`])])):l(``,!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=f(E({__name:`ServiceConfigHealthCheck`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let r=t,o=n,{t:s}=K(),u=d(!!r.service.healthCheck),f=d({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??``}),p=[{label:`HTTP Request`,value:`http`},{label:`Command`,value:`command`}],m=[{label:`GET`,value:`GET`},{label:`HEAD`,value:`HEAD`},{label:`POST`,value:`POST`},{label:`PUT`,value:`PUT`}];q(()=>r.service,e=>{u.value=!!e.healthCheck,f.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 g=null;function _(){g&&clearTimeout(g),g=setTimeout(()=>{if(!u.value)o(`save`,void 0);else{if(f.value.type===`http`&&!f.value.path?.trim()||f.value.type===`command`&&!f.value.command?.trim())return;o(`save`,{type:f.value.type,path:f.value.path,method:f.value.method,expectedStatus:f.value.expectedStatus,command:f.value.command||void 0,interval:f.value.interval,timeout:f.value.timeout,retries:f.value.retries,initialDelay:f.value.initialDelay})}g=null},150)}return(t,n)=>(N(),h(`div`,Vi,[b(`div`,Hi,[b(`div`,Ui,[n[10]||=b(`i`,{class:`pi pi-heart`},null,-1),b(`span`,null,a(G(s)(`serviceConfigHealthCheck.enable`)),1)]),c(G(Z),{modelValue:u.value,"onUpdate:modelValue":n[0]||=e=>u.value=e,onChange:_},null,8,[`modelValue`])]),u.value?(N(),h(e,{key:0},[b(`div`,Wi,[b(`div`,Gi,[n[11]||=b(`i`,{class:`pi pi-cog`},null,-1),b(`span`,null,a(G(s)(`serviceConfigHealthCheck.type`)),1)]),c(G(le),{modelValue:f.value.type,"onUpdate:modelValue":n[1]||=e=>f.value.type=e,options:p,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:_},null,8,[`modelValue`]),n[12]||=b(`small`,{class:`config-card__hint`},`HTTP checks a URL endpoint; Command runs a shell command (exit 0 = healthy)`,-1)]),f.value.type===`http`?(N(),h(e,{key:0},[b(`div`,Ki,[b(`div`,qi,[n[13]||=b(`i`,{class:`pi pi-link`},null,-1),b(`span`,null,a(G(s)(`serviceConfigHealthCheck.path`)),1)]),c(G(S),{modelValue:f.value.path,"onUpdate:modelValue":n[2]||=e=>f.value.path=e,class:`config-card__input`,placeholder:`/health`,onBlur:_,onKeydown:i(y(_,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),b(`div`,Ji,[b(`div`,Yi,[n[14]||=b(`i`,{class:`pi pi-directions`},null,-1),b(`span`,null,a(G(s)(`serviceConfigHealthCheck.method`)),1)]),c(G(le),{modelValue:f.value.method,"onUpdate:modelValue":n[3]||=e=>f.value.method=e,options:m,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:_},null,8,[`modelValue`])]),b(`div`,Xi,[b(`div`,Zi,[n[15]||=b(`i`,{class:`pi pi-check-circle`},null,-1),b(`span`,null,a(G(s)(`serviceConfigHealthCheck.expectedStatus`)),1)]),c(G(X),{modelValue:f.value.expectedStatus,"onUpdate:modelValue":n[4]||=e=>f.value.expectedStatus=e,class:`config-card__input`,"use-grouping":!1,min:100,max:599,onBlur:_,onKeydown:i(y(_,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[16]||=b(`small`,{class:`config-card__hint`},`HTTP status code to expect (default 200)`,-1)])],64)):l(``,!0),f.value.type===`command`?(N(),h(`div`,Qi,[b(`div`,$i,[n[17]||=b(`i`,{class:`pi pi-code`},null,-1),b(`span`,null,a(G(s)(`serviceConfigHealthCheck.command`)),1)]),c(G(ie),{modelValue:f.value.command,"onUpdate:modelValue":n[5]||=e=>f.value.command=e,class:`config-card__input`,rows:`2`,placeholder:`curl -sf http://localhost:3000/health`,"auto-resize":``,onBlur:_},null,8,[`modelValue`]),b(`small`,ea,a(G(s)(`serviceConfigHealthCheck.commandHint`)),1)])):l(``,!0),b(`div`,ta,[b(`div`,na,[n[18]||=b(`i`,{class:`pi pi-hourglass`},null,-1),b(`span`,null,a(G(s)(`serviceConfigHealthCheck.initialDelay`)),1)]),c(G(X),{modelValue:f.value.initialDelay,"onUpdate:modelValue":n[6]||=e=>f.value.initialDelay=e,class:`config-card__input`,"use-grouping":!1,min:0,onBlur:_,onKeydown:i(y(_,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[19]||=b(`small`,{class:`config-card__hint`},`Wait before first health check (ms)`,-1)]),b(`div`,ra,[b(`div`,ia,[n[20]||=b(`i`,{class:`pi pi-clock`},null,-1),b(`span`,null,a(G(s)(`serviceConfigHealthCheck.interval`)),1)]),c(G(X),{modelValue:f.value.interval,"onUpdate:modelValue":n[7]||=e=>f.value.interval=e,class:`config-card__input`,"use-grouping":!1,min:1e3,onBlur:_,onKeydown:i(y(_,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),b(`div`,aa,[b(`div`,oa,[n[21]||=b(`i`,{class:`pi pi-stopwatch`},null,-1),b(`span`,null,a(G(s)(`serviceConfigHealthCheck.timeout`)),1)]),c(G(X),{modelValue:f.value.timeout,"onUpdate:modelValue":n[8]||=e=>f.value.timeout=e,class:`config-card__input`,"use-grouping":!1,min:500,onBlur:_,onKeydown:i(y(_,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),b(`div`,sa,[b(`div`,ca,[n[22]||=b(`i`,{class:`pi pi-replay`},null,-1),b(`span`,null,a(G(s)(`serviceConfigHealthCheck.retries`)),1)]),c(G(X),{modelValue:f.value.retries,"onUpdate:modelValue":n[9]||=e=>f.value.retries=e,class:`config-card__input`,"use-grouping":!1,min:0,max:10,onBlur:_,onKeydown:i(y(_,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])],64)):l(``,!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=f(E({__name:`ServiceConfigShortcuts`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let r=t,{t:o}=K(),s=n,u=d([...r.service.shortcuts??[]]),f=null;q(()=>r.service,e=>{f||(u.value=[...e.shortcuts??[]])});function p(){u.value=[...u.value,{id:me(),label:``,command:``,cwd:void 0}]}function m(e){u.value=u.value.filter((t,n)=>n!==e)}function g(e,t,n){u.value=u.value.map((r,i)=>i===e?{...r,[t]:n||void 0}:r)}function _(){f&&clearTimeout(f),f=setTimeout(()=>{s(`save`,u.value),f=null},150)}function v(e){m(e),_()}return(t,n)=>(N(),h(`div`,ua,[u.value.length===0?(N(),h(`div`,da,[b(`p`,null,a(G(o)(`serviceConfigShortcuts.empty`)),1)])):l(``,!0),(N(!0),h(e,null,W(u.value,(e,t)=>(N(),h(`div`,{key:e.id,class:`config-card`},[b(`div`,fa,[b(`div`,pa,[b(`label`,{class:`config-shortcuts__label`,for:`shortcut-label-${t}`},a(G(o)(`serviceConfigShortcuts.label`)),9,ma),c(G(S),{id:`shortcut-label-${t}`,"model-value":e.label,placeholder:G(o)(`serviceConfigShortcuts.labelPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-label-input`,"onUpdate:modelValue":e=>g(t,`label`,e),onBlur:_,onKeydown:i(y(_,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),b(`div`,ha,[b(`label`,{class:`config-shortcuts__label`,for:`shortcut-command-${t}`},a(G(o)(`serviceConfigShortcuts.command`)),9,ga),c(G(S),{id:`shortcut-command-${t}`,"model-value":e.command,placeholder:G(o)(`serviceConfigShortcuts.commandPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-command-input`,"onUpdate:modelValue":e=>g(t,`command`,e),onBlur:_,onKeydown:i(y(_,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),b(`div`,_a,[b(`label`,{class:`config-shortcuts__label`,for:`shortcut-cwd-${t}`},a(G(o)(`serviceConfigShortcuts.workingDir`)),9,va),c(G(S),{id:`shortcut-cwd-${t}`,"model-value":e.cwd??``,placeholder:G(o)(`serviceConfigShortcuts.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>g(t,`cwd`,e),onBlur:_,onKeydown:i(y(_,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),b(`div`,ya,[c(G(D),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>v(t)},null,8,[`onClick`])])])]))),128)),b(`div`,ba,[c(G(D),{label:G(o)(`serviceConfigShortcuts.addShortcut`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,"data-testid":`add-shortcut-btn`,onClick:p},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=f(E({__name:`ServiceConfigLogs`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let r=t,i=n,s=B(),{t:u}=K(),f=Ae(),p=d([...r.service.parserIds??[]]);q(()=>r.service,e=>{p.value=[...e.parserIds??[]]});let m=_(()=>[...f.parsers].filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name))),g=_(()=>m.value.filter(e=>!p.value.includes(e.id))),y=d(p.value.map(e=>f.parsers.find(t=>t.id===e)).filter(e=>e!==void 0));q(p,e=>{let t=y.value.filter(t=>e.includes(t.id)),n=e.filter(e=>!t.find(t=>t.id===e)).map(e=>f.parsers.find(t=>t.id===e)).filter(e=>e!==void 0);y.value=[...t,...n]}),q(()=>f.parsers,()=>{y.value=p.value.map(e=>f.parsers.find(t=>t.id===e)).filter(e=>e!==void 0)});let x=d(null);function S(e){if(!e)return;let t=f.parsers.find(t=>t.id===e);t&&(p.value=[...p.value,e],y.value=[...y.value,t],x.value=null,E())}function C(e){p.value=p.value.filter(t=>t!==e),y.value=y.value.filter(t=>t.id!==e),E()}function w(){p.value=y.value.map(e=>e.id),E()}function E(){i(`save`,{parserIds:y.value.map(e=>e.id)})}return ce(()=>{f.fetchParsers(),f.subscribeParsers()}),z(()=>{f.unsubscribeParsers()}),(t,n)=>(N(),h(`div`,Sa,[b(`div`,Ca,[b(`div`,wa,[n[3]||=b(`i`,{class:`pi pi-code`},null,-1),b(`span`,null,a(G(u)(`serviceConfigLogs.jsParsers`)),1)]),b(`small`,Ta,a(G(u)(`serviceConfigLogs.jsParsersHint`)),1)]),b(`div`,Ea,[b(`div`,Da,[n[4]||=b(`i`,{class:`pi pi-sort-alt`},null,-1),b(`span`,null,a(G(u)(`serviceConfigLogs.executionOrder`)),1),b(`small`,Oa,a(G(u)(`serviceConfigLogs.executionOrderHint`)),1)]),y.value.length>0?(N(),o(G(ue),{key:0,modelValue:y.value,"onUpdate:modelValue":n[0]||=e=>y.value=e,animation:150,handle:`.drag-handle`,class:`config-log-parsers__drag-list`,"data-testid":`log-parsers-drag-list`,onEnd:w},{default:v(()=>[(N(!0),h(e,null,W(y.value,(e,t)=>(N(),h(`div`,{key:e.id,class:`config-log-parsers__drag-row`,"data-testid":`log-parsers-drag-row`},[n[5]||=b(`span`,{class:`drag-handle`,"data-testid":`drag-handle`},[b(`i`,{class:`pi pi-bars`})],-1),b(`span`,ka,a(t+1),1),b(`span`,Aa,a(e.name),1),e.builtin?(N(),o(G(J),{key:0,severity:`secondary`,class:`config-log-parsers__builtin-badge`},{default:v(()=>[T(a(G(u)(`serviceConfigLogs.builtin`)),1)]),_:1})):l(``,!0),e.enabled?l(``,!0):(N(),o(G(J),{key:1,severity:`warn`,class:`config-log-parsers__disabled-badge`},{default:v(()=>[T(a(G(u)(`serviceConfigLogs.disabled`)),1)]),_:1})),c(G(D),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,class:`config-log-parsers__delete`,onClick:t=>C(e.id)},null,8,[`onClick`])]))),128))]),_:1},8,[`modelValue`])):l(``,!0),y.value.length===0?(N(),h(`div`,ja,a(G(u)(`serviceConfigLogs.empty`)),1)):l(``,!0),b(`div`,Ma,[c(G(le),{modelValue:x.value,"onUpdate:modelValue":[n[1]||=e=>x.value=e,S],options:g.value,"option-label":`name`,"option-value":`id`,placeholder:G(u)(`serviceConfigLogs.addParser`),class:`config-log-parsers__add-select`,loading:G(f).loading,disabled:g.value.length===0},{option:v(({option:e})=>[b(`span`,null,a(e.name),1),e.builtin?(N(),o(G(J),{key:0,severity:`secondary`,class:`ml-2`,style:{"font-size":`0.65rem`,padding:`0.1rem 0.35rem`}},{default:v(()=>[T(a(G(u)(`serviceConfigLogs.builtin`)),1)]),_:1})):l(``,!0)]),_:1},8,[`modelValue`,`options`,`placeholder`,`loading`,`disabled`])])]),b(`div`,Na,[c(G(D),{label:G(u)(`serviceConfigLogs.manageParsers`),icon:`pi pi-cog`,severity:`secondary`,outlined:``,size:`small`,onClick:n[2]||=e=>G(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=f(E({__name:`ServiceConfigLogSources`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let{t:r}=K(),i=t,o=n,s=[{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 f(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 p=d([...i.service.logSources??[]]);q(()=>i.service.logSources,e=>{p.value=[...e??[]]});let m=d(!1),_=d(null),y=d(f(`console`));function x(){_.value=null,y.value=f(`file`),m.value=!0}function C(e){_.value=e,y.value={...p.value[e]},m.value=!0}function w(e){y.value=f(e)}function E(){_.value===null?p.value=[...p.value,{...y.value}]:p.value=p.value.map((e,t)=>t===_.value?{...y.value}:e),m.value=!1,o(`save`,{logSources:p.value})}function O(e){p.value=p.value.filter((t,n)=>n!==e),o(`save`,{logSources:p.value})}function k(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 A(e){return e===`console`?`pi-terminal`:e===`file`?`pi-file`:`pi-database`}return(t,n)=>(N(),h(`div`,Fa,[b(`div`,Ia,[b(`div`,La,[n[23]||=b(`i`,{class:`pi pi-inbox`},null,-1),b(`span`,null,a(G(r)(`serviceConfigLogSources.title`)),1)]),b(`small`,Ra,a(G(r)(`serviceConfigLogSources.hint`)),1)]),p.value.length>0?(N(),h(`div`,za,[(N(!0),h(e,null,W(p.value,(e,t)=>(N(),h(`div`,{key:t,class:`source-row`},[b(`i`,{class:g(`pi ${A(e.type)} source-row__icon`)},null,2),b(`div`,Ba,[b(`span`,Va,a(e.type),1),b(`span`,Ha,a(k(e)),1)]),b(`div`,Ua,[c(G(D),{icon:`pi pi-pencil`,text:``,size:`small`,severity:`secondary`,onClick:e=>C(t)},null,8,[`onClick`]),c(G(D),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>O(t)},null,8,[`onClick`])])]))),128))])):(N(),h(`div`,Wa,[n[24]||=b(`i`,{class:`pi pi-inbox config-log-sources__empty-icon`},null,-1),b(`p`,null,a(G(r)(`serviceConfigLogSources.empty`)),1),b(`small`,null,a(G(r)(`serviceConfigLogSources.emptyHint`)),1)])),b(`div`,Ga,[c(G(D),{label:G(r)(`serviceConfigLogSources.addSource`),icon:`pi pi-plus`,size:`small`,onClick:x},null,8,[`label`])]),c(G(u),{visible:m.value,"onUpdate:visible":n[22]||=e=>m.value=e,header:_.value===null?G(r)(`serviceConfigLogSources.addDialog`):G(r)(`serviceConfigLogSources.editDialog`),modal:``,style:{width:`520px`}},{footer:v(()=>[c(G(D),{label:G(r)(`serviceConfigLogSources.cancel`),severity:`secondary`,outlined:``,onClick:n[21]||=e=>m.value=!1},null,8,[`label`]),c(G(D),{label:_.value===null?G(r)(`serviceConfigLogSources.add`):G(r)(`serviceConfigLogSources.save`),icon:`pi pi-check`,onClick:E},null,8,[`label`])]),default:v(()=>[b(`div`,Ka,[b(`div`,qa,[b(`label`,Ja,a(G(r)(`serviceConfigLogSources.type`)),1),c(G(le),{"input-id":`lsrc-type`,"model-value":y.value.type,options:s,"option-label":`label`,"option-value":`value`,class:`dialog-form__input`,"onUpdate:modelValue":w},null,8,[`model-value`])]),y.value.type===`file`?(N(),h(e,{key:0},[b(`div`,Ya,[b(`label`,Xa,[T(a(G(r)(`serviceConfigLogSources.path`))+` `,1),n[25]||=b(`span`,{class:`dialog-form__required`},`*`,-1)]),c(G(S),{id:`lsrc-path-file`,modelValue:y.value.path,"onUpdate:modelValue":n[0]||=e=>y.value.path=e,class:`dialog-form__input`,placeholder:`/var/log/app.log`},null,8,[`modelValue`])]),b(`div`,Za,[b(`label`,Qa,a(G(r)(`serviceConfigLogSources.encoding`)),1),c(G(S),{id:`lsrc-encoding-file`,modelValue:y.value.encoding,"onUpdate:modelValue":n[1]||=e=>y.value.encoding=e,class:`dialog-form__input`,placeholder:`utf-8`},null,8,[`modelValue`])]),b(`div`,$a,[b(`label`,eo,a(G(r)(`serviceConfigLogSources.startFromEnd`)),1),c(G(Z),{"input-id":`lsrc-startFromEnd-file`,modelValue:y.value.startFromEnd,"onUpdate:modelValue":n[2]||=e=>y.value.startFromEnd=e},null,8,[`modelValue`])]),b(`div`,to,[b(`label`,no,a(G(r)(`serviceConfigLogSources.createIfNotExists`)),1),c(G(Z),{"input-id":`lsrc-createIfNotExists-file`,modelValue:y.value.createIfNotExists,"onUpdate:modelValue":n[3]||=e=>y.value.createIfNotExists=e},null,8,[`modelValue`])])],64)):y.value.type===`mongo`?(N(),h(e,{key:1},[b(`div`,ro,[b(`label`,io,[T(a(G(r)(`serviceConfigLogSources.connectionString`))+` `,1),n[26]||=b(`span`,{class:`dialog-form__required`},`*`,-1)]),c(G(S),{id:`lsrc-connectionString-mongo`,modelValue:y.value.connectionString,"onUpdate:modelValue":n[4]||=e=>y.value.connectionString=e,class:`dialog-form__input`,placeholder:`mongodb://user:pass@host:27017`,type:`password`,autocomplete:`off`},null,8,[`modelValue`])]),b(`div`,ao,[b(`div`,oo,[n[27]||=b(`label`,{for:`lsrc-database-mongo`,class:`dialog-form__label`},[T(`Database `),b(`span`,{class:`dialog-form__required`},`*`)],-1),c(G(S),{id:`lsrc-database-mongo`,modelValue:y.value.database,"onUpdate:modelValue":n[5]||=e=>y.value.database=e,class:`dialog-form__input`,placeholder:`mydb`},null,8,[`modelValue`])]),b(`div`,so,[n[28]||=b(`label`,{for:`lsrc-collection-mongo`,class:`dialog-form__label`},[T(`Collection `),b(`span`,{class:`dialog-form__required`},`*`)],-1),c(G(S),{id:`lsrc-collection-mongo`,modelValue:y.value.collection,"onUpdate:modelValue":n[6]||=e=>y.value.collection=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),b(`div`,co,[b(`div`,lo,[n[29]||=b(`label`,{for:`lsrc-timestampField-mongo`,class:`dialog-form__label`},`Timestamp field`,-1),c(G(S),{id:`lsrc-timestampField-mongo`,modelValue:y.value.timestampField,"onUpdate:modelValue":n[7]||=e=>y.value.timestampField=e,class:`dialog-form__input`,placeholder:`timestamp`},null,8,[`modelValue`])]),b(`div`,uo,[n[30]||=b(`label`,{for:`lsrc-messageField-mongo`,class:`dialog-form__label`},`Message field`,-1),c(G(S),{id:`lsrc-messageField-mongo`,modelValue:y.value.messageField,"onUpdate:modelValue":n[8]||=e=>y.value.messageField=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),b(`div`,fo,[n[31]||=b(`label`,{for:`lsrc-levelField-mongo`,class:`dialog-form__label`},[T(`Level field `),b(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),c(G(S),{id:`lsrc-levelField-mongo`,modelValue:y.value.levelField,"onUpdate:modelValue":n[9]||=e=>y.value.levelField=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])])],64)):y.value.type===`mysql`?(N(),h(e,{key:2},[b(`div`,po,[b(`div`,mo,[n[32]||=b(`label`,{for:`lsrc-host-mysql`,class:`dialog-form__label`},[T(`Host `),b(`span`,{class:`dialog-form__required`},`*`)],-1),c(G(S),{id:`lsrc-host-mysql`,modelValue:y.value.host,"onUpdate:modelValue":n[10]||=e=>y.value.host=e,class:`dialog-form__input`,placeholder:`localhost`},null,8,[`modelValue`])]),b(`div`,ho,[n[33]||=b(`label`,{for:`lsrc-port-mysql`,class:`dialog-form__label`},`Port`,-1),c(G(X),{"input-id":`lsrc-port-mysql`,modelValue:y.value.port,"onUpdate:modelValue":n[11]||=e=>y.value.port=e,min:1,max:65535,class:`dialog-form__input`},null,8,[`modelValue`])])]),b(`div`,go,[b(`div`,_o,[n[34]||=b(`label`,{for:`lsrc-user-mysql`,class:`dialog-form__label`},[T(`User `),b(`span`,{class:`dialog-form__required`},`*`)],-1),c(G(S),{id:`lsrc-user-mysql`,modelValue:y.value.user,"onUpdate:modelValue":n[12]||=e=>y.value.user=e,class:`dialog-form__input`,placeholder:`root`},null,8,[`modelValue`])]),b(`div`,vo,[n[35]||=b(`label`,{for:`lsrc-password-mysql`,class:`dialog-form__label`},`Password`,-1),c(G(S),{id:`lsrc-password-mysql`,modelValue:y.value.password,"onUpdate:modelValue":n[13]||=e=>y.value.password=e,class:`dialog-form__input`,type:`password`,autocomplete:`new-password`},null,8,[`modelValue`])])]),b(`div`,yo,[b(`div`,bo,[n[36]||=b(`label`,{for:`lsrc-database-mysql`,class:`dialog-form__label`},[T(`Database `),b(`span`,{class:`dialog-form__required`},`*`)],-1),c(G(S),{id:`lsrc-database-mysql`,modelValue:y.value.database,"onUpdate:modelValue":n[14]||=e=>y.value.database=e,class:`dialog-form__input`,placeholder:`app_db`},null,8,[`modelValue`])]),b(`div`,xo,[n[37]||=b(`label`,{for:`lsrc-table-mysql`,class:`dialog-form__label`},[T(`Table `),b(`span`,{class:`dialog-form__required`},`*`)],-1),c(G(S),{id:`lsrc-table-mysql`,modelValue:y.value.table,"onUpdate:modelValue":n[15]||=e=>y.value.table=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),b(`div`,So,[b(`div`,Co,[n[38]||=b(`label`,{for:`lsrc-timestampColumn-mysql`,class:`dialog-form__label`},`Timestamp column`,-1),c(G(S),{id:`lsrc-timestampColumn-mysql`,modelValue:y.value.timestampColumn,"onUpdate:modelValue":n[16]||=e=>y.value.timestampColumn=e,class:`dialog-form__input`,placeholder:`created_at`},null,8,[`modelValue`])]),b(`div`,wo,[n[39]||=b(`label`,{for:`lsrc-messageColumn-mysql`,class:`dialog-form__label`},`Message column`,-1),c(G(S),{id:`lsrc-messageColumn-mysql`,modelValue:y.value.messageColumn,"onUpdate:modelValue":n[17]||=e=>y.value.messageColumn=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),b(`div`,To,[b(`div`,Eo,[n[40]||=b(`label`,{for:`lsrc-levelColumn-mysql`,class:`dialog-form__label`},[T(`Level column `),b(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),c(G(S),{id:`lsrc-levelColumn-mysql`,modelValue:y.value.levelColumn,"onUpdate:modelValue":n[18]||=e=>y.value.levelColumn=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])]),b(`div`,Do,[n[41]||=b(`label`,{for:`lsrc-pollIntervalMs-mysql`,class:`dialog-form__label`},`Poll interval (ms)`,-1),c(G(X),{"input-id":`lsrc-pollIntervalMs-mysql`,modelValue:y.value.pollIntervalMs,"onUpdate:modelValue":n[19]||=e=>y.value.pollIntervalMs=e,min:500,max:6e4,class:`dialog-form__input`},null,8,[`modelValue`])])]),b(`div`,Oo,[n[42]||=b(`label`,{for:`lsrc-query-mysql`,class:`dialog-form__label`},[T(`Custom query `),b(`span`,{class:`dialog-form__hint`},[T(`(optional, must include `),b(`code`,null,`WHERE … > ?`),T(`)`)])],-1),c(G(S),{id:`lsrc-query-mysql`,modelValue:y.value.query,"onUpdate:modelValue":n[20]||=e=>y.value.query=e,class:`dialog-form__input`,placeholder:`SELECT * FROM logs WHERE created_at > ? ORDER BY id ASC`},null,8,[`modelValue`])])],64)):y.value.type===`console`?(N(),h(`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.`)):l(``,!0)])]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-1ceb461a`]]),jo={class:`config-traefik`},Mo={class:`traefik-entry__fields`},No=f(E({__name:`ServiceConfigTraefik`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let r=t,a=n,u=d([...r.service.localUrls??[]]),f=d(null);ce(async()=>{r.service.agentId&&(f.value=(await s.settings.getAgentTraefikConfig.query({agentId:r.service.agentId})).enabled)});let p=null;q(()=>r.service,e=>{p||(u.value=[...e.localUrls??[]])});function m(){u.value=[...u.value,{url:``,port:3e3}]}function g(e){u.value=u.value.filter((t,n)=>n!==e),x()}function _(e,t,n){u.value=u.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function x(){p&&clearTimeout(p),p=setTimeout(()=>{a(`save`,{localUrls:u.value.filter(e=>e.url.trim())}),p=null},150)}return(t,n)=>(N(),h(`div`,jo,[f.value===!1?(N(),o(G(te),{key:0,severity:`warn`,closable:!1},{default:v(()=>[n[1]||=T(` Traefik n'est pas activé. Configurez-le dans `,-1),c(G(U),{to:{name:`settings`,query:{section:`agents`}}},{default:v(()=>[...n[0]||=[T(`Paramètres → Agents`,-1)]]),_:1}),n[2]||=T(` (bouton Traefik sur la ligne de l'agent) pour que ces URLs soient actives. `,-1)]),_:1})):l(``,!0),(N(!0),h(e,null,W(u.value,(e,t)=>(N(),h(`div`,{key:t,class:`traefik-entry`},[b(`div`,Mo,[c(G(S),{"model-value":e.url,class:`traefik-entry__url`,placeholder:`mon-app.local.mondomaine.com`,"onUpdate:modelValue":e=>_(t,`url`,e),onBlur:x,onKeydown:i(y(x,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`]),c(G(X),{"model-value":e.port,class:`traefik-entry__port`,min:1,max:65535,"use-grouping":!1,placeholder:`3000`,"onUpdate:modelValue":e=>{_(t,`port`,e??3e3),x()}},null,8,[`model-value`,`onUpdate:modelValue`]),c(G(D),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:e=>g(t)},null,8,[`onClick`])])]))),128)),c(G(D),{icon:`pi pi-plus`,label:`Ajouter une URL`,size:`small`,outlined:``,onClick:m})]))}}),[[`__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=f(E({__name:`ServiceConfigView`,props:{service:{},projectId:{}},emits:[`remove-service`],setup(e,{emit:t}){let n=e,r=t,{t:i}=K(),o=F(),s=k(),l=fe(),{isDebug:u}=Wt(),d=j(),f=B(),p=[`general`,`commands`,`shortcuts`,`env`,`health`,`log-parsers`,`log-sources`,`traefik`],m=_(()=>{let e=d.query.configTab;return p.includes(e)?e:`general`});function g(e){f.replace({query:{...d.query,configTab:e}})}let y=_(()=>s.getByRef({id:n.projectId,orgId:l.activeOrgId})?.activeEnvironmentId);async function x(e,t){await t()?u.value&&console.debug(`[autosave] ${e} saved`):console.error(`[autosave] ${e} failed:`,o.error??`Save failed`)}async function S(e){await x(`General`,()=>o.update(n.service.id,e))}async function C(e){await x(`Commands`,()=>o.update(n.service.id,e))}async function w(e){await x(`Health check`,()=>o.update(n.service.id,{healthCheck:e??null}))}async function T(e){await x(`Shortcuts`,()=>o.update(n.service.id,{shortcuts:e}))}async function E(e){await x(`Docker`,()=>o.update(n.service.id,{dockerConfig:e}))}async function O(e){await x(`Log parsers`,()=>o.update(n.service.id,e))}async function A(e){await x(`Log sources`,()=>o.update(n.service.id,e))}async function ee(e){await x(`Traefik`,()=>o.update(n.service.id,e))}function M(){r(`remove-service`,n.service.id)}return(t,n)=>(N(),h(`div`,Po,[b(`div`,Fo,[b(`h2`,Io,a(G(i)(`serviceConfigView.title`)),1),b(`div`,Lo,[c(G(D),{label:G(i)(`serviceConfigView.remove`),icon:`pi pi-trash`,severity:`danger`,size:`small`,outlined:``,onClick:M},null,8,[`label`])])]),c(G(be),{value:m.value,class:`config-view__tabs`,"onUpdate:value":g},{default:v(()=>[c(G(ve),null,{default:v(()=>[c(G(Q),{value:`general`,"data-testid":`tab-config`},{default:v(()=>[n[0]||=b(`i`,{class:`pi pi-cog tab-icon`},null,-1),b(`span`,null,a(G(i)(`serviceConfigView.tabGeneral`)),1)]),_:1}),c(G(Q),{value:`commands`,"data-testid":`tab-commands`},{default:v(()=>[n[1]||=b(`i`,{class:`pi pi-code tab-icon`},null,-1),b(`span`,null,a(G(i)(`serviceConfigView.tabCommands`)),1)]),_:1}),c(G(Q),{value:`shortcuts`,"data-testid":`tab-shortcuts`},{default:v(()=>[n[2]||=b(`i`,{class:`pi pi-bolt tab-icon`},null,-1),b(`span`,null,a(G(i)(`serviceConfigView.tabShortcuts`)),1)]),_:1}),c(G(Q),{value:`env`,"data-testid":`tab-env`},{default:v(()=>[n[3]||=b(`i`,{class:`pi pi-database tab-icon`},null,-1),b(`span`,null,a(G(i)(`serviceConfigView.tabEnvironment`)),1)]),_:1}),c(G(Q),{value:`health`},{default:v(()=>[n[4]||=b(`i`,{class:`pi pi-heart tab-icon`},null,-1),b(`span`,null,a(G(i)(`serviceConfigView.tabHealthCheck`)),1)]),_:1}),c(G(Q),{value:`log-parsers`,"data-testid":`tab-log-parsers`},{default:v(()=>[n[5]||=b(`i`,{class:`pi pi-list tab-icon`},null,-1),b(`span`,null,a(G(i)(`serviceConfigView.tabLogParsers`)),1)]),_:1}),c(G(Q),{value:`log-sources`},{default:v(()=>[n[6]||=b(`i`,{class:`pi pi-inbox tab-icon`},null,-1),b(`span`,null,a(G(i)(`serviceConfigView.tabLogSources`)),1)]),_:1}),c(G(Q),{value:`traefik`},{default:v(()=>[...n[7]||=[b(`i`,{class:`pi pi-server tab-icon`},null,-1),b(`span`,null,`Traefik`,-1)]]),_:1})]),_:1}),c(G(ye),null,{default:v(()=>[c(G($),{value:`general`},{default:v(()=>[c(Dn,{service:e.service,onSave:S},null,8,[`service`])]),_:1}),c(G($),{value:`commands`},{default:v(()=>[c(ei,{service:e.service,onSave:C,onDockerSave:E},null,8,[`service`])]),_:1}),c(G($),{value:`shortcuts`,"data-testid":`tabpanel-shortcuts`},{default:v(()=>[c(xa,{service:e.service,onSave:T},null,8,[`service`])]),_:1}),c(G($),{value:`env`},{default:v(()=>[c(Bi,{service:e.service,"project-id":e.projectId,"active-environment-id":y.value},null,8,[`service`,`project-id`,`active-environment-id`])]),_:1}),c(G($),{value:`health`},{default:v(()=>[c(la,{service:e.service,onSave:w},null,8,[`service`])]),_:1}),c(G($),{value:`log-parsers`,"data-testid":`tabpanel-log-parsers`},{default:v(()=>[c(Pa,{service:e.service,onSave:O},null,8,[`service`])]),_:1}),c(G($),{value:`log-sources`},{default:v(()=>[c(Ao,{service:e.service,onSave:A},null,8,[`service`])]),_:1}),c(G($),{value:`traefik`},{default:v(()=>[c(No,{service:e.service,onSave:ee},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=f(E({__name:`ServiceDetailPage`,setup(e){let t=j(),n=B(),r=ne(),i=ae(),{t:s}=K(),c=F(),u=M(),f=k(),{setServiceContext:m}=A(),g=_(()=>t.params.id);q(g,e=>m(e),{immediate:!0}),z(()=>m(null));let v=_(()=>{let e=t.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`||e===`wiki`?e:`terminal`}),y=d(null),x=d(!1),S=_(()=>c.getById(g.value)||(y.value?.id===g.value?y.value:null));q(g,async e=>{if(y.value=null,!(!e||c.getById(e))){x.value=!0;try{y.value=await c.fetchOne(e)}finally{x.value=!1}}},{immediate:!0});let C=_(()=>u.getByService(g.value)),w=_(()=>f.currentProject?.id??``);function T(e){let t=c.getById(e);i.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)&&(r.add({severity:`success`,summary:s(`serviceDetail.removed`),detail:s(`serviceDetail.deleted`),life:3e3}),n.push(`/`))}})}return(e,t)=>S.value?(N(),h(`div`,zo,[v.value===`terminal`?(N(),o(Dt,{key:`terminal-`+g.value,service:S.value,processes:C.value},null,8,[`service`,`processes`])):v.value===`metrics`?(N(),o(Rt,{key:`metrics-`+g.value,service:S.value,processes:C.value},null,8,[`service`,`processes`])):v.value===`config`?(N(),o(Ro,{key:`config-`+g.value,service:S.value,"project-id":w.value,onRemoveService:T},null,8,[`service`,`project-id`])):v.value===`git`?(N(),o(p,{key:`git-`+g.value,"service-id":g.value},null,8,[`service-id`])):v.value===`wiki`?(N(),o(je,{key:`wiki-`+g.value,scope:`service:${g.value}`},null,8,[`scope`])):l(``,!0)])):x.value?(N(),h(`div`,Bo)):(N(),h(`div`,Vo,[b(`p`,null,a(G(s)(`serviceDetail.notFound`)),1)]))}}),[[`__scopeId`,`data-v-e5220f62`]]);export{Ho as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ai as e,An as t,Di as n,Fa as r,Fn as i,Hi as a,Ii as o,Ka as s,Kn as c,Li as l,Ni as u,Oa as ee,Oi as d,Pi as f,Tn as p,Wa as te,Wi as m,Xn as h,Xt as g,Yt as ne,cr as re,d as ie,da as _,ft as ae,lr as oe,lt as se,mr as ce,pa as le,sa as ue,sn as v,to as y,vn as de,vr as fe}from"./index-De7vzwYE.js";import{n as b}from"./plus-DJr2QEgS.js";import{t as pe}from"./fieldset-C0CmkHzJ.js";import{t as me}from"./toggleswitch-qhHjeH7s.js";import{t as he}from"./autocomplete-ByrzVX5h.js";import{t as x}from"./divider-BrS14lDG.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`},Ne={class:`form-group switch-group`},Pe={for:`svc-autorestart`},Fe={class:`form-section`},Ie={class:`section-header`},Le={key:0,class:`empty-env`},Re={class:`form-group`},ze={for:`hc-path`},Be={class:`form-row`},Ve={class:`form-group flex-1`},He={for:`hc-interval`},Ue={class:`form-group flex-1`},We={for:`hc-timeout`},Ge={class:`form-group flex-1`},Ke={for:`hc-retries`},P=`__inherit__`,F=c(m({__name:`ServiceFormPage`,props:{id:{}},setup(c){let m=c,F=oe(),qe=re(),I=ce(),L=ne(),R=ae(),z=se(),B=de(),Je=ie(),{t:V}=fe(),H=u(()=>!!m.id),U=u(()=>qe.query.projectId),W=s(!1),G=s(!1),K=s(null),q=s(null),J=s(!1),Y=te({projectId:``,agentId:P,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),X=s([]),Ye=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Xe=u(()=>L.projects.map(e=>({label:e.name,value:e.id}))),Z=u(()=>[{label:V(`serviceForm.agentInherit`),value:P},...z.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Q(){X.value=[...X.value,{key:``,value:``,isSecret:!1}]}function Ze(e){X.value=X.value.filter((t,n)=>n!==e)}function Qe(){let e={},t=!1;for(let n of X.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(m.id){W.value=!0;try{let e=await i.service.get.query({id:m.id});Y.agentId=e.agentId??P,Y.name=e.name,Y.cwd=e.cwd??``,Y.ports=(e.ports??[]).map(String),Y.runner=e.runner,Y.autoRestart=e.autoRestart,e.healthCheck&&(Y.healthCheck.enabled=!0,Y.healthCheck.path=e.healthCheck.path,Y.healthCheck.interval=e.healthCheck.interval,Y.healthCheck.timeout=e.healthCheck.timeout,Y.healthCheck.retries=e.healthCheck.retries),e.variables&&typeof e.variables==`object`&&Object.keys(e.variables).length>0&&(X.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){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:g(e)??V(`serviceForm.failedToLoad`),life:5e3}),F.back()}finally{W.value=!1}}}async function $(){if(!(!H.value||!m.id||G.value||W.value)){if(!Y.name.trim()){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.nameRequired`),life:3e3});return}G.value=!0;try{let e={agentId:Y.agentId===P?null:Y.agentId||null,name:Y.name.trim(),cwd:Y.cwd.trim()||void 0,ports:Y.ports.map(Number).filter(e=>e>0&&e<=65535),runner:Y.runner,autoRestart:Y.autoRestart,variables:Qe(),healthCheck:Y.healthCheck.enabled?{path:Y.healthCheck.path,interval:Y.healthCheck.interval,timeout:Y.healthCheck.timeout,retries:Y.healthCheck.retries}:void 0};(await i.service.update.mutate({id:m.id,...e}))?.stoppedForAgentChange?(K.value=e.agentId,q.value=m.id,I.add({severity:`warn`,summary:V(`serviceForm.saved`),detail:V(`serviceForm.agentChangedServiceStopped`),life:4e3})):I.add({severity:`success`,summary:V(`serviceForm.saved`),life:1500})}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:g(e)??V(`serviceForm.failedToSave`),life:5e3})}finally{G.value=!1}}}async function et(){if(!(!K.value||!q.value)){J.value=!0;try{await Je.start(K.value,q.value),K.value=null,q.value=null,I.add({severity:`success`,summary:V(`serviceForm.restarted`),life:2e3})}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:g(e),life:5e3})}finally{J.value=!1}}}async function tt(){if(!Y.name.trim()){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.nameRequired`),life:3e3});return}if(!Y.projectId){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.projectRequired`),life:3e3});return}G.value=!0;try{let e=await R.create({name:Y.name.trim(),...Y.agentId&&Y.agentId!==P?{agentId:Y.agentId}:{}});if(!e)throw Error(R.error??`Failed to create service`);let t=L.getByRef({id:Y.projectId,orgId:B.activeOrgId})??L.getById(Y.projectId);await L.addService(t??{id:Y.projectId},e.id),I.add({severity:`success`,summary:V(`serviceForm.serviceCreated`),detail:V(`serviceForm.configureAfterCreate`),life:3e3}),F.push({name:`service-detail`,params:{id:e.id,tab:`config`}})}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:g(e)??V(`serviceForm.failedToSave`),life:5e3})}finally{G.value=!1}}return ue(async()=>{await Promise.all([L.fetchAll(),z.fetchAll()]),U.value?Y.projectId=U.value:!Y.projectId&&B.activeProjectId&&(Y.projectId=B.activeProjectId),H.value&&await $e()}),(i,s)=>(_(),l(`div`,ge,[f(`div`,_e,[a(y(h),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:s[0]||=e=>y(F).back()}),f(`h1`,null,r(H.value?y(V)(`serviceForm.editTitle`):y(V)(`serviceForm.createTitle`)),1)]),q.value?(_(),l(`div`,ve,[f(`span`,null,r(y(V)(`serviceForm.agentChangedServiceStopped`)),1),a(y(h),{label:y(V)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:J.value,onClick:et},null,8,[`label`,`loading`]),a(y(h),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:s[1]||=e=>{q.value=null,K.value=null}})])):o(``,!0),W.value?(_(),l(`div`,ye,[a(y(t))])):(_(),l(`form`,{key:2,class:`service-form`,onSubmit:d(tt,[`prevent`])},[H.value?(_(),l(e,{key:1},[f(`div`,M,[f(`div`,N,[f(`div`,xe,[f(`label`,Se,r(y(V)(`serviceForm.nameLabelShort`)),1),a(y(p),{id:`svc-name-edit`,modelValue:Y.name,"onUpdate:modelValue":s[6]||=e=>Y.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:n(d($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),f(`div`,Ce,[f(`label`,we,r(y(V)(`serviceForm.runnerLabel`)),1),a(y(v),{id:`svc-runner`,modelValue:Y.runner,"onUpdate:modelValue":s[7]||=e=>Y.runner=e,options:Ye,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),f(`div`,Te,[f(`label`,Ee,r(y(V)(`serviceForm.agentLabel`)),1),a(y(v),{id:`svc-agent-edit`,modelValue:Y.agentId,"onUpdate:modelValue":s[8]||=e=>Y.agentId=e,options:Z.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),f(`small`,De,r(y(V)(`serviceForm.agentHintEdit`)),1)]),f(`div`,Oe,[f(`div`,ke,[f(`label`,Ae,r(y(V)(`serviceForm.cwdLabel`)),1),a(y(p),{id:`svc-cwd`,modelValue:Y.cwd,"onUpdate:modelValue":s[9]||=e=>Y.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:n(d($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),f(`div`,je,[f(`label`,Me,r(y(V)(`serviceForm.portsLabel`)),1),a(y(he),{inputId:`svc-ports`,modelValue:Y.ports,"onUpdate:modelValue":s[10]||=e=>Y.ports=e,multiple:``,typeahead:!1,placeholder:y(V)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),f(`div`,Ne,[a(y(me),{modelValue:Y.autoRestart,"onUpdate:modelValue":s[11]||=e=>Y.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),f(`label`,Pe,r(y(V)(`serviceForm.autoRestart`)),1)])]),a(y(x)),f(`div`,Fe,[f(`div`,Ie,[f(`h3`,null,r(y(V)(`serviceForm.envVars`)),1),a(y(h),{label:y(V)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Q},null,8,[`label`])]),X.value.length===0?(_(),l(`div`,Le,[f(`small`,null,r(y(V)(`serviceForm.noEnvVars`)),1)])):o(``,!0),(_(!0),l(e,null,le(X.value,(e,t)=>(_(),l(`div`,{key:t,class:`env-row`},[a(y(p),{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:n(d($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),s[17]||=f(`span`,{class:`env-eq`},`=`,-1),a(y(p),{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:n(d($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),a(y(h),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Ze(t),$()}},null,8,[`onClick`])]))),128))]),a(y(x)),a(y(pe),{legend:y(V)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!Y.healthCheck.enabled,onToggle:s[16]||=e=>{Y.healthCheck.enabled=!e.value,$()}},{default:ee(()=>[f(`div`,Re,[f(`label`,ze,r(y(V)(`serviceForm.healthCheckPath`)),1),a(y(p),{id:`hc-path`,modelValue:Y.healthCheck.path,"onUpdate:modelValue":s[12]||=e=>Y.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:n(d($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),f(`div`,Be,[f(`div`,Ve,[f(`label`,He,r(y(V)(`serviceForm.interval`)),1),a(y(b),{id:`hc-interval`,modelValue:Y.healthCheck.interval,"onUpdate:modelValue":s[13]||=e=>Y.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:n(d($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),f(`div`,Ue,[f(`label`,We,r(y(V)(`serviceForm.timeout`)),1),a(y(b),{id:`hc-timeout`,modelValue:Y.healthCheck.timeout,"onUpdate:modelValue":s[14]||=e=>Y.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:n(d($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),f(`div`,Ge,[f(`label`,Ke,r(y(V)(`serviceForm.retries`)),1),a(y(b),{id:`hc-retries`,modelValue:Y.healthCheck.retries,"onUpdate:modelValue":s[15]||=e=>Y.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:n(d($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),a(y(x))],64)):(_(),l(e,{key:0},[f(`div`,be,[f(`div`,S,[f(`label`,C,r(y(V)(`serviceForm.projectLabel`)),1),a(y(v),{id:`svc-project`,modelValue:Y.projectId,"onUpdate:modelValue":s[2]||=e=>Y.projectId=e,options:Xe.value,optionLabel:`label`,optionValue:`value`,placeholder:y(V)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),f(`small`,w,r(y(V)(`serviceForm.projectHint`)),1)]),f(`div`,T,[f(`label`,E,r(y(V)(`serviceForm.agentLabel`)),1),a(y(v),{id:`svc-agent`,modelValue:Y.agentId,"onUpdate:modelValue":s[3]||=e=>Y.agentId=e,options:Z.value,optionLabel:`label`,optionValue:`value`,placeholder:y(V)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),f(`small`,D,r(y(V)(`serviceForm.agentHint`)),1)]),f(`div`,O,[f(`label`,k,r(y(V)(`serviceForm.nameLabel`)),1),a(y(p),{id:`svc-name`,modelValue:Y.name,"onUpdate:modelValue":s[4]||=e=>Y.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),f(`small`,A,r(y(V)(`serviceForm.nameConfigHint`)),1)])]),a(y(x)),f(`div`,j,[a(y(h),{label:y(V)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:s[5]||=e=>y(F).back()},null,8,[`label`]),a(y(h),{label:y(V)(`serviceForm.create`),icon:`pi pi-check`,loading:G.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-47e4793d`]]);export{F as default};
|