@runeya/runeya 2.0.126 → 2.0.128
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 +7 -0
- package/agent/index.js.map +1 -1
- package/agent-manager-VFUO7WQG.js +10 -0
- package/{chat-ODBVFMKX.js → chat-GB2UJ5KB.js} +7 -7
- package/{chunk-HK5QNU6P.js → chunk-BDQOBEZ3.js} +18 -2
- package/chunk-BDQOBEZ3.js.map +1 -0
- package/{chunk-TTPL2M74.js → chunk-DTWP3CFL.js} +8 -1
- package/chunk-DTWP3CFL.js.map +1 -0
- package/{chunk-K7A3Q62R.js → chunk-KNAM5H2Z.js} +3 -3
- package/{chunk-WLZQDWJT.js → chunk-KQ462M3Y.js} +6 -5
- package/chunk-KQ462M3Y.js.map +1 -0
- package/{chunk-SG2ACPOE.js → chunk-X2PJIJU7.js} +7 -7
- package/{chunk-2EDVDRKV.js → chunk-ZGEV53KH.js} +17 -16
- package/chunk-ZGEV53KH.js.map +1 -0
- package/{companion-5DPH3HIO.js → companion-XBCHHK4Z.js} +5 -5
- package/{desktop-launcher-J2BCSSGZ.js → desktop-launcher-SLNYXW22.js} +2 -2
- package/index.js +4 -4
- package/mcp-server/index.js +7 -0
- package/mcp-server/index.js.map +1 -1
- package/package.json +1 -1
- package/settings-manager-YGIIRWVY.js +10 -0
- package/{src-XCI5NILM.js → src-WK5KI3IO.js} +30 -29
- package/src-WK5KI3IO.js.map +1 -0
- package/web/assets/AgentScalarChatInterface.vue-B0YVVvvN.js +13 -0
- package/web/assets/AgentTerminalPage-25hg27t9.js +1 -0
- package/web/assets/AiChatPage-C34J4RQh.js +1 -0
- package/web/assets/AppLayout-Cq7es4tN.js +1 -0
- package/web/assets/{AppLayout-Do2CLgOr.css → AppLayout-lOwRflWA.css} +1 -1
- package/web/assets/AuditPage-Ctf0zyMz.js +1 -0
- package/web/assets/CloudAccountPage-CH5UJiew.js +1 -0
- package/web/assets/CloudAccountPage-DUCeHm0n.js +1 -0
- package/web/assets/CloudMessagingPage-iGdZy0rP.js +2 -0
- package/web/assets/DashboardPage-DCMfg5Vz.js +164 -0
- package/web/assets/{DashboardPage-DWA-1xgl.css → DashboardPage-DRZGWuU1.css} +1 -1
- package/web/assets/DirectoryPickerDialog-BlFmkPJx.js +1 -0
- package/web/assets/DirectoryPickerDialog-Ctp1lYoS.css +1 -0
- package/web/assets/{EditorIcon-lzF8hPtZ.js → EditorIcon-BvkHge0W.js} +2 -2
- package/web/assets/{EnvironmentForm-DVWdFsE1.js → EnvironmentForm-DtgwWpcp.js} +2 -2
- package/web/assets/EnvironmentFormPage-Y33vtDkS.js +1 -0
- package/web/assets/EnvironmentListPage-Dwv_amSf.js +1 -0
- package/web/assets/KanbanBoardPage-BYIWTYy2.js +4 -0
- package/web/assets/KanbanListPage-C_zN70Af.css +1 -0
- package/web/assets/KanbanListPage-CtnTArkW.js +1 -0
- package/web/assets/LaunchProjectPage-BGtCnkQf.js +1 -0
- package/web/assets/LaunchProjectPage-CHeYx5v0.css +1 -0
- package/web/assets/LaunchServicesPage-QDcpXeHP.js +1 -0
- package/web/assets/LogViewer-5fy2mcac.js +3 -0
- package/web/assets/OrgKeyPrompt-CRf1ZPik.js +1 -0
- package/web/assets/OrgKeyPrompt-CrHXZdKL.css +1 -0
- package/web/assets/OrgLogo-D9q7M1ZF.js +1 -0
- package/web/assets/{ProcessControls-DkaiMo0H.js → ProcessControls-B5dlAAdP.js} +1 -1
- package/web/assets/ProcessDetailPage-TwjrHkz3.js +1 -0
- package/web/assets/{ProcessMetrics-D2lP9cEF.js → ProcessMetrics-UeyyEwTI.js} +2 -2
- package/web/assets/RandomJobTestPage-DcIJekvc.js +2 -0
- package/web/assets/ScenarioEditorPage-midPg1W3.js +14 -0
- package/web/assets/SendToChatDialog-DakT4QK8.js +1 -0
- package/web/assets/ServiceControlsBar-HsErHmCH.js +1 -0
- package/web/assets/ServiceDetailPage-FJBxkdMy.js +2 -0
- package/web/assets/ServiceFormPage-DHjdAmr3.js +1 -0
- package/web/assets/SettingsPage-CONd8aJV.js +2063 -0
- package/web/assets/UnlockPage-CyZyhxYj.js +1 -0
- package/web/assets/VaultMigrationPage-B2WI7Dzf.js +1 -0
- package/web/assets/VersionBadge-D3kiloE4.js +1 -0
- package/web/assets/WikiPage-DE2tV5jr.js +1 -0
- package/web/assets/WikiView-DnWD_aWz.js +1 -0
- package/web/assets/{add-scalar-classes-C1s53GSo.js → add-scalar-classes-BBBoFX1O.js} +28 -28
- package/web/assets/{autocomplete-qVwP27uM.js → autocomplete-CR_eCGsI.js} +3 -3
- package/web/assets/{basic-shape-diamond.svg-BwZ1Enqo.js → basic-shape-diamond.svg-DRRq7MrY.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-Cyko19l-.js → basic-shape-hexagon.svg-CGSaE9pB.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-CWaxr-XS.js → basic-shape-primary-circle-ellipse-round.svg-DIXa0_Cu.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-BueTJIhO.js → basic-shape-primary-square-rectangle.svg-iZ2jJ4vs.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-DiYXMUMt.js → basic-shape-shield.svg-udMt4tB9.js} +1 -1
- package/web/assets/{browser-72mztbYe.js → browser-BL1DKhyA.js} +1 -1
- package/web/assets/{browser-B8wHMk1o.js → browser-Ca9fTyQX.js} +1 -1
- package/web/assets/card-BQ1OXNVV.js +32 -0
- package/web/assets/{checkbox-BiDvmfqK.js → checkbox-CyVRoo_U.js} +3 -3
- package/web/assets/{chip-Cb6eK00K.js → chip-CppGpxiK.js} +2 -2
- package/web/assets/client-CUWGHmly.js +24 -0
- package/web/assets/cloud-chat.store-BKPvf-qg.js +1 -0
- package/web/assets/cloud-client-CBVMvTSV.js +1 -0
- package/web/assets/cloud-session-CwER2D6K.js +1 -0
- package/web/assets/{cloud-session-CIGp7324.js → cloud-session-DiJ37iee.js} +2 -2
- package/web/assets/column-BYul0pb1.js +763 -0
- package/web/assets/{computer-device-desktop-monitor.svg-DkL4R6oe.js → computer-device-desktop-monitor.svg--DYwduR2.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-DXRQ2Wl4.js → computer-device-desktop.svg-BBgMbw17.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-BwdMHvul.js → computer-device-laptop.svg-BKpaOUrY.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-CzfVICvS.js → computer-device-mobile-phone-android-samsung-back.svg-B59atDnV.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-5mcZzPvQ.js → computer-device-mobile-phone-android-samsung.svg-PrtfIbO2.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-CovJE-GH.js → computer-device-mobile-phone-iphone-x-back.svg-CxeWs20w.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-PgDuCiQq.js → computer-device-mobile-phone-iphone-x.svg-jqLPWrzA.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-1xFu6tBt.js → computer-device-mobile-tablet-touch.svg-R-OkYXde.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-lvKpoZnh.js → computer-device-mobile-tablet.svg-BjISjapY.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-BJ6jNe-4.js → computer-device-network-ethernet-cat6.svg-BXgIO_p5.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-D2V9EO5w.js → computer-device-network-lan-www.svg-B6YGwdqj.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-DhFLYNK0.js → computer-device-network-wifi-connection.svg-CP2V_sTN.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-BGWV2N2B.js → computer-device-network-wifi-router.svg-DRsjg9_P.js} +1 -1
- package/web/assets/{cssMode-Q_UQl6r1.js → cssMode-MoKLv7g0.js} +1 -1
- package/web/assets/{divider-D2zmU0b9.js → divider-tTW01I5w.js} +2 -2
- package/web/assets/{docx-preview-CAEo0pZg.js → docx-preview-unHjZcAR.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-D4Cb7DOj.js → ecology-science-erlenmeyer-flask.svg-ClOlLMOd.js} +1 -1
- package/web/assets/{fieldset-CvPPXvgb.js → fieldset-COorWSfN.js} +2 -2
- package/web/assets/{freemarker2-CCRi9jHA.js → freemarker2-BOt0hq03.js} +1 -1
- package/web/assets/{handlebars-4FU6Ze_N.js → handlebars-D8wEDhEz.js} +1 -1
- package/web/assets/{html-1I40tTPC.js → html-Cd-HuUzd.js} +1 -1
- package/web/assets/{htmlMode-DQrNrxvx.js → htmlMode-CEdFeFHz.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-Bh48o-tL.js → image-flash-lightning.svg-Cov9ygOk.js} +1 -1
- package/web/assets/{image-picture-flower.svg-CE0C3oid.js → image-picture-flower.svg-BbDUnQoM.js} +1 -1
- package/web/assets/{index-SrQFBx_K.js → index-DuGh2zls.js} +349 -349
- package/web/assets/{interface-alert-exclamation-diamond.svg-Dzt9JrNZ.js → interface-alert-exclamation-diamond.svg-BRhZ0m4M.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-CET5JCIK.js → interface-alert-exclamation-triangle-warning.svg-Bu9LvX_T.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-GX_R0hCS.js → interface-alert-information-circle.svg-CwNRvmjJ.js} +1 -1
- package/web/assets/{interface-award-crown.svg-BUS_3snr.js → interface-award-crown.svg-E1NdS8hg.js} +1 -1
- package/web/assets/{interface-bookmark.svg-B1HfpZ9v.js → interface-bookmark-tag.svg-Ds__lzjn.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-GOtO3ous.js → interface-bookmark.svg-CL6rgPqK.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-W8G2NQFL.js → interface-calendar-date-one.svg-tmYumlI7.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-0dUMuEJV.js → interface-content-book-open-pages.svg-DYpnsEkk.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-BZ9dLtQQ.js → interface-content-book-page.svg-CBap0-V8.js} +1 -1
- package/web/assets/{interface-content-file.svg-C5JU1QaC.js → interface-content-file.svg-BlgJPbn0.js} +1 -1
- package/web/assets/{interface-content-folder.svg-DeWnODx9.js → interface-content-folder.svg-BeIbFS1R.js} +1 -1
- package/web/assets/interface-content-folder.svg-CA903hwo.js +1 -0
- package/web/assets/{interface-copy-clipboard.svg-DneOONZN.js → interface-copy-clipboard.svg-DLEIk_9i.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-BUDutqFa.js → interface-edit-attachment.svg-CexUURep.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-DQ_sVWUa.js → interface-edit-binocular.svg-Bcp0m6XR.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-BqDEUbja.js → interface-edit-magic-wand.svg--lUaWOkl.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-CcbJr-sE.js → interface-edit-tool-paint-roller.svg-CJI14pct.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-Dlmq9sMb.js → interface-edit-tool-pencil.svg-CokeKrld.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-CfRf16yB.js → interface-favorite-award.svg-Dj9jP_IB.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-BeXa9l_o.js → interface-favorite-flag.svg-DbctAxtG.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-DWDXtfc-.js → interface-favorite-heart.svg-Yhn6VUZb.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-D0my2O2z.js → interface-favorite-star.svg-C4RblO3r.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-DwnkpORM.js → interface-favorite-stars-sparkles.svg-D86ge-kp.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-BS1qAEvQ.js → interface-hierarchy-flowchart.svg-4vpVa0LC.js} +1 -1
- package/web/assets/{interface-home-house.svg-ByCGOgtp.js → interface-home-house.svg-CKqrr_vH.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-D0RP2diO.js → interface-hyperlink.svg-BziyYL-h.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-B7Wir9fI.js → interface-lighting-brightness.svg-DLhkAeot.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-D93wzWGY.js → interface-lock-closed.svg-BqMSDpjQ.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-CEbreK15.js → interface-lock-open-unlock.svg-B0anVo0z.js} +1 -1
- package/web/assets/{interface-login-key.svg-a_CUiiRx.js → interface-login-key.svg-CksFuOna.js} +1 -1
- package/web/assets/{interface-search.svg-CP6bN80a.js → interface-search.svg-BKOu9tUw.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-C1yqB1H3.js → interface-setting-cog.svg-D_3dXTZ-.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-BpEzN7dc.js → interface-share-megaphone-bullhorn.svg-Dn4gF0hH.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-CZTpH2do.js → interface-share-rocket.svg-cm2iZyhA.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-CDpvXyTq.js → interface-share-satellite.svg-CGcTcWwZ.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-QXv4WQWa.js → interface-share-space-ship.svg-DZVVyCQA.js} +1 -1
- package/web/assets/{interface-share.svg-DO9f8_w3.js → interface-share.svg-CmI-JZ5u.js} +1 -1
- package/web/assets/{interface-signal-square.svg-Dpbb94dT.js → interface-signal-square.svg-B5YnBkid.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-BOM8J4p-.js → interface-time-clock-circle.svg-LEl6S2p_.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-B4wmuGrS.js → interface-time-hour-glass.svg-SRS0fEgq.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-CX6Z1IAw.js → interface-users-multiple.svg-BrzA58gN.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-VjaROepI.js → interface-weather-moon.svg-Dcj5tIZe.js} +1 -1
- package/web/assets/{javascript-dnJjMqJl.js → javascript-BW4o2_xP.js} +1 -1
- package/web/assets/{jsonMode-DIklAZzl.js → jsonMode-BNu5tj2Z.js} +2 -2
- package/web/assets/{liquid-DM3-T0fg.js → liquid-DhgTTELV.js} +1 -1
- package/web/assets/{lspLanguageFeatures-DtduOI48.js → lspLanguageFeatures-Cb2BAAKm.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-BtQmLgyl.js → mail-chat-bubble-square.svg-CqruhAnJ.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-DBzfHbzK.js → mail-send-email-paper-airplane.svg-tWiaK3cO.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-ByoaJJai.js → mail-send-envelope.svg-CqrtM0XJ.js} +1 -1
- package/web/assets/{mdx-COmjqkAf.js → mdx-Bp8ONtDZ.js} +1 -1
- package/web/assets/{minus-CLTSMcUf.js → minus-DuN34HOQ.js} +2 -2
- package/web/assets/modal-B0sbJ1aj.js +1 -0
- package/web/assets/modal-BG9tDOui.js +5 -0
- package/web/assets/{money-cashier-receipt.svg-D3I5UkrO.js → money-cashier-receipt.svg-CZ_Q0Q4o.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-BEt_zoFT.js → money-currency-dollar-pay.svg-DX3XI8z3.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-BFgo8Syp.js → money-graph-arrow-increase.svg-yfLkQUyA.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-BPBRyqtM.js → money-graph-bar-chart-increase.svg-BMZJcFWk.js} +1 -1
- package/web/assets/multiselect-Bc92p6F4.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-DCIaflet.js → nature-ecology-leaf.svg-DxbzYJY4.js} +1 -1
- package/web/assets/{password-kxqyN9bC.js → password-DFZGcIGP.js} +4 -4
- package/web/assets/{phone-telephone.svg-_P3X_Fym.js → phone-telephone.svg-DRXuirGY.js} +1 -1
- package/web/assets/{plus-Cs39ICwL.js → plus-DxhL7qLp.js} +6 -6
- package/web/assets/process.store-C8_fnIq8.js +1 -0
- package/web/assets/{programming-bug.svg-BGbIcZnS.js → programming-bug.svg-DLJ1_rax.js} +1 -1
- package/web/assets/{programming-cloud.svg-8TyU38aV.js → programming-cloud.svg-D3IiMlPE.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-DBxTrFCn.js → programming-computer-database-server.svg-Cg6_ED_k.js} +1 -1
- package/web/assets/{programming-computer-database.svg-Bi3RBUmB.js → programming-computer-database.svg-B6UWnlR4.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-BicMHalL.js → programming-module-four-layout.svg-B77nd1oh.js} +1 -1
- package/web/assets/{programming-module-three.svg-D13tfKhT.js → programming-module-three.svg-_s2kek9L.js} +1 -1
- package/web/assets/{programming-module.svg-HJDv8jeZ.js → programming-module.svg-CstGeUDE.js} +1 -1
- package/web/assets/{programming-script-code.svg-oXFzvCKr.js → programming-script-code.svg-B-lq_RAX.js} +1 -1
- package/web/assets/project-launch.store-QC8bDuyn.js +1 -0
- package/web/assets/project.store-l1aYnXxi.js +1 -0
- package/web/assets/{python-ejRXAr81.js → python-C9hs9gvr.js} +1 -1
- package/web/assets/{radiobutton-BWBirQno.js → radiobutton-CQFYp-dZ.js} +2 -2
- package/web/assets/{razor-CbzUoARP.js → razor-BbhaCtvg.js} +1 -1
- package/web/assets/router-BDTUFmtt.js +1 -0
- package/web/assets/settings-scope-B8h36UCK.js +1 -0
- package/web/assets/settings.store-Dvjzyya-.js +1 -0
- package/web/assets/{shopping-cart.svg-DL2Mf0BX.js → shopping-cart.svg-C-WSRLiX.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-keqzudV3.js → shopping-gift-present.svg-Dh47_KD3.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-BZ0Ri9AV.js → shopping-shipping-box-parcel-package.svg-BTvEyPW5.js} +1 -1
- package/web/assets/src-4vjUWqdr.js +572 -0
- package/web/assets/src-BeueTtBP.js +1 -0
- package/web/assets/src-D0YRjz1F.css +1 -0
- package/web/assets/{tabpanel-Bdw_XASI.js → tabpanel-B4bmmOWW.js} +3 -3
- package/web/assets/{tag-new-circle.svg-7tUBDDe7.js → tag-new-circle.svg--CymwbQA.js} +1 -1
- package/web/assets/theme-DqQhDGPs.js +1 -0
- package/web/assets/{toggleswitch-BhJmSx1t.js → toggleswitch-j4QSxoFG.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-CfJb5_3k.js → travel-map-earth-globe.svg-DNOAckKS.js} +1 -1
- package/web/assets/trpc-CN8Zl82m.js +1 -0
- package/web/assets/{tsMode-D5Gulgwd.js → tsMode-D--LrAcs.js} +6 -6
- package/web/assets/{typescript-B73-3GtI.js → typescript-zukD_IUF.js} +1 -1
- package/web/assets/useAiChatDrawer-YShY7nZu.js +1 -0
- package/web/assets/{useCloudOrg-BZNmQ2Ek.js → useCloudOrg-Bd83ZcEV.js} +1 -1
- package/web/assets/useEnvVarAutocomplete-BcVa9mel.js +1 -0
- package/web/assets/useProjectCatalog-CnGHIrnh.js +1 -0
- package/web/assets/{useProjectCloudOrg-Bkja4sed.js → useProjectCloudOrg-DL8Wyd1i.js} +1 -1
- package/web/assets/useServiceUrlHost-DIEqEQRR.js +1 -0
- package/web/assets/{xml-Mkua9fdo.js → xml-BByACKzS.js} +1 -1
- package/web/assets/{yaml-BP9pkdmT.js → yaml-CqWwUUQq.js} +1 -1
- package/web/index.html +1 -1
- package/agent-manager-QLXVQ7OD.js +0 -10
- package/chunk-2EDVDRKV.js.map +0 -1
- package/chunk-HK5QNU6P.js.map +0 -1
- package/chunk-TTPL2M74.js.map +0 -1
- package/chunk-WLZQDWJT.js.map +0 -1
- package/settings-manager-E3L56VAY.js +0 -10
- package/src-XCI5NILM.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-86061Tlh.js +0 -13
- package/web/assets/AgentTerminalPage-DxGLu5uT.js +0 -1
- package/web/assets/AiChatPage-DmQKv6pr.js +0 -1
- package/web/assets/AppLayout-DtK_nr-e.js +0 -1
- package/web/assets/AuditPage-CX5VJGlF.js +0 -1
- package/web/assets/CloudAccountPage-B_sjXlfl.js +0 -1
- package/web/assets/CloudAccountPage-ocHdrVEm.js +0 -1
- package/web/assets/CloudMessagingPage-BTfGWio6.js +0 -2
- package/web/assets/DashboardPage-7sATlyhd.js +0 -164
- package/web/assets/DirectoryPickerDialog-BbYn-Yjo.css +0 -1
- package/web/assets/DirectoryPickerDialog-DAJGNiRV.js +0 -1
- package/web/assets/EnvironmentFormPage-DoKBTKCU.js +0 -1
- package/web/assets/EnvironmentListPage-C9wGFZWU.js +0 -1
- package/web/assets/KanbanBoardPage-CoiDga7h.js +0 -4
- package/web/assets/KanbanListPage-Dl-FpuPX.css +0 -1
- package/web/assets/KanbanListPage-xWYUu1P0.js +0 -1
- package/web/assets/LaunchProjectPage-BHLH3peH.css +0 -1
- package/web/assets/LaunchProjectPage-DVXgnUYk.js +0 -1
- package/web/assets/LaunchServicesPage-DM6keva3.js +0 -1
- package/web/assets/LogViewer-CMtuP1rB.js +0 -3
- package/web/assets/OrgKeyPrompt-BqVugrV1.js +0 -1
- package/web/assets/OrgKeyPrompt-C8UJPkdT.css +0 -1
- package/web/assets/ProcessDetailPage-DJacy1ZE.js +0 -1
- package/web/assets/RandomJobTestPage-BOsChnPH.js +0 -2
- package/web/assets/ScenarioEditorPage-8XSWtwA5.js +0 -14
- package/web/assets/SendToChatDialog-DqPVoUgN.js +0 -1
- package/web/assets/ServiceControlsBar-QwLQLGFP.js +0 -1
- package/web/assets/ServiceDetailPage-DUw-ZZyD.js +0 -2
- package/web/assets/ServiceFormPage-OYBr0pY4.js +0 -1
- package/web/assets/SettingsPage-BFoWbWhq.js +0 -2063
- package/web/assets/UnlockPage-DgLCLMkg.js +0 -1
- package/web/assets/VaultMigrationPage-C93bZgWb.js +0 -1
- package/web/assets/VersionBadge-2JJyjyFh.js +0 -1
- package/web/assets/WikiPage-DBinkJlt.js +0 -1
- package/web/assets/WikiView-DMyRUz16.js +0 -1
- package/web/assets/card-CRMlmWrt.js +0 -32
- package/web/assets/client-3Q_o9QCm.js +0 -24
- package/web/assets/cloud-chat.store-DIxQd2ew.js +0 -1
- package/web/assets/cloud-client-Idzdbhu6.js +0 -1
- package/web/assets/cloud-session-Cj_Q0hKS.js +0 -1
- package/web/assets/column-4DnT4nYp.js +0 -763
- package/web/assets/interface-content-folder.svg-BZAP22kT.js +0 -1
- package/web/assets/modal-BaVGcm8s.js +0 -1
- package/web/assets/modal-Cl434j6P.js +0 -5
- package/web/assets/multiselect-Bd1n3-4t.js +0 -251
- package/web/assets/process.store-m5afcW9w.js +0 -1
- package/web/assets/project-launch.store-Cgu622KX.js +0 -1
- package/web/assets/project.store-CM-kT9-z.js +0 -1
- package/web/assets/router-o5ycRaEE.js +0 -1
- package/web/assets/settings-scope-CSLK3J2k.js +0 -1
- package/web/assets/settings.store-DDQmm1ig.js +0 -1
- package/web/assets/src-C1fYy9Ht.js +0 -572
- package/web/assets/src-DU1mBjF-.css +0 -1
- package/web/assets/src-DnhPQBBB.js +0 -1
- package/web/assets/theme-COzp71lh.js +0 -1
- package/web/assets/trpc-Bn_6G8HK.js +0 -1
- package/web/assets/useAiChatDrawer-QOflawaX.js +0 -1
- package/web/assets/useEnvVarAutocomplete-DAxcV0jl.js +0 -1
- package/web/assets/useProjectCatalog-8u5wFtf-.js +0 -1
- package/web/assets/useServiceUrlHost-biHEzQVv.js +0 -1
- /package/{agent-manager-QLXVQ7OD.js.map → agent-manager-VFUO7WQG.js.map} +0 -0
- /package/{chat-ODBVFMKX.js.map → chat-GB2UJ5KB.js.map} +0 -0
- /package/{chunk-K7A3Q62R.js.map → chunk-KNAM5H2Z.js.map} +0 -0
- /package/{chunk-SG2ACPOE.js.map → chunk-X2PJIJU7.js.map} +0 -0
- /package/{companion-5DPH3HIO.js.map → companion-XBCHHK4Z.js.map} +0 -0
- /package/{desktop-launcher-J2BCSSGZ.js.map → desktop-launcher-SLNYXW22.js.map} +0 -0
- /package/{settings-manager-E3L56VAY.js.map → settings-manager-YGIIRWVY.js.map} +0 -0
- /package/web/assets/{useProjectCatalog-BCeAlQjB.css → OrgLogo-BCeAlQjB.css} +0 -0
- /package/web/assets/{abap-cDlgWO6H.js → abap-B8g_2xYy.js} +0 -0
- /package/web/assets/{apex-DxzSGotK.js → apex-Bm8w4T5A.js} +0 -0
- /package/web/assets/{azcli-CUNfZLtQ.js → azcli-BqdUW6F8.js} +0 -0
- /package/web/assets/{bat-C-oKGifY.js → bat-Bngf0lQU.js} +0 -0
- /package/web/assets/{bicep-C4xTl9QV.js → bicep-DzO554JS.js} +0 -0
- /package/web/assets/{browser-CE5P0iHW.js → browser-BJX5ZrVN.js} +0 -0
- /package/web/assets/{cameligo-COpO1ZvP.js → cameligo-Bcy3ohdb.js} +0 -0
- /package/web/assets/{clojure-D8gp5eAN.js → clojure-CZbiqkDV.js} +0 -0
- /package/web/assets/{coffee-De9HMN-q.js → coffee-CDuhyV-7.js} +0 -0
- /package/web/assets/{cpp-C4pJyeKy.js → cpp-BklV8f4x.js} +0 -0
- /package/web/assets/{csharp-B4wLqqiU.js → csharp-BelR_XiC.js} +0 -0
- /package/web/assets/{csp-Do0Gg4qE.js → csp-DUjeBS2K.js} +0 -0
- /package/web/assets/{css-BLq1nXK0.js → css-CvbYbEko.js} +0 -0
- /package/web/assets/{cypher-CDQzi0TV.js → cypher-Dwrbk-SP.js} +0 -0
- /package/web/assets/{dart-bTPYn7bY.js → dart-BW1E5h9O.js} +0 -0
- /package/web/assets/{dockerfile-yM7ZnQpo.js → dockerfile-B41ilpF9.js} +0 -0
- /package/web/assets/{ecl-BgTpp_c4.js → ecl-BZE6Vxna.js} +0 -0
- /package/web/assets/{elixir-DO7wJ1ib.js → elixir-CtYg0bLh.js} +0 -0
- /package/web/assets/{flow9-B2Ko_py3.js → flow9-Sgvy48_I.js} +0 -0
- /package/web/assets/{fsharp-DNdx3wKW.js → fsharp-BzAfXfKg.js} +0 -0
- /package/web/assets/{go-D7LajbkE.js → go-D7oonABu.js} +0 -0
- /package/web/assets/{graphql-BCQSwUPo.js → graphql-BEN-qkl0.js} +0 -0
- /package/web/assets/{hcl-DR3uNUXT.js → hcl-CE0OhwCq.js} +0 -0
- /package/web/assets/{ini-zkzQPitL.js → ini-CCLtcvjA.js} +0 -0
- /package/web/assets/{java-YFwuCa4S.js → java-Bao8w_gp.js} +0 -0
- /package/web/assets/{julia-WWwv4jLR.js → julia-Dr0hFYrl.js} +0 -0
- /package/web/assets/{kotlin-FwlJkapy.js → kotlin-Cbfu8lcM.js} +0 -0
- /package/web/assets/{less-CyhHW1nH.js → less-BU4gEpXr.js} +0 -0
- /package/web/assets/{lexon-BScN_v1c.js → lexon-GpBGGdTS.js} +0 -0
- /package/web/assets/{lua-eWb9GpZJ.js → lua-DIPKk37y.js} +0 -0
- /package/web/assets/{m3-C4NDU793.js → m3-CSOypKGf.js} +0 -0
- /package/web/assets/{markdown-DWWpXAtL.js → markdown-VDqAgkyM.js} +0 -0
- /package/web/assets/{mips-BpJKGw00.js → mips-BJWI6dX7.js} +0 -0
- /package/web/assets/{msdax-BiuvyZwP.js → msdax-BLpuE5Dc.js} +0 -0
- /package/web/assets/{mysql-DJW9Aa9q.js → mysql-ZsxiEUoY.js} +0 -0
- /package/web/assets/{objective-c-YouNnWOW.js → objective-c-DcQa1iPc.js} +0 -0
- /package/web/assets/{pascal-jQsRnBre.js → pascal-u-hmXdyn.js} +0 -0
- /package/web/assets/{pascaligo-DZI84_dt.js → pascaligo-DqbP-1C6.js} +0 -0
- /package/web/assets/{perl-D9TKt-s6.js → perl-CUeQpRkH.js} +0 -0
- /package/web/assets/{pgsql-DXgI6ehC.js → pgsql-CQ7FhAFN.js} +0 -0
- /package/web/assets/{php-Cgqd4wfW.js → php-BEf_fu3E.js} +0 -0
- /package/web/assets/{pla-DRDkvVUU.js → pla-CXNNbT0w.js} +0 -0
- /package/web/assets/{postiats-BOLeCCau.js → postiats-CIXLZwPb.js} +0 -0
- /package/web/assets/{powerquery-DCDtPNBU.js → powerquery-DnGPASFA.js} +0 -0
- /package/web/assets/{powershell-WnZ4e5ia.js → powershell-1Y1kqIZS.js} +0 -0
- /package/web/assets/{protobuf-C9Dg-C9o.js → protobuf-Cfo9haoG.js} +0 -0
- /package/web/assets/{pug-Dr8RhWun.js → pug-BujEZqmy.js} +0 -0
- /package/web/assets/{qsharp-DukGWvWZ.js → qsharp-BL9AqNGD.js} +0 -0
- /package/web/assets/{r-BC41pTgC.js → r-D0dhpGOM.js} +0 -0
- /package/web/assets/{redis-D-gYIUku.js → redis-BMLwD7W9.js} +0 -0
- /package/web/assets/{redshift-r0XbF8XS.js → redshift-CkHh73og.js} +0 -0
- /package/web/assets/{restructuredtext-DsJDS7Eu.js → restructuredtext-DZ-LF65W.js} +0 -0
- /package/web/assets/{ruby-JPrm3ODz.js → ruby-UzPHTzc9.js} +0 -0
- /package/web/assets/{rust-C8IjEXni.js → rust-ja9NGnXZ.js} +0 -0
- /package/web/assets/{sb-D8vNiFl9.js → sb-BNdOJbMY.js} +0 -0
- /package/web/assets/{scala-DThahuqf.js → scala-LlhkyN6l.js} +0 -0
- /package/web/assets/{scheme-CvEQUYYf.js → scheme-BAj99YIn.js} +0 -0
- /package/web/assets/{scss-C6obpl8K.js → scss-chS-xxB3.js} +0 -0
- /package/web/assets/{shell-BnVmd31t.js → shell-CcH7eYIc.js} +0 -0
- /package/web/assets/{solidity-Bo6zEybc.js → solidity-cVvnqX-K.js} +0 -0
- /package/web/assets/{sophia-DuB3Px8n.js → sophia-BBT-EdFw.js} +0 -0
- /package/web/assets/{sparql-CW9HqMW2.js → sparql-DGEqOrB6.js} +0 -0
- /package/web/assets/{sql-CPCPCQON.js → sql-CcTErTxM.js} +0 -0
- /package/web/assets/{st-AxC3n-1-.js → st-Bjw-B4mN.js} +0 -0
- /package/web/assets/{swift-CgZOS_MZ.js → swift-Bid-7bBd.js} +0 -0
- /package/web/assets/{systemverilog-DYR-yx39.js → systemverilog-CXju7Nd-.js} +0 -0
- /package/web/assets/{tcl-4hAvWv0d.js → tcl-D-Dw7JFz.js} +0 -0
- /package/web/assets/{twig-Cf_07aFW.js → twig-BIPbzEWT.js} +0 -0
- /package/web/assets/{typespec-2tXj8s11.js → typespec-UJSutGCV.js} +0 -0
- /package/web/assets/{uuid--pMuF47W.js → uuid-Cro0aJm3.js} +0 -0
- /package/web/assets/{vb-DLpM4f4s.js → vb-oyG_LJw0.js} +0 -0
- /package/web/assets/{wgsl-BcECae_z.js → wgsl-DXZ6ljB6.js} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{$t as e,Aa as t,Ai as n,Dn as r,Dt as i,Ea as a,En as o,Fi as s,Gn as c,Ii as l,In as u,Ja as d,Jn as f,Jt as p,Ki as m,La as h,Li as g,Ln as _,Mi as v,Mn as y,Nn as b,Pa as x,Qn as S,Qt as C,Ri as w,Ti as T,Tt as E,Ui as D,Wi as O,Xn as k,Yn as A,Zt as ee,at as j,bn as M,br as N,cr as P,da as F,dr as I,dt as L,gr as te,gt as R,ha as z,hn as ne,hr as B,it as re,ja as ie,ki as V,la as ae,ln as H,lt as U,mt as W,na as oe,ot as se,p as ce,pa as G,ro as K,rt as le,u as q,ur as ue,vt as de,xt as J,yn as fe,z as pe,zi as Y}from"./index-SrQFBx_K.js";import"./cloud-session-CIGp7324.js";import"./src-DnhPQBBB.js";import"./useServiceUrlHost-biHEzQVv.js";import"./ProcessControls-DkaiMo0H.js";import{t as me}from"./ServiceControlsBar-QwLQLGFP.js";import{t as he}from"./uuid--pMuF47W.js";import{n as ge,t as _e}from"./column-4DnT4nYp.js";import{n as X}from"./plus-Cs39ICwL.js";import{t as ve}from"./checkbox-BiDvmfqK.js";import"./useProjectCloudOrg-Bkja4sed.js";import{t as Z}from"./toggleswitch-BhJmSx1t.js";import{i as ye,n as be,o as xe,r as Q,t as $}from"./tabpanel-Bdw_XASI.js";import{i as Se,n as Ce,r as we,t as Te}from"./useEnvVarAutocomplete-DAxcV0jl.js";import{t as Ee}from"./autocomplete-qVwP27uM.js";import"./SendToChatDialog-DqPVoUgN.js";import{n as De,t as Oe}from"./ProcessMetrics-D2lP9cEF.js";import{t as ke}from"./LogViewer-CMtuP1rB.js";import{t as Ae}from"./divider-D2zmU0b9.js";import{t as je}from"./settings.store-DDQmm1ig.js";import{t as Me}from"./WikiView-DMyRUz16.js";var Ne={key:0,class:`log-details`},Pe={class:`log-details__section`},Fe={class:`log-details__label`},Ie={class:`log-details__value log-details__value--box`},Le={class:`log-details__section`},Re={class:`log-details__label`},ze={class:`log-details__value log-details__value--box log-details__value--code`},Be={class:`log-details__section`},Ve={class:`log-details__label`},He={class:`log-details__value log-details__value--box`},Ue={class:`log-details__process`},We={class:`log-details__section`},Ge={class:`log-details__label`},Ke={class:`log-details__value log-details__value--box`},qe={key:0,class:`log-details__section`},Je={class:`log-details__label`},Ye={class:`log-details__value log-details__value--box log-details__value--code`,"data-testid":`log-details-cwd`},Xe={class:`log-details__section`},Ze={class:`log-details__label`},Qe={class:`log-details__value log-details__value--box`},$e={key:1,class:`log-details__section`},et={class:`log-details__label`},tt={class:`log-details__value log-details__value--box`},nt={key:2,class:`log-details__section`},rt={class:`log-details__label`},it={class:`log-details__value log-details__value--box log-details__value--code`},at=f(m({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(e,{emit:n}){let r=e,{t:i}=N(),a=ce(),o=n,c=s(()=>{if(!r.log)return``;let e=new Date(r.log.timestamp);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)} ${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}:${String(e.getSeconds()).padStart(2,`0`)}`}),u=s(()=>r.log?r.log.level.charAt(0).toUpperCase()+r.log.level.slice(1):``),d=s(()=>!r.log||r.log.pid==null?i(`logDetails.notAvailable`):String(r.log.pid)),f=s(()=>r.log?a.getByService(r.log.processId)[0]?.cwd??null:null);function p(){r.log&&o(`view-process`,r.log.processId)}function m(){o(`update:visible`,!1)}return(n,r)=>(G(),g(K(A),{visible:e.visible,position:`right`,header:K(i)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":m},{default:t(()=>[e.log?(G(),Y(`div`,Ne,[l(`div`,Pe,[l(`div`,Fe,h(K(i)(`logDetails.type`)),1),l(`div`,Ie,h(u.value),1)]),l(`div`,Le,[l(`div`,Re,h(K(i)(`logDetails.rawMessage`)),1),l(`div`,ze,h(e.log.raw),1)]),l(`div`,Be,[l(`div`,Ve,h(K(i)(`logDetails.serviceId`)),1),l(`div`,He,[l(`div`,Ue,[l(`span`,null,h(e.log.processId),1),O(K(S),{label:K(i)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:p},null,8,[`label`])])])]),l(`div`,We,[l(`div`,Ge,h(K(i)(`logDetails.pid`)),1),l(`div`,Ke,h(d.value),1)]),f.value?(G(),Y(`div`,qe,[l(`div`,Je,h(K(i)(`logDetails.cwd`)),1),l(`div`,Ye,h(f.value),1)])):w(``,!0),l(`div`,Xe,[l(`div`,Ze,h(K(i)(`logDetails.timestamp`)),1),l(`div`,Qe,h(c.value),1)]),e.log.stream?(G(),Y(`div`,$e,[l(`div`,et,h(K(i)(`logDetails.stream`)),1),l(`div`,tt,h(e.log.stream),1)])):w(``,!0),e.log.metadata&&Object.keys(e.log.metadata).length>0?(G(),Y(`div`,nt,[l(`div`,rt,h(K(i)(`logDetails.metadata`)),1),l(`div`,it,h(JSON.stringify(e.log.metadata,null,2)),1)])):w(``,!0)])):w(``,!0)]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-4e3f7abe`]]),ot=500,st=5,ct=de;function lt(e){return e+Math.random()*e*.3}function ut(e,t){let n=d([]),r=d(!1),i=null,o=0,s=null,l=u(()=>{o=0,r.value||T()}),f=[],p=null,m=d(0),h=d(0),g=0,v=0,y=null;function b(){y||=setInterval(()=>{m.value=g,h.value=v,g=0,v=0},1e3)}function x(){y&&=(clearInterval(y),null),m.value=0,h.value=0,g=0,v=0}function S(){if(p=null,f.length===0)return;let e=f;f=[],v+=e.length;let t=[...n.value,...e];t.length>ot&&(t=t.slice(t.length-ot)),n.value=t}function C(){!e.value||!t.value||(r.value=!0,i=_.process.onLog.subscribe({agentId:e.value,processId:t.value},{onData(e){let t=e;if(o=0,c(`connected`),t.some(e=>e.__clearLogBuffer)){n.value=[],f=[];return}g+=t.length,f.push(...t),p===null&&(p=requestAnimationFrame(S))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),r.value=!1,i=null,w()}}))}function w(){if(o>=st){console.warn(`[useLogStream] Max retries (${st}) reached`),c(`disconnected`);return}c(`reconnecting`);let e=lt(ct*2**o);o++,s=setTimeout(()=>{s=null,T()},e)}async function T(){if(!r.value&&!(!e.value||!t.value)){o=0;try{let r=await _.process.logs.query({agentId:e.value,processId:t.value});r.length>ot&&(r=r.slice(r.length-ot)),n.value=r,c(`connected`)}catch{}C()}}function E(){s&&=(clearTimeout(s),null),p!==null&&(cancelAnimationFrame(p),p=null),f=[],x(),i&&=(i.unsubscribe(),null),r.value=!1,o=0,n.value=[]}return a([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&(r.value&&E(),T())}),F(()=>{l(),E()}),{logs:n,isStreaming:r,start:T,stop:E,receivedPerSec:m,flushedPerSec:h,startStats:b,stopStats:x}}var dt={class:`service-terminal__toolbar`},ft={class:`service-terminal__toolbar-left`},pt={key:0,class:`pid-option`},mt={key:1,class:`pid-option`},ht={key:0,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,style:{"margin-right":`0.5rem`}},gt={key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,style:{"margin-right":`0.5rem`}},_t={class:`pid-option`},vt={key:0,class:`pi pi-list`,style:{"margin-right":`0.5rem`}},yt=[`title`],bt=[`title`],xt={class:`service-terminal__toolbar-right`},St={class:`service-terminal__content`,"data-testid":`service-terminal-content`},Ct={key:1,class:`service-terminal__shortcuts`},wt={class:`service-terminal__command-input`},Tt={class:`service-terminal__bottom`},Et=`runeya_command_history_`,Dt=50,Ot=f(m({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(e){let{t:n}=N(),r=e,i=s(()=>r.processes.find(e=>e.state===`running`||e.state===`starting`)??r.processes[0]??null),c=s(()=>i.value?.agentId??``),u=s(()=>i.value?.id??``),f=te(),{logs:p,isStreaming:m,start:y,stop:b,receivedPerSec:C,flushedPerSec:T,startStats:E,stopStats:D}=ut(c,u),k=d(!1);a(k,e=>{e?E():D()});function A(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),k.value=!k.value)}let ee=s(()=>{let e=new Map;return p.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())}),j=s(()=>$.value===`all`?p.value:p.value.filter(e=>e.pid===$.value)),M=s(()=>ee.value.filter(e=>e.isActive).length),P=s(()=>{let e=[{label:n(`serviceTerminal.allProcesses`),value:`all`,badge:M.value>0?`${M.value} ${n(`serviceTerminal.active`)}`:void 0,isActive:void 0}];return ee.value.forEach(({pid:t,logCount:n,isActive:r})=>{e.push({label:`PID: ${t}`,value:t,badge:`${n} logs`,isActive:r})}),e});s(()=>r.processes.filter(e=>e.state===`running`).length);async function I(){if(i.value)try{await _.process.clearLogBuffer.mutate({agentId:i.value.agentId,processId:i.value.id}),p.value=[]}catch(e){f.add({severity:`error`,summary:n(`serviceTerminal.error`),detail:e.message??n(`serviceTerminal.failedToClearLogs`),life:5e3})}}let L=s(()=>r.service.shortcuts??[]),R=d(new Set);async function ne(e){let t=q(r.service,i.value),a=i.value?.id??r.service.id;if(!t){f.add({severity:`warn`,summary:n(`serviceTerminal.noAgent`),detail:n(`serviceTerminal.noAgentDesc`),life:3e3});return}if(R.value.has(e.id)){try{await _.process.cancelShortcut.mutate({agentId:t,processId:a,shortcutId:e.id})}catch{}return}R.value=new Set([...R.value,e.id]);try{await _.process.executeShortcut.mutate({agentId:t,processId:a,shortcut:e})}catch(e){f.add({severity:`error`,summary:n(`serviceTerminal.shortcutFailed`),detail:e.message??n(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(R.value);t.delete(e.id),R.value=t}}let B=d(``),re=d(new Set),ie=s(()=>re.value.size>0),V=d(null),U=d([]),W=d(-1),se=`ls,ls -la,ls -lh,pwd,echo,echo $PWD,cat,cat package.json,grep,find,find . -name,ps,ps aux,top,htop,df -h,du -sh,tail,tail -f,tail -n 100,head,head -n 20,wc -l,curl,wget,git status,git log,git diff,git branch,npm run,npm install,npm test,npm start,yarn,yarn install,yarn test,yarn build,docker ps,docker logs,docker exec,env,printenv,whoami,hostname,date,uptime`.split(`,`),ce=d([]);function le(e){let t=e.query.toLowerCase().trim();if(!t||!B.value.trim()){ce.value=[];return}let n=[...U.value.slice().reverse(),...se],r=new Set;ce.value=n.filter(e=>r.has(e)?!1:(r.add(e),e.toLowerCase().includes(t))).slice(0,10)}function ue(){try{let e=localStorage.getItem(Et+r.service.id);e&&(U.value=JSON.parse(e))}catch{U.value=[]}}function de(){try{localStorage.setItem(Et+r.service.id,JSON.stringify(U.value))}catch{}}function J(e){U.value[U.value.length-1]!==e&&(U.value=[...U.value,e],U.value.length>Dt&&(U.value=U.value.slice(-Dt)),de())}async function fe(){let e=q(r.service,i.value),t=i.value?.id??r.service.id;if(e)try{await _.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function pe(){if(!B.value.trim())return;let e=q(r.service,i.value),t=i.value?.id??r.service.id;if(!e){f.add({severity:`warn`,summary:n(`serviceTerminal.noAgent`),detail:n(`serviceTerminal.noAgentDesc`),life:3e3});return}let a=he(),o=B.value.trim();J(o),B.value=``,ce.value=[],W.value=-1,re.value=new Set([...re.value,a]);try{await _.process.executeAdHocCommand.mutate({agentId:e,processId:t,command:o,commandId:a})}catch(e){f.add({severity:`error`,summary:n(`serviceTerminal.commandFailed`),detail:e.message??n(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(re.value);e.delete(a),re.value=e,oe(()=>{document.querySelector(`.service-terminal__input`)?.focus()})}}function ge(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),pe();return}if(e.key===`ArrowUp`){if(e.preventDefault(),U.value.length===0)return;W.value===-1?W.value=U.value.length-1:W.value>0&&W.value--,B.value=U.value[W.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),W.value===-1)return;W.value<U.value.length-1?(W.value++,B.value=U.value[W.value]||``):(W.value=-1,B.value=``)}}function _e(){if(p.value.length===0)return;let e=p.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),ve=0,Z=null,ye=null;a(i,e=>{if(!(e&&(e.state===`running`||e.state===`starting`))){Z&&=(clearInterval(Z),null),ye=null,X.value=e?.uptime??0;return}let t=e.uptime??0;e.id!==ye&&(Z&&=(clearInterval(Z),null),ye=e.id,ve=e.startedAt?new Date(e.startedAt).getTime():Date.now()-t,X.value=Date.now()-ve,Z=setInterval(()=>{X.value=Date.now()-ve},1e3))},{immediate:!0});let be=d(!0),xe=d(null),Q=d(!1),$=d(`all`),Se=d(!1);function Ce(){Se.value=!Se.value}ae(()=>{ue(),i.value&&y(),window.addEventListener(`keydown`,A)}),F(()=>{b(),window.removeEventListener(`keydown`,A),Z&&clearInterval(Z)});function we(e){let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}:${r.toString().padStart(2,`0`)}`}function Te(e){xe.value=e,Q.value=!0}function De(e){Q.value=!1,f.add({severity:`info`,summary:`Process`,detail:`Process ID: ${e}`,life:3e3})}return(a,s)=>(G(),Y(`div`,{class:x([`service-terminal`,{"service-terminal--fullscreen":Se.value}]),"data-testid":`service-terminal`},[Se.value?(G(),g(me,{key:0,service:e.service,processes:e.processes},null,8,[`service`,`processes`])):w(``,!0),l(`div`,dt,[l(`div`,ft,[O(K(S),{label:K(n)(`serviceTerminal.logs`),severity:be.value?`primary`:`secondary`,text:``,size:`small`,onClick:s[0]||=e=>be.value=!0},null,8,[`label`,`severity`]),O(K(H),{modelValue:$.value,"onUpdate:modelValue":s[1]||=e=>$.value=e,options:P.value,"option-label":`label`,"option-value":`value`,class:`service-terminal__pid-selector`},{value:t(e=>[e.value===`all`?(G(),Y(`div`,pt,[s[5]||=l(`i`,{class:`pi pi-list`,style:{"margin-right":`0.5rem`}},null,-1),l(`span`,null,h(K(n)(`serviceTerminal.allProcesses`)),1),M.value>0?(G(),g(K(o),{key:0,value:`${M.value} ${K(n)(`serviceTerminal.active`)}`,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):w(``,!0)])):(G(),Y(`div`,mt,[P.value.find(t=>t.value===e.value)?.isActive?(G(),Y(`i`,ht)):(G(),Y(`i`,gt)),l(`span`,null,`PID: `+h(e.value),1)]))]),option:t(e=>[l(`div`,_t,[e.option.value===`all`?(G(),Y(`i`,vt)):e.option.isActive?(G(),Y(`i`,{key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,title:K(n)(`serviceTerminal.running`)},null,8,yt)):(G(),Y(`i`,{key:2,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,title:K(n)(`serviceTerminal.stopped`)},null,8,bt)),l(`span`,null,h(e.option.label),1),e.option.badge?(G(),g(K(o),{key:3,value:e.option.badge,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):w(``,!0)])]),_:1},8,[`modelValue`,`options`])]),l(`div`,xt,[O(K(S),{icon:Se.value?`pi pi-window-minimize`:`pi pi-window-maximize`,text:``,rounded:``,size:`small`,title:Se.value?K(n)(`serviceTerminal.exitFullscreen`):K(n)(`serviceTerminal.fullscreen`),onClick:Ce},null,8,[`icon`,`title`]),O(K(S),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,title:K(n)(`serviceTerminal.downloadLogs`),disabled:K(p).length===0,onClick:_e},null,8,[`title`,`disabled`]),O(K(S),{icon:`pi pi-trash`,text:``,rounded:``,size:`small`,title:K(n)(`serviceTerminal.clearLogs`),disabled:K(p).length===0,onClick:I},null,8,[`title`,`disabled`])])]),l(`div`,St,[O(ke,{logs:j.value,loading:!1,"received-per-sec":K(C),"flushed-per-sec":K(T),"show-stats":k.value,"service-label":r.service.label||r.service.name,onLogClick:Te},null,8,[`logs`,`received-per-sec`,`flushed-per-sec`,`show-stats`,`service-label`])]),L.value.length>0?(G(),Y(`div`,Ct,[(G(!0),Y(v,null,z(L.value,e=>(G(),g(K(S),{key:e.id,label:e.label||e.command,"data-shortcut-id":e.id,class:`shortcut-badge`,icon:R.value.has(e.id)?`pi pi-stop`:`pi pi-play`,size:`small`,outlined:!R.value.has(e.id),severity:R.value.has(e.id)?`danger`:void 0,onClick:t=>ne(e)},null,8,[`label`,`data-shortcut-id`,`icon`,`outlined`,`severity`,`onClick`]))),128))])):w(``,!0),l(`div`,wt,[s[6]||=l(`span`,{class:`service-terminal__prompt`,"data-testid":`terminal-prompt`},`>`,-1),O(K(Ee),{ref_key:`adHocCommandInput`,ref:V,modelValue:B.value,"onUpdate:modelValue":s[2]||=e=>B.value=e,suggestions:ce.value,class:`service-terminal__autocomplete`,"input-class":`service-terminal__input`,placeholder:K(n)(`serviceTerminal.enterCommand`),"aria-label":K(n)(`serviceTerminal.enterCommand`),disabled:!K(q)(r.service,i.value),"data-testid":`terminal-command-input`,onComplete:le,onKeydown:ge},null,8,[`modelValue`,`suggestions`,`placeholder`,`aria-label`,`disabled`]),O(K(S),{icon:ie.value?`pi pi-stop`:`pi pi-play`,severity:ie.value?`danger`:void 0,size:`small`,"data-testid":`terminal-run-btn`,disabled:!K(q)(r.service,i.value)||!B.value.trim()&&!ie.value,onClick:s[3]||=e=>ie.value?fe():pe()},null,8,[`icon`,`severity`,`disabled`])]),l(`div`,Tt,[i.value?(G(),g(K(o),{key:0,icon:`pi pi-server`,value:i.value.agentId.slice(0,8),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):w(``,!0),e.service.cwd?(G(),g(K(o),{key:1,icon:`pi pi-folder`,value:e.service.cwd,severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):w(``,!0),i.value&&(i.value.state===`running`||i.value.state===`starting`)?(G(),g(K(o),{key:2,icon:`pi pi-clock`,value:we(X.value/1e3),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):w(``,!0)]),O(at,{visible:Q.value,"onUpdate:visible":s[4]||=e=>Q.value=e,log:xe.value,onViewProcess:De},null,8,[`visible`,`log`])],2))}}),[[`__scopeId`,`data-v-ce19c81b`]]),kt=5,At=de;function jt(e){return e+Math.random()*e*.3}function Mt(e,t){let n=d(null),r=d(!1),i=d(!1),o=null,s=0,l=null;async function u(){if(!r.value){i.value=!0;try{n.value=await _.process.metrics.query({agentId:e.value,processId:t.value})}catch(e){console.error(`Failed to fetch initial metrics:`,C(e))}finally{i.value=!1}f()}}function f(){r.value=!0,o=_.process.onMetrics.subscribe({agentId:e.value,processId:t.value},{onData(e){s=0,c(`connected`),n.value=e},onError(e){console.error(`Metrics stream error:`,e),r.value=!1,o=null,p()}})}function p(){if(s>=kt){console.warn(`Metrics stream: max retries (${kt}) reached, giving up`),c(`disconnected`);return}c(`reconnecting`);let e=jt(At*2**s);s++,l=setTimeout(()=>{l=null,f()},e)}function m(){l&&=(clearTimeout(l),null),o&&=(o.unsubscribe(),null),r.value=!1,s=0}return a([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&r.value&&(m(),u())}),F(()=>{m()}),{metrics:n,isStreaming:r,isLoading:i,start:u,stop:m}}var Nt={class:`service-metrics`,"data-testid":`service-metrics`},Pt={key:1,class:`service-metrics__skeleton`},Ft={class:`metric-skeleton`},It={class:`metric-skeleton`},Lt={key:2,class:`service-metrics__no-data`},Rt={key:1,class:`service-metrics__no-process`},zt=f(m({__name:`ServiceMetrics`,props:{service:{},processes:{}},setup(e){let t=e,n=s(()=>t.processes.find(e=>e.state===`running`||e.state===`starting`)??t.processes[0]??null),r=s(()=>n.value?.agentId??``),i=s(()=>n.value?.id??``),{t:a}=N(),{metrics:o,isLoading:c,start:u,stop:d}=Mt(r,i);return ae(()=>{n.value&&u()}),F(()=>{d()}),(e,t)=>(G(),Y(`div`,Nt,[n.value?(G(),Y(v,{key:0},[K(o)?(G(),g(Oe,{key:0,cpu:K(o).cpu,memory:K(o).memory},null,8,[`cpu`,`memory`])):K(c)?(G(),Y(`div`,Pt,[l(`div`,Ft,[O(K(De),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),O(K(De),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),O(K(De),{width:`100%`,height:`6px`,"border-radius":`4px`})]),l(`div`,It,[O(K(De),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),O(K(De),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),O(K(De),{width:`6rem`,height:`0.65rem`})])])):(G(),Y(`div`,Lt,h(K(a)(`serviceMetrics.noData`)),1))],64)):(G(),Y(`div`,Rt,[t[0]||=l(`i`,{class:`pi pi-info-circle`},null,-1),l(`span`,null,h(K(a)(`serviceMetrics.notRunning`)),1)]))]))}}),[[`__scopeId`,`data-v-94f5993b`]]),Bt=`runeya:debug`;function Vt(){if(typeof window>`u`)return null;let e=new URLSearchParams(window.location.search).get(`debug`);return e===`1`||e===`true`?!0:e===`0`||e===`false`?!1:null}var Ht=Vt();if(Ht!==null)try{localStorage.setItem(Bt,String(Ht))}catch{}function Ut(){try{return localStorage.getItem(Bt)===`true`}catch{return!1}}var Wt=d(Ut());function Gt(){function e(){Wt.value=!Wt.value;try{localStorage.setItem(Bt,String(Wt.value))}catch{}}return{isDebug:Wt,toggle:e}}var Kt={class:`config-general`},qt={class:`config-card`},Jt={class:`config-card__header`},Yt={class:`config-card`},Xt={class:`config-card__header`},Zt={class:`config-card__hint`},Qt={class:`config-card`},$t={class:`config-card`},en={class:`config-card__header`},tn={class:`config-card__hint`},nn={class:`config-card`},rn={class:`config-card__header`},an={class:`config-card__hint`},on={class:`config-card`},sn={class:`config-card__header`},cn={class:`config-card__hint`},ln={class:`config-card`},un={class:`config-card__header`},dn={class:`config-card__hint`},fn={class:`config-card`},pn={class:`config-card__header`},mn={class:`config-card__hint`},hn={class:`config-card`},gn={class:`config-card__header`},_n={class:`config-card__hint`},vn={class:`config-card__hint`},yn={class:`config-card`},bn={class:`config-card__header`},xn={class:`config-card__hint`},Sn={class:`config-meta`},Cn={class:`config-card config-card--inline`},wn={class:`config-card__header`},Tn={class:`config-card config-card--inline`},En={class:`config-card__header`},Dn=150,On=f(m({__name:`ServiceConfigGeneral`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:i}=N(),o=W(),c=ee(),u=d([]);function f(e){let t=e.query.trim().toLowerCase(),n=new Set(w.value.groups);u.value=x.value.filter(e=>!n.has(e)&&(!t||e.toLowerCase().includes(t)))}function p(e,t){let n=t.trim();if(n){if(e===`ports`){let e=Number(n);if(!Number.isInteger(e)||e<1||e>65535||w.value.ports.includes(String(e)))return;w.value.ports=[...w.value.ports,String(e)]}else{if(w.value.groups.includes(n))return;w.value.groups=[...w.value.groups,n]}P()}}function m(e){let t=e.target;p(`groups`,t.value),t.value=``,u.value=[]}function g(e,t){let n=e.target;!n||typeof n.value!=`string`||!n.value.trim()||setTimeout(()=>{p(t,n.value),n.value=``},Dn)}let _=e,y=t,b=s(()=>c.projects.find(e=>e.serviceIds.includes(_.service.id)&&(e.orgId??null)===(_.service.orgId??null))??null),x=s(()=>{let e=b.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 C(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}let w=d({name:_.service.name,cwd:_.service.cwd??``,ports:(_.service.ports??[]).map(String),groups:[..._.service.groups??[]],description:_.service.description??``,docsPath:_.service.docsPath??``,url:_.service.url??``,openapiUrl:_.service.openapiUrl??``,gitRemote:_.service.git?.remote??``,gitHome:_.service.git?.home??``,autoRestart:_.service.autoRestart,clearLogsOnStart:_.service.clearLogsOnStart??!1}),T=d(C(_.service.meta));a(()=>_.service,e=>{w.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},T.value=C(e.meta)});function E(){T.value=[...T.value,{key:``,value:``}]}function k(e){T.value=T.value.filter((t,n)=>n!==e)}function A(e,t,n){T.value=T.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function j(){let e={};for(let{key:t,value:n}of T.value){let r=t.trim();r&&(e[r]=n)}return{name:w.value.name,cwd:w.value.cwd||null,ports:w.value.ports.map(Number).filter(e=>e>0&&e<=65535),groups:w.value.groups,description:w.value.description,docsPath:w.value.docsPath??``,url:w.value.url,openapiUrl:w.value.openapiUrl,git:w.value.gitRemote||w.value.gitHome?{remote:w.value.gitRemote||void 0,home:w.value.gitHome||void 0}:null,autoRestart:w.value.autoRestart,clearLogsOnStart:w.value.clearLogsOnStart,meta:Object.keys(e).length>0?e:null}}let M=null;function P(){M&&clearTimeout(M),M=setTimeout(()=>{y(`save`,j()),M=null},150)}return(e,t)=>(G(),Y(`div`,Kt,[l(`div`,qt,[l(`div`,Jt,[t[14]||=l(`i`,{class:`pi pi-tag`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.name`)),1)]),O(K(r),{modelValue:w.value.name,"onUpdate:modelValue":t[0]||=e=>w.value.name=e,class:`config-card__input`,onBlur:P,onKeydown:V(n(P,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),l(`div`,Yt,[l(`div`,Xt,[t[15]||=l(`i`,{class:`pi pi-folder`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.workingDirectory`)),1)]),O(K(r),{modelValue:w.value.cwd,"onUpdate:modelValue":t[1]||=e=>w.value.cwd=e,class:`config-card__input`,placeholder:`.`,onBlur:P,onKeydown:V(n(P,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),l(`small`,Zt,h(K(i)(`serviceConfigGeneral.cwdHint`)),1)]),l(`div`,Qt,[t[16]||=l(`div`,{class:`config-card__header`},[l(`i`,{class:`pi pi-file-edit`}),l(`span`,null,`Dossier de documentation (wiki)`)],-1),O(K(r),{modelValue:w.value.docsPath,"onUpdate:modelValue":t[2]||=e=>w.value.docsPath=e,class:`config-card__input`,placeholder:`(défaut : même que cwd)`,onBlur:P,onKeydown:V(n(P,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[17]||=l(`small`,{class:`config-card__hint`},[D(` Chemin relatif au cwd du service (ex. `),l(`code`,null,`docs`),D(`) ou absolu. Si vide, utilise le cwd. `)],-1)]),l(`div`,$t,[l(`div`,en,[t[18]||=l(`i`,{class:`pi pi-globe`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.ports`)),1)]),O(K(Ee),{modelValue:w.value.ports,"onUpdate:modelValue":t[3]||=e=>w.value.ports=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:K(i)(`serviceConfigGeneral.portsPlaceholder`),onChange:P,onBlur:t[4]||=e=>g(e,`ports`)},null,8,[`modelValue`,`placeholder`]),l(`small`,tn,h(K(i)(`serviceConfigGeneral.portsHint`)),1)]),l(`div`,nn,[l(`div`,rn,[t[19]||=l(`i`,{class:`pi pi-th-large`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.groups`)),1)]),O(K(Ee),{modelValue:w.value.groups,"onUpdate:modelValue":t[5]||=e=>w.value.groups=e,multiple:``,suggestions:u.value,"complete-on-focus":!0,class:`config-card__input`,placeholder:K(i)(`serviceConfigGeneral.groupsPlaceholder`),onComplete:f,onChange:P,onKeydown:V(m,[`enter`]),onBlur:t[6]||=e=>g(e,`groups`)},null,8,[`modelValue`,`suggestions`,`placeholder`]),l(`small`,an,h(K(i)(`serviceConfigGeneral.groupsHint`)),1)]),l(`div`,on,[l(`div`,sn,[t[20]||=l(`i`,{class:`pi pi-info-circle`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.description`)),1)]),O(K(ne),{modelValue:w.value.description,"onUpdate:modelValue":t[7]||=e=>w.value.description=e,class:`config-card__input`,rows:2,onBlur:P},null,8,[`modelValue`]),l(`small`,cn,h(K(i)(`serviceConfigGeneral.descriptionHint`)),1)]),l(`div`,ln,[l(`div`,un,[t[21]||=l(`i`,{class:`pi pi-external-link`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.url`)),1)]),O(K(r),{modelValue:w.value.url,"onUpdate:modelValue":t[8]||=e=>w.value.url=e,class:`config-card__input`,placeholder:`https://...`,onBlur:P,onKeydown:V(n(P,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),l(`small`,dn,h(K(i)(`serviceConfigGeneral.urlHint`)),1)]),l(`div`,fn,[l(`div`,pn,[t[22]||=l(`i`,{class:`pi pi-book`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.openapiUrl`)),1)]),O(K(r),{modelValue:w.value.openapiUrl,"onUpdate:modelValue":t[9]||=e=>w.value.openapiUrl=e,class:`config-card__input`,placeholder:`https://.../swagger.json`,onBlur:P,onKeydown:V(n(P,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),l(`small`,mn,h(K(i)(`serviceConfigGeneral.openapiUrlHint`)),1)]),l(`div`,hn,[l(`div`,gn,[t[23]||=l(`i`,{class:`pi pi-github`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.git`)),1)]),O(K(r),{modelValue:w.value.gitRemote,"onUpdate:modelValue":t[10]||=e=>w.value.gitRemote=e,class:`config-card__input`,placeholder:`git@github.com:org/repo.git`,onBlur:P,onKeydown:V(n(P,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),l(`small`,_n,h(K(i)(`serviceConfigGeneral.gitRemoteHint`)),1),O(K(r),{modelValue:w.value.gitHome,"onUpdate:modelValue":t[11]||=e=>w.value.gitHome=e,class:`config-card__input`,style:{"margin-top":`0.5rem`},placeholder:`https://github.com/org/repo`,onBlur:P,onKeydown:V(n(P,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),l(`small`,vn,h(K(i)(`serviceConfigGeneral.gitHomeHint`)),1)]),l(`div`,yn,[l(`div`,bn,[t[24]||=l(`i`,{class:`pi pi-hashtag`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.meta`)),1)]),l(`small`,xn,h(K(i)(`serviceConfigGeneral.metaHint`)),1),l(`div`,Sn,[(G(!0),Y(v,null,z(T.value,(e,t)=>(G(),Y(`div`,{key:t,class:`config-meta__row`},[O(K(r),{"model-value":e.key,placeholder:K(i)(`serviceConfigGeneral.metaKeyPlaceholder`),class:`config-meta__input`,"onUpdate:modelValue":e=>A(t,`key`,e),onBlur:P,onKeydown:V(n(P,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),O(K(r),{"model-value":e.value,placeholder:K(i)(`serviceConfigGeneral.metaValuePlaceholder`),class:`config-meta__input config-meta__input--wide`,"onUpdate:modelValue":e=>A(t,`value`,e),onBlur:P,onKeydown:V(n(P,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),O(K(S),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{k(t),P()}},null,8,[`onClick`])]))),128)),O(K(S),{label:K(i)(`serviceConfigGeneral.addEntry`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`config-meta__add`,onClick:E},null,8,[`label`])])]),l(`div`,Cn,[l(`div`,wn,[t[25]||=l(`i`,{class:`pi pi-refresh`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.autoRestart`)),1)]),O(K(Z),{modelValue:w.value.autoRestart,"onUpdate:modelValue":t[12]||=e=>w.value.autoRestart=e,onChange:P},null,8,[`modelValue`])]),l(`div`,Tn,[l(`div`,En,[t[26]||=l(`i`,{class:`pi pi-trash`},null,-1),l(`span`,null,h(K(i)(`serviceConfigGeneral.clearLogs`)),1)]),O(K(Z),{modelValue:w.value.clearLogsOnStart,"onUpdate:modelValue":t[13]||=e=>w.value.clearLogsOnStart=e,onChange:P},null,8,[`modelValue`])])]))}}),[[`__scopeId`,`data-v-6fef6778`]]),kn={class:`docker-config`},An={class:`docker-config__section`},jn={for:`docker-mode-image`,class:`docker-config__section-title`},Mn={class:`docker-config__mode-toggle`},Nn={class:`docker-config__mode-option`},Pn={class:`docker-config__mode-option`},Fn={key:0,class:`docker-config__section`},In={for:`docker-image`,class:`docker-config__label`},Ln={class:`docker-config__section`},Rn={class:`docker-config__section`},zn={for:`docker-build-context`,class:`docker-config__label`},Bn={class:`docker-config__section`},Vn={for:`docker-add-build-arg`,class:`docker-config__label`},Hn={class:`docker-config__kv-list`},Un={class:`docker-config__section`},Wn={for:`docker-target-stage`,class:`docker-config__label`},Gn={class:`docker-config__section`},Kn={for:`docker-user`,class:`docker-config__section-title`},qn={class:`docker-config__section`},Jn={for:`docker-user`,class:`docker-config__label`},Yn={class:`docker-config__section`},Xn={for:`docker-network-mode`,class:`docker-config__label`},Zn={key:2,class:`docker-config__section`},Qn={for:`docker-add-port`,class:`docker-config__label`},$n={class:`docker-config__list`},er={class:`docker-config__section`},tr={for:`docker-add-volume`,class:`docker-config__label`},nr={class:`docker-config__checkbox-row`},rr={for:`mountRootpath`,class:`docker-config__checkbox-label`},ir={class:`docker-config__list`},ar={class:`docker-config__section`},or={class:`docker-config__checkbox-row`},sr={for:`useNativeCommand`,class:`docker-config__checkbox-label`},cr={key:0,class:`docker-config__shell-row`},lr={for:`docker-native-shell`,class:`docker-config__label`},ur={class:`docker-config__hint`},dr={key:1,class:`docker-config__mode-toggle docker-config__mode-toggle--indented`},fr={class:`docker-config__mode-option`},pr={class:`docker-config__mode-option`},mr={class:`docker-config__section`},hr={for:`docker-entrypoint`,class:`docker-config__label`},gr={class:`docker-config__section`},_r={for:`docker-command`,class:`docker-config__label`},vr={class:`docker-config__section`},yr={for:`docker-add-bootstrap`,class:`docker-config__section-title`},br={class:`docker-config__hint-inline`},xr={class:`docker-config__bootstrap-row`},Sr={class:`docker-config__bootstrap-field`},Cr=[`for`],wr={class:`docker-config__bootstrap-field`},Tr=[`for`],Er={class:`docker-config__bootstrap-field docker-config__bootstrap-field--wide`},Dr=[`for`],Or={class:`docker-config__bootstrap-field`},kr=[`for`],Ar={class:`docker-config__bootstrap-actions`},jr={class:`docker-config__section`},Mr=f(m({__name:`ServiceConfigDocker`,props:{service:{}},emits:[`save`],setup(e,{emit:i}){let{t:a}=N(),o=e,s=i,c=o.service.dockerConfig??{},u=d(c.dockerfile?`build`:`image`),f=d(c.image??``),p=d(c.dockerfile??``),m=d(c.buildContext??``),g=d(Object.entries(c.buildArgs??{}).map(([e,t])=>({key:e,value:t}))),_=d(c.targetStage??``),y=d(c.networkMode??`host`),b=d([...c.ports??[]]),x=d([...c.volumes??[]]),C=d(c.mountRootpath??!1),E=d(c.entrypoint??``),A=d(c.command??``),ee=d(c.user??``),j=d(c.useNativeCommand??!1),M=d(c.nativeCommandMode??`isolated`),P=d(c.nativeShell??`sh`),F=[{label:`sh (POSIX)`,value:`sh`},{label:`bash`,value:`bash`},{label:`zsh`,value:`zsh`},{label:`ash (Alpine)`,value:`ash`}],I=d([...c.bootstrapCommands??[]]),L=d(!1),te=[{label:`Host (--network host)`,value:`host`},{label:`Bridge`,value:`bridge`}];function R(){g.value=[...g.value,{key:``,value:``}]}function ne(e){g.value=g.value.filter((t,n)=>n!==e)}function B(e,t,n){g.value=g.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function re(){b.value=[...b.value,``]}function ae(e){b.value=b.value.filter((t,n)=>n!==e)}function U(e,t){b.value=b.value.map((n,r)=>r===e?t:n)}function W(){x.value=[...x.value,``]}function oe(e){x.value=x.value.filter((t,n)=>n!==e)}function se(e,t){x.value=x.value.map((n,r)=>r===e?t:n)}function ce(){I.value=[...I.value,{id:he(),label:`Bootstrap`,entrypoint:`/bin/sh`,command:`-c ""`,user:void 0}]}function le(e){I.value=I.value.filter((t,n)=>n!==e)}function q(e,t,n){I.value=I.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function ue(e,t){let n=[...I.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],I.value=n)}let de=null;function J(){de&&clearTimeout(de),de=setTimeout(()=>{let e={};for(let{key:t,value:n}of g.value)t.trim()&&(e[t.trim()]=n);s(`save`,{image:u.value===`image`&&f.value||void 0,dockerfile:u.value===`build`&&p.value||void 0,buildContext:m.value||void 0,buildArgs:e,targetStage:_.value||void 0,networkMode:y.value,ports:b.value.filter(Boolean),volumes:x.value.filter(Boolean),mountRootpath:C.value,entrypoint:E.value||void 0,command:A.value||void 0,user:ee.value||void 0,useNativeCommand:j.value,nativeCommandMode:M.value,nativeShell:P.value,bootstrapCommands:I.value}),de=null},150)}function fe(e){le(e),J()}function me(e,t){ue(e,t),J()}function ge(e){ne(e),J()}function _e(e){ae(e),J()}function X(e){oe(e),J()}return(e,i)=>(G(),Y(`div`,kn,[l(`div`,An,[l(`label`,jn,h(K(a)(`serviceConfigDocker.imageSource`)),1),l(`div`,Mn,[l(`label`,Nn,[ie(l(`input`,{id:`docker-mode-image`,"onUpdate:modelValue":i[0]||=e=>u.value=e,type:`radio`,value:`image`,class:`docker-config__radio`,onChange:J},null,544),[[T,u.value]]),D(` `+h(K(a)(`serviceConfigDocker.pullImage`)),1)]),l(`label`,Pn,[ie(l(`input`,{"onUpdate:modelValue":i[1]||=e=>u.value=e,type:`radio`,value:`build`,class:`docker-config__radio`,onChange:J},null,544),[[T,u.value]]),D(` `+h(K(a)(`serviceConfigDocker.buildDockerfile`)),1)])])]),u.value===`image`?(G(),Y(`div`,Fn,[l(`label`,In,h(K(a)(`serviceConfigDocker.image`)),1),O(K(r),{id:`docker-image`,modelValue:f.value,"onUpdate:modelValue":i[2]||=e=>f.value=e,placeholder:K(a)(`serviceConfigDocker.imagePlaceholder`),class:`docker-config__input`,onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):w(``,!0),u.value===`build`?(G(),Y(v,{key:1},[l(`div`,Ln,[i[18]||=l(`label`,{for:`docker-dockerfile-btn`,class:`docker-config__label`},`Dockerfile`,-1),O(K(S),{id:`docker-dockerfile-btn`,label:K(a)(`serviceConfigDocker.editDockerfile`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,size:`small`,onClick:i[3]||=e=>L.value=!0},null,8,[`label`]),O(K(k),{visible:L.value,"onUpdate:visible":i[6]||=e=>L.value=e,header:K(a)(`serviceConfigDocker.editDockerfile`),modal:``,style:{width:`800px`}},{footer:t(()=>[O(K(S),{label:K(a)(`serviceConfigDocker.closeDockerfile`),icon:`pi pi-times`,onClick:i[5]||=()=>{L.value=!1,J()}},null,8,[`label`])]),default:t(()=>[O(pe,{modelValue:p.value,"onUpdate:modelValue":i[4]||=e=>p.value=e,language:`dockerfile`,style:{height:`400px`}},null,8,[`modelValue`])]),_:1},8,[`visible`,`header`])]),l(`div`,Rn,[l(`label`,zn,h(K(a)(`serviceConfigDocker.buildContext`)),1),O(K(r),{id:`docker-build-context`,modelValue:m.value,"onUpdate:modelValue":i[7]||=e=>m.value=e,placeholder:`.`,class:`docker-config__input`,onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),l(`div`,Bn,[l(`label`,Vn,h(K(a)(`serviceConfigDocker.buildArgs`)),1),l(`div`,Hn,[(G(!0),Y(v,null,z(g.value,(e,t)=>(G(),Y(`div`,{key:t,class:`docker-config__kv-row`},[O(K(r),{"model-value":e.key,placeholder:K(a)(`serviceConfigDocker.argNamePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>B(t,`key`,e),onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),O(K(r),{"model-value":e.value,placeholder:K(a)(`serviceConfigDocker.argValuePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>B(t,`value`,e),onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),O(K(S),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>ge(t)},null,8,[`onClick`])]))),128)),O(K(S),{id:`docker-add-build-arg`,label:K(a)(`serviceConfigDocker.addBuildArg`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:R},null,8,[`label`])])]),l(`div`,Un,[l(`label`,Wn,h(K(a)(`serviceConfigDocker.targetStage`)),1),O(K(r),{id:`docker-target-stage`,modelValue:_.value,"onUpdate:modelValue":i[8]||=e=>_.value=e,placeholder:K(a)(`serviceConfigDocker.targetStagePlaceholder`),class:`docker-config__input`,onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)):w(``,!0),O(K(Ae)),l(`div`,Gn,[l(`label`,Kn,h(K(a)(`serviceConfigDocker.runtimeConfig`)),1)]),l(`div`,qn,[l(`label`,Jn,h(K(a)(`serviceConfigDocker.userGroup`)),1),O(K(r),{id:`docker-user`,modelValue:ee.value,"onUpdate:modelValue":i[9]||=e=>ee.value=e,placeholder:K(a)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),l(`div`,Yn,[l(`label`,Xn,h(K(a)(`serviceConfigDocker.networkMode`)),1),O(K(H),{"input-id":`docker-network-mode`,modelValue:y.value,"onUpdate:modelValue":i[10]||=e=>y.value=e,options:te,"option-label":`label`,"option-value":`value`,class:`docker-config__select`,onChange:J},null,8,[`modelValue`])]),y.value===`bridge`?(G(),Y(`div`,Zn,[l(`label`,Qn,h(K(a)(`serviceConfigDocker.portMappings`)),1),l(`div`,$n,[(G(!0),Y(v,null,z(b.value,(e,t)=>(G(),Y(`div`,{key:t,class:`docker-config__list-row`},[O(K(r),{"model-value":e,placeholder:K(a)(`serviceConfigDocker.portPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>U(t,e),onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),O(K(S),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>_e(t)},null,8,[`onClick`])]))),128)),O(K(S),{id:`docker-add-port`,label:K(a)(`serviceConfigDocker.addPort`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:re},null,8,[`label`])])])):w(``,!0),l(`div`,er,[l(`label`,tr,h(K(a)(`serviceConfigDocker.volumes`)),1),l(`div`,nr,[O(K(ve),{modelValue:C.value,"onUpdate:modelValue":i[11]||=e=>C.value=e,binary:!0,"input-id":`mountRootpath`,onChange:J},null,8,[`modelValue`]),l(`label`,rr,h(K(a)(`serviceConfigDocker.autoMount`)),1)]),l(`div`,ir,[(G(!0),Y(v,null,z(x.value,(e,t)=>(G(),Y(`div`,{key:t,class:`docker-config__list-row`},[O(K(r),{"model-value":e,placeholder:K(a)(`serviceConfigDocker.volumePlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>se(t,e),onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),O(K(S),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>X(t)},null,8,[`onClick`])]))),128)),O(K(S),{id:`docker-add-volume`,label:K(a)(`serviceConfigDocker.addVolume`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:W},null,8,[`label`])])]),O(K(Ae)),l(`div`,ar,[l(`div`,or,[O(K(ve),{modelValue:j.value,"onUpdate:modelValue":i[12]||=e=>j.value=e,binary:!0,"input-id":`useNativeCommand`,onChange:J},null,8,[`modelValue`]),l(`label`,sr,h(K(a)(`serviceConfigDocker.runNative`)),1)]),i[21]||=l(`span`,{class:`docker-config__hint`},` When enabled, the service command is executed directly inside the container (ignores CMD override below). `,-1),j.value?(G(),Y(`div`,cr,[l(`label`,lr,h(K(a)(`serviceConfigDocker.shell`)),1),O(K(H),{"input-id":`docker-native-shell`,modelValue:P.value,"onUpdate:modelValue":i[13]||=e=>P.value=e,options:F,"option-label":`label`,"option-value":`value`,class:`docker-config__select docker-config__select--small`,editable:``,placeholder:K(a)(`serviceConfigDocker.shellPlaceholder`),onChange:J},null,8,[`modelValue`,`placeholder`]),l(`span`,ur,[D(h(K(a)(`serviceConfigDocker.shellHint`))+` (`,1),i[19]||=l(`code`,null,`shell -c '...'`,-1),i[20]||=D(`)`,-1)])])):w(``,!0),j.value?(G(),Y(`div`,dr,[l(`label`,fr,[ie(l(`input`,{"onUpdate:modelValue":i[14]||=e=>M.value=e,type:`radio`,value:`isolated`,class:`docker-config__radio`,onChange:J},null,544),[[T,M.value]]),D(` `+h(K(a)(`serviceConfigDocker.isolated`)),1)]),l(`label`,pr,[ie(l(`input`,{"onUpdate:modelValue":i[15]||=e=>M.value=e,type:`radio`,value:`shared`,class:`docker-config__radio`,onChange:J},null,544),[[T,M.value]]),D(` `+h(K(a)(`serviceConfigDocker.shared`)),1)])])):w(``,!0)]),j.value?w(``,!0):(G(),Y(v,{key:3},[i[22]||=l(`div`,{class:`docker-config__section`},[l(`label`,{for:`docker-entrypoint`,class:`docker-config__section-title`},`Override`)],-1),l(`div`,mr,[l(`label`,hr,h(K(a)(`serviceConfigDocker.entrypoint`)),1),O(K(r),{id:`docker-entrypoint`,modelValue:E.value,"onUpdate:modelValue":i[16]||=e=>E.value=e,placeholder:K(a)(`serviceConfigDocker.entrypointPlaceholder`),class:`docker-config__input`,onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),l(`div`,gr,[l(`label`,_r,h(K(a)(`serviceConfigDocker.cmdOverride`)),1),O(K(r),{id:`docker-command`,modelValue:A.value,"onUpdate:modelValue":i[17]||=e=>A.value=e,placeholder:K(a)(`serviceConfigDocker.cmdPlaceholder`),class:`docker-config__input`,onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)),O(K(Ae)),l(`div`,vr,[l(`label`,yr,[D(h(K(a)(`serviceConfigDocker.bootstrapCommands`))+` `,1),l(`span`,br,` — `+h(K(a)(`serviceConfigDocker.bootstrapCommandsHint`)),1)])]),(G(!0),Y(v,null,z(I.value,(e,t)=>(G(),Y(`div`,{key:e.id,class:`docker-config__bootstrap-card`},[l(`div`,xr,[l(`div`,Sr,[l(`label`,{class:`docker-config__label`,for:`docker-bootstrap-label-${t}`},`Label`,8,Cr),O(K(r),{id:`docker-bootstrap-label-${t}`,"model-value":e.label,placeholder:K(a)(`serviceConfigDocker.bootstrapLabelPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>q(t,`label`,e),onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),l(`div`,wr,[l(`label`,{class:`docker-config__label`,for:`docker-bootstrap-entrypoint-${t}`},`Entrypoint`,8,Tr),O(K(r),{id:`docker-bootstrap-entrypoint-${t}`,"model-value":e.entrypoint??``,placeholder:`/bin/sh`,class:`docker-config__input`,"onUpdate:modelValue":e=>q(t,`entrypoint`,e),onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),l(`div`,Er,[l(`label`,{class:`docker-config__label`,for:`docker-bootstrap-command-${t}`},`Command`,8,Dr),O(K(r),{id:`docker-bootstrap-command-${t}`,"model-value":e.command,placeholder:`-c "npm install"`,class:`docker-config__input`,"onUpdate:modelValue":e=>q(t,`command`,e),onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),l(`div`,Or,[l(`label`,{class:`docker-config__label`,for:`docker-bootstrap-user-${t}`},`User:Group`,8,kr),O(K(r),{id:`docker-bootstrap-user-${t}`,"model-value":e.user??``,placeholder:K(a)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,"onUpdate:modelValue":e=>q(t,`user`,e),onBlur:J,onKeydown:V(n(J,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),l(`div`,Ar,[O(K(S),{icon:`pi pi-arrow-up`,text:``,rounded:``,size:`small`,disabled:t===0,onClick:e=>me(t,-1)},null,8,[`disabled`,`onClick`]),O(K(S),{icon:`pi pi-arrow-down`,text:``,rounded:``,size:`small`,disabled:t===I.value.length-1,onClick:e=>me(t,1)},null,8,[`disabled`,`onClick`]),O(K(S),{icon:`pi pi-times`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>fe(t)},null,8,[`onClick`])])])]))),128)),l(`div`,jr,[O(K(S),{id:`docker-add-bootstrap`,label:K(a)(`serviceConfigDocker.addBootstrapCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:ce},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-91c13548`]]),Nr={class:`config-commands`},Pr={class:`config-commands__execution`},Fr={class:`config-card config-card--execution`},Ir={class:`config-card__header`},Lr={class:`config-card__hint`},Rr={class:`config-card config-card--execution`},zr={class:`config-card__header`},Br={key:0,class:`runner-option`},Vr={class:`runner-option`},Hr={class:`config-commands__tab-content`},Ur={key:0,class:`config-commands__empty`},Wr={class:`config-commands__row`},Gr={class:`config-commands__field`},Kr=[`for`],qr={class:`config-commands__field config-commands__field--wide`},Jr=[`for`],Yr={class:`config-commands__field`},Xr=[`for`],Zr={class:`config-commands__actions-cell`},Qr={class:`config-commands__footer`},$r={class:`config-commands__tab-content`},ei=`__inherit__`,ti=f(m({__name:`ServiceConfigCommands`,props:{service:{}},emits:[`save`,`dockerSave`],setup(e,{emit:i}){let o=e,c=i,{t:u}=N(),f=L(),p=null,m=d({agentId:o.service.agentId??ei,runner:o.service.runner});a(()=>o.service,e=>{m.value={agentId:e.agentId??ei,runner:e.runner}});let g=s(()=>[{label:u(`serviceConfigCommands.native`),value:`native`,icon:`pi pi-desktop`},{label:u(`serviceConfigCommands.docker`),value:`docker`,icon:`pi pi-box`}]),_=s(()=>g.value.find(e=>e.value===m.value.runner)?.icon??`pi pi-box`),y=s(()=>[{label:u(`serviceForm.agentInherit`),value:ei},...f.agents.map(e=>({label:`${e.config.name} (${e.status.connected?u(`serviceConfigCommands.online`):u(`serviceConfigCommands.offline`)})`,value:e.config.id}))]),b=d([...o.service.commands??[]]);a(()=>o.service,e=>{p||(b.value=[...e.commands??[]])});function C(){b.value=[...b.value,{id:he(),label:``,command:``,cwd:void 0,shell:!0}]}function T(e){b.value=b.value.filter((t,n)=>n!==e)}function E(e,t,n){b.value=b.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function D(){p&&clearTimeout(p),p=setTimeout(()=>{c(`save`,{agentId:m.value.agentId===ei?null:m.value.agentId||null,runner:m.value.runner,commands:b.value}),p=null},150)}function k(e){c(`dockerSave`,e)}function A(e){T(e),D()}return(i,a)=>(G(),Y(`div`,Nr,[l(`div`,Pr,[l(`div`,Fr,[l(`div`,Ir,[a[2]||=l(`i`,{class:`pi pi-server`},null,-1),l(`span`,null,h(K(u)(`serviceConfigCommands.agent`)),1)]),O(K(H),{modelValue:m.value.agentId,"onUpdate:modelValue":a[0]||=e=>m.value.agentId=e,options:y.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:D},null,8,[`modelValue`,`options`]),l(`small`,Lr,h(K(u)(`serviceForm.agentHintEdit`)),1)]),l(`div`,Rr,[l(`div`,zr,[l(`i`,{class:x(_.value)},null,2),l(`span`,null,h(K(u)(`serviceConfigCommands.runner`)),1)]),O(K(H),{modelValue:m.value.runner,"onUpdate:modelValue":a[1]||=e=>m.value.runner=e,options:g.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:D},{value:t(e=>[e.value?(G(),Y(`div`,Br,[l(`i`,{class:x(g.value.find(t=>t.value===e.value)?.icon)},null,2),l(`span`,null,h(g.value.find(t=>t.value===e.value)?.label),1)])):w(``,!0)]),option:t(e=>[l(`div`,Vr,[l(`i`,{class:x(e.option.icon)},null,2),l(`span`,null,h(e.option.label),1)])]),_:1},8,[`modelValue`,`options`])])]),O(K(xe),{value:`0`},{default:t(()=>[O(K(ye),null,{default:t(()=>[O(K(Q),{value:`0`},{default:t(()=>[a[3]||=l(`i`,{class:`pi pi-desktop tab-icon`},null,-1),l(`span`,null,h(K(u)(`serviceConfigCommands.native`)),1)]),_:1}),O(K(Q),{value:`1`},{default:t(()=>[a[4]||=l(`i`,{class:`pi pi-box tab-icon`},null,-1),l(`span`,null,h(K(u)(`serviceConfigCommands.docker`)),1)]),_:1})]),_:1}),O(K(be),null,{default:t(()=>[O(K($),{value:`0`},{default:t(()=>[l(`div`,Hr,[b.value.length===0?(G(),Y(`div`,Ur,[l(`p`,null,h(K(u)(`serviceConfigCommands.noCommands`)),1)])):w(``,!0),(G(!0),Y(v,null,z(b.value,(e,t)=>(G(),Y(`div`,{key:e.id,class:`config-card`},[l(`div`,Wr,[l(`div`,Gr,[l(`label`,{class:`config-commands__label`,for:`cmd-label-${t}`},h(K(u)(`serviceConfigCommands.labelPlaceholder`)),9,Kr),O(K(r),{id:`cmd-label-${t}`,"model-value":e.label,placeholder:K(u)(`serviceConfigCommands.labelPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>E(t,`label`,e),onBlur:D,onKeydown:V(n(D,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),l(`div`,qr,[l(`label`,{class:`config-commands__label`,for:`cmd-command-${t}`},h(K(u)(`serviceConfigCommands.commandPlaceholder`)),9,Jr),O(K(r),{id:`cmd-command-${t}`,"model-value":e.command,placeholder:`e.g. npm start`,class:`config-card__input`,"onUpdate:modelValue":e=>E(t,`command`,e),onBlur:D,onKeydown:V(n(D,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),l(`div`,Yr,[l(`label`,{class:`config-commands__label`,for:`cmd-cwd-${t}`},`Working Dir (optional)`,8,Xr),O(K(r),{id:`cmd-cwd-${t}`,"model-value":e.cwd??``,placeholder:K(u)(`serviceConfigCommands.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>E(t,`cwd`,e),onBlur:D,onKeydown:V(n(D,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),l(`div`,Zr,[O(K(S),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>A(t)},null,8,[`onClick`])])])]))),128)),l(`div`,Qr,[O(K(S),{label:K(u)(`serviceConfigCommands.addCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:C},null,8,[`label`])])])]),_:1}),O(K($),{value:`1`},{default:t(()=>[l(`div`,$r,[O(Mr,{service:e.service,onSave:k},null,8,[`service`])])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-df297a71`]]),ni={class:`config-env`,"data-testid":`config-env`},ri={key:0,class:`active-env-display`},ii={class:`active-env-label`},ai={key:1,class:`inheritance-toggle`},oi={class:`inheritance-label`},si={class:`inherited-header`},ci={class:`inherited-row-key`},li={class:`preview-key`},ui={class:`value-row`},di=[`onClick`],fi=[`onClick`],pi={key:0,class:`secret-mask`},mi={key:1,class:`preview-value`},hi={class:`config-env__header`},gi={class:`config-env__title`},_i={class:`config-env__actions`},vi={key:3,class:`variables-view`},yi={key:0},bi={key:1,class:`empty-state`},xi={class:`inherited-header`},Si={class:`passthrough-info`},Ci={class:`preview-key`},wi={key:0,class:`preview-value`},Ti={key:1,class:`passthrough-undefined`},Ei={key:4,class:`empty-state`},Di={key:5,class:`empty-state`},Oi={class:`editor-container`},ki={key:0,class:`editor-env-banner`},Ai={class:`editor-env-text`},ji={class:`editor-section`,"data-testid":`variables-editor`},Mi={key:0,class:`loading-container`},Ni={key:1,class:`preview-container`},Pi={class:`preview-info`},Fi={class:`preview-key`},Ii={class:`value-row`},Li=[`onClick`],Ri=[`onClick`],zi={key:0,class:`secret-mask`},Bi={key:1,class:`preview-value`},Vi=f(m({__name:`ServiceConfigEnv`,props:{service:{},projectId:{},activeEnvironmentId:{}},setup(e){let r=e,{t:c}=N(),u=te(),f=B(),p=fe(),m=ee(),v=M(),b=ce(),C=s(()=>m.getByRef({id:r.projectId,orgId:v.activeOrgId})?.activeEnvironmentId??null),T=s(()=>p.findServiceEnvironment(r.service.id,C.value??``)),A=d(!1),P=d(!1),F=d(!1),I=d(!1),L=d(null),R=d(null),{suggestions:z,meta:ne,search:ie}=Te(()=>R.value??L.value),V=d(new Set);function H(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 oe=d({}),ue=d(!1),{values:de,agentEntry:J,urlHost:pe}=Ce({projectId:()=>r.projectId,environmentId:()=>C.value,agentId:()=>q(r.service)??void 0}),me=s(()=>{let e={...de.value};Object.assign(e,E(r.service.ports)),e[`service.NAME`]=r.service.name,e[`service.ID`]=r.service.id,Object.assign(e,i(r.service,pe.value)),r.service.url&&(e[`service.BASE_URL`]=r.service.url);let t=he(J.value?.status?.cwd,J.value?.status?.home);return t&&(e[`service.CWD`]=t),e});function he(e,t){let n=(r.service.resolvedCwd??r.service.cwd??``).trim();return n?n.startsWith(`~/`)&&t?t+n.slice(1):n.includes(`$`)?null:n.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(n)?n:null:e??null}let X=s(()=>J.value?.config.passthroughEnv??[]),ve=s(()=>X.value.length>0);async function ye(){let e=q(r.service);if(!e||!ve.value){oe.value={};return}ue.value=!0;try{oe.value=await _.agent.getPassthroughEnv.query({id:e})}catch{oe.value={}}finally{ue.value=!1}}let be=s(()=>X.value.map(e=>({name:e,value:oe.value[e]??null}))),xe=s(()=>!T.value||!C.value?!0:T.value.parentIds?.includes(C.value)??!0);async function Q(e){if(!(!T.value||!C.value)){I.value=!0;try{await p.update({id:T.value.id,parentIds:e?[C.value]:[]}),await je()}catch(e){u.add({severity:`error`,summary:c(`serviceConfigEnv.error`),detail:e.message??c(`serviceConfigEnv.failedToUpdateInheritance`),life:5e3})}finally{I.value=!1}}}let $=s(()=>{let e=m.getByRef({id:r.projectId,orgId:v.activeOrgId});return e?.activeEnvironmentId?p.getById(e.activeEnvironmentId):null});function Ee(e){return!e||typeof e!=`object`?[]:Object.entries(e).map(([e,t])=>({variableId:e,key:t.key||e,slot:{value:t.value?.value??``,pre:t.value?.pre??``,post:t.value?.post??``,isSecret:t.value?.isSecret??!1}}))}let De=s(()=>L.value?Ee(L.value.variables):[]),Oe=s(()=>{if(!T.value||!L.value?.sources)return De.value;let e=T.value.id;return De.value.filter(t=>L.value.sources[t.variableId]?.environmentId===e)}),ke=s(()=>{if(!T.value||!L.value?.sources)return[];let e=T.value.id;return De.value.filter(t=>L.value.sources[t.variableId]?.environmentId!==e)}),Ae=s(()=>{if(!L.value?.sources)return{};let e={};for(let[t,n]of Object.entries(L.value.sources))e[t]={environmentId:n.environmentId,overridden:n.overridden,...n.resolvedFrom?{resolvedFrom:n.resolvedFrom}:{},...n.overriddenBy?{overriddenBy:n.overriddenBy}:{}};return e});async function je(){if(T.value)try{L.value=await p.resolve(T.value.id)}catch(e){console.error(`Failed to resolve environment:`,e)}}async function Me(){if(C.value)try{R.value=await p.resolve(C.value)}catch{}}async function Ne(){F.value=!0;try{await Ie(),await je(),P.value=!0}catch(e){u.add({severity:`error`,summary:c(`serviceConfigEnv.error`),detail:e.message??c(`serviceConfigEnv.failedToLoadPreview`),life:5e3})}finally{F.value=!1}}let Pe=s(()=>L.value?Object.entries(L.value.env).map(([e,t])=>({key:e,value:Object.entries(me.value).reduce((e,[t,n])=>e.replaceAll(`{{${t}}}`,n),t)})):[]);function Fe(e,t){return t?`***`:e.length>50?e.substring(0,47)+`...`:e}async function Ie(){if(T.value)return T.value;if(!C.value)return null;let e=$.value;return e?(await p.create({name:`${r.service.name??r.service.id} — ${e.name}`,projectId:r.projectId,scope:`service`,reference:r.service.id,activateOn:C.value,parentIds:[C.value],variables:{}}),T.value):null}let Le=s(()=>{let e=b.getByService(r.service.id);return e.length>0?e[0]:null}),Re=s(()=>{let e=Le.value?.state;return e===`running`||e===`errored`});async function ze(){await Ie(),A.value=!0,await Promise.all([je(),Me()])}function Be(){if(A.value=!1,!Re.value||!Le.value)return;let e=Le.value.state===`running`?`restart`:`start`,t=r.service.name||r.service.id;f.require({message:c(e===`restart`?`serviceConfigEnv.restartConfirmMsg`:`serviceConfigEnv.startConfirmMsg`,{name:t}),header:c(e===`restart`?`serviceConfigEnv.restartTitle`:`serviceConfigEnv.startTitle`),icon:`pi pi-refresh`,acceptLabel:c(e===`restart`?`serviceConfigEnv.restartTitle`:`actions.start`),rejectLabel:c(`serviceConfigEnv.notNow`),accept:async()=>{try{let t=q(r.service);if(!t)return;e===`restart`?(await b.restart(t,r.service.id),u.add({severity:`success`,summary:c(`serviceConfigEnv.serviceRestarted`),life:3e3})):(await b.start(t,r.service.id),u.add({severity:`success`,summary:c(`serviceConfigEnv.serviceStarted`),life:3e3}))}catch(t){u.add({severity:`error`,summary:c(`serviceConfigEnv.error`),detail:t.message??c(`serviceConfigEnv.failedToAction`,{action:e}),life:5e3})}}})}return a($,async e=>{e&&await Promise.all([je(),Me()])}),a(()=>q(r.service),()=>{ye()}),ae(async()=>{r.projectId&&await p.fetchAll(r.projectId),await Promise.all([je(),Me(),ye()])}),(r,i)=>(G(),Y(`div`,ni,[C.value?(G(),Y(`div`,ri,[l(`span`,ii,h(K(c)(`serviceConfigEnv.activeEnvironment`)),1),O(Se,{"environment-id":C.value},null,8,[`environment-id`])])):w(``,!0),T.value&&$.value?(G(),Y(`div`,ai,[O(K(Z),{"model-value":xe.value,disabled:I.value,"onUpdate:modelValue":Q},null,8,[`model-value`,`disabled`]),l(`span`,oi,h(xe.value?K(c)(`serviceConfigEnv.inheritsFrom`,{name:$.value.name}):K(c)(`serviceConfigEnv.isolated`,{name:$.value.name})),1)])):w(``,!0),ke.value.length>0?(G(),g(K(le),{key:2,class:`inherited-accordion`},{default:t(()=>[O(K(re),{value:`inherited`},{default:t(()=>[O(K(j),null,{default:t(()=>[l(`span`,si,[i[6]||=l(`i`,{class:`pi pi-arrow-down-left`},null,-1),D(` `+h(K(c)(`serviceConfigEnv.inheritedVars`))+` `,1),O(K(o),{value:String(ke.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),O(K(se),null,{default:t(()=>[O(K(ge),{value:ke.value,size:`small`,"show-headers":!1},{default:t(()=>[O(K(_e),{style:{width:`35%`}},{body:t(({data:e})=>[l(`div`,ci,[l(`code`,li,h(e.key),1),Ae.value[e.variableId]?(G(),g(Se,{key:0,"environment-id":Ae.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):w(``,!0)])]),_:1}),O(K(_e),{style:{width:`65%`}},{body:t(({data:e})=>[l(`span`,ui,[l(`span`,{class:`value-actions`,onClick:i[0]||=n(()=>{},[`stop`])},[e.slot.isSecret?(G(),Y(`i`,{key:0,class:x([V.value.has(e.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>H(e.variableId)},null,10,di)):w(``,!0),l(`i`,{class:x([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,fi)]),e.slot.isSecret&&!V.value.has(e.variableId)?(G(),Y(`span`,pi,`***`)):(G(),Y(`code`,mi,h(e.slot.pre)+h(e.slot.value)+h(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):w(``,!0),l(`div`,hi,[l(`h3`,gi,h(K(c)(`serviceConfigEnv.envVars`)),1),l(`div`,_i,[O(K(S),{label:K(c)(`serviceConfigEnv.editVariables`),icon:`pi pi-pencil`,size:`small`,outlined:``,"data-testid":`env-edit-btn`,disabled:!C.value,onClick:ze},null,8,[`label`,`disabled`]),O(K(S),{label:K(c)(`serviceConfigEnv.preview`),icon:`pi pi-eye`,size:`small`,outlined:``,severity:`secondary`,loading:F.value,disabled:!C.value,"data-testid":`env-preview-btn`,onClick:Ne},null,8,[`label`,`loading`,`disabled`])])]),T.value?(G(),Y(`div`,vi,[Oe.value.length>0?(G(),Y(`div`,yi,[O(we,{"environment-id":T.value.id,sources:Ae.value,"resolved-env":{...R.value?.env??{},...L.value?.env??{}},"service-builtins":me.value,editable:!1,"show-overrides":!0,"show-override-badge":!0,"show-delete":!1,"show-add-button":!1,onVariablesChanged:je},null,8,[`environment-id`,`sources`,`resolved-env`,`service-builtins`])])):(G(),Y(`div`,bi,[l(`p`,null,h(K(c)(`serviceConfigEnv.noVarsConfigured`)),1)])),ve.value?(G(),g(K(le),{key:2,class:`inherited-accordion`},{default:t(()=>[O(K(re),{value:`passthrough`},{default:t(()=>[O(K(j),null,{default:t(()=>[l(`span`,xi,[i[7]||=l(`i`,{class:`pi pi-globe`},null,-1),D(` `+h(K(c)(`agentPage.passthrough.titleShort`))+` `,1),O(K(o),{value:String(X.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),O(K(se),null,{default:t(()=>[l(`p`,Si,h(K(c)(`serviceConfigEnv.passthroughInfo`)),1),ue.value?(G(),g(K(y),{key:0,style:{width:`24px`,height:`24px`}})):(G(),g(K(ge),{key:1,value:be.value,stripedRows:``,size:`small`},{default:t(()=>[O(K(_e),{field:`name`,header:K(c)(`common.key`),style:{width:`35%`}},{body:t(({data:e})=>[l(`code`,Ci,h(e.name),1)]),_:1},8,[`header`]),O(K(_e),{header:K(c)(`common.value`),style:{width:`65%`}},{body:t(({data:e})=>[e.value===null?(G(),Y(`span`,Ti,h(K(c)(`serviceConfigEnv.undefined`)),1)):(G(),Y(`span`,wi,h(e.value),1))]),_:1},8,[`header`])]),_:1},8,[`value`]))]),_:1})]),_:1})]),_:1})):w(``,!0)])):C.value?(G(),Y(`div`,Di,[l(`p`,null,h(K(c)(`serviceConfigEnv.noVarsConfigured`)),1)])):(G(),Y(`div`,Ei,[l(`p`,null,h(K(c)(`serviceConfigEnv.noActiveEnv`)),1)])),O(K(k),{visible:A.value,header:K(c)(`serviceConfigEnv.editVarsHeader`),style:{width:`900px`},modal:``,"onUpdate:visible":i[2]||=e=>{e||Be()}},{footer:t(()=>[O(K(S),{label:K(c)(`actions.close`),icon:`pi pi-times`,onClick:i[1]||=e=>Be()},null,8,[`label`])]),default:t(()=>[l(`div`,Oi,[C.value?(G(),Y(`div`,ki,[l(`span`,Ai,h(K(c)(`serviceConfigEnv.editingVarsFor`,{name:e.service.name||e.service.id})),1),O(Se,{"environment-id":C.value},null,8,[`environment-id`])])):w(``,!0),l(`div`,ji,[T.value?(G(),g(we,{key:0,"environment-id":T.value.id,editable:!0,sources:Ae.value,"autocomplete-enabled":!0,"autocomplete-suggestions":K(z),"autocomplete-meta":K(ne),"resolved-env":{...R.value?.env??{},...L.value?.env??{}},"service-builtins":me.value,"show-overrides":!0,onVariablesChanged:je,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:K(ie)},null,8,[`environment-id`,`sources`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`,`onAutocompleteSearch`])):w(``,!0)])])]),_:1},8,[`visible`,`header`]),O(K(k),{visible:P.value,"onUpdate:visible":i[5]||=e=>P.value=e,header:K(c)(`serviceConfigEnv.previewHeader`),style:{width:`700px`},modal:``,"data-testid":`env-preview-dialog`},{footer:t(()=>[O(K(S),{label:K(c)(`actions.close`),icon:`pi pi-times`,onClick:i[4]||=e=>P.value=!1},null,8,[`label`])]),default:t(()=>[F.value?(G(),Y(`div`,Mi,[O(K(y))])):L.value?(G(),Y(`div`,Ni,[l(`p`,Pi,h(K(c)(`serviceConfigEnv.injectedVarsInfo`)),1),O(K(ge),{value:Pe.value,stripedRows:``,size:`small`,rows:15,paginator:Pe.value.length>15},{default:t(()=>[O(K(_e),{field:`key`,header:K(c)(`common.key`),style:{width:`35%`}},{body:t(({data:e})=>[l(`code`,Fi,h(e.key),1)]),_:1},8,[`header`]),O(K(_e),{header:K(c)(`common.value`),style:{width:`65%`}},{body:t(({data:e})=>[l(`span`,Ii,[l(`span`,{class:`value-actions`,onClick:i[3]||=n(()=>{},[`stop`])},[L.value.envSecrets.includes(e.key)?(G(),Y(`i`,{key:0,class:x([V.value.has(`preview:`+e.key)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>H(`preview:`+e.key)},null,10,Li)):w(``,!0),l(`i`,{class:x([U.value===`preview:`+e.key?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>W(`preview:`+e.key,e.value)},null,10,Ri)]),L.value.envSecrets.includes(e.key)&&!V.value.has(`preview:`+e.key)?(G(),Y(`span`,zi,`***`)):(G(),Y(`span`,Bi,h(Fe(e.value,!1)),1))])]),_:1},8,[`header`])]),_:1},8,[`value`,`paginator`])])):w(``,!0)]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-dc1e02d4`]]),Hi={class:`config-health`},Ui={class:`config-card config-card--inline`},Wi={class:`config-card__header`},Gi={class:`config-card`},Ki={class:`config-card__header`},qi={class:`config-card`},Ji={class:`config-card__header`},Yi={class:`config-card`},Xi={class:`config-card__header`},Zi={class:`config-card`},Qi={class:`config-card__header`},$i={key:1,class:`config-card`},ea={class:`config-card__header`},ta={class:`config-card__hint`},na={class:`config-card`},ra={class:`config-card__header`},ia={class:`config-card`},aa={class:`config-card__header`},oa={class:`config-card`},sa={class:`config-card__header`},ca={class:`config-card`},la={class:`config-card__header`},ua=f(m({__name:`ServiceConfigHealthCheck`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let i=e,o=t,{t:s}=N(),c=d(!!i.service.healthCheck),u=d({type:i.service.healthCheck?.type??`http`,path:i.service.healthCheck?.path??`/health`,interval:i.service.healthCheck?.interval??3e4,timeout:i.service.healthCheck?.timeout??5e3,retries:i.service.healthCheck?.retries??3,method:i.service.healthCheck?.method??`GET`,expectedStatus:i.service.healthCheck?.expectedStatus??200,initialDelay:i.service.healthCheck?.initialDelay??5e3,command:i.service.healthCheck?.command??``}),f=[{label:`HTTP Request`,value:`http`},{label:`Command`,value:`command`}],p=[{label:`GET`,value:`GET`},{label:`HEAD`,value:`HEAD`},{label:`POST`,value:`POST`},{label:`PUT`,value:`PUT`}];a(()=>i.service,e=>{c.value=!!e.healthCheck,u.value={type:e.healthCheck?.type??`http`,path:e.healthCheck?.path??`/health`,interval:e.healthCheck?.interval??3e4,timeout:e.healthCheck?.timeout??5e3,retries:e.healthCheck?.retries??3,method:e.healthCheck?.method??`GET`,expectedStatus:e.healthCheck?.expectedStatus??200,initialDelay:e.healthCheck?.initialDelay??5e3,command:e.healthCheck?.command??``}});let m=null;function g(){m&&clearTimeout(m),m=setTimeout(()=>{if(!c.value)o(`save`,void 0);else{if(u.value.type===`http`&&!u.value.path?.trim()||u.value.type===`command`&&!u.value.command?.trim())return;o(`save`,{type:u.value.type,path:u.value.path,method:u.value.method,expectedStatus:u.value.expectedStatus,command:u.value.command||void 0,interval:u.value.interval,timeout:u.value.timeout,retries:u.value.retries,initialDelay:u.value.initialDelay})}m=null},150)}return(e,t)=>(G(),Y(`div`,Hi,[l(`div`,Ui,[l(`div`,Wi,[t[10]||=l(`i`,{class:`pi pi-heart`},null,-1),l(`span`,null,h(K(s)(`serviceConfigHealthCheck.enable`)),1)]),O(K(Z),{modelValue:c.value,"onUpdate:modelValue":t[0]||=e=>c.value=e,onChange:g},null,8,[`modelValue`])]),c.value?(G(),Y(v,{key:0},[l(`div`,Gi,[l(`div`,Ki,[t[11]||=l(`i`,{class:`pi pi-cog`},null,-1),l(`span`,null,h(K(s)(`serviceConfigHealthCheck.type`)),1)]),O(K(H),{modelValue:u.value.type,"onUpdate:modelValue":t[1]||=e=>u.value.type=e,options:f,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:g},null,8,[`modelValue`]),t[12]||=l(`small`,{class:`config-card__hint`},`HTTP checks a URL endpoint; Command runs a shell command (exit 0 = healthy)`,-1)]),u.value.type===`http`?(G(),Y(v,{key:0},[l(`div`,qi,[l(`div`,Ji,[t[13]||=l(`i`,{class:`pi pi-link`},null,-1),l(`span`,null,h(K(s)(`serviceConfigHealthCheck.path`)),1)]),O(K(r),{modelValue:u.value.path,"onUpdate:modelValue":t[2]||=e=>u.value.path=e,class:`config-card__input`,placeholder:`/health`,onBlur:g,onKeydown:V(n(g,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),l(`div`,Yi,[l(`div`,Xi,[t[14]||=l(`i`,{class:`pi pi-directions`},null,-1),l(`span`,null,h(K(s)(`serviceConfigHealthCheck.method`)),1)]),O(K(H),{modelValue:u.value.method,"onUpdate:modelValue":t[3]||=e=>u.value.method=e,options:p,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:g},null,8,[`modelValue`])]),l(`div`,Zi,[l(`div`,Qi,[t[15]||=l(`i`,{class:`pi pi-check-circle`},null,-1),l(`span`,null,h(K(s)(`serviceConfigHealthCheck.expectedStatus`)),1)]),O(K(X),{modelValue:u.value.expectedStatus,"onUpdate:modelValue":t[4]||=e=>u.value.expectedStatus=e,class:`config-card__input`,"use-grouping":!1,min:100,max:599,onBlur:g,onKeydown:V(n(g,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[16]||=l(`small`,{class:`config-card__hint`},`HTTP status code to expect (default 200)`,-1)])],64)):w(``,!0),u.value.type===`command`?(G(),Y(`div`,$i,[l(`div`,ea,[t[17]||=l(`i`,{class:`pi pi-code`},null,-1),l(`span`,null,h(K(s)(`serviceConfigHealthCheck.command`)),1)]),O(K(ne),{modelValue:u.value.command,"onUpdate:modelValue":t[5]||=e=>u.value.command=e,class:`config-card__input`,rows:`2`,placeholder:`curl -sf http://localhost:3000/health`,"auto-resize":``,onBlur:g},null,8,[`modelValue`]),l(`small`,ta,h(K(s)(`serviceConfigHealthCheck.commandHint`)),1)])):w(``,!0),l(`div`,na,[l(`div`,ra,[t[18]||=l(`i`,{class:`pi pi-hourglass`},null,-1),l(`span`,null,h(K(s)(`serviceConfigHealthCheck.initialDelay`)),1)]),O(K(X),{modelValue:u.value.initialDelay,"onUpdate:modelValue":t[6]||=e=>u.value.initialDelay=e,class:`config-card__input`,"use-grouping":!1,min:0,onBlur:g,onKeydown:V(n(g,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[19]||=l(`small`,{class:`config-card__hint`},`Wait before first health check (ms)`,-1)]),l(`div`,ia,[l(`div`,aa,[t[20]||=l(`i`,{class:`pi pi-clock`},null,-1),l(`span`,null,h(K(s)(`serviceConfigHealthCheck.interval`)),1)]),O(K(X),{modelValue:u.value.interval,"onUpdate:modelValue":t[7]||=e=>u.value.interval=e,class:`config-card__input`,"use-grouping":!1,min:1e3,onBlur:g,onKeydown:V(n(g,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),l(`div`,oa,[l(`div`,sa,[t[21]||=l(`i`,{class:`pi pi-stopwatch`},null,-1),l(`span`,null,h(K(s)(`serviceConfigHealthCheck.timeout`)),1)]),O(K(X),{modelValue:u.value.timeout,"onUpdate:modelValue":t[8]||=e=>u.value.timeout=e,class:`config-card__input`,"use-grouping":!1,min:500,onBlur:g,onKeydown:V(n(g,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),l(`div`,ca,[l(`div`,la,[t[22]||=l(`i`,{class:`pi pi-replay`},null,-1),l(`span`,null,h(K(s)(`serviceConfigHealthCheck.retries`)),1)]),O(K(X),{modelValue:u.value.retries,"onUpdate:modelValue":t[9]||=e=>u.value.retries=e,class:`config-card__input`,"use-grouping":!1,min:0,max:10,onBlur:g,onKeydown:V(n(g,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])],64)):w(``,!0)]))}}),[[`__scopeId`,`data-v-63e32039`]]),da={class:`config-shortcuts`},fa={key:0,class:`config-shortcuts__empty`},pa={class:`config-shortcuts__row`},ma={class:`config-shortcuts__field`},ha=[`for`],ga={class:`config-shortcuts__field config-shortcuts__field--wide`},_a=[`for`],va={class:`config-shortcuts__field`},ya=[`for`],ba={class:`config-shortcuts__actions-cell`},xa={class:`config-shortcuts__footer`},Sa=f(m({__name:`ServiceConfigShortcuts`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let i=e,{t:o}=N(),s=t,c=d([...i.service.shortcuts??[]]),u=null;a(()=>i.service,e=>{u||(c.value=[...e.shortcuts??[]])});function f(){c.value=[...c.value,{id:he(),label:``,command:``,cwd:void 0}]}function p(e){c.value=c.value.filter((t,n)=>n!==e)}function m(e,t,n){c.value=c.value.map((r,i)=>i===e?{...r,[t]:n||void 0}:r)}function g(){u&&clearTimeout(u),u=setTimeout(()=>{s(`save`,c.value),u=null},150)}function _(e){p(e),g()}return(e,t)=>(G(),Y(`div`,da,[c.value.length===0?(G(),Y(`div`,fa,[l(`p`,null,h(K(o)(`serviceConfigShortcuts.empty`)),1)])):w(``,!0),(G(!0),Y(v,null,z(c.value,(e,t)=>(G(),Y(`div`,{key:e.id,class:`config-card`},[l(`div`,pa,[l(`div`,ma,[l(`label`,{class:`config-shortcuts__label`,for:`shortcut-label-${t}`},h(K(o)(`serviceConfigShortcuts.label`)),9,ha),O(K(r),{id:`shortcut-label-${t}`,"model-value":e.label,placeholder:K(o)(`serviceConfigShortcuts.labelPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-label-input`,"onUpdate:modelValue":e=>m(t,`label`,e),onBlur:g,onKeydown:V(n(g,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),l(`div`,ga,[l(`label`,{class:`config-shortcuts__label`,for:`shortcut-command-${t}`},h(K(o)(`serviceConfigShortcuts.command`)),9,_a),O(K(r),{id:`shortcut-command-${t}`,"model-value":e.command,placeholder:K(o)(`serviceConfigShortcuts.commandPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-command-input`,"onUpdate:modelValue":e=>m(t,`command`,e),onBlur:g,onKeydown:V(n(g,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),l(`div`,va,[l(`label`,{class:`config-shortcuts__label`,for:`shortcut-cwd-${t}`},h(K(o)(`serviceConfigShortcuts.workingDir`)),9,ya),O(K(r),{id:`shortcut-cwd-${t}`,"model-value":e.cwd??``,placeholder:K(o)(`serviceConfigShortcuts.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>m(t,`cwd`,e),onBlur:g,onKeydown:V(n(g,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),l(`div`,ba,[O(K(S),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>_(t)},null,8,[`onClick`])])])]))),128)),l(`div`,xa,[O(K(S),{label:K(o)(`serviceConfigShortcuts.addShortcut`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,"data-testid":`add-shortcut-btn`,onClick:f},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-d6ecb989`]]),Ca={class:`config-log-parsers`},wa={class:`config-card`},Ta={class:`config-card__header`},Ea={class:`config-card__hint`},Da={class:`config-card`},Oa={class:`config-card__header`},ka={class:`config-card__header-hint`},Aa={class:`config-log-parsers__order`},ja={class:`config-log-parsers__name`},Ma={key:1,class:`config-log-parsers__empty`},Na={class:`config-log-parsers__add-row`},Pa={class:`config-log-parsers__footer`},Fa=f(m({__name:`ServiceConfigLogs`,props:{service:{}},emits:[`save`],setup(e,{emit:n}){let r=e,i=n,c=I(),{t:u}=N(),f=je(),p=d([...r.service.parserIds??[]]);a(()=>r.service,e=>{p.value=[...e.parserIds??[]]});let m=s(()=>[...f.parsers].filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name))),_=s(()=>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));a(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]}),a(()=>f.parsers,()=>{y.value=p.value.map(e=>f.parsers.find(t=>t.id===e)).filter(e=>e!==void 0)});let b=d(null);function x(e){if(!e)return;let t=f.parsers.find(t=>t.id===e);t&&(p.value=[...p.value,e],y.value=[...y.value,t],b.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 T(){p.value=y.value.map(e=>e.id),E()}function E(){i(`save`,{parserIds:y.value.map(e=>e.id)})}return ae(()=>{f.fetchParsers(),f.subscribeParsers()}),F(()=>{f.unsubscribeParsers()}),(e,n)=>(G(),Y(`div`,Ca,[l(`div`,wa,[l(`div`,Ta,[n[3]||=l(`i`,{class:`pi pi-code`},null,-1),l(`span`,null,h(K(u)(`serviceConfigLogs.jsParsers`)),1)]),l(`small`,Ea,h(K(u)(`serviceConfigLogs.jsParsersHint`)),1)]),l(`div`,Da,[l(`div`,Oa,[n[4]||=l(`i`,{class:`pi pi-sort-alt`},null,-1),l(`span`,null,h(K(u)(`serviceConfigLogs.executionOrder`)),1),l(`small`,ka,h(K(u)(`serviceConfigLogs.executionOrderHint`)),1)]),y.value.length>0?(G(),g(K(U),{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:T},{default:t(()=>[(G(!0),Y(v,null,z(y.value,(e,r)=>(G(),Y(`div`,{key:e.id,class:`config-log-parsers__drag-row`,"data-testid":`log-parsers-drag-row`},[n[5]||=l(`span`,{class:`drag-handle`,"data-testid":`drag-handle`},[l(`i`,{class:`pi pi-bars`})],-1),l(`span`,Aa,h(r+1),1),l(`span`,ja,h(e.name),1),e.builtin?(G(),g(K(o),{key:0,severity:`secondary`,class:`config-log-parsers__builtin-badge`},{default:t(()=>[D(h(K(u)(`serviceConfigLogs.builtin`)),1)]),_:1})):w(``,!0),e.enabled?w(``,!0):(G(),g(K(o),{key:1,severity:`warn`,class:`config-log-parsers__disabled-badge`},{default:t(()=>[D(h(K(u)(`serviceConfigLogs.disabled`)),1)]),_:1})),O(K(S),{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`])):w(``,!0),y.value.length===0?(G(),Y(`div`,Ma,h(K(u)(`serviceConfigLogs.empty`)),1)):w(``,!0),l(`div`,Na,[O(K(H),{modelValue:b.value,"onUpdate:modelValue":[n[1]||=e=>b.value=e,x],options:_.value,"option-label":`name`,"option-value":`id`,placeholder:K(u)(`serviceConfigLogs.addParser`),class:`config-log-parsers__add-select`,loading:K(f).loading,disabled:_.value.length===0},{option:t(({option:e})=>[l(`span`,null,h(e.name),1),e.builtin?(G(),g(K(o),{key:0,severity:`secondary`,class:`ml-2`,style:{"font-size":`0.65rem`,padding:`0.1rem 0.35rem`}},{default:t(()=>[D(h(K(u)(`serviceConfigLogs.builtin`)),1)]),_:1})):w(``,!0)]),_:1},8,[`modelValue`,`options`,`placeholder`,`loading`,`disabled`])])]),l(`div`,Pa,[O(K(S),{label:K(u)(`serviceConfigLogs.manageParsers`),icon:`pi pi-cog`,severity:`secondary`,outlined:``,size:`small`,onClick:n[2]||=e=>K(c).push({name:`settings`,query:{section:`parsers`}})},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-73b711b6`]]),Ia={class:`config-log-sources`},La={class:`config-card`},Ra={class:`config-card__header`},za={class:`config-card__hint`},Ba={key:0,class:`config-card config-card--list`},Va={class:`source-row__info`},Ha={class:`source-row__type`},Ua={class:`source-row__label`},Wa={class:`source-row__actions`},Ga={key:1,class:`config-log-sources__empty`},Ka={class:`config-log-sources__footer`},qa={class:`dialog-form`},Ja={class:`dialog-form__field`},Ya={for:`lsrc-type`,class:`dialog-form__label`},Xa={class:`dialog-form__field`},Za={for:`lsrc-path-file`,class:`dialog-form__label`},Qa={class:`dialog-form__field`},$a={for:`lsrc-encoding-file`,class:`dialog-form__label`},eo={class:`dialog-form__field dialog-form__field--row`},to={for:`lsrc-startFromEnd-file`,class:`dialog-form__label`},no={class:`dialog-form__field dialog-form__field--row`},ro={for:`lsrc-createIfNotExists-file`,class:`dialog-form__label`},io={class:`dialog-form__field`},ao={for:`lsrc-connectionString-mongo`,class:`dialog-form__label`},oo={class:`dialog-form__row`},so={class:`dialog-form__field`},co={class:`dialog-form__field`},lo={class:`dialog-form__row`},uo={class:`dialog-form__field`},fo={class:`dialog-form__field`},po={class:`dialog-form__field`},mo={class:`dialog-form__row`},ho={class:`dialog-form__field dialog-form__field--grow`},go={class:`dialog-form__field dialog-form__field--port`},_o={class:`dialog-form__row`},vo={class:`dialog-form__field`},yo={class:`dialog-form__field`},bo={class:`dialog-form__row`},xo={class:`dialog-form__field`},So={class:`dialog-form__field`},Co={class:`dialog-form__row`},wo={class:`dialog-form__field`},To={class:`dialog-form__field`},Eo={class:`dialog-form__row`},Do={class:`dialog-form__field`},Oo={class:`dialog-form__field`},ko={class:`dialog-form__field`},Ao={key:3,class:`dialog-form__hint-block`},jo=f(m({__name:`ServiceConfigLogSources`,props:{service:{}},emits:[`save`],setup(e,{emit:n}){let{t:i}=N(),o=e,s=n,c=[{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 u(e){return e===`console`?{type:`console`}:e===`file`?{type:`file`,path:``,encoding:`utf-8`,startFromEnd:!0,createIfNotExists:!1}:e===`mongo`?{type:`mongo`,connectionString:``,database:``,collection:``,timestampField:`timestamp`,messageField:`message`}:{type:`mysql`,host:`localhost`,port:3306,user:``,password:``,database:``,table:``,timestampColumn:`created_at`,messageColumn:`message`,pollIntervalMs:2e3}}let f=d([...o.service.logSources??[]]);a(()=>o.service.logSources,e=>{f.value=[...e??[]]});let p=d(!1),m=d(null),g=d(u(`console`));function _(){m.value=null,g.value=u(`file`),p.value=!0}function y(e){m.value=e,g.value={...f.value[e]},p.value=!0}function b(e){g.value=u(e)}function C(){m.value===null?f.value=[...f.value,{...g.value}]:f.value=f.value.map((e,t)=>t===m.value?{...g.value}:e),p.value=!1,s(`save`,{logSources:f.value})}function T(e){f.value=f.value.filter((t,n)=>n!==e),s(`save`,{logSources:f.value})}function E(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(e,n)=>(G(),Y(`div`,Ia,[l(`div`,La,[l(`div`,Ra,[n[23]||=l(`i`,{class:`pi pi-inbox`},null,-1),l(`span`,null,h(K(i)(`serviceConfigLogSources.title`)),1)]),l(`small`,za,h(K(i)(`serviceConfigLogSources.hint`)),1)]),f.value.length>0?(G(),Y(`div`,Ba,[(G(!0),Y(v,null,z(f.value,(e,t)=>(G(),Y(`div`,{key:t,class:`source-row`},[l(`i`,{class:x(`pi ${A(e.type)} source-row__icon`)},null,2),l(`div`,Va,[l(`span`,Ha,h(e.type),1),l(`span`,Ua,h(E(e)),1)]),l(`div`,Wa,[O(K(S),{icon:`pi pi-pencil`,text:``,size:`small`,severity:`secondary`,onClick:e=>y(t)},null,8,[`onClick`]),O(K(S),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>T(t)},null,8,[`onClick`])])]))),128))])):(G(),Y(`div`,Ga,[n[24]||=l(`i`,{class:`pi pi-inbox config-log-sources__empty-icon`},null,-1),l(`p`,null,h(K(i)(`serviceConfigLogSources.empty`)),1),l(`small`,null,h(K(i)(`serviceConfigLogSources.emptyHint`)),1)])),l(`div`,Ka,[O(K(S),{label:K(i)(`serviceConfigLogSources.addSource`),icon:`pi pi-plus`,size:`small`,onClick:_},null,8,[`label`])]),O(K(k),{visible:p.value,"onUpdate:visible":n[22]||=e=>p.value=e,header:m.value===null?K(i)(`serviceConfigLogSources.addDialog`):K(i)(`serviceConfigLogSources.editDialog`),modal:``,style:{width:`520px`}},{footer:t(()=>[O(K(S),{label:K(i)(`serviceConfigLogSources.cancel`),severity:`secondary`,outlined:``,onClick:n[21]||=e=>p.value=!1},null,8,[`label`]),O(K(S),{label:m.value===null?K(i)(`serviceConfigLogSources.add`):K(i)(`serviceConfigLogSources.save`),icon:`pi pi-check`,onClick:C},null,8,[`label`])]),default:t(()=>[l(`div`,qa,[l(`div`,Ja,[l(`label`,Ya,h(K(i)(`serviceConfigLogSources.type`)),1),O(K(H),{"input-id":`lsrc-type`,"model-value":g.value.type,options:c,"option-label":`label`,"option-value":`value`,class:`dialog-form__input`,"onUpdate:modelValue":b},null,8,[`model-value`])]),g.value.type===`file`?(G(),Y(v,{key:0},[l(`div`,Xa,[l(`label`,Za,[D(h(K(i)(`serviceConfigLogSources.path`))+` `,1),n[25]||=l(`span`,{class:`dialog-form__required`},`*`,-1)]),O(K(r),{id:`lsrc-path-file`,modelValue:g.value.path,"onUpdate:modelValue":n[0]||=e=>g.value.path=e,class:`dialog-form__input`,placeholder:`/var/log/app.log`},null,8,[`modelValue`])]),l(`div`,Qa,[l(`label`,$a,h(K(i)(`serviceConfigLogSources.encoding`)),1),O(K(r),{id:`lsrc-encoding-file`,modelValue:g.value.encoding,"onUpdate:modelValue":n[1]||=e=>g.value.encoding=e,class:`dialog-form__input`,placeholder:`utf-8`},null,8,[`modelValue`])]),l(`div`,eo,[l(`label`,to,h(K(i)(`serviceConfigLogSources.startFromEnd`)),1),O(K(Z),{"input-id":`lsrc-startFromEnd-file`,modelValue:g.value.startFromEnd,"onUpdate:modelValue":n[2]||=e=>g.value.startFromEnd=e},null,8,[`modelValue`])]),l(`div`,no,[l(`label`,ro,h(K(i)(`serviceConfigLogSources.createIfNotExists`)),1),O(K(Z),{"input-id":`lsrc-createIfNotExists-file`,modelValue:g.value.createIfNotExists,"onUpdate:modelValue":n[3]||=e=>g.value.createIfNotExists=e},null,8,[`modelValue`])])],64)):g.value.type===`mongo`?(G(),Y(v,{key:1},[l(`div`,io,[l(`label`,ao,[D(h(K(i)(`serviceConfigLogSources.connectionString`))+` `,1),n[26]||=l(`span`,{class:`dialog-form__required`},`*`,-1)]),O(K(r),{id:`lsrc-connectionString-mongo`,modelValue:g.value.connectionString,"onUpdate:modelValue":n[4]||=e=>g.value.connectionString=e,class:`dialog-form__input`,placeholder:`mongodb://user:pass@host:27017`,type:`password`,autocomplete:`off`},null,8,[`modelValue`])]),l(`div`,oo,[l(`div`,so,[n[27]||=l(`label`,{for:`lsrc-database-mongo`,class:`dialog-form__label`},[D(`Database `),l(`span`,{class:`dialog-form__required`},`*`)],-1),O(K(r),{id:`lsrc-database-mongo`,modelValue:g.value.database,"onUpdate:modelValue":n[5]||=e=>g.value.database=e,class:`dialog-form__input`,placeholder:`mydb`},null,8,[`modelValue`])]),l(`div`,co,[n[28]||=l(`label`,{for:`lsrc-collection-mongo`,class:`dialog-form__label`},[D(`Collection `),l(`span`,{class:`dialog-form__required`},`*`)],-1),O(K(r),{id:`lsrc-collection-mongo`,modelValue:g.value.collection,"onUpdate:modelValue":n[6]||=e=>g.value.collection=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),l(`div`,lo,[l(`div`,uo,[n[29]||=l(`label`,{for:`lsrc-timestampField-mongo`,class:`dialog-form__label`},`Timestamp field`,-1),O(K(r),{id:`lsrc-timestampField-mongo`,modelValue:g.value.timestampField,"onUpdate:modelValue":n[7]||=e=>g.value.timestampField=e,class:`dialog-form__input`,placeholder:`timestamp`},null,8,[`modelValue`])]),l(`div`,fo,[n[30]||=l(`label`,{for:`lsrc-messageField-mongo`,class:`dialog-form__label`},`Message field`,-1),O(K(r),{id:`lsrc-messageField-mongo`,modelValue:g.value.messageField,"onUpdate:modelValue":n[8]||=e=>g.value.messageField=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),l(`div`,po,[n[31]||=l(`label`,{for:`lsrc-levelField-mongo`,class:`dialog-form__label`},[D(`Level field `),l(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),O(K(r),{id:`lsrc-levelField-mongo`,modelValue:g.value.levelField,"onUpdate:modelValue":n[9]||=e=>g.value.levelField=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])])],64)):g.value.type===`mysql`?(G(),Y(v,{key:2},[l(`div`,mo,[l(`div`,ho,[n[32]||=l(`label`,{for:`lsrc-host-mysql`,class:`dialog-form__label`},[D(`Host `),l(`span`,{class:`dialog-form__required`},`*`)],-1),O(K(r),{id:`lsrc-host-mysql`,modelValue:g.value.host,"onUpdate:modelValue":n[10]||=e=>g.value.host=e,class:`dialog-form__input`,placeholder:`localhost`},null,8,[`modelValue`])]),l(`div`,go,[n[33]||=l(`label`,{for:`lsrc-port-mysql`,class:`dialog-form__label`},`Port`,-1),O(K(X),{"input-id":`lsrc-port-mysql`,modelValue:g.value.port,"onUpdate:modelValue":n[11]||=e=>g.value.port=e,min:1,max:65535,class:`dialog-form__input`},null,8,[`modelValue`])])]),l(`div`,_o,[l(`div`,vo,[n[34]||=l(`label`,{for:`lsrc-user-mysql`,class:`dialog-form__label`},[D(`User `),l(`span`,{class:`dialog-form__required`},`*`)],-1),O(K(r),{id:`lsrc-user-mysql`,modelValue:g.value.user,"onUpdate:modelValue":n[12]||=e=>g.value.user=e,class:`dialog-form__input`,placeholder:`root`},null,8,[`modelValue`])]),l(`div`,yo,[n[35]||=l(`label`,{for:`lsrc-password-mysql`,class:`dialog-form__label`},`Password`,-1),O(K(r),{id:`lsrc-password-mysql`,modelValue:g.value.password,"onUpdate:modelValue":n[13]||=e=>g.value.password=e,class:`dialog-form__input`,type:`password`,autocomplete:`new-password`},null,8,[`modelValue`])])]),l(`div`,bo,[l(`div`,xo,[n[36]||=l(`label`,{for:`lsrc-database-mysql`,class:`dialog-form__label`},[D(`Database `),l(`span`,{class:`dialog-form__required`},`*`)],-1),O(K(r),{id:`lsrc-database-mysql`,modelValue:g.value.database,"onUpdate:modelValue":n[14]||=e=>g.value.database=e,class:`dialog-form__input`,placeholder:`app_db`},null,8,[`modelValue`])]),l(`div`,So,[n[37]||=l(`label`,{for:`lsrc-table-mysql`,class:`dialog-form__label`},[D(`Table `),l(`span`,{class:`dialog-form__required`},`*`)],-1),O(K(r),{id:`lsrc-table-mysql`,modelValue:g.value.table,"onUpdate:modelValue":n[15]||=e=>g.value.table=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),l(`div`,Co,[l(`div`,wo,[n[38]||=l(`label`,{for:`lsrc-timestampColumn-mysql`,class:`dialog-form__label`},`Timestamp column`,-1),O(K(r),{id:`lsrc-timestampColumn-mysql`,modelValue:g.value.timestampColumn,"onUpdate:modelValue":n[16]||=e=>g.value.timestampColumn=e,class:`dialog-form__input`,placeholder:`created_at`},null,8,[`modelValue`])]),l(`div`,To,[n[39]||=l(`label`,{for:`lsrc-messageColumn-mysql`,class:`dialog-form__label`},`Message column`,-1),O(K(r),{id:`lsrc-messageColumn-mysql`,modelValue:g.value.messageColumn,"onUpdate:modelValue":n[17]||=e=>g.value.messageColumn=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),l(`div`,Eo,[l(`div`,Do,[n[40]||=l(`label`,{for:`lsrc-levelColumn-mysql`,class:`dialog-form__label`},[D(`Level column `),l(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),O(K(r),{id:`lsrc-levelColumn-mysql`,modelValue:g.value.levelColumn,"onUpdate:modelValue":n[18]||=e=>g.value.levelColumn=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])]),l(`div`,Oo,[n[41]||=l(`label`,{for:`lsrc-pollIntervalMs-mysql`,class:`dialog-form__label`},`Poll interval (ms)`,-1),O(K(X),{"input-id":`lsrc-pollIntervalMs-mysql`,modelValue:g.value.pollIntervalMs,"onUpdate:modelValue":n[19]||=e=>g.value.pollIntervalMs=e,min:500,max:6e4,class:`dialog-form__input`},null,8,[`modelValue`])])]),l(`div`,ko,[n[42]||=l(`label`,{for:`lsrc-query-mysql`,class:`dialog-form__label`},[D(`Custom query `),l(`span`,{class:`dialog-form__hint`},[D(`(optional, must include `),l(`code`,null,`WHERE … > ?`),D(`)`)])],-1),O(K(r),{id:`lsrc-query-mysql`,modelValue:g.value.query,"onUpdate:modelValue":n[20]||=e=>g.value.query=e,class:`dialog-form__input`,placeholder:`SELECT * FROM logs WHERE created_at > ? ORDER BY id ASC`},null,8,[`modelValue`])])],64)):g.value.type===`console`?(G(),Y(`small`,Ao,`The console source captures stdout/stderr and is always active. Adding it here has no effect unless you want to track it explicitly.`)):w(``,!0)])]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-1ceb461a`]]),Mo={class:`config-traefik`},No={class:`traefik-entry__fields`},Po=f(m({__name:`ServiceConfigTraefik`,props:{service:{}},emits:[`save`],setup(e,{emit:i}){let o=e,s=i,c=d([...o.service.localUrls??[]]),u=d(null);ae(async()=>{let e=q(o.service);e&&(u.value=(await _.settings.getAgentTraefikConfig.query({agentId:e})).enabled)});let f=null;a(()=>o.service,e=>{f||(c.value=[...e.localUrls??[]])});function p(){c.value=[...c.value,{url:``,port:3e3}]}function m(e){c.value=c.value.filter((t,n)=>n!==e),y()}function h(e,t,n){c.value=c.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function y(){f&&clearTimeout(f),f=setTimeout(()=>{s(`save`,{localUrls:c.value.filter(e=>e.url.trim())}),f=null},150)}return(e,i)=>(G(),Y(`div`,Mo,[u.value===!1?(G(),g(K(b),{key:0,severity:`warn`,closable:!1},{default:t(()=>[i[1]||=D(` Traefik n'est pas activé. Configurez-le dans `,-1),O(K(P),{to:{name:`settings`,query:{section:`agents`}}},{default:t(()=>[...i[0]||=[D(`Paramètres → Agents`,-1)]]),_:1}),i[2]||=D(` (bouton Traefik sur la ligne de l'agent) pour que ces URLs soient actives. `,-1)]),_:1})):w(``,!0),(G(!0),Y(v,null,z(c.value,(e,t)=>(G(),Y(`div`,{key:t,class:`traefik-entry`},[l(`div`,No,[O(K(r),{"model-value":e.url,class:`traefik-entry__url`,placeholder:`mon-app.local.mondomaine.com`,"onUpdate:modelValue":e=>h(t,`url`,e),onBlur:y,onKeydown:V(n(y,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`]),O(K(X),{"model-value":e.port,class:`traefik-entry__port`,min:1,max:65535,"use-grouping":!1,placeholder:`3000`,"onUpdate:modelValue":e=>{h(t,`port`,e??3e3),y()}},null,8,[`model-value`,`onUpdate:modelValue`]),O(K(S),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:e=>m(t)},null,8,[`onClick`])])]))),128)),O(K(S),{icon:`pi pi-plus`,label:`Ajouter une URL`,size:`small`,outlined:``,onClick:p})]))}}),[[`__scopeId`,`data-v-4637fc30`]]),Fo={class:`config-view`,"data-testid":`config-view`},Io={class:`config-view__header`},Lo={class:`config-view__title`},Ro={class:`config-view__actions`},zo=f(m({__name:`ServiceConfigView`,props:{service:{},projectId:{}},emits:[`remove-service`],setup(e,{emit:n}){let r=e,i=n,{t:a}=N(),o=W(),c=ee(),u=M(),{isDebug:d}=Gt(),f=ue(),p=I(),m=[`general`,`commands`,`shortcuts`,`env`,`health`,`log-parsers`,`log-sources`,`traefik`],g=s(()=>{let e=f.query.configTab;return m.includes(e)?e:`general`});function _(e){p.replace({query:{...f.query,configTab:e}})}let v=s(()=>c.getByRef({id:r.projectId,orgId:u.activeOrgId})?.activeEnvironmentId);async function y(e,t){await t()?d.value&&console.debug(`[autosave] ${e} saved`):console.error(`[autosave] ${e} failed:`,o.error??`Save failed`)}async function b(e){await y(`General`,()=>o.update(r.service.id,e))}async function x(e){await y(`Commands`,()=>o.update(r.service.id,e))}async function C(e){await y(`Health check`,()=>o.update(r.service.id,{healthCheck:e??null}))}async function w(e){await y(`Shortcuts`,()=>o.update(r.service.id,{shortcuts:e}))}async function T(e){await y(`Docker`,()=>o.update(r.service.id,{dockerConfig:e}))}async function E(e){await y(`Log parsers`,()=>o.update(r.service.id,e))}async function D(e){await y(`Log sources`,()=>o.update(r.service.id,e))}async function k(e){await y(`Traefik`,()=>o.update(r.service.id,e))}function A(){i(`remove-service`,r.service.id)}return(n,r)=>(G(),Y(`div`,Fo,[l(`div`,Io,[l(`h2`,Lo,h(K(a)(`serviceConfigView.title`)),1),l(`div`,Ro,[O(K(S),{label:K(a)(`serviceConfigView.remove`),icon:`pi pi-trash`,severity:`danger`,size:`small`,outlined:``,onClick:A},null,8,[`label`])])]),O(K(xe),{value:g.value,class:`config-view__tabs`,"onUpdate:value":_},{default:t(()=>[O(K(ye),null,{default:t(()=>[O(K(Q),{value:`general`,"data-testid":`tab-config`},{default:t(()=>[r[0]||=l(`i`,{class:`pi pi-cog tab-icon`},null,-1),l(`span`,null,h(K(a)(`serviceConfigView.tabGeneral`)),1)]),_:1}),O(K(Q),{value:`commands`,"data-testid":`tab-commands`},{default:t(()=>[r[1]||=l(`i`,{class:`pi pi-code tab-icon`},null,-1),l(`span`,null,h(K(a)(`serviceConfigView.tabCommands`)),1)]),_:1}),O(K(Q),{value:`shortcuts`,"data-testid":`tab-shortcuts`},{default:t(()=>[r[2]||=l(`i`,{class:`pi pi-bolt tab-icon`},null,-1),l(`span`,null,h(K(a)(`serviceConfigView.tabShortcuts`)),1)]),_:1}),O(K(Q),{value:`env`,"data-testid":`tab-env`},{default:t(()=>[r[3]||=l(`i`,{class:`pi pi-database tab-icon`},null,-1),l(`span`,null,h(K(a)(`serviceConfigView.tabEnvironment`)),1)]),_:1}),O(K(Q),{value:`health`},{default:t(()=>[r[4]||=l(`i`,{class:`pi pi-heart tab-icon`},null,-1),l(`span`,null,h(K(a)(`serviceConfigView.tabHealthCheck`)),1)]),_:1}),O(K(Q),{value:`log-parsers`,"data-testid":`tab-log-parsers`},{default:t(()=>[r[5]||=l(`i`,{class:`pi pi-list tab-icon`},null,-1),l(`span`,null,h(K(a)(`serviceConfigView.tabLogParsers`)),1)]),_:1}),O(K(Q),{value:`log-sources`},{default:t(()=>[r[6]||=l(`i`,{class:`pi pi-inbox tab-icon`},null,-1),l(`span`,null,h(K(a)(`serviceConfigView.tabLogSources`)),1)]),_:1}),O(K(Q),{value:`traefik`},{default:t(()=>[...r[7]||=[l(`i`,{class:`pi pi-server tab-icon`},null,-1),l(`span`,null,`Traefik`,-1)]]),_:1})]),_:1}),O(K(be),null,{default:t(()=>[O(K($),{value:`general`},{default:t(()=>[O(On,{service:e.service,onSave:b},null,8,[`service`])]),_:1}),O(K($),{value:`commands`},{default:t(()=>[O(ti,{service:e.service,onSave:x,onDockerSave:T},null,8,[`service`])]),_:1}),O(K($),{value:`shortcuts`,"data-testid":`tabpanel-shortcuts`},{default:t(()=>[O(Sa,{service:e.service,onSave:w},null,8,[`service`])]),_:1}),O(K($),{value:`env`},{default:t(()=>[O(Vi,{service:e.service,"project-id":e.projectId,"active-environment-id":v.value},null,8,[`service`,`project-id`,`active-environment-id`])]),_:1}),O(K($),{value:`health`},{default:t(()=>[O(ua,{service:e.service,onSave:C},null,8,[`service`])]),_:1}),O(K($),{value:`log-parsers`,"data-testid":`tabpanel-log-parsers`},{default:t(()=>[O(Fa,{service:e.service,onSave:E},null,8,[`service`])]),_:1}),O(K($),{value:`log-sources`},{default:t(()=>[O(jo,{service:e.service,onSave:D},null,8,[`service`])]),_:1}),O(K($),{value:`traefik`},{default:t(()=>[O(Po,{service:e.service,onSave:k},null,8,[`service`])]),_:1})]),_:1})]),_:1},8,[`value`])]))}}),[[`__scopeId`,`data-v-af965568`]]),Bo={key:0,class:`service-detail`},Vo={key:1,class:`service-detail__not-found`},Ho={key:2,class:`service-detail__not-found`},Uo=f(m({__name:`ServiceDetailPage`,setup(t){let n=ue(),r=I(),i=te(),o=B(),{t:c}=N(),u=W(),f=ce(),m=ee(),{setServiceContext:_}=e(),v=s(()=>n.params.id);a(v,e=>_(e),{immediate:!0}),F(()=>_(null));let y=s(()=>{let e=n.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`||e===`wiki`?e:`terminal`}),b=d(null),x=d(!1),S=s(()=>u.getById(v.value)||(b.value?.id===v.value?b.value:null));a(v,async e=>{if(b.value=null,!(!e||u.getById(e))){x.value=!0;try{b.value=await u.fetchOne(e)}finally{x.value=!1}}},{immediate:!0});let C=s(()=>f.getByService(v.value)),T=s(()=>m.currentProject?.id??``);function E(e){let t=u.getById(e);o.require({message:c(`serviceDetail.deleteConfirmMessage`,{name:t?.name??e}),header:c(`serviceDetail.deleteConfirmHeader`),icon:`pi pi-exclamation-triangle`,rejectLabel:c(`actions.cancel`),acceptLabel:c(`actions.delete`),acceptProps:{severity:`danger`},accept:async()=>{await u.remove(e)&&(i.add({severity:`success`,summary:c(`serviceDetail.removed`),detail:c(`serviceDetail.deleted`),life:3e3}),r.push(`/`))}})}return(e,t)=>S.value?(G(),Y(`div`,Bo,[y.value===`terminal`?(G(),g(Ot,{key:`terminal-`+v.value,service:S.value,processes:C.value},null,8,[`service`,`processes`])):y.value===`metrics`?(G(),g(zt,{key:`metrics-`+v.value,service:S.value,processes:C.value},null,8,[`service`,`processes`])):y.value===`config`?(G(),g(zo,{key:`config-`+v.value,service:S.value,"project-id":T.value,onRemoveService:E},null,8,[`service`,`project-id`])):y.value===`git`?(G(),g(p,{key:`git-`+v.value,"service-id":v.value},null,8,[`service-id`])):y.value===`wiki`?(G(),g(Me,{key:`wiki-`+v.value,scope:`service:${v.value}`},null,8,[`scope`])):w(``,!0)])):x.value?(G(),Y(`div`,Vo)):(G(),Y(`div`,Ho,[l(`p`,null,h(K(c)(`serviceDetail.notFound`)),1)]))}}),[[`__scopeId`,`data-v-e5220f62`]]);export{Uo as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Aa as e,Ai as t,Dn as n,Fi as r,Ii as i,Ja as a,Jn as o,Ka as ee,Ki as s,La as c,Ln as l,Mi as u,Mn as te,Qn as d,Qt as f,Ri as p,Wi as m,Zt as ne,bn as re,br as ie,dr as ae,dt as oe,gr as se,ha as ce,ki as h,la as le,ln as g,mt as ue,p as de,pa as _,ro as v,ur as fe,zi as y}from"./index-SrQFBx_K.js";import{n as b}from"./plus-Cs39ICwL.js";import{t as pe}from"./fieldset-CvPPXvgb.js";import{t as me}from"./toggleswitch-BhJmSx1t.js";import{t as he}from"./autocomplete-qVwP27uM.js";import{t as x}from"./divider-D2zmU0b9.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=o(s({__name:`ServiceFormPage`,props:{id:{}},setup(o){let s=o,F=ae(),qe=fe(),I=se(),L=ne(),R=ue(),z=oe(),B=re(),Je=de(),{t:V}=ie(),H=r(()=>!!s.id),U=r(()=>qe.query.projectId),W=a(!1),G=a(!1),K=a(null),q=a(null),J=a(!1),Y=ee({projectId:``,agentId:P,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),X=a([]),Ye=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Xe=r(()=>L.projects.map(e=>({label:e.name,value:e.id}))),Z=r(()=>[{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(s.id){W.value=!0;try{let e=await l.service.get.query({id:s.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:f(e)??V(`serviceForm.failedToLoad`),life:5e3}),F.back()}finally{W.value=!1}}}async function $(){if(!(!H.value||!s.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 l.service.update.mutate({id:s.id,...e}))?.stoppedForAgentChange?(K.value=e.agentId,q.value=s.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:f(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:f(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=L.getByRef({id:Y.projectId,orgId:B.activeOrgId})??L.getById(Y.projectId),t=await R.create({name:Y.name.trim(),...Y.agentId&&Y.agentId!==P?{agentId:Y.agentId}:{},projectId:Y.projectId,orgId:e?.orgId??null});if(!t)throw Error(R.error??`Failed to create service`);await L.addService(e??{id:Y.projectId},t.id),I.add({severity:`success`,summary:V(`serviceForm.serviceCreated`),detail:V(`serviceForm.configureAfterCreate`),life:3e3}),F.push({name:`service-detail`,params:{id:t.id,tab:`config`}})}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:f(e)??V(`serviceForm.failedToSave`),life:5e3})}finally{G.value=!1}}return le(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()}),(r,a)=>(_(),y(`div`,ge,[i(`div`,_e,[m(v(d),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:a[0]||=e=>v(F).back()}),i(`h1`,null,c(H.value?v(V)(`serviceForm.editTitle`):v(V)(`serviceForm.createTitle`)),1)]),q.value?(_(),y(`div`,ve,[i(`span`,null,c(v(V)(`serviceForm.agentChangedServiceStopped`)),1),m(v(d),{label:v(V)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:J.value,onClick:et},null,8,[`label`,`loading`]),m(v(d),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:a[1]||=e=>{q.value=null,K.value=null}})])):p(``,!0),W.value?(_(),y(`div`,ye,[m(v(te))])):(_(),y(`form`,{key:2,class:`service-form`,onSubmit:t(tt,[`prevent`])},[H.value?(_(),y(u,{key:1},[i(`div`,M,[i(`div`,N,[i(`div`,xe,[i(`label`,Se,c(v(V)(`serviceForm.nameLabelShort`)),1),m(v(n),{id:`svc-name-edit`,modelValue:Y.name,"onUpdate:modelValue":a[6]||=e=>Y.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:h(t($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Ce,[i(`label`,we,c(v(V)(`serviceForm.runnerLabel`)),1),m(v(g),{id:`svc-runner`,modelValue:Y.runner,"onUpdate:modelValue":a[7]||=e=>Y.runner=e,options:Ye,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),i(`div`,Te,[i(`label`,Ee,c(v(V)(`serviceForm.agentLabel`)),1),m(v(g),{id:`svc-agent-edit`,modelValue:Y.agentId,"onUpdate:modelValue":a[8]||=e=>Y.agentId=e,options:Z.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),i(`small`,De,c(v(V)(`serviceForm.agentHintEdit`)),1)]),i(`div`,Oe,[i(`div`,ke,[i(`label`,Ae,c(v(V)(`serviceForm.cwdLabel`)),1),m(v(n),{id:`svc-cwd`,modelValue:Y.cwd,"onUpdate:modelValue":a[9]||=e=>Y.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:h(t($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,je,[i(`label`,Me,c(v(V)(`serviceForm.portsLabel`)),1),m(v(he),{inputId:`svc-ports`,modelValue:Y.ports,"onUpdate:modelValue":a[10]||=e=>Y.ports=e,multiple:``,typeahead:!1,placeholder:v(V)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),i(`div`,Ne,[m(v(me),{modelValue:Y.autoRestart,"onUpdate:modelValue":a[11]||=e=>Y.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),i(`label`,Pe,c(v(V)(`serviceForm.autoRestart`)),1)])]),m(v(x)),i(`div`,Fe,[i(`div`,Ie,[i(`h3`,null,c(v(V)(`serviceForm.envVars`)),1),m(v(d),{label:v(V)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Q},null,8,[`label`])]),X.value.length===0?(_(),y(`div`,Le,[i(`small`,null,c(v(V)(`serviceForm.noEnvVars`)),1)])):p(``,!0),(_(!0),y(u,null,ce(X.value,(e,r)=>(_(),y(`div`,{key:r,class:`env-row`},[m(v(n),{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:h(t($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),a[17]||=i(`span`,{class:`env-eq`},`=`,-1),m(v(n),{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:h(t($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),m(v(d),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Ze(r),$()}},null,8,[`onClick`])]))),128))]),m(v(x)),m(v(pe),{legend:v(V)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!Y.healthCheck.enabled,onToggle:a[16]||=e=>{Y.healthCheck.enabled=!e.value,$()}},{default:e(()=>[i(`div`,Re,[i(`label`,ze,c(v(V)(`serviceForm.healthCheckPath`)),1),m(v(n),{id:`hc-path`,modelValue:Y.healthCheck.path,"onUpdate:modelValue":a[12]||=e=>Y.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:h(t($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Be,[i(`div`,Ve,[i(`label`,He,c(v(V)(`serviceForm.interval`)),1),m(v(b),{id:`hc-interval`,modelValue:Y.healthCheck.interval,"onUpdate:modelValue":a[13]||=e=>Y.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:h(t($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Ue,[i(`label`,We,c(v(V)(`serviceForm.timeout`)),1),m(v(b),{id:`hc-timeout`,modelValue:Y.healthCheck.timeout,"onUpdate:modelValue":a[14]||=e=>Y.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:h(t($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Ge,[i(`label`,Ke,c(v(V)(`serviceForm.retries`)),1),m(v(b),{id:`hc-retries`,modelValue:Y.healthCheck.retries,"onUpdate:modelValue":a[15]||=e=>Y.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:h(t($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),m(v(x))],64)):(_(),y(u,{key:0},[i(`div`,be,[i(`div`,S,[i(`label`,C,c(v(V)(`serviceForm.projectLabel`)),1),m(v(g),{id:`svc-project`,modelValue:Y.projectId,"onUpdate:modelValue":a[2]||=e=>Y.projectId=e,options:Xe.value,optionLabel:`label`,optionValue:`value`,placeholder:v(V)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,w,c(v(V)(`serviceForm.projectHint`)),1)]),i(`div`,T,[i(`label`,E,c(v(V)(`serviceForm.agentLabel`)),1),m(v(g),{id:`svc-agent`,modelValue:Y.agentId,"onUpdate:modelValue":a[3]||=e=>Y.agentId=e,options:Z.value,optionLabel:`label`,optionValue:`value`,placeholder:v(V)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,D,c(v(V)(`serviceForm.agentHint`)),1)]),i(`div`,O,[i(`label`,k,c(v(V)(`serviceForm.nameLabel`)),1),m(v(n),{id:`svc-name`,modelValue:Y.name,"onUpdate:modelValue":a[4]||=e=>Y.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),i(`small`,A,c(v(V)(`serviceForm.nameConfigHint`)),1)])]),m(v(x)),i(`div`,j,[m(v(d),{label:v(V)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:a[5]||=e=>v(F).back()},null,8,[`label`]),m(v(d),{label:v(V)(`serviceForm.create`),icon:`pi pi-check`,loading:G.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-3efdfa72`]]);export{F as default};
|