@onescience/onecode-web 1.14.50-202607131742 → 1.14.50-202607141643
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/assets/{alert-01-oeiSyPMH.js → alert-01-ifG171DZ.js} +1 -1
- package/assets/{alert-02-eBKjHaqR.js → alert-02-CPGuYDTK.js} +1 -1
- package/assets/{alert-04-Oe4Uem1N.js → alert-04-Bv4VV6XQ.js} +1 -1
- package/assets/{alert-05-DGfPdxYv.js → alert-05-DKR-ftW4.js} +1 -1
- package/assets/alert-06-8onIwfhS.js +1 -0
- package/assets/alert-07-CHa4e8BE.js +1 -0
- package/assets/alert-08-VmS6IJy2.js +1 -0
- package/assets/alert-10-ClMNDcs4.js +1 -0
- package/assets/{bip-bop-03-D2MKVoaF.js → bip-bop-03-RKb06rSC.js} +1 -1
- package/assets/{bip-bop-04-D0gkNF14.js → bip-bop-04-D6uwes7G.js} +1 -1
- package/assets/{bip-bop-06-vhdZzPoR.js → bip-bop-06-BVz9Bi5K.js} +1 -1
- package/assets/{bip-bop-08-u4GK8OOE.js → bip-bop-08-DeMDapw5.js} +1 -1
- package/assets/bip-bop-09-SrC-6NSC.js +1 -0
- package/assets/{dialog-create-project-folder-9PdIdA-Q.js → dialog-create-project-folder-D5dm_4_U.js} +1 -1
- package/assets/{dialog-edit-project-SjCldTrj.js → dialog-edit-project-B3hI6PS6.js} +1 -1
- package/assets/{dialog-fork-CwUYHWnD.js → dialog-fork-CTbj2mcb.js} +1 -1
- package/assets/{dialog-manage-models-CfK5I-bR.js → dialog-manage-models-Br00F2rc.js} +1 -1
- package/assets/{dialog-select-directory-B89i1joh.js → dialog-select-directory-CdXrs1-Z.js} +1 -1
- package/assets/{dialog-select-file-BeGpSc9i.js → dialog-select-file-a1Doro2v.js} +1 -1
- package/assets/dialog-select-mcp-zqUiu0Di.js +2 -0
- package/assets/{dialog-select-model-BxI5fWck.js → dialog-select-model-P-NSpvtx.js} +2 -2
- package/assets/{dialog-select-provider-BlNyPNFt.js → dialog-select-provider-C2WP_qSR.js} +1 -1
- package/assets/dialog-select-server-B2K67ZX9.js +1 -0
- package/assets/dialog-select-ssh-gyUuoLUV.js +11 -0
- package/assets/{dialog-settings-BFifJrBQ.js → dialog-settings-CmzjDHHi.js} +1 -1
- package/assets/{ghostty-web-C4BImL5n.js → ghostty-web-ykkeAlNN.js} +1 -1
- package/assets/{index-Bo6xm6rJ.css → index-CH8f26El.css} +1 -1
- package/assets/index-kNXOvQqq.js +2509 -0
- package/assets/{list-B531cAvb.js → list-BA9qOgxN.js} +1 -1
- package/assets/{nope-02-0ibN1PIh.js → nope-02-BdLH4vuk.js} +1 -1
- package/assets/{nope-05-CzQkbN5B.js → nope-05-Dchib5uE.js} +1 -1
- package/assets/{nope-08-ejroUDQv.js → nope-08-B-9tsx-P.js} +1 -1
- package/assets/{nope-11-G8Fas95Y.js → nope-11-BAXx6Fca.js} +1 -1
- package/assets/nope-12-C_kAkAXr.js +1 -0
- package/assets/{prompt-helper-dialog-BDtziDDb.js → prompt-helper-dialog-zkCsAaVp.js} +1 -1
- package/assets/{server-row-BHjSJTFQ.js → server-row-BpWE7FLF.js} +1 -1
- package/assets/{staplebops-03-M5D_DfU7.js → staplebops-03-6vPspbLX.js} +1 -1
- package/assets/{staplebops-04-B3luU5NA.js → staplebops-04-DW9wZfQK.js} +1 -1
- package/assets/{staplebops-06-D5Pxy3RT.js → staplebops-06-C2qpPe9-.js} +1 -1
- package/assets/{staplebops-07-tmwjA0l2.js → staplebops-07-1IL18gNm.js} +1 -1
- package/assets/status-popover-body-C3u6gryZ.js +2 -0
- package/assets/{switch-DhYBlMUd.js → switch-BZxTXZe0.js} +1 -1
- package/assets/{tag-DYta9Lhu.js → tag-BXcVRnW9.js} +1 -1
- package/assets/{yup-01-BZKTgpTy.js → yup-01-BSqfOUdg.js} +1 -1
- package/assets/{yup-03-fVurUaKS.js → yup-03-DEhvcQDO.js} +1 -1
- package/assets/{yup-04-Bc300_4Q.js → yup-04-C3O11nFG.js} +1 -1
- package/assets/{yup-05-BPdFWMRB.js → yup-05-Cc1yv4Do.js} +1 -1
- package/assets/zh-COmBcFAM.js +4 -0
- package/assets/zht-wXnFrYQu.js +4 -0
- package/index.html +9 -9
- package/package.json +2 -2
- package/assets/alert-06-CQKteHeq.js +0 -1
- package/assets/alert-07-CGH05IX1.js +0 -1
- package/assets/alert-08-BtNPgDjD.js +0 -1
- package/assets/alert-10-D8_NZUnX.js +0 -1
- package/assets/bip-bop-09-C-nYMkd2.js +0 -1
- package/assets/dialog-select-mcp-DhjSDchI.js +0 -1
- package/assets/dialog-select-server-C5qMXnn8.js +0 -2
- package/assets/dialog-select-ssh-CIUUeM_0.js +0 -11
- package/assets/index-qZpXeaUL.js +0 -2518
- package/assets/nope-12-CXqRi6HA.js +0 -1
- package/assets/status-popover-body-BI1FEG0_.js +0 -2
- package/assets/zh-DE7N8DVy.js +0 -3
- package/assets/zht-dtibDyhO.js +0 -3
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202607131742/assets/alert-07-0r0kiLGz.aac";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202607131742/assets/alert-08-CZowNquU.aac";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202607131742/assets/alert-10-Ck5hR7zH.aac";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202607131742/assets/bip-bop-09-CxEgoAHQ.aac";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bd as L,be as P,f as D,bf as M,bg as K,h as g,z as O,bh as Q,n as l,i as r,E as h,p as x,D as j,t as o,d as q}from"./index-qZpXeaUL.js";import{L as E}from"./list-B531cAvb.js";import{S as z}from"./switch-DhYBlMUd.js";var B=o('<span class="text-11-regular text-text-weaker">'),F=o('<span class="text-11-regular text-text-weak">'),A=o('<span class="text-11-regular text-text-weaker truncate">'),G=o('<div class="w-full flex items-center justify-between gap-x-3"><div class="flex flex-col gap-0.5 min-w-0"><div class="flex items-center gap-2"><span class=truncate></span></div></div><div>');const H={connected:"mcp.status.connected",failed:"mcp.status.failed",needs_auth:"mcp.status.needs_auth",disabled:"mcp.status.disabled"},R=()=>{const i=L(),f=P(),c=D(),_=M(),$=K(),u=g(()=>Object.entries(i.data.mcp??{}).map(([e,n])=>({name:e,status:n.status})).sort((e,n)=>e.name.localeCompare(n.name))),s=O(()=>({mutationFn:async e=>{i.data.mcp[e]?.status==="connected"?await f.client.mcp.disconnect({name:e}):await f.client.mcp.connect({name:e})},onSuccess:()=>_.refetchQueries($.mcp(Q(i.directory)))})),w=g(()=>u().filter(e=>e.status==="connected").length),C=g(()=>u().length);return l(j,{get title(){return c.t("dialog.mcp.title")},get description(){return c.t("dialog.mcp.description",{enabled:w(),total:C()})},get children(){return l(E,{get search(){return{placeholder:c.t("common.search.placeholder"),autofocus:!0}},get emptyMessage(){return c.t("dialog.mcp.empty")},key:e=>e?.name??"",items:u,filterKeys:["name","status"],sortBy:(e,n)=>e.name.localeCompare(n.name),onSelect:e=>{!e||s.isPending||s.mutate(e.name)},children:e=>{const n=()=>i.data.mcp[e.name],d=()=>n()?.status,b=()=>{const a=d()?H[d()]:void 0;if(a)return c.t(a)},v=()=>{const a=n();return a?.status==="failed"?a.error:void 0},S=()=>d()==="connected";return(()=>{var a=G(),m=a.firstChild,p=m.firstChild,k=p.firstChild,y=m.nextSibling;return r(k,()=>e.name),r(p,l(h,{get when(){return b()},get children(){var t=B();return r(t,b),t}}),null),r(p,l(h,{get when(){return x(()=>!!s.isPending)()&&s.variables===e.name},get children(){var t=F();return r(t,()=>c.t("common.loading.ellipsis")),t}}),null),r(m,l(h,{get when(){return v()},get children(){var t=A();return r(t,v),t}}),null),y.$$click=t=>t.stopPropagation(),r(y,l(z,{get checked(){return S()},get disabled(){return x(()=>!!s.isPending)()&&s.variables===e.name},onChange:()=>{s.isPending||s.mutate(e.name)}})),a})()}})}})};q(["click"]);export{R as DialogSelectMcp};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialog-select-mcp-DhjSDchI.js","assets/index-qZpXeaUL.js","assets/index-Bo6xm6rJ.css","assets/list-B531cAvb.js","assets/switch-DhYBlMUd.js","assets/dialog-select-ssh-CIUUeM_0.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{Q as _e,b as xe,R as be,u as te,f as T,c as ke,U as re,k as Ce,z as X,V as R,W as f,h as y,l as Y,o as $e,i as g,n as a,v as J,p as w,E as _,B as N,I as De,X as S,D as Pe,j as Ie,Y as Ee,t as $,_ as K,T as L,y as Ae}from"./index-qZpXeaUL.js";import{L as Z}from"./list-B531cAvb.js";import{S as Me,a as Fe}from"./server-row-BHjSJTFQ.js";var Ne=$('<div class="flex min-w-0 flex-1 items-center justify-between gap-3"><div class="flex min-w-0 flex-col"><div class="flex min-w-0 items-center gap-2"><span class="truncate text-14-medium text-text-strong"></span><span class="shrink-0 text-11-regular text-text-weaker"></span></div><span class="truncate text-12-regular text-text-weak"> · '),ze=$('<span class="truncate text-11-regular text-text-weaker">HostName '),Le=$('<div class=px-5><div class="bg-surface-base rounded-md p-5 flex flex-col gap-3"><div class="flex-1 min-w-0 [&_[data-slot=input-wrapper]]:relative"></div><div class="grid grid-cols-2 gap-2 min-w-0">'),Re=$('<div class="flex items-center gap-2 -ml-2"><span>'),Te=$('<div class=px-5><div class="grid grid-cols-3 gap-1 bg-surface-base rounded-md p-1">'),Ue=$('<div class="flex flex-1 min-h-0 flex-col gap-2"><div class="shrink-0 px-5 pb-5">'),je=$('<div class="flex items-center gap-3 min-w-0 flex-1 w-full group/item"><div class="flex flex-col h-full items-start w-5"></div><div class="flex items-center justify-center gap-4 pl-4">'),Be=$('<span class="text-text-base bg-surface-base text-14-regular px-1.5 rounded-xs">'),Ke=$('<div class="flex flex-wrap items-center gap-2"><span class="text-text-weak text-13-regular">'),He=$('<div class="flex gap-2">');const H="opencode";function ee(n,l){Ae({variant:"error",title:n.t("common.requestFailed"),description:l instanceof Error?l.message:String(l)})}function Ve(){const n=T(),l=te(),[m,u]=Ie(async()=>{try{const h=await l.getDefaultServer?.();return h||null}catch(h){return ee(n,h),null}},{initialValue:null}),i=y(()=>!!l.getDefaultServer&&!!l.setDefaultServer);return{defaultKey:m,canDefault:i,setDefault:async h=>{try{await l.setDefaultServer?.(h),u.mutate(h)}catch(D){ee(n,D)}}}}function Oe(){const n=re(),l=u=>{const i=R(u);if(!i)return!1;const v=i.replace(/^https?:\/\//,"").split("/")[0];return v?v.includes("localhost")||v.startsWith("127.0.0.1")?!0:v.includes(".")||v.includes(":"):!1};return{previewStatus:async(u,i,v,h)=>{if(h(void 0),!l(u))return;const D=R(u);if(!D)return;const x={url:D};i&&(x.username=i),v&&(x.password=v);const b=await n(x);h(b.healthy)}}}function qe(n){return!!n[1]&&typeof n[1]=="object"&&"host"in n[1]&&"remotePath"in n[1]}function We(n){const l=T(),m=()=>[n.item.config.username?`${n.item.config.username}@${n.item.config.host}`:n.item.config.host,n.item.config.port?`:${n.item.config.port}`:""].join("");return(()=>{var u=Ne(),i=u.firstChild,v=i.firstChild,h=v.firstChild,D=h.nextSibling,x=v.nextSibling,b=x.firstChild;return g(h,()=>n.item.name),g(D,(()=>{var P=w(()=>n.item.config.enabled===!1);return()=>P()?l.t("dialog.ssh.status.disabled"):l.t("dialog.ssh.status.enabled")})()),g(x,m,b),g(x,()=>n.item.config.remotePath,null),g(i,a(_,{get when(){return n.item.config.hostName},children:P=>(()=>{var t=ze();return t.firstChild,g(t,P,null),t})()}),null),u})()}function Ge(n){const l=T(),m=u=>{if(u.stopPropagation(),u.key==="Escape"){u.preventDefault(),n.onBack();return}u.key!=="Enter"||u.isComposing||(u.preventDefault(),n.onSubmit())};return(()=>{var u=Le(),i=u.firstChild,v=i.firstChild,h=v.nextSibling;return g(v,a(L,{type:"text",get label(){return l.t("dialog.server.add.url")},get placeholder(){return n.placeholder},get value(){return n.value},autofocus:!0,get validationState(){return n.error?"invalid":"valid"},get error(){return n.error},get disabled(){return n.busy},get onChange(){return n.onChange},onKeyDown:m})),g(i,a(L,{type:"text",get label(){return l.t("dialog.server.add.name")},get placeholder(){return l.t("dialog.server.add.namePlaceholder")},get value(){return n.name},get disabled(){return n.busy},get onChange(){return n.onNameChange},onKeyDown:m}),h),g(h,a(L,{type:"text",get label(){return l.t("dialog.server.add.username")},get placeholder(){return l.t("dialog.server.add.usernamePlaceholder")},get value(){return n.username},get disabled(){return n.busy},get onChange(){return n.onUsernameChange},onKeyDown:m}),null),g(h,a(L,{type:"password",get label(){return l.t("dialog.server.add.password")},get placeholder(){return l.t("dialog.server.add.passwordPlaceholder")},get value(){return n.password},get disabled(){return n.busy},get onChange(){return n.onPasswordChange},onKeyDown:m}),null),u})()}function Je(){const n=_e(),l=xe(),m=be(),u=te(),i=T(),v=ke(),{defaultKey:h,canDefault:D,setDefault:x}=Ve(),{previewStatus:b}=Oe(),P=re(),[t,d]=Ce({group:"http",status:{},addServer:{url:"",name:"",username:H,password:"",error:"",showForm:!1,status:void 0},editServer:{id:void 0,value:"",name:"",username:"",password:"",error:"",status:void 0}}),z=()=>{d("addServer",{url:"",name:"",username:H,password:"",error:"",showForm:!1,status:void 0})},M=()=>{d("editServer",{id:void 0,value:"",name:"",username:"",password:"",error:"",status:void 0})},I=X(()=>({mutationFn:async e=>{const r=R(e);if(!r){z();return}const s={type:"http",http:{url:r}};if(t.addServer.name.trim()&&(s.displayName=t.addServer.name.trim()),t.addServer.password&&(s.http.password=t.addServer.password),t.addServer.password&&t.addServer.username&&(s.http.username=t.addServer.username),!(await P(s.http)).healthy){d("addServer",{error:i.t("dialog.server.add.error")});return}z(),await q(s,!0)}})),E=X(()=>({mutationFn:async e=>{if(e.original.type!=="http")return;const r=R(e.value);if(!r){M();return}const s=t.editServer.name.trim()||void 0,c=t.editServer.username||void 0,o=t.editServer.password||void 0,k=e.original.displayName;if(r===e.original.http.url&&s===k&&c===e.original.http.username&&o===e.original.http.password){M();return}const C={type:"http",displayName:s,http:{url:r,username:c,password:o}};if(!(await P(C.http)).healthy){d("editServer",{error:i.t("dialog.server.add.error")});return}r===e.original.http.url?m.add(C):ae(e.original,C),M()}})),ae=(e,r)=>{const s=m.key,c=m.add(r);if(!c)return;const o=s===f.key(e)?f.key(c):s;o&&m.setActive(o),m.remove(f.key(e))},F=y(()=>{const e=m.current,r=m.list;return e?r.includes(e)?[e,...r.filter(s=>s!==e)]:[e,...r]:r}),V=y(()=>F().find(e=>f.key(e)===m.key)??F()[0]),ne=y(()=>Object.entries(v.data.config.ssh??{}).filter(qe).map(([e,r])=>({name:e,config:r})).sort((e,r)=>e.name.localeCompare(r.name))),se=y(()=>{const e=F().filter(o=>t.group!=="http"?!1:o.type==="http"||o.type==="sidecar");if(!e.length)return e;const r=V(),s=new Map(e.map((o,k)=>[o,k])),c=o=>o?.healthy===!0?0:o?.healthy===!1?2:1;return e.slice().sort((o,k)=>{if(o===r)return-1;if(k===r)return 1;const C=c(t.status[f.key(o)])-c(t.status[f.key(k)]);return C!==0?C:(s.get(o)??0)-(s.get(k)??0)})});async function O(){const e={};await Promise.all(F().map(async r=>{e[f.key(r)]=await P(r.http)})),d("status",Ee(e))}Y(()=>{F(),O();const e=setInterval(O,1e4);$e(()=>clearInterval(e))});async function q(e,r){if(!(!r&&t.status[f.key(e)]?.healthy===!1)){if(l.close(),r&&e.type==="http"){m.add(e),n("/");return}n("/"),queueMicrotask(()=>m.setActive(f.key(e)))}}const ie=e=>{I.isPending||(d("addServer",{url:e,error:""}),b(e,t.addServer.username,t.addServer.password,r=>d("addServer",{status:r})))},le=e=>{I.isPending||d("addServer",{name:e,error:""})},oe=e=>{I.isPending||(d("addServer",{username:e,error:""}),b(t.addServer.url,e,t.addServer.password,r=>d("addServer",{status:r})))},de=e=>{I.isPending||(d("addServer",{password:e,error:""}),b(t.addServer.url,t.addServer.username,e,r=>d("addServer",{status:r})))},ue=e=>{E.isPending||(d("editServer",{value:e,error:""}),b(e,t.editServer.username,t.editServer.password,r=>d("editServer",{status:r})))},ce=e=>{E.isPending||d("editServer",{name:e,error:""})},ge=e=>{E.isPending||(d("editServer",{username:e,error:""}),b(t.editServer.value,e,t.editServer.password,r=>d("editServer",{status:r})))},me=e=>{E.isPending||(d("editServer",{password:e,error:""}),b(t.editServer.value,t.editServer.username,e,r=>d("editServer",{status:r})))},U=y(()=>t.editServer.id?"edit":t.addServer.showForm?"add":"list"),W=y(()=>{if(t.editServer.id)return F().find(e=>e.type==="http"&&e.http.url===t.editServer.id)}),G=()=>{z(),M()},he=()=>{M(),d("addServer",{showForm:!0,url:"",name:"",username:H,password:"",error:"",status:void 0})},ve=e=>{z(),d("editServer",{id:e.http.url,value:e.http.url,name:e.displayName??"",username:e.http.username??"",password:e.http.password??"",error:"",status:t.status[f.key(e)]?.healthy})},Q=()=>{if(U()==="add"){if(I.isPending)return;d("addServer",{error:""}),I.mutate(t.addServer.url);return}const e=W();e&&(E.isPending||(d("editServer",{error:""}),E.mutate({original:e,value:t.editServer.value})))},j=y(()=>U()!=="list"),p=y(()=>U()==="add"),B=y(()=>p()?I.isPending:E.isPending),fe=y(()=>j()?(()=>{var e=Re(),r=e.firstChild;return g(e,a(J,{icon:"arrow-left",variant:"ghost",onClick:G,get"aria-label"(){return i.t("common.goBack")}}),r),g(r,(()=>{var s=w(()=>!!p());return()=>s()?i.t("dialog.server.add.title"):i.t("dialog.server.edit.title")})()),e})():i.t("dialog.server.title"));Y(()=>{t.editServer.id&&(W()||M())});async function pe(e){await u.sshDisconnect?.(e),m.remove(e),await u.getDefaultServer?.()===e&&u.setDefaultServer?.(null)}function Se(){l.close(),K(()=>import("./dialog-select-mcp-DhjSDchI.js"),__vite__mapDeps([0,1,2,3,4])).then(e=>{l.show(()=>a(e.DialogSelectMcp,{}))})}function we(){l.close(),K(()=>import("./dialog-select-ssh-CIUUeM_0.js"),__vite__mapDeps([5,1,2,3,4])).then(e=>{l.show(()=>a(e.DialogSelectSsh,{}))})}function ye(){l.close(),K(()=>import("./dialog-select-ssh-CIUUeM_0.js"),__vite__mapDeps([5,1,2,3,4])).then(e=>{l.show(()=>a(e.DialogSelectSsh,{initialMode:"add"}))})}return a(Pe,{get title(){return fe()},get children(){var e=Ue(),r=e.firstChild;return g(e,a(_,{get when(){return!j()},get fallback(){return a(Ge,{get value(){return w(()=>!!p())()?t.addServer.url:t.editServer.value},get name(){return w(()=>!!p())()?t.addServer.name:t.editServer.name},get username(){return w(()=>!!p())()?t.addServer.username:t.editServer.username},get password(){return w(()=>!!p())()?t.addServer.password:t.editServer.password},get placeholder(){return i.t("dialog.server.add.placeholder")},get busy(){return B()},get error(){return w(()=>!!p())()?t.addServer.error:t.editServer.error},get status(){return w(()=>!!p())()?t.addServer.status:t.editServer.status},get onChange(){return p()?ie:ue},get onNameChange(){return p()?le:ce},get onUsernameChange(){return p()?oe:ge},get onPasswordChange(){return p()?de:me},onSubmit:Q,onBack:G})},get children(){return[(()=>{var s=Te(),c=s.firstChild;return g(c,()=>["http","ssh","mcp"].map(o=>a(N,{get variant(){return t.group===o?"secondary":"ghost"},size:"large",onClick:()=>d("group",o),class:"justify-center py-1.5",get children(){return i.t(`dialog.server.group.${o}`)}}))),s})(),a(_,{get when(){return t.group==="ssh"},get fallback(){return a(Z,{get search(){return{placeholder:i.t("dialog.server.search.placeholder"),autofocus:!1}},noInitialSelection:!0,get emptyMessage(){return i.t("dialog.server.empty")},items:se,key:s=>s.http.url,onSelect:s=>{s&&q(s)},divider:!0,class:"flex-1 min-h-0 px-5 [&_[data-slot=list-search-wrapper]]:w-full [&_[data-slot=list-scroll]]:flex-1 [&_[data-slot=list-scroll]]:overflow-y-auto [&_[data-slot=list-items]]:bg-surface-base [&_[data-slot=list-items]]:rounded-md [&_[data-slot=list-item]]:min-h-14 [&_[data-slot=list-item]]:p-3 [&_[data-slot=list-item]]:!bg-transparent",children:s=>{const c=f.key(s);return(()=>{var o=je(),k=o.firstChild,C=k.nextSibling;return g(k,a(Me,{get health(){return t.status[c]}})),g(o,a(Fe,{conn:s,get dimmed(){return t.status[c]?.healthy===!1},get status(){return t.status[c]},class:"flex items-center gap-3 min-w-0 flex-1",get badge(){return a(_,{get when(){return h()===f.key(s)},get children(){var A=Be();return g(A,()=>i.t("dialog.server.status.default")),A}})},showCredentials:!0}),C),g(C,a(_,{get when(){return f.key(V())===c},get children(){return a(De,{name:"check",class:"h-6"})}}),null),g(C,a(_,{get when(){return s.type==="http"},get children(){return a(S,{get children(){return[a(S.Trigger,{as:J,icon:"dot-grid",variant:"ghost",class:"shrink-0 size-8 hover:bg-surface-base-hover data-[expanded]:bg-surface-base-active",onClick:A=>A.stopPropagation(),onPointerDown:A=>A.stopPropagation()}),a(S.Portal,{get children(){return a(S.Content,{class:"mt-1",get children(){return[a(S.Item,{onSelect:()=>{s.type==="http"&&ve(s)},get children(){return a(S.ItemLabel,{get children(){return i.t("dialog.server.menu.edit")}})}}),a(_,{get when(){return w(()=>!!D())()&&h()!==c},get children(){return a(S.Item,{onSelect:()=>x(c),get children(){return a(S.ItemLabel,{get children(){return i.t("dialog.server.menu.default")}})}})}}),a(_,{get when(){return w(()=>!!D())()&&h()===c},get children(){return a(S.Item,{onSelect:()=>x(null),get children(){return a(S.ItemLabel,{get children(){return i.t("dialog.server.menu.defaultRemove")}})}})}}),a(S.Separator,{}),a(S.Item,{onSelect:()=>pe(f.key(s)),class:"text-text-on-critical-base hover:bg-surface-critical-weak",get children(){return a(S.ItemLabel,{get children(){return i.t("dialog.server.menu.delete")}})}})]}})}})]}})}}),null),o})()}})},get children(){return a(Z,{get search(){return{placeholder:i.t("dialog.server.search.placeholder"),autofocus:!1}},noInitialSelection:!0,get emptyMessage(){return i.t("dialog.ssh.empty")},items:ne,key:s=>s.name,filterKeys:["name"],onSelect:s=>{s&&we()},divider:!0,class:"flex-1 min-h-0 px-5 [&_[data-slot=list-search-wrapper]]:w-full [&_[data-slot=list-scroll]]:flex-1 [&_[data-slot=list-scroll]]:overflow-y-auto [&_[data-slot=list-items]]:bg-surface-base [&_[data-slot=list-items]]:rounded-md [&_[data-slot=list-item]]:min-h-14 [&_[data-slot=list-item]]:p-3 [&_[data-slot=list-item]]:!bg-transparent",children:s=>a(We,{item:s})})}})]}}),r),g(r,a(_,{get when(){return j()},get fallback(){return(()=>{var s=He();return g(s,a(_,{get when(){return t.group==="mcp"},get fallback(){return a(_,{get when(){return t.group==="ssh"},get fallback(){return a(N,{variant:"secondary",icon:"plus-small",size:"large",onClick:he,class:"py-1.5 pl-1.5 pr-3 flex items-center gap-1.5",get children(){return i.t("dialog.server.add.button")}})},get children(){return a(N,{variant:"secondary",icon:"plus-small",size:"large",onClick:ye,class:"py-1.5 pl-1.5 pr-3 flex items-center gap-1.5",get children(){return i.t("dialog.server.ssh.add")}})}})},get children(){var c=Ke(),o=c.firstChild;return g(o,()=>i.t("dialog.server.mcp.description")),g(c,a(N,{variant:"secondary",size:"large",onClick:Se,class:"px-3 py-1.5",get children(){return i.t("dialog.server.mcp.manage")}}),null),c}})),s})()},get children(){return a(N,{variant:"primary",size:"large",onClick:Q,get disabled(){return B()},class:"px-3 py-1.5",get children(){return w(()=>!!B())()?i.t("dialog.server.add.checking"):w(()=>!!p())()?i.t("dialog.server.add.button"):i.t("common.save")}})}})),e}})}export{Je as DialogSelectServer};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{b as oe,c as le,e as de,f as ce,R as ue,k as ge,h as G,i,n as o,v as U,p as x,z as L,y as _,a$ as me,E as B,T as b,B as F,a9 as he,r as Z,L as pe,X as w,D as fe,t as C}from"./index-qZpXeaUL.js";import{L as be}from"./list-B531cAvb.js";import{S as ve}from"./switch-DhYBlMUd.js";function J(){return{name:"",host:"",hostName:"",username:"",remotePath:"",port:"",keyPath:"",authType:"config",options:"",submitCommand:"",submitWorkdir:"",environment:"",enabled:!0}}function xe(l){const a=l.split(`
|
|
2
|
-
`).map(c=>{const $=c.trim(),P=$.startsWith("#")?$.slice(1).trim():$;if($.startsWith("#")&&!/^RemoteWorkDir\s+/i.test(P))return;const O=P.match(/^([A-Za-z][A-Za-z0-9]*)\s+(.+)$/);if(O)return[O[1].toLowerCase(),O[2].trim()]}).filter(c=>!!c),u=c=>a.find($=>$[0]===c)?.[1],t=u("host"),z=u("identityfile"),s=new Set(["host","hostname","port","user","identityfile","remoteworkdir"]);return{name:t,host:t,hostName:u("hostname"),username:u("user"),remotePath:u("remoteworkdir"),port:u("port"),keyPath:z,authType:z?"key":void 0,options:a.filter(c=>!s.has(c[0])).map(c=>`${c[0]}=${c[1]}`).join(`
|
|
3
|
-
`)}}function Q(l){if(!l.name.trim()||!l.host.trim()||!l.remotePath.trim())return"required";const a=Number(l.port.trim());if(l.port.trim()&&(!Number.isInteger(a)||a<1||a>65535))return"portInvalid"}function ye(l){return Object.fromEntries(l.split(`
|
|
4
|
-
`).map(a=>a.trim()).filter(Boolean).map(a=>{const u=a.indexOf("=");return u===-1?[a,""]:[a.slice(0,u).trim(),a.slice(u+1).trim()]}).filter(a=>a[0]))}function _e(l){return Object.fromEntries(l.split(`
|
|
5
|
-
`).map(a=>a.trim()).filter(Boolean).map(a=>{const u=a.search(/[\s=]/);return u===-1?[a,""]:[a.slice(0,u).trim(),a.slice(u+1).replace(/^=\s*/,"").trim()]}).filter(a=>a[0]))}function X(l){const a=Number(l.port.trim()),u=ye(l.environment),t=_e(l.options);return{name:l.name.trim(),value:{enabled:l.enabled,host:l.host.trim(),hostName:l.hostName.trim()||void 0,port:Number.isFinite(a)&&a>0?a:void 0,username:l.username.trim()||void 0,remotePath:l.remotePath.trim(),options:Object.keys(t).length?t:void 0,auth:l.authType==="key"?{type:"key",keyPath:l.keyPath.trim()||void 0}:{type:l.authType},submit:l.submitCommand.trim()||l.submitWorkdir.trim()||Object.keys(u).length?{command:l.submitCommand.trim()||void 0,workdir:l.submitWorkdir.trim()||void 0,environment:Object.keys(u).length?u:void 0}:void 0}}}var we=C('<div class="flex items-center gap-2 -ml-2"><span>'),$e=C('<div class="grid min-w-0 grid-cols-[minmax(0,1fr)_auto] items-end gap-2"><label class=shrink-0><input type=file class=sr-only><span class="inline-flex h-8 cursor-pointer items-center whitespace-nowrap rounded-md border border-border-weak-base px-3 text-12-medium text-text-base hover:bg-surface-base-hover">'),ke=C('<div class="flex h-full min-h-0 flex-col px-5 pb-5"><div class="min-h-0 flex-1 overflow-y-auto pr-1"><div class="bg-surface-base rounded-md p-5 flex flex-col gap-3"><div class="rounded-md border border-border-weak-base bg-surface-raised-base p-3 flex flex-col gap-3"></div><div class="grid grid-cols-2 gap-2 min-w-0"></div><div class="grid grid-cols-2 gap-2 min-w-0"></div><div class="grid grid-cols-2 gap-2 min-w-0"></div><div class="grid grid-cols-2 gap-2 min-w-0"><div class="flex flex-col gap-1"><span class="text-12-regular text-text-base"></span></div></div><div class="flex items-center justify-between gap-3 pt-1"><div class="flex flex-col"><span class="text-13-medium text-text-strong"></span><span class="text-12-regular text-text-weak"></span></div></div></div></div><div class="shrink-0 flex justify-end gap-2 pt-4">'),Ce=C('<div class="flex flex-col min-h-0 gap-3 px-5 pb-5">'),Pe=C('<div class="w-full flex items-center justify-between gap-3"><div class="flex flex-col min-w-0"><div class="flex items-center gap-2 min-w-0"><span class="text-14-medium text-text-strong truncate"></span><span class="text-11-regular text-text-weaker">'),Se=C('<span class="text-12-regular text-text-weak truncate">'),Te=C('<div class="rounded-md border p-3 flex flex-col gap-2"><div class="flex items-center justify-between gap-3"><span class="text-13-medium text-text-strong"></span><span class="text-11-regular text-text-weaker"></span></div><pre class="max-h-44 overflow-auto whitespace-pre-wrap rounded bg-surface-base p-2 font-mono text-11-regular text-text-base">');const Ee=["config","agent","key"];function Fe(l={}){oe();const a=le(),u=de(),t=ce(),z=ue(),[s,c]=ge({form:J(),importText:"",editing:l.initialMode==="add"?"__new__":void 0,error:"",testResult:void 0}),$=G(()=>Object.entries(a.data.config.ssh??{}).map(([e,r])=>({name:e,config:r})).sort((e,r)=>e.name.localeCompare(r.name))),P=G(()=>!!s.editing),O=G(()=>P()?(()=>{var e=we(),r=e.firstChild;return i(e,o(U,{icon:"arrow-left",variant:"ghost",onClick:A,get"aria-label"(){return t.t("common.goBack")}}),r),i(r,(()=>{var d=x(()=>s.editing==="__new__");return()=>d()?t.t("dialog.ssh.addTitle"):t.t("dialog.ssh.editTitle")})()),e})():t.t("dialog.ssh.title")),g=L(()=>({mutationFn:async()=>{const e=X(s.form),r=Q(s.form);if(r){c("error",t.t(`dialog.ssh.${r}`));return}const m={...a.data.config.ssh??{}};s.editing&&s.editing!=="__new__"&&s.editing!==e.name&&delete m[s.editing],m[e.name]=e.value,await R("/global/ssh/config",{name:e.name,previousName:s.editing&&s.editing!=="__new__"?s.editing:void 0,config:e.value}),await a.updateConfig({ssh:m}),A(),_({variant:"success",icon:"circle-check",title:t.t("dialog.ssh.toast.saved")})},onError:e=>{_({variant:"error",title:t.t("common.requestFailed"),description:e instanceof Error?e.message:String(e)})}})),V=L(()=>({mutationFn:async e=>{await R("/global/ssh/config/remove",{name:e});const r={...a.data.config.ssh??{}};delete r[e],await a.updateConfig({ssh:r})},onSuccess:()=>{_({variant:"success",icon:"circle-check",title:t.t("dialog.ssh.toast.removed")})},onError:e=>{_({variant:"error",title:t.t("common.requestFailed"),description:e instanceof Error?e.message:String(e)})}})),I=L(()=>({mutationFn:async()=>{const e=Q(s.form);if(e)throw c("error",t.t(`dialog.ssh.${e}`)),c("testResult",void 0),new Error(t.t(`dialog.ssh.${e}`));const r=X(s.form),d=await R("/global/ssh/test",{config:r.value});if(c("testResult",d),!d.success){_({variant:"error",title:t.t("dialog.ssh.test.failed"),description:d.message});return}_({variant:"success",icon:"circle-check",title:t.t("dialog.ssh.test.passed"),description:d.message||t.t("dialog.ssh.test.description")})},onError:e=>{c("testResult",{success:!1,message:e instanceof Error?e.message:String(e)}),_({variant:"error",title:t.t("dialog.ssh.test.failed"),description:e instanceof Error?e.message:String(e)})}})),M=L(()=>({mutationFn:async e=>R("/global/ssh/identity",{name:e.name,content:await e.text()}),onSuccess:e=>{p({authType:"key",keyPath:e.keyPath}),_({variant:"success",icon:"circle-check",title:t.t("dialog.ssh.identity.uploaded"),description:e.keyPath})},onError:e=>{_({variant:"error",title:t.t("dialog.ssh.identity.uploadFailed"),description:e instanceof Error?e.message:String(e)})}}));function A(){c({form:J(),importText:"",editing:void 0,error:"",testResult:void 0})}function Y(){c({form:J(),importText:"",editing:"__new__",error:"",testResult:void 0})}function ee(e){const r=a.data.config.ssh?.[e];!r||!("host"in r)||c({editing:e,error:"",importText:"",testResult:void 0,form:{name:e,host:r.host??"",hostName:r.hostName??"",username:r.username??"",remotePath:r.remotePath??"",port:r.port?String(r.port):"",keyPath:r.auth?.type==="key"?r.auth.keyPath??"":"",authType:r.auth?.type??"config",options:Object.entries(r.options??{}).map(([d,m])=>`${d}=${m}`).join(`
|
|
6
|
-
`),submitCommand:r.submit?.command??"",submitWorkdir:r.submit?.workdir??"",environment:Object.entries(r.submit?.environment??{}).map(([d,m])=>`${d}=${m}`).join(`
|
|
7
|
-
`),enabled:r.enabled??!0}})}function p(e){c("form",e),c("error",""),c("testResult",void 0)}function te(){p(Object.fromEntries(Object.entries(xe(s.importText)).filter(e=>e[1]!==void 0)))}function re(){I.mutate()}async function R(e,r){const d={"Content-Type":"application/json"},m=z.current;m?.http.password&&(d.Authorization=`Basic ${me({username:m.http.username,password:m.http.password})}`);const v=await fetch(`${u.url}${e}`,{method:"POST",headers:d,body:JSON.stringify(r)}),f=await v.text(),k=v.headers.get("content-type")??"";if(k.includes("text/html")||/^\s*<!doctype html/i.test(f)||/^\s*<html/i.test(f))throw new Error(t.t("dialog.ssh.test.serverMissing"));const h=k.includes("application/json")&&f?JSON.parse(f):void 0;if(v.ok)return h;throw h&&typeof h=="object"&&"message"in h?new Error(String(h.message)):new Error(se(f).trim()||v.statusText)}function se(e){return e.replace(/<[^>]*>/g," ")}function ne(e){return[`${t.t("dialog.ssh.test.detail.message")}: ${e.message}`,e.stderr?`${t.t("dialog.ssh.test.detail.stderr")}:
|
|
8
|
-
${e.stderr}`:void 0,e.stdout?`${t.t("dialog.ssh.test.detail.stdout")}:
|
|
9
|
-
${e.stdout}`:void 0].filter(r=>r!==void 0).join(`
|
|
10
|
-
|
|
11
|
-
`)}return o(fe,{size:"large",get title(){return O()},get description(){return x(()=>!P())()?t.t("dialog.ssh.description"):void 0},class:"overflow-hidden [&_[data-slot=dialog-body]]:h-full [&_[data-slot=dialog-body]]:min-h-0",get children(){return o(B,{get when(){return P()},get fallback(){return(()=>{var e=Ce();return i(e,o(be,{get search(){return{placeholder:t.t("common.search.placeholder"),autofocus:!0}},get emptyMessage(){return t.t("dialog.ssh.empty")},items:$,key:r=>r.name,filterKeys:["name"],class:"flex-1 min-h-0 [&_[data-slot=list-items]]:bg-surface-base [&_[data-slot=list-items]]:rounded-md [&_[data-slot=list-item]]:min-h-14 [&_[data-slot=list-item]]:p-3 [&_[data-slot=list-item]]:!bg-transparent",children:r=>(()=>{var d=Pe(),m=d.firstChild,v=m.firstChild,f=v.firstChild,k=f.nextSibling;return i(f,()=>r.name),i(k,(()=>{var h=x(()=>"host"in r.config&&r.config.enabled===!1);return()=>h()?t.t("dialog.ssh.status.disabled"):t.t("dialog.ssh.status.enabled")})()),i(m,o(B,{get when(){return x(()=>"host"in r.config)()?r.config:void 0},children:h=>(()=>{var S=Se();return i(S,()=>h().host,null),i(S,(()=>{var K=x(()=>!!h().remotePath);return()=>K()?` · ${h().remotePath}`:""})(),null),S})()}),null),i(d,o(w,{get children(){return[o(w.Trigger,{as:U,icon:"dot-grid",variant:"ghost",class:"shrink-0 size-8",onClick:h=>h.stopPropagation()}),o(w.Portal,{get children(){return o(w.Content,{class:"mt-1",get children(){return[o(w.Item,{onSelect:()=>ee(r.name),get children(){return o(w.ItemLabel,{get children(){return t.t("common.edit")}})}}),o(w.Separator,{}),o(w.Item,{onSelect:()=>V.mutate(r.name),class:"text-text-on-critical-base hover:bg-surface-critical-weak",get children(){return o(w.ItemLabel,{get children(){return t.t("common.delete")}})}})]}})}})]}}),null),d})()}),null),i(e,o(F,{variant:"secondary",icon:"plus-small",size:"large",onClick:Y,class:"self-start px-3 py-1.5",get children(){return t.t("dialog.ssh.addButton")}}),null),e})()},get children(){var e=ke(),r=e.firstChild,d=r.firstChild,m=d.firstChild,v=m.nextSibling,f=v.nextSibling,k=f.nextSibling,h=k.nextSibling,S=h.firstChild,K=S.firstChild,T=h.nextSibling,ie=T.firstChild,H=ie.firstChild,ae=H.nextSibling,q=r.nextSibling;return i(m,o(b,{multiline:!0,get label(){return t.t("dialog.ssh.import")},get description(){return t.t("dialog.ssh.importDescription")},get placeholder(){return t.t("dialog.ssh.importPlaceholder")},get value(){return s.importText},get disabled(){return g.isPending},onChange:n=>c("importText",n),class:"min-h-20 font-mono text-12-regular"}),null),i(m,o(F,{variant:"secondary",size:"large",onClick:te,get disabled(){return g.isPending||!s.importText.trim()},class:"self-start px-3 py-1.5",get children(){return t.t("dialog.ssh.importAction")}}),null),i(v,o(b,{get label(){return t.t("dialog.ssh.name")},get value(){return s.form.name},get disabled(){return g.isPending},get validationState(){return s.error?"invalid":"valid"},get error(){return s.error},autofocus:!0,onChange:n=>p({name:n})}),null),i(v,o(b,{get label(){return t.t("dialog.ssh.host")},get placeholder(){return t.t("dialog.ssh.hostPlaceholder")},get value(){return s.form.host},get disabled(){return g.isPending},onChange:n=>p({host:n})}),null),i(f,o(b,{get label(){return t.t("dialog.ssh.hostName")},get placeholder(){return t.t("dialog.ssh.hostNamePlaceholder")},get value(){return s.form.hostName},get disabled(){return g.isPending},onChange:n=>p({hostName:n})}),null),i(f,o(b,{get label(){return t.t("dialog.ssh.username")},get value(){return s.form.username},get disabled(){return g.isPending},onChange:n=>p({username:n})}),null),i(k,o(b,{get label(){return t.t("dialog.ssh.port")},placeholder:"22",get value(){return s.form.port},get disabled(){return g.isPending},onChange:n=>p({port:n})})),i(d,o(b,{get label(){return t.t("dialog.ssh.remotePath")},placeholder:"/work/user/project",get value(){return s.form.remotePath},get disabled(){return g.isPending},onChange:n=>p({remotePath:n})}),h),i(K,()=>t.t("dialog.ssh.auth")),i(S,o(he,{get options(){return[...Ee]},get current(){return s.form.authType},value:n=>n,label:n=>t.t(`dialog.ssh.auth.${n}`),onSelect:n=>n&&p({authType:n}),variant:"secondary",size:"large",class:"justify-between"}),null),i(h,o(B,{get when(){return s.form.authType==="key"},get children(){var n=$e(),E=n.firstChild,j=E.firstChild,D=j.nextSibling;return i(n,o(b,{get label(){return t.t("dialog.ssh.keyPath")},get placeholder(){return t.t("dialog.ssh.keyPathPlaceholder")},get value(){return s.form.keyPath},get disabled(){return g.isPending},onChange:y=>p({keyPath:y}),class:"min-w-0"}),E),j.addEventListener("change",y=>{const W=y.currentTarget.files?.[0];y.currentTarget.value="",W&&M.mutate(W)}),i(D,(()=>{var y=x(()=>!!M.isPending);return()=>y()?t.t("dialog.ssh.identity.uploading"):t.t("dialog.ssh.identity.upload")})()),Z(()=>j.disabled=g.isPending||M.isPending),n}}),null),i(d,o(b,{get label(){return t.t("dialog.ssh.submitCommand")},placeholder:"sbatch run.sh",get value(){return s.form.submitCommand},get disabled(){return g.isPending},onChange:n=>p({submitCommand:n})}),T),i(d,o(b,{multiline:!0,get label(){return t.t("dialog.ssh.options")},placeholder:"StrictHostKeyChecking=no",get value(){return s.form.options},get disabled(){return g.isPending},onChange:n=>p({options:n})}),T),i(d,o(b,{get label(){return t.t("dialog.ssh.submitWorkdir")},get placeholder(){return t.t("dialog.ssh.submitWorkdirPlaceholder")},get value(){return s.form.submitWorkdir},get disabled(){return g.isPending},onChange:n=>p({submitWorkdir:n})}),T),i(d,o(b,{multiline:!0,get label(){return t.t("dialog.ssh.environment")},placeholder:"QUEUE=gpu",get value(){return s.form.environment},get disabled(){return g.isPending},onChange:n=>p({environment:n})}),T),i(H,()=>t.t("dialog.ssh.enabled")),i(ae,()=>t.t("dialog.ssh.enabledDescription")),i(T,o(ve,{get checked(){return s.form.enabled},get disabled(){return g.isPending},onChange:n=>p({enabled:n})}),null),i(d,o(B,{get when(){return s.testResult},children:n=>(()=>{var E=Te(),j=E.firstChild,D=j.firstChild,y=D.nextSibling,W=j.nextSibling;return i(D,(()=>{var N=x(()=>!!n().success);return()=>N()?t.t("dialog.ssh.test.passed"):t.t("dialog.ssh.test.failed")})()),i(y,()=>s.form.hostName||s.form.host,null),i(y,(()=>{var N=x(()=>!!s.form.remotePath);return()=>N()?` · ${s.form.remotePath}`:""})(),null),i(W,()=>ne(n())),Z(N=>pe(E,{"border-border-success-base bg-surface-success-weak":n().success,"border-border-critical-base bg-surface-critical-weak":!n().success},N)),E})()}),null),i(q,o(F,{variant:"secondary",size:"large",onClick:re,get disabled(){return g.isPending||I.isPending},get children(){return x(()=>!!I.isPending)()?t.t("dialog.ssh.test.running"):t.t("dialog.ssh.test.action")}}),null),i(q,o(F,{variant:"ghost",size:"large",onClick:A,get disabled(){return g.isPending},get children(){return t.t("common.cancel")}}),null),i(q,o(F,{variant:"primary",size:"large",onClick:()=>g.mutate(),get disabled(){return g.isPending},get children(){return x(()=>!!g.isPending)()?t.t("common.saving"):t.t("common.save")}}),null),e}})}})}export{Fe as DialogSelectSsh};
|