@runeya/runeya 2.0.142 → 2.0.143
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/package.json +1 -1
- package/web/assets/{AgentScalarChatInterface.vue-uNy1P-l4.js → AgentScalarChatInterface.vue-B-SjOsdj.js} +1 -1
- package/web/assets/{AgentTerminalPage-CFnALyb1.js → AgentTerminalPage-JzC8DUgu.js} +1 -1
- package/web/assets/{AiChatModals-B6svb69W.js → AiChatModals-D1928AxG.js} +1 -1
- package/web/assets/AppLayout-8sBPr3od.css +1 -0
- package/web/assets/AppLayout-CVQIBYqg.js +1 -0
- package/web/assets/{AuditPage-BsSpX2TJ.js → AuditPage-BZIJ3_Kr.js} +1 -1
- package/web/assets/{CloudAccountPage-DabrwDsa.js → CloudAccountPage-DBv470sT.js} +1 -1
- package/web/assets/CloudMessagingPage-Cn3JhJsY.css +1 -0
- package/web/assets/CloudMessagingPage-qCI8-UDL.js +2 -0
- package/web/assets/{DashboardPage-DMByzpgW.js → DashboardPage-D0UZM0mr.js} +1 -1
- package/web/assets/{DirectoryPickerDialog-CDyk4Z_Q.js → DirectoryPickerDialog-B5DvDfQP.js} +1 -1
- package/web/assets/{EditorIcon-BGHxAlSR.js → EditorIcon-CypGLV6w.js} +1 -1
- package/web/assets/{EnvironmentForm-BlGWpU2_.js → EnvironmentForm-Bw8Djnqm.js} +1 -1
- package/web/assets/EnvironmentForm-CkKVSiT7.css +1 -0
- package/web/assets/EnvironmentFormPage-B59uiYtp.js +1 -0
- package/web/assets/EnvironmentFormPage-C1gS0BI_.css +1 -0
- package/web/assets/EnvironmentListPage-BKhq_xXN.css +1 -0
- package/web/assets/EnvironmentListPage-W9zLDZAg.js +1 -0
- package/web/assets/{FlagChip-CHio0TB3.js → FlagChip-R_T5qYpL.js} +1 -1
- package/web/assets/{KanbanBoardPage-C52zM-Zw.js → KanbanBoardPage-DwPqoJDJ.js} +3 -3
- package/web/assets/{KanbanListPage-BmNdd1aP.js → KanbanListPage-Bn9k8Rpc.js} +1 -1
- package/web/assets/{LaunchProjectPage-B5sXxaet.js → LaunchProjectPage-Dc7v1UjQ.js} +1 -1
- package/web/assets/{LaunchServicesPage-C1u6lV4l.js → LaunchServicesPage-CXUS9O3y.js} +1 -1
- package/web/assets/{LaunchShell-CeyVMzL2.js → LaunchShell-LonTJpb3.js} +1 -1
- package/web/assets/LogViewer-DkuqWYkQ.js +3 -0
- package/web/assets/{LogViewer-DEsbVxax.css → LogViewer-OHdSLleq.css} +1 -1
- package/web/assets/{OrgKeyPrompt-NDfCQ-In.js → OrgKeyPrompt-By1VjlSN.js} +1 -1
- package/web/assets/{ProcessControls-D23gTUiv.js → ProcessControls-C0skzKGL.js} +1 -1
- package/web/assets/{ProcessDetailPage-vHpK0Eer.js → ProcessDetailPage-BvPX6z_X.js} +1 -1
- package/web/assets/{ProcessMetrics-DtneQJzo.js → ProcessMetrics-Crlfkelj.js} +1 -1
- package/web/assets/{ProjectCreateDialog-2PZX7tq2.js → ProjectCreateDialog-C4o9u15L.js} +1 -1
- package/web/assets/{ProjectLocationGate-fMAxwT0y.js → ProjectLocationGate-BJ1CSQt0.js} +1 -1
- package/web/assets/{ProjectPublishDialog-BylWoa0n.js → ProjectPublishDialog-Cp-zXdGm.js} +1 -1
- package/web/assets/{RandomJobTestPage-DUclmkBw.js → RandomJobTestPage-DF4a1U13.js} +1 -1
- package/web/assets/{ScenarioEditorPage-DbEsfuZa.js → ScenarioEditorPage-Dl-gEkJI.js} +1 -1
- package/web/assets/{SendToChatDialog-DGuOMMrS.js → SendToChatDialog-Dg2SHkVD.js} +1 -1
- package/web/assets/{ServiceControlsBar-D6M8hYFk.js → ServiceControlsBar-q2VHWaxK.js} +1 -1
- package/web/assets/ServiceDetailPage-CJ8WaFod.js +2 -0
- package/web/assets/ServiceDetailPage-COdaCZ6r.css +1 -0
- package/web/assets/{ServiceFormPage-BgHSW1XX.js → ServiceFormPage-tT_n7WUy.js} +1 -1
- package/web/assets/{SettingsPage-CPFBr7QE.js → SettingsPage-CWakkv0V.js} +4 -4
- package/web/assets/{UnlockPage-B4VEN9LN.js → UnlockPage-BKAdMJkb.js} +1 -1
- package/web/assets/{VaultMigrationPage-9qDGbF9X.js → VaultMigrationPage-D9KUTTss.js} +1 -1
- package/web/assets/{VersionBadge-CqHdCnuJ.js → VersionBadge-moKP5bAv.js} +1 -1
- package/web/assets/{WikiPage-Pjosr1Vn.js → WikiPage-hLUndDxo.js} +1 -1
- package/web/assets/{WikiView-Bcxq2mQW.js → WikiView-rrjXRR72.js} +1 -1
- package/web/assets/{add-scalar-classes-BnJYThbS.js → add-scalar-classes-CBfRr8B2.js} +1 -1
- package/web/assets/{agent.store-DTyu_McS.js → agent.store-B3dVemmT.js} +1 -1
- package/web/assets/{auth-D_pCPFq7.js → auth-BCrvnP1U.js} +2 -2
- package/web/assets/{cloud-chat.store-CMklOB48.js → cloud-chat.store-Wg1poFem.js} +1 -1
- package/web/assets/{cloud-client-CX0pW7Kt.js → cloud-client-DQlUaoAw.js} +2 -2
- package/web/assets/{cloud-session-ja0-uvVS.js → cloud-session-DRUqcSGP.js} +2 -2
- package/web/assets/{editor.store-BAjGG8Ji.js → editor.store-SoH48ux2.js} +1 -1
- package/web/assets/i18n-BszFg0ko.js +1 -0
- package/web/assets/{index-eb4FRryj.css → index-C_JV7fYy.css} +1 -1
- package/web/assets/{index-DTrxphh3.js → index-D_x2s8Ut.js} +3 -3
- package/web/assets/{modal-Cvv2YgUo.js → modal-CpsVK_dA.js} +1 -1
- package/web/assets/{project-launch.store-C7xfTlMc.js → project-launch.store-C3fZeRGb.js} +1 -1
- package/web/assets/{project.store-ZpH_PaSy.js → project.store-BEk4fciH.js} +1 -1
- package/web/assets/{scenario.store-F78cizck.js → scenario.store-D-JrRiVO.js} +1 -1
- package/web/assets/{service.store-Dti7eDhR.js → service.store-B5uYZtyM.js} +1 -1
- package/web/assets/{settings-scope-CUuHrUpc.js → settings-scope-Blnwj3rR.js} +1 -1
- package/web/assets/{settings.store-De1-3IG8.js → settings.store-Bo3FYs1o.js} +1 -1
- package/web/assets/{src-Ds4DOFJs.js → src--GO-VSJ0.js} +2 -2
- package/web/assets/{src-DXlxwMXe.js → src-CAwAaB5j.js} +1 -1
- package/web/assets/src-CcvmgMAA.css +1 -0
- package/web/assets/{src-C0KK-qsF.js → src-DValZNJU.js} +2 -2
- package/web/assets/{src-DUVb4kUw.css → src-DuBXN1hu.css} +1 -1
- package/web/assets/{trpc-B5Yw_z6v.js → trpc-DbsE5GvQ.js} +3 -3
- package/web/assets/{useCloudOrg-QzX8ryg1.js → useCloudOrg-DygUBG1a.js} +1 -1
- package/web/assets/{useEnvVarAutocomplete-BdGgINv9.js → useEnvVarAutocomplete-DmYNOXgd.js} +1 -1
- package/web/assets/{useProjectCatalog-Cr90BND4.js → useProjectCatalog-D2mHB7dg.js} +1 -1
- package/web/assets/{useProjectCloudOrg-2wwByg2k.js → useProjectCloudOrg-avTCVold.js} +1 -1
- package/web/assets/{useServiceUrlHost-CxbARDeg.js → useServiceUrlHost-Q3fzGox3.js} +1 -1
- package/web/assets/vue-draggable-plus-BHsveB8w.css +1 -0
- package/web/assets/vue-draggable-plus-WgrMXXmE.js +1 -0
- package/web/index.html +20 -20
- package/web/assets/AppLayout-BKlJtfuQ.js +0 -1
- package/web/assets/AppLayout-C4sv2O-I.css +0 -1
- package/web/assets/CloudMessagingPage-BcEvuswL.css +0 -1
- package/web/assets/CloudMessagingPage-BtOJO5FB.js +0 -2
- package/web/assets/EnvironmentForm-CMwzl9kA.css +0 -1
- package/web/assets/EnvironmentFormPage-B-dpyO0_.js +0 -1
- package/web/assets/EnvironmentFormPage-CYv6PG5q.css +0 -1
- package/web/assets/EnvironmentListPage-BlaOiTVh.js +0 -1
- package/web/assets/EnvironmentListPage-fRWTY84U.css +0 -1
- package/web/assets/LogViewer-CAvRwSZu.js +0 -3
- package/web/assets/ServiceDetailPage-DOycCWLP.css +0 -1
- package/web/assets/ServiceDetailPage-G-A9ryZD.js +0 -2
- package/web/assets/i18n-CXvcscXP.js +0 -1
- package/web/assets/src-CR9xphzo.css +0 -1
- package/web/assets/vue-draggable-plus-2Opxvs3C.css +0 -1
- package/web/assets/vue-draggable-plus-pTwVkhnN.js +0 -1
|
@@ -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{F as p,I as m}from"./floating-ui.dom-DWhsZyqT.js";import{F as ne,H as re,J as h,P as ie,S as g,dt as _,ft as v,i as ae,k as oe,l as y,mt as se,z as b}from"./src-Ds4DOFJs.js";import{n as ce}from"./project-launch.store-C7xfTlMc.js";import{g as le,h as ue}from"./useApi-s_02lHjl-DZYO2tHU.js";import{r as x}from"./trpc-B5Yw_z6v.js";import{n as de}from"./project.store-ZpH_PaSy.js";import{n as S}from"./error-DpF7X5iu.js";import{t as fe}from"./service.store-Dti7eDhR.js";import{t as pe}from"./agent.store-DTyu_McS.js";import{c as me}from"./index-DTrxphh3.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`},Fe={class:`form-section`},Ie={class:`section-header`},Le={key:0,class:`empty-env`},Re={class:`form-group`},ze={for:`hc-path`},Be={class:`form-row`},Ve={class:`form-group flex-1`},He={for:`hc-interval`},Ue={class:`form-group flex-1`},We={for:`hc-timeout`},Ge={class:`form-group flex-1`},Ke={for:`hc-retries`},P=`__inherit__`,F=v(c({__name:`ServiceFormPage`,props:{id:{}},setup(c){let v=c,F=le(),qe=ue(),I=ie(),L=de(),R=fe(),z=pe(),B=ce(),Je=me(),{t:V}=se(),H=s(()=>!!v.id),U=s(()=>qe.query.projectId),W=t(!1),G=t(!1),K=t(null),q=t(null),J=t(!1),Y=n({projectId:``,agentId:P,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),X=t([]),Ye=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Xe=s(()=>L.projects.map(e=>({label:e.name,value:e.id}))),Z=s(()=>[{label:V(`serviceForm.agentInherit`),value:P},...z.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Ze(){X.value=[...X.value,{key:``,value:``,isSecret:!1}]}function Qe(e){X.value=X.value.filter((t,n)=>n!==e)}function Q(){let e={},t=!1;for(let n of X.value){let r=n.key.trim();r&&(e[r]={value:{value:n.value,pre:``,post:``,isSecret:n.isSecret}},t=!0)}return t?e:void 0}async function $e(){if(v.id){W.value=!0;try{let e=await x.service.get.query({id:v.id});Y.agentId=e.agentId??P,Y.name=e.name,Y.cwd=e.cwd??``,Y.ports=(e.ports??[]).map(String),Y.runner=e.runner,Y.autoRestart=e.autoRestart,e.healthCheck&&(Y.healthCheck.enabled=!0,Y.healthCheck.path=e.healthCheck.path,Y.healthCheck.interval=e.healthCheck.interval,Y.healthCheck.timeout=e.healthCheck.timeout,Y.healthCheck.retries=e.healthCheck.retries),e.variables&&typeof e.variables==`object`&&Object.keys(e.variables).length>0&&(X.value=Object.entries(e.variables).map(([e,t])=>{let n=t;return{key:e,value:n.value.value??``,isSecret:n.value.isSecret??!1}}))}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:S(e)??V(`serviceForm.failedToLoad`),life:5e3}),F.back()}finally{W.value=!1}}}async function $(){if(H.value&&v.id&&!G.value&&!W.value){if(!Y.name.trim()){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.nameRequired`),life:3e3});return}G.value=!0;try{let e={agentId:Y.agentId===P?null:Y.agentId||null,name:Y.name.trim(),cwd:Y.cwd.trim()||void 0,ports:Y.ports.map(Number).filter(e=>e>0&&e<=65535),runner:Y.runner,autoRestart:Y.autoRestart,variables:Q(),healthCheck:Y.healthCheck.enabled?{path:Y.healthCheck.path,interval:Y.healthCheck.interval,timeout:Y.healthCheck.timeout,retries:Y.healthCheck.retries}:void 0};(await x.service.update.mutate({id:v.id,...e}))?.stoppedForAgentChange?(K.value=e.agentId,q.value=v.id,I.add({severity:`warn`,summary:V(`serviceForm.saved`),detail:V(`serviceForm.agentChangedServiceStopped`),life:4e3})):I.add({severity:`success`,summary:V(`serviceForm.saved`),life:1500})}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:S(e)??V(`serviceForm.failedToSave`),life:5e3})}finally{G.value=!1}}}async function et(){if(K.value&&q.value){J.value=!0;try{await Je.start(K.value,q.value),K.value=null,q.value=null,I.add({severity:`success`,summary:V(`serviceForm.restarted`),life:2e3})}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:S(e),life:5e3})}finally{J.value=!1}}}async function tt(){if(!Y.name.trim()){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.nameRequired`),life:3e3});return}if(!Y.projectId){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.projectRequired`),life:3e3});return}G.value=!0;try{let e=L.getByRef({id:Y.projectId,orgId:B.activeOrgId})??L.getById(Y.projectId),t=await R.create({name:Y.name.trim(),...Y.agentId&&Y.agentId!==P?{agentId:Y.agentId}:{},projectId:Y.projectId,orgId:e?.orgId??null});if(!t)throw Error(R.error??`Failed to create service`);await L.addService(e??{id:Y.projectId},t.id),I.add({severity:`success`,summary:V(`serviceForm.serviceCreated`),detail:V(`serviceForm.configureAfterCreate`),life:3e3}),F.push({name:`service-detail`,params:{id:t.id,tab:`config`}})}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:S(e)??V(`serviceForm.failedToSave`),life:5e3})}finally{G.value=!1}}return ee(async()=>{await Promise.all([L.fetchAll(),z.fetchAll()]),U.value?Y.projectId=U.value:!Y.projectId&&B.activeProjectId&&(Y.projectId=B.activeProjectId),H.value&&await $e()}),(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(F).back()}),i(`h1`,null,d(H.value?e(V)(`serviceForm.editTitle`):e(V)(`serviceForm.createTitle`)),1)]),q.value?(l(),a(`div`,_e,[i(`span`,null,d(e(V)(`serviceForm.agentChangedServiceStopped`)),1),r(e(_),{label:e(V)(`serviceForm.restartNow`),icon:`ti ti-player-play`,severity:`warn`,size:`small`,loading:J.value,onClick:et},null,8,[`label`,`loading`]),r(e(_),{icon:`ti ti-x`,severity:`secondary`,variant:`text`,rounded:``,size:`small`,onClick:n[1]||=e=>{q.value=null,K.value=null}})])):f(``,!0),W.value?(l(),a(`div`,ve,[r(e(re))])):(l(),a(`form`,{key:2,class:`service-form`,onSubmit:m(tt,[`prevent`])},[H.value?(l(),a(u,{key:1},[i(`div`,M,[i(`div`,N,[i(`div`,xe,[i(`label`,Se,d(e(V)(`serviceForm.nameLabelShort`)),1),r(e(h),{id:`svc-name-edit`,modelValue:Y.name,"onUpdate:modelValue":n[6]||=e=>Y.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(V)(`serviceForm.runnerLabel`)),1),r(e(g),{id:`svc-runner`,modelValue:Y.runner,"onUpdate:modelValue":n[7]||=e=>Y.runner=e,options:Ye,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),i(`div`,Te,[i(`label`,Ee,d(e(V)(`serviceForm.agentLabel`)),1),r(e(g),{id:`svc-agent-edit`,modelValue:Y.agentId,"onUpdate:modelValue":n[8]||=e=>Y.agentId=e,options:Z.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),i(`small`,De,d(e(V)(`serviceForm.agentHintEdit`)),1)]),i(`div`,Oe,[i(`div`,ke,[i(`label`,Ae,d(e(V)(`serviceForm.cwdLabel`)),1),r(e(h),{id:`svc-cwd`,modelValue:Y.cwd,"onUpdate:modelValue":n[9]||=e=>Y.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,je,[i(`label`,Me,d(e(V)(`serviceForm.portsLabel`)),1),r(e(ae),{inputId:`svc-ports`,modelValue:Y.ports,"onUpdate:modelValue":n[10]||=e=>Y.ports=e,multiple:``,typeahead:!1,placeholder:e(V)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),i(`div`,Ne,[r(e(oe),{modelValue:Y.autoRestart,"onUpdate:modelValue":n[11]||=e=>Y.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),i(`label`,Pe,d(e(V)(`serviceForm.autoRestart`)),1)])]),r(e(b)),i(`div`,Fe,[i(`div`,Ie,[i(`h3`,null,d(e(V)(`serviceForm.envVars`)),1),r(e(_),{label:e(V)(`serviceForm.addEnvVar`),icon:`ti ti-plus`,severity:`secondary`,size:`small`,onClick:Ze},null,8,[`label`])]),X.value.length===0?(l(),a(`div`,Le,[i(`small`,null,d(e(V)(`serviceForm.noEnvVars`)),1)])):f(``,!0),(l(!0),a(u,null,o(X.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:()=>{Qe(o),$()}},null,8,[`onClick`])]))),128))]),r(e(b)),r(e(ne),{legend:e(V)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!Y.healthCheck.enabled,onToggle:n[16]||=e=>{Y.healthCheck.enabled=!e.value,$()}},{default:te(()=>[i(`div`,Re,[i(`label`,ze,d(e(V)(`serviceForm.healthCheckPath`)),1),r(e(h),{id:`hc-path`,modelValue:Y.healthCheck.path,"onUpdate:modelValue":n[12]||=e=>Y.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Be,[i(`div`,Ve,[i(`label`,He,d(e(V)(`serviceForm.interval`)),1),r(e(y),{id:`hc-interval`,modelValue:Y.healthCheck.interval,"onUpdate:modelValue":n[13]||=e=>Y.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Ue,[i(`label`,We,d(e(V)(`serviceForm.timeout`)),1),r(e(y),{id:`hc-timeout`,modelValue:Y.healthCheck.timeout,"onUpdate:modelValue":n[14]||=e=>Y.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Ge,[i(`label`,Ke,d(e(V)(`serviceForm.retries`)),1),r(e(y),{id:`hc-retries`,modelValue:Y.healthCheck.retries,"onUpdate:modelValue":n[15]||=e=>Y.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(V)(`serviceForm.projectLabel`)),1),r(e(g),{id:`svc-project`,modelValue:Y.projectId,"onUpdate:modelValue":n[2]||=e=>Y.projectId=e,options:Xe.value,optionLabel:`label`,optionValue:`value`,placeholder:e(V)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,w,d(e(V)(`serviceForm.projectHint`)),1)]),i(`div`,T,[i(`label`,E,d(e(V)(`serviceForm.agentLabel`)),1),r(e(g),{id:`svc-agent`,modelValue:Y.agentId,"onUpdate:modelValue":n[3]||=e=>Y.agentId=e,options:Z.value,optionLabel:`label`,optionValue:`value`,placeholder:e(V)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,D,d(e(V)(`serviceForm.agentHint`)),1)]),i(`div`,O,[i(`label`,k,d(e(V)(`serviceForm.nameLabel`)),1),r(e(h),{id:`svc-name`,modelValue:Y.name,"onUpdate:modelValue":n[4]||=e=>Y.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),i(`small`,A,d(e(V)(`serviceForm.nameConfigHint`)),1)])]),r(e(b)),i(`div`,j,[r(e(_),{label:e(V)(`serviceForm.cancel`),severity:`secondary`,variant:`text`,onClick:n[5]||=t=>e(F).back()},null,8,[`label`]),r(e(_),{label:e(V)(`serviceForm.create`),icon:`ti ti-check`,loading:G.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-d66dd220`]]);export{F 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{F as p,I as m}from"./floating-ui.dom-DWhsZyqT.js";import{F as ne,H as re,J as h,P as ie,S as g,dt as _,ft as v,i as ae,k as oe,l as y,mt as se,z as b}from"./src--GO-VSJ0.js";import{n as ce}from"./project-launch.store-C3fZeRGb.js";import{g as le,h as ue}from"./useApi-s_02lHjl-DZYO2tHU.js";import{r as x}from"./trpc-DbsE5GvQ.js";import{n as de}from"./project.store-BEk4fciH.js";import{n as S}from"./error-DpF7X5iu.js";import{t as fe}from"./service.store-B5uYZtyM.js";import{t as pe}from"./agent.store-B3dVemmT.js";import{c as me}from"./index-D_x2s8Ut.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`},Fe={class:`form-section`},Ie={class:`section-header`},Le={key:0,class:`empty-env`},Re={class:`form-group`},ze={for:`hc-path`},Be={class:`form-row`},Ve={class:`form-group flex-1`},He={for:`hc-interval`},Ue={class:`form-group flex-1`},We={for:`hc-timeout`},Ge={class:`form-group flex-1`},Ke={for:`hc-retries`},P=`__inherit__`,F=v(c({__name:`ServiceFormPage`,props:{id:{}},setup(c){let v=c,F=le(),qe=ue(),I=ie(),L=de(),R=fe(),z=pe(),B=ce(),Je=me(),{t:V}=se(),H=s(()=>!!v.id),U=s(()=>qe.query.projectId),W=t(!1),G=t(!1),K=t(null),q=t(null),J=t(!1),Y=n({projectId:``,agentId:P,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),X=t([]),Ye=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Xe=s(()=>L.projects.map(e=>({label:e.name,value:e.id}))),Z=s(()=>[{label:V(`serviceForm.agentInherit`),value:P},...z.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Ze(){X.value=[...X.value,{key:``,value:``,isSecret:!1}]}function Qe(e){X.value=X.value.filter((t,n)=>n!==e)}function Q(){let e={},t=!1;for(let n of X.value){let r=n.key.trim();r&&(e[r]={value:{value:n.value,pre:``,post:``,isSecret:n.isSecret}},t=!0)}return t?e:void 0}async function $e(){if(v.id){W.value=!0;try{let e=await x.service.get.query({id:v.id});Y.agentId=e.agentId??P,Y.name=e.name,Y.cwd=e.cwd??``,Y.ports=(e.ports??[]).map(String),Y.runner=e.runner,Y.autoRestart=e.autoRestart,e.healthCheck&&(Y.healthCheck.enabled=!0,Y.healthCheck.path=e.healthCheck.path,Y.healthCheck.interval=e.healthCheck.interval,Y.healthCheck.timeout=e.healthCheck.timeout,Y.healthCheck.retries=e.healthCheck.retries),e.variables&&typeof e.variables==`object`&&Object.keys(e.variables).length>0&&(X.value=Object.entries(e.variables).map(([e,t])=>{let n=t;return{key:e,value:n.value.value??``,isSecret:n.value.isSecret??!1}}))}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:S(e)??V(`serviceForm.failedToLoad`),life:5e3}),F.back()}finally{W.value=!1}}}async function $(){if(H.value&&v.id&&!G.value&&!W.value){if(!Y.name.trim()){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.nameRequired`),life:3e3});return}G.value=!0;try{let e={agentId:Y.agentId===P?null:Y.agentId||null,name:Y.name.trim(),cwd:Y.cwd.trim()||void 0,ports:Y.ports.map(Number).filter(e=>e>0&&e<=65535),runner:Y.runner,autoRestart:Y.autoRestart,variables:Q(),healthCheck:Y.healthCheck.enabled?{path:Y.healthCheck.path,interval:Y.healthCheck.interval,timeout:Y.healthCheck.timeout,retries:Y.healthCheck.retries}:void 0};(await x.service.update.mutate({id:v.id,...e}))?.stoppedForAgentChange?(K.value=e.agentId,q.value=v.id,I.add({severity:`warn`,summary:V(`serviceForm.saved`),detail:V(`serviceForm.agentChangedServiceStopped`),life:4e3})):I.add({severity:`success`,summary:V(`serviceForm.saved`),life:1500})}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:S(e)??V(`serviceForm.failedToSave`),life:5e3})}finally{G.value=!1}}}async function et(){if(K.value&&q.value){J.value=!0;try{await Je.start(K.value,q.value),K.value=null,q.value=null,I.add({severity:`success`,summary:V(`serviceForm.restarted`),life:2e3})}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:S(e),life:5e3})}finally{J.value=!1}}}async function tt(){if(!Y.name.trim()){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.nameRequired`),life:3e3});return}if(!Y.projectId){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.projectRequired`),life:3e3});return}G.value=!0;try{let e=L.getByRef({id:Y.projectId,orgId:B.activeOrgId})??L.getById(Y.projectId),t=await R.create({name:Y.name.trim(),...Y.agentId&&Y.agentId!==P?{agentId:Y.agentId}:{},projectId:Y.projectId,orgId:e?.orgId??null});if(!t)throw Error(R.error??`Failed to create service`);await L.addService(e??{id:Y.projectId},t.id),I.add({severity:`success`,summary:V(`serviceForm.serviceCreated`),detail:V(`serviceForm.configureAfterCreate`),life:3e3}),F.push({name:`service-detail`,params:{id:t.id,tab:`config`}})}catch(e){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:S(e)??V(`serviceForm.failedToSave`),life:5e3})}finally{G.value=!1}}return ee(async()=>{await Promise.all([L.fetchAll(),z.fetchAll()]),U.value?Y.projectId=U.value:!Y.projectId&&B.activeProjectId&&(Y.projectId=B.activeProjectId),H.value&&await $e()}),(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(F).back()}),i(`h1`,null,d(H.value?e(V)(`serviceForm.editTitle`):e(V)(`serviceForm.createTitle`)),1)]),q.value?(l(),a(`div`,_e,[i(`span`,null,d(e(V)(`serviceForm.agentChangedServiceStopped`)),1),r(e(_),{label:e(V)(`serviceForm.restartNow`),icon:`ti ti-player-play`,severity:`warn`,size:`small`,loading:J.value,onClick:et},null,8,[`label`,`loading`]),r(e(_),{icon:`ti ti-x`,severity:`secondary`,variant:`text`,rounded:``,size:`small`,onClick:n[1]||=e=>{q.value=null,K.value=null}})])):f(``,!0),W.value?(l(),a(`div`,ve,[r(e(re))])):(l(),a(`form`,{key:2,class:`service-form`,onSubmit:m(tt,[`prevent`])},[H.value?(l(),a(u,{key:1},[i(`div`,M,[i(`div`,N,[i(`div`,xe,[i(`label`,Se,d(e(V)(`serviceForm.nameLabelShort`)),1),r(e(h),{id:`svc-name-edit`,modelValue:Y.name,"onUpdate:modelValue":n[6]||=e=>Y.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(V)(`serviceForm.runnerLabel`)),1),r(e(g),{id:`svc-runner`,modelValue:Y.runner,"onUpdate:modelValue":n[7]||=e=>Y.runner=e,options:Ye,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),i(`div`,Te,[i(`label`,Ee,d(e(V)(`serviceForm.agentLabel`)),1),r(e(g),{id:`svc-agent-edit`,modelValue:Y.agentId,"onUpdate:modelValue":n[8]||=e=>Y.agentId=e,options:Z.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),i(`small`,De,d(e(V)(`serviceForm.agentHintEdit`)),1)]),i(`div`,Oe,[i(`div`,ke,[i(`label`,Ae,d(e(V)(`serviceForm.cwdLabel`)),1),r(e(h),{id:`svc-cwd`,modelValue:Y.cwd,"onUpdate:modelValue":n[9]||=e=>Y.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,je,[i(`label`,Me,d(e(V)(`serviceForm.portsLabel`)),1),r(e(ae),{inputId:`svc-ports`,modelValue:Y.ports,"onUpdate:modelValue":n[10]||=e=>Y.ports=e,multiple:``,typeahead:!1,placeholder:e(V)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),i(`div`,Ne,[r(e(oe),{modelValue:Y.autoRestart,"onUpdate:modelValue":n[11]||=e=>Y.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),i(`label`,Pe,d(e(V)(`serviceForm.autoRestart`)),1)])]),r(e(b)),i(`div`,Fe,[i(`div`,Ie,[i(`h3`,null,d(e(V)(`serviceForm.envVars`)),1),r(e(_),{label:e(V)(`serviceForm.addEnvVar`),icon:`ti ti-plus`,severity:`secondary`,size:`small`,onClick:Ze},null,8,[`label`])]),X.value.length===0?(l(),a(`div`,Le,[i(`small`,null,d(e(V)(`serviceForm.noEnvVars`)),1)])):f(``,!0),(l(!0),a(u,null,o(X.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:()=>{Qe(o),$()}},null,8,[`onClick`])]))),128))]),r(e(b)),r(e(ne),{legend:e(V)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!Y.healthCheck.enabled,onToggle:n[16]||=e=>{Y.healthCheck.enabled=!e.value,$()}},{default:te(()=>[i(`div`,Re,[i(`label`,ze,d(e(V)(`serviceForm.healthCheckPath`)),1),r(e(h),{id:`hc-path`,modelValue:Y.healthCheck.path,"onUpdate:modelValue":n[12]||=e=>Y.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Be,[i(`div`,Ve,[i(`label`,He,d(e(V)(`serviceForm.interval`)),1),r(e(y),{id:`hc-interval`,modelValue:Y.healthCheck.interval,"onUpdate:modelValue":n[13]||=e=>Y.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Ue,[i(`label`,We,d(e(V)(`serviceForm.timeout`)),1),r(e(y),{id:`hc-timeout`,modelValue:Y.healthCheck.timeout,"onUpdate:modelValue":n[14]||=e=>Y.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:p(m($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Ge,[i(`label`,Ke,d(e(V)(`serviceForm.retries`)),1),r(e(y),{id:`hc-retries`,modelValue:Y.healthCheck.retries,"onUpdate:modelValue":n[15]||=e=>Y.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(V)(`serviceForm.projectLabel`)),1),r(e(g),{id:`svc-project`,modelValue:Y.projectId,"onUpdate:modelValue":n[2]||=e=>Y.projectId=e,options:Xe.value,optionLabel:`label`,optionValue:`value`,placeholder:e(V)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,w,d(e(V)(`serviceForm.projectHint`)),1)]),i(`div`,T,[i(`label`,E,d(e(V)(`serviceForm.agentLabel`)),1),r(e(g),{id:`svc-agent`,modelValue:Y.agentId,"onUpdate:modelValue":n[3]||=e=>Y.agentId=e,options:Z.value,optionLabel:`label`,optionValue:`value`,placeholder:e(V)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,D,d(e(V)(`serviceForm.agentHint`)),1)]),i(`div`,O,[i(`label`,k,d(e(V)(`serviceForm.nameLabel`)),1),r(e(h),{id:`svc-name`,modelValue:Y.name,"onUpdate:modelValue":n[4]||=e=>Y.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),i(`small`,A,d(e(V)(`serviceForm.nameConfigHint`)),1)])]),r(e(b)),i(`div`,j,[r(e(_),{label:e(V)(`serviceForm.cancel`),severity:`secondary`,variant:`text`,onClick:n[5]||=t=>e(F).back()},null,8,[`label`]),r(e(_),{label:e(V)(`serviceForm.create`),icon:`ti ti-check`,loading:G.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-d66dd220`]]);export{F as default};
|