@runeya/runeya 2.0.150 → 2.0.152
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent/index.js +17 -8
- package/agent/index.js.map +1 -1
- package/agent-manager-SF4CAJJC.js +13 -0
- package/chat-Z7SFBEXS.js +28 -0
- package/{chunk-T6Y5KICH.js → chunk-26Q43CB2.js} +2 -2
- package/{chunk-76D52RTB.js → chunk-2DIW5EUT.js} +6 -6
- package/{chunk-3RCVOPTL.js → chunk-3C3R5ZVX.js} +2 -2
- package/{chunk-AZSHM3NM.js → chunk-3O54EIGT.js} +4 -4
- package/{chunk-HRNYFWGP.js → chunk-DTRZ5ZN7.js} +5 -5
- package/{chunk-UJ2OHNEN.js → chunk-EUTW2S4P.js} +87 -16
- package/chunk-EUTW2S4P.js.map +1 -0
- package/{chunk-SHSWOE5S.js → chunk-MGKGIHT4.js} +2 -4
- package/{chunk-SHSWOE5S.js.map → chunk-MGKGIHT4.js.map} +1 -1
- package/{chunk-ZVXPGKK5.js → chunk-PU6REPMY.js} +5 -5
- package/{chunk-ZVXPGKK5.js.map → chunk-PU6REPMY.js.map} +1 -1
- package/{chunk-OPVJAPUF.js → chunk-QD2OVLK4.js} +2 -2
- package/{chunk-XQGABRZY.js → chunk-QJSIN26R.js} +45 -38
- package/chunk-QJSIN26R.js.map +1 -0
- package/{chunk-UEK7QFWY.js → chunk-R4SKU6AO.js} +10 -12
- package/chunk-R4SKU6AO.js.map +1 -0
- package/{chunk-LJ7KLYFQ.js → chunk-RVZATF7R.js} +17 -9
- package/chunk-RVZATF7R.js.map +1 -0
- package/{chunk-64FCYYAB.js → chunk-TBNCGMDM.js} +70 -16
- package/chunk-TBNCGMDM.js.map +1 -0
- package/{companion-H24L2MGY.js → companion-ZDEGNZ2G.js} +11 -9
- package/{desktop-installer-page-V2NXWT43.js → desktop-installer-page-TBKSXVFD.js} +3 -3
- package/{desktop-launcher-46OJ5NAA.js → desktop-launcher-WBYP3KTF.js} +3 -3
- package/{environment-resolver-SY36Q67E.js → environment-resolver-R2GH6QOX.js} +6 -6
- package/{external-NPJBOEYV.js → external-UJ46WKBL.js} +3 -3
- package/index.js +15 -15
- package/index.js.map +1 -1
- package/{install-gate-6KHRGTTC.js → install-gate-TSCXUCYE.js} +2 -2
- package/mcp-server/external.js +15 -7
- package/mcp-server/external.js.map +1 -1
- package/mcp-server/index.js +15 -7
- package/mcp-server/index.js.map +1 -1
- package/package.json +1 -1
- package/{project-store-BYAE4SVZ.js → project-store-GBKM34QP.js} +7 -7
- package/settings-manager-VSOC3XGI.js +10 -0
- package/{src-AAOVGV5C.js → src-6WZKSNN7.js} +4 -2
- package/{src-OENXLZKQ.js → src-NWPED6TK.js} +34 -40
- package/src-NWPED6TK.js.map +1 -0
- package/{vault-resolver-B6BCVP47.js → vault-resolver-GGHULMG6.js} +3 -3
- package/web/assets/{AgentScalarChatInterface.vue-DwycfPE9.js → AgentScalarChatInterface.vue-0pB6D9jL.js} +1 -1
- package/web/assets/{AgentTerminalPage-BO1uzTvb.js → AgentTerminalPage-D1c5A1Ol.js} +1 -1
- package/web/assets/{AiChatModals-Ci8Essyi.js → AiChatModals-B_Cn5wNS.js} +1 -1
- package/web/assets/AppLayout-BsFZ6nG3.js +1 -0
- package/web/assets/{AppLayout-BlhwflMq.css → AppLayout-Djk3-XbN.css} +1 -1
- package/web/assets/{AuditPage-DC9xkftS.js → AuditPage-B_Ee8f0S.js} +1 -1
- package/web/assets/{CloudAccountPage-Ctf2gtpm.css → CloudAccountPage-CYcW_3tO.css} +1 -1
- package/web/assets/CloudAccountPage-D1L8Z_V3.js +1 -0
- package/web/assets/{CloudMessagingPage-DWgBG6iS.js → CloudMessagingPage-CyZF0sdY.js} +1 -1
- package/web/assets/{DashboardPage-6JrhJP8C.js → DashboardPage-BeWd0GWF.js} +1 -1
- package/web/assets/{DirectoryPickerDialog-B6tPuRZv.js → DirectoryPickerDialog-BGhbB66i.js} +1 -1
- package/web/assets/{EnvironmentForm-C-pr29o0.js → EnvironmentForm-B0FYydAK.js} +1 -1
- package/web/assets/EnvironmentForm-BnTLokUw.css +1 -0
- package/web/assets/{EnvironmentFormPage-DNBRaZH7.js → EnvironmentFormPage-BdTdOUBD.js} +1 -1
- package/web/assets/{EnvironmentListPage-D1Zom-yp.js → EnvironmentListPage-Cy9Kg5pY.js} +1 -1
- package/web/assets/{KanbanBoardPage-DeZRYB00.js → KanbanBoardPage-BOEK_sKt.js} +3 -3
- package/web/assets/{KanbanListPage-Bw0TFzqM.js → KanbanListPage-BOxLKDpW.js} +1 -1
- package/web/assets/{LaunchProjectPage-D1nMVxOW.js → LaunchProjectPage-zlY3PK3t.js} +1 -1
- package/web/assets/{LaunchServicesPage-CgondJcg.js → LaunchServicesPage-BsM0bP8N.js} +1 -1
- package/web/assets/{LaunchShell-DmAPUl7p.js → LaunchShell-BznQ7GLD.js} +1 -1
- package/web/assets/{LogViewer-B-rfzSpn.js → LogViewer-9e3e9X-R.js} +1 -1
- package/web/assets/{OrgKeyPrompt-DWkRmHYb.js → OrgKeyPrompt-Ckq1sJ8-.js} +1 -1
- package/web/assets/{ProcessControls-C7LX2uQD.js → ProcessControls-Br_aLfW7.js} +1 -1
- package/web/assets/ProcessDetailPage-B7bD2jmj.css +1 -0
- package/web/assets/ProcessDetailPage-D3BNcm7N.js +1 -0
- package/web/assets/{ProjectCreateDialog-C-VN-f05.js → ProjectCreateDialog-BzJRqXun.js} +1 -1
- package/web/assets/{ProjectLocationGate-CM6YNXYc.js → ProjectLocationGate-DjBwSAKc.js} +1 -1
- package/web/assets/{ProjectPublishDialog-CwItEKmm.js → ProjectPublishDialog-yakoPg1D.js} +1 -1
- package/web/assets/{RandomJobTestPage-BY6kBvm3.js → RandomJobTestPage-Dh0-shVq.js} +1 -1
- package/web/assets/{ScenarioEditorPage-BtKSjE2X.css → ScenarioEditorPage-BwLBCVeS.css} +1 -1
- package/web/assets/ScenarioEditorPage-DEdlwmf3.js +14 -0
- package/web/assets/{SendToChatDialog-uXvbEybU.js → SendToChatDialog-_ai4UP8l.js} +1 -1
- package/web/assets/{ServiceControlsBar-CoKPrw7b.js → ServiceControlsBar-Bo-jHhJK.js} +1 -1
- package/web/assets/ServiceDetailPage-CWB3XIMA.js +2 -0
- package/web/assets/ServiceDetailPage-DuXvqXk4.css +1 -0
- package/web/assets/{ServiceFormPage-CS9rZyjG.js → ServiceFormPage-BzARwyAF.js} +1 -1
- package/web/assets/{SettingsPage-ByJ9v8kA.js → SettingsPage-CsIXEQrW.js} +7 -7
- package/web/assets/{SettingsPage-B951NEBm.css → SettingsPage-NpFX7FAy.css} +1 -1
- package/web/assets/{UnlockPage-CavRr6dk.js → UnlockPage-C08Itng5.js} +1 -1
- package/web/assets/{VaultMigrationPage-C9-taMLq.js → VaultMigrationPage-BLZc5pXH.js} +1 -1
- package/web/assets/{VersionBadge-D5eE6rPL.js → VersionBadge-lBKbqt98.js} +1 -1
- package/web/assets/{WikiPage-op2Y2UTo.js → WikiPage-RCU0T1IS.js} +1 -1
- package/web/assets/{WikiView-CpiYONPK.js → WikiView-BV8MZ8qm.js} +1 -1
- package/web/assets/{add-scalar-classes-t1J2lZx-.js → add-scalar-classes-CvUuKrM6.js} +1 -1
- package/web/assets/{agent.store-CmFNwq8b.js → agent.store-yrwtq9oP.js} +1 -1
- package/web/assets/{auth-BlB_Xe9D.js → auth-LbzJj0JF.js} +2 -2
- package/web/assets/{cloud-chat.store-30i6G2hv.js → cloud-chat.store-y_9urSQZ.js} +1 -1
- package/web/assets/{cloud-client-Dqa_CDfk.js → cloud-client-DhjJyZHU.js} +2 -2
- package/web/assets/{cloud-session-D04EJ2X2.js → cloud-session-BlihYcy2.js} +2 -2
- package/web/assets/dist-C9Qdh18x.js +1 -0
- package/web/assets/i18n-DxVwqoxL.js +1 -0
- package/web/assets/{index-B7Lb37Xl.js → index-Ci2pSJuu.js} +7 -7
- package/web/assets/{index-CnXzQkLZ.css → index-Ck_3m_I9.css} +1 -1
- package/web/assets/{modal-BUQs190g.js → modal-KpWdqKSY.js} +1 -1
- package/web/assets/notification.store-Bp37Xsss.js +1 -0
- package/web/assets/{project-launch.store-BsXk5Ngh.js → project-launch.store-AB257LRF.js} +1 -1
- package/web/assets/{project.store-BAx14h4J.js → project.store-qBZ_R1td.js} +1 -1
- package/web/assets/{scenario.store-BHnWFonP.js → scenario.store-B5ybSSzx.js} +1 -1
- package/web/assets/{service.store-BdRBLSCW.js → service.store-BrKRjCtb.js} +1 -1
- package/web/assets/{settings-scope-DSoix6om.js → settings-scope-BSdUKgjx.js} +1 -1
- package/web/assets/settings.store-C8guF9Fl.js +1 -0
- package/web/assets/{src-Dp7BndBf.js → src-Br-M9ln7.js} +1 -1
- package/web/assets/{src-Bfb0PBSC.css → src-dQGrnDw0.css} +1 -1
- package/web/assets/{src-CCCeCa_V.js → src-recq0B6o.js} +2 -2
- package/web/assets/{trpc-D2QgyyrU.js → trpc-CAKhySL_.js} +3 -3
- package/web/assets/{useCloudOrg-iYu-mVBY.js → useCloudOrg-B_JPalTv.js} +1 -1
- package/web/assets/useEnvVarAutocomplete-DCZCMfLC.js +1 -0
- package/web/assets/useEnvVarAutocomplete-gV2loQYv.css +1 -0
- package/web/assets/{useProjectCatalog-ByEs2zGK.js → useProjectCatalog-CCJAkQi_.js} +1 -1
- package/web/assets/{useProjectCloudOrg-Fo1WYzwi.js → useProjectCloudOrg-CG4CriU2.js} +1 -1
- package/web/assets/{useServiceUrlHost-DzjlYxkb.js → useServiceUrlHost-C1gL6Mjg.js} +1 -1
- package/web/index.html +17 -17
- package/agent-manager-5VR5TDBZ.js +0 -13
- package/chat-EMWEVXGR.js +0 -28
- package/chunk-64FCYYAB.js.map +0 -1
- package/chunk-DA2DZBTL.js +0 -43
- package/chunk-DA2DZBTL.js.map +0 -1
- package/chunk-LJ7KLYFQ.js.map +0 -1
- package/chunk-UEK7QFWY.js.map +0 -1
- package/chunk-UJ2OHNEN.js.map +0 -1
- package/chunk-XQGABRZY.js.map +0 -1
- package/mcp-ready-TAPBAOZY.js +0 -9
- package/settings-manager-GIRMJQKL.js +0 -10
- package/src-OENXLZKQ.js.map +0 -1
- package/vault-resolver-B6BCVP47.js.map +0 -1
- package/web/assets/AppLayout-f6SKHFJd.js +0 -1
- package/web/assets/CloudAccountPage-uK9FpJ4U.js +0 -1
- package/web/assets/EnvironmentForm-CkKVSiT7.css +0 -1
- package/web/assets/ProcessDetailPage-CJcIxbLm.css +0 -1
- package/web/assets/ProcessDetailPage-DOnYh6nd.js +0 -1
- package/web/assets/ScenarioEditorPage-bDoQIzB2.js +0 -14
- package/web/assets/ServiceDetailPage-DnSf5cm9.css +0 -1
- package/web/assets/ServiceDetailPage-WlcVr1uy.js +0 -2
- package/web/assets/dist-DTLmCuqE.js +0 -1
- package/web/assets/i18n-D3P4ZExP.js +0 -1
- package/web/assets/notification.store-CxPriNmY.js +0 -1
- package/web/assets/settings.store-CIAnRUSA.js +0 -1
- package/web/assets/useEnvVarAutocomplete-7Ok6yien.js +0 -1
- package/web/assets/useEnvVarAutocomplete-Czt8ZZ1E.css +0 -1
- /package/{agent-manager-5VR5TDBZ.js.map → agent-manager-SF4CAJJC.js.map} +0 -0
- /package/{chat-EMWEVXGR.js.map → chat-Z7SFBEXS.js.map} +0 -0
- /package/{chunk-T6Y5KICH.js.map → chunk-26Q43CB2.js.map} +0 -0
- /package/{chunk-76D52RTB.js.map → chunk-2DIW5EUT.js.map} +0 -0
- /package/{chunk-3RCVOPTL.js.map → chunk-3C3R5ZVX.js.map} +0 -0
- /package/{chunk-AZSHM3NM.js.map → chunk-3O54EIGT.js.map} +0 -0
- /package/{chunk-HRNYFWGP.js.map → chunk-DTRZ5ZN7.js.map} +0 -0
- /package/{chunk-OPVJAPUF.js.map → chunk-QD2OVLK4.js.map} +0 -0
- /package/{companion-H24L2MGY.js.map → companion-ZDEGNZ2G.js.map} +0 -0
- /package/{desktop-installer-page-V2NXWT43.js.map → desktop-installer-page-TBKSXVFD.js.map} +0 -0
- /package/{desktop-launcher-46OJ5NAA.js.map → desktop-launcher-WBYP3KTF.js.map} +0 -0
- /package/{environment-resolver-SY36Q67E.js.map → environment-resolver-R2GH6QOX.js.map} +0 -0
- /package/{external-NPJBOEYV.js.map → external-UJ46WKBL.js.map} +0 -0
- /package/{install-gate-6KHRGTTC.js.map → install-gate-TSCXUCYE.js.map} +0 -0
- /package/{mcp-ready-TAPBAOZY.js.map → project-store-GBKM34QP.js.map} +0 -0
- /package/{project-store-BYAE4SVZ.js.map → settings-manager-VSOC3XGI.js.map} +0 -0
- /package/{settings-manager-GIRMJQKL.js.map → src-6WZKSNN7.js.map} +0 -0
- /package/{src-AAOVGV5C.js.map → vault-resolver-GGHULMG6.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.log-details[data-v-b2c352ef]{flex-direction:column;gap:1.5rem;display:flex}.log-details__section[data-v-b2c352ef]{flex-direction:column;gap:.5rem;display:flex}.log-details__label[data-v-b2c352ef]{text-transform:uppercase;color:var(--r-primary);letter-spacing:.05em;font-size:.75rem;font-weight:600}.log-details__value[data-v-b2c352ef]{color:var(--r-text);font-size:.875rem}.log-details__value--box[data-v-b2c352ef]{border:1px solid var(--r-border);padding:.75rem}.log-details__value--code[data-v-b2c352ef]{white-space:pre-wrap;word-break:break-word;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.8125rem;line-height:1.5}.log-details__process[data-v-b2c352ef]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.log-details__process span[data-v-b2c352ef]{word-break:break-all;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.8125rem}.service-terminal[data-v-f6ad7888]{flex-direction:column;height:100%;display:flex;overflow:hidden}.service-terminal--fullscreen[data-v-f6ad7888]{z-index:9999;position:fixed;inset:0}.service-terminal__header[data-v-f6ad7888]{border-bottom:1px solid var(--r-border);background:var(--r-bg);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.service-terminal__header-left[data-v-f6ad7888]{align-items:center;gap:.625rem;display:flex}.service-terminal__name[data-v-f6ad7888]{color:var(--r-text);font-size:1rem;font-weight:600}.service-terminal__state-tag[data-v-f6ad7888]{font-size:.75rem}.service-terminal__header-right[data-v-f6ad7888]{align-items:center;gap:.5rem;display:flex}.service-terminal__toolbar[data-v-f6ad7888]{border-bottom:1px solid var(--r-border);background:var(--r-bg);justify-content:space-between;align-items:center;padding:.25rem .5rem;display:flex}.service-terminal__toolbar-left[data-v-f6ad7888],.service-terminal__toolbar-right[data-v-f6ad7888]{align-items:center;gap:.25rem;display:flex}.service-terminal__content[data-v-f6ad7888]{flex:1;min-height:0;overflow:hidden}.service-terminal__shortcuts[data-v-f6ad7888]{border-top:1px solid var(--r-border);background:var(--r-bg);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.375rem 1rem;display:flex}.shortcut-badge[data-v-f6ad7888]{font-size:.75rem}.service-terminal__command-input[data-v-f6ad7888]{border-top:1px solid var(--r-border);background:var(--r-bg);align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.service-terminal__prompt[data-v-f6ad7888]{color:var(--r-primary);font-family:Courier New,monospace;font-size:1rem;font-weight:600;line-height:1}.service-terminal__autocomplete[data-v-f6ad7888]{flex:1}.service-terminal__autocomplete[data-v-f6ad7888] .r-autocomplete__input{width:100%}.service-terminal__input[data-v-f6ad7888]{color:var(--r-text);font-family:Courier New,monospace;font-size:.875rem;box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important;padding:.5rem 0!important}.service-terminal__input[data-v-f6ad7888]::placeholder{color:var(--r-text-muted);font-style:italic}.service-terminal__input[data-v-f6ad7888]:disabled{opacity:.5;cursor:not-allowed}.service-terminal__bottom[data-v-f6ad7888]{border-top:1px solid var(--r-border);background:var(--r-bg);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.service-terminal__pill[data-v-f6ad7888]{text-overflow:ellipsis;max-width:200px;font-size:.75rem;overflow:hidden}.service-terminal__pid-selector[data-v-f6ad7888]{min-width:200px}.pid-option[data-v-f6ad7888]{align-items:center;gap:.5rem;width:100%;display:flex}.pid-option span[data-v-f6ad7888]{flex:1}.pid-badge[data-v-f6ad7888]{margin-left:auto;font-size:.625rem}.pid-status-icon[data-v-f6ad7888]{margin-right:.5rem;font-size:.5rem}.pid-status-icon--active[data-v-f6ad7888]{color:#22c55e}.pid-status-icon--stopped[data-v-f6ad7888]{color:#94a3b8}.service-metrics[data-v-4ff9fccd]{flex-direction:column;height:100%;padding:1rem;display:flex;overflow-y:auto}.service-metrics__no-data[data-v-4ff9fccd],.service-metrics__no-process[data-v-4ff9fccd]{color:var(--r-text-muted);justify-content:center;align-items:center;gap:.5rem;padding:3rem;font-size:.9375rem;display:flex}.service-metrics__skeleton[data-v-4ff9fccd]{flex-wrap:wrap;gap:1rem;display:flex}.metric-skeleton[data-v-4ff9fccd]{border:1px solid var(--r-border);background:var(--r-bg);flex:1;min-width:160px;max-width:260px;padding:1rem}.config-general[data-v-185c896b]{flex-direction:column;gap:.75rem;display:flex}.config-card[data-v-185c896b]{border:1px solid var(--r-border);background:var(--r-bg);padding:.875rem 1rem}.config-card--inline[data-v-185c896b]{justify-content:space-between;align-items:center;display:flex}.config-card__header[data-v-185c896b]{color:var(--r-text-muted);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.8125rem;font-weight:600;display:flex}.config-card--inline .config-card__header[data-v-185c896b]{margin-bottom:0}.config-card__input[data-v-185c896b]{width:100%}.config-card__hint[data-v-185c896b]{color:var(--r-text-muted);margin-top:.3rem;font-size:.78rem;display:block}.config-meta[data-v-185c896b]{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.config-meta__row[data-v-185c896b]{align-items:center;gap:.5rem;display:flex}.config-meta__input[data-v-185c896b]{flex:1}.config-meta__input--wide[data-v-185c896b]{flex:2}.config-meta__add[data-v-185c896b]{align-self:flex-start}.docker-config[data-v-f21b0663]{flex-direction:column;gap:.75rem;display:flex}.docker-config__section[data-v-f21b0663]{flex-direction:column;gap:.375rem;display:flex}.docker-config__section-title[data-v-f21b0663]{color:var(--r-text);font-size:.875rem;font-weight:600}.docker-config__label[data-v-f21b0663]{color:var(--r-text-muted);font-size:.75rem;font-weight:600}.docker-config__input[data-v-f21b0663]{width:100%;max-width:480px}.docker-config__select[data-v-f21b0663]{width:100%;max-width:320px}.docker-config__mode-toggle.r-radio-group[data-v-f21b0663]{gap:1.5rem;display:flex}.docker-config__mode-toggle--indented.r-radio-group[data-v-f21b0663]{flex-direction:column;gap:.375rem;margin-top:.5rem;padding-left:1.5rem}.docker-config__mode-option[data-v-f21b0663]{cursor:pointer;align-items:center;gap:.375rem;font-size:.875rem;display:flex}.docker-config__kv-list[data-v-f21b0663]{flex-direction:column;gap:.5rem;display:flex}.docker-config__kv-row[data-v-f21b0663]{align-items:center;gap:.5rem;display:flex}.docker-config__kv-input[data-v-f21b0663]{flex:1}.docker-config__list[data-v-f21b0663]{flex-direction:column;gap:.5rem;display:flex}.docker-config__list-row[data-v-f21b0663]{align-items:center;gap:.5rem;display:flex}.docker-config__checkbox-row[data-v-f21b0663]{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.docker-config__checkbox-label[data-v-f21b0663]{cursor:pointer;font-size:.875rem}.docker-config__hint[data-v-f21b0663]{color:var(--r-text-muted);margin-top:.125rem;font-size:.75rem}.docker-config__shell-row[data-v-f21b0663]{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.25rem;padding-left:1.5rem;display:flex}.docker-config__shell-row .docker-config__label[data-v-f21b0663]{white-space:nowrap}.docker-config__shell-row .docker-config__hint[data-v-f21b0663]{margin-top:0}.docker-config__select--small[data-v-f21b0663]{max-width:180px}.docker-config__hint code[data-v-f21b0663]{font-family:monospace;font-size:.7rem}.docker-config__hint-inline[data-v-f21b0663]{color:var(--r-text-muted);font-size:.75rem;font-weight:400}.docker-config__bootstrap-card[data-v-f21b0663]{border:1px solid var(--r-border);background:var(--r-bg);padding:.75rem 1rem}.docker-config__bootstrap-row[data-v-f21b0663]{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.docker-config__bootstrap-field[data-v-f21b0663]{flex-direction:column;flex:1;gap:.25rem;min-width:120px;display:flex}.docker-config__bootstrap-field--wide[data-v-f21b0663]{flex:2;min-width:200px}.docker-config__bootstrap-actions[data-v-f21b0663]{align-items:center;gap:.125rem;padding-bottom:.125rem;display:flex}.config-commands[data-v-c90b3f31]{flex-direction:column;gap:.75rem;display:flex}.config-commands__tab-content[data-v-c90b3f31]{flex-direction:column;gap:.75rem;padding-top:.75rem;display:flex}.config-commands__empty[data-v-c90b3f31]{text-align:center;color:var(--r-text-muted);padding:1.5rem;font-size:.875rem}.config-card[data-v-c90b3f31]{border:1px solid var(--r-border);background:var(--r-bg);padding:.875rem 1rem}.config-card__input[data-v-c90b3f31]{width:100%}.config-commands__row[data-v-c90b3f31]{align-items:flex-end;gap:.75rem;display:flex}.config-commands__field[data-v-c90b3f31]{flex-direction:column;flex:1;gap:.25rem;display:flex}.config-commands__field--wide[data-v-c90b3f31]{flex:2}.config-commands__label[data-v-c90b3f31]{color:var(--r-text-muted);font-size:.75rem;font-weight:600}.config-commands__actions-cell[data-v-c90b3f31]{align-items:center;padding-bottom:.125rem;display:flex}.config-commands__footer[data-v-c90b3f31]{justify-content:space-between;align-items:center;padding-top:.5rem;display:flex}.tab-icon[data-v-c90b3f31]{margin-right:.4rem;font-size:.85rem}.config-commands__execution[data-v-c90b3f31]{flex-wrap:wrap;align-items:stretch;gap:.75rem;padding-bottom:.25rem;display:flex}.config-card--execution[data-v-c90b3f31]{flex-direction:column;flex:1;gap:.5rem;min-width:180px;display:flex}.config-card__header[data-v-c90b3f31]{align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;display:flex}.config-card__hint[data-v-c90b3f31]{color:var(--r-text-muted);font-size:.78rem}.runner-option[data-v-c90b3f31]{align-items:center;gap:.5rem;display:flex}.config-env[data-v-5a6d4834]{flex-direction:column;gap:1rem;display:flex}.active-env-display[data-v-5a6d4834]{background:var(--r-bg-hover);border-left:3px solid var(--r-primary);border-radius:4px;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.active-env-label[data-v-5a6d4834]{color:var(--r-text-muted);font-weight:600}.inheritance-toggle[data-v-5a6d4834]{background:var(--r-bg-hover);border:1px solid var(--r-border);border-radius:4px;align-items:center;gap:.75rem;padding:.6rem 1rem;font-size:.875rem;display:flex}.inheritance-label[data-v-5a6d4834]{color:var(--r-text)}.config-env__header[data-v-5a6d4834]{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.config-env__title[data-v-5a6d4834]{color:var(--r-text);flex:1;margin:0;font-size:1rem;font-weight:600}.config-env__actions[data-v-5a6d4834]{align-items:center;gap:.5rem;display:flex}.variables-view[data-v-5a6d4834]{flex-direction:column;gap:1rem;display:flex}.inherited-accordion[data-v-5a6d4834]{margin-top:.25rem}.inherited-header[data-v-5a6d4834]{color:var(--r-text-muted);align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;display:inline-flex}.inherited-header .ti[data-v-5a6d4834]{font-size:.8rem}.empty-state[data-v-5a6d4834]{text-align:center;color:var(--r-text-muted);border:1px dashed var(--r-border);border-radius:4px;padding:2rem}.editor-container[data-v-5a6d4834]{flex-direction:column;gap:1rem;display:flex}.editor-env-banner[data-v-5a6d4834]{background:var(--r-bg-hover);color:var(--r-text);border-radius:6px;align-items:center;gap:.4rem;padding:.65rem .85rem;font-size:.85rem;display:flex}.editor-env-text[data-v-5a6d4834]{margin-right:.15rem}.editor-section[data-v-5a6d4834]{flex-direction:column;gap:.75rem;display:flex}.preview-container[data-v-5a6d4834]{flex-direction:column;gap:1rem;display:flex}.preview-info[data-v-5a6d4834]{color:var(--r-text-muted);margin:0;font-size:.875rem;font-style:italic}.preview-key[data-v-5a6d4834]{color:var(--r-text);font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem;font-weight:600}.preview-value[data-v-5a6d4834]{color:var(--r-text);word-break:break-all;font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem}.loading-container[data-v-5a6d4834]{justify-content:center;padding:2rem;display:flex}[data-v-5a6d4834] .preview-container .r-datatable{margin-top:1rem}.passthrough-info[data-v-5a6d4834]{color:var(--r-text-muted);margin:0 0 .5rem;font-size:.8rem;font-style:italic}.passthrough-undefined[data-v-5a6d4834]{color:var(--r-orange-500);font-size:.85rem;font-style:italic}.inherited-row-key[data-v-5a6d4834]{flex-direction:column;gap:.2rem;display:flex}.source-badge[data-v-5a6d4834]{opacity:.7;font-size:.7rem}.secret-mask[data-v-5a6d4834]{color:var(--r-text-muted,#6b7280);font-size:.85rem;font-style:italic}.value-row[data-v-5a6d4834]{align-items:center;display:inline-flex}.value-actions[data-v-5a6d4834]{flex-shrink:0;align-items:center;gap:.2rem;margin-right:.4rem;display:inline-flex}.action-icon[data-v-5a6d4834]{color:var(--r-text-muted,#9ca3af);cursor:pointer;padding:.15rem;font-size:.75rem;transition:color .15s}.action-icon[data-v-5a6d4834]:hover{color:var(--r-text)}.action-icon.ti-check[data-v-5a6d4834]{color:var(--r-green-500,#22c55e)}.config-health[data-v-956bcc34]{flex-direction:column;gap:.75rem;display:flex}.config-card[data-v-956bcc34]{border:1px solid var(--r-border);background:var(--r-bg);padding:.875rem 1rem}.config-card--inline[data-v-956bcc34]{justify-content:space-between;align-items:center;display:flex}.config-card__header[data-v-956bcc34]{color:var(--r-text-muted);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.8125rem;font-weight:600;display:flex}.config-card--inline .config-card__header[data-v-956bcc34]{margin-bottom:0}.config-card__input[data-v-956bcc34]{width:100%}.config-card__hint[data-v-956bcc34]{color:var(--r-text-muted);margin-top:.25rem;font-size:.75rem;display:block}.config-shortcuts[data-v-a2fc0ecc]{flex-direction:column;gap:.75rem;display:flex}.config-shortcuts__empty[data-v-a2fc0ecc]{text-align:center;color:var(--r-text-muted);padding:1.5rem;font-size:.875rem}.config-card[data-v-a2fc0ecc]{border:1px solid var(--r-border);background:var(--r-bg);padding:.875rem 1rem}.config-card__input[data-v-a2fc0ecc]{width:100%}.config-shortcuts__row[data-v-a2fc0ecc]{align-items:flex-end;gap:.75rem;display:flex}.config-shortcuts__field[data-v-a2fc0ecc]{flex-direction:column;flex:1;gap:.25rem;display:flex}.config-shortcuts__field--wide[data-v-a2fc0ecc]{flex:2}.config-shortcuts__label[data-v-a2fc0ecc]{color:var(--r-text-muted);font-size:.75rem;font-weight:600}.config-shortcuts__actions-cell[data-v-a2fc0ecc]{align-items:center;padding-bottom:.125rem;display:flex}.config-shortcuts__footer[data-v-a2fc0ecc]{justify-content:space-between;align-items:center;padding-top:.5rem;display:flex}.config-log-parsers[data-v-b8de20cf]{flex-direction:column;gap:.75rem;display:flex}.config-card[data-v-b8de20cf]{border:1px solid var(--r-border);background:var(--r-bg);padding:.875rem 1rem}.config-card__header[data-v-b8de20cf]{color:var(--r-text-muted);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.8125rem;font-weight:600;display:flex}.config-card__hint[data-v-b8de20cf]{color:var(--r-text-muted);margin-top:.3rem;font-size:.78rem;display:block}.config-card__header-hint[data-v-b8de20cf]{color:var(--r-text-muted);margin-left:auto;font-size:.75rem;font-weight:400}.config-log-parsers__drag-list[data-v-b8de20cf]{flex-direction:column;gap:.375rem;margin-top:.5rem;display:flex}.config-log-parsers__drag-row[data-v-b8de20cf]{border:1px solid var(--r-border);background:var(--r-bg-hover);-webkit-user-select:none;user-select:none;align-items:center;gap:.625rem;padding:.4rem .625rem;display:flex}.drag-handle[data-v-b8de20cf]{cursor:grab;color:var(--r-text-muted);flex-shrink:0}.drag-handle[data-v-b8de20cf]:active{cursor:grabbing}.config-log-parsers__order[data-v-b8de20cf]{text-align:center;width:1.25rem;color:var(--r-text-muted);flex-shrink:0;font-size:.75rem;font-weight:700}.config-log-parsers__name[data-v-b8de20cf]{flex:1;font-size:.875rem;font-weight:500}.config-log-parsers__delete[data-v-b8de20cf]{flex-shrink:0;margin-left:auto}.config-log-parsers__empty[data-v-b8de20cf]{color:var(--r-text-muted);padding:1rem 0 .5rem;font-size:.875rem}.config-log-parsers__add-row[data-v-b8de20cf]{border-top:1px solid var(--r-border);align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.config-log-parsers__add-select[data-v-b8de20cf]{flex:1}.config-log-parsers__footer[data-v-b8de20cf]{justify-content:space-between;align-items:center;padding-top:.5rem;display:flex}.config-log-sources[data-v-3dc28b03]{flex-direction:column;gap:.75rem;display:flex}.config-card[data-v-3dc28b03]{border:1px solid var(--r-border);background:var(--r-bg);padding:.875rem 1rem}.config-card__header[data-v-3dc28b03]{color:var(--r-text-muted);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.8125rem;font-weight:600;display:flex}.config-card__hint[data-v-3dc28b03]{color:var(--r-text-muted);margin-top:.3rem;font-size:.78rem;display:block}.config-card--list[data-v-3dc28b03]{flex-direction:column;gap:.375rem;padding:.5rem;display:flex}.source-row[data-v-3dc28b03]{border:1px solid var(--r-border);background:var(--r-bg-hover);align-items:center;gap:.75rem;padding:.5rem .625rem;display:flex}.source-row__icon[data-v-3dc28b03]{color:var(--r-text-muted);flex-shrink:0}.source-row__info[data-v-3dc28b03]{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.source-row__type[data-v-3dc28b03]{text-transform:uppercase;color:var(--r-primary);letter-spacing:.04em;font-size:.7rem;font-weight:700}.source-row__label[data-v-3dc28b03]{color:var(--r-text);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.source-row__actions[data-v-3dc28b03]{flex-shrink:0;gap:.25rem;display:flex}.config-log-sources__empty[data-v-3dc28b03]{text-align:center;color:var(--r-text-muted);border:1px dashed var(--r-border);padding:2rem;font-size:.875rem}.config-log-sources__empty-icon[data-v-3dc28b03]{opacity:.4;margin-bottom:.5rem;font-size:2rem;display:block}.config-log-sources__empty p[data-v-3dc28b03]{margin:0 0 .25rem}.config-log-sources__footer[data-v-3dc28b03]{justify-content:flex-end;padding-top:.25rem;display:flex}.dialog-form[data-v-3dc28b03]{flex-direction:column;gap:.875rem;padding-top:.25rem;display:flex}.dialog-form__row[data-v-3dc28b03]{gap:.75rem;display:flex}.dialog-form__row .dialog-form__field[data-v-3dc28b03]{flex:1}.dialog-form__field--port[data-v-3dc28b03]{flex:0 0 100px!important}.dialog-form__field--grow[data-v-3dc28b03]{flex:2!important}.dialog-form__field[data-v-3dc28b03]{flex-direction:column;gap:.3rem;display:flex}.dialog-form__field--row[data-v-3dc28b03]{flex-direction:row;justify-content:space-between;align-items:center}.dialog-form__label[data-v-3dc28b03]{color:var(--r-text-muted);font-size:.8rem;font-weight:600}.dialog-form__input[data-v-3dc28b03]{width:100%}.dialog-form__required[data-v-3dc28b03]{color:var(--r-red-500,#ef4444)}.dialog-form__hint[data-v-3dc28b03]{color:var(--r-text-muted);font-size:.75rem;font-weight:400}.dialog-form__hint-block[data-v-3dc28b03]{color:var(--r-text-muted);background:var(--r-bg-hover);padding:.5rem;font-size:.8rem;display:block}.config-traefik[data-v-20f0ef5a]{flex-direction:column;gap:.75rem;padding:1rem 0;display:flex}.traefik-entry[data-v-20f0ef5a]{align-items:center;gap:.5rem;min-width:0;display:flex}.traefik-entry__fields[data-v-20f0ef5a]{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.traefik-entry__url[data-v-20f0ef5a]{flex:1;min-width:0}.traefik-entry__port[data-v-20f0ef5a]{flex:0 0 100px}.config-view[data-v-0526cbd4]{flex-direction:column;height:100%;padding:1rem;display:flex;overflow-y:auto}.config-view__header[data-v-0526cbd4]{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.config-view__title[data-v-0526cbd4]{color:var(--r-text);margin:0;font-size:1.125rem;font-weight:600}.config-view__tabs[data-v-0526cbd4]{flex:1}.tab-icon[data-v-0526cbd4]{margin-right:.4rem;font-size:.85rem}.service-detail[data-v-ac012903]{height:100%}.service-detail__not-found[data-v-ac012903]{height:100%;color:var(--r-text-muted);justify-content:center;align-items:center;display:flex}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t,x as n}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as r,_ as i,b as a,bt as o,ct as ee,g as s,k as c,mt as l,o as u,qt as te,rn as d,y as f}from"./runtime-core.esm-bundler-DujKY9QV.js";import{C as p,w as m}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as ne}from"./vue-i18n-o7yraQpR.js";import{n as re}from"./project-launch.store-BsXk5Ngh.js";import{g as ie,h as ae}from"./useApi-s_02lHjl-DZYO2tHU.js";import{F as oe,H as se,J as h,P as ce,S as g,dt as _,ft as v,i as le,k as ue,l as y,z as b}from"./src-DOcCcTQv.js";import{r as x}from"./trpc-D2QgyyrU.js";import{n as de}from"./project.store-BAx14h4J.js";import{n as S}from"./error-DpF7X5iu.js";import{t as fe}from"./service.store-BdRBLSCW.js";import{t as pe}from"./agent.store-CmFNwq8b.js";import{c as me}from"./index-B7Lb37Xl.js";var he={class:`service-form-page`},ge={class:`page-header`},_e={key:0,class:`restart-banner`},ve={key:1,class:`loading-container`},ye={class:`form-section`},be={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`},P={class:`form-section`},Fe={class:`section-header`},Ie={key:0,class:`empty-env`},Le={class:`form-group`},Re={for:`hc-path`},ze={class:`form-row`},Be={class:`form-group flex-1`},Ve={for:`hc-interval`},He={class:`form-group flex-1`},Ue={for:`hc-timeout`},We={class:`form-group flex-1`},Ge={for:`hc-retries`},F=`__inherit__`,I=v(c({__name:`ServiceFormPage`,props:{id:{}},setup(c){let v=c,I=ie(),Ke=ae(),L=ce(),R=de(),z=fe(),B=pe(),V=re(),qe=me(),{t:H}=ne(),U=s(()=>!!v.id),W=s(()=>Ke.query.projectId),G=t(!1),K=t(!1),q=t(null),J=t(null),Y=t(!1),X=n({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=s(()=>R.projects.map(e=>({label:e.name,value:e.id}))),Q=s(()=>[{label:H(`serviceForm.agentInherit`),value:F},...B.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Xe(){Z.value=[...Z.value,{key:``,value:``,isSecret:!1}]}function Ze(e){Z.value=Z.value.filter((t,n)=>n!==e)}function Qe(){let e={},t=!1;for(let n of Z.value){let r=n.key.trim();r&&(e[r]={value:{value:n.value,pre:``,post:``,isSecret:n.isSecret}},t=!0)}return t?e:void 0}async function $e(){if(v.id){G.value=!0;try{let e=await x.service.get.query({id:v.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:S(e)??H(`serviceForm.failedToLoad`),life:5e3}),I.back()}finally{G.value=!1}}}async function $(){if(U.value&&v.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 x.service.update.mutate({id:v.id,...e}))?.stoppedForAgentChange?(q.value=e.agentId,J.value=v.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:S(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:S(e),life:5e3})}finally{Y.value=!1}}}async function tt(){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}if(!X.projectId){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.projectRequired`),life:3e3});return}K.value=!0;try{let e=R.getByRef({id:X.projectId,orgId:V.activeOrgId})??R.getById(X.projectId),t=await z.create({name:X.name.trim(),...X.agentId&&X.agentId!==F?{agentId:X.agentId}:{},projectId:X.projectId,orgId:e?.orgId??null});if(!t)throw Error(z.error??`Failed to create service`);await R.addService(e??{id:X.projectId},t.id),L.add({severity:`success`,summary:H(`serviceForm.serviceCreated`),detail:H(`serviceForm.configureAfterCreate`),life:3e3}),I.push({name:`service-detail`,params:{id:t.id,tab:`config`}})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:S(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}return ee(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,n)=>(l(),a(`div`,he,[i(`div`,ge,[r(e(_),{icon:`ti ti-arrow-left`,severity:`secondary`,variant:`text`,rounded:``,onClick:n[0]||=t=>e(I).back()}),i(`h1`,null,d(U.value?e(H)(`serviceForm.editTitle`):e(H)(`serviceForm.createTitle`)),1)]),J.value?(l(),a(`div`,_e,[i(`span`,null,d(e(H)(`serviceForm.agentChangedServiceStopped`)),1),r(e(_),{label:e(H)(`serviceForm.restartNow`),icon:`ti ti-player-play`,severity:`warn`,size:`small`,loading:Y.value,onClick:et},null,8,[`label`,`loading`]),r(e(_),{icon:`ti ti-x`,severity:`secondary`,variant:`text`,rounded:``,size:`small`,onClick:n[1]||=e=>{J.value=null,q.value=null}})])):f(``,!0),G.value?(l(),a(`div`,ve,[r(e(se))])):(l(),a(`form`,{key:2,class:`service-form`,onSubmit:m(tt,[`prevent`])},[U.value?(l(),a(u,{key:1},[i(`div`,M,[i(`div`,N,[i(`div`,xe,[i(`label`,Se,d(e(H)(`serviceForm.nameLabelShort`)),1),r(e(h),{id:`svc-name-edit`,modelValue:X.name,"onUpdate:modelValue":n[6]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Ce,[i(`label`,we,d(e(H)(`serviceForm.runnerLabel`)),1),r(e(g),{id:`svc-runner`,modelValue:X.runner,"onUpdate:modelValue":n[7]||=e=>X.runner=e,options:Je,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),i(`div`,Te,[i(`label`,Ee,d(e(H)(`serviceForm.agentLabel`)),1),r(e(g),{id:`svc-agent-edit`,modelValue:X.agentId,"onUpdate:modelValue":n[8]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),i(`small`,De,d(e(H)(`serviceForm.agentHintEdit`)),1)]),i(`div`,Oe,[i(`div`,ke,[i(`label`,Ae,d(e(H)(`serviceForm.cwdLabel`)),1),r(e(h),{id:`svc-cwd`,modelValue:X.cwd,"onUpdate:modelValue":n[9]||=e=>X.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,je,[i(`label`,Me,d(e(H)(`serviceForm.portsLabel`)),1),r(e(le),{inputId:`svc-ports`,modelValue:X.ports,"onUpdate:modelValue":n[10]||=e=>X.ports=e,multiple:``,typeahead:!1,placeholder:e(H)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),i(`div`,Ne,[r(e(ue),{modelValue:X.autoRestart,"onUpdate:modelValue":n[11]||=e=>X.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),i(`label`,Pe,d(e(H)(`serviceForm.autoRestart`)),1)])]),r(e(b)),i(`div`,P,[i(`div`,Fe,[i(`h3`,null,d(e(H)(`serviceForm.envVars`)),1),r(e(_),{label:e(H)(`serviceForm.addEnvVar`),icon:`ti ti-plus`,severity:`secondary`,size:`small`,onClick:Xe},null,8,[`label`])]),Z.value.length===0?(l(),a(`div`,Ie,[i(`small`,null,d(e(H)(`serviceForm.noEnvVars`)),1)])):f(``,!0),(l(!0),a(u,null,o(Z.value,(t,o)=>(l(),a(`div`,{key:o,class:`env-row`},[r(e(h),{modelValue:t.key,"onUpdate:modelValue":e=>t.key=e,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),n[17]||=i(`span`,{class:`env-eq`},`=`,-1),r(e(h),{modelValue:t.value,"onUpdate:modelValue":e=>t.value=e,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),r(e(_),{icon:`ti ti-trash`,severity:`danger`,variant:`text`,rounded:``,size:`small`,onClick:()=>{Ze(o),$()}},null,8,[`onClick`])]))),128))]),r(e(b)),r(e(oe),{legend:e(H)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!X.healthCheck.enabled,onToggle:n[16]||=e=>{X.healthCheck.enabled=!e.value,$()}},{default:te(()=>[i(`div`,Le,[i(`label`,Re,d(e(H)(`serviceForm.healthCheckPath`)),1),r(e(h),{id:`hc-path`,modelValue:X.healthCheck.path,"onUpdate:modelValue":n[12]||=e=>X.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,ze,[i(`div`,Be,[i(`label`,Ve,d(e(H)(`serviceForm.interval`)),1),r(e(y),{id:`hc-interval`,modelValue:X.healthCheck.interval,"onUpdate:modelValue":n[13]||=e=>X.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,He,[i(`label`,Ue,d(e(H)(`serviceForm.timeout`)),1),r(e(y),{id:`hc-timeout`,modelValue:X.healthCheck.timeout,"onUpdate:modelValue":n[14]||=e=>X.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,We,[i(`label`,Ge,d(e(H)(`serviceForm.retries`)),1),r(e(y),{id:`hc-retries`,modelValue:X.healthCheck.retries,"onUpdate:modelValue":n[15]||=e=>X.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),r(e(b))],64)):(l(),a(u,{key:0},[i(`div`,ye,[i(`div`,be,[i(`label`,C,d(e(H)(`serviceForm.projectLabel`)),1),r(e(g),{id:`svc-project`,modelValue:X.projectId,"onUpdate:modelValue":n[2]||=e=>X.projectId=e,options:Ye.value,optionLabel:`label`,optionValue:`value`,placeholder:e(H)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,w,d(e(H)(`serviceForm.projectHint`)),1)]),i(`div`,T,[i(`label`,E,d(e(H)(`serviceForm.agentLabel`)),1),r(e(g),{id:`svc-agent`,modelValue:X.agentId,"onUpdate:modelValue":n[3]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,placeholder:e(H)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,D,d(e(H)(`serviceForm.agentHint`)),1)]),i(`div`,O,[i(`label`,k,d(e(H)(`serviceForm.nameLabel`)),1),r(e(h),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":n[4]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),i(`small`,A,d(e(H)(`serviceForm.nameConfigHint`)),1)])]),r(e(b)),i(`div`,j,[r(e(_),{label:e(H)(`serviceForm.cancel`),severity:`secondary`,variant:`text`,onClick:n[5]||=t=>e(I).back()},null,8,[`label`]),r(e(_),{label:e(H)(`serviceForm.create`),icon:`ti ti-check`,loading:K.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-d66dd220`]]);export{I as default};
|
|
1
|
+
import{B as e,C as t,x as n}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as r,_ as i,b as a,bt as o,ct as ee,g as s,k as c,mt as l,o as u,qt as te,rn as d,y as f}from"./runtime-core.esm-bundler-DujKY9QV.js";import{C as p,w as m}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as ne}from"./vue-i18n-o7yraQpR.js";import{n as re}from"./project-launch.store-AB257LRF.js";import{g as ie,h as ae}from"./useApi-s_02lHjl-DZYO2tHU.js";import{F as oe,H as se,J as h,P as ce,S as g,dt as _,ft as v,i as le,k as ue,l as y,z as b}from"./src-DOcCcTQv.js";import{r as x}from"./trpc-CAKhySL_.js";import{n as de}from"./project.store-qBZ_R1td.js";import{n as S}from"./error-DpF7X5iu.js";import{t as fe}from"./service.store-BrKRjCtb.js";import{t as pe}from"./agent.store-yrwtq9oP.js";import{c as me}from"./index-Ci2pSJuu.js";var he={class:`service-form-page`},ge={class:`page-header`},_e={key:0,class:`restart-banner`},ve={key:1,class:`loading-container`},ye={class:`form-section`},be={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`},P={class:`form-section`},Fe={class:`section-header`},Ie={key:0,class:`empty-env`},Le={class:`form-group`},Re={for:`hc-path`},ze={class:`form-row`},Be={class:`form-group flex-1`},Ve={for:`hc-interval`},He={class:`form-group flex-1`},Ue={for:`hc-timeout`},We={class:`form-group flex-1`},Ge={for:`hc-retries`},F=`__inherit__`,I=v(c({__name:`ServiceFormPage`,props:{id:{}},setup(c){let v=c,I=ie(),Ke=ae(),L=ce(),R=de(),z=fe(),B=pe(),V=re(),qe=me(),{t:H}=ne(),U=s(()=>!!v.id),W=s(()=>Ke.query.projectId),G=t(!1),K=t(!1),q=t(null),J=t(null),Y=t(!1),X=n({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=s(()=>R.projects.map(e=>({label:e.name,value:e.id}))),Q=s(()=>[{label:H(`serviceForm.agentInherit`),value:F},...B.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Xe(){Z.value=[...Z.value,{key:``,value:``,isSecret:!1}]}function Ze(e){Z.value=Z.value.filter((t,n)=>n!==e)}function Qe(){let e={},t=!1;for(let n of Z.value){let r=n.key.trim();r&&(e[r]={value:{value:n.value,pre:``,post:``,isSecret:n.isSecret}},t=!0)}return t?e:void 0}async function $e(){if(v.id){G.value=!0;try{let e=await x.service.get.query({id:v.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:S(e)??H(`serviceForm.failedToLoad`),life:5e3}),I.back()}finally{G.value=!1}}}async function $(){if(U.value&&v.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 x.service.update.mutate({id:v.id,...e}))?.stoppedForAgentChange?(q.value=e.agentId,J.value=v.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:S(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:S(e),life:5e3})}finally{Y.value=!1}}}async function tt(){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}if(!X.projectId){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.projectRequired`),life:3e3});return}K.value=!0;try{let e=R.getByRef({id:X.projectId,orgId:V.activeOrgId})??R.getById(X.projectId),t=await z.create({name:X.name.trim(),...X.agentId&&X.agentId!==F?{agentId:X.agentId}:{},projectId:X.projectId,orgId:e?.orgId??null});if(!t)throw Error(z.error??`Failed to create service`);await R.addService(e??{id:X.projectId},t.id),L.add({severity:`success`,summary:H(`serviceForm.serviceCreated`),detail:H(`serviceForm.configureAfterCreate`),life:3e3}),I.push({name:`service-detail`,params:{id:t.id,tab:`config`}})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:S(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}return ee(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,n)=>(l(),a(`div`,he,[i(`div`,ge,[r(e(_),{icon:`ti ti-arrow-left`,severity:`secondary`,variant:`text`,rounded:``,onClick:n[0]||=t=>e(I).back()}),i(`h1`,null,d(U.value?e(H)(`serviceForm.editTitle`):e(H)(`serviceForm.createTitle`)),1)]),J.value?(l(),a(`div`,_e,[i(`span`,null,d(e(H)(`serviceForm.agentChangedServiceStopped`)),1),r(e(_),{label:e(H)(`serviceForm.restartNow`),icon:`ti ti-player-play`,severity:`warn`,size:`small`,loading:Y.value,onClick:et},null,8,[`label`,`loading`]),r(e(_),{icon:`ti ti-x`,severity:`secondary`,variant:`text`,rounded:``,size:`small`,onClick:n[1]||=e=>{J.value=null,q.value=null}})])):f(``,!0),G.value?(l(),a(`div`,ve,[r(e(se))])):(l(),a(`form`,{key:2,class:`service-form`,onSubmit:m(tt,[`prevent`])},[U.value?(l(),a(u,{key:1},[i(`div`,M,[i(`div`,N,[i(`div`,xe,[i(`label`,Se,d(e(H)(`serviceForm.nameLabelShort`)),1),r(e(h),{id:`svc-name-edit`,modelValue:X.name,"onUpdate:modelValue":n[6]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Ce,[i(`label`,we,d(e(H)(`serviceForm.runnerLabel`)),1),r(e(g),{id:`svc-runner`,modelValue:X.runner,"onUpdate:modelValue":n[7]||=e=>X.runner=e,options:Je,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),i(`div`,Te,[i(`label`,Ee,d(e(H)(`serviceForm.agentLabel`)),1),r(e(g),{id:`svc-agent-edit`,modelValue:X.agentId,"onUpdate:modelValue":n[8]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),i(`small`,De,d(e(H)(`serviceForm.agentHintEdit`)),1)]),i(`div`,Oe,[i(`div`,ke,[i(`label`,Ae,d(e(H)(`serviceForm.cwdLabel`)),1),r(e(h),{id:`svc-cwd`,modelValue:X.cwd,"onUpdate:modelValue":n[9]||=e=>X.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,je,[i(`label`,Me,d(e(H)(`serviceForm.portsLabel`)),1),r(e(le),{inputId:`svc-ports`,modelValue:X.ports,"onUpdate:modelValue":n[10]||=e=>X.ports=e,multiple:``,typeahead:!1,placeholder:e(H)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),i(`div`,Ne,[r(e(ue),{modelValue:X.autoRestart,"onUpdate:modelValue":n[11]||=e=>X.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),i(`label`,Pe,d(e(H)(`serviceForm.autoRestart`)),1)])]),r(e(b)),i(`div`,P,[i(`div`,Fe,[i(`h3`,null,d(e(H)(`serviceForm.envVars`)),1),r(e(_),{label:e(H)(`serviceForm.addEnvVar`),icon:`ti ti-plus`,severity:`secondary`,size:`small`,onClick:Xe},null,8,[`label`])]),Z.value.length===0?(l(),a(`div`,Ie,[i(`small`,null,d(e(H)(`serviceForm.noEnvVars`)),1)])):f(``,!0),(l(!0),a(u,null,o(Z.value,(t,o)=>(l(),a(`div`,{key:o,class:`env-row`},[r(e(h),{modelValue:t.key,"onUpdate:modelValue":e=>t.key=e,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),n[17]||=i(`span`,{class:`env-eq`},`=`,-1),r(e(h),{modelValue:t.value,"onUpdate:modelValue":e=>t.value=e,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),r(e(_),{icon:`ti ti-trash`,severity:`danger`,variant:`text`,rounded:``,size:`small`,onClick:()=>{Ze(o),$()}},null,8,[`onClick`])]))),128))]),r(e(b)),r(e(oe),{legend:e(H)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!X.healthCheck.enabled,onToggle:n[16]||=e=>{X.healthCheck.enabled=!e.value,$()}},{default:te(()=>[i(`div`,Le,[i(`label`,Re,d(e(H)(`serviceForm.healthCheckPath`)),1),r(e(h),{id:`hc-path`,modelValue:X.healthCheck.path,"onUpdate:modelValue":n[12]||=e=>X.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,ze,[i(`div`,Be,[i(`label`,Ve,d(e(H)(`serviceForm.interval`)),1),r(e(y),{id:`hc-interval`,modelValue:X.healthCheck.interval,"onUpdate:modelValue":n[13]||=e=>X.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,He,[i(`label`,Ue,d(e(H)(`serviceForm.timeout`)),1),r(e(y),{id:`hc-timeout`,modelValue:X.healthCheck.timeout,"onUpdate:modelValue":n[14]||=e=>X.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,We,[i(`label`,Ge,d(e(H)(`serviceForm.retries`)),1),r(e(y),{id:`hc-retries`,modelValue:X.healthCheck.retries,"onUpdate:modelValue":n[15]||=e=>X.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),r(e(b))],64)):(l(),a(u,{key:0},[i(`div`,ye,[i(`div`,be,[i(`label`,C,d(e(H)(`serviceForm.projectLabel`)),1),r(e(g),{id:`svc-project`,modelValue:X.projectId,"onUpdate:modelValue":n[2]||=e=>X.projectId=e,options:Ye.value,optionLabel:`label`,optionValue:`value`,placeholder:e(H)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,w,d(e(H)(`serviceForm.projectHint`)),1)]),i(`div`,T,[i(`label`,E,d(e(H)(`serviceForm.agentLabel`)),1),r(e(g),{id:`svc-agent`,modelValue:X.agentId,"onUpdate:modelValue":n[3]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,placeholder:e(H)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,D,d(e(H)(`serviceForm.agentHint`)),1)]),i(`div`,O,[i(`label`,k,d(e(H)(`serviceForm.nameLabel`)),1),r(e(h),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":n[4]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),i(`small`,A,d(e(H)(`serviceForm.nameConfigHint`)),1)])]),r(e(b)),i(`div`,j,[r(e(_),{label:e(H)(`serviceForm.cancel`),severity:`secondary`,variant:`text`,onClick:n[5]||=t=>e(I).back()},null,8,[`label`]),r(e(_),{label:e(H)(`serviceForm.create`),icon:`ti ti-check`,loading:K.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-d66dd220`]]);export{I as default};
|