@runeya/runeya 2.0.106 → 2.0.108
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-manager-EI7SXPN5.js +9 -0
- package/{chat-N6XONNVG.js → chat-WMT34BXJ.js} +6 -6
- package/{chunk-YQISK6BL.js → chunk-4SJCPFGK.js} +401 -72
- package/chunk-4SJCPFGK.js.map +1 -0
- package/{chunk-5GYBAMHV.js → chunk-D2PF2FYU.js} +2 -2
- package/{chunk-CQCCVPTX.js → chunk-DS66SEYH.js} +29 -7
- package/chunk-DS66SEYH.js.map +1 -0
- package/{chunk-NPORVPEO.js → chunk-RIITTBK3.js} +2 -2
- package/{chunk-LTLOVQJQ.js → chunk-ZFELQG4B.js} +49 -3
- package/chunk-ZFELQG4B.js.map +1 -0
- package/{companion-7AFRBUQI.js → companion-EPINTIC7.js} +4 -4
- package/index.js +3 -3
- package/package.json +1 -1
- package/settings-manager-YSH7ZCLP.js +9 -0
- package/{src-US4EBM64.js → src-LONZKLMU.js} +174 -42
- package/src-LONZKLMU.js.map +1 -0
- package/{vault-resolver-JR7TCITD.js → vault-resolver-57Q2DVOR.js} +8 -2
- package/web/assets/AgentScalarChatInterface.vue-CElmj8LJ.js +13 -0
- package/web/assets/AgentTerminalPage-hk46uwat.js +1 -0
- package/web/assets/AiChatPage-wCWG0TXA.js +1 -0
- package/web/assets/{AppLayout-EhZfYcsl.css → AppLayout-6LmWDDMH.css} +1 -1
- package/web/assets/AppLayout-CHxGU2pw.js +1 -0
- package/web/assets/AuditPage-CSRVCGZi.js +1 -0
- package/web/assets/CloudAccountPage-CfMY69pk.css +1 -0
- package/web/assets/CloudAccountPage-DjQdxy2v.js +1 -0
- package/web/assets/CloudAccountPage-UnmpE1jD.js +1 -0
- package/web/assets/CloudMessagingPage-BRwxGiH2.css +1 -0
- package/web/assets/CloudMessagingPage-jh1AWzKj.js +2 -0
- package/web/assets/DashboardPage-CiihNr9b.js +164 -0
- package/web/assets/DirectoryPickerDialog-Dy1zyHux.js +1 -0
- package/web/assets/{EditorIcon-BWhMJTSH.js → EditorIcon-DvX4OCO1.js} +2 -2
- package/web/assets/EnvironmentForm-D2JDn5Zc.js +108 -0
- package/web/assets/EnvironmentFormPage-BPDo_AMy.js +1 -0
- package/web/assets/EnvironmentListPage-BFT6nMkR.js +1 -0
- package/web/assets/KanbanBoardPage-6vbnqxkk.js +4 -0
- package/web/assets/KanbanBoardPage-CoTX8nB6.css +1 -0
- package/web/assets/KanbanListPage-BBLCnzN8.js +1 -0
- package/web/assets/LaunchProjectPage-BHLH3peH.css +1 -0
- package/web/assets/LaunchProjectPage-Cznkvcvm.js +1 -0
- package/web/assets/LaunchServicesPage-DwkYQefD.js +1 -0
- package/web/assets/LogViewer-x7JfZfN8.js +3 -0
- package/web/assets/OrgKeyPrompt-DPWfDcID.js +1 -0
- package/web/assets/{ProcessControls-B6blcC2b.js → ProcessControls-DPOmEvIy.js} +1 -1
- package/web/assets/ProcessDetailPage-BDsM9dnQ.js +1 -0
- package/web/assets/{ProcessMetrics-luXa72sd.js → ProcessMetrics-C2YI8_M5.js} +2 -2
- package/web/assets/{RandomJobTestPage-uuy7by63.js → RandomJobTestPage-DGA72-VM.js} +1 -1
- package/web/assets/ScenarioEditorPage-B4zEfHEz.js +14 -0
- package/web/assets/SendToChatDialog-8RfesH1F.js +1 -0
- package/web/assets/ServiceControlsBar-DLHgd13V.js +1 -0
- package/web/assets/ServiceDetailPage-na_wgdlZ.js +2 -0
- package/web/assets/ServiceFormPage-Cn_FPvKf.js +1 -0
- package/web/assets/{SettingsPage-CrzdGJlG.css → SettingsPage-B7yKfXK2.css} +1 -1
- package/web/assets/SettingsPage-QBOlzawK.js +2063 -0
- package/web/assets/UnlockPage-A75PjxBe.js +1 -0
- package/web/assets/VariablesTable-D8Oh3-1C.js +1 -0
- package/web/assets/VaultMigrationPage-DA9H-AhS.js +1 -0
- package/web/assets/VersionBadge-DNDzBQcJ.js +1 -0
- package/web/assets/WikiPage-DdY1dy8w.js +1 -0
- package/web/assets/WikiView-Td2Ice0P.js +1 -0
- package/web/assets/add-scalar-classes-D0W5Egzt.js +387 -0
- package/web/assets/{autocomplete-COj-K1Nc.js → autocomplete-DXp2_8rJ.js} +3 -3
- package/web/assets/{basic-shape-diamond.svg-Dw9kJc3l.js → basic-shape-diamond.svg-CUsdhYKG.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-DeTUNvAm.js → basic-shape-hexagon.svg-BPfS9EDA.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-CZe21n5k.js → basic-shape-primary-circle-ellipse-round.svg-C0Y2bkJl.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-DIvBb7uH.js → basic-shape-primary-square-rectangle.svg-1LwihH2B.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-D2Ttq4yx.js → basic-shape-shield.svg-DGe2vG6Z.js} +1 -1
- package/web/assets/{browser-BtPtEa-Z.js → browser-CQu9nsVO.js} +1 -1
- package/web/assets/{browser-8qE0e05E.js → browser-QoavDMKL.js} +1 -1
- package/web/assets/{card-pbrPkbmk.js → card-zbAp8JZP.js} +2 -2
- package/web/assets/{checkbox-g16PaQaN.js → checkbox-BKV4svPN.js} +3 -3
- package/web/assets/{chip-B1jaR69s.js → chip-DA83o4Kg.js} +2 -2
- package/web/assets/client-Cb_xJW-8.js +24 -0
- package/web/assets/cloud-chat.store-BA5nPaX6.js +1 -0
- package/web/assets/cloud-client-C_MUljS_.js +1 -0
- package/web/assets/cloud-session-BRyDsLxd.js +1 -0
- package/web/assets/cloud-session-DqTwnX4d.js +2 -0
- package/web/assets/column-BVUPaQkA.js +907 -0
- package/web/assets/{computer-device-desktop-monitor.svg-BpU1vmqL.js → computer-device-desktop-monitor.svg-CAldNRkh.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-CofWATKj.js → computer-device-desktop.svg-DwVKMGyS.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-Bk0WdntU.js → computer-device-laptop.svg-fyjI7tSV.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-4jDLeTUE.js → computer-device-mobile-phone-android-samsung-back.svg-CNHunNo4.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-BtDfk53W.js → computer-device-mobile-phone-android-samsung.svg-WhhpuflD.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-mrfLt2LS.js → computer-device-mobile-phone-iphone-x-back.svg-RveI1E1x.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-D3hLzA-f.js → computer-device-mobile-phone-iphone-x.svg-Cyjp0aan.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-URFOvX2G.js → computer-device-mobile-tablet-touch.svg-u88Qx92m.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-CIdkHAYo.js → computer-device-mobile-tablet.svg-Dzdz4e4O.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-BEC9unNd.js → computer-device-network-ethernet-cat6.svg-BW1j1BkJ.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-C_WEyWn-.js → computer-device-network-lan-www.svg-CxNGv37e.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-D2xhIyf7.js → computer-device-network-wifi-connection.svg-Ck3nAZv3.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-DwIQxKAQ.js → computer-device-network-wifi-router.svg-gWXKoMXh.js} +1 -1
- package/web/assets/{cssMode-YcxdUWNT.js → cssMode-D8Jyxeqc.js} +1 -1
- package/web/assets/{divider-C95jkWZ7.js → divider-D-Mvqkj1.js} +2 -2
- package/web/assets/{docx-preview-B1K7Js_Q.js → docx-preview-DxSIfBtK.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-DOmkHECy.js → ecology-science-erlenmeyer-flask.svg-psfHQe5z.js} +1 -1
- package/web/assets/{fieldset-DEPqiZWe.js → fieldset-oHSSpvVY.js} +2 -2
- package/web/assets/{freemarker2-Bzhvjbz4.js → freemarker2-DlJBY4WY.js} +1 -1
- package/web/assets/{handlebars-CymxzXg4.js → handlebars-DTEXdr2O.js} +1 -1
- package/web/assets/{html-CouVDmTR.js → html-eYBbc2Bx.js} +1 -1
- package/web/assets/{htmlMode-Be-vsCic.js → htmlMode-B4O_yjGK.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-CTaPLIBa.js → image-flash-lightning.svg-r_oTLRoo.js} +1 -1
- package/web/assets/{image-picture-flower.svg-BkIdyuJf.js → image-picture-flower.svg-8nv9asUS.js} +1 -1
- package/web/assets/{index-DkeyMLje.js → index-B9x3uCZ9.js} +6 -6
- package/web/assets/{interface-alert-exclamation-diamond.svg-LE6wXJfb.js → interface-alert-exclamation-diamond.svg-A5K0l-78.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-DnJUBUVG.js → interface-alert-exclamation-triangle-warning.svg-Dq66i82G.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-BBESAf3A.js → interface-alert-information-circle.svg-B4ROZIk0.js} +1 -1
- package/web/assets/{interface-award-crown.svg-A9FnpbJ_.js → interface-award-crown.svg-DRnv1a4n.js} +1 -1
- package/web/assets/{interface-bookmark.svg-BMCuN1KQ.js → interface-bookmark-tag.svg-Dwwi4iOX.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-CONBx7yi.js → interface-bookmark.svg-CopCSuT2.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-BsHBSc-o.js → interface-calendar-date-one.svg-BxkYYC67.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-BsndNDne.js → interface-content-book-open-pages.svg-BJozsCHP.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-D9O4ldas.js → interface-content-book-page.svg-CbWXY0Yb.js} +1 -1
- package/web/assets/{interface-content-file.svg-3hZDtYrB.js → interface-content-file.svg-Ck3RuXRm.js} +1 -1
- package/web/assets/{interface-content-folder.svg-D2PGz4rg.js → interface-content-folder.svg-LK0HJ4yQ.js} +1 -1
- package/web/assets/interface-content-folder.svg-pxt6DqMZ.js +1 -0
- package/web/assets/{interface-copy-clipboard.svg-DDENzgQo.js → interface-copy-clipboard.svg-vkTPN1aA.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-D2cQZV5Q.js → interface-edit-attachment.svg-CjCh5Lb1.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-DrIFa0gk.js → interface-edit-binocular.svg-Dos2P4t_.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-AnGByEQd.js → interface-edit-magic-wand.svg-fxAohPEI.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-KNrFMeco.js → interface-edit-tool-paint-roller.svg-JLIYavUO.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-DF9u9WDQ.js → interface-edit-tool-pencil.svg-Tkm527sw.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-mkb9vXWE.js → interface-favorite-award.svg-O-HQC6xP.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-BDIYdX-W.js → interface-favorite-flag.svg-DWSuqI-W.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-DtIvO6z9.js → interface-favorite-heart.svg-3md2synz.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-CEv2Io1P.js → interface-favorite-star.svg-MnNO7Wk6.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-D0SoJbJE.js → interface-favorite-stars-sparkles.svg-WKCS18Oo.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-B-kMOZH8.js → interface-hierarchy-flowchart.svg-KnHJ7War.js} +1 -1
- package/web/assets/{interface-home-house.svg-FOYUzOig.js → interface-home-house.svg-2bdYCM0o.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-BaPGYtZM.js → interface-hyperlink.svg-dTQQRFwy.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-ddMiifOe.js → interface-lighting-brightness.svg-CwI2OM6O.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-WGGCrOPW.js → interface-lock-closed.svg-BcnsrWQP.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-BHdzRkd9.js → interface-lock-open-unlock.svg-Du_CfbnO.js} +1 -1
- package/web/assets/{interface-login-key.svg-C-CaH8gN.js → interface-login-key.svg-C3Hh7Lxb.js} +1 -1
- package/web/assets/{interface-search.svg-BWvztnST.js → interface-search.svg-DRez-w7-.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-BiiP7i7e.js → interface-setting-cog.svg-BbO7fWvj.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-BaNwYllj.js → interface-share-megaphone-bullhorn.svg-BbNIqS3V.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-DpVzHxi1.js → interface-share-rocket.svg-NYzb39WL.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-DVMadDln.js → interface-share-satellite.svg-BVbcZIy6.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-B1a7LlLT.js → interface-share-space-ship.svg-BFY5IO9d.js} +1 -1
- package/web/assets/{interface-share.svg-BknNtx4U.js → interface-share.svg-BTd9ID7k.js} +1 -1
- package/web/assets/{interface-signal-square.svg-DTf1mlii.js → interface-signal-square.svg-MjEdhTXk.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-DT6LHPex.js → interface-time-clock-circle.svg-ChSylXjE.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-CNCTqw_R.js → interface-time-hour-glass.svg-BZQl9M_C.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-DuMlS4pH.js → interface-users-multiple.svg-BmvFtDD2.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-BfOraF6E.js → interface-weather-moon.svg-CU_uP2aE.js} +1 -1
- package/web/assets/{javascript-CSbYcb4a.js → javascript-CzJXS_Bo.js} +1 -1
- package/web/assets/{jsonMode-BfABTJ_P.js → jsonMode-ClLnazHL.js} +1 -1
- package/web/assets/{liquid-D8zk2iFJ.js → liquid-k8yO1VdQ.js} +1 -1
- package/web/assets/{lspLanguageFeatures-CDjcX5cq.js → lspLanguageFeatures-BdUk3xiz.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-B57LhJ7L.js → mail-chat-bubble-square.svg-UruTYt7K.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-Zh4WfmfD.js → mail-send-email-paper-airplane.svg-CQ8gOMxm.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-B3JTaotd.js → mail-send-envelope.svg-B8XF7xYz.js} +1 -1
- package/web/assets/{mdx-Rt1S5V6O.js → mdx-Dpg5Mbqd.js} +1 -1
- package/web/assets/{minus-h_LYd9EK.js → minus-CM-56m8R.js} +2 -2
- package/web/assets/modal-DD3RK2dR.js +5 -0
- package/web/assets/modal-DXywOsPE.js +1 -0
- package/web/assets/{money-cashier-receipt.svg-BYcjjmII.js → money-cashier-receipt.svg-BGvvrVYh.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-D_eoPfYw.js → money-currency-dollar-pay.svg-oPVgaUnC.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-BVafbTUR.js → money-graph-arrow-increase.svg-DbW43WXz.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-DFCnoSVq.js → money-graph-bar-chart-increase.svg-BecdDdvJ.js} +1 -1
- package/web/assets/multiselect-Bk3EZIJC.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-DI19KkR3.js → nature-ecology-leaf.svg-CZxwEqo2.js} +1 -1
- package/web/assets/{password-BQyr-83Q.js → password-CJ4ckRGW.js} +4 -4
- package/web/assets/{phone-telephone.svg-si7GWPbw.js → phone-telephone.svg-U4WTbEXR.js} +1 -1
- package/web/assets/{plus-yTeMgVZF.js → plus-DvnsNNSA.js} +6 -6
- package/web/assets/process.store-utLBiVI8.js +1 -0
- package/web/assets/{programming-bug.svg-C8_FsRk_.js → programming-bug.svg-D-ueh13g.js} +1 -1
- package/web/assets/{programming-cloud.svg-Djjnh8pM.js → programming-cloud.svg-DW3eNYjS.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-Cw72ZkUG.js → programming-computer-database-server.svg-bBeXwbmi.js} +1 -1
- package/web/assets/{programming-computer-database.svg-C0Z7_RVR.js → programming-computer-database.svg-DP1oJ-Xb.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-BvERcUAT.js → programming-module-four-layout.svg-BCRfiu3A.js} +1 -1
- package/web/assets/{programming-module-three.svg-BkoUon6u.js → programming-module-three.svg-Cb8y-suF.js} +1 -1
- package/web/assets/{programming-module.svg-CK1yw5W-.js → programming-module.svg-CCF23Kn-.js} +1 -1
- package/web/assets/{programming-script-code.svg-BhU73hpj.js → programming-script-code.svg-D7zugBoU.js} +1 -1
- package/web/assets/project-launch.store-D0bLcuPZ.js +1 -0
- package/web/assets/project.store-BcKEFAKW.js +1 -0
- package/web/assets/{python-CSf8HAN9.js → python-C2Xee937.js} +1 -1
- package/web/assets/{razor-BKjp9q-U.js → razor-DP11amFn.js} +1 -1
- package/web/assets/router-BhS8cxIJ.js +1 -0
- package/web/assets/settings-scope-KsJCT82K.js +1 -0
- package/web/assets/{settings.store-BBoXO9_c.js → settings.store-FxdXT3wT.js} +1 -1
- package/web/assets/{shopping-cart.svg-CgRtQ4k-.js → shopping-cart.svg-DWikcMT4.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-XdAdBUaO.js → shopping-gift-present.svg-4RQmBLlg.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-BaFPv3xL.js → shopping-shipping-box-parcel-package.svg-D1lBxinA.js} +1 -1
- package/web/assets/src-BQn5mgNu.js +1 -0
- package/web/assets/src-Dq9wfPM5.css +1 -0
- package/web/assets/{src-DeCIcklm.js → src-Dwvd5kd0.js} +33 -33
- package/web/assets/src-vE4VZ3D3.js +572 -0
- package/web/assets/tabpanel-ep3FBKze.js +150 -0
- package/web/assets/{tag-new-circle.svg-BwxdYwp4.js → tag-new-circle.svg-C1MFrgC6.js} +1 -1
- package/web/assets/theme-DAUZuThi.js +1 -0
- package/web/assets/{toggleswitch-DKXm3drm.js → toggleswitch-6H_VuZ4L.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-B3QIUens.js → travel-map-earth-globe.svg-tCJZglOg.js} +1 -1
- package/web/assets/trpc-DZ27KTOo.js +1 -0
- package/web/assets/{tsMode-KbYg0Qfw.js → tsMode-9MCfBuVI.js} +5 -5
- package/web/assets/{typescript-UzU12abv.js → typescript-BPNkI37D.js} +1 -1
- package/web/assets/useAiChatDrawer-tSsNrRPY.js +1 -0
- package/web/assets/useCloudOrg-kMh7h7gI.js +1 -0
- package/web/assets/useProjectCatalog-BkL5z9lS.js +1 -0
- package/web/assets/useProjectCloudOrg-qr_xZto1.js +1 -0
- package/web/assets/{xml-CkgxvNFc.js → xml-CsWY9129.js} +1 -1
- package/web/assets/{yaml-Cjr4aAq9.js → yaml-CUnJQoDT.js} +1 -1
- package/web/index.html +1 -1
- package/agent-manager-4XJUIZKL.js +0 -9
- package/chunk-CQCCVPTX.js.map +0 -1
- package/chunk-LTLOVQJQ.js.map +0 -1
- package/chunk-YQISK6BL.js.map +0 -1
- package/settings-manager-Y4GNAXOH.js +0 -9
- package/src-US4EBM64.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-BXv2YF_7.js +0 -13
- package/web/assets/AgentTerminalPage-HbM44kg8.js +0 -1
- package/web/assets/AiChatPage-BTsALiaV.js +0 -1
- package/web/assets/AppLayout-DJ1dZUtQ.js +0 -1
- package/web/assets/AuditPage-CF53LMHt.js +0 -1
- package/web/assets/CloudAccountPage-BttYjaR8.js +0 -1
- package/web/assets/CloudAccountPage-Dou70Ljn.js +0 -1
- package/web/assets/CloudAccountPage-g6lFVpsX.css +0 -1
- package/web/assets/CloudMessagingPage-D15sTToL.js +0 -2
- package/web/assets/CloudMessagingPage-Dl7hHYeb.css +0 -1
- package/web/assets/DashboardPage-inYgcB3J.js +0 -164
- package/web/assets/DirectoryPickerDialog-DDWbon2r.js +0 -1
- package/web/assets/EnvironmentForm-DG_9AXml.js +0 -108
- package/web/assets/EnvironmentFormPage-DYmI2BfZ.js +0 -1
- package/web/assets/EnvironmentListPage-D2l91HzS.js +0 -1
- package/web/assets/KanbanBoardPage-BOVq3zOt.css +0 -1
- package/web/assets/KanbanBoardPage-BPH1ywhH.js +0 -4
- package/web/assets/KanbanListPage-Bj9-EbPv.js +0 -1
- package/web/assets/LaunchProjectPage-CHpVVYBa.css +0 -1
- package/web/assets/LaunchProjectPage-ObKhBvlS.js +0 -1
- package/web/assets/LaunchServicesPage-CAdAAyfG.js +0 -1
- package/web/assets/LogViewer-QRpqcjXC.js +0 -3
- package/web/assets/OrgKeyPrompt-uMjz7Y5A.js +0 -1
- package/web/assets/ProcessDetailPage-Bi5vk4ah.js +0 -1
- package/web/assets/ScenarioEditorPage-oyhLaoVE.js +0 -14
- package/web/assets/SendToChatDialog-BnZEu35Q.js +0 -1
- package/web/assets/ServiceControlsBar-Dp3r57J4.js +0 -1
- package/web/assets/ServiceDetailPage-DBm79vOL.js +0 -2
- package/web/assets/ServiceFormPage-BGWjKCUH.js +0 -1
- package/web/assets/SettingsPage-BIVmZT7t.js +0 -2063
- package/web/assets/UnlockPage-DYRFhdrT.js +0 -1
- package/web/assets/VariablesTable-Cbc_RlnE.js +0 -1
- package/web/assets/VaultMigrationPage-GlJyIJAw.js +0 -1
- package/web/assets/VersionBadge-CSX89ryT.js +0 -1
- package/web/assets/WikiPage-DAPhZkpS.js +0 -1
- package/web/assets/WikiView-DyU4eNEh.js +0 -1
- package/web/assets/add-scalar-classes-CxpzHvBM.js +0 -387
- package/web/assets/client-DZg134cQ.js +0 -24
- package/web/assets/cloud-chat.store-D899jVQ4.js +0 -1
- package/web/assets/cloud-session-DSjPbs8C.js +0 -1
- package/web/assets/column-Pmg7Ma5f.js +0 -907
- package/web/assets/interface-content-folder.svg-GTysMuP_.js +0 -1
- package/web/assets/modal--Ilf4bg_.js +0 -5
- package/web/assets/modal-Wk0CWaUJ.js +0 -1
- package/web/assets/multiselect-DlGWFLJR.js +0 -251
- package/web/assets/process.store-CvrK-4rR.js +0 -1
- package/web/assets/project-launch.store-D5cyKKyw.js +0 -1
- package/web/assets/project.store-OwPRdjA0.js +0 -1
- package/web/assets/router-DuWVvMLT.js +0 -1
- package/web/assets/settings-scope-D7NFCXjg.js +0 -1
- package/web/assets/src-CRQ32_Qg.js +0 -1
- package/web/assets/src-S24lFUYb.js +0 -572
- package/web/assets/src-dpFgucNZ.css +0 -1
- package/web/assets/tabpanel-DbMhKzgJ.js +0 -150
- package/web/assets/theme-pRVEu5SJ.js +0 -1
- package/web/assets/trpc-Cf_8kWCl.js +0 -1
- package/web/assets/useAiChatDrawer-DCVhP5N0.js +0 -1
- package/web/assets/useCloudOrg-CXvwb5Fo.js +0 -1
- package/web/assets/useProjectCatalog-Bth_aDP4.js +0 -1
- package/web/assets/useProjectCloudOrg-MUCjKP3P.js +0 -1
- /package/{agent-manager-4XJUIZKL.js.map → agent-manager-EI7SXPN5.js.map} +0 -0
- /package/{chat-N6XONNVG.js.map → chat-WMT34BXJ.js.map} +0 -0
- /package/{chunk-5GYBAMHV.js.map → chunk-D2PF2FYU.js.map} +0 -0
- /package/{chunk-NPORVPEO.js.map → chunk-RIITTBK3.js.map} +0 -0
- /package/{companion-7AFRBUQI.js.map → companion-EPINTIC7.js.map} +0 -0
- /package/{settings-manager-Y4GNAXOH.js.map → settings-manager-YSH7ZCLP.js.map} +0 -0
- /package/{vault-resolver-JR7TCITD.js.map → vault-resolver-57Q2DVOR.js.map} +0 -0
- /package/web/assets/{abap-DIWaXxy4.js → abap-B8g_2xYy.js} +0 -0
- /package/web/assets/{apex-D4-KnjW_.js → apex-Bm8w4T5A.js} +0 -0
- /package/web/assets/{azcli-IfDsRCLo.js → azcli-BqdUW6F8.js} +0 -0
- /package/web/assets/{bat-DWkIEnW3.js → bat-Bngf0lQU.js} +0 -0
- /package/web/assets/{bicep-CsOqEKmZ.js → bicep-DzO554JS.js} +0 -0
- /package/web/assets/{browser-BRPZK8RN.js → browser-BJX5ZrVN.js} +0 -0
- /package/web/assets/{cameligo-CVJihesZ.js → cameligo-Bcy3ohdb.js} +0 -0
- /package/web/assets/{clojure-CPXjbAsV.js → clojure-CZbiqkDV.js} +0 -0
- /package/web/assets/{coffee-Dk6AGUBs.js → coffee-CDuhyV-7.js} +0 -0
- /package/web/assets/{cpp-D8TcNCkN.js → cpp-BklV8f4x.js} +0 -0
- /package/web/assets/{csharp-B_ijQZWm.js → csharp-BelR_XiC.js} +0 -0
- /package/web/assets/{csp-CT_qVlF1.js → csp-DUjeBS2K.js} +0 -0
- /package/web/assets/{css-BNKulUcx.js → css-CvbYbEko.js} +0 -0
- /package/web/assets/{cypher-BZUAEEC-.js → cypher-Dwrbk-SP.js} +0 -0
- /package/web/assets/{dart-H8Ri9IID.js → dart-BW1E5h9O.js} +0 -0
- /package/web/assets/{dockerfile-BibtL7_E.js → dockerfile-B41ilpF9.js} +0 -0
- /package/web/assets/{ecl-Cq6OzwoI.js → ecl-BZE6Vxna.js} +0 -0
- /package/web/assets/{elixir-DEzZo1Bn.js → elixir-CtYg0bLh.js} +0 -0
- /package/web/assets/{flow9-CJjg7TJH.js → flow9-Sgvy48_I.js} +0 -0
- /package/web/assets/{fsharp-vGx-8LrK.js → fsharp-BzAfXfKg.js} +0 -0
- /package/web/assets/{go-CHEkyua-.js → go-D7oonABu.js} +0 -0
- /package/web/assets/{graphql--iPbFyYe.js → graphql-BEN-qkl0.js} +0 -0
- /package/web/assets/{hcl-C8EkclQS.js → hcl-CE0OhwCq.js} +0 -0
- /package/web/assets/{ini-DkuTJDAH.js → ini-CCLtcvjA.js} +0 -0
- /package/web/assets/{java-DzuDjs1c.js → java-Bao8w_gp.js} +0 -0
- /package/web/assets/{julia-BUS80tf_.js → julia-Dr0hFYrl.js} +0 -0
- /package/web/assets/{kotlin-s0eIc-h2.js → kotlin-Cbfu8lcM.js} +0 -0
- /package/web/assets/{less-o5f3n-o_.js → less-BU4gEpXr.js} +0 -0
- /package/web/assets/{lexon-AgKBNlrf.js → lexon-GpBGGdTS.js} +0 -0
- /package/web/assets/{lua-DUTvSobZ.js → lua-DIPKk37y.js} +0 -0
- /package/web/assets/{m3-DoULJRPc.js → m3-CSOypKGf.js} +0 -0
- /package/web/assets/{markdown-f9-EhcTi.js → markdown-VDqAgkyM.js} +0 -0
- /package/web/assets/{mips-aCd_43tp.js → mips-BJWI6dX7.js} +0 -0
- /package/web/assets/{msdax-cwHq3sFu.js → msdax-BLpuE5Dc.js} +0 -0
- /package/web/assets/{mysql-ITCpZRvB.js → mysql-ZsxiEUoY.js} +0 -0
- /package/web/assets/{objective-c-BjU-4cpP.js → objective-c-DcQa1iPc.js} +0 -0
- /package/web/assets/{pascal-Dmt8LI08.js → pascal-u-hmXdyn.js} +0 -0
- /package/web/assets/{pascaligo-DrXjRBef.js → pascaligo-DqbP-1C6.js} +0 -0
- /package/web/assets/{perl-BbJKyW-Z.js → perl-CUeQpRkH.js} +0 -0
- /package/web/assets/{pgsql-CLT36ygM.js → pgsql-CQ7FhAFN.js} +0 -0
- /package/web/assets/{php-BIcyBKEQ.js → php-BEf_fu3E.js} +0 -0
- /package/web/assets/{pla-sVewnHw1.js → pla-CXNNbT0w.js} +0 -0
- /package/web/assets/{postiats-D9DrURSm.js → postiats-CIXLZwPb.js} +0 -0
- /package/web/assets/{powerquery-BEjdKhpn.js → powerquery-DnGPASFA.js} +0 -0
- /package/web/assets/{powershell-BynZyJK1.js → powershell-1Y1kqIZS.js} +0 -0
- /package/web/assets/{process-DIamAPAU.js → process-Cf4Ob2V-.js} +0 -0
- /package/web/assets/{protobuf-BQ34Qnv5.js → protobuf-Cfo9haoG.js} +0 -0
- /package/web/assets/{pug--jmF9o7P.js → pug-BujEZqmy.js} +0 -0
- /package/web/assets/{qsharp-BDe4Axn9.js → qsharp-BL9AqNGD.js} +0 -0
- /package/web/assets/{r-DpjaSKX3.js → r-D0dhpGOM.js} +0 -0
- /package/web/assets/{redis-C_Q-xUDt.js → redis-BMLwD7W9.js} +0 -0
- /package/web/assets/{redshift-CHNShrpo.js → redshift-CkHh73og.js} +0 -0
- /package/web/assets/{restructuredtext-CVN0W1xR.js → restructuredtext-DZ-LF65W.js} +0 -0
- /package/web/assets/{ruby-CaKcv4f1.js → ruby-UzPHTzc9.js} +0 -0
- /package/web/assets/{rust-CbqMT_Ew.js → rust-ja9NGnXZ.js} +0 -0
- /package/web/assets/{sb-DIdUmAXV.js → sb-BNdOJbMY.js} +0 -0
- /package/web/assets/{scala-DVyALEcz.js → scala-LlhkyN6l.js} +0 -0
- /package/web/assets/{scheme-Cox4VpHa.js → scheme-BAj99YIn.js} +0 -0
- /package/web/assets/{scss-MW_l4ZY_.js → scss-chS-xxB3.js} +0 -0
- /package/web/assets/{shared-sse-BjXwPkLo.js → shared-sse-_VzlL_VX.js} +0 -0
- /package/web/assets/{shell-CP5qAt5e.js → shell-CcH7eYIc.js} +0 -0
- /package/web/assets/{solidity-1ctHOHIb.js → solidity-cVvnqX-K.js} +0 -0
- /package/web/assets/{sophia-DRAqvk2I.js → sophia-BBT-EdFw.js} +0 -0
- /package/web/assets/{sparql-8_9Nt5xp.js → sparql-DGEqOrB6.js} +0 -0
- /package/web/assets/{sql-owsrW4c3.js → sql-CcTErTxM.js} +0 -0
- /package/web/assets/{st-BDgXslxD.js → st-Bjw-B4mN.js} +0 -0
- /package/web/assets/{swift-TE6gFxno.js → swift-Bid-7bBd.js} +0 -0
- /package/web/assets/{systemverilog-DVGMenxt.js → systemverilog-CXju7Nd-.js} +0 -0
- /package/web/assets/{tcl-D6NP8_oR.js → tcl-D-Dw7JFz.js} +0 -0
- /package/web/assets/{twig-CVnYtCc5.js → twig-BIPbzEWT.js} +0 -0
- /package/web/assets/{typespec-BkD2qKRU.js → typespec-UJSutGCV.js} +0 -0
- /package/web/assets/{uuid-u4W9vzU3.js → uuid--pMuF47W.js} +0 -0
- /package/web/assets/{vb--Oo_cy-E.js → vb-oyG_LJw0.js} +0 -0
- /package/web/assets/{w3c-keyname-Dfw8VxXe.js → w3c-keyname-DtJs0qQm.js} +0 -0
- /package/web/assets/{wgsl-CrnkJFcw.js → wgsl-DXZ6ljB6.js} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Ai as e,Ba as t,Bi as n,Bn as r,Ci as i,Cn as a,Di as o,Dn as s,Ei as c,En as l,Fa as u,Fi as d,Fn as f,Hn as p,I as m,Jt as h,Ka as g,Kt as _,Li as v,Na as y,Oa as b,Oi as x,Pi as S,Qn as C,Ra as w,Ri as T,Rn as E,Sa as ee,Sn as D,St as te,Ta as O,Ut as k,Ya as A,Yt as j,Zt as ne,_a as M,_t as N,ar as re,bi as P,bt as ie,dt as ae,ea as oe,er as se,et as F,f as ce,fn as le,ft as ue,gi as de,ia as I,ki as L,mn as R,mt as fe,na as pe,nt as me,oa as he,on as ge,or as _e,pn as ve,qi as ye,qt as z,rt as be,st as xe,tr as Se,tt as Ce,ur as we,ut as Te,vt as Ee,xa as B,xi as V,xt as De,zn as Oe}from"./index-B9x3uCZ9.js";import"./cloud-session-DqTwnX4d.js";import"./src-BQn5mgNu.js";import{n as ke,t as Ae}from"./ServiceControlsBar-DLHgd13V.js";import"./ProcessControls-DPOmEvIy.js";import{t as je}from"./uuid--pMuF47W.js";import{n as Me,t as Ne}from"./column-BVUPaQkA.js";import{n as Pe}from"./plus-DvnsNNSA.js";import{t as Fe}from"./checkbox-BKV4svPN.js";import"./useProjectCloudOrg-qr_xZto1.js";import{t as Ie}from"./toggleswitch-6H_VuZ4L.js";import{i as Le,n as Re,o as ze,r as Be,t as Ve}from"./tabpanel-ep3FBKze.js";import{n as He,t as Ue}from"./VariablesTable-D8Oh3-1C.js";import{t as We}from"./autocomplete-DXp2_8rJ.js";import"./src-Dwvd5kd0.js";import"./w3c-keyname-DtJs0qQm.js";import"./SendToChatDialog-8RfesH1F.js";import{n as Ge,t as Ke}from"./ProcessMetrics-C2YI8_M5.js";import{t as qe}from"./LogViewer-x7JfZfN8.js";import{t as Je}from"./divider-D-Mvqkj1.js";import{t as Ye}from"./settings.store-FxdXT3wT.js";import{t as Xe}from"./WikiView-Td2Ice0P.js";var Ze={key:0,class:`log-details`},Qe={class:`log-details__section`},$e={class:`log-details__label`},et={class:`log-details__value log-details__value--box`},tt={class:`log-details__section`},nt={class:`log-details__label`},rt={class:`log-details__value log-details__value--box log-details__value--code`},it={class:`log-details__section`},at={class:`log-details__label`},ot={class:`log-details__value log-details__value--box`},st={class:`log-details__process`},ct={class:`log-details__section`},lt={class:`log-details__label`},ut={class:`log-details__value log-details__value--box`},dt={key:0,class:`log-details__section`},ft={class:`log-details__label`},pt={class:`log-details__value log-details__value--box log-details__value--code`,"data-testid":`log-details-cwd`},mt={class:`log-details__section`},ht={class:`log-details__label`},gt={class:`log-details__value log-details__value--box`},_t={key:1,class:`log-details__section`},vt={class:`log-details__label`},yt={class:`log-details__value log-details__value--box`},bt={key:2,class:`log-details__section`},xt={class:`log-details__label`},St={class:`log-details__value log-details__value--box log-details__value--code`},Ct=E(v({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(t,{emit:n}){let r=t,{t:i}=we(),a=ce(),s=n,l=c(()=>{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=c(()=>r.log?r.log.level.charAt(0).toUpperCase()+r.log.level.slice(1):``),f=c(()=>!r.log||r.log.pid==null?i(`logDetails.notAvailable`):String(r.log.pid)),m=c(()=>r.log?a.getByService(r.log.processId)[0]?.cwd??null:null);function h(){r.log&&s(`view-process`,r.log.processId)}function g(){s(`update:visible`,!1)}return(n,r)=>(I(),x(A(Oe),{visible:t.visible,position:`right`,header:A(i)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":g},{default:B(()=>[t.log?(I(),e(`div`,Ze,[o(`div`,Qe,[o(`div`,$e,b(A(i)(`logDetails.type`)),1),o(`div`,et,b(u.value),1)]),o(`div`,tt,[o(`div`,nt,b(A(i)(`logDetails.rawMessage`)),1),o(`div`,rt,b(t.log.raw),1)]),o(`div`,it,[o(`div`,at,b(A(i)(`logDetails.serviceId`)),1),o(`div`,ot,[o(`div`,st,[o(`span`,null,b(t.log.processId),1),d(A(p),{label:A(i)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:h},null,8,[`label`])])])]),o(`div`,ct,[o(`div`,lt,b(A(i)(`logDetails.pid`)),1),o(`div`,ut,b(f.value),1)]),m.value?(I(),e(`div`,dt,[o(`div`,ft,b(A(i)(`logDetails.cwd`)),1),o(`div`,pt,b(m.value),1)])):L(``,!0),o(`div`,mt,[o(`div`,ht,b(A(i)(`logDetails.timestamp`)),1),o(`div`,gt,b(l.value),1)]),t.log.stream?(I(),e(`div`,_t,[o(`div`,vt,b(A(i)(`logDetails.stream`)),1),o(`div`,yt,b(t.log.stream),1)])):L(``,!0),t.log.metadata&&Object.keys(t.log.metadata).length>0?(I(),e(`div`,bt,[o(`div`,xt,b(A(i)(`logDetails.metadata`)),1),o(`div`,St,b(JSON.stringify(t.log.metadata,null,2)),1)])):L(``,!0)])):L(``,!0)]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-4e3f7abe`]]),wt=500,Tt=5,Et=fe;function Dt(e){return e+Math.random()*e*.3}function Ot(e,n){let r=t([]),i=t(!1),a=null,o=0,c=null,u=l(()=>{o=0,i.value||w()}),d=[],p=null,m=t(0),h=t(0),g=0,_=0,v=null;function y(){v||=setInterval(()=>{m.value=g,h.value=_,g=0,_=0},1e3)}function b(){v&&=(clearInterval(v),null),m.value=0,h.value=0,g=0,_=0}function x(){if(p=null,d.length===0)return;let e=d;d=[],_+=e.length;let t=[...r.value,...e];t.length>wt&&(t=t.slice(t.length-wt)),r.value=t}function S(){!e.value||!n.value||(i.value=!0,a=s.process.onLog.subscribe({agentId:e.value,processId:n.value},{onData(e){let t=e;if(o=0,f(`connected`),t.some(e=>e.__clearLogBuffer)){r.value=[],d=[];return}g+=t.length,d.push(...t),p===null&&(p=requestAnimationFrame(x))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),i.value=!1,a=null,C()}}))}function C(){if(o>=Tt){console.warn(`[useLogStream] Max retries (${Tt}) reached`),f(`disconnected`);return}f(`reconnecting`);let e=Dt(Et*2**o);o++,c=setTimeout(()=>{c=null,w()},e)}async function w(){if(!i.value&&!(!e.value||!n.value)){o=0;try{let t=await s.process.logs.query({agentId:e.value,processId:n.value});t.length>wt&&(t=t.slice(t.length-wt)),r.value=t,f(`connected`)}catch{}S()}}function T(){c&&=(clearTimeout(c),null),p!==null&&(cancelAnimationFrame(p),p=null),d=[],b(),a&&=(a.unsubscribe(),null),i.value=!1,o=0,r.value=[]}return M([e,n],([e,t],[n,r])=>{(e!==n||t!==r)&&(i.value&&T(),w())}),pe(()=>{u(),T()}),{logs:r,isStreaming:i,start:w,stop:T,receivedPerSec:m,flushedPerSec:h,startStats:y,stopStats:b}}var kt={class:`service-terminal__toolbar`},At={class:`service-terminal__toolbar-left`},jt={key:0,class:`pid-option`},Mt={key:1,class:`pid-option`},Nt={key:0,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,style:{"margin-right":`0.5rem`}},Pt={key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,style:{"margin-right":`0.5rem`}},Ft={class:`pid-option`},It={key:0,class:`pi pi-list`,style:{"margin-right":`0.5rem`}},Lt=[`title`],Rt=[`title`],zt={class:`service-terminal__toolbar-right`},Bt={class:`service-terminal__content`,"data-testid":`service-terminal-content`},Vt={key:1,class:`service-terminal__shortcuts`},Ht={class:`service-terminal__command-input`},Ut={class:`service-terminal__bottom`},Wt=`runeya_command_history_`,Gt=50,Kt=E(v({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(n){let{t:r}=we(),a=n,l=c(()=>a.processes.find(e=>e.state===`running`||e.state===`starting`)??a.processes[0]??null),u=c(()=>l.value?.agentId??``),f=c(()=>l.value?.id??``),m=_e(),{logs:h,isStreaming:g,start:_,stop:v,receivedPerSec:y,flushedPerSec:S,startStats:C,stopStats:w}=Ot(u,f),T=t(!1);M(T,e=>{e?C():w()});function E(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),T.value=!T.value)}let ee=c(()=>{let e=new Map;return h.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=a.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())}),D=c(()=>Me.value===`all`?h.value:h.value.filter(e=>e.pid===Me.value)),te=c(()=>ee.value.filter(e=>e.isActive).length),k=c(()=>{let e=[{label:r(`serviceTerminal.allProcesses`),value:`all`,badge:te.value>0?`${te.value} ${r(`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});c(()=>a.processes.filter(e=>e.state===`running`).length);async function j(){if(l.value)try{await s.process.clearLogBuffer.mutate({agentId:l.value.agentId,processId:l.value.id}),h.value=[]}catch(e){m.add({severity:`error`,summary:r(`serviceTerminal.error`),detail:e.message??r(`serviceTerminal.failedToClearLogs`),life:5e3})}}let ne=c(()=>a.service.shortcuts??[]),N=t(new Set);async function re(e){let t=l.value?.agentId??a.service.agentId,n=l.value?.id??a.service.id;if(!t){m.add({severity:`warn`,summary:r(`serviceTerminal.noAgent`),detail:r(`serviceTerminal.noAgentDesc`),life:3e3});return}if(N.value.has(e.id)){try{await s.process.cancelShortcut.mutate({agentId:t,processId:n,shortcutId:e.id})}catch{}return}N.value=new Set([...N.value,e.id]);try{await s.process.executeShortcut.mutate({agentId:t,processId:n,shortcut:e})}catch(e){m.add({severity:`error`,summary:r(`serviceTerminal.shortcutFailed`),detail:e.message??r(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(N.value);t.delete(e.id),N.value=t}}let P=t(``),ie=t(new Set),ae=c(()=>ie.value.size>0),se=t(null),F=t([]),ce=t(-1),le=`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(`,`),ue=t([]);function de(e){let t=e.query.toLowerCase().trim();if(!t||!P.value.trim()){ue.value=[];return}let n=[...F.value.slice().reverse(),...le],r=new Set;ue.value=n.filter(e=>r.has(e)?!1:(r.add(e),e.toLowerCase().includes(t))).slice(0,10)}function R(){try{let e=localStorage.getItem(Wt+a.service.id);e&&(F.value=JSON.parse(e))}catch{F.value=[]}}function fe(){try{localStorage.setItem(Wt+a.service.id,JSON.stringify(F.value))}catch{}}function me(e){F.value[F.value.length-1]!==e&&(F.value=[...F.value,e],F.value.length>Gt&&(F.value=F.value.slice(-Gt)),fe())}async function z(){let e=l.value?.agentId??a.service.agentId,t=l.value?.id??a.service.id;if(e)try{await s.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function be(){if(!P.value.trim())return;let e=l.value?.agentId??a.service.agentId,t=l.value?.id??a.service.id;if(!e){m.add({severity:`warn`,summary:r(`serviceTerminal.noAgent`),detail:r(`serviceTerminal.noAgentDesc`),life:3e3});return}let n=je(),i=P.value.trim();me(i),P.value=``,ue.value=[],ce.value=-1,ie.value=new Set([...ie.value,n]);try{await s.process.executeAdHocCommand.mutate({agentId:e,processId:t,command:i,commandId:n})}catch(e){m.add({severity:`error`,summary:r(`serviceTerminal.commandFailed`),detail:e.message??r(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(ie.value);e.delete(n),ie.value=e,ye(()=>{document.querySelector(`.service-terminal__input`)?.focus()})}}function xe(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),be();return}if(e.key===`ArrowUp`){if(e.preventDefault(),F.value.length===0)return;ce.value===-1?ce.value=F.value.length-1:ce.value>0&&ce.value--,P.value=F.value[ce.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),ce.value===-1)return;ce.value<F.value.length-1?(ce.value++,P.value=F.value[ce.value]||``):(ce.value=-1,P.value=``)}}function Se(){if(h.value.length===0)return;let e=h.value.map(e=>`[${new Date(e.timestamp).toISOString()}] ${e.level.toUpperCase().padEnd(5)} ${e.message}`),t=new Blob([e.join(`
|
|
2
|
+
`)],{type:`text/plain`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${a.service.name}-${new Date().toISOString().slice(0,19).replaceAll(`:`,`-`)}.log`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}let Ce=t(0),Te=0,Ee=null,V=null;M(l,e=>{if(!(e&&(e.state===`running`||e.state===`starting`))){Ee&&=(clearInterval(Ee),null),V=null,Ce.value=e?.uptime??0;return}let t=e.uptime??0;e.id!==V&&(Ee&&=(clearInterval(Ee),null),V=e.id,Te=e.startedAt?new Date(e.startedAt).getTime():Date.now()-t,Ce.value=Date.now()-Te,Ee=setInterval(()=>{Ce.value=Date.now()-Te},1e3))},{immediate:!0});let De=t(!0),Oe=t(null),ke=t(!1),Me=t(`all`),Ne=t(!1);function Pe(){Ne.value=!Ne.value}oe(()=>{R(),l.value&&_(),window.addEventListener(`keydown`,E)}),pe(()=>{v(),window.removeEventListener(`keydown`,E),Ee&&clearInterval(Ee)});function Fe(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 Ie(e){Oe.value=e,ke.value=!0}function Le(e){ke.value=!1,m.add({severity:`info`,summary:`Process`,detail:`Process ID: ${e}`,life:3e3})}return(t,s)=>(I(),e(`div`,{class:O([`service-terminal`,{"service-terminal--fullscreen":Ne.value}]),"data-testid":`service-terminal`},[Ne.value?(I(),x(Ae,{key:0,service:n.service,processes:n.processes},null,8,[`service`,`processes`])):L(``,!0),o(`div`,kt,[o(`div`,At,[d(A(p),{label:A(r)(`serviceTerminal.logs`),severity:De.value?`primary`:`secondary`,text:``,size:`small`,onClick:s[0]||=e=>De.value=!0},null,8,[`label`,`severity`]),d(A(ge),{modelValue:Me.value,"onUpdate:modelValue":s[1]||=e=>Me.value=e,options:k.value,"option-label":`label`,"option-value":`value`,class:`service-terminal__pid-selector`},{value:B(t=>[t.value===`all`?(I(),e(`div`,jt,[s[5]||=o(`i`,{class:`pi pi-list`,style:{"margin-right":`0.5rem`}},null,-1),o(`span`,null,b(A(r)(`serviceTerminal.allProcesses`)),1),te.value>0?(I(),x(A(ve),{key:0,value:`${te.value} ${A(r)(`serviceTerminal.active`)}`,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):L(``,!0)])):(I(),e(`div`,Mt,[k.value.find(e=>e.value===t.value)?.isActive?(I(),e(`i`,Nt)):(I(),e(`i`,Pt)),o(`span`,null,`PID: `+b(t.value),1)]))]),option:B(t=>[o(`div`,Ft,[t.option.value===`all`?(I(),e(`i`,It)):t.option.isActive?(I(),e(`i`,{key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,title:A(r)(`serviceTerminal.running`)},null,8,Lt)):(I(),e(`i`,{key:2,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,title:A(r)(`serviceTerminal.stopped`)},null,8,Rt)),o(`span`,null,b(t.option.label),1),t.option.badge?(I(),x(A(ve),{key:3,value:t.option.badge,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):L(``,!0)])]),_:1},8,[`modelValue`,`options`])]),o(`div`,zt,[d(A(p),{icon:Ne.value?`pi pi-window-minimize`:`pi pi-window-maximize`,text:``,rounded:``,size:`small`,title:Ne.value?A(r)(`serviceTerminal.exitFullscreen`):A(r)(`serviceTerminal.fullscreen`),onClick:Pe},null,8,[`icon`,`title`]),d(A(p),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,title:A(r)(`serviceTerminal.downloadLogs`),disabled:A(h).length===0,onClick:Se},null,8,[`title`,`disabled`]),d(A(p),{icon:`pi pi-trash`,text:``,rounded:``,size:`small`,title:A(r)(`serviceTerminal.clearLogs`),disabled:A(h).length===0,onClick:j},null,8,[`title`,`disabled`])])]),o(`div`,Bt,[d(qe,{logs:D.value,loading:!1,"received-per-sec":A(y),"flushed-per-sec":A(S),"show-stats":T.value,"service-label":a.service.label||a.service.name,onLogClick:Ie},null,8,[`logs`,`received-per-sec`,`flushed-per-sec`,`show-stats`,`service-label`])]),ne.value.length>0?(I(),e(`div`,Vt,[(I(!0),e(i,null,he(ne.value,e=>(I(),x(A(p),{key:e.id,label:e.label||e.command,"data-shortcut-id":e.id,class:`shortcut-badge`,icon:N.value.has(e.id)?`pi pi-stop`:`pi pi-play`,size:`small`,outlined:!N.value.has(e.id),severity:N.value.has(e.id)?`danger`:void 0,onClick:t=>re(e)},null,8,[`label`,`data-shortcut-id`,`icon`,`outlined`,`severity`,`onClick`]))),128))])):L(``,!0),o(`div`,Ht,[s[6]||=o(`span`,{class:`service-terminal__prompt`,"data-testid":`terminal-prompt`},`>`,-1),d(A(We),{ref_key:`adHocCommandInput`,ref:se,modelValue:P.value,"onUpdate:modelValue":s[2]||=e=>P.value=e,suggestions:ue.value,class:`service-terminal__autocomplete`,"input-class":`service-terminal__input`,placeholder:A(r)(`serviceTerminal.enterCommand`),"aria-label":A(r)(`serviceTerminal.enterCommand`),disabled:!(l.value?.agentId??a.service.agentId),"data-testid":`terminal-command-input`,onComplete:de,onKeydown:xe},null,8,[`modelValue`,`suggestions`,`placeholder`,`aria-label`,`disabled`]),d(A(p),{icon:ae.value?`pi pi-stop`:`pi pi-play`,severity:ae.value?`danger`:void 0,size:`small`,"data-testid":`terminal-run-btn`,disabled:!(l.value?.agentId??a.service.agentId)||!P.value.trim()&&!ae.value,onClick:s[3]||=e=>ae.value?z():be()},null,8,[`icon`,`severity`,`disabled`])]),o(`div`,Ut,[l.value?(I(),x(A(ve),{key:0,icon:`pi pi-server`,value:l.value.agentId.slice(0,8),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):L(``,!0),n.service.cwd?(I(),x(A(ve),{key:1,icon:`pi pi-folder`,value:n.service.cwd,severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):L(``,!0),l.value&&(l.value.state===`running`||l.value.state===`starting`)?(I(),x(A(ve),{key:2,icon:`pi pi-clock`,value:Fe(Ce.value/1e3),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):L(``,!0)]),d(Ct,{visible:ke.value,"onUpdate:visible":s[4]||=e=>ke.value=e,log:Oe.value,onViewProcess:Le},null,8,[`visible`,`log`])],2))}}),[[`__scopeId`,`data-v-8ce2178d`]]),qt=5,Jt=fe;function Yt(e){return e+Math.random()*e*.3}function Xt(e,n){let r=t(null),i=t(!1),a=t(!1),o=null,c=0,l=null;async function u(){if(!i.value){a.value=!0;try{r.value=await s.process.metrics.query({agentId:e.value,processId:n.value})}catch(e){console.error(`Failed to fetch initial metrics:`,h(e))}finally{a.value=!1}d()}}function d(){i.value=!0,o=s.process.onMetrics.subscribe({agentId:e.value,processId:n.value},{onData(e){c=0,f(`connected`),r.value=e},onError(e){console.error(`Metrics stream error:`,e),i.value=!1,o=null,p()}})}function p(){if(c>=qt){console.warn(`Metrics stream: max retries (${qt}) reached, giving up`),f(`disconnected`);return}f(`reconnecting`);let e=Yt(Jt*2**c);c++,l=setTimeout(()=>{l=null,d()},e)}function m(){l&&=(clearTimeout(l),null),o&&=(o.unsubscribe(),null),i.value=!1,c=0}return M([e,n],([e,t],[n,r])=>{(e!==n||t!==r)&&i.value&&(m(),u())}),pe(()=>{m()}),{metrics:r,isStreaming:i,isLoading:a,start:u,stop:m}}var Zt={class:`service-metrics`,"data-testid":`service-metrics`},Qt={key:1,class:`service-metrics__skeleton`},$t={class:`metric-skeleton`},en={class:`metric-skeleton`},tn={key:2,class:`service-metrics__no-data`},nn={key:1,class:`service-metrics__no-process`},rn=E(v({__name:`ServiceMetrics`,props:{service:{},processes:{}},setup(t){let n=t,r=c(()=>n.processes.find(e=>e.state===`running`||e.state===`starting`)??n.processes[0]??null),a=c(()=>r.value?.agentId??``),s=c(()=>r.value?.id??``),{t:l}=we(),{metrics:u,isLoading:f,start:p,stop:m}=Xt(a,s);return oe(()=>{r.value&&p()}),pe(()=>{m()}),(t,n)=>(I(),e(`div`,Zt,[r.value?(I(),e(i,{key:0},[A(u)?(I(),x(Ke,{key:0,cpu:A(u).cpu,memory:A(u).memory},null,8,[`cpu`,`memory`])):A(f)?(I(),e(`div`,Qt,[o(`div`,$t,[d(A(Ge),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),d(A(Ge),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),d(A(Ge),{width:`100%`,height:`6px`,"border-radius":`4px`})]),o(`div`,en,[d(A(Ge),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),d(A(Ge),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),d(A(Ge),{width:`6rem`,height:`0.65rem`})])])):(I(),e(`div`,tn,b(A(l)(`serviceMetrics.noData`)),1))],64)):(I(),e(`div`,nn,[n[0]||=o(`i`,{class:`pi pi-info-circle`},null,-1),o(`span`,null,b(A(l)(`serviceMetrics.notRunning`)),1)]))]))}}),[[`__scopeId`,`data-v-94f5993b`]]),an=`runeya:debug`;function on(){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 sn=on();if(sn!==null)try{localStorage.setItem(an,String(sn))}catch{}function cn(){try{return localStorage.getItem(an)===`true`}catch{return!1}}var ln=t(cn());function un(){function e(){ln.value=!ln.value;try{localStorage.setItem(an,String(ln.value))}catch{}}return{isDebug:ln,toggle:e}}var dn={class:`config-general`},fn={class:`config-card`},pn={class:`config-card__header`},mn={class:`config-card`},hn={class:`config-card__header`},gn={class:`config-card__hint`},_n={class:`config-card`},vn={class:`config-card`},yn={class:`config-card__header`},bn={class:`config-card__hint`},xn={class:`config-card`},Sn={class:`config-card__header`},Cn={class:`config-card__hint`},wn={class:`config-card`},Tn={class:`config-card__header`},En={class:`config-card__hint`},Dn={class:`config-card`},On={class:`config-card__header`},kn={class:`config-card__hint`},An={class:`config-card`},jn={class:`config-card__header`},Mn={class:`config-card__hint`},Nn={class:`config-card`},Pn={class:`config-card__header`},Fn={class:`config-card__hint`},In={class:`config-card__hint`},Ln={class:`config-card`},Rn={class:`config-card__header`},zn={class:`config-card__hint`},Bn={class:`config-meta`},Vn={class:`config-card config-card--inline`},Hn={class:`config-card__header`},Un={class:`config-card config-card--inline`},Wn={class:`config-card__header`},Gn=150,Kn=E(v({__name:`ServiceConfigGeneral`,props:{service:{}},emits:[`save`],setup(n,{emit:r}){let{t:a}=we(),s=Te(),l=_(),u=t([]);function f(e){let t=e.query.trim().toLowerCase(),n=new Set(T.value.groups);u.value=C.value.filter(e=>!n.has(e)&&(!t||e.toLowerCase().includes(t)))}function m(e,t){let n=t.trim();if(n){if(e===`ports`){let e=Number(n);if(!Number.isInteger(e)||e<1||e>65535||T.value.ports.includes(String(e)))return;T.value.ports=[...T.value.ports,String(e)]}else{if(T.value.groups.includes(n))return;T.value.groups=[...T.value.groups,n]}j()}}function h(e){let t=e.target;m(`groups`,t.value),t.value=``,u.value=[]}function g(e,t){let n=e.target;!n||typeof n.value!=`string`||!n.value.trim()||setTimeout(()=>{m(t,n.value),n.value=``},Gn)}let v=n,y=r,x=c(()=>l.projects.find(e=>e.serviceIds.includes(v.service.id)&&(e.orgId??null)===(v.service.orgId??null))??null),C=c(()=>{let e=x.value;if(!e)return[];let t=new Set;for(let n of e.serviceIds)for(let e of s.getById(n)?.groups??[])t.add(e);return[...t].sort((e,t)=>e.localeCompare(t))});function w(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}let T=t({name:v.service.name,cwd:v.service.cwd??``,ports:(v.service.ports??[]).map(String),groups:[...v.service.groups??[]],description:v.service.description??``,docsPath:v.service.docsPath??``,url:v.service.url??``,openapiUrl:v.service.openapiUrl??``,gitRemote:v.service.git?.remote??``,gitHome:v.service.git?.home??``,autoRestart:v.service.autoRestart,clearLogsOnStart:v.service.clearLogsOnStart??!1}),E=t(w(v.service.meta));M(()=>v.service,e=>{T.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},E.value=w(e.meta)});function ee(){E.value=[...E.value,{key:``,value:``}]}function D(e){E.value=E.value.filter((t,n)=>n!==e)}function te(e,t,n){E.value=E.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function O(){let e={};for(let{key:t,value:n}of E.value){let r=t.trim();r&&(e[r]=n)}return{name:T.value.name,cwd:T.value.cwd||null,ports:T.value.ports.map(Number).filter(e=>e>0&&e<=65535),groups:T.value.groups,description:T.value.description,docsPath:T.value.docsPath??``,url:T.value.url,openapiUrl:T.value.openapiUrl,git:T.value.gitRemote||T.value.gitHome?{remote:T.value.gitRemote||void 0,home:T.value.gitHome||void 0}:null,autoRestart:T.value.autoRestart,clearLogsOnStart:T.value.clearLogsOnStart,meta:Object.keys(e).length>0?e:null}}let k=null;function j(){k&&clearTimeout(k),k=setTimeout(()=>{y(`save`,O()),k=null},150)}return(t,n)=>(I(),e(`div`,dn,[o(`div`,fn,[o(`div`,pn,[n[14]||=o(`i`,{class:`pi pi-tag`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.name`)),1)]),d(A(R),{modelValue:T.value.name,"onUpdate:modelValue":n[0]||=e=>T.value.name=e,class:`config-card__input`,onBlur:j,onKeydown:P(V(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),o(`div`,mn,[o(`div`,hn,[n[15]||=o(`i`,{class:`pi pi-folder`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.workingDirectory`)),1)]),d(A(R),{modelValue:T.value.cwd,"onUpdate:modelValue":n[1]||=e=>T.value.cwd=e,class:`config-card__input`,placeholder:`.`,onBlur:j,onKeydown:P(V(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),o(`small`,gn,b(A(a)(`serviceConfigGeneral.cwdHint`)),1)]),o(`div`,_n,[n[16]||=o(`div`,{class:`config-card__header`},[o(`i`,{class:`pi pi-file-edit`}),o(`span`,null,`Dossier de documentation (wiki)`)],-1),d(A(R),{modelValue:T.value.docsPath,"onUpdate:modelValue":n[2]||=e=>T.value.docsPath=e,class:`config-card__input`,placeholder:`(défaut : même que cwd)`,onBlur:j,onKeydown:P(V(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[17]||=o(`small`,{class:`config-card__hint`},[S(` Chemin relatif au cwd du service (ex. `),o(`code`,null,`docs`),S(`) ou absolu. Si vide, utilise le cwd. `)],-1)]),o(`div`,vn,[o(`div`,yn,[n[18]||=o(`i`,{class:`pi pi-globe`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.ports`)),1)]),d(A(We),{modelValue:T.value.ports,"onUpdate:modelValue":n[3]||=e=>T.value.ports=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:A(a)(`serviceConfigGeneral.portsPlaceholder`),onChange:j,onBlur:n[4]||=e=>g(e,`ports`)},null,8,[`modelValue`,`placeholder`]),o(`small`,bn,b(A(a)(`serviceConfigGeneral.portsHint`)),1)]),o(`div`,xn,[o(`div`,Sn,[n[19]||=o(`i`,{class:`pi pi-th-large`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.groups`)),1)]),d(A(We),{modelValue:T.value.groups,"onUpdate:modelValue":n[5]||=e=>T.value.groups=e,multiple:``,suggestions:u.value,"complete-on-focus":!0,class:`config-card__input`,placeholder:A(a)(`serviceConfigGeneral.groupsPlaceholder`),onComplete:f,onChange:j,onKeydown:P(h,[`enter`]),onBlur:n[6]||=e=>g(e,`groups`)},null,8,[`modelValue`,`suggestions`,`placeholder`]),o(`small`,Cn,b(A(a)(`serviceConfigGeneral.groupsHint`)),1)]),o(`div`,wn,[o(`div`,Tn,[n[20]||=o(`i`,{class:`pi pi-info-circle`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.description`)),1)]),d(A(le),{modelValue:T.value.description,"onUpdate:modelValue":n[7]||=e=>T.value.description=e,class:`config-card__input`,rows:2,onBlur:j},null,8,[`modelValue`]),o(`small`,En,b(A(a)(`serviceConfigGeneral.descriptionHint`)),1)]),o(`div`,Dn,[o(`div`,On,[n[21]||=o(`i`,{class:`pi pi-external-link`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.url`)),1)]),d(A(R),{modelValue:T.value.url,"onUpdate:modelValue":n[8]||=e=>T.value.url=e,class:`config-card__input`,placeholder:`https://...`,onBlur:j,onKeydown:P(V(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),o(`small`,kn,b(A(a)(`serviceConfigGeneral.urlHint`)),1)]),o(`div`,An,[o(`div`,jn,[n[22]||=o(`i`,{class:`pi pi-book`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.openapiUrl`)),1)]),d(A(R),{modelValue:T.value.openapiUrl,"onUpdate:modelValue":n[9]||=e=>T.value.openapiUrl=e,class:`config-card__input`,placeholder:`https://.../swagger.json`,onBlur:j,onKeydown:P(V(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),o(`small`,Mn,b(A(a)(`serviceConfigGeneral.openapiUrlHint`)),1)]),o(`div`,Nn,[o(`div`,Pn,[n[23]||=o(`i`,{class:`pi pi-github`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.git`)),1)]),d(A(R),{modelValue:T.value.gitRemote,"onUpdate:modelValue":n[10]||=e=>T.value.gitRemote=e,class:`config-card__input`,placeholder:`git@github.com:org/repo.git`,onBlur:j,onKeydown:P(V(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),o(`small`,Fn,b(A(a)(`serviceConfigGeneral.gitRemoteHint`)),1),d(A(R),{modelValue:T.value.gitHome,"onUpdate:modelValue":n[11]||=e=>T.value.gitHome=e,class:`config-card__input`,style:{"margin-top":`0.5rem`},placeholder:`https://github.com/org/repo`,onBlur:j,onKeydown:P(V(j,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),o(`small`,In,b(A(a)(`serviceConfigGeneral.gitHomeHint`)),1)]),o(`div`,Ln,[o(`div`,Rn,[n[24]||=o(`i`,{class:`pi pi-hashtag`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.meta`)),1)]),o(`small`,zn,b(A(a)(`serviceConfigGeneral.metaHint`)),1),o(`div`,Bn,[(I(!0),e(i,null,he(E.value,(t,n)=>(I(),e(`div`,{key:n,class:`config-meta__row`},[d(A(R),{"model-value":t.key,placeholder:A(a)(`serviceConfigGeneral.metaKeyPlaceholder`),class:`config-meta__input`,"onUpdate:modelValue":e=>te(n,`key`,e),onBlur:j,onKeydown:P(V(j,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),d(A(R),{"model-value":t.value,placeholder:A(a)(`serviceConfigGeneral.metaValuePlaceholder`),class:`config-meta__input config-meta__input--wide`,"onUpdate:modelValue":e=>te(n,`value`,e),onBlur:j,onKeydown:P(V(j,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),d(A(p),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{D(n),j()}},null,8,[`onClick`])]))),128)),d(A(p),{label:A(a)(`serviceConfigGeneral.addEntry`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`config-meta__add`,onClick:ee},null,8,[`label`])])]),o(`div`,Vn,[o(`div`,Hn,[n[25]||=o(`i`,{class:`pi pi-refresh`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.autoRestart`)),1)]),d(A(Ie),{modelValue:T.value.autoRestart,"onUpdate:modelValue":n[12]||=e=>T.value.autoRestart=e,onChange:j},null,8,[`modelValue`])]),o(`div`,Un,[o(`div`,Wn,[n[26]||=o(`i`,{class:`pi pi-trash`},null,-1),o(`span`,null,b(A(a)(`serviceConfigGeneral.clearLogs`)),1)]),d(A(Ie),{modelValue:T.value.clearLogsOnStart,"onUpdate:modelValue":n[13]||=e=>T.value.clearLogsOnStart=e,onChange:j},null,8,[`modelValue`])])]))}}),[[`__scopeId`,`data-v-6fef6778`]]),qn={class:`docker-config`},Jn={class:`docker-config__section`},Yn={for:`docker-mode-image`,class:`docker-config__section-title`},Xn={class:`docker-config__mode-toggle`},Zn={class:`docker-config__mode-option`},Qn={class:`docker-config__mode-option`},$n={key:0,class:`docker-config__section`},er={for:`docker-image`,class:`docker-config__label`},tr={class:`docker-config__section`},nr={class:`docker-config__section`},rr={for:`docker-build-context`,class:`docker-config__label`},ir={class:`docker-config__section`},ar={for:`docker-add-build-arg`,class:`docker-config__label`},or={class:`docker-config__kv-list`},sr={class:`docker-config__section`},cr={for:`docker-target-stage`,class:`docker-config__label`},lr={class:`docker-config__section`},ur={for:`docker-user`,class:`docker-config__section-title`},dr={class:`docker-config__section`},fr={for:`docker-user`,class:`docker-config__label`},pr={class:`docker-config__section`},mr={for:`docker-network-mode`,class:`docker-config__label`},hr={key:2,class:`docker-config__section`},gr={for:`docker-add-port`,class:`docker-config__label`},_r={class:`docker-config__list`},vr={class:`docker-config__section`},yr={for:`docker-add-volume`,class:`docker-config__label`},br={class:`docker-config__checkbox-row`},xr={for:`mountRootpath`,class:`docker-config__checkbox-label`},Sr={class:`docker-config__list`},Cr={class:`docker-config__section`},wr={class:`docker-config__checkbox-row`},Tr={for:`useNativeCommand`,class:`docker-config__checkbox-label`},Er={key:0,class:`docker-config__shell-row`},Dr={for:`docker-native-shell`,class:`docker-config__label`},Or={class:`docker-config__hint`},kr={key:1,class:`docker-config__mode-toggle docker-config__mode-toggle--indented`},Ar={class:`docker-config__mode-option`},jr={class:`docker-config__mode-option`},Mr={class:`docker-config__section`},Nr={for:`docker-entrypoint`,class:`docker-config__label`},Pr={class:`docker-config__section`},Fr={for:`docker-command`,class:`docker-config__label`},Ir={class:`docker-config__section`},Lr={for:`docker-add-bootstrap`,class:`docker-config__section-title`},Rr={class:`docker-config__hint-inline`},zr={class:`docker-config__bootstrap-row`},Br={class:`docker-config__bootstrap-field`},Vr=[`for`],Hr={class:`docker-config__bootstrap-field`},Ur=[`for`],Wr={class:`docker-config__bootstrap-field docker-config__bootstrap-field--wide`},Gr=[`for`],Kr={class:`docker-config__bootstrap-field`},qr=[`for`],Jr={class:`docker-config__bootstrap-actions`},Yr={class:`docker-config__section`},Xr=E(v({__name:`ServiceConfigDocker`,props:{service:{}},emits:[`save`],setup(n,{emit:a}){let{t:s}=we(),c=n,l=a,u=c.service.dockerConfig??{},f=t(u.dockerfile?`build`:`image`),h=t(u.image??``),g=t(u.dockerfile??``),_=t(u.buildContext??``),v=t(Object.entries(u.buildArgs??{}).map(([e,t])=>({key:e,value:t}))),y=t(u.targetStage??``),x=t(u.networkMode??`host`),C=t([...u.ports??[]]),w=t([...u.volumes??[]]),T=t(u.mountRootpath??!1),E=t(u.entrypoint??``),D=t(u.command??``),te=t(u.user??``),O=t(u.useNativeCommand??!1),k=t(u.nativeCommandMode??`isolated`),j=t(u.nativeShell??`sh`),ne=[{label:`sh (POSIX)`,value:`sh`},{label:`bash`,value:`bash`},{label:`zsh`,value:`zsh`},{label:`ash (Alpine)`,value:`ash`}],M=t([...u.bootstrapCommands??[]]),N=t(!1),re=[{label:`Host (--network host)`,value:`host`},{label:`Bridge`,value:`bridge`}];function ie(){v.value=[...v.value,{key:``,value:``}]}function ae(e){v.value=v.value.filter((t,n)=>n!==e)}function oe(e,t,n){v.value=v.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function se(){C.value=[...C.value,``]}function F(e){C.value=C.value.filter((t,n)=>n!==e)}function ce(e,t){C.value=C.value.map((n,r)=>r===e?t:n)}function le(){w.value=[...w.value,``]}function ue(e){w.value=w.value.filter((t,n)=>n!==e)}function fe(e,t){w.value=w.value.map((n,r)=>r===e?t:n)}function pe(){M.value=[...M.value,{id:je(),label:`Bootstrap`,entrypoint:`/bin/sh`,command:`-c ""`,user:void 0}]}function me(e){M.value=M.value.filter((t,n)=>n!==e)}function _e(e,t,n){M.value=M.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function ve(e,t){let n=[...M.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],M.value=n)}let ye=null;function z(){ye&&clearTimeout(ye),ye=setTimeout(()=>{let e={};for(let{key:t,value:n}of v.value)t.trim()&&(e[t.trim()]=n);l(`save`,{image:f.value===`image`&&h.value||void 0,dockerfile:f.value===`build`&&g.value||void 0,buildContext:_.value||void 0,buildArgs:e,targetStage:y.value||void 0,networkMode:x.value,ports:C.value.filter(Boolean),volumes:w.value.filter(Boolean),mountRootpath:T.value,entrypoint:E.value||void 0,command:D.value||void 0,user:te.value||void 0,useNativeCommand:O.value,nativeCommandMode:k.value,nativeShell:j.value,bootstrapCommands:M.value}),ye=null},150)}function be(e){me(e),z()}function xe(e,t){ve(e,t),z()}function Se(e){ae(e),z()}function Ce(e){F(e),z()}function Te(e){ue(e),z()}return(t,n)=>(I(),e(`div`,qn,[o(`div`,Jn,[o(`label`,Yn,b(A(s)(`serviceConfigDocker.imageSource`)),1),o(`div`,Xn,[o(`label`,Zn,[ee(o(`input`,{id:`docker-mode-image`,"onUpdate:modelValue":n[0]||=e=>f.value=e,type:`radio`,value:`image`,class:`docker-config__radio`,onChange:z},null,544),[[de,f.value]]),S(` `+b(A(s)(`serviceConfigDocker.pullImage`)),1)]),o(`label`,Qn,[ee(o(`input`,{"onUpdate:modelValue":n[1]||=e=>f.value=e,type:`radio`,value:`build`,class:`docker-config__radio`,onChange:z},null,544),[[de,f.value]]),S(` `+b(A(s)(`serviceConfigDocker.buildDockerfile`)),1)])])]),f.value===`image`?(I(),e(`div`,$n,[o(`label`,er,b(A(s)(`serviceConfigDocker.image`)),1),d(A(R),{id:`docker-image`,modelValue:h.value,"onUpdate:modelValue":n[2]||=e=>h.value=e,placeholder:A(s)(`serviceConfigDocker.imagePlaceholder`),class:`docker-config__input`,onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):L(``,!0),f.value===`build`?(I(),e(i,{key:1},[o(`div`,tr,[n[18]||=o(`label`,{for:`docker-dockerfile-btn`,class:`docker-config__label`},`Dockerfile`,-1),d(A(p),{id:`docker-dockerfile-btn`,label:A(s)(`serviceConfigDocker.editDockerfile`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,size:`small`,onClick:n[3]||=e=>N.value=!0},null,8,[`label`]),d(A(r),{visible:N.value,"onUpdate:visible":n[6]||=e=>N.value=e,header:A(s)(`serviceConfigDocker.editDockerfile`),modal:``,style:{width:`800px`}},{footer:B(()=>[d(A(p),{label:A(s)(`serviceConfigDocker.closeDockerfile`),icon:`pi pi-times`,onClick:n[5]||=()=>{N.value=!1,z()}},null,8,[`label`])]),default:B(()=>[d(m,{modelValue:g.value,"onUpdate:modelValue":n[4]||=e=>g.value=e,language:`dockerfile`,style:{height:`400px`}},null,8,[`modelValue`])]),_:1},8,[`visible`,`header`])]),o(`div`,nr,[o(`label`,rr,b(A(s)(`serviceConfigDocker.buildContext`)),1),d(A(R),{id:`docker-build-context`,modelValue:_.value,"onUpdate:modelValue":n[7]||=e=>_.value=e,placeholder:`.`,class:`docker-config__input`,onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),o(`div`,ir,[o(`label`,ar,b(A(s)(`serviceConfigDocker.buildArgs`)),1),o(`div`,or,[(I(!0),e(i,null,he(v.value,(t,n)=>(I(),e(`div`,{key:n,class:`docker-config__kv-row`},[d(A(R),{"model-value":t.key,placeholder:A(s)(`serviceConfigDocker.argNamePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>oe(n,`key`,e),onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),d(A(R),{"model-value":t.value,placeholder:A(s)(`serviceConfigDocker.argValuePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>oe(n,`value`,e),onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),d(A(p),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Se(n)},null,8,[`onClick`])]))),128)),d(A(p),{id:`docker-add-build-arg`,label:A(s)(`serviceConfigDocker.addBuildArg`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:ie},null,8,[`label`])])]),o(`div`,sr,[o(`label`,cr,b(A(s)(`serviceConfigDocker.targetStage`)),1),d(A(R),{id:`docker-target-stage`,modelValue:y.value,"onUpdate:modelValue":n[8]||=e=>y.value=e,placeholder:A(s)(`serviceConfigDocker.targetStagePlaceholder`),class:`docker-config__input`,onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)):L(``,!0),d(A(Je)),o(`div`,lr,[o(`label`,ur,b(A(s)(`serviceConfigDocker.runtimeConfig`)),1)]),o(`div`,dr,[o(`label`,fr,b(A(s)(`serviceConfigDocker.userGroup`)),1),d(A(R),{id:`docker-user`,modelValue:te.value,"onUpdate:modelValue":n[9]||=e=>te.value=e,placeholder:A(s)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),o(`div`,pr,[o(`label`,mr,b(A(s)(`serviceConfigDocker.networkMode`)),1),d(A(ge),{"input-id":`docker-network-mode`,modelValue:x.value,"onUpdate:modelValue":n[10]||=e=>x.value=e,options:re,"option-label":`label`,"option-value":`value`,class:`docker-config__select`,onChange:z},null,8,[`modelValue`])]),x.value===`bridge`?(I(),e(`div`,hr,[o(`label`,gr,b(A(s)(`serviceConfigDocker.portMappings`)),1),o(`div`,_r,[(I(!0),e(i,null,he(C.value,(t,n)=>(I(),e(`div`,{key:n,class:`docker-config__list-row`},[d(A(R),{"model-value":t,placeholder:A(s)(`serviceConfigDocker.portPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ce(n,e),onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),d(A(p),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Ce(n)},null,8,[`onClick`])]))),128)),d(A(p),{id:`docker-add-port`,label:A(s)(`serviceConfigDocker.addPort`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:se},null,8,[`label`])])])):L(``,!0),o(`div`,vr,[o(`label`,yr,b(A(s)(`serviceConfigDocker.volumes`)),1),o(`div`,br,[d(A(Fe),{modelValue:T.value,"onUpdate:modelValue":n[11]||=e=>T.value=e,binary:!0,"input-id":`mountRootpath`,onChange:z},null,8,[`modelValue`]),o(`label`,xr,b(A(s)(`serviceConfigDocker.autoMount`)),1)]),o(`div`,Sr,[(I(!0),e(i,null,he(w.value,(t,n)=>(I(),e(`div`,{key:n,class:`docker-config__list-row`},[d(A(R),{"model-value":t,placeholder:A(s)(`serviceConfigDocker.volumePlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>fe(n,e),onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),d(A(p),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Te(n)},null,8,[`onClick`])]))),128)),d(A(p),{id:`docker-add-volume`,label:A(s)(`serviceConfigDocker.addVolume`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:le},null,8,[`label`])])]),d(A(Je)),o(`div`,Cr,[o(`div`,wr,[d(A(Fe),{modelValue:O.value,"onUpdate:modelValue":n[12]||=e=>O.value=e,binary:!0,"input-id":`useNativeCommand`,onChange:z},null,8,[`modelValue`]),o(`label`,Tr,b(A(s)(`serviceConfigDocker.runNative`)),1)]),n[21]||=o(`span`,{class:`docker-config__hint`},` When enabled, the service command is executed directly inside the container (ignores CMD override below). `,-1),O.value?(I(),e(`div`,Er,[o(`label`,Dr,b(A(s)(`serviceConfigDocker.shell`)),1),d(A(ge),{"input-id":`docker-native-shell`,modelValue:j.value,"onUpdate:modelValue":n[13]||=e=>j.value=e,options:ne,"option-label":`label`,"option-value":`value`,class:`docker-config__select docker-config__select--small`,editable:``,placeholder:A(s)(`serviceConfigDocker.shellPlaceholder`),onChange:z},null,8,[`modelValue`,`placeholder`]),o(`span`,Or,[S(b(A(s)(`serviceConfigDocker.shellHint`))+` (`,1),n[19]||=o(`code`,null,`shell -c '...'`,-1),n[20]||=S(`)`,-1)])])):L(``,!0),O.value?(I(),e(`div`,kr,[o(`label`,Ar,[ee(o(`input`,{"onUpdate:modelValue":n[14]||=e=>k.value=e,type:`radio`,value:`isolated`,class:`docker-config__radio`,onChange:z},null,544),[[de,k.value]]),S(` `+b(A(s)(`serviceConfigDocker.isolated`)),1)]),o(`label`,jr,[ee(o(`input`,{"onUpdate:modelValue":n[15]||=e=>k.value=e,type:`radio`,value:`shared`,class:`docker-config__radio`,onChange:z},null,544),[[de,k.value]]),S(` `+b(A(s)(`serviceConfigDocker.shared`)),1)])])):L(``,!0)]),O.value?L(``,!0):(I(),e(i,{key:3},[n[22]||=o(`div`,{class:`docker-config__section`},[o(`label`,{for:`docker-entrypoint`,class:`docker-config__section-title`},`Override`)],-1),o(`div`,Mr,[o(`label`,Nr,b(A(s)(`serviceConfigDocker.entrypoint`)),1),d(A(R),{id:`docker-entrypoint`,modelValue:E.value,"onUpdate:modelValue":n[16]||=e=>E.value=e,placeholder:A(s)(`serviceConfigDocker.entrypointPlaceholder`),class:`docker-config__input`,onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),o(`div`,Pr,[o(`label`,Fr,b(A(s)(`serviceConfigDocker.cmdOverride`)),1),d(A(R),{id:`docker-command`,modelValue:D.value,"onUpdate:modelValue":n[17]||=e=>D.value=e,placeholder:A(s)(`serviceConfigDocker.cmdPlaceholder`),class:`docker-config__input`,onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)),d(A(Je)),o(`div`,Ir,[o(`label`,Lr,[S(b(A(s)(`serviceConfigDocker.bootstrapCommands`))+` `,1),o(`span`,Rr,` — `+b(A(s)(`serviceConfigDocker.bootstrapCommandsHint`)),1)])]),(I(!0),e(i,null,he(M.value,(t,n)=>(I(),e(`div`,{key:t.id,class:`docker-config__bootstrap-card`},[o(`div`,zr,[o(`div`,Br,[o(`label`,{class:`docker-config__label`,for:`docker-bootstrap-label-${n}`},`Label`,8,Vr),d(A(R),{id:`docker-bootstrap-label-${n}`,"model-value":t.label,placeholder:A(s)(`serviceConfigDocker.bootstrapLabelPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>_e(n,`label`,e),onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),o(`div`,Hr,[o(`label`,{class:`docker-config__label`,for:`docker-bootstrap-entrypoint-${n}`},`Entrypoint`,8,Ur),d(A(R),{id:`docker-bootstrap-entrypoint-${n}`,"model-value":t.entrypoint??``,placeholder:`/bin/sh`,class:`docker-config__input`,"onUpdate:modelValue":e=>_e(n,`entrypoint`,e),onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),o(`div`,Wr,[o(`label`,{class:`docker-config__label`,for:`docker-bootstrap-command-${n}`},`Command`,8,Gr),d(A(R),{id:`docker-bootstrap-command-${n}`,"model-value":t.command,placeholder:`-c "npm install"`,class:`docker-config__input`,"onUpdate:modelValue":e=>_e(n,`command`,e),onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),o(`div`,Kr,[o(`label`,{class:`docker-config__label`,for:`docker-bootstrap-user-${n}`},`User:Group`,8,qr),d(A(R),{id:`docker-bootstrap-user-${n}`,"model-value":t.user??``,placeholder:A(s)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,"onUpdate:modelValue":e=>_e(n,`user`,e),onBlur:z,onKeydown:P(V(z,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),o(`div`,Jr,[d(A(p),{icon:`pi pi-arrow-up`,text:``,rounded:``,size:`small`,disabled:n===0,onClick:e=>xe(n,-1)},null,8,[`disabled`,`onClick`]),d(A(p),{icon:`pi pi-arrow-down`,text:``,rounded:``,size:`small`,disabled:n===M.value.length-1,onClick:e=>xe(n,1)},null,8,[`disabled`,`onClick`]),d(A(p),{icon:`pi pi-times`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>be(n)},null,8,[`onClick`])])])]))),128)),o(`div`,Yr,[d(A(p),{id:`docker-add-bootstrap`,label:A(s)(`serviceConfigDocker.addBootstrapCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:pe},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-91c13548`]]),Zr={class:`config-commands`},Qr={class:`config-commands__execution`},$r={class:`config-card config-card--execution`},ei={class:`config-card__header`},ti={class:`config-card__hint`},ni={class:`config-card config-card--execution`},ri={class:`config-card__header`},ii={key:0,class:`runner-option`},ai={class:`runner-option`},oi={class:`config-commands__tab-content`},si={key:0,class:`config-commands__empty`},ci={class:`config-commands__row`},li={class:`config-commands__field`},ui=[`for`],di={class:`config-commands__field config-commands__field--wide`},fi=[`for`],pi={class:`config-commands__field`},mi=[`for`],hi={class:`config-commands__actions-cell`},gi={class:`config-commands__footer`},_i={class:`config-commands__tab-content`},vi=`__inherit__`,yi=E(v({__name:`ServiceConfigCommands`,props:{service:{}},emits:[`save`,`dockerSave`],setup(n,{emit:r}){let a=n,s=r,{t:l}=we(),u=xe(),f=null,m=t({agentId:a.service.agentId??vi,runner:a.service.runner});M(()=>a.service,e=>{m.value={agentId:e.agentId??vi,runner:e.runner}});let h=c(()=>[{label:l(`serviceConfigCommands.native`),value:`native`,icon:`pi pi-desktop`},{label:l(`serviceConfigCommands.docker`),value:`docker`,icon:`pi pi-box`}]),g=c(()=>h.value.find(e=>e.value===m.value.runner)?.icon??`pi pi-box`),_=c(()=>[{label:l(`serviceForm.agentInherit`),value:vi},...u.agents.map(e=>({label:`${e.config.name} (${e.status.connected?l(`serviceConfigCommands.online`):l(`serviceConfigCommands.offline`)})`,value:e.config.id}))]),v=t([...a.service.commands??[]]);M(()=>a.service,e=>{f||(v.value=[...e.commands??[]])});function y(){v.value=[...v.value,{id:je(),label:``,command:``,cwd:void 0,shell:!0}]}function x(e){v.value=v.value.filter((t,n)=>n!==e)}function S(e,t,n){v.value=v.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function C(){f&&clearTimeout(f),f=setTimeout(()=>{s(`save`,{agentId:m.value.agentId===vi?null:m.value.agentId||null,runner:m.value.runner,commands:v.value}),f=null},150)}function w(e){s(`dockerSave`,e)}function T(e){x(e),C()}return(t,r)=>(I(),e(`div`,Zr,[o(`div`,Qr,[o(`div`,$r,[o(`div`,ei,[r[2]||=o(`i`,{class:`pi pi-server`},null,-1),o(`span`,null,b(A(l)(`serviceConfigCommands.agent`)),1)]),d(A(ge),{modelValue:m.value.agentId,"onUpdate:modelValue":r[0]||=e=>m.value.agentId=e,options:_.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:C},null,8,[`modelValue`,`options`]),o(`small`,ti,b(A(l)(`serviceForm.agentHintEdit`)),1)]),o(`div`,ni,[o(`div`,ri,[o(`i`,{class:O(g.value)},null,2),o(`span`,null,b(A(l)(`serviceConfigCommands.runner`)),1)]),d(A(ge),{modelValue:m.value.runner,"onUpdate:modelValue":r[1]||=e=>m.value.runner=e,options:h.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:C},{value:B(t=>[t.value?(I(),e(`div`,ii,[o(`i`,{class:O(h.value.find(e=>e.value===t.value)?.icon)},null,2),o(`span`,null,b(h.value.find(e=>e.value===t.value)?.label),1)])):L(``,!0)]),option:B(e=>[o(`div`,ai,[o(`i`,{class:O(e.option.icon)},null,2),o(`span`,null,b(e.option.label),1)])]),_:1},8,[`modelValue`,`options`])])]),d(A(ze),{value:`0`},{default:B(()=>[d(A(Le),null,{default:B(()=>[d(A(Be),{value:`0`},{default:B(()=>[r[3]||=o(`i`,{class:`pi pi-desktop tab-icon`},null,-1),o(`span`,null,b(A(l)(`serviceConfigCommands.native`)),1)]),_:1}),d(A(Be),{value:`1`},{default:B(()=>[r[4]||=o(`i`,{class:`pi pi-box tab-icon`},null,-1),o(`span`,null,b(A(l)(`serviceConfigCommands.docker`)),1)]),_:1})]),_:1}),d(A(Re),null,{default:B(()=>[d(A(Ve),{value:`0`},{default:B(()=>[o(`div`,oi,[v.value.length===0?(I(),e(`div`,si,[o(`p`,null,b(A(l)(`serviceConfigCommands.noCommands`)),1)])):L(``,!0),(I(!0),e(i,null,he(v.value,(t,n)=>(I(),e(`div`,{key:t.id,class:`config-card`},[o(`div`,ci,[o(`div`,li,[o(`label`,{class:`config-commands__label`,for:`cmd-label-${n}`},b(A(l)(`serviceConfigCommands.labelPlaceholder`)),9,ui),d(A(R),{id:`cmd-label-${n}`,"model-value":t.label,placeholder:A(l)(`serviceConfigCommands.labelPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>S(n,`label`,e),onBlur:C,onKeydown:P(V(C,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),o(`div`,di,[o(`label`,{class:`config-commands__label`,for:`cmd-command-${n}`},b(A(l)(`serviceConfigCommands.commandPlaceholder`)),9,fi),d(A(R),{id:`cmd-command-${n}`,"model-value":t.command,placeholder:`e.g. npm start`,class:`config-card__input`,"onUpdate:modelValue":e=>S(n,`command`,e),onBlur:C,onKeydown:P(V(C,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),o(`div`,pi,[o(`label`,{class:`config-commands__label`,for:`cmd-cwd-${n}`},`Working Dir (optional)`,8,mi),d(A(R),{id:`cmd-cwd-${n}`,"model-value":t.cwd??``,placeholder:A(l)(`serviceConfigCommands.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>S(n,`cwd`,e),onBlur:C,onKeydown:P(V(C,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),o(`div`,hi,[d(A(p),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>T(n)},null,8,[`onClick`])])])]))),128)),o(`div`,gi,[d(A(p),{label:A(l)(`serviceConfigCommands.addCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:y},null,8,[`label`])])])]),_:1}),d(A(Ve),{value:`1`},{default:B(()=>[o(`div`,_i,[d(Xr,{service:n.service,onSave:w},null,8,[`service`])])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-df297a71`]]),bi={class:`config-env`,"data-testid":`config-env`},xi={key:0,class:`active-env-display`},Si={class:`active-env-label`},Ci={key:1,class:`inheritance-toggle`},wi={class:`inheritance-label`},Ti={class:`inherited-header`},Ei={class:`inherited-row-key`},Di={class:`preview-key`},Oi={class:`value-row`},ki=[`onClick`],Ai=[`onClick`],ji={key:0,class:`secret-mask`},Mi={key:1,class:`preview-value`},Ni={class:`config-env__header`},Pi={class:`config-env__title`},Fi={class:`config-env__actions`},Ii={key:3,class:`variables-view`},Li={key:0},Ri={key:1,class:`empty-state`},zi={class:`inherited-header`},Bi={class:`passthrough-info`},Vi={class:`preview-key`},Hi={key:0,class:`preview-value`},Ui={key:1,class:`passthrough-undefined`},Wi={key:4,class:`empty-state`},Gi={key:5,class:`empty-state`},Ki={class:`editor-container`},qi={key:0,class:`editor-env-banner`},Ji={class:`editor-env-text`},Yi={class:`editor-section`,"data-testid":`variables-editor`},Xi={key:0,class:`loading-container`},Zi={key:1,class:`preview-container`},Qi={class:`preview-info`},$i={class:`preview-key`},ea={class:`value-row`},ta=[`onClick`],na=[`onClick`],ra={key:0,class:`secret-mask`},ia={key:1,class:`preview-value`},aa=E(v({__name:`ServiceConfigEnv`,props:{service:{},projectId:{},activeEnvironmentId:{}},setup(n){let i=n,{t:a}=we(),l=_e(),u=re(),f=z(),m=_(),h=ne(),g=xe(),v=ce(),y=Te(),{urlHost:C}=ke(()=>ge.value?.config.id),w=c(()=>m.getByRef({id:i.projectId,orgId:h.activeOrgId})?.activeEnvironmentId??null),T=c(()=>f.findServiceEnvironment(i.service.id,w.value??``)),E=t(!1),ee=t(!1),k=t(!1),j=t(!1),N=t(null),P=t(null),se=t([]),le=t({}),ue=t(new Set);function de(e){let t=new Set(ue.value);t.has(e)?t.delete(e):t.add(e),ue.value=t}let R=t(null);function fe(e,t){navigator.clipboard.writeText(t),R.value=e,setTimeout(()=>{R.value===e&&(R.value=null)},1500)}let pe=t({}),he=t(!1),ge=c(()=>{let e=i.service.agentId??ze.value?.agentId;return e?g.getById(e):g.agents.find(e=>e.isLocal)??null}),ye=c(()=>{let e={};for(let t of ae)e[t.name]=``;Object.assign(e,ie(i.service.ports)),e[`service.NAME`]=i.service.name,e[`service.ID`]=i.service.id,Object.assign(e,te(i.service,C.value)),i.service.url&&(e[`service.BASE_URL`]=i.service.url);let t=ge.value?.status;t?.lanIp&&(e[`agent.HOST_LAN`]=t.lanIp),t?.os&&(e[`agent.OS`]=t.os),t?.home&&(e[`agent.HOME`]=t.home),ge.value&&(e[`agent.NAME`]=ge.value.config.name);let n=Se(t?.cwd,t?.home);n&&(e[`service.CWD`]=n);let r=m.getByRef({id:i.projectId,orgId:h.activeOrgId});r&&(e[`project.NAME`]=r.name);let a=w.value?f.getById(w.value):null;a&&(e[`runeya.ENV_NAME`]=a.name);for(let t of Oe.value)Object.assign(e,Ee({name:t.name,id:t.id,ports:t.ports,localUrls:t.localUrls,url:t.url},C.value));return e});function Se(e,t){let n=(i.service.resolvedCwd??i.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 Oe=c(()=>{let e=m.getByRef({id:i.projectId,orgId:h.activeOrgId});if(!e)return[];let t=e.serviceIds.filter(e=>e!==i.service.id).map(e=>y.getById(e)).filter(e=>!!e),n=new Map;for(let e of t){let t=De(e.name);t&&n.set(t,(n.get(t)??0)+1)}return t.filter(e=>(n.get(De(e.name))??0)===1)}),Ae=c(()=>ge.value?.config.passthroughEnv??[]),je=c(()=>Ae.value.length>0);async function Pe(){if(!i.service.agentId||!je.value){pe.value={};return}he.value=!0;try{pe.value=await s.agent.getPassthroughEnv.query({id:i.service.agentId})}catch{pe.value={}}finally{he.value=!1}}let Fe=c(()=>Ae.value.map(e=>({name:e,value:pe.value[e]??null}))),Le=c(()=>!T.value||!w.value?!0:T.value.parentIds?.includes(w.value)??!0);async function Re(e){if(!(!T.value||!w.value)){j.value=!0;try{await f.update({id:T.value.id,parentIds:e?[w.value]:[]}),await qe()}catch(e){l.add({severity:`error`,summary:a(`serviceConfigEnv.error`),detail:e.message??a(`serviceConfigEnv.failedToUpdateInheritance`),life:5e3})}finally{j.value=!1}}}let ze=c(()=>{let e=m.getByRef({id:i.projectId,orgId:h.activeOrgId});return e?.activeEnvironmentId?f.getById(e.activeEnvironmentId):null});function Be(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 Ve=c(()=>N.value?Be(N.value.variables):[]),We=c(()=>{if(!T.value||!N.value?.sources)return Ve.value;let e=T.value.id;return Ve.value.filter(t=>N.value.sources[t.variableId]?.environmentId===e)}),Ge=c(()=>{if(!T.value||!N.value?.sources)return[];let e=T.value.id;return Ve.value.filter(t=>N.value.sources[t.variableId]?.environmentId!==e)}),Ke=c(()=>{if(!N.value?.sources)return{};let e={};for(let[t,n]of Object.entries(N.value.sources))e[t]={environmentId:n.environmentId,overridden:n.overridden,...n.resolvedFrom?{resolvedFrom:n.resolvedFrom}:{},...n.overriddenBy?{overriddenBy:n.overriddenBy}:{}};return e});async function qe(){if(T.value)try{N.value=await f.resolve(T.value.id)}catch(e){console.error(`Failed to resolve environment:`,e)}}async function Je(){if(w.value)try{P.value=await f.resolve(w.value)}catch{}}async function Ye(e){let t=e.toLowerCase(),n=P.value??N.value;if(!n)return;let r=n.variables,i=Object.keys(n.env).filter(e=>e.toLowerCase().includes(t));se.value=i;let a={};if(r)for(let e of i){let t=Object.values(r).find(t=>t.key===e);t&&(a[e]={key:e,isSecret:t.value?.isSecret??!1,pre:t.value?.pre??``,post:t.value?.post??``})}le.value=a}async function Xe(){k.value=!0;try{await $e(),await qe(),ee.value=!0}catch(e){l.add({severity:`error`,summary:a(`serviceConfigEnv.error`),detail:e.message??a(`serviceConfigEnv.failedToLoadPreview`),life:5e3})}finally{k.value=!1}}let Ze=c(()=>N.value?Object.entries(N.value.env).map(([e,t])=>({key:e,value:Object.entries(ye.value).reduce((e,[t,n])=>e.replaceAll(`{{${t}}}`,n),t)})):[]);function Qe(e,t){return t?`***`:e.length>50?e.substring(0,47)+`...`:e}async function $e(){if(T.value)return T.value;if(!w.value)return null;let e=ze.value;return e?(await f.create({name:`${i.service.name??i.service.id} — ${e.name}`,projectId:i.projectId,scope:`service`,reference:i.service.id,activateOn:w.value,parentIds:[w.value],variables:{}}),T.value):null}let et=c(()=>{let e=v.getByService(i.service.id);return e.length>0?e[0]:null}),tt=c(()=>{let e=et.value?.state;return e===`running`||e===`errored`});async function nt(){await $e(),E.value=!0,await Promise.all([qe(),Je()])}function rt(){if(E.value=!1,!tt.value||!et.value)return;let e=et.value.state===`running`?`restart`:`start`,t=i.service.name||i.service.id;u.require({message:a(e===`restart`?`serviceConfigEnv.restartConfirmMsg`:`serviceConfigEnv.startConfirmMsg`,{name:t}),header:a(e===`restart`?`serviceConfigEnv.restartTitle`:`serviceConfigEnv.startTitle`),icon:`pi pi-refresh`,acceptLabel:a(e===`restart`?`serviceConfigEnv.restartTitle`:`actions.start`),rejectLabel:a(`serviceConfigEnv.notNow`),accept:async()=>{try{let t=i.service.agentId;if(!t)return;e===`restart`?(await v.restart(t,i.service.id),l.add({severity:`success`,summary:a(`serviceConfigEnv.serviceRestarted`),life:3e3})):(await v.start(t,i.service.id),l.add({severity:`success`,summary:a(`serviceConfigEnv.serviceStarted`),life:3e3}))}catch(t){l.add({severity:`error`,summary:a(`serviceConfigEnv.error`),detail:t.message??a(`serviceConfigEnv.failedToAction`,{action:e}),life:5e3})}}})}return M(ze,async e=>{e&&await Promise.all([qe(),Je()])}),M(()=>i.service.agentId,()=>{Pe()}),oe(async()=>{i.projectId&&await f.fetchAll(i.projectId),await Promise.all([qe(),Je(),Pe()])}),(t,i)=>(I(),e(`div`,bi,[w.value?(I(),e(`div`,xi,[o(`span`,Si,b(A(a)(`serviceConfigEnv.activeEnvironment`)),1),d(He,{"environment-id":w.value},null,8,[`environment-id`])])):L(``,!0),T.value&&ze.value?(I(),e(`div`,Ci,[d(A(Ie),{"model-value":Le.value,disabled:j.value,"onUpdate:modelValue":Re},null,8,[`model-value`,`disabled`]),o(`span`,wi,b(Le.value?A(a)(`serviceConfigEnv.inheritsFrom`,{name:ze.value.name}):A(a)(`serviceConfigEnv.isolated`,{name:ze.value.name})),1)])):L(``,!0),Ge.value.length>0?(I(),x(A(F),{key:2,class:`inherited-accordion`},{default:B(()=>[d(A(Ce),{value:`inherited`},{default:B(()=>[d(A(me),null,{default:B(()=>[o(`span`,Ti,[i[6]||=o(`i`,{class:`pi pi-arrow-down-left`},null,-1),S(` `+b(A(a)(`serviceConfigEnv.inheritedVars`))+` `,1),d(A(ve),{value:String(Ge.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),d(A(be),null,{default:B(()=>[d(A(Me),{value:Ge.value,size:`small`,"show-headers":!1},{default:B(()=>[d(A(Ne),{style:{width:`35%`}},{body:B(({data:e})=>[o(`div`,Ei,[o(`code`,Di,b(e.key),1),Ke.value[e.variableId]?(I(),x(He,{key:0,"environment-id":Ke.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):L(``,!0)])]),_:1}),d(A(Ne),{style:{width:`65%`}},{body:B(({data:t})=>[o(`span`,Oi,[o(`span`,{class:`value-actions`,onClick:i[0]||=V(()=>{},[`stop`])},[t.slot.isSecret?(I(),e(`i`,{key:0,class:O([ue.value.has(t.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:e=>de(t.variableId)},null,10,ki)):L(``,!0),o(`i`,{class:O([R.value===t.variableId?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:e=>fe(t.variableId,t.slot.pre+t.slot.value+t.slot.post)},null,10,Ai)]),t.slot.isSecret&&!ue.value.has(t.variableId)?(I(),e(`span`,ji,`***`)):(I(),e(`code`,Mi,b(t.slot.pre)+b(t.slot.value)+b(t.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):L(``,!0),o(`div`,Ni,[o(`h3`,Pi,b(A(a)(`serviceConfigEnv.envVars`)),1),o(`div`,Fi,[d(A(p),{label:A(a)(`serviceConfigEnv.editVariables`),icon:`pi pi-pencil`,size:`small`,outlined:``,"data-testid":`env-edit-btn`,disabled:!w.value,onClick:nt},null,8,[`label`,`disabled`]),d(A(p),{label:A(a)(`serviceConfigEnv.preview`),icon:`pi pi-eye`,size:`small`,outlined:``,severity:`secondary`,loading:k.value,disabled:!w.value,"data-testid":`env-preview-btn`,onClick:Xe},null,8,[`label`,`loading`,`disabled`])])]),T.value?(I(),e(`div`,Ii,[We.value.length>0?(I(),e(`div`,Li,[d(Ue,{"environment-id":T.value.id,sources:Ke.value,"resolved-env":{...P.value?.env??{},...N.value?.env??{}},"service-builtins":ye.value,editable:!1,"show-overrides":!0,"show-override-badge":!0,"show-delete":!1,"show-add-button":!1,onVariablesChanged:qe},null,8,[`environment-id`,`sources`,`resolved-env`,`service-builtins`])])):(I(),e(`div`,Ri,[o(`p`,null,b(A(a)(`serviceConfigEnv.noVarsConfigured`)),1)])),je.value?(I(),x(A(F),{key:2,class:`inherited-accordion`},{default:B(()=>[d(A(Ce),{value:`passthrough`},{default:B(()=>[d(A(me),null,{default:B(()=>[o(`span`,zi,[i[7]||=o(`i`,{class:`pi pi-globe`},null,-1),S(` `+b(A(a)(`agentPage.passthrough.titleShort`))+` `,1),d(A(ve),{value:String(Ae.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),d(A(be),null,{default:B(()=>[o(`p`,Bi,b(A(a)(`serviceConfigEnv.passthroughInfo`)),1),he.value?(I(),x(A(D),{key:0,style:{width:`24px`,height:`24px`}})):(I(),x(A(Me),{key:1,value:Fe.value,stripedRows:``,size:`small`},{default:B(()=>[d(A(Ne),{field:`name`,header:A(a)(`common.key`),style:{width:`35%`}},{body:B(({data:e})=>[o(`code`,Vi,b(e.name),1)]),_:1},8,[`header`]),d(A(Ne),{header:A(a)(`common.value`),style:{width:`65%`}},{body:B(({data:t})=>[t.value===null?(I(),e(`span`,Ui,b(A(a)(`serviceConfigEnv.undefined`)),1)):(I(),e(`span`,Hi,b(t.value),1))]),_:1},8,[`header`])]),_:1},8,[`value`]))]),_:1})]),_:1})]),_:1})):L(``,!0)])):w.value?(I(),e(`div`,Gi,[o(`p`,null,b(A(a)(`serviceConfigEnv.noVarsConfigured`)),1)])):(I(),e(`div`,Wi,[o(`p`,null,b(A(a)(`serviceConfigEnv.noActiveEnv`)),1)])),d(A(r),{visible:E.value,header:A(a)(`serviceConfigEnv.editVarsHeader`),style:{width:`900px`},modal:``,"onUpdate:visible":i[2]||=e=>{e||rt()}},{footer:B(()=>[d(A(p),{label:A(a)(`actions.close`),icon:`pi pi-times`,onClick:i[1]||=e=>rt()},null,8,[`label`])]),default:B(()=>[o(`div`,Ki,[w.value?(I(),e(`div`,qi,[o(`span`,Ji,b(A(a)(`serviceConfigEnv.editingVarsFor`,{name:n.service.name||n.service.id})),1),d(He,{"environment-id":w.value},null,8,[`environment-id`])])):L(``,!0),o(`div`,Yi,[T.value?(I(),x(Ue,{key:0,"environment-id":T.value.id,editable:!0,sources:Ke.value,"autocomplete-enabled":!0,"autocomplete-suggestions":se.value,"autocomplete-meta":le.value,"resolved-env":{...P.value?.env??{},...N.value?.env??{}},"service-builtins":ye.value,"show-overrides":!0,onVariablesChanged:qe,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:Ye},null,8,[`environment-id`,`sources`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`])):L(``,!0)])])]),_:1},8,[`visible`,`header`]),d(A(r),{visible:ee.value,"onUpdate:visible":i[5]||=e=>ee.value=e,header:A(a)(`serviceConfigEnv.previewHeader`),style:{width:`700px`},modal:``,"data-testid":`env-preview-dialog`},{footer:B(()=>[d(A(p),{label:A(a)(`actions.close`),icon:`pi pi-times`,onClick:i[4]||=e=>ee.value=!1},null,8,[`label`])]),default:B(()=>[k.value?(I(),e(`div`,Xi,[d(A(D))])):N.value?(I(),e(`div`,Zi,[o(`p`,Qi,b(A(a)(`serviceConfigEnv.injectedVarsInfo`)),1),d(A(Me),{value:Ze.value,stripedRows:``,size:`small`,rows:15,paginator:Ze.value.length>15},{default:B(()=>[d(A(Ne),{field:`key`,header:A(a)(`common.key`),style:{width:`35%`}},{body:B(({data:e})=>[o(`code`,$i,b(e.key),1)]),_:1},8,[`header`]),d(A(Ne),{header:A(a)(`common.value`),style:{width:`65%`}},{body:B(({data:t})=>[o(`span`,ea,[o(`span`,{class:`value-actions`,onClick:i[3]||=V(()=>{},[`stop`])},[N.value.envSecrets.includes(t.key)?(I(),e(`i`,{key:0,class:O([ue.value.has(`preview:`+t.key)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:e=>de(`preview:`+t.key)},null,10,ta)):L(``,!0),o(`i`,{class:O([R.value===`preview:`+t.key?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:e=>fe(`preview:`+t.key,t.value)},null,10,na)]),N.value.envSecrets.includes(t.key)&&!ue.value.has(`preview:`+t.key)?(I(),e(`span`,ra,`***`)):(I(),e(`span`,ia,b(Qe(t.value,!1)),1))])]),_:1},8,[`header`])]),_:1},8,[`value`,`paginator`])])):L(``,!0)]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-8ebbf924`]]),oa={class:`config-health`},sa={class:`config-card config-card--inline`},ca={class:`config-card__header`},la={class:`config-card`},ua={class:`config-card__header`},da={class:`config-card`},fa={class:`config-card__header`},pa={class:`config-card`},ma={class:`config-card__header`},ha={class:`config-card`},ga={class:`config-card__header`},_a={key:1,class:`config-card`},va={class:`config-card__header`},ya={class:`config-card__hint`},ba={class:`config-card`},xa={class:`config-card__header`},Sa={class:`config-card`},Ca={class:`config-card__header`},wa={class:`config-card`},Ta={class:`config-card__header`},Ea={class:`config-card`},Da={class:`config-card__header`},Oa=E(v({__name:`ServiceConfigHealthCheck`,props:{service:{}},emits:[`save`],setup(n,{emit:r}){let a=n,s=r,{t:c}=we(),l=t(!!a.service.healthCheck),u=t({type:a.service.healthCheck?.type??`http`,path:a.service.healthCheck?.path??`/health`,interval:a.service.healthCheck?.interval??3e4,timeout:a.service.healthCheck?.timeout??5e3,retries:a.service.healthCheck?.retries??3,method:a.service.healthCheck?.method??`GET`,expectedStatus:a.service.healthCheck?.expectedStatus??200,initialDelay:a.service.healthCheck?.initialDelay??5e3,command:a.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`}];M(()=>a.service,e=>{l.value=!!e.healthCheck,u.value={type:e.healthCheck?.type??`http`,path:e.healthCheck?.path??`/health`,interval:e.healthCheck?.interval??3e4,timeout:e.healthCheck?.timeout??5e3,retries:e.healthCheck?.retries??3,method:e.healthCheck?.method??`GET`,expectedStatus:e.healthCheck?.expectedStatus??200,initialDelay:e.healthCheck?.initialDelay??5e3,command:e.healthCheck?.command??``}});let m=null;function h(){m&&clearTimeout(m),m=setTimeout(()=>{if(!l.value)s(`save`,void 0);else{if(u.value.type===`http`&&!u.value.path?.trim()||u.value.type===`command`&&!u.value.command?.trim())return;s(`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(t,n)=>(I(),e(`div`,oa,[o(`div`,sa,[o(`div`,ca,[n[10]||=o(`i`,{class:`pi pi-heart`},null,-1),o(`span`,null,b(A(c)(`serviceConfigHealthCheck.enable`)),1)]),d(A(Ie),{modelValue:l.value,"onUpdate:modelValue":n[0]||=e=>l.value=e,onChange:h},null,8,[`modelValue`])]),l.value?(I(),e(i,{key:0},[o(`div`,la,[o(`div`,ua,[n[11]||=o(`i`,{class:`pi pi-cog`},null,-1),o(`span`,null,b(A(c)(`serviceConfigHealthCheck.type`)),1)]),d(A(ge),{modelValue:u.value.type,"onUpdate:modelValue":n[1]||=e=>u.value.type=e,options:f,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:h},null,8,[`modelValue`]),n[12]||=o(`small`,{class:`config-card__hint`},`HTTP checks a URL endpoint; Command runs a shell command (exit 0 = healthy)`,-1)]),u.value.type===`http`?(I(),e(i,{key:0},[o(`div`,da,[o(`div`,fa,[n[13]||=o(`i`,{class:`pi pi-link`},null,-1),o(`span`,null,b(A(c)(`serviceConfigHealthCheck.path`)),1)]),d(A(R),{modelValue:u.value.path,"onUpdate:modelValue":n[2]||=e=>u.value.path=e,class:`config-card__input`,placeholder:`/health`,onBlur:h,onKeydown:P(V(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),o(`div`,pa,[o(`div`,ma,[n[14]||=o(`i`,{class:`pi pi-directions`},null,-1),o(`span`,null,b(A(c)(`serviceConfigHealthCheck.method`)),1)]),d(A(ge),{modelValue:u.value.method,"onUpdate:modelValue":n[3]||=e=>u.value.method=e,options:p,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:h},null,8,[`modelValue`])]),o(`div`,ha,[o(`div`,ga,[n[15]||=o(`i`,{class:`pi pi-check-circle`},null,-1),o(`span`,null,b(A(c)(`serviceConfigHealthCheck.expectedStatus`)),1)]),d(A(Pe),{modelValue:u.value.expectedStatus,"onUpdate:modelValue":n[4]||=e=>u.value.expectedStatus=e,class:`config-card__input`,"use-grouping":!1,min:100,max:599,onBlur:h,onKeydown:P(V(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[16]||=o(`small`,{class:`config-card__hint`},`HTTP status code to expect (default 200)`,-1)])],64)):L(``,!0),u.value.type===`command`?(I(),e(`div`,_a,[o(`div`,va,[n[17]||=o(`i`,{class:`pi pi-code`},null,-1),o(`span`,null,b(A(c)(`serviceConfigHealthCheck.command`)),1)]),d(A(le),{modelValue:u.value.command,"onUpdate:modelValue":n[5]||=e=>u.value.command=e,class:`config-card__input`,rows:`2`,placeholder:`curl -sf http://localhost:3000/health`,"auto-resize":``,onBlur:h},null,8,[`modelValue`]),o(`small`,ya,b(A(c)(`serviceConfigHealthCheck.commandHint`)),1)])):L(``,!0),o(`div`,ba,[o(`div`,xa,[n[18]||=o(`i`,{class:`pi pi-hourglass`},null,-1),o(`span`,null,b(A(c)(`serviceConfigHealthCheck.initialDelay`)),1)]),d(A(Pe),{modelValue:u.value.initialDelay,"onUpdate:modelValue":n[6]||=e=>u.value.initialDelay=e,class:`config-card__input`,"use-grouping":!1,min:0,onBlur:h,onKeydown:P(V(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[19]||=o(`small`,{class:`config-card__hint`},`Wait before first health check (ms)`,-1)]),o(`div`,Sa,[o(`div`,Ca,[n[20]||=o(`i`,{class:`pi pi-clock`},null,-1),o(`span`,null,b(A(c)(`serviceConfigHealthCheck.interval`)),1)]),d(A(Pe),{modelValue:u.value.interval,"onUpdate:modelValue":n[7]||=e=>u.value.interval=e,class:`config-card__input`,"use-grouping":!1,min:1e3,onBlur:h,onKeydown:P(V(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),o(`div`,wa,[o(`div`,Ta,[n[21]||=o(`i`,{class:`pi pi-stopwatch`},null,-1),o(`span`,null,b(A(c)(`serviceConfigHealthCheck.timeout`)),1)]),d(A(Pe),{modelValue:u.value.timeout,"onUpdate:modelValue":n[8]||=e=>u.value.timeout=e,class:`config-card__input`,"use-grouping":!1,min:500,onBlur:h,onKeydown:P(V(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),o(`div`,Ea,[o(`div`,Da,[n[22]||=o(`i`,{class:`pi pi-replay`},null,-1),o(`span`,null,b(A(c)(`serviceConfigHealthCheck.retries`)),1)]),d(A(Pe),{modelValue:u.value.retries,"onUpdate:modelValue":n[9]||=e=>u.value.retries=e,class:`config-card__input`,"use-grouping":!1,min:0,max:10,onBlur:h,onKeydown:P(V(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])],64)):L(``,!0)]))}}),[[`__scopeId`,`data-v-63e32039`]]),ka={class:`config-shortcuts`},Aa={key:0,class:`config-shortcuts__empty`},ja={class:`config-shortcuts__row`},Ma={class:`config-shortcuts__field`},Na=[`for`],Pa={class:`config-shortcuts__field config-shortcuts__field--wide`},Fa=[`for`],Ia={class:`config-shortcuts__field`},La=[`for`],Ra={class:`config-shortcuts__actions-cell`},za={class:`config-shortcuts__footer`},Ba=E(v({__name:`ServiceConfigShortcuts`,props:{service:{}},emits:[`save`],setup(n,{emit:r}){let a=n,{t:s}=we(),c=r,l=t([...a.service.shortcuts??[]]),u=null;M(()=>a.service,e=>{u||(l.value=[...e.shortcuts??[]])});function f(){l.value=[...l.value,{id:je(),label:``,command:``,cwd:void 0}]}function m(e){l.value=l.value.filter((t,n)=>n!==e)}function h(e,t,n){l.value=l.value.map((r,i)=>i===e?{...r,[t]:n||void 0}:r)}function g(){u&&clearTimeout(u),u=setTimeout(()=>{c(`save`,l.value),u=null},150)}function _(e){m(e),g()}return(t,n)=>(I(),e(`div`,ka,[l.value.length===0?(I(),e(`div`,Aa,[o(`p`,null,b(A(s)(`serviceConfigShortcuts.empty`)),1)])):L(``,!0),(I(!0),e(i,null,he(l.value,(t,n)=>(I(),e(`div`,{key:t.id,class:`config-card`},[o(`div`,ja,[o(`div`,Ma,[o(`label`,{class:`config-shortcuts__label`,for:`shortcut-label-${n}`},b(A(s)(`serviceConfigShortcuts.label`)),9,Na),d(A(R),{id:`shortcut-label-${n}`,"model-value":t.label,placeholder:A(s)(`serviceConfigShortcuts.labelPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-label-input`,"onUpdate:modelValue":e=>h(n,`label`,e),onBlur:g,onKeydown:P(V(g,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),o(`div`,Pa,[o(`label`,{class:`config-shortcuts__label`,for:`shortcut-command-${n}`},b(A(s)(`serviceConfigShortcuts.command`)),9,Fa),d(A(R),{id:`shortcut-command-${n}`,"model-value":t.command,placeholder:A(s)(`serviceConfigShortcuts.commandPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-command-input`,"onUpdate:modelValue":e=>h(n,`command`,e),onBlur:g,onKeydown:P(V(g,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),o(`div`,Ia,[o(`label`,{class:`config-shortcuts__label`,for:`shortcut-cwd-${n}`},b(A(s)(`serviceConfigShortcuts.workingDir`)),9,La),d(A(R),{id:`shortcut-cwd-${n}`,"model-value":t.cwd??``,placeholder:A(s)(`serviceConfigShortcuts.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>h(n,`cwd`,e),onBlur:g,onKeydown:P(V(g,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),o(`div`,Ra,[d(A(p),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>_(n)},null,8,[`onClick`])])])]))),128)),o(`div`,za,[d(A(p),{label:A(s)(`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`]]),Va=Object.defineProperty,Ha=Object.getOwnPropertySymbols,Ua=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ga=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ka=(e,t)=>{for(var n in t||={})Ua.call(t,n)&&Ga(e,n,t[n]);if(Ha)for(var n of Ha(t))Wa.call(t,n)&&Ga(e,n,t[n]);return e},qa=(e,t)=>{var n={};for(var r in e)Ua.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ha)for(var r of Ha(e))t.indexOf(r)<0&&Wa.call(e,r)&&(n[r]=e[r]);return n},Ja=`[vue-draggable-plus]: `;function Ya(e){console.warn(Ja+e)}function Xa(e){console.error(Ja+e)}function Za(e,t,n){return n>=0&&n<e.length&&e.splice(n,0,e.splice(t,1)[0]),e}function Qa(e){return e.replace(/-(\w)/g,(e,t)=>t?t.toUpperCase():``)}function $a(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[Qa(n)]=e[n]),t),{})}function eo(e,t){return Array.isArray(e)&&e.splice(t,1),e}function to(e,t,n){return Array.isArray(e)&&e.splice(t,0,n),e}function no(e){return e===void 0}function ro(e){return typeof e==`string`}function io(e,t,n){let r=e.children[n];e.insertBefore(t,r)}function ao(e){e.parentNode&&e.parentNode.removeChild(e)}function oo(e,t=document){let n=null;return n=typeof t?.querySelector==`function`?(t?.querySelector)?.call(t,e):document.querySelector(e),n||Ya(`Element not found: ${e}`),n}function so(e,t,n=null){return function(...r){return e.apply(n,r),t.apply(n,r)}}function co(e,t){let n=Ka({},e);return Object.keys(t).forEach(r=>{n[r]?n[r]=so(e[r],t[r]):n[r]=t[r]}),n}function lo(e){return e instanceof HTMLElement}function uo(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}function fo(e){return e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97)}var po=Object.assign;function mo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ho(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?mo(Object(n),!0).forEach(function(t){_o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mo(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function go(e){"@babel/helpers - typeof";return go=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},go(e)}function _o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vo(){return vo=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vo.apply(this,arguments)}function yo(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function bo(e,t){if(e==null)return{};var n=yo(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var xo=`1.15.2`;function So(e){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(e)}var Co=So(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),wo=So(/Edge/i),To=So(/firefox/i),Eo=So(/safari/i)&&!So(/chrome/i)&&!So(/android/i),Do=So(/iP(ad|od|hone)/i),Oo=So(/chrome/i)&&So(/android/i),ko={capture:!1,passive:!1};function H(e,t,n){e.addEventListener(t,n,!Co&&ko)}function U(e,t,n){e.removeEventListener(t,n,!Co&&ko)}function Ao(e,t){if(t){if(t[0]===`>`&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function jo(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function Mo(e,t,n,r){if(e){n||=document;do{if(t!=null&&(t[0]===`>`?e.parentNode===n&&Ao(e,t):Ao(e,t))||r&&e===n)return e;if(e===n)break}while(e=jo(e))}return null}var No=/\s+/g;function Po(e,t,n){e&&t&&(e.classList?e.classList[n?`add`:`remove`](t):e.className=((` `+e.className+` `).replace(No,` `).replace(` `+t+` `,` `)+(n?` `+t:``)).replace(No,` `))}function W(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,``):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf(`webkit`)===-1&&(t=`-webkit-`+t),r[t]=n+(typeof n==`string`?``:`px`)}}function Fo(e,t){var n=``;if(typeof e==`string`)n=e;else do{var r=W(e,`transform`);r&&r!==`none`&&(n=r+` `+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function Io(e,t,n){if(e){var r=e.getElementsByTagName(t),i=0,a=r.length;if(n)for(;i<a;i++)n(r[i],i);return r}return[]}function Lo(){return document.scrollingElement||document.documentElement}function G(e,t,n,r,i){if(!(!e.getBoundingClientRect&&e!==window)){var a,o,s,c,l,u,d;if(e!==window&&e.parentNode&&e!==Lo()?(a=e.getBoundingClientRect(),o=a.top,s=a.left,c=a.bottom,l=a.right,u=a.height,d=a.width):(o=0,s=0,c=window.innerHeight,l=window.innerWidth,u=window.innerHeight,d=window.innerWidth),(t||n)&&e!==window&&(i||=e.parentNode,!Co))do if(i&&i.getBoundingClientRect&&(W(i,`transform`)!==`none`||n&&W(i,`position`)!==`static`)){var f=i.getBoundingClientRect();o-=f.top+parseInt(W(i,`border-top-width`)),s-=f.left+parseInt(W(i,`border-left-width`)),c=o+a.height,l=s+a.width;break}while(i=i.parentNode);if(r&&e!==window){var p=Fo(i||e),m=p&&p.a,h=p&&p.d;p&&(o/=h,s/=m,d/=m,u/=h,c=o+u,l=s+d)}return{top:o,left:s,bottom:c,right:l,width:d,height:u}}}function Ro(e,t,n){for(var r=Wo(e,!0),i=G(e)[t];r;){var a=G(r)[n],o=void 0;if(o=i>=a,!o)return r;if(r===Lo())break;r=Wo(r,!1)}return!1}function zo(e,t,n,r){for(var i=0,a=0,o=e.children;a<o.length;){if(o[a].style.display!==`none`&&o[a]!==Q.ghost&&(r||o[a]!==Q.dragged)&&Mo(o[a],n.draggable,e,!1)){if(i===t)return o[a];i++}a++}return null}function Bo(e,t){for(var n=e.lastElementChild;n&&(n===Q.ghost||W(n,`display`)===`none`||t&&!Ao(n,t));)n=n.previousElementSibling;return n||null}function Vo(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)e.nodeName.toUpperCase()!==`TEMPLATE`&&e!==Q.clone&&(!t||Ao(e,t))&&n++;return n}function Ho(e){var t=0,n=0,r=Lo();if(e)do{var i=Fo(e),a=i.a,o=i.d;t+=e.scrollLeft*a,n+=e.scrollTop*o}while(e!==r&&(e=e.parentNode));return[t,n]}function Uo(e,t){for(var n in e)if(e.hasOwnProperty(n)){for(var r in t)if(t.hasOwnProperty(r)&&t[r]===e[n][r])return Number(n)}return-1}function Wo(e,t){if(!e||!e.getBoundingClientRect)return Lo();var n=e,r=!1;do if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var i=W(n);if(n.clientWidth<n.scrollWidth&&(i.overflowX==`auto`||i.overflowX==`scroll`)||n.clientHeight<n.scrollHeight&&(i.overflowY==`auto`||i.overflowY==`scroll`)){if(!n.getBoundingClientRect||n===document.body)return Lo();if(r||t)return n;r=!0}}while(n=n.parentNode);return Lo()}function Go(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function Ko(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}var qo;function Jo(e,t){return function(){if(!qo){var n=arguments,r=this;n.length===1?e.call(r,n[0]):e.apply(r,n),qo=setTimeout(function(){qo=void 0},t)}}}function Yo(){clearTimeout(qo),qo=void 0}function Xo(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function Zo(e){var t=window.Polymer,n=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):n?n(e).clone(!0)[0]:e.cloneNode(!0)}function Qo(e,t,n){var r={};return Array.from(e.children).forEach(function(i){if(!(!Mo(i,t.draggable,e,!1)||i.animated||i===n)){var a=G(i);r.left=Math.min(r.left??1/0,a.left),r.top=Math.min(r.top??1/0,a.top),r.right=Math.max(r.right??-1/0,a.right),r.bottom=Math.max(r.bottom??-1/0,a.bottom)}}),r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}var $o=`Sortable`+new Date().getTime();function es(){var e=[],t;return{captureAnimationState:function(){e=[],this.options.animation&&[].slice.call(this.el.children).forEach(function(t){if(!(W(t,`display`)===`none`||t===Q.ghost)){e.push({target:t,rect:G(t)});var n=ho({},e[e.length-1].rect);if(t.thisAnimationDuration){var r=Fo(t,!0);r&&(n.top-=r.f,n.left-=r.e)}t.fromRect=n}})},addAnimationState:function(t){e.push(t)},removeAnimationState:function(t){e.splice(Uo(e,{target:t}),1)},animateAll:function(n){var r=this;if(!this.options.animation){clearTimeout(t),typeof n==`function`&&n();return}var i=!1,a=0;e.forEach(function(e){var t=0,n=e.target,o=n.fromRect,s=G(n),c=n.prevFromRect,l=n.prevToRect,u=e.rect,d=Fo(n,!0);d&&(s.top-=d.f,s.left-=d.e),n.toRect=s,n.thisAnimationDuration&&Ko(c,s)&&!Ko(o,s)&&(u.top-s.top)/(u.left-s.left)===(o.top-s.top)/(o.left-s.left)&&(t=ns(u,c,l,r.options)),Ko(s,o)||(n.prevFromRect=o,n.prevToRect=s,t||=r.options.animation,r.animate(n,u,s,t)),t&&(i=!0,a=Math.max(a,t),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout(function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null},t),n.thisAnimationDuration=t)}),clearTimeout(t),i?t=setTimeout(function(){typeof n==`function`&&n()},a):typeof n==`function`&&n(),e=[]},animate:function(e,t,n,r){if(r){W(e,`transition`,``),W(e,`transform`,``);var i=Fo(this.el),a=i&&i.a,o=i&&i.d,s=(t.left-n.left)/(a||1),c=(t.top-n.top)/(o||1);e.animatingX=!!s,e.animatingY=!!c,W(e,`transform`,`translate3d(`+s+`px,`+c+`px,0)`),this.forRepaintDummy=ts(e),W(e,`transition`,`transform `+r+`ms`+(this.options.easing?` `+this.options.easing:``)),W(e,`transform`,`translate3d(0,0,0)`),typeof e.animated==`number`&&clearTimeout(e.animated),e.animated=setTimeout(function(){W(e,`transition`,``),W(e,`transform`,``),e.animated=!1,e.animatingX=!1,e.animatingY=!1},r)}}}}function ts(e){return e.offsetWidth}function ns(e,t,n,r){return Math.sqrt((t.top-e.top)**2+(t.left-e.left)**2)/Math.sqrt((t.top-n.top)**2+(t.left-n.left)**2)*r.animation}var rs=[],is={initializeByDefault:!0},as={mount:function(e){for(var t in is)is.hasOwnProperty(t)&&!(t in e)&&(e[t]=is[t]);rs.forEach(function(t){if(t.pluginName===e.pluginName)throw`Sortable: Cannot mount plugin ${e.pluginName} more than once`}),rs.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var i=e+`Global`;rs.forEach(function(r){t[r.pluginName]&&(t[r.pluginName][i]&&t[r.pluginName][i](ho({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](ho({sortable:t},n)))})},initializePlugins:function(e,t,n,r){for(var i in rs.forEach(function(r){var i=r.pluginName;if(!(!e.options[i]&&!r.initializeByDefault)){var a=new r(e,t,e.options);a.sortable=e,a.options=e.options,e[i]=a,vo(n,a.defaults)}}),e.options)if(e.options.hasOwnProperty(i)){var a=this.modifyOption(e,i,e.options[i]);a!==void 0&&(e.options[i]=a)}},getEventProperties:function(e,t){var n={};return rs.forEach(function(r){typeof r.eventProperties==`function`&&vo(n,r.eventProperties.call(t[r.pluginName],e))}),n},modifyOption:function(e,t,n){var r;return rs.forEach(function(i){e[i.pluginName]&&i.optionListeners&&typeof i.optionListeners[t]==`function`&&(r=i.optionListeners[t].call(e[i.pluginName],n))}),r}};function os(e){var t=e.sortable,n=e.rootEl,r=e.name,i=e.targetEl,a=e.cloneEl,o=e.toEl,s=e.fromEl,c=e.oldIndex,l=e.newIndex,u=e.oldDraggableIndex,d=e.newDraggableIndex,f=e.originalEvent,p=e.putSortable,m=e.extraEventProperties;if(t||=n&&n[$o],t){var h,g=t.options,_=`on`+r.charAt(0).toUpperCase()+r.substr(1);window.CustomEvent&&!Co&&!wo?h=new CustomEvent(r,{bubbles:!0,cancelable:!0}):(h=document.createEvent(`Event`),h.initEvent(r,!0,!0)),h.to=o||n,h.from=s||n,h.item=i||n,h.clone=a,h.oldIndex=c,h.newIndex=l,h.oldDraggableIndex=u,h.newDraggableIndex=d,h.originalEvent=f,h.pullMode=p?p.lastPutMode:void 0;var v=ho(ho({},m),as.getEventProperties(r,t));for(var y in v)h[y]=v[y];n&&n.dispatchEvent(h),g[_]&&g[_].call(t,h)}}var ss=[`evt`],cs=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,i=bo(n,ss);as.pluginEvent.bind(Q)(e,t,ho({dragEl:K,parentEl:q,ghostEl:J,rootEl:Y,nextEl:us,lastDownEl:ds,cloneEl:X,cloneHidden:fs,dragStarted:Ds,putSortable:Z,activeSortable:Q.active,originalEvent:r,oldIndex:ps,oldDraggableIndex:hs,newIndex:ms,newDraggableIndex:gs,hideGhostForTarget:Ks,unhideGhostForTarget:qs,cloneNowHidden:function(){fs=!0},cloneNowShown:function(){fs=!1},dispatchSortableEvent:function(e){ls({sortable:t,name:e,originalEvent:r})}},i))};function ls(e){os(ho({putSortable:Z,cloneEl:X,targetEl:K,rootEl:Y,oldIndex:ps,oldDraggableIndex:hs,newIndex:ms,newDraggableIndex:gs},e))}var K,q,J,Y,us,ds,X,fs,ps,ms,hs,gs,_s,Z,vs=!1,ys=!1,bs=[],xs,Ss,Cs,ws,Ts,Es,Ds,Os,ks,As=!1,js=!1,Ms,Ns,Ps=[],Fs=!1,Is=[],Ls=typeof document<`u`,Rs=Do,zs=wo||Co?`cssFloat`:`float`,Bs=Ls&&!Oo&&!Do&&`draggable`in document.createElement(`div`),Vs=function(){if(Ls){if(Co)return!1;var e=document.createElement(`x`);return e.style.cssText=`pointer-events:auto`,e.style.pointerEvents===`auto`}}(),Hs=function(e,t){var n=W(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=zo(e,0,t),a=zo(e,1,t),o=i&&W(i),s=a&&W(a),c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+G(i).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+G(a).width;if(n.display===`flex`)return n.flexDirection===`column`||n.flexDirection===`column-reverse`?`vertical`:`horizontal`;if(n.display===`grid`)return n.gridTemplateColumns.split(` `).length<=1?`vertical`:`horizontal`;if(i&&o.float&&o.float!==`none`){var u=o.float===`left`?`left`:`right`;return a&&(s.clear===`both`||s.clear===u)?`vertical`:`horizontal`}return i&&(o.display===`block`||o.display===`flex`||o.display===`table`||o.display===`grid`||c>=r&&n[zs]===`none`||a&&n[zs]===`none`&&c+l>r)?`vertical`:`horizontal`},Us=function(e,t,n){var r=n?e.left:e.top,i=n?e.right:e.bottom,a=n?e.width:e.height,o=n?t.left:t.top,s=n?t.right:t.bottom,c=n?t.width:t.height;return r===o||i===s||r+a/2===o+c/2},Ws=function(e,t){var n;return bs.some(function(r){var i=r[$o].options.emptyInsertThreshold;if(!(!i||Bo(r))){var a=G(r),o=e>=a.left-i&&e<=a.right+i,s=t>=a.top-i&&t<=a.bottom+i;if(o&&s)return n=r}}),n},Gs=function(e){function t(e,n){return function(r,i,a,o){var s=r.options.group.name&&i.options.group.name&&r.options.group.name===i.options.group.name;if(e==null&&(n||s))return!0;if(e==null||e===!1)return!1;if(n&&e===`clone`)return e;if(typeof e==`function`)return t(e(r,i,a,o),n)(r,i,a,o);var c=(n?r:i).options.group.name;return e===!0||typeof e==`string`&&e===c||e.join&&e.indexOf(c)>-1}}var n={},r=e.group;(!r||go(r)!=`object`)&&(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},Ks=function(){!Vs&&J&&W(J,`display`,`none`)},qs=function(){!Vs&&J&&W(J,`display`,``)};Ls&&!Oo&&document.addEventListener(`click`,function(e){if(ys)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ys=!1,!1},!0);var Js=function(e){if(K){e=e.touches?e.touches[0]:e;var t=Ws(e.clientX,e.clientY);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[$o]._onDragOver(n)}}},Ys=function(e){K&&K.parentNode[$o]._isOutsideThisEl(e.target)};function Q(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw`Sortable: \`el\` must be an HTMLElement, not ${{}.toString.call(e)}`;this.el=e,this.options=t=vo({},t),e[$o]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?`>li`:`>*`,swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Hs(e,this.options)},ghostClass:`sortable-ghost`,chosenClass:`sortable-chosen`,dragClass:`sortable-drag`,ignore:`a, img`,filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(`Text`,t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:`data-id`,delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:`sortable-fallback`,fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Q.supportPointer!==!1&&`PointerEvent`in window&&!Eo,emptyInsertThreshold:5};for(var r in as.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in Gs(t),this)i.charAt(0)===`_`&&typeof this[i]==`function`&&(this[i]=this[i].bind(this));this.nativeDraggable=t.forceFallback?!1:Bs,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?H(e,`pointerdown`,this._onTapStart):(H(e,`mousedown`,this._onTapStart),H(e,`touchstart`,this._onTapStart)),this.nativeDraggable&&(H(e,`dragover`,this),H(e,`dragenter`,this)),bs.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),vo(this,es())}Q.prototype={constructor:Q,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(Os=null)},_getDirection:function(e,t){return typeof this.options.direction==`function`?this.options.direction.call(this,e,t,K):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,i=r.preventOnFilter,a=e.type,o=e.touches&&e.touches[0]||e.pointerType&&e.pointerType===`touch`&&e,s=(o||e).target,c=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,l=r.filter;if(ac(n),!K&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||r.disabled)&&!c.isContentEditable&&!(!this.nativeDraggable&&Eo&&s&&s.tagName.toUpperCase()===`SELECT`)&&(s=Mo(s,r.draggable,n,!1),!(s&&s.animated)&&ds!==s)){if(ps=Vo(s),hs=Vo(s,r.draggable),typeof l==`function`){if(l.call(this,e,s,this)){ls({sortable:t,rootEl:c,name:`filter`,targetEl:s,toEl:n,fromEl:n}),cs(`filter`,t,{evt:e}),i&&e.cancelable&&e.preventDefault();return}}else if(l&&(l=l.split(`,`).some(function(r){if(r=Mo(c,r.trim(),n,!1),r)return ls({sortable:t,rootEl:r,name:`filter`,targetEl:s,fromEl:n,toEl:n}),cs(`filter`,t,{evt:e}),!0}),l)){i&&e.cancelable&&e.preventDefault();return}r.handle&&!Mo(c,r.handle,n,!1)||this._prepareDragStart(e,o,s)}}},_prepareDragStart:function(e,t,n){var r=this,i=r.el,a=r.options,o=i.ownerDocument,s;if(n&&!K&&n.parentNode===i){var c=G(n);if(Y=i,K=n,q=K.parentNode,us=K.nextSibling,ds=n,_s=a.group,Q.dragged=K,xs={target:K,clientX:(t||e).clientX,clientY:(t||e).clientY},Ts=xs.clientX-c.left,Es=xs.clientY-c.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,K.style[`will-change`]=`all`,s=function(){if(cs(`delayEnded`,r,{evt:e}),Q.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!To&&r.nativeDraggable&&(K.draggable=!0),r._triggerDragStart(e,t),ls({sortable:r,name:`choose`,originalEvent:e}),Po(K,a.chosenClass,!0)},a.ignore.split(`,`).forEach(function(e){Io(K,e.trim(),Qs)}),H(o,`dragover`,Js),H(o,`mousemove`,Js),H(o,`touchmove`,Js),H(o,`mouseup`,r._onDrop),H(o,`touchend`,r._onDrop),H(o,`touchcancel`,r._onDrop),To&&this.nativeDraggable&&(this.options.touchStartThreshold=4,K.draggable=!0),cs(`delayStart`,this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(wo||Co))){if(Q.eventCanceled){this._onDrop();return}H(o,`mouseup`,r._disableDelayedDrag),H(o,`touchend`,r._disableDelayedDrag),H(o,`touchcancel`,r._disableDelayedDrag),H(o,`mousemove`,r._delayedDragTouchMoveHandler),H(o,`touchmove`,r._delayedDragTouchMoveHandler),a.supportPointer&&H(o,`pointermove`,r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(s,a.delay)}else s()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){K&&Qs(K),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;U(e,`mouseup`,this._disableDelayedDrag),U(e,`touchend`,this._disableDelayedDrag),U(e,`touchcancel`,this._disableDelayedDrag),U(e,`mousemove`,this._delayedDragTouchMoveHandler),U(e,`touchmove`,this._delayedDragTouchMoveHandler),U(e,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t||=e.pointerType==`touch`&&e,!this.nativeDraggable||t?this.options.supportPointer?H(document,`pointermove`,this._onTouchMove):t?H(document,`touchmove`,this._onTouchMove):H(document,`mousemove`,this._onTouchMove):(H(K,`dragend`,this),H(Y,`dragstart`,this._onDragStart));try{document.selection?oc(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(vs=!1,Y&&K){cs(`dragStarted`,this,{evt:t}),this.nativeDraggable&&H(document,`dragover`,Ys);var n=this.options;!e&&Po(K,n.dragClass,!1),Po(K,n.ghostClass,!0),Q.active=this,e&&this._appendGhost(),ls({sortable:this,name:`start`,originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(Ss){this._lastX=Ss.clientX,this._lastY=Ss.clientY,Ks();for(var e=document.elementFromPoint(Ss.clientX,Ss.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Ss.clientX,Ss.clientY),e!==t);)t=e;if(K.parentNode[$o]._isOutsideThisEl(e),t)do{if(t[$o]){var n=void 0;if(n=t[$o]._onDragOver({clientX:Ss.clientX,clientY:Ss.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);qs()}},_onTouchMove:function(e){if(xs){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,i=e.touches?e.touches[0]:e,a=J&&Fo(J,!0),o=J&&a&&a.a,s=J&&a&&a.d,c=Rs&&Ns&&Ho(Ns),l=(i.clientX-xs.clientX+r.x)/(o||1)+(c?c[0]-Ps[0]:0)/(o||1),u=(i.clientY-xs.clientY+r.y)/(s||1)+(c?c[1]-Ps[1]:0)/(s||1);if(!Q.active&&!vs){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(J){a?(a.e+=l-(Cs||0),a.f+=u-(ws||0)):a={a:1,b:0,c:0,d:1,e:l,f:u};var d=`matrix(${a.a},${a.b},${a.c},${a.d},${a.e},${a.f})`;W(J,`webkitTransform`,d),W(J,`mozTransform`,d),W(J,`msTransform`,d),W(J,`transform`,d),Cs=l,ws=u,Ss=i}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!J){var e=this.options.fallbackOnBody?document.body:Y,t=G(K,!0,Rs,!0,e),n=this.options;if(Rs){for(Ns=e;W(Ns,`position`)===`static`&&W(Ns,`transform`)===`none`&&Ns!==document;)Ns=Ns.parentNode;Ns!==document.body&&Ns!==document.documentElement?(Ns===document&&(Ns=Lo()),t.top+=Ns.scrollTop,t.left+=Ns.scrollLeft):Ns=Lo(),Ps=Ho(Ns)}J=K.cloneNode(!0),Po(J,n.ghostClass,!1),Po(J,n.fallbackClass,!0),Po(J,n.dragClass,!0),W(J,`transition`,``),W(J,`transform`,``),W(J,`box-sizing`,`border-box`),W(J,`margin`,0),W(J,`top`,t.top),W(J,`left`,t.left),W(J,`width`,t.width),W(J,`height`,t.height),W(J,`opacity`,`0.8`),W(J,`position`,Rs?`absolute`:`fixed`),W(J,`zIndex`,`100000`),W(J,`pointerEvents`,`none`),Q.ghost=J,e.appendChild(J),W(J,`transform-origin`,Ts/parseInt(J.style.width)*100+`% `+Es/parseInt(J.style.height)*100+`%`)}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,i=n.options;if(cs(`dragStart`,this,{evt:e}),Q.eventCanceled){this._onDrop();return}cs(`setupClone`,this),Q.eventCanceled||(X=Zo(K),X.removeAttribute(`id`),X.draggable=!1,X.style[`will-change`]=``,this._hideClone(),Po(X,this.options.chosenClass,!1),Q.clone=X),n.cloneId=oc(function(){cs(`clone`,n),!Q.eventCanceled&&(n.options.removeCloneOnHide||Y.insertBefore(X,K),n._hideClone(),ls({sortable:n,name:`clone`}))}),!t&&Po(K,i.dragClass,!0),t?(ys=!0,n._loopId=setInterval(n._emulateDragOver,50)):(U(document,`mouseup`,n._onDrop),U(document,`touchend`,n._onDrop),U(document,`touchcancel`,n._onDrop),r&&(r.effectAllowed=`move`,i.setData&&i.setData.call(n,r,K)),H(document,`drop`,n),W(K,`transform`,`translateZ(0)`)),vs=!0,n._dragStartId=oc(n._dragStarted.bind(n,t,e)),H(document,`selectstart`,n),Ds=!0,Eo&&W(document.body,`user-select`,`none`)},_onDragOver:function(e){var t=this.el,n=e.target,r,i,a,o=this.options,s=o.group,c=Q.active,l=_s===s,u=o.sort,d=Z||c,f,p=this,m=!1;if(Fs)return;function h(o,s){cs(o,p,ho({evt:e,isOwner:l,axis:f?`vertical`:`horizontal`,revert:a,dragRect:r,targetRect:i,canSort:u,fromSortable:d,target:n,completed:_,onMove:function(n,i){return Zs(Y,t,K,r,n,G(n),e,i)},changed:v},s))}function g(){h(`dragOverAnimationCapture`),p.captureAnimationState(),p!==d&&d.captureAnimationState()}function _(r){return h(`dragOverCompleted`,{insertion:r}),r&&(l?c._hideClone():c._showClone(p),p!==d&&(Po(K,Z?Z.options.ghostClass:c.options.ghostClass,!1),Po(K,o.ghostClass,!0)),Z!==p&&p!==Q.active?Z=p:p===Q.active&&Z&&(Z=null),d===p&&(p._ignoreWhileAnimating=n),p.animateAll(function(){h(`dragOverAnimationComplete`),p._ignoreWhileAnimating=null}),p!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===K&&!K.animated||n===t&&!n.animated)&&(Os=null),!o.dragoverBubble&&!e.rootEl&&n!==document&&(K.parentNode[$o]._isOutsideThisEl(e.target),!r&&Js(e)),!o.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function v(){ms=Vo(K),gs=Vo(K,o.draggable),ls({sortable:p,name:`change`,toEl:t,newIndex:ms,newDraggableIndex:gs,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),n=Mo(n,o.draggable,t,!0),h(`dragOver`),Q.eventCanceled)return m;if(K.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||p._ignoreWhileAnimating===n)return _(!1);if(ys=!1,c&&!o.disabled&&(l?u||(a=q!==Y):Z===this||(this.lastPutMode=_s.checkPull(this,c,K,e))&&s.checkPut(this,c,K,e))){if(f=this._getDirection(e,n)===`vertical`,r=G(K),h(`dragOverValid`),Q.eventCanceled)return m;if(a)return q=Y,g(),this._hideClone(),h(`revert`),Q.eventCanceled||(us?Y.insertBefore(K,us):Y.appendChild(K)),_(!0);var y=Bo(t,o.draggable);if(!y||tc(e,f,this)&&!y.animated){if(y===K)return _(!1);if(y&&t===e.target&&(n=y),n&&(i=G(n)),Zs(Y,t,K,r,n,i,e,!!n)!==!1)return g(),y&&y.nextSibling?t.insertBefore(K,y.nextSibling):t.appendChild(K),q=t,v(),_(!0)}else if(y&&ec(e,f,this)){var b=zo(t,0,o,!0);if(b===K)return _(!1);if(n=b,i=G(n),Zs(Y,t,K,r,n,i,e,!1)!==!1)return g(),t.insertBefore(K,b),q=t,v(),_(!0)}else if(n.parentNode===t){i=G(n);var x=0,S,C=K.parentNode!==t,w=!Us(K.animated&&K.toRect||r,n.animated&&n.toRect||i,f),T=f?`top`:`left`,E=Ro(n,`top`,`top`)||Ro(K,`top`,`top`),ee=E?E.scrollTop:void 0;Os!==n&&(S=i[T],As=!1,js=!w&&o.invertSwap||C),x=nc(e,n,i,f,w?1:o.swapThreshold,o.invertedSwapThreshold==null?o.swapThreshold:o.invertedSwapThreshold,js,Os===n);var D;if(x!==0){var te=Vo(K);do te-=x,D=q.children[te];while(D&&(W(D,`display`)===`none`||D===J))}if(x===0||D===n)return _(!1);Os=n,ks=x;var O=n.nextElementSibling,k=!1;k=x===1;var A=Zs(Y,t,K,r,n,i,e,k);if(A!==!1)return(A===1||A===-1)&&(k=A===1),Fs=!0,setTimeout($s,30),g(),k&&!O?t.appendChild(K):n.parentNode.insertBefore(K,k?O:n),E&&Xo(E,0,ee-E.scrollTop),q=K.parentNode,S!==void 0&&!js&&(Ms=Math.abs(S-G(n)[T])),v(),_(!0)}if(t.contains(K))return _(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){U(document,`mousemove`,this._onTouchMove),U(document,`touchmove`,this._onTouchMove),U(document,`pointermove`,this._onTouchMove),U(document,`dragover`,Js),U(document,`mousemove`,Js),U(document,`touchmove`,Js)},_offUpEvents:function(){var e=this.el.ownerDocument;U(e,`mouseup`,this._onDrop),U(e,`touchend`,this._onDrop),U(e,`pointerup`,this._onDrop),U(e,`touchcancel`,this._onDrop),U(document,`selectstart`,this)},_onDrop:function(e){var t=this.el,n=this.options;if(ms=Vo(K),gs=Vo(K,n.draggable),cs(`drop`,this,{evt:e}),q=K&&K.parentNode,ms=Vo(K),gs=Vo(K,n.draggable),Q.eventCanceled){this._nulling();return}vs=!1,js=!1,As=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),sc(this.cloneId),sc(this._dragStartId),this.nativeDraggable&&(U(document,`drop`,this),U(t,`dragstart`,this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Eo&&W(document.body,`user-select`,``),W(K,`transform`,``),e&&(Ds&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),J&&J.parentNode&&J.parentNode.removeChild(J),(Y===q||Z&&Z.lastPutMode!==`clone`)&&X&&X.parentNode&&X.parentNode.removeChild(X),K&&(this.nativeDraggable&&U(K,`dragend`,this),Qs(K),K.style[`will-change`]=``,Ds&&!vs&&Po(K,Z?Z.options.ghostClass:this.options.ghostClass,!1),Po(K,this.options.chosenClass,!1),ls({sortable:this,name:`unchoose`,toEl:q,newIndex:null,newDraggableIndex:null,originalEvent:e}),Y===q?ms!==ps&&ms>=0&&(ls({sortable:this,name:`update`,toEl:q,originalEvent:e}),ls({sortable:this,name:`sort`,toEl:q,originalEvent:e})):(ms>=0&&(ls({rootEl:q,name:`add`,toEl:q,fromEl:Y,originalEvent:e}),ls({sortable:this,name:`remove`,toEl:q,originalEvent:e}),ls({rootEl:q,name:`sort`,toEl:q,fromEl:Y,originalEvent:e}),ls({sortable:this,name:`sort`,toEl:q,originalEvent:e})),Z&&Z.save()),Q.active&&((ms==null||ms===-1)&&(ms=ps,gs=hs),ls({sortable:this,name:`end`,toEl:q,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){cs(`nulling`,this),Y=K=q=J=us=X=ds=fs=xs=Ss=Ds=ms=gs=ps=hs=Os=ks=Z=_s=Q.dragged=Q.ghost=Q.clone=Q.active=null,Is.forEach(function(e){e.checked=!0}),Is.length=Cs=ws=0},handleEvent:function(e){switch(e.type){case`drop`:case`dragend`:this._onDrop(e);break;case`dragenter`:case`dragover`:K&&(this._onDragOver(e),Xs(e));break;case`selectstart`:e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,r=0,i=n.length,a=this.options;r<i;r++)t=n[r],Mo(t,a.draggable,this.el,!1)&&e.push(t.getAttribute(a.dataIdAttr)||ic(t));return e},sort:function(e,t){var n={},r=this.el;this.toArray().forEach(function(e,t){var i=r.children[t];Mo(i,this.options.draggable,r,!1)&&(n[e]=i)},this),t&&this.captureAnimationState(),e.forEach(function(e){n[e]&&(r.removeChild(n[e]),r.appendChild(n[e]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return Mo(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(t===void 0)return n[e];var r=as.modifyOption(this,e,t);r===void 0?n[e]=t:n[e]=r,e===`group`&&Gs(n)},destroy:function(){cs(`destroy`,this);var e=this.el;e[$o]=null,U(e,`mousedown`,this._onTapStart),U(e,`touchstart`,this._onTapStart),U(e,`pointerdown`,this._onTapStart),this.nativeDraggable&&(U(e,`dragover`,this),U(e,`dragenter`,this)),Array.prototype.forEach.call(e.querySelectorAll(`[draggable]`),function(e){e.removeAttribute(`draggable`)}),this._onDrop(),this._disableDelayedDragEvents(),bs.splice(bs.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!fs){if(cs(`hideClone`,this),Q.eventCanceled)return;W(X,`display`,`none`),this.options.removeCloneOnHide&&X.parentNode&&X.parentNode.removeChild(X),fs=!0}},_showClone:function(e){if(e.lastPutMode!==`clone`){this._hideClone();return}if(fs){if(cs(`showClone`,this),Q.eventCanceled)return;K.parentNode==Y&&!this.options.group.revertClone?Y.insertBefore(X,K):us?Y.insertBefore(X,us):Y.appendChild(X),this.options.group.revertClone&&this.animate(K,X),W(X,`display`,``),fs=!1}}};function Xs(e){e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),e.cancelable&&e.preventDefault()}function Zs(e,t,n,r,i,a,o,s){var c,l=e[$o],u=l.options.onMove,d;return window.CustomEvent&&!Co&&!wo?c=new CustomEvent(`move`,{bubbles:!0,cancelable:!0}):(c=document.createEvent(`Event`),c.initEvent(`move`,!0,!0)),c.to=t,c.from=e,c.dragged=n,c.draggedRect=r,c.related=i||t,c.relatedRect=a||G(t),c.willInsertAfter=s,c.originalEvent=o,e.dispatchEvent(c),u&&(d=u.call(l,c,o)),d}function Qs(e){e.draggable=!1}function $s(){Fs=!1}function ec(e,t,n){var r=G(zo(n.el,0,n.options,!0)),i=Qo(n.el,n.options,J),a=10;return t?e.clientX<i.left-a||e.clientY<r.top&&e.clientX<r.right:e.clientY<i.top-a||e.clientY<r.bottom&&e.clientX<r.left}function tc(e,t,n){var r=G(Bo(n.el,n.options.draggable)),i=Qo(n.el,n.options,J),a=10;return t?e.clientX>i.right+a||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>i.bottom+a||e.clientX>r.right&&e.clientY>r.top}function nc(e,t,n,r,i,a,o,s){var c=r?e.clientY:e.clientX,l=r?n.height:n.width,u=r?n.top:n.left,d=r?n.bottom:n.right,f=!1;if(!o){if(s&&Ms<l*i){if(!As&&(ks===1?c>u+l*a/2:c<d-l*a/2)&&(As=!0),As)f=!0;else if(ks===1?c<u+Ms:c>d-Ms)return-ks}else if(c>u+l*(1-i)/2&&c<d-l*(1-i)/2)return rc(t)}return f||=o,f&&(c<u+l*a/2||c>d-l*a/2)?c>u+l/2?1:-1:0}function rc(e){return Vo(K)<Vo(e)?1:-1}function ic(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function ac(e){Is.length=0;for(var t=e.getElementsByTagName(`input`),n=t.length;n--;){var r=t[n];r.checked&&Is.push(r)}}function oc(e){return setTimeout(e,0)}function sc(e){return clearTimeout(e)}Ls&&H(document,`touchmove`,function(e){(Q.active||vs)&&e.cancelable&&e.preventDefault()}),Q.utils={on:H,off:U,css:W,find:Io,is:function(e,t){return!!Mo(e,t,e,!1)},extend:Go,throttle:Jo,closest:Mo,toggleClass:Po,clone:Zo,index:Vo,nextTick:oc,cancelNextTick:sc,detectDirection:Hs,getChild:zo},Q.get=function(e){return e[$o]},Q.mount=function(){var e=[...arguments];e[0].constructor===Array&&(e=e[0]),e.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw`Sortable: Mounted plugin must be a constructor function, not ${{}.toString.call(e)}`;e.utils&&(Q.utils=ho(ho({},Q.utils),e.utils)),as.mount(e)})},Q.create=function(e,t){return new Q(e,t)},Q.version=xo;var $=[],cc,lc,uc=!1,dc,fc,pc,mc;function hc(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)e.charAt(0)===`_`&&typeof this[e]==`function`&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?H(document,`dragover`,this._handleAutoScroll):this.options.supportPointer?H(document,`pointermove`,this._handleFallbackAutoScroll):t.touches?H(document,`touchmove`,this._handleFallbackAutoScroll):H(document,`mousemove`,this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;!this.options.dragOverBubble&&!t.rootEl&&this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?U(document,`dragover`,this._handleAutoScroll):(U(document,`pointermove`,this._handleFallbackAutoScroll),U(document,`touchmove`,this._handleFallbackAutoScroll),U(document,`mousemove`,this._handleFallbackAutoScroll)),_c(),gc(),Yo()},nulling:function(){pc=lc=cc=uc=mc=dc=fc=null,$.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,r=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,a=document.elementFromPoint(r,i);if(pc=e,t||this.options.forceAutoScrollFallback||wo||Co||Eo){vc(e,this.options,a,t);var o=Wo(a,!0);uc&&(!mc||r!==dc||i!==fc)&&(mc&&_c(),mc=setInterval(function(){var a=Wo(document.elementFromPoint(r,i),!0);a!==o&&(o=a,gc()),vc(e,n.options,a,t)},10),dc=r,fc=i)}else{if(!this.options.bubbleScroll||Wo(a,!0)===Lo()){gc();return}vc(e,this.options,Wo(a,!1),!1)}}},vo(e,{pluginName:`scroll`,initializeByDefault:!0})}function gc(){$.forEach(function(e){clearInterval(e.pid)}),$=[]}function _c(){clearInterval(mc)}var vc=Jo(function(e,t,n,r){if(t.scroll){var i=(e.touches?e.touches[0]:e).clientX,a=(e.touches?e.touches[0]:e).clientY,o=t.scrollSensitivity,s=t.scrollSpeed,c=Lo(),l=!1,u;lc!==n&&(lc=n,gc(),cc=t.scroll,u=t.scrollFn,cc===!0&&(cc=Wo(n,!0)));var d=0,f=cc;do{var p=f,m=G(p),h=m.top,g=m.bottom,_=m.left,v=m.right,y=m.width,b=m.height,x=void 0,S=void 0,C=p.scrollWidth,w=p.scrollHeight,T=W(p),E=p.scrollLeft,ee=p.scrollTop;p===c?(x=y<C&&(T.overflowX===`auto`||T.overflowX===`scroll`||T.overflowX===`visible`),S=b<w&&(T.overflowY===`auto`||T.overflowY===`scroll`||T.overflowY===`visible`)):(x=y<C&&(T.overflowX===`auto`||T.overflowX===`scroll`),S=b<w&&(T.overflowY===`auto`||T.overflowY===`scroll`));var D=x&&(Math.abs(v-i)<=o&&E+y<C)-(Math.abs(_-i)<=o&&!!E),te=S&&(Math.abs(g-a)<=o&&ee+b<w)-(Math.abs(h-a)<=o&&!!ee);if(!$[d])for(var O=0;O<=d;O++)$[O]||($[O]={});($[d].vx!=D||$[d].vy!=te||$[d].el!==p)&&($[d].el=p,$[d].vx=D,$[d].vy=te,clearInterval($[d].pid),(D!=0||te!=0)&&(l=!0,$[d].pid=setInterval(function(){r&&this.layer===0&&Q.active._onTouchMove(pc);var t=$[this.layer].vy?$[this.layer].vy*s:0,n=$[this.layer].vx?$[this.layer].vx*s:0;typeof u==`function`&&u.call(Q.dragged.parentNode[$o],n,t,e,pc,$[this.layer].el)!==`continue`||Xo($[this.layer].el,n,t)}.bind({layer:d}),24))),d++}while(t.bubbleScroll&&f!==c&&(f=Wo(f,!1)));uc=l}},30),yc=function(e){var t=e.originalEvent,n=e.putSortable,r=e.dragEl,i=e.activeSortable,a=e.dispatchSortableEvent,o=e.hideGhostForTarget,s=e.unhideGhostForTarget;if(t){var c=n||i;o();var l=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,u=document.elementFromPoint(l.clientX,l.clientY);s(),c&&!c.el.contains(u)&&(a(`spill`),this.onSpill({dragEl:r,putSortable:n}))}};function bc(){}bc.prototype={startIndex:null,dragStart:function(e){this.startIndex=e.oldDraggableIndex},onSpill:function(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var r=zo(this.sortable.el,this.startIndex,this.options);r?this.sortable.el.insertBefore(t,r):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:yc},vo(bc,{pluginName:`revertOnSpill`});function xc(){}xc.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:yc},vo(xc,{pluginName:`removeOnSpill`}),Q.mount(new hc),Q.mount(xc,bc);function Sc(e){return e==null?e:JSON.parse(JSON.stringify(e))}function Cc(e){T()&&pe(e)}function wc(e){T()?oe(e):ye(e)}var Tc=null,Ec=null;function Dc(e=null,t=null){Tc=e,Ec=t}function Oc(){return{data:Tc,clonedData:Ec}}var kc=Symbol(`cloneElement`);function Ac(...e){let t=T()?.proxy,n=null,r=e[0],[,i,a]=e;Array.isArray(A(i))||(a=i,i=null);let o=null,{immediate:s=!0,clone:c=Sc,forceFallback:l,fallbackOnBody:d,customUpdate:f}=A(a)??{};function p(e){let{from:t,oldIndex:r,item:a}=e,o=Array.from(t.childNodes);n=l&&!d?o.slice(0,-1):o;let s=A(A(i)?.[r]),u=c(s);Dc(s,u),a[kc]=u}function m(e){let t=e.item[kc];if(!no(t)){if(ao(e.item),u(i)){let n=[...A(i)];i.value=to(n,e.newDraggableIndex,t);return}to(A(i),e.newDraggableIndex,t)}}function h(e){let{from:t,item:n,oldIndex:r,oldDraggableIndex:a,pullMode:o,clone:s}=e;if(io(t,n,r),o===`clone`){ao(s);return}if(u(i)){let e=[...A(i)];i.value=eo(e,a);return}eo(A(i),a)}function g(e){if(f){f(e);return}let{from:t,item:n,oldIndex:r,oldDraggableIndex:a,newDraggableIndex:o}=e;if(ao(n),io(t,n,r),u(i)){let e=[...A(i)];i.value=Za(e,a,o);return}Za(A(i),a,o)}function _(e){let{newIndex:t,oldIndex:r,from:i,to:a}=e,o=null,s=t===r&&i===a;try{if(s){let e=null;n?.some((t,r)=>{if(e&&n?.length!==a.childNodes.length)return i.insertBefore(e,t.nextSibling),!0;let o=a.childNodes[r];e=a?.replaceChild(t,o)})}}catch(e){o=e}finally{n=null}ye(()=>{if(Dc(),o)throw o})}let v={onUpdate:g,onStart:p,onAdd:m,onRemove:h,onEnd:_};function y(e){let n=A(r);return e||=ro(n)?oo(n,t?.$el):n,e&&!lo(e)&&(e=e.$el),e||Xa(`Root element not found`),e}function b(){let e=A(a)??{},{immediate:t,clone:n}=e,r=qa(e,[`immediate`,`clone`]);return uo(r,(e,t)=>{fo(e)&&(r[e]=(e,...n)=>(po(e,Oc()),t(e,...n)))}),co(i===null?{}:v,r)}let x=e=>{e=y(e),o&&S.destroy(),o=new Q(e,b())};M(()=>a,()=>{o&&uo(b(),(e,t)=>{o?.option(e,t)})},{deep:!0});let S={option:(e,t)=>o?.option(e,t),destroy:()=>{o?.destroy(),o=null},save:()=>o?.save(),toArray:()=>o?.toArray(),closest:(...e)=>o?.closest(...e)};return wc(()=>{s&&x()}),Cc(S.destroy),Ka({start:x,pause:()=>S?.option(`disabled`,!0),resume:()=>S?.option(`disabled`,!1)},S)}var jc=[`update`,`start`,`add`,`remove`,`choose`,`unchoose`,`end`,`sort`,`filter`,`clone`,`move`,`change`],Mc=v({name:`VueDraggable`,model:{prop:`modelValue`,event:`update:modelValue`},props:[`clone`,`animation`,`ghostClass`,`group`,`sort`,`disabled`,`store`,`handle`,`draggable`,`swapThreshold`,`invertSwap`,`invertedSwapThreshold`,`removeCloneOnHide`,`direction`,`chosenClass`,`dragClass`,`ignore`,`filter`,`preventOnFilter`,`easing`,`setData`,`dropBubble`,`dragoverBubble`,`dataIdAttr`,`delay`,`delayOnTouchOnly`,`touchStartThreshold`,`forceFallback`,`fallbackClass`,`fallbackOnBody`,`fallbackTolerance`,`fallbackOffset`,`supportPointer`,`emptyInsertThreshold`,`scroll`,`forceAutoScrollFallback`,`scrollSensitivity`,`scrollSpeed`,`bubbleScroll`,`modelValue`,`tag`,`target`,`customUpdate`,...jc.map(e=>`on${e.replace(/^\S/,e=>e.toUpperCase())}`)],emits:[`update:modelValue`,...jc],setup(e,{slots:r,emit:i,expose:a,attrs:o}){let s=jc.reduce((e,t)=>{let n=`on${t.replace(/^\S/,e=>e.toUpperCase())}`;return e[n]=(...e)=>i(t,...e),e},{}),l=c(()=>{let t=g(e),{modelValue:n}=t,r=qa(t,[`modelValue`]),i=Object.entries(r).reduce((e,[t,n])=>{let r=A(n);return r!==void 0&&(e[t]=r),e},{});return Ka(Ka({},s),$a(Ka(Ka({},o),i)))}),u=c({get:()=>e.modelValue,set:e=>i(`update:modelValue`,e)}),d=t(),f=w(Ac(e.target||d,u,l));return a(f),()=>n(e.tag||`div`,{ref:d},(r?.default)?.call(r,f))}}),Nc={mounted:`mounted`,unmounted:`unmounted`};Nc.mounted,Nc.unmounted;var Pc={class:`config-log-parsers`},Fc={class:`config-card`},Ic={class:`config-card__header`},Lc={class:`config-card__hint`},Rc={class:`config-card`},zc={class:`config-card__header`},Bc={class:`config-card__header-hint`},Vc={class:`config-log-parsers__order`},Hc={class:`config-log-parsers__name`},Uc={key:1,class:`config-log-parsers__empty`},Wc={class:`config-log-parsers__add-row`},Gc={class:`config-log-parsers__footer`},Kc=E(v({__name:`ServiceConfigLogs`,props:{service:{}},emits:[`save`],setup(n,{emit:r}){let a=n,s=r,l=Se(),{t:u}=we(),f=Ye(),m=t([...a.service.parserIds??[]]);M(()=>a.service,e=>{m.value=[...e.parserIds??[]]});let h=c(()=>[...f.parsers].filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name))),g=c(()=>h.value.filter(e=>!m.value.includes(e.id))),_=t(m.value.map(e=>f.parsers.find(t=>t.id===e)).filter(e=>e!==void 0));M(m,e=>{let t=_.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);_.value=[...t,...n]}),M(()=>f.parsers,()=>{_.value=m.value.map(e=>f.parsers.find(t=>t.id===e)).filter(e=>e!==void 0)});let v=t(null);function y(e){if(!e)return;let t=f.parsers.find(t=>t.id===e);t&&(m.value=[...m.value,e],_.value=[..._.value,t],v.value=null,T())}function C(e){m.value=m.value.filter(t=>t!==e),_.value=_.value.filter(t=>t.id!==e),T()}function w(){m.value=_.value.map(e=>e.id),T()}function T(){s(`save`,{parserIds:_.value.map(e=>e.id)})}return oe(()=>{f.fetchParsers(),f.subscribeParsers()}),pe(()=>{f.unsubscribeParsers()}),(t,n)=>(I(),e(`div`,Pc,[o(`div`,Fc,[o(`div`,Ic,[n[3]||=o(`i`,{class:`pi pi-code`},null,-1),o(`span`,null,b(A(u)(`serviceConfigLogs.jsParsers`)),1)]),o(`small`,Lc,b(A(u)(`serviceConfigLogs.jsParsersHint`)),1)]),o(`div`,Rc,[o(`div`,zc,[n[4]||=o(`i`,{class:`pi pi-sort-alt`},null,-1),o(`span`,null,b(A(u)(`serviceConfigLogs.executionOrder`)),1),o(`small`,Bc,b(A(u)(`serviceConfigLogs.executionOrderHint`)),1)]),_.value.length>0?(I(),x(A(Mc),{key:0,modelValue:_.value,"onUpdate:modelValue":n[0]||=e=>_.value=e,animation:150,handle:`.drag-handle`,class:`config-log-parsers__drag-list`,"data-testid":`log-parsers-drag-list`,onEnd:w},{default:B(()=>[(I(!0),e(i,null,he(_.value,(t,r)=>(I(),e(`div`,{key:t.id,class:`config-log-parsers__drag-row`,"data-testid":`log-parsers-drag-row`},[n[5]||=o(`span`,{class:`drag-handle`,"data-testid":`drag-handle`},[o(`i`,{class:`pi pi-bars`})],-1),o(`span`,Vc,b(r+1),1),o(`span`,Hc,b(t.name),1),t.builtin?(I(),x(A(ve),{key:0,severity:`secondary`,class:`config-log-parsers__builtin-badge`},{default:B(()=>[S(b(A(u)(`serviceConfigLogs.builtin`)),1)]),_:1})):L(``,!0),t.enabled?L(``,!0):(I(),x(A(ve),{key:1,severity:`warn`,class:`config-log-parsers__disabled-badge`},{default:B(()=>[S(b(A(u)(`serviceConfigLogs.disabled`)),1)]),_:1})),d(A(p),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,class:`config-log-parsers__delete`,onClick:e=>C(t.id)},null,8,[`onClick`])]))),128))]),_:1},8,[`modelValue`])):L(``,!0),_.value.length===0?(I(),e(`div`,Uc,b(A(u)(`serviceConfigLogs.empty`)),1)):L(``,!0),o(`div`,Wc,[d(A(ge),{modelValue:v.value,"onUpdate:modelValue":[n[1]||=e=>v.value=e,y],options:g.value,"option-label":`name`,"option-value":`id`,placeholder:A(u)(`serviceConfigLogs.addParser`),class:`config-log-parsers__add-select`,loading:A(f).loading,disabled:g.value.length===0},{option:B(({option:e})=>[o(`span`,null,b(e.name),1),e.builtin?(I(),x(A(ve),{key:0,severity:`secondary`,class:`ml-2`,style:{"font-size":`0.65rem`,padding:`0.1rem 0.35rem`}},{default:B(()=>[S(b(A(u)(`serviceConfigLogs.builtin`)),1)]),_:1})):L(``,!0)]),_:1},8,[`modelValue`,`options`,`placeholder`,`loading`,`disabled`])])]),o(`div`,Gc,[d(A(p),{label:A(u)(`serviceConfigLogs.manageParsers`),icon:`pi pi-cog`,severity:`secondary`,outlined:``,size:`small`,onClick:n[2]||=e=>A(l).push({name:`settings`,query:{section:`parsers`}})},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-73b711b6`]]),qc={class:`config-log-sources`},Jc={class:`config-card`},Yc={class:`config-card__header`},Xc={class:`config-card__hint`},Zc={key:0,class:`config-card config-card--list`},Qc={class:`source-row__info`},$c={class:`source-row__type`},el={class:`source-row__label`},tl={class:`source-row__actions`},nl={key:1,class:`config-log-sources__empty`},rl={class:`config-log-sources__footer`},il={class:`dialog-form`},al={class:`dialog-form__field`},ol={for:`lsrc-type`,class:`dialog-form__label`},sl={class:`dialog-form__field`},cl={for:`lsrc-path-file`,class:`dialog-form__label`},ll={class:`dialog-form__field`},ul={for:`lsrc-encoding-file`,class:`dialog-form__label`},dl={class:`dialog-form__field dialog-form__field--row`},fl={for:`lsrc-startFromEnd-file`,class:`dialog-form__label`},pl={class:`dialog-form__field dialog-form__field--row`},ml={for:`lsrc-createIfNotExists-file`,class:`dialog-form__label`},hl={class:`dialog-form__field`},gl={for:`lsrc-connectionString-mongo`,class:`dialog-form__label`},_l={class:`dialog-form__row`},vl={class:`dialog-form__field`},yl={class:`dialog-form__field`},bl={class:`dialog-form__row`},xl={class:`dialog-form__field`},Sl={class:`dialog-form__field`},Cl={class:`dialog-form__field`},wl={class:`dialog-form__row`},Tl={class:`dialog-form__field dialog-form__field--grow`},El={class:`dialog-form__field dialog-form__field--port`},Dl={class:`dialog-form__row`},Ol={class:`dialog-form__field`},kl={class:`dialog-form__field`},Al={class:`dialog-form__row`},jl={class:`dialog-form__field`},Ml={class:`dialog-form__field`},Nl={class:`dialog-form__row`},Pl={class:`dialog-form__field`},Fl={class:`dialog-form__field`},Il={class:`dialog-form__row`},Ll={class:`dialog-form__field`},Rl={class:`dialog-form__field`},zl={class:`dialog-form__field`},Bl={key:3,class:`dialog-form__hint-block`},Vl=E(v({__name:`ServiceConfigLogSources`,props:{service:{}},emits:[`save`],setup(n,{emit:a}){let{t:s}=we(),c=n,l=a,u=[{label:`Console (stdout/stderr)`,value:`console`,icon:`pi-terminal`},{label:`File`,value:`file`,icon:`pi-file`},{label:`MongoDB`,value:`mongo`,icon:`pi-database`},{label:`MySQL`,value:`mysql`,icon:`pi-database`}];function f(e){return e===`console`?{type:`console`}:e===`file`?{type:`file`,path:``,encoding:`utf-8`,startFromEnd:!0,createIfNotExists:!1}:e===`mongo`?{type:`mongo`,connectionString:``,database:``,collection:``,timestampField:`timestamp`,messageField:`message`}:{type:`mysql`,host:`localhost`,port:3306,user:``,password:``,database:``,table:``,timestampColumn:`created_at`,messageColumn:`message`,pollIntervalMs:2e3}}let m=t([...c.service.logSources??[]]);M(()=>c.service.logSources,e=>{m.value=[...e??[]]});let h=t(!1),g=t(null),_=t(f(`console`));function v(){g.value=null,_.value=f(`file`),h.value=!0}function y(e){g.value=e,_.value={...m.value[e]},h.value=!0}function x(e){_.value=f(e)}function C(){g.value===null?m.value=[...m.value,{..._.value}]:m.value=m.value.map((e,t)=>t===g.value?{..._.value}:e),h.value=!1,l(`save`,{logSources:m.value})}function w(e){m.value=m.value.filter((t,n)=>n!==e),l(`save`,{logSources:m.value})}function T(e){return e.type===`console`?`Console`:e.type===`file`?e.path||`(no path)`:e.type===`mongo`?e.database?`mongo/${e.database}/${e.collection}`:`(not configured)`:e.type===`mysql`?e.database?`mysql/${e.host}/${e.database}/${e.table}`:`(not configured)`:e.type}function E(e){return e===`console`?`pi-terminal`:e===`file`?`pi-file`:`pi-database`}return(t,n)=>(I(),e(`div`,qc,[o(`div`,Jc,[o(`div`,Yc,[n[23]||=o(`i`,{class:`pi pi-inbox`},null,-1),o(`span`,null,b(A(s)(`serviceConfigLogSources.title`)),1)]),o(`small`,Xc,b(A(s)(`serviceConfigLogSources.hint`)),1)]),m.value.length>0?(I(),e(`div`,Zc,[(I(!0),e(i,null,he(m.value,(t,n)=>(I(),e(`div`,{key:n,class:`source-row`},[o(`i`,{class:O(`pi ${E(t.type)} source-row__icon`)},null,2),o(`div`,Qc,[o(`span`,$c,b(t.type),1),o(`span`,el,b(T(t)),1)]),o(`div`,tl,[d(A(p),{icon:`pi pi-pencil`,text:``,size:`small`,severity:`secondary`,onClick:e=>y(n)},null,8,[`onClick`]),d(A(p),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>w(n)},null,8,[`onClick`])])]))),128))])):(I(),e(`div`,nl,[n[24]||=o(`i`,{class:`pi pi-inbox config-log-sources__empty-icon`},null,-1),o(`p`,null,b(A(s)(`serviceConfigLogSources.empty`)),1),o(`small`,null,b(A(s)(`serviceConfigLogSources.emptyHint`)),1)])),o(`div`,rl,[d(A(p),{label:A(s)(`serviceConfigLogSources.addSource`),icon:`pi pi-plus`,size:`small`,onClick:v},null,8,[`label`])]),d(A(r),{visible:h.value,"onUpdate:visible":n[22]||=e=>h.value=e,header:g.value===null?A(s)(`serviceConfigLogSources.addDialog`):A(s)(`serviceConfigLogSources.editDialog`),modal:``,style:{width:`520px`}},{footer:B(()=>[d(A(p),{label:A(s)(`serviceConfigLogSources.cancel`),severity:`secondary`,outlined:``,onClick:n[21]||=e=>h.value=!1},null,8,[`label`]),d(A(p),{label:g.value===null?A(s)(`serviceConfigLogSources.add`):A(s)(`serviceConfigLogSources.save`),icon:`pi pi-check`,onClick:C},null,8,[`label`])]),default:B(()=>[o(`div`,il,[o(`div`,al,[o(`label`,ol,b(A(s)(`serviceConfigLogSources.type`)),1),d(A(ge),{"input-id":`lsrc-type`,"model-value":_.value.type,options:u,"option-label":`label`,"option-value":`value`,class:`dialog-form__input`,"onUpdate:modelValue":x},null,8,[`model-value`])]),_.value.type===`file`?(I(),e(i,{key:0},[o(`div`,sl,[o(`label`,cl,[S(b(A(s)(`serviceConfigLogSources.path`))+` `,1),n[25]||=o(`span`,{class:`dialog-form__required`},`*`,-1)]),d(A(R),{id:`lsrc-path-file`,modelValue:_.value.path,"onUpdate:modelValue":n[0]||=e=>_.value.path=e,class:`dialog-form__input`,placeholder:`/var/log/app.log`},null,8,[`modelValue`])]),o(`div`,ll,[o(`label`,ul,b(A(s)(`serviceConfigLogSources.encoding`)),1),d(A(R),{id:`lsrc-encoding-file`,modelValue:_.value.encoding,"onUpdate:modelValue":n[1]||=e=>_.value.encoding=e,class:`dialog-form__input`,placeholder:`utf-8`},null,8,[`modelValue`])]),o(`div`,dl,[o(`label`,fl,b(A(s)(`serviceConfigLogSources.startFromEnd`)),1),d(A(Ie),{"input-id":`lsrc-startFromEnd-file`,modelValue:_.value.startFromEnd,"onUpdate:modelValue":n[2]||=e=>_.value.startFromEnd=e},null,8,[`modelValue`])]),o(`div`,pl,[o(`label`,ml,b(A(s)(`serviceConfigLogSources.createIfNotExists`)),1),d(A(Ie),{"input-id":`lsrc-createIfNotExists-file`,modelValue:_.value.createIfNotExists,"onUpdate:modelValue":n[3]||=e=>_.value.createIfNotExists=e},null,8,[`modelValue`])])],64)):_.value.type===`mongo`?(I(),e(i,{key:1},[o(`div`,hl,[o(`label`,gl,[S(b(A(s)(`serviceConfigLogSources.connectionString`))+` `,1),n[26]||=o(`span`,{class:`dialog-form__required`},`*`,-1)]),d(A(R),{id:`lsrc-connectionString-mongo`,modelValue:_.value.connectionString,"onUpdate:modelValue":n[4]||=e=>_.value.connectionString=e,class:`dialog-form__input`,placeholder:`mongodb://user:pass@host:27017`,type:`password`,autocomplete:`off`},null,8,[`modelValue`])]),o(`div`,_l,[o(`div`,vl,[n[27]||=o(`label`,{for:`lsrc-database-mongo`,class:`dialog-form__label`},[S(`Database `),o(`span`,{class:`dialog-form__required`},`*`)],-1),d(A(R),{id:`lsrc-database-mongo`,modelValue:_.value.database,"onUpdate:modelValue":n[5]||=e=>_.value.database=e,class:`dialog-form__input`,placeholder:`mydb`},null,8,[`modelValue`])]),o(`div`,yl,[n[28]||=o(`label`,{for:`lsrc-collection-mongo`,class:`dialog-form__label`},[S(`Collection `),o(`span`,{class:`dialog-form__required`},`*`)],-1),d(A(R),{id:`lsrc-collection-mongo`,modelValue:_.value.collection,"onUpdate:modelValue":n[6]||=e=>_.value.collection=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),o(`div`,bl,[o(`div`,xl,[n[29]||=o(`label`,{for:`lsrc-timestampField-mongo`,class:`dialog-form__label`},`Timestamp field`,-1),d(A(R),{id:`lsrc-timestampField-mongo`,modelValue:_.value.timestampField,"onUpdate:modelValue":n[7]||=e=>_.value.timestampField=e,class:`dialog-form__input`,placeholder:`timestamp`},null,8,[`modelValue`])]),o(`div`,Sl,[n[30]||=o(`label`,{for:`lsrc-messageField-mongo`,class:`dialog-form__label`},`Message field`,-1),d(A(R),{id:`lsrc-messageField-mongo`,modelValue:_.value.messageField,"onUpdate:modelValue":n[8]||=e=>_.value.messageField=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),o(`div`,Cl,[n[31]||=o(`label`,{for:`lsrc-levelField-mongo`,class:`dialog-form__label`},[S(`Level field `),o(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),d(A(R),{id:`lsrc-levelField-mongo`,modelValue:_.value.levelField,"onUpdate:modelValue":n[9]||=e=>_.value.levelField=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])])],64)):_.value.type===`mysql`?(I(),e(i,{key:2},[o(`div`,wl,[o(`div`,Tl,[n[32]||=o(`label`,{for:`lsrc-host-mysql`,class:`dialog-form__label`},[S(`Host `),o(`span`,{class:`dialog-form__required`},`*`)],-1),d(A(R),{id:`lsrc-host-mysql`,modelValue:_.value.host,"onUpdate:modelValue":n[10]||=e=>_.value.host=e,class:`dialog-form__input`,placeholder:`localhost`},null,8,[`modelValue`])]),o(`div`,El,[n[33]||=o(`label`,{for:`lsrc-port-mysql`,class:`dialog-form__label`},`Port`,-1),d(A(Pe),{"input-id":`lsrc-port-mysql`,modelValue:_.value.port,"onUpdate:modelValue":n[11]||=e=>_.value.port=e,min:1,max:65535,class:`dialog-form__input`},null,8,[`modelValue`])])]),o(`div`,Dl,[o(`div`,Ol,[n[34]||=o(`label`,{for:`lsrc-user-mysql`,class:`dialog-form__label`},[S(`User `),o(`span`,{class:`dialog-form__required`},`*`)],-1),d(A(R),{id:`lsrc-user-mysql`,modelValue:_.value.user,"onUpdate:modelValue":n[12]||=e=>_.value.user=e,class:`dialog-form__input`,placeholder:`root`},null,8,[`modelValue`])]),o(`div`,kl,[n[35]||=o(`label`,{for:`lsrc-password-mysql`,class:`dialog-form__label`},`Password`,-1),d(A(R),{id:`lsrc-password-mysql`,modelValue:_.value.password,"onUpdate:modelValue":n[13]||=e=>_.value.password=e,class:`dialog-form__input`,type:`password`,autocomplete:`new-password`},null,8,[`modelValue`])])]),o(`div`,Al,[o(`div`,jl,[n[36]||=o(`label`,{for:`lsrc-database-mysql`,class:`dialog-form__label`},[S(`Database `),o(`span`,{class:`dialog-form__required`},`*`)],-1),d(A(R),{id:`lsrc-database-mysql`,modelValue:_.value.database,"onUpdate:modelValue":n[14]||=e=>_.value.database=e,class:`dialog-form__input`,placeholder:`app_db`},null,8,[`modelValue`])]),o(`div`,Ml,[n[37]||=o(`label`,{for:`lsrc-table-mysql`,class:`dialog-form__label`},[S(`Table `),o(`span`,{class:`dialog-form__required`},`*`)],-1),d(A(R),{id:`lsrc-table-mysql`,modelValue:_.value.table,"onUpdate:modelValue":n[15]||=e=>_.value.table=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),o(`div`,Nl,[o(`div`,Pl,[n[38]||=o(`label`,{for:`lsrc-timestampColumn-mysql`,class:`dialog-form__label`},`Timestamp column`,-1),d(A(R),{id:`lsrc-timestampColumn-mysql`,modelValue:_.value.timestampColumn,"onUpdate:modelValue":n[16]||=e=>_.value.timestampColumn=e,class:`dialog-form__input`,placeholder:`created_at`},null,8,[`modelValue`])]),o(`div`,Fl,[n[39]||=o(`label`,{for:`lsrc-messageColumn-mysql`,class:`dialog-form__label`},`Message column`,-1),d(A(R),{id:`lsrc-messageColumn-mysql`,modelValue:_.value.messageColumn,"onUpdate:modelValue":n[17]||=e=>_.value.messageColumn=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),o(`div`,Il,[o(`div`,Ll,[n[40]||=o(`label`,{for:`lsrc-levelColumn-mysql`,class:`dialog-form__label`},[S(`Level column `),o(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),d(A(R),{id:`lsrc-levelColumn-mysql`,modelValue:_.value.levelColumn,"onUpdate:modelValue":n[18]||=e=>_.value.levelColumn=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])]),o(`div`,Rl,[n[41]||=o(`label`,{for:`lsrc-pollIntervalMs-mysql`,class:`dialog-form__label`},`Poll interval (ms)`,-1),d(A(Pe),{"input-id":`lsrc-pollIntervalMs-mysql`,modelValue:_.value.pollIntervalMs,"onUpdate:modelValue":n[19]||=e=>_.value.pollIntervalMs=e,min:500,max:6e4,class:`dialog-form__input`},null,8,[`modelValue`])])]),o(`div`,zl,[n[42]||=o(`label`,{for:`lsrc-query-mysql`,class:`dialog-form__label`},[S(`Custom query `),o(`span`,{class:`dialog-form__hint`},[S(`(optional, must include `),o(`code`,null,`WHERE … > ?`),S(`)`)])],-1),d(A(R),{id:`lsrc-query-mysql`,modelValue:_.value.query,"onUpdate:modelValue":n[20]||=e=>_.value.query=e,class:`dialog-form__input`,placeholder:`SELECT * FROM logs WHERE created_at > ? ORDER BY id ASC`},null,8,[`modelValue`])])],64)):_.value.type===`console`?(I(),e(`small`,Bl,`The console source captures stdout/stderr and is always active. Adding it here has no effect unless you want to track it explicitly.`)):L(``,!0)])]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-1ceb461a`]]),Hl={class:`config-traefik`},Ul={class:`traefik-entry__fields`},Wl=E(v({__name:`ServiceConfigTraefik`,props:{service:{}},emits:[`save`],setup(n,{emit:r}){let c=n,l=r,u=t([...c.service.localUrls??[]]),f=t(null);oe(async()=>{c.service.agentId&&(f.value=(await s.settings.getAgentTraefikConfig.query({agentId:c.service.agentId})).enabled)});let m=null;M(()=>c.service,e=>{m||(u.value=[...e.localUrls??[]])});function h(){u.value=[...u.value,{url:``,port:3e3}]}function g(e){u.value=u.value.filter((t,n)=>n!==e),v()}function _(e,t,n){u.value=u.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function v(){m&&clearTimeout(m),m=setTimeout(()=>{l(`save`,{localUrls:u.value.filter(e=>e.url.trim())}),m=null},150)}return(t,n)=>(I(),e(`div`,Hl,[f.value===!1?(I(),x(A(a),{key:0,severity:`warn`,closable:!1},{default:B(()=>[n[1]||=S(` Traefik n'est pas activé. Configurez-le dans `,-1),d(A(C),{to:{name:`settings`,query:{section:`agents`}}},{default:B(()=>[...n[0]||=[S(`Paramètres → Agents`,-1)]]),_:1}),n[2]||=S(` (bouton Traefik sur la ligne de l'agent) pour que ces URLs soient actives. `,-1)]),_:1})):L(``,!0),(I(!0),e(i,null,he(u.value,(t,n)=>(I(),e(`div`,{key:n,class:`traefik-entry`},[o(`div`,Ul,[d(A(R),{"model-value":t.url,class:`traefik-entry__url`,placeholder:`mon-app.local.mondomaine.com`,"onUpdate:modelValue":e=>_(n,`url`,e),onBlur:v,onKeydown:P(V(v,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`]),d(A(Pe),{"model-value":t.port,class:`traefik-entry__port`,min:1,max:65535,"use-grouping":!1,placeholder:`3000`,"onUpdate:modelValue":e=>{_(n,`port`,e??3e3),v()}},null,8,[`model-value`,`onUpdate:modelValue`]),d(A(p),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:e=>g(n)},null,8,[`onClick`])])]))),128)),d(A(p),{icon:`pi pi-plus`,label:`Ajouter une URL`,size:`small`,outlined:``,onClick:h})]))}}),[[`__scopeId`,`data-v-a71f945b`]]),Gl={class:`config-view`,"data-testid":`config-view`},Kl={class:`config-view__header`},ql={class:`config-view__title`},Jl={class:`config-view__actions`},Yl=E(v({__name:`ServiceConfigView`,props:{service:{},projectId:{}},emits:[`remove-service`],setup(t,{emit:n}){let r=t,i=n,{t:a}=we(),s=Te(),l=_(),u=ne(),{isDebug:f}=un(),m=se(),h=Se(),g=[`general`,`commands`,`shortcuts`,`env`,`health`,`log-parsers`,`log-sources`,`traefik`],v=c(()=>{let e=m.query.configTab;return g.includes(e)?e:`general`});function y(e){h.replace({query:{...m.query,configTab:e}})}let x=c(()=>l.getByRef({id:r.projectId,orgId:u.activeOrgId})?.activeEnvironmentId);async function S(e,t){await t()?f.value&&console.debug(`[autosave] ${e} saved`):console.error(`[autosave] ${e} failed:`,s.error??`Save failed`)}async function C(e){await S(`General`,()=>s.update(r.service.id,e))}async function w(e){await S(`Commands`,()=>s.update(r.service.id,e))}async function T(e){await S(`Health check`,()=>s.update(r.service.id,{healthCheck:e??null}))}async function E(e){await S(`Shortcuts`,()=>s.update(r.service.id,{shortcuts:e}))}async function ee(e){await S(`Docker`,()=>s.update(r.service.id,{dockerConfig:e}))}async function D(e){await S(`Log parsers`,()=>s.update(r.service.id,e))}async function te(e){await S(`Log sources`,()=>s.update(r.service.id,e))}async function O(e){await S(`Traefik`,()=>s.update(r.service.id,e))}function k(){i(`remove-service`,r.service.id)}return(n,r)=>(I(),e(`div`,Gl,[o(`div`,Kl,[o(`h2`,ql,b(A(a)(`serviceConfigView.title`)),1),o(`div`,Jl,[d(A(p),{label:A(a)(`serviceConfigView.remove`),icon:`pi pi-trash`,severity:`danger`,size:`small`,outlined:``,onClick:k},null,8,[`label`])])]),d(A(ze),{value:v.value,class:`config-view__tabs`,"onUpdate:value":y},{default:B(()=>[d(A(Le),null,{default:B(()=>[d(A(Be),{value:`general`,"data-testid":`tab-config`},{default:B(()=>[r[0]||=o(`i`,{class:`pi pi-cog tab-icon`},null,-1),o(`span`,null,b(A(a)(`serviceConfigView.tabGeneral`)),1)]),_:1}),d(A(Be),{value:`commands`,"data-testid":`tab-commands`},{default:B(()=>[r[1]||=o(`i`,{class:`pi pi-code tab-icon`},null,-1),o(`span`,null,b(A(a)(`serviceConfigView.tabCommands`)),1)]),_:1}),d(A(Be),{value:`shortcuts`,"data-testid":`tab-shortcuts`},{default:B(()=>[r[2]||=o(`i`,{class:`pi pi-bolt tab-icon`},null,-1),o(`span`,null,b(A(a)(`serviceConfigView.tabShortcuts`)),1)]),_:1}),d(A(Be),{value:`env`,"data-testid":`tab-env`},{default:B(()=>[r[3]||=o(`i`,{class:`pi pi-database tab-icon`},null,-1),o(`span`,null,b(A(a)(`serviceConfigView.tabEnvironment`)),1)]),_:1}),d(A(Be),{value:`health`},{default:B(()=>[r[4]||=o(`i`,{class:`pi pi-heart tab-icon`},null,-1),o(`span`,null,b(A(a)(`serviceConfigView.tabHealthCheck`)),1)]),_:1}),d(A(Be),{value:`log-parsers`,"data-testid":`tab-log-parsers`},{default:B(()=>[r[5]||=o(`i`,{class:`pi pi-list tab-icon`},null,-1),o(`span`,null,b(A(a)(`serviceConfigView.tabLogParsers`)),1)]),_:1}),d(A(Be),{value:`log-sources`},{default:B(()=>[r[6]||=o(`i`,{class:`pi pi-inbox tab-icon`},null,-1),o(`span`,null,b(A(a)(`serviceConfigView.tabLogSources`)),1)]),_:1}),d(A(Be),{value:`traefik`},{default:B(()=>[...r[7]||=[o(`i`,{class:`pi pi-server tab-icon`},null,-1),o(`span`,null,`Traefik`,-1)]]),_:1})]),_:1}),d(A(Re),null,{default:B(()=>[d(A(Ve),{value:`general`},{default:B(()=>[d(Kn,{service:t.service,onSave:C},null,8,[`service`])]),_:1}),d(A(Ve),{value:`commands`},{default:B(()=>[d(yi,{service:t.service,onSave:w,onDockerSave:ee},null,8,[`service`])]),_:1}),d(A(Ve),{value:`shortcuts`,"data-testid":`tabpanel-shortcuts`},{default:B(()=>[d(Ba,{service:t.service,onSave:E},null,8,[`service`])]),_:1}),d(A(Ve),{value:`env`},{default:B(()=>[d(aa,{service:t.service,"project-id":t.projectId,"active-environment-id":x.value},null,8,[`service`,`project-id`,`active-environment-id`])]),_:1}),d(A(Ve),{value:`health`},{default:B(()=>[d(Oa,{service:t.service,onSave:T},null,8,[`service`])]),_:1}),d(A(Ve),{value:`log-parsers`,"data-testid":`tabpanel-log-parsers`},{default:B(()=>[d(Kc,{service:t.service,onSave:D},null,8,[`service`])]),_:1}),d(A(Ve),{value:`log-sources`},{default:B(()=>[d(Vl,{service:t.service,onSave:te},null,8,[`service`])]),_:1}),d(A(Ve),{value:`traefik`},{default:B(()=>[d(Wl,{service:t.service,onSave:O},null,8,[`service`])]),_:1})]),_:1})]),_:1},8,[`value`])]))}}),[[`__scopeId`,`data-v-af965568`]]),Xl={key:0,class:`service-detail`},Zl={key:1,class:`service-detail__not-found`},Ql={key:2,class:`service-detail__not-found`},$l=E(v({__name:`ServiceDetailPage`,setup(n){let r=se(),i=Se(),a=_e(),s=re(),{t:l}=we(),u=Te(),d=ce(),f=_(),{setServiceContext:p}=j(),m=c(()=>r.params.id);M(m,e=>p(e),{immediate:!0}),pe(()=>p(null));let h=c(()=>{let e=r.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`||e===`wiki`?e:`terminal`}),g=t(null),v=t(!1),y=c(()=>u.getById(m.value)||(g.value?.id===m.value?g.value:null));M(m,async e=>{if(g.value=null,!(!e||u.getById(e))){v.value=!0;try{g.value=await u.fetchOne(e)}finally{v.value=!1}}},{immediate:!0});let S=c(()=>d.getByService(m.value)),C=c(()=>f.currentProject?.id??``);function w(e){let t=u.getById(e);s.require({message:l(`serviceDetail.deleteConfirmMessage`,{name:t?.name??e}),header:l(`serviceDetail.deleteConfirmHeader`),icon:`pi pi-exclamation-triangle`,rejectLabel:l(`actions.cancel`),acceptLabel:l(`actions.delete`),acceptProps:{severity:`danger`},accept:async()=>{await u.remove(e)&&(a.add({severity:`success`,summary:l(`serviceDetail.removed`),detail:l(`serviceDetail.deleted`),life:3e3}),i.push(`/`))}})}return(t,n)=>y.value?(I(),e(`div`,Xl,[h.value===`terminal`?(I(),x(Kt,{key:`terminal-`+m.value,service:y.value,processes:S.value},null,8,[`service`,`processes`])):h.value===`metrics`?(I(),x(rn,{key:`metrics-`+m.value,service:y.value,processes:S.value},null,8,[`service`,`processes`])):h.value===`config`?(I(),x(Yl,{key:`config-`+m.value,service:y.value,"project-id":C.value,onRemoveService:w},null,8,[`service`,`project-id`])):h.value===`git`?(I(),x(k,{key:`git-`+m.value,"service-id":m.value},null,8,[`service-id`])):h.value===`wiki`?(I(),x(Xe,{key:`wiki-`+m.value,scope:`service:${m.value}`},null,8,[`scope`])):L(``,!0)])):v.value?(I(),e(`div`,Zl)):(I(),e(`div`,Ql,[o(`p`,null,b(A(l)(`serviceDetail.notFound`)),1)]))}}),[[`__scopeId`,`data-v-e5220f62`]]);export{$l as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ai as e,Ba as t,Ci as n,Di as r,Dn as i,Ei as a,Fi as o,Hn as s,Jt as c,Kt as ee,Li as l,Oa as u,Ra as te,Rn as d,Sn as ne,Ya as f,Zt as re,bi as p,ea as ie,er as ae,f as oe,ia as m,ki as h,mn as g,oa as se,on as _,or as ce,st as le,tr as ue,ur as de,ut as fe,xa as pe,xi as v}from"./index-B9x3uCZ9.js";import{n as y}from"./plus-DvnsNNSA.js";import{t as me}from"./fieldset-oHSSpvVY.js";import{t as he}from"./toggleswitch-6H_VuZ4L.js";import{t as ge}from"./autocomplete-DXp2_8rJ.js";import{t as b}from"./divider-D-Mvqkj1.js";var _e={class:`service-form-page`},ve={class:`page-header`},ye={key:0,class:`restart-banner`},be={key:1,class:`loading-container`},x={class:`form-section`},S={class:`form-group`},C={for:`svc-project`},w={class:`form-hint`},T={class:`form-group`},E={for:`svc-agent`},D={class:`form-hint`},O={class:`form-group`},k={for:`svc-name`},A={class:`form-hint`},j={class:`form-actions`},M={class:`form-section`},N={class:`form-row`},xe={class:`form-group flex-1`},Se={for:`svc-name-edit`},Ce={class:`form-group`,style:{width:`160px`}},we={for:`svc-runner`},Te={class:`form-group`},Ee={for:`svc-agent-edit`},De={class:`form-hint`},Oe={class:`form-row`},ke={class:`form-group flex-1`},Ae={for:`svc-cwd`},je={class:`form-group`,style:{"min-width":`200px`}},Me={for:`svc-ports`},Ne={class:`form-group switch-group`},Pe={for:`svc-autorestart`},Fe={class:`form-section`},P={class:`section-header`},Ie={key:0,class:`empty-env`},Le={class:`form-group`},Re={for:`hc-path`},ze={class:`form-row`},Be={class:`form-group flex-1`},Ve={for:`hc-interval`},He={class:`form-group flex-1`},Ue={for:`hc-timeout`},We={class:`form-group flex-1`},Ge={for:`hc-retries`},F=`__inherit__`,I=d(l({__name:`ServiceFormPage`,props:{id:{}},setup(l){let d=l,I=ue(),Ke=ae(),L=ce(),R=ee(),z=fe(),B=le(),V=re(),qe=oe(),{t:H}=de(),U=a(()=>!!d.id),W=a(()=>Ke.query.projectId),G=t(!1),K=t(!1),q=t(null),J=t(null),Y=t(!1),X=te({projectId:``,agentId:F,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),Z=t([]),Je=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Ye=a(()=>R.projects.map(e=>({label:e.name,value:e.id}))),Q=a(()=>[{label:H(`serviceForm.agentInherit`),value:F},...B.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Xe(){Z.value=[...Z.value,{key:``,value:``,isSecret:!1}]}function Ze(e){Z.value=Z.value.filter((t,n)=>n!==e)}function Qe(){let e={},t=!1;for(let n of Z.value){let r=n.key.trim();r&&(e[r]={value:{value:n.value,pre:``,post:``,isSecret:n.isSecret}},t=!0)}return t?e:void 0}async function $e(){if(d.id){G.value=!0;try{let e=await i.service.get.query({id:d.id});X.agentId=e.agentId??F,X.name=e.name,X.cwd=e.cwd??``,X.ports=(e.ports??[]).map(String),X.runner=e.runner,X.autoRestart=e.autoRestart,e.healthCheck&&(X.healthCheck.enabled=!0,X.healthCheck.path=e.healthCheck.path,X.healthCheck.interval=e.healthCheck.interval,X.healthCheck.timeout=e.healthCheck.timeout,X.healthCheck.retries=e.healthCheck.retries),e.variables&&typeof e.variables==`object`&&Object.keys(e.variables).length>0&&(Z.value=Object.entries(e.variables).map(([e,t])=>{let n=t;return{key:e,value:n.value.value??``,isSecret:n.value.isSecret??!1}}))}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:c(e)??H(`serviceForm.failedToLoad`),life:5e3}),I.back()}finally{G.value=!1}}}async function $(){if(!(!U.value||!d.id||K.value||G.value)){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}K.value=!0;try{let e={agentId:X.agentId===F?null:X.agentId||null,name:X.name.trim(),cwd:X.cwd.trim()||void 0,ports:X.ports.map(Number).filter(e=>e>0&&e<=65535),runner:X.runner,autoRestart:X.autoRestart,variables:Qe(),healthCheck:X.healthCheck.enabled?{path:X.healthCheck.path,interval:X.healthCheck.interval,timeout:X.healthCheck.timeout,retries:X.healthCheck.retries}:void 0};(await i.service.update.mutate({id:d.id,...e}))?.stoppedForAgentChange?(q.value=e.agentId,J.value=d.id,L.add({severity:`warn`,summary:H(`serviceForm.saved`),detail:H(`serviceForm.agentChangedServiceStopped`),life:4e3})):L.add({severity:`success`,summary:H(`serviceForm.saved`),life:1500})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:c(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}}async function et(){if(!(!q.value||!J.value)){Y.value=!0;try{await qe.start(q.value,J.value),q.value=null,J.value=null,L.add({severity:`success`,summary:H(`serviceForm.restarted`),life:2e3})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:c(e),life:5e3})}finally{Y.value=!1}}}async function tt(){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}if(!X.projectId){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.projectRequired`),life:3e3});return}K.value=!0;try{let e=await z.create({name:X.name.trim(),...X.agentId&&X.agentId!==F?{agentId:X.agentId}:{}});if(!e)throw Error(z.error??`Failed to create service`);let t=R.getByRef({id:X.projectId,orgId:V.activeOrgId})??R.getById(X.projectId);await R.addService(t??{id:X.projectId},e.id),L.add({severity:`success`,summary:H(`serviceForm.serviceCreated`),detail:H(`serviceForm.configureAfterCreate`),life:3e3}),I.push({name:`service-detail`,params:{id:e.id,tab:`config`}})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:c(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}return ie(async()=>{await Promise.all([R.fetchAll(),B.fetchAll()]),W.value?X.projectId=W.value:!X.projectId&&V.activeProjectId&&(X.projectId=V.activeProjectId),U.value&&await $e()}),(t,i)=>(m(),e(`div`,_e,[r(`div`,ve,[o(f(s),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:i[0]||=e=>f(I).back()}),r(`h1`,null,u(U.value?f(H)(`serviceForm.editTitle`):f(H)(`serviceForm.createTitle`)),1)]),J.value?(m(),e(`div`,ye,[r(`span`,null,u(f(H)(`serviceForm.agentChangedServiceStopped`)),1),o(f(s),{label:f(H)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:Y.value,onClick:et},null,8,[`label`,`loading`]),o(f(s),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:i[1]||=e=>{J.value=null,q.value=null}})])):h(``,!0),G.value?(m(),e(`div`,be,[o(f(ne))])):(m(),e(`form`,{key:2,class:`service-form`,onSubmit:v(tt,[`prevent`])},[U.value?(m(),e(n,{key:1},[r(`div`,M,[r(`div`,N,[r(`div`,xe,[r(`label`,Se,u(f(H)(`serviceForm.nameLabelShort`)),1),o(f(g),{id:`svc-name-edit`,modelValue:X.name,"onUpdate:modelValue":i[6]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:p(v($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),r(`div`,Ce,[r(`label`,we,u(f(H)(`serviceForm.runnerLabel`)),1),o(f(_),{id:`svc-runner`,modelValue:X.runner,"onUpdate:modelValue":i[7]||=e=>X.runner=e,options:Je,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),r(`div`,Te,[r(`label`,Ee,u(f(H)(`serviceForm.agentLabel`)),1),o(f(_),{id:`svc-agent-edit`,modelValue:X.agentId,"onUpdate:modelValue":i[8]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),r(`small`,De,u(f(H)(`serviceForm.agentHintEdit`)),1)]),r(`div`,Oe,[r(`div`,ke,[r(`label`,Ae,u(f(H)(`serviceForm.cwdLabel`)),1),o(f(g),{id:`svc-cwd`,modelValue:X.cwd,"onUpdate:modelValue":i[9]||=e=>X.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:p(v($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),r(`div`,je,[r(`label`,Me,u(f(H)(`serviceForm.portsLabel`)),1),o(f(ge),{inputId:`svc-ports`,modelValue:X.ports,"onUpdate:modelValue":i[10]||=e=>X.ports=e,multiple:``,typeahead:!1,placeholder:f(H)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),r(`div`,Ne,[o(f(he),{modelValue:X.autoRestart,"onUpdate:modelValue":i[11]||=e=>X.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),r(`label`,Pe,u(f(H)(`serviceForm.autoRestart`)),1)])]),o(f(b)),r(`div`,Fe,[r(`div`,P,[r(`h3`,null,u(f(H)(`serviceForm.envVars`)),1),o(f(s),{label:f(H)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Xe},null,8,[`label`])]),Z.value.length===0?(m(),e(`div`,Ie,[r(`small`,null,u(f(H)(`serviceForm.noEnvVars`)),1)])):h(``,!0),(m(!0),e(n,null,se(Z.value,(t,n)=>(m(),e(`div`,{key:n,class:`env-row`},[o(f(g),{modelValue:t.key,"onUpdate:modelValue":e=>t.key=e,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:p(v($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),i[17]||=r(`span`,{class:`env-eq`},`=`,-1),o(f(g),{modelValue:t.value,"onUpdate:modelValue":e=>t.value=e,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:p(v($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),o(f(s),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Ze(n),$()}},null,8,[`onClick`])]))),128))]),o(f(b)),o(f(me),{legend:f(H)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!X.healthCheck.enabled,onToggle:i[16]||=e=>{X.healthCheck.enabled=!e.value,$()}},{default:pe(()=>[r(`div`,Le,[r(`label`,Re,u(f(H)(`serviceForm.healthCheckPath`)),1),o(f(g),{id:`hc-path`,modelValue:X.healthCheck.path,"onUpdate:modelValue":i[12]||=e=>X.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:p(v($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),r(`div`,ze,[r(`div`,Be,[r(`label`,Ve,u(f(H)(`serviceForm.interval`)),1),o(f(y),{id:`hc-interval`,modelValue:X.healthCheck.interval,"onUpdate:modelValue":i[13]||=e=>X.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:p(v($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),r(`div`,He,[r(`label`,Ue,u(f(H)(`serviceForm.timeout`)),1),o(f(y),{id:`hc-timeout`,modelValue:X.healthCheck.timeout,"onUpdate:modelValue":i[14]||=e=>X.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:p(v($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),r(`div`,We,[r(`label`,Ge,u(f(H)(`serviceForm.retries`)),1),o(f(y),{id:`hc-retries`,modelValue:X.healthCheck.retries,"onUpdate:modelValue":i[15]||=e=>X.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:p(v($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),o(f(b))],64)):(m(),e(n,{key:0},[r(`div`,x,[r(`div`,S,[r(`label`,C,u(f(H)(`serviceForm.projectLabel`)),1),o(f(_),{id:`svc-project`,modelValue:X.projectId,"onUpdate:modelValue":i[2]||=e=>X.projectId=e,options:Ye.value,optionLabel:`label`,optionValue:`value`,placeholder:f(H)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),r(`small`,w,u(f(H)(`serviceForm.projectHint`)),1)]),r(`div`,T,[r(`label`,E,u(f(H)(`serviceForm.agentLabel`)),1),o(f(_),{id:`svc-agent`,modelValue:X.agentId,"onUpdate:modelValue":i[3]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,placeholder:f(H)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),r(`small`,D,u(f(H)(`serviceForm.agentHint`)),1)]),r(`div`,O,[r(`label`,k,u(f(H)(`serviceForm.nameLabel`)),1),o(f(g),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":i[4]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),r(`small`,A,u(f(H)(`serviceForm.nameConfigHint`)),1)])]),o(f(b)),r(`div`,j,[o(f(s),{label:f(H)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:i[5]||=e=>f(I).back()},null,8,[`label`]),o(f(s),{label:f(H)(`serviceForm.create`),icon:`pi pi-check`,loading:K.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-47e4793d`]]);export{I as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.traefik-settings[data-v-d0288b5d]{box-sizing:border-box;flex-direction:column;gap:1rem;width:100%;min-width:0;display:flex}.traefik-settings[data-v-d0288b5d] input,.traefik-settings[data-v-d0288b5d] .p-inputtext,.traefik-settings[data-v-d0288b5d] .p-autocomplete,.traefik-settings[data-v-d0288b5d] .p-password{box-sizing:border-box;width:100%;max-width:100%}.traefik-row[data-v-d0288b5d]{justify-content:space-between;align-items:center;display:flex}.traefik-field[data-v-d0288b5d]{flex-direction:column;gap:.4rem;display:flex}.traefik-field label[data-v-d0288b5d]{font-size:.875rem;font-weight:500}.traefik-field small[data-v-d0288b5d]{color:var(--p-text-muted-color);font-size:.75rem}.credential-row[data-v-d0288b5d]{align-items:center;gap:.5rem;min-width:0;display:flex}.credential-key[data-v-d0288b5d]{flex:0 0 160px;min-width:0}.credential-value[data-v-d0288b5d]{flex:1;min-width:0}.credential-value[data-v-d0288b5d] .p-password,.credential-value[data-v-d0288b5d] .p-password input{width:100%}.traefik-ports[data-v-d0288b5d]{gap:1rem;display:flex}.traefik-field--small[data-v-d0288b5d]{flex:1}.hint-ok[data-v-d0288b5d]{color:var(--p-green-500);font-size:.8rem;font-weight:400}.traefik-actions[data-v-d0288b5d]{align-self:flex-end;gap:.5rem;display:flex}.traefik-renewal-notice[data-v-d0288b5d]{border-radius:var(--p-border-radius);background:color-mix(in srgb, var(--p-blue-500) 10%, transparent);border:1px solid color-mix(in srgb, var(--p-blue-500) 30%, transparent);color:var(--p-blue-300);align-items:flex-start;gap:.6rem;padding:.75rem;font-size:.875rem;display:flex}.traefik-validation[data-v-d0288b5d]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);flex-direction:column;gap:.4rem;padding:.75rem;display:flex}.validation-item[data-v-d0288b5d]{align-items:center;gap:.5rem;font-size:.875rem;display:flex}.validation-item--ok[data-v-d0288b5d]{color:var(--p-green-500)}.validation-item--fail[data-v-d0288b5d]{color:var(--p-red-500)}.traefik-logs[data-v-d0288b5d],.traefik-config-files[data-v-d0288b5d]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);overflow:hidden}.config-tabs[data-v-d0288b5d]{gap:.25rem;display:flex}.config-tab[data-v-d0288b5d]{border-radius:var(--p-border-radius);cursor:pointer;color:var(--p-text-muted-color);background:0 0;border:none;padding:.2rem .6rem;font-size:.8rem}.config-tab--active[data-v-d0288b5d]{background:var(--p-primary-color);color:var(--p-primary-contrast-color)}.traefik-logs-header[data-v-d0288b5d]{background:var(--p-content-hover-background);justify-content:space-between;align-items:center;padding:.4rem .75rem;font-size:.8rem;font-weight:600;display:flex}.logs-live[data-v-d0288b5d]{color:var(--p-green-400);font-size:.7rem;animation:1.2s ease-in-out infinite blink-d0288b5d}@keyframes blink-d0288b5d{0%,to{opacity:1}50%{opacity:.3}}.traefik-logs-content[data-v-d0288b5d]{white-space:pre-wrap;word-break:break-all;background:var(--p-surface-900,#1a1a1a);max-height:300px;color:var(--p-surface-100,#f0f0f0);margin:0;padding:.75rem;font-family:monospace;font-size:.75rem;overflow-y:auto}.traefik-dialog-layout[data-v-9ce779b4]{grid-template-columns:1fr 1fr;gap:1.5rem;min-height:0;display:grid}.traefik-dialog-left[data-v-9ce779b4]{min-width:0;max-height:80vh;padding-right:.5rem;overflow-y:auto}.traefik-dialog-right[data-v-9ce779b4]{flex-direction:column;gap:.5rem;min-width:0;max-height:80vh;display:flex}.fs-header[data-v-9ce779b4]{color:var(--p-text-muted-color);border-bottom:1px solid var(--p-content-border-color);justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.75rem;font-weight:600;display:flex}.fs-tree[data-v-9ce779b4]{flex-direction:column;gap:1px;display:flex}.fs-entry[data-v-9ce779b4]{border-radius:var(--p-border-radius);cursor:pointer;text-align:left;color:var(--p-text-color);background:0 0;border:none;align-items:center;gap:.4rem;width:100%;padding:.3rem .5rem;font-size:.8rem;display:flex}.fs-entry[data-v-9ce779b4]:hover{background:var(--p-content-hover-background)}.fs-entry--active[data-v-9ce779b4]{background:color-mix(in srgb, var(--p-primary-color) 15%, transparent);color:var(--p-primary-color)}.fs-icon[data-v-9ce779b4]{opacity:.6;flex-shrink:0;font-size:.75rem}.fs-dir[data-v-9ce779b4]{opacity:.5;font-size:.7rem}.fs-name[data-v-9ce779b4]{font-weight:500}.fs-empty[data-v-9ce779b4]{color:var(--p-text-muted-color);padding:.5rem;font-size:.8rem;font-style:italic}.fs-content[data-v-9ce779b4]{white-space:pre-wrap;word-break:break-all;background:var(--p-surface-900,#1a1a1a);color:var(--p-surface-100,#f0f0f0);border-radius:var(--p-border-radius);border:1px solid var(--p-content-border-color);flex:1;margin:0;padding:.75rem;font-family:monospace;font-size:.72rem;overflow-y:auto}.agent-page[data-v-09072d16]{max-width:1200px;margin:0 auto;padding:1.5rem}.page-header[data-v-09072d16]{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.page-header h1[data-v-09072d16]{margin:0;font-size:1.75rem;font-weight:700}.loading-container[data-v-09072d16],.error-container[data-v-09072d16],.empty-container[data-v-09072d16]{color:var(--p-text-muted-color);flex-direction:column;align-items:center;gap:.75rem;padding:3rem 0;display:flex}.agent-name[data-v-09072d16]{align-items:center;gap:.5rem;font-weight:500;display:flex}.agent-url[data-v-09072d16]{background:var(--p-content-hover-background);border-radius:4px;padding:.15rem .4rem;font-family:Fira Code,Cascadia Code,monospace;font-size:.8rem}.runner-tags[data-v-09072d16]{flex-wrap:wrap;gap:.3rem;display:flex}.action-grid[data-v-09072d16]{grid-template-columns:repeat(2,auto);gap:0;width:fit-content;display:grid}@media (max-width:768px){[data-v-09072d16] .hide-on-mobile{display:none!important}[data-v-09072d16] .p-datatable-column-header-content{white-space:nowrap}.agent-url[data-v-09072d16]{word-break:break-all;white-space:normal}}.text-muted[data-v-09072d16]{color:var(--p-text-muted-color)}.form-group[data-v-09072d16]{margin-bottom:1rem}.form-group label[data-v-09072d16]{margin-bottom:.4rem;font-size:.875rem;font-weight:500;display:block}.form-hint[data-v-09072d16]{color:var(--p-text-muted-color);font-size:.78rem}.test-connection[data-v-09072d16]{align-items:center;gap:.75rem;display:flex}.w-full[data-v-09072d16]{width:100%}.passthrough-description[data-v-09072d16]{color:var(--p-text-muted-color);margin:0 0 1rem;font-size:.85rem;line-height:1.4}.passthrough-list[data-v-09072d16]{flex-direction:column;gap:.25rem;margin-bottom:.75rem;display:flex}.passthrough-item[data-v-09072d16]{background:var(--p-content-hover-background);border-radius:6px;justify-content:space-between;align-items:center;padding:.3rem .5rem;display:flex}.passthrough-item-info[data-v-09072d16]{align-items:center;gap:.4rem;min-width:0;display:flex;overflow:hidden}.passthrough-item code[data-v-09072d16]{flex-shrink:0;font-family:Fira Code,Cascadia Code,monospace;font-size:.85rem}.passthrough-value[data-v-09072d16]{color:var(--p-text-muted-color);text-overflow:ellipsis;white-space:nowrap;font-family:Fira Code,Cascadia Code,monospace;font-size:.8rem;overflow:hidden}.passthrough-undefined[data-v-09072d16]{color:var(--p-orange-500);font-size:.78rem;font-style:italic}.passthrough-unsaved[data-v-09072d16]{color:var(--p-text-muted-color);font-size:.78rem;font-style:italic}.passthrough-empty[data-v-09072d16]{margin-bottom:.75rem;font-size:.85rem}.passthrough-add[data-v-09072d16]{align-items:center;gap:.5rem;display:flex}.passthrough-add-input[data-v-09072d16]{flex:1}.passthrough-error[data-v-09072d16]{color:var(--p-red-500);margin-top:.25rem;font-size:.78rem;display:block}.api-keys-page[data-v-0d4e888e]{max-width:860px;padding:1.5rem}.api-keys-page__header[data-v-0d4e888e]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.api-keys-page__header h1[data-v-0d4e888e]{margin:0;font-size:1.5rem;font-weight:600}.api-keys-page__subtitle[data-v-0d4e888e]{color:var(--p-text-muted-color);flex:1;margin:0;font-size:.875rem}.api-keys-page__empty[data-v-0d4e888e]{color:var(--p-text-muted-color);padding:2rem 0;font-size:.9rem}.api-keys-card[data-v-0d4e888e]{max-width:680px}.api-keys-list[data-v-0d4e888e]{flex-direction:column;gap:.5rem;display:flex}.api-key-card[data-v-0d4e888e]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:var(--p-content-background);padding:.5rem .75rem;position:relative}.api-key-card__body[data-v-0d4e888e]{min-width:0}.api-key-card__name[data-v-0d4e888e]{align-items:center;gap:.5rem;margin-bottom:.2rem;padding-right:5rem;font-weight:500;display:flex}.api-key-card__meta[data-v-0d4e888e]{color:var(--p-text-muted-color);margin-bottom:.4rem;font-size:.8rem}.api-key-card__url-row[data-v-0d4e888e]{align-items:center;gap:.4rem;display:flex}.api-key-card__url[data-v-0d4e888e]{min-width:0;color:var(--p-text-muted-color);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.75rem;overflow:hidden}.api-key-card__actions[data-v-0d4e888e]{gap:.3rem;display:flex;position:absolute;top:.5rem;right:.5rem}.badge[data-v-0d4e888e]{text-transform:uppercase;border-radius:4px;padding:.1rem .4rem;font-size:.7rem;font-weight:600}.badge--info[data-v-0d4e888e]{background:var(--p-blue-100);color:var(--p-blue-700)}.api-key-form[data-v-0d4e888e]{background:var(--p-surface-card);border:1px solid var(--runeya-border);border-radius:10px;max-width:600px;padding:1.5rem}.api-key-form h2[data-v-0d4e888e]{margin:0 0 1.25rem;font-size:1.1rem}.form-field[data-v-0d4e888e]{margin-bottom:1.25rem}.form-field>label[data-v-0d4e888e]:first-child{margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.form-input[data-v-0d4e888e]{border:1px solid var(--runeya-border);background:var(--p-surface-ground);width:100%;color:var(--p-text-color);box-sizing:border-box;border-radius:6px;padding:.5rem .75rem;font-size:.9rem}.form-input[data-v-0d4e888e]:focus{border-color:var(--p-primary-color);outline:none}.form-select[data-v-0d4e888e]{border:1px solid var(--runeya-border);background:var(--p-surface-ground);width:100%;color:var(--p-text-muted-color);cursor:pointer;border-radius:6px;padding:.45rem .75rem;font-size:.875rem}.form-select--sm[data-v-0d4e888e]{width:auto;padding:.25rem .5rem;font-size:.8rem}.form-hint[data-v-0d4e888e]{color:var(--p-text-muted-color);margin-top:.4rem;font-size:.75rem}.radio-group[data-v-0d4e888e]{flex-direction:column;gap:.4rem;display:flex}.radio-label[data-v-0d4e888e]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.svc-list-container[data-v-0d4e888e]{border:1px solid var(--runeya-border);border-radius:8px;margin-bottom:.5rem;overflow:hidden}.svc-list-search[data-v-0d4e888e]{background:var(--p-surface-ground);border-bottom:1px solid var(--runeya-border);align-items:center;gap:.5rem;padding:.4rem .75rem;display:flex}.svc-list-search__icon[data-v-0d4e888e]{color:var(--p-text-muted-color);flex-shrink:0;font-size:.75rem}.svc-list-search__input[data-v-0d4e888e]{color:var(--p-text-color);background:0 0;border:none;outline:none;flex:1;font-size:.85rem}.svc-list-search__input[data-v-0d4e888e]::placeholder{color:var(--p-text-muted-color)}.svc-list-search__clear[data-v-0d4e888e]{cursor:pointer;color:var(--p-text-muted-color);background:0 0;border:none;align-items:center;padding:0;font-size:.75rem;display:flex}.svc-list-search__clear[data-v-0d4e888e]:hover{color:var(--p-text-color)}.svc-list-scroll[data-v-0d4e888e]{max-height:360px;overflow-y:auto}.svc-list-empty[data-v-0d4e888e]{margin:0;padding:.75rem}.svc-perm-row[data-v-0d4e888e]{border-bottom:1px solid var(--runeya-border);overflow:hidden}.svc-perm-row[data-v-0d4e888e]:last-child{border-bottom:none}.svc-perm-row__header[data-v-0d4e888e]{background:var(--p-surface-ground);border-bottom:1px solid var(--runeya-border);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:.4rem .75rem;display:flex}.svc-perm-row__header[data-v-0d4e888e]:hover{background:var(--runeya-sidebar-hover)}.svc-chevron[data-v-0d4e888e]{color:var(--p-text-muted-color);font-size:.7rem;transition:transform .15s}.svc-perm-summary[data-v-0d4e888e]{color:var(--p-text-muted-color);margin-left:.3rem;font-size:.75rem;font-weight:400}.svc-perm-row__name[data-v-0d4e888e]{align-items:center;gap:.4rem;font-size:.875rem;font-weight:600;display:flex}.svc-perm-row__actions[data-v-0d4e888e]{border-bottom:1px solid var(--runeya-border);flex-wrap:wrap;gap:.35rem;padding:.5rem .75rem;display:flex}.action-chip[data-v-0d4e888e]{border:1px solid var(--runeya-border);background:var(--p-surface-ground);color:var(--p-text-muted-color);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:.3rem;padding:.15rem .5rem;font-size:.78rem;transition:all .12s;display:inline-flex}.action-chip input[type=checkbox][data-v-0d4e888e]{display:none}.action-chip--on[data-v-0d4e888e]{background:var(--p-primary-color);color:var(--p-primary-contrast-color,#fff);border-color:var(--p-primary-color)}.action-chip--sub[data-v-0d4e888e]{opacity:.85;margin-left:.25rem;font-size:.72rem}.action-chip--sub.action-chip--on[data-v-0d4e888e]{background:var(--p-primary-400,var(--p-primary-color))}.svc-perm-row__envs[data-v-0d4e888e]{flex-direction:column;gap:.35rem;padding:.5rem .75rem;display:flex}.env-perm-row[data-v-0d4e888e]{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.env-perm-row__name[data-v-0d4e888e]{color:var(--p-text-muted-color);align-items:center;gap:.3rem;min-width:8rem;font-size:.8rem;display:flex}.env-add-row[data-v-0d4e888e]{margin-top:.25rem}.svc-add-row[data-v-0d4e888e]{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.import-modal__body[data-v-0d4e888e]{flex-direction:column;gap:1rem;padding:.25rem 0;display:flex}.import-modal__desc[data-v-0d4e888e]{color:var(--p-text-muted-color);margin:0;font-size:.875rem}.import-section[data-v-0d4e888e]{flex-direction:column;gap:.4rem;display:flex}.import-section__label[data-v-0d4e888e]{color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.form-actions[data-v-0d4e888e]{justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.form-actions__right[data-v-0d4e888e]{gap:.75rem;display:flex}.btn--renew[data-v-0d4e888e]{color:var(--p-text-muted-color);font-size:.8rem}.btn--renew[data-v-0d4e888e]:hover:not(:disabled){color:var(--p-text-color)}.api-key-card__skill[data-v-0d4e888e]{margin-top:.6rem}.skill-toggle[data-v-0d4e888e]{color:var(--p-text-muted-color);gap:.35rem}.skill-toggle[data-v-0d4e888e]:hover{color:var(--p-text-color)}.skill-panel[data-v-0d4e888e]{border:1px solid var(--runeya-border);border-radius:6px;margin-top:.5rem;overflow:hidden}.skill-panel__tools[data-v-0d4e888e]{background:var(--p-surface-ground);border-bottom:1px solid var(--runeya-border);flex-wrap:wrap;gap:.35rem;padding:.5rem .75rem;display:flex}.skill-tool-btn[data-v-0d4e888e]{border:1px solid var(--runeya-border);color:var(--p-text-muted-color);cursor:pointer;background:0 0;border-radius:20px;padding:.2rem .6rem;font-size:.72rem;transition:all .12s}.skill-tool-btn[data-v-0d4e888e]:hover{background:var(--runeya-sidebar-hover);color:var(--p-text-color)}.skill-tool-btn--active[data-v-0d4e888e]{background:var(--p-primary-color);color:var(--p-primary-contrast-color,#fff);border-color:var(--p-primary-color)}.skill-panel__header[data-v-0d4e888e]{background:var(--p-surface-ground);border-bottom:1px solid var(--runeya-border);justify-content:space-between;align-items:center;padding:.4rem .75rem;display:flex}.skill-panel__btns[data-v-0d4e888e]{gap:.35rem;display:flex}.skill-panel__hint[data-v-0d4e888e]{color:var(--p-text-muted-color);font-size:.75rem}.skill-panel__code[data-v-0d4e888e]{white-space:pre-wrap;word-break:break-all;background:var(--p-surface-card);color:var(--p-text-color);max-height:260px;margin:0;padding:.75rem;font-size:.72rem;line-height:1.5;overflow-y:auto}.renew-modal__body[data-v-0d4e888e]{flex-direction:column;gap:.5rem;padding:.25rem 0;display:flex}.renew-modal__title[data-v-0d4e888e]{align-items:center;gap:.5rem;font-weight:600;display:flex}.renew-modal__title-icon[data-v-0d4e888e]{color:var(--p-orange-500,#f97316)}.renew-modal__body p[data-v-0d4e888e]{margin:0;font-size:.9rem;line-height:1.5}.btn[data-v-0d4e888e]{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex}.btn[data-v-0d4e888e]:disabled{opacity:.5;cursor:not-allowed}.btn--primary[data-v-0d4e888e]{background:var(--p-primary-color);color:var(--p-primary-contrast-color,#fff)}.btn--primary[data-v-0d4e888e]:hover:not(:disabled){filter:brightness(1.1)}.btn--ghost[data-v-0d4e888e]{color:var(--p-text-color);border:1px solid var(--runeya-border);background:0 0}.btn--ghost[data-v-0d4e888e]:hover:not(:disabled){background:var(--runeya-sidebar-hover)}.btn--danger[data-v-0d4e888e]{color:var(--p-red-500,#ef4444);border:1px solid var(--runeya-border);background:0 0}.btn--danger[data-v-0d4e888e]:hover:not(:disabled){background:var(--p-red-50,#fef2f2)}.btn--sm[data-v-0d4e888e]{padding:.3rem .6rem;font-size:.8rem}.btn--xs[data-v-0d4e888e]{padding:.2rem .4rem;font-size:.75rem}.settings-card[data-v-6341556d]{max-width:680px}.cloud-banner[data-v-6341556d]{border:1px solid var(--p-primary-color);background:color-mix(in srgb, var(--p-primary-color) 8%, transparent);width:100%;max-width:680px;color:var(--p-text-color);cursor:pointer;text-align:left;font:inherit;border-radius:10px;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.25rem;transition:background .15s,box-shadow .15s;display:flex}.cloud-banner[data-v-6341556d]:hover{background:color-mix(in srgb, var(--p-primary-color) 14%, transparent);box-shadow:0 2px 10px color-mix(in srgb, var(--p-primary-color) 20%, transparent)}.cloud-banner__icon[data-v-6341556d]{color:var(--p-primary-color);flex-shrink:0;font-size:1.75rem}.cloud-banner__text[data-v-6341556d]{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.cloud-banner__title[data-v-6341556d]{font-size:1rem}.cloud-banner__desc[data-v-6341556d]{color:var(--p-text-muted-color);font-size:.85rem}.cloud-banner__action[data-v-6341556d]{color:var(--p-primary-color);white-space:nowrap;flex-shrink:0;align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.setting-row[data-v-6341556d]{border-bottom:1px solid var(--p-content-border-color);align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.setting-row[data-v-6341556d]:last-child{border-bottom:none}.setting-label[data-v-6341556d]{width:140px;color:var(--p-text-muted-color);flex-shrink:0;padding-top:.25rem;font-size:.9rem;font-weight:600}.setting-value[data-v-6341556d]{flex:1;align-items:center;gap:.5rem;display:flex}.path-value[data-v-6341556d]{word-break:break-all;min-width:0;color:var(--p-text-color);flex:1;font-size:.85rem}.setting-input[data-v-6341556d]{width:100%;max-width:400px}.setting-actions[data-v-6341556d]{padding-top:1rem}.launcher-report[data-v-6341556d]{background:var(--p-content-background);border:1px solid var(--p-content-border-color);white-space:pre-wrap;word-break:break-all;border-radius:6px;max-height:260px;margin:0 0 .5rem;padding:.5rem .75rem;font-size:.78rem;overflow:auto}.settings-card[data-v-6c657270]{max-width:680px}.notification-groups[data-v-6c657270]{flex-direction:column;gap:1rem;display:flex}.notification-group[data-v-6c657270]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:color-mix(in srgb, var(--p-content-hover-background) 35%, transparent);padding:.9rem 1rem}.notification-group__header[data-v-6c657270]{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.35rem;display:flex}.notification-group__collapse-button[data-v-6c657270]{appearance:none;text-align:left;cursor:pointer;color:inherit;background:0 0;border:0;flex:1;margin:0;padding:0}.notification-group__title-wrap[data-v-6c657270]{align-items:center;gap:.45rem;display:flex}.notification-group__icon[data-v-6c657270]{color:var(--p-text-muted-color);font-size:.9rem}.notification-group__title[data-v-6c657270]{margin:0;font-size:.92rem;font-weight:700}.notification-group__chevron[data-v-6c657270]{color:var(--p-text-muted-color);margin-left:auto;font-size:.8rem}.notification-group__desc[data-v-6c657270]{color:var(--p-text-muted-color);margin:.2rem 0 0;font-size:.78rem}.notification-group__actions[data-v-6c657270]{flex-shrink:0}.notification-item[data-v-6c657270]{border-bottom:1px solid var(--p-content-border-color)}.notification-item[data-v-6c657270]:last-child,.notification-item .setting-row[data-v-6c657270]{border-bottom:none}.setting-row[data-v-6c657270]{border-bottom:1px solid var(--p-content-border-color);align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.setting-row--toggle[data-v-6c657270]{align-items:center}.setting-label[data-v-6c657270]{color:var(--p-text-muted-color);font-size:.9rem;font-weight:600}.setting-label-group[data-v-6c657270]{flex:1;min-width:0}.setting-hint[data-v-6c657270]{color:var(--p-text-muted-color);margin-top:.2rem;font-size:.78rem;display:block}.notification-item__right[data-v-6c657270]{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.notification-item__services-toggle[data-v-6c657270]{appearance:none;border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);cursor:pointer;color:var(--p-text-muted-color);background:0 0;align-items:center;gap:.3rem;padding:.2rem .45rem;font-size:.78rem;transition:background .15s,color .15s;display:flex}.notification-item__services-toggle[data-v-6c657270]:hover{background:var(--p-content-hover-background);color:var(--p-text-color)}.notification-item__services[data-v-6c657270]{border-top:1px dashed var(--p-content-border-color);flex-direction:column;gap:.4rem;padding:.5rem 0 .75rem 1rem;display:flex}.notification-item__services-empty[data-v-6c657270]{color:var(--p-text-muted-color);margin:0;font-size:.8rem}.notification-item__service-row[data-v-6c657270]{justify-content:space-between;align-items:center;padding:.25rem 0;display:flex}.notification-item__service-name[data-v-6c657270]{color:var(--p-text-color);font-size:.85rem}.security-cards[data-v-60a35acd]{flex-direction:column;gap:1rem;display:flex}.settings-card[data-v-60a35acd]{max-width:680px}.card-title[data-v-60a35acd]{align-items:center;gap:.5rem;display:flex}.card-desc[data-v-60a35acd]{color:var(--p-text-muted-color);margin:0 0 1rem;font-size:.85rem}.setting-row[data-v-60a35acd]{align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.setting-label[data-v-60a35acd]{width:140px;color:var(--p-text-muted-color);flex-shrink:0;padding-top:.25rem;font-size:.9rem;font-weight:600}.org-block[data-v-60a35acd]{flex-direction:column;display:flex}.org-adopt[data-v-60a35acd]{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.org-adopt__row[data-v-60a35acd]{align-items:center;gap:.5rem;max-width:560px;display:flex}.org-unreadable[data-v-60a35acd]{margin:0 0 .75rem;font-size:.8rem}.org-label[data-v-60a35acd]{flex-direction:column;gap:.15rem;display:flex}.org-id[data-v-60a35acd]{word-break:break-all;font-family:monospace;font-size:.8rem}.org-source[data-v-60a35acd]{font-size:.75rem;font-weight:400}.org-source--own[data-v-60a35acd]{color:var(--p-primary-color)}.org-source--locked[data-v-60a35acd]{color:var(--p-red-500)}.encryption-key-field[data-v-60a35acd]{flex:1;align-items:center;gap:.25rem;max-width:460px;display:flex}.encryption-key-input[data-v-60a35acd]{flex:1;font-family:monospace;font-size:.85rem}.settings-card[data-v-3e46f822]{max-width:680px}.card-title[data-v-3e46f822]{align-items:center;gap:.5rem;display:flex}.card-desc[data-v-3e46f822]{color:var(--p-text-muted-color);margin:0 0 1rem;font-size:.85rem}.setting-row[data-v-3e46f822]{align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.setting-label[data-v-3e46f822]{width:140px;color:var(--p-text-muted-color);flex-shrink:0;padding-top:.25rem;font-size:.9rem;font-weight:600}.setting-input[data-v-3e46f822]{width:100%;max-width:400px}.editor-warning[data-v-3e46f822]{padding:.5rem 0}.editor-detected[data-v-3e46f822]{padding-top:.5rem}.editor-option[data-v-3e46f822]{align-items:center;gap:.5rem;display:flex}.hint[data-v-3e46f822]{color:var(--p-text-muted-color);font-size:.78rem}.parsers-scope[data-v-2f17c78c]{color:var(--p-text-muted-color);align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.85rem;display:flex}[data-v-2f17c78c] .p-dialog-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.settings-card[data-v-2f17c78c]{max-width:680px}.card-desc[data-v-2f17c78c]{color:var(--p-text-muted-color);margin:0 0 1rem;font-size:.85rem}.parsers-loading[data-v-2f17c78c]{color:var(--p-text-muted-color);align-items:center;gap:.5rem;padding:1rem;font-size:.875rem;display:flex}.parsers-list[data-v-2f17c78c]{flex-direction:column;gap:.375rem;display:flex}.parsers-row[data-v-2f17c78c]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:var(--p-content-background);align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.parsers-name[data-v-2f17c78c]{flex-shrink:0;font-size:.875rem;font-weight:600}.parsers-desc-inline[data-v-2f17c78c]{color:var(--p-text-muted-color);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.8rem;overflow:hidden}.parsers-icon--on[data-v-2f17c78c]{color:var(--p-green-500);justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.parsers-icon--off[data-v-2f17c78c]{color:var(--p-red-500);justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.parsers-actions[data-v-2f17c78c]{align-items:center;gap:.25rem;margin-left:auto;display:flex}.parsers-empty[data-v-2f17c78c]{text-align:center;color:var(--p-text-muted-color);padding:1.5rem;font-size:.875rem}.parser-dialog__layout[data-v-2f17c78c]{grid-template-columns:1fr 1fr;align-items:stretch;gap:1.25rem;height:100%;display:grid;overflow:hidden}@media (max-width:768px){.parser-dialog__layout[data-v-2f17c78c]{grid-template-columns:1fr;height:auto;overflow-y:auto}.dialog-form[data-v-2f17c78c]{height:auto;overflow:visible}.dialog-form__field--code[data-v-2f17c78c]{min-height:250px}.parser-sim[data-v-2f17c78c]{min-height:300px}.parser-sim__body[data-v-2f17c78c]{min-height:0}.parser-sim__col--output[data-v-2f17c78c]{min-height:150px}}.dialog-form[data-v-2f17c78c]{flex-direction:column;gap:1rem;height:100%;display:flex;overflow:auto}.dialog-form__field--code[data-v-2f17c78c]{flex:1;min-height:0}.dialog-form__field[data-v-2f17c78c]{flex-direction:column;gap:.375rem;display:flex}.dialog-form__label[data-v-2f17c78c]{color:var(--p-text-muted-color);align-items:center;gap:.5rem;font-size:.8125rem;font-weight:600;display:flex}.dialog-form__input[data-v-2f17c78c]{width:100%}.dialog-form__hint[data-v-2f17c78c]{color:var(--p-text-muted-color);font-size:.78rem}.dialog-form__hint code[data-v-2f17c78c]{background:var(--p-content-hover-background);border-radius:3px;padding:.125rem .375rem;font-family:Monaco,Menlo,monospace;font-size:.75rem}.dialog-form__switch[data-v-2f17c78c]{align-items:center;gap:.5rem;display:flex}.dialog-form__switch-label[data-v-2f17c78c]{color:var(--p-text-muted-color);font-size:.85rem}.dialog-form__templates[data-v-2f17c78c]{flex-direction:column;gap:.5rem;display:flex}.dialog-form__templates-label[data-v-2f17c78c]{color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.dialog-form__templates-select[data-v-2f17c78c]{width:100%}.dialog-form__ai-btn[data-v-2f17c78c]{margin-left:auto}.tpl-option[data-v-2f17c78c]{align-items:center;gap:.75rem;display:flex}.tpl-option__icon[data-v-2f17c78c]{color:var(--p-primary-color);flex-shrink:0;font-size:.9rem}.tpl-option__body[data-v-2f17c78c]{flex-direction:column;gap:.1rem;display:flex}.tpl-option__name[data-v-2f17c78c]{color:var(--p-text-color);font-size:.8125rem;font-weight:600}.tpl-option__desc[data-v-2f17c78c]{color:var(--p-text-muted-color);font-size:.73rem}.parser-sim[data-v-2f17c78c]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);flex-direction:column;height:100%;display:flex;overflow:hidden}.parser-sim__header[data-v-2f17c78c]{background:var(--p-surface-50,#00000008);border-bottom:1px solid var(--p-content-border-color);justify-content:space-between;align-items:center;padding:.5rem .75rem;font-size:.8125rem;display:flex}.parser-sim__title[data-v-2f17c78c]{align-items:center;gap:.4rem;font-weight:600;display:flex}.parser-sim__status[data-v-2f17c78c]{color:var(--p-text-muted-color);align-items:center;gap:.3rem;font-size:.75rem;display:flex}.parser-sim__body[data-v-2f17c78c]{flex-direction:column;flex:1;gap:0;min-height:0;display:flex}.parser-sim__col[data-v-2f17c78c]{flex-direction:column;gap:.25rem;padding:.6rem .75rem;display:flex}.parser-sim__col[data-v-2f17c78c]:first-child{border-bottom:1px solid var(--p-content-border-color)}.parser-sim__col-label[data-v-2f17c78c]{color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem;font-size:.75rem;font-weight:600}.parser-sim__textarea[data-v-2f17c78c]{resize:vertical;width:100%;min-height:160px;font-family:var(--p-font-family-mono,monospace);border:1px solid var(--p-inputtext-border-color,var(--p-content-border-color));border-radius:var(--p-border-radius);background:var(--p-inputtext-background,var(--p-content-background));color:var(--p-inputtext-color,var(--p-text-color));outline:none;padding:.5rem;font-size:.8rem;line-height:1.5}.parser-sim__textarea[data-v-2f17c78c]:focus{border-color:var(--p-primary-color)}.parser-sim__error[data-v-2f17c78c]{color:var(--p-red-500,#ef4444);align-items:flex-start;gap:.4rem;padding:.5rem;font-size:.8rem;display:flex}.parser-sim__empty[data-v-2f17c78c]{color:var(--p-text-muted-color);padding:.5rem;font-size:.8rem;font-style:italic}.parser-sim__col--output[data-v-2f17c78c]{flex:1;min-height:0;overflow:hidden}.parser-sim__viewer[data-v-2f17c78c]{flex:1;height:100%;min-height:0}.parser-ai-prompt[data-v-2f17c78c]{flex-direction:column;gap:.75rem;display:flex}.parser-ai-prompt__desc[data-v-2f17c78c]{color:var(--p-text-muted-color);margin:0;font-size:.9rem}.parser-ai-prompt__input[data-v-2f17c78c]{resize:vertical;width:100%}.companion-settings[data-v-f53a328d]{border-bottom:1px solid var(--p-surface-200);margin-bottom:1.25rem;padding-bottom:1.25rem}.companion-settings__title[data-v-f53a328d]{align-items:center;gap:.4rem;margin:0 0 .25rem;font-size:.95rem;display:flex}.companion-settings__lead[data-v-f53a328d]{color:var(--p-text-muted-color);margin:0 0 .75rem;font-size:.8rem}.companion-settings__row[data-v-f53a328d]{align-items:center;gap:.75rem;padding:.4rem 0;display:flex}.companion-settings__row--stack[data-v-f53a328d]{flex-wrap:wrap;justify-content:space-between}.companion-settings__label[data-v-f53a328d]{font-size:.85rem}.companion-settings__hint[data-v-f53a328d]{color:var(--p-text-muted-color);font-size:.75rem}.companion-settings__actions[data-v-f53a328d]{gap:.25rem;display:flex}.companion-settings__editor[data-v-f53a328d]{margin-top:.5rem}.companion-settings__textarea[data-v-f53a328d]{width:100%;font-family:var(--font-mono,ui-monospace, monospace);font-size:.75rem}.providers-scope[data-v-f53a328d]{color:var(--p-text-muted-color);align-items:center;gap:.4rem;margin:0 0 .9rem;font-size:.8rem;display:flex}.settings-card[data-v-f53a328d]{max-width:680px}.providers-loading[data-v-f53a328d],.providers-empty[data-v-f53a328d]{color:var(--p-text-muted-color);align-items:center;gap:.5rem;padding:1rem;font-size:.875rem;display:flex}.ai-providers-list[data-v-f53a328d]{flex-direction:column;gap:.5rem;display:flex}.ai-provider-row[data-v-f53a328d]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:var(--p-content-background);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;transition:border-color .15s;display:flex}.ai-provider-row--active[data-v-f53a328d]{border-color:var(--p-primary-color);background:color-mix(in srgb, var(--p-primary-color) 5%, var(--p-content-background))}.ai-provider-info[data-v-f53a328d]{flex-wrap:wrap;align-items:center;gap:.75rem;min-width:0;display:flex}.ai-provider-name[data-v-f53a328d]{font-size:.875rem;font-weight:600}.ai-provider-type[data-v-f53a328d]{color:var(--p-text-muted-color);font-size:.8125rem}.ai-provider-model[data-v-f53a328d]{background:var(--p-content-hover-background);color:var(--p-text-muted-color);border-radius:4px;padding:.15rem .4rem;font-size:.75rem}.ai-provider-key[data-v-f53a328d]{background:var(--p-content-hover-background);letter-spacing:.05em;border-radius:4px;padding:.15rem .4rem;font-size:.75rem}.ai-provider-actions[data-v-f53a328d]{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.ai-provider-badge[data-v-f53a328d]{color:var(--p-primary-color);align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.8rem;font-weight:600;display:inline-flex}.dialog-form[data-v-f53a328d]{flex-direction:column;gap:1rem;display:flex}.dialog-form__field[data-v-f53a328d]{flex-direction:column;gap:.375rem;display:flex}.dialog-form__label[data-v-f53a328d]{color:var(--p-text-muted-color);align-items:center;gap:.5rem;font-size:.8125rem;font-weight:600;display:flex}.dialog-form__input[data-v-f53a328d]{width:100%}.ai-provider-info-block[data-v-f53a328d]{background:color-mix(in srgb, var(--p-primary-color) 6%, var(--p-content-background));border:1px solid color-mix(in srgb, var(--p-primary-color) 25%, transparent);border-radius:var(--p-border-radius);flex-direction:column;gap:.5rem;padding:.75rem 1rem;display:flex}.ai-provider-info-block__text[data-v-f53a328d]{color:var(--p-text-color);margin:0;font-size:.875rem;line-height:1.5}.ai-provider-info-block__link[data-v-f53a328d]{color:var(--p-primary-color);align-items:center;gap:.35rem;font-size:.8125rem;font-weight:500;text-decoration:none;display:inline-flex}.ai-provider-info-block__link[data-v-f53a328d]:hover{text-decoration:underline}.ai-provider-info-block__models[data-v-f53a328d]{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.ai-provider-info-block__models-label[data-v-f53a328d]{color:var(--p-text-muted-color);font-size:.75rem;font-weight:500}.ai-provider-info-block__model-tag[data-v-f53a328d]{background:var(--p-content-hover-background);border:1px solid var(--p-content-border-color);color:var(--p-text-muted-color);border-radius:4px;padding:.1rem .4rem;font-size:.7rem}.settings-card[data-v-3faeb447]{max-width:680px}.scenario-list[data-v-3faeb447]{flex-direction:column;gap:.5rem;display:flex}.scenario-row[data-v-3faeb447]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:var(--p-content-background);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.scenario-info[data-v-3faeb447]{align-items:center;gap:.75rem;display:flex}.scenario-icon[data-v-3faeb447]{opacity:.7;font-size:1.1rem}.scenario-desc[data-v-3faeb447]{opacity:.6;margin-left:.5rem;font-size:.85rem}.scenario-meta[data-v-3faeb447]{opacity:.5;margin-top:.25rem;font-size:.8rem}.scenario-actions[data-v-3faeb447]{flex-shrink:0;gap:.25rem;display:flex}.scenario-empty[data-v-3faeb447]{text-align:center;opacity:.5;padding:1rem 0}.state[data-v-dcb0ce3b]{color:var(--p-text-muted-color);align-items:center;gap:.75rem;font-size:.88rem;display:flex}.settings-card[data-v-5f478adc]{max-width:680px}.setting-row[data-v-5f478adc]{border-bottom:1px solid var(--p-content-border-color);align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.setting-row[data-v-5f478adc]:last-child{border-bottom:none}.setting-label[data-v-5f478adc]{width:140px;color:var(--p-text-muted-color);flex-shrink:0;padding-top:.25rem;font-size:.9rem;font-weight:600}.setting-value[data-v-5f478adc]{flex:1;align-items:center;gap:.5rem;display:flex}.card-title-row[data-v-5f478adc]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.diagnostics[data-v-d1059365]{flex-direction:column;gap:2rem;display:flex}.block__header[data-v-d1059365]{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex}.block__title[data-v-d1059365]{margin:0;font-size:1rem;font-weight:600}.block__desc[data-v-d1059365]{color:var(--p-text-muted-color);margin:.2rem 0 0;font-size:.85rem}.empty[data-v-d1059365]{text-align:center;color:var(--p-text-muted-color);margin:0;padding:1.2rem;font-size:.875rem}.instances[data-v-d1059365]{border:1px solid var(--p-content-border-color);border-radius:8px;margin:0;padding:0;list-style:none;overflow:hidden}.instance[data-v-d1059365]{border-bottom:1px solid var(--p-content-border-color);grid-template-columns:1fr auto;grid-template-areas:"main action""meta action";align-items:center;gap:.15rem 1rem;padding:.7rem .9rem;display:grid}.instance[data-v-d1059365]:last-child{border-bottom:0}.instance__main[data-v-d1059365]{grid-area:main;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.instance__port[data-v-d1059365]{align-items:center;gap:.4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.instance__meta[data-v-d1059365]{color:var(--p-text-muted-color);flex-wrap:wrap;grid-area:meta;align-items:center;gap:.4rem;font-size:.78rem;display:flex}.instance__cwd[data-v-d1059365]{text-overflow:ellipsis;white-space:nowrap;max-width:24rem;overflow:hidden}.instance[data-v-d1059365] .p-button{grid-area:action}.instance__actions[data-v-d1059365]{grid-area:action;align-items:center;gap:.25rem;display:flex}.instance__actions[data-v-d1059365] .p-button{grid-area:auto}.tag[data-v-d1059365]{border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:600}.tag--current[data-v-d1059365]{background:color-mix(in srgb, var(--p-primary-color) 16%, transparent);color:var(--p-primary-color)}.toolbar[data-v-d1059365]{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.toolbar__source[data-v-d1059365]{min-width:9rem}.toolbar__search[data-v-d1059365]{flex:10rem;min-width:10rem}.toolbar__toggle[data-v-d1059365]{align-items:center;gap:.45rem;font-size:.85rem;display:flex}.toolbar__spacer[data-v-d1059365]{flex:auto}.toolbar__actions[data-v-d1059365]{flex:none;align-items:center;gap:.25rem;display:flex}.log[data-v-d1059365]{background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:8px;height:26rem;padding:.5rem 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.55;overflow:auto}.log-line[data-v-d1059365]{white-space:pre-wrap;word-break:break-word;gap:.6rem;padding:.05rem .8rem;display:flex}.log-line--warn[data-v-d1059365]{background:color-mix(in srgb, var(--p-orange-500,#f59e0b) 9%, transparent)}.log-line--error[data-v-d1059365]{background:color-mix(in srgb, var(--p-red-500,#ef4444) 11%, transparent)}.log-line__time[data-v-d1059365]{color:var(--p-text-muted-color);opacity:.75;flex:none}.log-line__source[data-v-d1059365]{text-transform:uppercase;letter-spacing:.03em;flex:0 0 3.4rem;align-self:center;font-size:.68rem}.log-line__source--server[data-v-d1059365]{color:var(--p-primary-color)}.log-line__source--agent[data-v-d1059365]{color:var(--p-text-muted-color)}.log-line__text[data-v-d1059365]{flex:auto}.follow-hint[data-v-d1059365]{text-align:center;margin:.4rem 0 0}.api-docs[data-v-5c36e62a]{flex-direction:column;height:100%;display:flex;overflow:hidden}.api-docs__content[data-v-5c36e62a]{flex:1;min-height:0;overflow-y:auto}.api-docs__toolbar[data-v-5c36e62a]{background:var(--p-surface-card);border-bottom:1px solid var(--p-surface-border);flex-shrink:0;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.api-docs__toolbar-label[data-v-5c36e62a]{color:var(--p-text-muted-color);white-space:nowrap;font-size:.875rem;font-weight:500}.settings-page[data-v-f0a75b88]{flex-direction:column;height:100%;display:flex}.settings-layout[data-v-f0a75b88]{flex:1;gap:0;min-height:0;display:flex}.settings-nav[data-v-f0a75b88]{border-right:1px solid var(--p-content-border-color);flex-direction:column;flex-shrink:0;gap:.25rem;width:200px;padding:1.25rem 0;display:flex}.settings-nav__title[data-v-f0a75b88]{letter-spacing:.08em;text-transform:uppercase;color:var(--p-text-muted-color);padding:0 1rem .75rem;font-size:.7rem;font-weight:700}.settings-nav__list[data-v-f0a75b88]{flex-direction:column;gap:.125rem;margin:0;padding:0;list-style:none;display:flex}.settings-nav__item[data-v-f0a75b88]{cursor:pointer;color:var(--p-text-muted-color);-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:.625rem;margin:0 .5rem;padding:.5rem 1rem;font-size:.875rem;transition:background .15s,color .15s;display:flex}.settings-nav__item[data-v-f0a75b88]:hover{background:var(--p-content-hover-background);color:var(--p-text-color)}.settings-nav__item--active[data-v-f0a75b88]{background:var(--p-primary-50,color-mix(in srgb, var(--p-primary-color) 10%, transparent));color:var(--p-primary-color);font-weight:600}.settings-nav__icon[data-v-f0a75b88]{flex-shrink:0;font-size:.875rem}.settings-content[data-v-f0a75b88]{flex:1;min-width:0;padding:1.5rem 2rem;overflow-y:auto}.settings-content--fullpage[data-v-f0a75b88]{flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden}.settings-content--fullpage[data-v-f0a75b88] .api-docs{flex:1;min-height:0}@media (max-width:640px){.settings-layout[data-v-f0a75b88]{flex-direction:column}.settings-nav[data-v-f0a75b88]{border-right:none;border-bottom:1px solid var(--p-content-border-color);flex-direction:row;align-items:center;width:100%;padding:.5rem 0;position:relative}.settings-nav__title[data-v-f0a75b88]{display:none}.settings-nav__list[data-v-f0a75b88]{scrollbar-width:none;flex-direction:row;flex:1;gap:0;padding:0 .25rem;overflow-x:auto}.settings-nav__list[data-v-f0a75b88]::-webkit-scrollbar{display:none}.settings-nav__item[data-v-f0a75b88]{white-space:nowrap;border-radius:6px;flex-direction:column;flex-shrink:0;gap:.25rem;margin:0;padding:.4rem .75rem;font-size:.7rem}.settings-nav__icon[data-v-f0a75b88]{font-size:1rem}.settings-nav__chevron[data-v-f0a75b88]{cursor:pointer;width:2rem;height:2rem;color:var(--p-text-muted-color);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.settings-nav__chevron[data-v-f0a75b88]:hover{background:var(--p-content-hover-background);color:var(--p-text-color)}.settings-content[data-v-f0a75b88]{padding:1rem}}@media (min-width:641px){.settings-nav__chevron[data-v-f0a75b88]{display:none}}.section-header[data-v-f0a75b88]{margin-bottom:1.5rem}.section-header--has-actions[data-v-f0a75b88]{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.section-header__text[data-v-f0a75b88]{flex:1;min-width:0}.section-header__actions[data-v-f0a75b88]{flex-shrink:0;align-self:center}.section-title[data-v-f0a75b88]{margin:0 0 .25rem;font-size:1.25rem;font-weight:700}.section-desc[data-v-f0a75b88]{color:var(--p-text-muted-color);margin:0;font-size:.875rem}
|
|
1
|
+
.traefik-settings[data-v-d0288b5d]{box-sizing:border-box;flex-direction:column;gap:1rem;width:100%;min-width:0;display:flex}.traefik-settings[data-v-d0288b5d] input,.traefik-settings[data-v-d0288b5d] .p-inputtext,.traefik-settings[data-v-d0288b5d] .p-autocomplete,.traefik-settings[data-v-d0288b5d] .p-password{box-sizing:border-box;width:100%;max-width:100%}.traefik-row[data-v-d0288b5d]{justify-content:space-between;align-items:center;display:flex}.traefik-field[data-v-d0288b5d]{flex-direction:column;gap:.4rem;display:flex}.traefik-field label[data-v-d0288b5d]{font-size:.875rem;font-weight:500}.traefik-field small[data-v-d0288b5d]{color:var(--p-text-muted-color);font-size:.75rem}.credential-row[data-v-d0288b5d]{align-items:center;gap:.5rem;min-width:0;display:flex}.credential-key[data-v-d0288b5d]{flex:0 0 160px;min-width:0}.credential-value[data-v-d0288b5d]{flex:1;min-width:0}.credential-value[data-v-d0288b5d] .p-password,.credential-value[data-v-d0288b5d] .p-password input{width:100%}.traefik-ports[data-v-d0288b5d]{gap:1rem;display:flex}.traefik-field--small[data-v-d0288b5d]{flex:1}.hint-ok[data-v-d0288b5d]{color:var(--p-green-500);font-size:.8rem;font-weight:400}.traefik-actions[data-v-d0288b5d]{align-self:flex-end;gap:.5rem;display:flex}.traefik-renewal-notice[data-v-d0288b5d]{border-radius:var(--p-border-radius);background:color-mix(in srgb, var(--p-blue-500) 10%, transparent);border:1px solid color-mix(in srgb, var(--p-blue-500) 30%, transparent);color:var(--p-blue-300);align-items:flex-start;gap:.6rem;padding:.75rem;font-size:.875rem;display:flex}.traefik-validation[data-v-d0288b5d]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);flex-direction:column;gap:.4rem;padding:.75rem;display:flex}.validation-item[data-v-d0288b5d]{align-items:center;gap:.5rem;font-size:.875rem;display:flex}.validation-item--ok[data-v-d0288b5d]{color:var(--p-green-500)}.validation-item--fail[data-v-d0288b5d]{color:var(--p-red-500)}.traefik-logs[data-v-d0288b5d],.traefik-config-files[data-v-d0288b5d]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);overflow:hidden}.config-tabs[data-v-d0288b5d]{gap:.25rem;display:flex}.config-tab[data-v-d0288b5d]{border-radius:var(--p-border-radius);cursor:pointer;color:var(--p-text-muted-color);background:0 0;border:none;padding:.2rem .6rem;font-size:.8rem}.config-tab--active[data-v-d0288b5d]{background:var(--p-primary-color);color:var(--p-primary-contrast-color)}.traefik-logs-header[data-v-d0288b5d]{background:var(--p-content-hover-background);justify-content:space-between;align-items:center;padding:.4rem .75rem;font-size:.8rem;font-weight:600;display:flex}.logs-live[data-v-d0288b5d]{color:var(--p-green-400);font-size:.7rem;animation:1.2s ease-in-out infinite blink-d0288b5d}@keyframes blink-d0288b5d{0%,to{opacity:1}50%{opacity:.3}}.traefik-logs-content[data-v-d0288b5d]{white-space:pre-wrap;word-break:break-all;background:var(--p-surface-900,#1a1a1a);max-height:300px;color:var(--p-surface-100,#f0f0f0);margin:0;padding:.75rem;font-family:monospace;font-size:.75rem;overflow-y:auto}.traefik-dialog-layout[data-v-9ce779b4]{grid-template-columns:1fr 1fr;gap:1.5rem;min-height:0;display:grid}.traefik-dialog-left[data-v-9ce779b4]{min-width:0;max-height:80vh;padding-right:.5rem;overflow-y:auto}.traefik-dialog-right[data-v-9ce779b4]{flex-direction:column;gap:.5rem;min-width:0;max-height:80vh;display:flex}.fs-header[data-v-9ce779b4]{color:var(--p-text-muted-color);border-bottom:1px solid var(--p-content-border-color);justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.75rem;font-weight:600;display:flex}.fs-tree[data-v-9ce779b4]{flex-direction:column;gap:1px;display:flex}.fs-entry[data-v-9ce779b4]{border-radius:var(--p-border-radius);cursor:pointer;text-align:left;color:var(--p-text-color);background:0 0;border:none;align-items:center;gap:.4rem;width:100%;padding:.3rem .5rem;font-size:.8rem;display:flex}.fs-entry[data-v-9ce779b4]:hover{background:var(--p-content-hover-background)}.fs-entry--active[data-v-9ce779b4]{background:color-mix(in srgb, var(--p-primary-color) 15%, transparent);color:var(--p-primary-color)}.fs-icon[data-v-9ce779b4]{opacity:.6;flex-shrink:0;font-size:.75rem}.fs-dir[data-v-9ce779b4]{opacity:.5;font-size:.7rem}.fs-name[data-v-9ce779b4]{font-weight:500}.fs-empty[data-v-9ce779b4]{color:var(--p-text-muted-color);padding:.5rem;font-size:.8rem;font-style:italic}.fs-content[data-v-9ce779b4]{white-space:pre-wrap;word-break:break-all;background:var(--p-surface-900,#1a1a1a);color:var(--p-surface-100,#f0f0f0);border-radius:var(--p-border-radius);border:1px solid var(--p-content-border-color);flex:1;margin:0;padding:.75rem;font-family:monospace;font-size:.72rem;overflow-y:auto}.agent-page[data-v-bbf1ad0f]{max-width:1200px;margin:0 auto;padding:1.5rem}.page-header[data-v-bbf1ad0f]{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.page-header h1[data-v-bbf1ad0f]{margin:0;font-size:1.75rem;font-weight:700}.loading-container[data-v-bbf1ad0f],.error-container[data-v-bbf1ad0f],.empty-container[data-v-bbf1ad0f]{color:var(--p-text-muted-color);flex-direction:column;align-items:center;gap:.75rem;padding:3rem 0;display:flex}.agent-name[data-v-bbf1ad0f]{align-items:center;gap:.5rem;font-weight:500;display:flex}.agent-url[data-v-bbf1ad0f]{background:var(--p-content-hover-background);border-radius:4px;padding:.15rem .4rem;font-family:Fira Code,Cascadia Code,monospace;font-size:.8rem}.runner-tags[data-v-bbf1ad0f]{flex-wrap:wrap;gap:.3rem;display:flex}.action-grid[data-v-bbf1ad0f]{grid-template-columns:repeat(2,auto);gap:0;width:fit-content;display:grid}@media (max-width:768px){[data-v-bbf1ad0f] .hide-on-mobile{display:none!important}[data-v-bbf1ad0f] .p-datatable-column-header-content{white-space:nowrap}.agent-url[data-v-bbf1ad0f]{word-break:break-all;white-space:normal}}.text-muted[data-v-bbf1ad0f]{color:var(--p-text-muted-color)}.form-group[data-v-bbf1ad0f]{margin-bottom:1rem}.form-group label[data-v-bbf1ad0f]{margin-bottom:.4rem;font-size:.875rem;font-weight:500;display:block}.form-hint[data-v-bbf1ad0f]{color:var(--p-text-muted-color);font-size:.78rem}.test-connection[data-v-bbf1ad0f]{align-items:center;gap:.75rem;display:flex}.w-full[data-v-bbf1ad0f]{width:100%}.passthrough-description[data-v-bbf1ad0f]{color:var(--p-text-muted-color);margin:0 0 1rem;font-size:.85rem;line-height:1.4}.passthrough-list[data-v-bbf1ad0f]{flex-direction:column;gap:.25rem;margin-bottom:.75rem;display:flex}.passthrough-item[data-v-bbf1ad0f]{background:var(--p-content-hover-background);border-radius:6px;justify-content:space-between;align-items:center;padding:.3rem .5rem;display:flex}.passthrough-item-info[data-v-bbf1ad0f]{align-items:center;gap:.4rem;min-width:0;display:flex;overflow:hidden}.passthrough-item code[data-v-bbf1ad0f]{flex-shrink:0;font-family:Fira Code,Cascadia Code,monospace;font-size:.85rem}.passthrough-value[data-v-bbf1ad0f]{color:var(--p-text-muted-color);text-overflow:ellipsis;white-space:nowrap;font-family:Fira Code,Cascadia Code,monospace;font-size:.8rem;overflow:hidden}.passthrough-undefined[data-v-bbf1ad0f]{color:var(--p-orange-500);font-size:.78rem;font-style:italic}.passthrough-unsaved[data-v-bbf1ad0f]{color:var(--p-text-muted-color);font-size:.78rem;font-style:italic}.passthrough-empty[data-v-bbf1ad0f]{margin-bottom:.75rem;font-size:.85rem}.passthrough-add[data-v-bbf1ad0f]{align-items:center;gap:.5rem;display:flex}.passthrough-add-input[data-v-bbf1ad0f]{flex:1}.passthrough-error[data-v-bbf1ad0f]{color:var(--p-red-500);margin-top:.25rem;font-size:.78rem;display:block}.api-keys-page[data-v-90995e31]{max-width:860px;padding:1.5rem}.api-keys-page__header[data-v-90995e31]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.api-keys-page__header h1[data-v-90995e31]{margin:0;font-size:1.5rem;font-weight:600}.api-keys-page__subtitle[data-v-90995e31]{color:var(--p-text-muted-color);flex:1;margin:0;font-size:.875rem}.api-keys-page__empty[data-v-90995e31]{color:var(--p-text-muted-color);padding:2rem 0;font-size:.9rem}.api-keys-card[data-v-90995e31]{max-width:680px}.api-keys-list[data-v-90995e31]{flex-direction:column;gap:.5rem;display:flex}.api-key-card[data-v-90995e31]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:var(--p-content-background);padding:.5rem .75rem;position:relative}.api-key-card__body[data-v-90995e31]{min-width:0}.api-key-card__name[data-v-90995e31]{align-items:center;gap:.5rem;margin-bottom:.2rem;padding-right:5rem;font-weight:500;display:flex}.api-key-card__meta[data-v-90995e31]{color:var(--p-text-muted-color);margin-bottom:.4rem;font-size:.8rem}.api-key-card__url-row[data-v-90995e31]{align-items:center;gap:.4rem;display:flex}.api-key-card__url[data-v-90995e31]{min-width:0;color:var(--p-text-muted-color);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.75rem;overflow:hidden}.api-key-card__actions[data-v-90995e31]{gap:.3rem;display:flex;position:absolute;top:.5rem;right:.5rem}.badge[data-v-90995e31]{text-transform:uppercase;border-radius:4px;padding:.1rem .4rem;font-size:.7rem;font-weight:600}.badge--info[data-v-90995e31]{background:var(--p-blue-100);color:var(--p-blue-700)}.api-key-form[data-v-90995e31]{background:var(--p-surface-card);border:1px solid var(--runeya-border);border-radius:10px;max-width:600px;padding:1.5rem}.api-key-form h2[data-v-90995e31]{margin:0 0 1.25rem;font-size:1.1rem}.form-field[data-v-90995e31]{margin-bottom:1.25rem}.form-field>label[data-v-90995e31]:first-child{margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.form-input[data-v-90995e31]{border:1px solid var(--runeya-border);background:var(--p-surface-ground);width:100%;color:var(--p-text-color);box-sizing:border-box;border-radius:6px;padding:.5rem .75rem;font-size:.9rem}.form-input[data-v-90995e31]:focus{border-color:var(--p-primary-color);outline:none}.form-select[data-v-90995e31]{border:1px solid var(--runeya-border);background:var(--p-surface-ground);width:100%;color:var(--p-text-muted-color);cursor:pointer;border-radius:6px;padding:.45rem .75rem;font-size:.875rem}.form-select--sm[data-v-90995e31]{width:auto;padding:.25rem .5rem;font-size:.8rem}.form-hint[data-v-90995e31]{color:var(--p-text-muted-color);margin-top:.4rem;font-size:.75rem}.radio-group[data-v-90995e31]{flex-direction:column;gap:.4rem;display:flex}.radio-label[data-v-90995e31]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.svc-list-container[data-v-90995e31]{border:1px solid var(--runeya-border);border-radius:8px;margin-bottom:.5rem;overflow:hidden}.svc-list-search[data-v-90995e31]{background:var(--p-surface-ground);border-bottom:1px solid var(--runeya-border);align-items:center;gap:.5rem;padding:.4rem .75rem;display:flex}.svc-list-search__icon[data-v-90995e31]{color:var(--p-text-muted-color);flex-shrink:0;font-size:.75rem}.svc-list-search__input[data-v-90995e31]{color:var(--p-text-color);background:0 0;border:none;outline:none;flex:1;font-size:.85rem}.svc-list-search__input[data-v-90995e31]::placeholder{color:var(--p-text-muted-color)}.svc-list-search__clear[data-v-90995e31]{cursor:pointer;color:var(--p-text-muted-color);background:0 0;border:none;align-items:center;padding:0;font-size:.75rem;display:flex}.svc-list-search__clear[data-v-90995e31]:hover{color:var(--p-text-color)}.svc-list-scroll[data-v-90995e31]{max-height:360px;overflow-y:auto}.svc-list-empty[data-v-90995e31]{margin:0;padding:.75rem}.svc-perm-row[data-v-90995e31]{border-bottom:1px solid var(--runeya-border);overflow:hidden}.svc-perm-row[data-v-90995e31]:last-child{border-bottom:none}.svc-perm-row__header[data-v-90995e31]{background:var(--p-surface-ground);border-bottom:1px solid var(--runeya-border);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:.4rem .75rem;display:flex}.svc-perm-row__header[data-v-90995e31]:hover{background:var(--runeya-sidebar-hover)}.svc-chevron[data-v-90995e31]{color:var(--p-text-muted-color);font-size:.7rem;transition:transform .15s}.svc-perm-summary[data-v-90995e31]{color:var(--p-text-muted-color);margin-left:.3rem;font-size:.75rem;font-weight:400}.svc-perm-row__name[data-v-90995e31]{align-items:center;gap:.4rem;font-size:.875rem;font-weight:600;display:flex}.svc-perm-row__actions[data-v-90995e31]{border-bottom:1px solid var(--runeya-border);flex-wrap:wrap;gap:.35rem;padding:.5rem .75rem;display:flex}.action-chip[data-v-90995e31]{border:1px solid var(--runeya-border);background:var(--p-surface-ground);color:var(--p-text-muted-color);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:.3rem;padding:.15rem .5rem;font-size:.78rem;transition:all .12s;display:inline-flex}.action-chip input[type=checkbox][data-v-90995e31]{display:none}.action-chip--on[data-v-90995e31]{background:var(--p-primary-color);color:var(--p-primary-contrast-color,#fff);border-color:var(--p-primary-color)}.action-chip--sub[data-v-90995e31]{opacity:.85;margin-left:.25rem;font-size:.72rem}.action-chip--sub.action-chip--on[data-v-90995e31]{background:var(--p-primary-400,var(--p-primary-color))}.svc-perm-row__envs[data-v-90995e31]{flex-direction:column;gap:.35rem;padding:.5rem .75rem;display:flex}.env-perm-row[data-v-90995e31]{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.env-perm-row__name[data-v-90995e31]{color:var(--p-text-muted-color);align-items:center;gap:.3rem;min-width:8rem;font-size:.8rem;display:flex}.env-add-row[data-v-90995e31]{margin-top:.25rem}.svc-add-row[data-v-90995e31]{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.import-modal__body[data-v-90995e31]{flex-direction:column;gap:1rem;padding:.25rem 0;display:flex}.import-modal__desc[data-v-90995e31]{color:var(--p-text-muted-color);margin:0;font-size:.875rem}.import-section[data-v-90995e31]{flex-direction:column;gap:.4rem;display:flex}.import-section__label[data-v-90995e31]{color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.form-actions[data-v-90995e31]{justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.form-actions__right[data-v-90995e31]{gap:.75rem;display:flex}.btn--renew[data-v-90995e31]{color:var(--p-text-muted-color);font-size:.8rem}.btn--renew[data-v-90995e31]:hover:not(:disabled){color:var(--p-text-color)}.api-key-card__skill[data-v-90995e31]{margin-top:.6rem}.skill-toggle[data-v-90995e31]{color:var(--p-text-muted-color);gap:.35rem}.skill-toggle[data-v-90995e31]:hover{color:var(--p-text-color)}.skill-panel[data-v-90995e31]{border:1px solid var(--runeya-border);border-radius:6px;margin-top:.5rem;overflow:hidden}.skill-panel__tools[data-v-90995e31]{background:var(--p-surface-ground);border-bottom:1px solid var(--runeya-border);flex-wrap:wrap;gap:.35rem;padding:.5rem .75rem;display:flex}.skill-tool-btn[data-v-90995e31]{border:1px solid var(--runeya-border);color:var(--p-text-muted-color);cursor:pointer;background:0 0;border-radius:20px;padding:.2rem .6rem;font-size:.72rem;transition:all .12s}.skill-tool-btn[data-v-90995e31]:hover{background:var(--runeya-sidebar-hover);color:var(--p-text-color)}.skill-tool-btn--active[data-v-90995e31]{background:var(--p-primary-color);color:var(--p-primary-contrast-color,#fff);border-color:var(--p-primary-color)}.skill-panel__header[data-v-90995e31]{background:var(--p-surface-ground);border-bottom:1px solid var(--runeya-border);justify-content:space-between;align-items:center;padding:.4rem .75rem;display:flex}.skill-panel__btns[data-v-90995e31]{gap:.35rem;display:flex}.skill-panel__hint[data-v-90995e31]{color:var(--p-text-muted-color);font-size:.75rem}.skill-panel__code[data-v-90995e31]{white-space:pre-wrap;word-break:break-all;background:var(--p-surface-card);color:var(--p-text-color);max-height:260px;margin:0;padding:.75rem;font-size:.72rem;line-height:1.5;overflow-y:auto}.renew-modal__body[data-v-90995e31]{flex-direction:column;gap:.5rem;padding:.25rem 0;display:flex}.renew-modal__title[data-v-90995e31]{align-items:center;gap:.5rem;font-weight:600;display:flex}.renew-modal__title-icon[data-v-90995e31]{color:var(--p-orange-500,#f97316)}.renew-modal__body p[data-v-90995e31]{margin:0;font-size:.9rem;line-height:1.5}.btn[data-v-90995e31]{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex}.btn[data-v-90995e31]:disabled{opacity:.5;cursor:not-allowed}.btn--primary[data-v-90995e31]{background:var(--p-primary-color);color:var(--p-primary-contrast-color,#fff)}.btn--primary[data-v-90995e31]:hover:not(:disabled){filter:brightness(1.1)}.btn--ghost[data-v-90995e31]{color:var(--p-text-color);border:1px solid var(--runeya-border);background:0 0}.btn--ghost[data-v-90995e31]:hover:not(:disabled){background:var(--runeya-sidebar-hover)}.btn--danger[data-v-90995e31]{color:var(--p-red-500,#ef4444);border:1px solid var(--runeya-border);background:0 0}.btn--danger[data-v-90995e31]:hover:not(:disabled){background:var(--p-red-50,#fef2f2)}.btn--sm[data-v-90995e31]{padding:.3rem .6rem;font-size:.8rem}.btn--xs[data-v-90995e31]{padding:.2rem .4rem;font-size:.75rem}.settings-card[data-v-0b45301c]{max-width:680px}.cloud-banner[data-v-0b45301c]{border:1px solid var(--p-primary-color);background:color-mix(in srgb, var(--p-primary-color) 8%, transparent);width:100%;max-width:680px;color:var(--p-text-color);cursor:pointer;text-align:left;font:inherit;border-radius:10px;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.25rem;transition:background .15s,box-shadow .15s;display:flex}.cloud-banner[data-v-0b45301c]:hover{background:color-mix(in srgb, var(--p-primary-color) 14%, transparent);box-shadow:0 2px 10px color-mix(in srgb, var(--p-primary-color) 20%, transparent)}.cloud-banner__icon[data-v-0b45301c]{color:var(--p-primary-color);flex-shrink:0;font-size:1.75rem}.cloud-banner__text[data-v-0b45301c]{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.cloud-banner__title[data-v-0b45301c]{font-size:1rem}.cloud-banner__desc[data-v-0b45301c]{color:var(--p-text-muted-color);font-size:.85rem}.cloud-banner__action[data-v-0b45301c]{color:var(--p-primary-color);white-space:nowrap;flex-shrink:0;align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.setting-row[data-v-0b45301c]{border-bottom:1px solid var(--p-content-border-color);align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.setting-row[data-v-0b45301c]:last-child{border-bottom:none}.setting-label[data-v-0b45301c]{width:140px;color:var(--p-text-muted-color);flex-shrink:0;padding-top:.25rem;font-size:.9rem;font-weight:600}.setting-value[data-v-0b45301c]{flex:1;align-items:center;gap:.5rem;display:flex}.path-value[data-v-0b45301c]{word-break:break-all;min-width:0;color:var(--p-text-color);flex:1;font-size:.85rem}.setting-input[data-v-0b45301c]{width:100%;max-width:400px}.setting-actions[data-v-0b45301c]{padding-top:1rem}.launcher-report[data-v-0b45301c]{background:var(--p-content-background);border:1px solid var(--p-content-border-color);white-space:pre-wrap;word-break:break-all;border-radius:6px;max-height:260px;margin:0 0 .5rem;padding:.5rem .75rem;font-size:.78rem;overflow:auto}.settings-card[data-v-6c657270]{max-width:680px}.notification-groups[data-v-6c657270]{flex-direction:column;gap:1rem;display:flex}.notification-group[data-v-6c657270]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:color-mix(in srgb, var(--p-content-hover-background) 35%, transparent);padding:.9rem 1rem}.notification-group__header[data-v-6c657270]{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.35rem;display:flex}.notification-group__collapse-button[data-v-6c657270]{appearance:none;text-align:left;cursor:pointer;color:inherit;background:0 0;border:0;flex:1;margin:0;padding:0}.notification-group__title-wrap[data-v-6c657270]{align-items:center;gap:.45rem;display:flex}.notification-group__icon[data-v-6c657270]{color:var(--p-text-muted-color);font-size:.9rem}.notification-group__title[data-v-6c657270]{margin:0;font-size:.92rem;font-weight:700}.notification-group__chevron[data-v-6c657270]{color:var(--p-text-muted-color);margin-left:auto;font-size:.8rem}.notification-group__desc[data-v-6c657270]{color:var(--p-text-muted-color);margin:.2rem 0 0;font-size:.78rem}.notification-group__actions[data-v-6c657270]{flex-shrink:0}.notification-item[data-v-6c657270]{border-bottom:1px solid var(--p-content-border-color)}.notification-item[data-v-6c657270]:last-child,.notification-item .setting-row[data-v-6c657270]{border-bottom:none}.setting-row[data-v-6c657270]{border-bottom:1px solid var(--p-content-border-color);align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.setting-row--toggle[data-v-6c657270]{align-items:center}.setting-label[data-v-6c657270]{color:var(--p-text-muted-color);font-size:.9rem;font-weight:600}.setting-label-group[data-v-6c657270]{flex:1;min-width:0}.setting-hint[data-v-6c657270]{color:var(--p-text-muted-color);margin-top:.2rem;font-size:.78rem;display:block}.notification-item__right[data-v-6c657270]{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.notification-item__services-toggle[data-v-6c657270]{appearance:none;border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);cursor:pointer;color:var(--p-text-muted-color);background:0 0;align-items:center;gap:.3rem;padding:.2rem .45rem;font-size:.78rem;transition:background .15s,color .15s;display:flex}.notification-item__services-toggle[data-v-6c657270]:hover{background:var(--p-content-hover-background);color:var(--p-text-color)}.notification-item__services[data-v-6c657270]{border-top:1px dashed var(--p-content-border-color);flex-direction:column;gap:.4rem;padding:.5rem 0 .75rem 1rem;display:flex}.notification-item__services-empty[data-v-6c657270]{color:var(--p-text-muted-color);margin:0;font-size:.8rem}.notification-item__service-row[data-v-6c657270]{justify-content:space-between;align-items:center;padding:.25rem 0;display:flex}.notification-item__service-name[data-v-6c657270]{color:var(--p-text-color);font-size:.85rem}.security-cards[data-v-12415284]{flex-direction:column;gap:1rem;display:flex}.settings-card[data-v-12415284]{max-width:680px}.card-title[data-v-12415284]{align-items:center;gap:.5rem;display:flex}.card-desc[data-v-12415284]{color:var(--p-text-muted-color);margin:0 0 1rem;font-size:.85rem}.setting-row[data-v-12415284]{align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.setting-label[data-v-12415284]{width:140px;color:var(--p-text-muted-color);flex-shrink:0;padding-top:.25rem;font-size:.9rem;font-weight:600}.org-block[data-v-12415284]{flex-direction:column;display:flex}.org-adopt[data-v-12415284]{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.org-adopt__row[data-v-12415284]{align-items:center;gap:.5rem;max-width:560px;display:flex}.org-unreadable[data-v-12415284]{margin:0 0 .75rem;font-size:.8rem}.org-label[data-v-12415284]{flex-direction:column;gap:.15rem;display:flex}.org-id[data-v-12415284]{word-break:break-all;font-family:monospace;font-size:.8rem}.org-source[data-v-12415284]{font-size:.75rem;font-weight:400}.org-source--own[data-v-12415284]{color:var(--p-primary-color)}.org-source--locked[data-v-12415284]{color:var(--p-red-500)}.encryption-key-field[data-v-12415284]{flex:1;align-items:center;gap:.25rem;max-width:460px;display:flex}.encryption-key-input[data-v-12415284]{flex:1;font-family:monospace;font-size:.85rem}.settings-card[data-v-3e46f822]{max-width:680px}.card-title[data-v-3e46f822]{align-items:center;gap:.5rem;display:flex}.card-desc[data-v-3e46f822]{color:var(--p-text-muted-color);margin:0 0 1rem;font-size:.85rem}.setting-row[data-v-3e46f822]{align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.setting-label[data-v-3e46f822]{width:140px;color:var(--p-text-muted-color);flex-shrink:0;padding-top:.25rem;font-size:.9rem;font-weight:600}.setting-input[data-v-3e46f822]{width:100%;max-width:400px}.editor-warning[data-v-3e46f822]{padding:.5rem 0}.editor-detected[data-v-3e46f822]{padding-top:.5rem}.editor-option[data-v-3e46f822]{align-items:center;gap:.5rem;display:flex}.hint[data-v-3e46f822]{color:var(--p-text-muted-color);font-size:.78rem}.parsers-scope[data-v-2f17c78c]{color:var(--p-text-muted-color);align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.85rem;display:flex}[data-v-2f17c78c] .p-dialog-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.settings-card[data-v-2f17c78c]{max-width:680px}.card-desc[data-v-2f17c78c]{color:var(--p-text-muted-color);margin:0 0 1rem;font-size:.85rem}.parsers-loading[data-v-2f17c78c]{color:var(--p-text-muted-color);align-items:center;gap:.5rem;padding:1rem;font-size:.875rem;display:flex}.parsers-list[data-v-2f17c78c]{flex-direction:column;gap:.375rem;display:flex}.parsers-row[data-v-2f17c78c]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:var(--p-content-background);align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.parsers-name[data-v-2f17c78c]{flex-shrink:0;font-size:.875rem;font-weight:600}.parsers-desc-inline[data-v-2f17c78c]{color:var(--p-text-muted-color);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.8rem;overflow:hidden}.parsers-icon--on[data-v-2f17c78c]{color:var(--p-green-500);justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.parsers-icon--off[data-v-2f17c78c]{color:var(--p-red-500);justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.parsers-actions[data-v-2f17c78c]{align-items:center;gap:.25rem;margin-left:auto;display:flex}.parsers-empty[data-v-2f17c78c]{text-align:center;color:var(--p-text-muted-color);padding:1.5rem;font-size:.875rem}.parser-dialog__layout[data-v-2f17c78c]{grid-template-columns:1fr 1fr;align-items:stretch;gap:1.25rem;height:100%;display:grid;overflow:hidden}@media (max-width:768px){.parser-dialog__layout[data-v-2f17c78c]{grid-template-columns:1fr;height:auto;overflow-y:auto}.dialog-form[data-v-2f17c78c]{height:auto;overflow:visible}.dialog-form__field--code[data-v-2f17c78c]{min-height:250px}.parser-sim[data-v-2f17c78c]{min-height:300px}.parser-sim__body[data-v-2f17c78c]{min-height:0}.parser-sim__col--output[data-v-2f17c78c]{min-height:150px}}.dialog-form[data-v-2f17c78c]{flex-direction:column;gap:1rem;height:100%;display:flex;overflow:auto}.dialog-form__field--code[data-v-2f17c78c]{flex:1;min-height:0}.dialog-form__field[data-v-2f17c78c]{flex-direction:column;gap:.375rem;display:flex}.dialog-form__label[data-v-2f17c78c]{color:var(--p-text-muted-color);align-items:center;gap:.5rem;font-size:.8125rem;font-weight:600;display:flex}.dialog-form__input[data-v-2f17c78c]{width:100%}.dialog-form__hint[data-v-2f17c78c]{color:var(--p-text-muted-color);font-size:.78rem}.dialog-form__hint code[data-v-2f17c78c]{background:var(--p-content-hover-background);border-radius:3px;padding:.125rem .375rem;font-family:Monaco,Menlo,monospace;font-size:.75rem}.dialog-form__switch[data-v-2f17c78c]{align-items:center;gap:.5rem;display:flex}.dialog-form__switch-label[data-v-2f17c78c]{color:var(--p-text-muted-color);font-size:.85rem}.dialog-form__templates[data-v-2f17c78c]{flex-direction:column;gap:.5rem;display:flex}.dialog-form__templates-label[data-v-2f17c78c]{color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.dialog-form__templates-select[data-v-2f17c78c]{width:100%}.dialog-form__ai-btn[data-v-2f17c78c]{margin-left:auto}.tpl-option[data-v-2f17c78c]{align-items:center;gap:.75rem;display:flex}.tpl-option__icon[data-v-2f17c78c]{color:var(--p-primary-color);flex-shrink:0;font-size:.9rem}.tpl-option__body[data-v-2f17c78c]{flex-direction:column;gap:.1rem;display:flex}.tpl-option__name[data-v-2f17c78c]{color:var(--p-text-color);font-size:.8125rem;font-weight:600}.tpl-option__desc[data-v-2f17c78c]{color:var(--p-text-muted-color);font-size:.73rem}.parser-sim[data-v-2f17c78c]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);flex-direction:column;height:100%;display:flex;overflow:hidden}.parser-sim__header[data-v-2f17c78c]{background:var(--p-surface-50,#00000008);border-bottom:1px solid var(--p-content-border-color);justify-content:space-between;align-items:center;padding:.5rem .75rem;font-size:.8125rem;display:flex}.parser-sim__title[data-v-2f17c78c]{align-items:center;gap:.4rem;font-weight:600;display:flex}.parser-sim__status[data-v-2f17c78c]{color:var(--p-text-muted-color);align-items:center;gap:.3rem;font-size:.75rem;display:flex}.parser-sim__body[data-v-2f17c78c]{flex-direction:column;flex:1;gap:0;min-height:0;display:flex}.parser-sim__col[data-v-2f17c78c]{flex-direction:column;gap:.25rem;padding:.6rem .75rem;display:flex}.parser-sim__col[data-v-2f17c78c]:first-child{border-bottom:1px solid var(--p-content-border-color)}.parser-sim__col-label[data-v-2f17c78c]{color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem;font-size:.75rem;font-weight:600}.parser-sim__textarea[data-v-2f17c78c]{resize:vertical;width:100%;min-height:160px;font-family:var(--p-font-family-mono,monospace);border:1px solid var(--p-inputtext-border-color,var(--p-content-border-color));border-radius:var(--p-border-radius);background:var(--p-inputtext-background,var(--p-content-background));color:var(--p-inputtext-color,var(--p-text-color));outline:none;padding:.5rem;font-size:.8rem;line-height:1.5}.parser-sim__textarea[data-v-2f17c78c]:focus{border-color:var(--p-primary-color)}.parser-sim__error[data-v-2f17c78c]{color:var(--p-red-500,#ef4444);align-items:flex-start;gap:.4rem;padding:.5rem;font-size:.8rem;display:flex}.parser-sim__empty[data-v-2f17c78c]{color:var(--p-text-muted-color);padding:.5rem;font-size:.8rem;font-style:italic}.parser-sim__col--output[data-v-2f17c78c]{flex:1;min-height:0;overflow:hidden}.parser-sim__viewer[data-v-2f17c78c]{flex:1;height:100%;min-height:0}.parser-ai-prompt[data-v-2f17c78c]{flex-direction:column;gap:.75rem;display:flex}.parser-ai-prompt__desc[data-v-2f17c78c]{color:var(--p-text-muted-color);margin:0;font-size:.9rem}.parser-ai-prompt__input[data-v-2f17c78c]{resize:vertical;width:100%}.companion-settings[data-v-0767010c]{border-bottom:1px solid var(--p-surface-200);margin-bottom:1.25rem;padding-bottom:1.25rem}.companion-settings__title[data-v-0767010c]{align-items:center;gap:.4rem;margin:0 0 .25rem;font-size:.95rem;display:flex}.companion-settings__lead[data-v-0767010c]{color:var(--p-text-muted-color);margin:0 0 .75rem;font-size:.8rem}.companion-settings__row[data-v-0767010c]{align-items:center;gap:.75rem;padding:.4rem 0;display:flex}.companion-settings__row--stack[data-v-0767010c]{flex-wrap:wrap;justify-content:space-between}.companion-settings__label[data-v-0767010c]{font-size:.85rem}.companion-settings__hint[data-v-0767010c]{color:var(--p-text-muted-color);font-size:.75rem}.companion-settings__actions[data-v-0767010c]{gap:.25rem;display:flex}.companion-settings__editor[data-v-0767010c]{margin-top:.5rem}.companion-settings__textarea[data-v-0767010c]{width:100%;font-family:var(--font-mono,ui-monospace, monospace);font-size:.75rem}.providers-scope[data-v-0767010c]{color:var(--p-text-muted-color);align-items:center;gap:.4rem;margin:0 0 .9rem;font-size:.8rem;display:flex}.settings-card[data-v-0767010c]{max-width:680px}.providers-loading[data-v-0767010c],.providers-empty[data-v-0767010c]{color:var(--p-text-muted-color);align-items:center;gap:.5rem;padding:1rem;font-size:.875rem;display:flex}.ai-providers-list[data-v-0767010c]{flex-direction:column;gap:.5rem;display:flex}.ai-provider-row[data-v-0767010c]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:var(--p-content-background);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;transition:border-color .15s;display:flex}.ai-provider-row--active[data-v-0767010c]{border-color:var(--p-primary-color);background:color-mix(in srgb, var(--p-primary-color) 5%, var(--p-content-background))}.ai-provider-info[data-v-0767010c]{flex-wrap:wrap;align-items:center;gap:.75rem;min-width:0;display:flex}.ai-provider-name[data-v-0767010c]{font-size:.875rem;font-weight:600}.ai-provider-type[data-v-0767010c]{color:var(--p-text-muted-color);font-size:.8125rem}.ai-provider-model[data-v-0767010c]{background:var(--p-content-hover-background);color:var(--p-text-muted-color);border-radius:4px;padding:.15rem .4rem;font-size:.75rem}.ai-provider-key[data-v-0767010c]{background:var(--p-content-hover-background);letter-spacing:.05em;border-radius:4px;padding:.15rem .4rem;font-size:.75rem}.ai-provider-actions[data-v-0767010c]{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.ai-provider-badge[data-v-0767010c]{color:var(--p-primary-color);align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.8rem;font-weight:600;display:inline-flex}.dialog-form[data-v-0767010c]{flex-direction:column;gap:1rem;display:flex}.dialog-form__field[data-v-0767010c]{flex-direction:column;gap:.375rem;display:flex}.dialog-form__label[data-v-0767010c]{color:var(--p-text-muted-color);align-items:center;gap:.5rem;font-size:.8125rem;font-weight:600;display:flex}.dialog-form__input[data-v-0767010c]{width:100%}.ai-provider-info-block[data-v-0767010c]{background:color-mix(in srgb, var(--p-primary-color) 6%, var(--p-content-background));border:1px solid color-mix(in srgb, var(--p-primary-color) 25%, transparent);border-radius:var(--p-border-radius);flex-direction:column;gap:.5rem;padding:.75rem 1rem;display:flex}.ai-provider-info-block__text[data-v-0767010c]{color:var(--p-text-color);margin:0;font-size:.875rem;line-height:1.5}.ai-provider-info-block__link[data-v-0767010c]{color:var(--p-primary-color);align-items:center;gap:.35rem;font-size:.8125rem;font-weight:500;text-decoration:none;display:inline-flex}.ai-provider-info-block__link[data-v-0767010c]:hover{text-decoration:underline}.ai-provider-info-block__models[data-v-0767010c]{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.ai-provider-info-block__models-label[data-v-0767010c]{color:var(--p-text-muted-color);font-size:.75rem;font-weight:500}.ai-provider-info-block__model-tag[data-v-0767010c]{background:var(--p-content-hover-background);border:1px solid var(--p-content-border-color);color:var(--p-text-muted-color);border-radius:4px;padding:.1rem .4rem;font-size:.7rem}.settings-card[data-v-3faeb447]{max-width:680px}.scenario-list[data-v-3faeb447]{flex-direction:column;gap:.5rem;display:flex}.scenario-row[data-v-3faeb447]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:var(--p-content-background);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.scenario-info[data-v-3faeb447]{align-items:center;gap:.75rem;display:flex}.scenario-icon[data-v-3faeb447]{opacity:.7;font-size:1.1rem}.scenario-desc[data-v-3faeb447]{opacity:.6;margin-left:.5rem;font-size:.85rem}.scenario-meta[data-v-3faeb447]{opacity:.5;margin-top:.25rem;font-size:.8rem}.scenario-actions[data-v-3faeb447]{flex-shrink:0;gap:.25rem;display:flex}.scenario-empty[data-v-3faeb447]{text-align:center;opacity:.5;padding:1rem 0}.state[data-v-dcb0ce3b]{color:var(--p-text-muted-color);align-items:center;gap:.75rem;font-size:.88rem;display:flex}.settings-card[data-v-5f478adc]{max-width:680px}.setting-row[data-v-5f478adc]{border-bottom:1px solid var(--p-content-border-color);align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.setting-row[data-v-5f478adc]:last-child{border-bottom:none}.setting-label[data-v-5f478adc]{width:140px;color:var(--p-text-muted-color);flex-shrink:0;padding-top:.25rem;font-size:.9rem;font-weight:600}.setting-value[data-v-5f478adc]{flex:1;align-items:center;gap:.5rem;display:flex}.card-title-row[data-v-5f478adc]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.diagnostics[data-v-d1059365]{flex-direction:column;gap:2rem;display:flex}.block__header[data-v-d1059365]{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex}.block__title[data-v-d1059365]{margin:0;font-size:1rem;font-weight:600}.block__desc[data-v-d1059365]{color:var(--p-text-muted-color);margin:.2rem 0 0;font-size:.85rem}.empty[data-v-d1059365]{text-align:center;color:var(--p-text-muted-color);margin:0;padding:1.2rem;font-size:.875rem}.instances[data-v-d1059365]{border:1px solid var(--p-content-border-color);border-radius:8px;margin:0;padding:0;list-style:none;overflow:hidden}.instance[data-v-d1059365]{border-bottom:1px solid var(--p-content-border-color);grid-template-columns:1fr auto;grid-template-areas:"main action""meta action";align-items:center;gap:.15rem 1rem;padding:.7rem .9rem;display:grid}.instance[data-v-d1059365]:last-child{border-bottom:0}.instance__main[data-v-d1059365]{grid-area:main;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.instance__port[data-v-d1059365]{align-items:center;gap:.4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.instance__meta[data-v-d1059365]{color:var(--p-text-muted-color);flex-wrap:wrap;grid-area:meta;align-items:center;gap:.4rem;font-size:.78rem;display:flex}.instance__cwd[data-v-d1059365]{text-overflow:ellipsis;white-space:nowrap;max-width:24rem;overflow:hidden}.instance[data-v-d1059365] .p-button{grid-area:action}.instance__actions[data-v-d1059365]{grid-area:action;align-items:center;gap:.25rem;display:flex}.instance__actions[data-v-d1059365] .p-button{grid-area:auto}.tag[data-v-d1059365]{border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:600}.tag--current[data-v-d1059365]{background:color-mix(in srgb, var(--p-primary-color) 16%, transparent);color:var(--p-primary-color)}.toolbar[data-v-d1059365]{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.toolbar__source[data-v-d1059365]{min-width:9rem}.toolbar__search[data-v-d1059365]{flex:10rem;min-width:10rem}.toolbar__toggle[data-v-d1059365]{align-items:center;gap:.45rem;font-size:.85rem;display:flex}.toolbar__spacer[data-v-d1059365]{flex:auto}.toolbar__actions[data-v-d1059365]{flex:none;align-items:center;gap:.25rem;display:flex}.log[data-v-d1059365]{background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:8px;height:26rem;padding:.5rem 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.55;overflow:auto}.log-line[data-v-d1059365]{white-space:pre-wrap;word-break:break-word;gap:.6rem;padding:.05rem .8rem;display:flex}.log-line--warn[data-v-d1059365]{background:color-mix(in srgb, var(--p-orange-500,#f59e0b) 9%, transparent)}.log-line--error[data-v-d1059365]{background:color-mix(in srgb, var(--p-red-500,#ef4444) 11%, transparent)}.log-line__time[data-v-d1059365]{color:var(--p-text-muted-color);opacity:.75;flex:none}.log-line__source[data-v-d1059365]{text-transform:uppercase;letter-spacing:.03em;flex:0 0 3.4rem;align-self:center;font-size:.68rem}.log-line__source--server[data-v-d1059365]{color:var(--p-primary-color)}.log-line__source--agent[data-v-d1059365]{color:var(--p-text-muted-color)}.log-line__text[data-v-d1059365]{flex:auto}.follow-hint[data-v-d1059365]{text-align:center;margin:.4rem 0 0}.api-docs[data-v-5c36e62a]{flex-direction:column;height:100%;display:flex;overflow:hidden}.api-docs__content[data-v-5c36e62a]{flex:1;min-height:0;overflow-y:auto}.api-docs__toolbar[data-v-5c36e62a]{background:var(--p-surface-card);border-bottom:1px solid var(--p-surface-border);flex-shrink:0;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.api-docs__toolbar-label[data-v-5c36e62a]{color:var(--p-text-muted-color);white-space:nowrap;font-size:.875rem;font-weight:500}.settings-page[data-v-f0a75b88]{flex-direction:column;height:100%;display:flex}.settings-layout[data-v-f0a75b88]{flex:1;gap:0;min-height:0;display:flex}.settings-nav[data-v-f0a75b88]{border-right:1px solid var(--p-content-border-color);flex-direction:column;flex-shrink:0;gap:.25rem;width:200px;padding:1.25rem 0;display:flex}.settings-nav__title[data-v-f0a75b88]{letter-spacing:.08em;text-transform:uppercase;color:var(--p-text-muted-color);padding:0 1rem .75rem;font-size:.7rem;font-weight:700}.settings-nav__list[data-v-f0a75b88]{flex-direction:column;gap:.125rem;margin:0;padding:0;list-style:none;display:flex}.settings-nav__item[data-v-f0a75b88]{cursor:pointer;color:var(--p-text-muted-color);-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:.625rem;margin:0 .5rem;padding:.5rem 1rem;font-size:.875rem;transition:background .15s,color .15s;display:flex}.settings-nav__item[data-v-f0a75b88]:hover{background:var(--p-content-hover-background);color:var(--p-text-color)}.settings-nav__item--active[data-v-f0a75b88]{background:var(--p-primary-50,color-mix(in srgb, var(--p-primary-color) 10%, transparent));color:var(--p-primary-color);font-weight:600}.settings-nav__icon[data-v-f0a75b88]{flex-shrink:0;font-size:.875rem}.settings-content[data-v-f0a75b88]{flex:1;min-width:0;padding:1.5rem 2rem;overflow-y:auto}.settings-content--fullpage[data-v-f0a75b88]{flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden}.settings-content--fullpage[data-v-f0a75b88] .api-docs{flex:1;min-height:0}@media (max-width:640px){.settings-layout[data-v-f0a75b88]{flex-direction:column}.settings-nav[data-v-f0a75b88]{border-right:none;border-bottom:1px solid var(--p-content-border-color);flex-direction:row;align-items:center;width:100%;padding:.5rem 0;position:relative}.settings-nav__title[data-v-f0a75b88]{display:none}.settings-nav__list[data-v-f0a75b88]{scrollbar-width:none;flex-direction:row;flex:1;gap:0;padding:0 .25rem;overflow-x:auto}.settings-nav__list[data-v-f0a75b88]::-webkit-scrollbar{display:none}.settings-nav__item[data-v-f0a75b88]{white-space:nowrap;border-radius:6px;flex-direction:column;flex-shrink:0;gap:.25rem;margin:0;padding:.4rem .75rem;font-size:.7rem}.settings-nav__icon[data-v-f0a75b88]{font-size:1rem}.settings-nav__chevron[data-v-f0a75b88]{cursor:pointer;width:2rem;height:2rem;color:var(--p-text-muted-color);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.settings-nav__chevron[data-v-f0a75b88]:hover{background:var(--p-content-hover-background);color:var(--p-text-color)}.settings-content[data-v-f0a75b88]{padding:1rem}}@media (min-width:641px){.settings-nav__chevron[data-v-f0a75b88]{display:none}}.section-header[data-v-f0a75b88]{margin-bottom:1.5rem}.section-header--has-actions[data-v-f0a75b88]{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.section-header__text[data-v-f0a75b88]{flex:1;min-width:0}.section-header__actions[data-v-f0a75b88]{flex-shrink:0;align-self:center}.section-title[data-v-f0a75b88]{margin:0 0 .25rem;font-size:1.25rem;font-weight:700}.section-desc[data-v-f0a75b88]{color:var(--p-text-muted-color);margin:0;font-size:.875rem}
|