@onescience/onecode-web 1.14.50-202609071804 → 1.14.50-202609081145

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.
Files changed (62) hide show
  1. package/assets/{3Dmol-tU5bxMp2.js → 3Dmol-yKn7g_OH.js} +1 -1
  2. package/assets/{account-system-agj4pml6.js → account-system-BBzbYGVI.js} +1 -1
  3. package/assets/{alert-04-C-gp_Col.js → alert-01-4vQjfQlo.js} +1 -1
  4. package/assets/{alert-05-DJvJoQG9.js → alert-02-DBXe19YL.js} +1 -1
  5. package/assets/{alert-01-CPtMLCYj.js → alert-04-Dh9kihP-.js} +1 -1
  6. package/assets/{alert-02-Blic9piO.js → alert-05-DGW7VOcd.js} +1 -1
  7. package/assets/alert-06-Ch8bS0da.js +1 -0
  8. package/assets/alert-07-CAyq_qRF.js +1 -0
  9. package/assets/alert-08-C9TKX8fn.js +1 -0
  10. package/assets/alert-10-CI_TfWOv.js +1 -0
  11. package/assets/{bip-bop-03-BMGeXTPu.js → bip-bop-03-BlpKS-LK.js} +1 -1
  12. package/assets/{bip-bop-04-BjsTn08D.js → bip-bop-04-tC9I1t9d.js} +1 -1
  13. package/assets/{bip-bop-06-BpgSjD-H.js → bip-bop-06-CxlEnYna.js} +1 -1
  14. package/assets/{bip-bop-08-E_8kYpgP.js → bip-bop-08-B16UdwaS.js} +1 -1
  15. package/assets/bip-bop-09-Dz_Piwgq.js +1 -0
  16. package/assets/center-DkDQ492x.js +5 -0
  17. package/assets/{dialog-edit-project-DIGBwz0I.js → dialog-edit-project-9AEtXVZR.js} +1 -1
  18. package/assets/{dialog-fork-DkJI84a4.js → dialog-fork-B7p6NlOf.js} +1 -1
  19. package/assets/dialog-project-upload-DiHGJYuE.js +2 -0
  20. package/assets/{dialog-select-file-8jAfsF2L.js → dialog-select-file-CUd5WRFD.js} +1 -1
  21. package/assets/{dialog-select-model-BRGl8eYL.js → dialog-select-model-UtT_TqAw.js} +2 -2
  22. package/assets/{dialog-terminal-unavailable-CmPSnZv2.js → dialog-terminal-unavailable-DojtZN6v.js} +2 -2
  23. package/assets/{docs-CJtqscRw.js → docs-DAl1qa5J.js} +1 -1
  24. package/assets/{ghostty-web-CLe6azmW.js → ghostty-web-CG7EXZFg.js} +1 -1
  25. package/assets/home-B2engr06.js +1 -0
  26. package/assets/{index-CL0Pu3hA.js → index-CjqsrRCL.js} +249 -249
  27. package/assets/{index-FpOsJHB5.css → index-qvfonuvp.css} +1 -1
  28. package/assets/{intro-CnBmc9av.js → intro-B5yQbN-k.js} +1 -1
  29. package/assets/{nope-02-BFEihmx0.js → nope-02-B5EjAkH1.js} +1 -1
  30. package/assets/{nope-05-bIRVhEuo.js → nope-05-Cu1IzAU8.js} +1 -1
  31. package/assets/{nope-08-BNa8k6os.js → nope-08-DSn4eqwy.js} +1 -1
  32. package/assets/{nope-11-DPrg_zNt.js → nope-11-BS7hXU3W.js} +1 -1
  33. package/assets/nope-12-Cu6aPMkh.js +1 -0
  34. package/assets/{onescience-CgkFGllp.js → onescience-LsLZkI7t.js} +1 -1
  35. package/assets/{resources-DCizhkUZ.js → resources-CInc-819.js} +2 -2
  36. package/assets/{selection-CynHR4Ge.js → selection-DZfvLSGx.js} +1 -1
  37. package/assets/shell-DoZVKGp4.js +2 -0
  38. package/assets/{skills-7bBjsBjk.js → skills-uxPlU4Zy.js} +1 -1
  39. package/assets/{staplebops-03-C9N14eC7.js → staplebops-03-xkuuNMNR.js} +1 -1
  40. package/assets/{staplebops-04-D6NyyK-L.js → staplebops-04-Csd7gBG5.js} +1 -1
  41. package/assets/{staplebops-06-DIW8XyYA.js → staplebops-06-NlxQqLpp.js} +1 -1
  42. package/assets/{staplebops-07-CvKLtcio.js → staplebops-07-BBP1uR4u.js} +1 -1
  43. package/assets/status-popover-body-mUwk7heS.js +2 -0
  44. package/assets/wizard-CV21yDeu.js +1 -0
  45. package/assets/{yup-01-BWSdA5jG.js → yup-01-BceRj1Ih.js} +1 -1
  46. package/assets/{yup-03-BVuLt3ld.js → yup-03-B4xs6sVx.js} +1 -1
  47. package/assets/{yup-04-D9JsyR5u.js → yup-04-CCdDP81m.js} +1 -1
  48. package/assets/{yup-05-BdiPGcTI.js → yup-05-DhlXzbEx.js} +1 -1
  49. package/index.html +11 -11
  50. package/package.json +2 -2
  51. package/assets/alert-06-KRw7fTp3.js +0 -1
  52. package/assets/alert-07-hGcGiD0S.js +0 -1
  53. package/assets/alert-08-tC_6TS6D.js +0 -1
  54. package/assets/alert-10-Dpoh9rqF.js +0 -1
  55. package/assets/bip-bop-09-CBn7WZOZ.js +0 -1
  56. package/assets/center-Bdm7642L.js +0 -5
  57. package/assets/dialog-project-upload-psziojzJ.js +0 -2
  58. package/assets/home-DkfYlE_p.js +0 -1
  59. package/assets/nope-12-DZ5PbjRd.js +0 -1
  60. package/assets/shell-CYsw1ww_.js +0 -2
  61. package/assets/status-popover-body-C6YlzCII.js +0 -2
  62. package/assets/wizard-52y7g6ST.js +0 -1
@@ -1,4 +1,4 @@
1
- import{eb as getDefaultExportFromCjs}from"./index-CL0Pu3hA.js";function _mergeNamespaces(K,D){for(var c=0;c<D.length;c++){const y=D[c];if(typeof y!="string"&&!Array.isArray(y)){for(const O in y)if(O!=="default"&&!(O in K)){const w=Object.getOwnPropertyDescriptor(y,O);w&&Object.defineProperty(K,O,w.get?w:{enumerable:!0,get:()=>y[O]})}}}return Object.freeze(Object.defineProperty(K,Symbol.toStringTag,{value:"Module"}))}var _3Dmol$3={exports:{}};/*!
1
+ import{em as getDefaultExportFromCjs}from"./index-CjqsrRCL.js";function _mergeNamespaces(K,D){for(var c=0;c<D.length;c++){const y=D[c];if(typeof y!="string"&&!Array.isArray(y)){for(const O in y)if(O!=="default"&&!(O in K)){const w=Object.getOwnPropertyDescriptor(y,O);w&&Object.defineProperty(K,O,w.get?w:{enumerable:!0,get:()=>y[O]})}}}return Object.freeze(Object.defineProperty(K,Symbol.toStringTag,{value:"Module"}))}var _3Dmol$3={exports:{}};/*!
2
2
  * 3dmol v2.5.5
3
3
  * JavaScript/TypeScript molecular visualization library
4
4
  * Author: David Koes and contributors
@@ -1 +1 @@
1
- import{k as ee,f as W,u as de,m as me,bf as N,ag as te,i,c as C,n as V,o as Y,t as v,b as we,S as k,R as z,Q as f,T as E,dv as ve,aB as ge,br as _e,cB as Ce,cC as ye,a5 as xe,M as Se,r as Pe,cD as fe,dw as ke,dx as pe,dy as qe,dz as Ae,dA as Me,dB as Te,dC as De,dD as Ee,cS as oe,dE as Ue,_ as le,dF as Re}from"./index-CL0Pu3hA.js";var G=v("<p class=os-auth-error>"),He=v('<form class=os-auth-form><label><span>账户 / 邮箱</span><input autocomplete=username placeholder=账户名或注册邮箱></label><label><span>密码</span><input autocomplete=current-password type=password placeholder=输入密码></label><button type=submit class="os-button os-button-primary os-auth-submit">'),Le=v("<div class=os-auth-links><span>还没有账号?</span><a>创建账号</a><a>忘记密码?"),Fe=v("<p>"),Ie=v('<div class=os-auth-email-verify><button type=button class="os-button os-button-secondary os-auth-submit"></button><label><span></span><input autocomplete=one-time-code>'),Ne=v("<label><span>邀请码</span><input autocomplete=one-time-code placeholder=请输入邀请码><small class=os-auth-hint>当前已开启注册审核,需填写有效邀请码才能注册。"),ze=v('<form class=os-auth-form><label><span>账户</span><input autocomplete=username placeholder="例如 researcher01"><small class=os-auth-hint>用作登录标识及个人工作区目录名称。长度 3–32 个字符,须以小写字母开头,仅可包含小写字母、数字、点(.)、下划线(_)与连字符(-)。</small></label><label><span>邮箱</span><input autocomplete=email inputmode=email placeholder=name@example.com><small class=os-auth-hint>用于账号找回与系统通知,亦可作为登录凭证。</small></label><label><span>密码</span><input autocomplete=new-password type=password placeholder="至少 8 位"></label><label><span>确认密码</span><input autocomplete=new-password type=password placeholder=再次输入密码></label><button type=submit class="os-button os-button-primary os-auth-submit">'),Be=v("<div class=os-auth-links><span>已有账号?</span><a>去登录"),je=v('<p class=os-auth-hint style="margin:0 0 0.35rem">通过注册邮箱获取验证码后重置密码。若无法收到邮件,请联系管理员。'),Z=v("<p class=os-account-success>"),Oe=v('<form class=os-auth-form><label><span>账号邮箱</span><input autocomplete=email inputmode=email placeholder=name@example.com></label><button type=submit class="os-button os-button-secondary os-auth-submit">'),Ve=v("<label><span>邮件验证码</span><input autocomplete=one-time-code placeholder=输入邮件中的验证码>"),We=v('<form class=os-auth-form><label><span>新密码</span><input autocomplete=new-password type=password placeholder="至少 8 位"></label><label><span>确认新密码</span><input autocomplete=new-password type=password placeholder=再次输入新密码></label><button type=submit class="os-button os-button-primary os-auth-submit">'),Ge=v("<div class=os-auth-links><a>返回登录</a><a>创建账号"),Qe=v('<p class=os-auth-hint style="margin:0 0 0.35rem">请设置新密码以完成重置。'),Je=v("<main class=os-account-page><div class=os-account-shell>"),Ke=v("<section class=os-account-loading><strong>正在加载账号信息</strong><span>请稍候"),Xe=v('<section class=os-account-empty-state><strong></strong><span>登录后可以查看账号资料和开发空间。</span><a href="/login?redirect=%2Faccount"class="os-button os-button-primary">去登录'),Ye=v('<header class=os-account-header><div class=os-account-identity><div class=os-account-avatar></div><div><span class=os-account-kicker>账号中心</span><h1></h1><p></p></div></div><div class=os-account-actions><span class=os-account-status></span><a href=/code class="os-button os-button-secondary">进入科研开发</a><button type=button class="os-button os-button-danger">退出登录</button><button type=button class="os-button os-button-danger">'),Ze=v("<section class=os-account-workspace-hero><div class=os-account-workspace-hero-copy><span class=os-account-kicker>默认项目</span><strong>default</strong><p></p></div><div class=os-account-workspace-hero-meta><code>"),et=v('<section class=os-account-content-grid><section class=os-account-panel><div class=os-account-panel-head><strong>基本资料</strong><span class=os-account-session-expiry title="这是当前浏览器登录会话的有效期(约 14 天),不是账号本身到期。重新登录即可续期,账号与工作区数据不受影响。">登录会话 <!>失效</span></div><p class=os-account-session-expiry-note>提示:上方倒计时是登录会话有效期,重新登录即可续期;账号与工作区数据不会因此删除。</p><dl class=os-account-field-grid><div><dt>账户</dt><dd></dd></div><div><dt>邮箱</dt><dd></dd></div><div><dt>创建时间</dt><dd></dd></div><div><dt>默认入口</dt><dd>科研开发工作台</dd></div></dl></section><section class=os-account-panel><div class=os-account-panel-head><strong>修改密码</strong><span>本地账号</span></div><form class=os-account-password-form><label><span>当前密码</span><input autocomplete=current-password type=password placeholder=输入当前密码></label><label><span>新密码</span><input autocomplete=new-password type=password placeholder="至少 8 位"></label><label><span>确认新密码</span><input autocomplete=new-password type=password placeholder=再次输入新密码></label><button type=submit class="os-button os-button-danger os-auth-submit">'),tt=v('<div class="flex flex-col gap-4 pl-6 pr-2.5 pb-3"><p class="text-14-regular text-text-strong"></p><div class="flex justify-end gap-2"><button type=button class="os-button os-button-secondary"></button><button type=button class="os-button os-button-danger">'),rt=v("<main class=os-auth-page><section class=os-auth-shell><button type=button class=os-auth-dismiss aria-label=关闭并返回浏览><span aria-hidden=true>×</span></button><section class=os-auth-panel><a class=os-auth-brand href=/></a><div class=os-auth-links><button type=button class=os-auth-link-button>暂不登录,继续浏览");function dt(){const l=ee(),u=W(),[d,_]=N({name:"",email:"",password:"",confirmPassword:"",submitting:!1,error:""}),x=()=>typeof d.lockedUntil=="number"&&d.lockedUntil>Date.now(),a=async t=>{if(t.preventDefault(),x()){_("error",`尝试次数过多,请在 ${ct(d.lockedUntil-Date.now())} 后重试`);return}if(!d.email.trim()||!d.password){_("error","请输入账户/邮箱和密码");return}_({submitting:!0,error:"",lockedUntil:void 0});try{await fe(await ke({email:d.email.trim(),password:d.password}),l.storage),u(pe(location.search),{replace:!0});return}catch(m){const w=m instanceof Error&&"retryAfterMs"in m?Number(m.retryAfterMs):void 0;_({error:m instanceof Error?m.message:"登录失败,请稍后重试",submitting:!1,lockedUntil:typeof w=="number"&&w>0?Date.now()+w:void 0})}};return C(re,{mode:"login",get children(){return[(()=>{var t=He(),m=t.firstChild,w=m.firstChild,S=w.nextSibling,r=m.nextSibling,e=r.firstChild,o=e.nextSibling,p=r.nextSibling;return t.addEventListener("submit",a),S.$$input=n=>_("email",n.currentTarget.value),o.$$input=n=>_("password",n.currentTarget.value),i(t,C(k,{get when(){return d.error},get children(){var n=G();return i(n,()=>d.error),n}}),p),i(p,(()=>{var n=z(()=>!!d.submitting);return()=>n()?"正在登录...":x()?"已锁定,请稍后重试":"登录"})()),f(n=>{var h=d.submitting,s=d.submitting,c=d.submitting||x();return h!==n.e&&(S.disabled=n.e=h),s!==n.t&&(o.disabled=n.t=s),c!==n.a&&(p.disabled=n.a=c),n},{e:void 0,t:void 0,a:void 0}),f(()=>S.value=d.email),f(()=>o.value=d.password),t})(),(()=>{var t=Le(),m=t.firstChild,w=m.nextSibling,S=w.nextSibling;return f(r=>{var e=`/register${location.search}`,o=`/forgot-password${location.search}`;return e!==r.e&&E(w,"href",r.e=e),o!==r.t&&E(S,"href",r.t=o),r},{e:void 0,t:void 0}),t})()]}})}function mt(){const l=ee(),u=W(),[d,_]=V(!1),[x,a]=V(!1),[t,m]=V(!1),[w,S]=V(Date.now()),[r,e]=N({name:"",email:"",password:"",confirmPassword:"",inviteCode:"",emailCode:"",submitting:!1,requestingCode:!1,requestHint:"",cooldownUntil:0,error:""});te(()=>{ve().then(c=>{_(!!c.inviteRequired),a(!!c.emailVerificationRequired)}).catch(()=>{_(!1),a(!1)});const s=window.setInterval(()=>S(Date.now()),250);ge(()=>window.clearInterval(s))});const o=Y(()=>Math.max(0,Math.ceil(((r.cooldownUntil??0)-w())/1e3))),p=Y(()=>o()>0),n=async()=>{if(r.requestingCode||r.submitting||p())return;const s=ue(r.email);if(s){e({error:s,requestHint:""});return}e({requestingCode:!0,error:"",requestHint:""});try{const c=await Te({email:r.email.trim()}),b=typeof c.retryAfterMs=="number"&&c.retryAfterMs>0?c.retryAfterMs:6e4;if(c.smtpUnreachable){m(!0),e({requestingCode:!1,requestHint:"无法连接邮件服务器,本次注册无需填写验证码。找回密码仍须邮件验证,收不到验证码请联系管理员。",error:"",cooldownUntil:Date.now()+b});return}m(!1),e({requestingCode:!1,requestHint:"验证码已发送,请查收邮箱后填入下方。",error:"",cooldownUntil:Date.now()+b})}catch(c){const b=c instanceof Error&&"retryAfterMs"in c?Number(c.retryAfterMs):void 0;e({requestingCode:!1,error:c instanceof Error?c.message:"发送验证码失败,请稍后重试",requestHint:"",...typeof b=="number"&&b>0?{cooldownUntil:Date.now()+b}:{}})}},h=async s=>{if(s.preventDefault(),!r.name.trim()||!r.email.trim()||!r.password){e("error","请输入账户、邮箱和密码");return}const c=lt(r.name);if(c){e("error",c);return}const b=ue(r.email);if(b){e("error",b);return}if(d()&&!(r.inviteCode??"").trim()){e("error","请填写邀请码");return}if(x()&&!t()&&!(r.emailCode??"").trim()){e("error","请填写邮箱验证码");return}if(r.password.length<8){e("error","密码至少需要 8 位");return}if(r.password!==r.confirmPassword){e("error","两次输入的密码不一致");return}e({submitting:!0,error:""});try{await fe(await Me({name:r.name.trim().toLowerCase(),email:r.email.trim(),password:r.password,...r.inviteCode?.trim()?{inviteCode:r.inviteCode.trim()}:{},...x()&&r.emailCode?.trim()?{emailCode:r.emailCode.trim()}:{}}),l.storage),u(pe(location.search),{replace:!0})}catch(g){e("error",g instanceof Error?g.message:"注册失败,请稍后重试"),e("submitting",!1)}};return C(re,{mode:"register",get children(){return[(()=>{var s=ze(),c=s.firstChild,b=c.firstChild,g=b.nextSibling,q=c.nextSibling,P=q.firstChild,M=P.nextSibling,U=q.nextSibling,F=U.firstChild,R=F.nextSibling,H=U.nextSibling,Q=H.firstChild,J=Q.nextSibling,B=H.nextSibling;return s.addEventListener("submit",h),g.$$input=$=>e("name",$.currentTarget.value),E(g,"spellcheck",!1),M.$$input=$=>{e("email",$.currentTarget.value),m(!1)},i(s,C(k,{get when(){return x()},get children(){var $=Ie(),T=$.firstChild,D=T.nextSibling,I=D.firstChild,L=I.nextSibling;return T.$$click=()=>void n(),i(T,(()=>{var y=z(()=>!!r.requestingCode);return()=>y()?"正在发送...":z(()=>!!p())()?`重新发送 (${o()}s)`:"发送验证码"})()),i($,C(k,{get when(){return r.requestHint},get children(){var y=Fe();return i(y,()=>r.requestHint),f(()=>_e(y,t()?"os-auth-hint":"os-account-success")),y}}),D),i(I,()=>t()?"邮箱验证码(可不填)":"邮箱验证码"),L.$$input=y=>e("emailCode",y.currentTarget.value),E(L,"spellcheck",!1),f(y=>{var j=r.requestingCode||r.submitting||p()||!r.email.trim(),K=t()?"邮件服务器不可达,可留空":"输入邮件中的验证码",O=r.submitting;return j!==y.e&&(T.disabled=y.e=j),K!==y.t&&E(L,"placeholder",y.t=K),O!==y.a&&(L.disabled=y.a=O),y},{e:void 0,t:void 0,a:void 0}),f(()=>L.value=r.emailCode??""),$}}),U),i(s,C(k,{get when(){return d()},get children(){var $=Ne(),T=$.firstChild,D=T.nextSibling;return D.$$input=I=>e("inviteCode",I.currentTarget.value),E(D,"spellcheck",!1),f(()=>D.value=r.inviteCode??""),$}}),U),R.$$input=$=>e("password",$.currentTarget.value),J.$$input=$=>e("confirmPassword",$.currentTarget.value),i(s,C(k,{get when(){return r.error},get children(){var $=G();return i($,()=>r.error),$}}),B),i(B,()=>r.submitting?"正在创建...":"创建账号"),f($=>{var T=r.submitting||r.requestingCode,D=r.submitting;return T!==$.e&&(M.disabled=$.e=T),D!==$.t&&(B.disabled=$.t=D),$},{e:void 0,t:void 0}),f(()=>g.value=r.name),f(()=>M.value=r.email),f(()=>R.value=r.password),f(()=>J.value=r.confirmPassword),s})(),(()=>{var s=Be(),c=s.firstChild,b=c.nextSibling;return f(()=>E(b,"href",`/login${location.search}`)),s})()]}})}function gt(){const l=W(),u=typeof location<"u"?new URLSearchParams(location.search).get("token")?.trim()??"":"",d=!!u,[_,x]=V(Date.now()),[a,t]=N({email:"",token:u,newPassword:"",confirmPassword:"",requesting:!1,submitting:!1,error:"",success:"",requestHint:"",cooldownUntil:0});te(()=>{const e=window.setInterval(()=>x(Date.now()),250);ge(()=>window.clearInterval(e))});const m=Y(()=>Math.max(0,Math.ceil((a.cooldownUntil-_())/1e3))),w=Y(()=>m()>0),S=async()=>{if(!(a.requesting||a.submitting||w())){if(!a.email.trim()){t({error:"请输入账号邮箱",success:"",requestHint:""});return}t({requesting:!0,error:"",success:"",requestHint:""});try{const e=await De({email:a.email.trim()}),o=typeof e.retryAfterMs=="number"&&e.retryAfterMs>0?e.retryAfterMs:6e4;t({requesting:!1,requestHint:"若该邮箱已注册,验证码将发送至邮箱。请查收后在下方完成重置。",error:"",cooldownUntil:Date.now()+o})}catch(e){const o=e instanceof Error&&"retryAfterMs"in e?Number(e.retryAfterMs):void 0;t({requesting:!1,error:e instanceof Error?e.message:"发送验证码失败,请稍后重试",requestHint:"",...typeof o=="number"&&o>0?{cooldownUntil:Date.now()+o}:{}})}}},r=async e=>{if(e.preventDefault(),!a.token.trim()){t({error:"请输入邮件验证码",success:""});return}if(a.newPassword.length<8){t({error:"新密码至少需要 8 位",success:""});return}if(a.newPassword!==a.confirmPassword){t({error:"两次输入的新密码不一致",success:""});return}t({submitting:!0,error:"",success:""});try{await Ee({token:a.token.trim(),newPassword:a.newPassword}),t({submitting:!1,error:"",success:"密码已重置,请使用新密码登录",newPassword:"",confirmPassword:""});const o=new URLSearchParams(location.search);o.delete("token");const p=o.toString();window.setTimeout(()=>l(`/login${p?`?${p}`:""}`,{replace:!0}),1200)}catch(o){t({submitting:!1,error:o instanceof Error?o.message:"重置密码失败,请稍后重试",success:""})}};return C(re,{mode:"forgot-password",get children(){return[C(k,{when:!d,get fallback(){return Qe()},get children(){return je()}}),C(k,{when:!d,get children(){var e=Oe(),o=e.firstChild,p=o.firstChild,n=p.nextSibling,h=o.nextSibling;return e.addEventListener("submit",s=>{s.preventDefault(),S()}),n.$$input=s=>t("email",s.currentTarget.value),i(h,(()=>{var s=z(()=>!!a.requesting);return()=>s()?"正在发送...":z(()=>!!w())()?`重新发送 (${m()}s)`:"获取验证码"})()),i(e,C(k,{get when(){return a.requestHint},get children(){var s=Z();return i(s,()=>a.requestHint),s}}),null),f(s=>{var c=a.requesting||a.submitting,b=a.requesting||a.submitting||w()||!a.email.trim();return c!==s.e&&(n.disabled=s.e=c),b!==s.t&&(h.disabled=s.t=b),s},{e:void 0,t:void 0}),f(()=>n.value=a.email),e}}),(()=>{var e=We(),o=e.firstChild,p=o.firstChild,n=p.nextSibling,h=o.nextSibling,s=h.firstChild,c=s.nextSibling,b=h.nextSibling;return e.addEventListener("submit",r),i(e,C(k,{when:!d,get children(){var g=Ve(),q=g.firstChild,P=q.nextSibling;return P.$$input=M=>t("token",M.currentTarget.value),f(()=>P.disabled=a.submitting),f(()=>P.value=a.token),g}}),o),n.$$input=g=>t("newPassword",g.currentTarget.value),c.$$input=g=>t("confirmPassword",g.currentTarget.value),i(e,C(k,{get when(){return a.error},get children(){var g=G();return i(g,()=>a.error),g}}),b),i(e,C(k,{get when(){return a.success},get children(){var g=Z();return i(g,()=>a.success),g}}),b),i(b,()=>a.submitting?"正在重置...":"重置密码"),f(g=>{var q=a.submitting,P=a.submitting,M=a.submitting;return q!==g.e&&(n.disabled=g.e=q),P!==g.t&&(c.disabled=g.t=P),M!==g.a&&(b.disabled=g.a=M),g},{e:void 0,t:void 0,a:void 0}),f(()=>n.value=a.newPassword),f(()=>c.value=a.confirmPassword),e})(),(()=>{var e=Ge(),o=e.firstChild,p=o.nextSibling;return f(n=>{var h=`/login${location.search}`,s=`/register${location.search}`;return h!==n.e&&E(o,"href",n.e=h),s!==n.t&&E(p,"href",n.t=s),n},{e:void 0,t:void 0}),e})()]}})}function ft(){const l=ee(),u=W(),d=de(),_=me(),[x,a]=N({loading:!0,error:""}),[t,m]=N({currentPassword:"",newPassword:"",confirmPassword:"",submitting:!1,error:"",success:""});te(()=>{const o=Ce();if(!o){a({loading:!1,error:"当前未登录"});return}ye(o).then(p=>a({session:p,loading:!1,error:""})).catch(p=>a({loading:!1,error:p instanceof Error?p.message:"会话已失效"}))});const w=()=>{if(l.platform==="desktop"){u("/login",{replace:!0});return}location.assign("/login")},S=()=>{oe(l.storage).finally(()=>w())},r=async()=>{try{await Ue(),le({variant:"success",icon:"circle-check",title:d.t("account.deleteAccount.toast.success")}),await oe(l.storage),w()}catch(o){le({variant:"error",title:d.t("account.deleteAccount.toast.error"),description:o instanceof Error?o.message:"请稍后重试"})}},e=async(o,p)=>{if(o.preventDefault(),!t.currentPassword||!t.newPassword||!t.confirmPassword){m({error:"请输入当前密码和新密码",success:""});return}if(t.newPassword.length<8){m({error:"新密码至少需要 8 位",success:""});return}if(t.currentPassword===t.newPassword){m({error:"新密码不能与当前密码相同",success:""});return}if(t.newPassword!==t.confirmPassword){m({error:"两次输入的新密码不一致",success:""});return}m({submitting:!0,error:"",success:""});try{await Re({accountId:p.account.id,currentPassword:t.currentPassword,newPassword:t.newPassword}),m({currentPassword:"",newPassword:"",confirmPassword:"",submitting:!1,error:"",success:"密码已更新,下次登录请使用新密码"})}catch(n){m({submitting:!1,error:n instanceof Error?n.message:"修改密码失败,请稍后重试",success:""})}};return(()=>{var o=Je(),p=o.firstChild;return i(p,C(k,{get when(){return!x.loading},get fallback(){return Ke()},get children(){return C(k,{get when(){return x.session},get fallback(){return(()=>{var n=Xe(),h=n.firstChild,s=h.nextSibling;return s.nextSibling,i(h,()=>x.error||"当前未登录"),n})()},children:n=>[(()=>{var h=Ye(),s=h.firstChild,c=s.firstChild,b=c.nextSibling,g=b.firstChild,q=g.nextSibling,P=q.nextSibling,M=s.nextSibling,U=M.firstChild,F=U.nextSibling,R=F.nextSibling,H=R.nextSibling;return i(c,()=>st(n().account.name,n().account.email)),i(q,()=>n().account.name),i(P,()=>n().account.email),i(U,()=>at(n().account.status)),R.$$click=S,H.$$click=()=>_.show(()=>C(nt,{onConfirm:r})),i(H,()=>d.t("account.deleteAccount.button")),h})(),(()=>{var h=Ze(),s=h.firstChild,c=s.firstChild,b=c.nextSibling,g=b.nextSibling,q=s.nextSibling,P=q.firstChild;return i(g,()=>d.t("account.defaultProject.description")),i(P,()=>ce(n())||"未分配"),f(()=>E(P,"title",ce(n()))),h})(),(()=>{var h=et(),s=h.firstChild,c=s.firstChild,b=c.firstChild,g=b.nextSibling,q=g.firstChild,P=q.nextSibling;P.nextSibling;var M=c.nextSibling,U=M.nextSibling,F=U.firstChild,R=F.firstChild,H=R.nextSibling,Q=F.nextSibling,J=Q.firstChild,B=J.nextSibling,$=Q.nextSibling,T=$.firstChild,D=T.nextSibling,I=s.nextSibling,L=I.firstChild,y=L.nextSibling,j=y.firstChild,K=j.firstChild,O=K.nextSibling,ne=j.nextSibling,he=ne.firstChild,se=he.nextSibling,ae=ne.nextSibling,$e=ae.firstChild,ie=$e.nextSibling,X=ae.nextSibling;return i(g,()=>ot(n().expiresAt),P),i(H,()=>n().account.name),i(B,()=>n().account.email),i(D,()=>it(n().account.timeCreated)),y.addEventListener("submit",A=>e(A,n())),O.$$input=A=>m("currentPassword",A.currentTarget.value),se.$$input=A=>m("newPassword",A.currentTarget.value),ie.$$input=A=>m("confirmPassword",A.currentTarget.value),i(y,C(k,{get when(){return t.error},get children(){var A=G();return i(A,()=>t.error),A}}),X),i(y,C(k,{get when(){return t.success},get children(){var A=Z();return i(A,()=>t.success),A}}),X),i(X,()=>t.submitting?"正在更新...":"更新密码"),f(()=>X.disabled=t.submitting),f(()=>O.value=t.currentPassword),f(()=>se.value=t.newPassword),f(()=>ie.value=t.confirmPassword),h})()]})}})),o})()}function nt(l){const u=de(),d=me(),[_,x]=N({submitting:!1,error:""}),a=async()=>{x({submitting:!0,error:""});try{await l.onConfirm(),d.close()}catch(t){x({submitting:!1,error:t instanceof Error?t.message:u.t("account.deleteAccount.toast.error")})}};return C(xe,{get title(){return u.t("account.deleteAccount.title")},fit:!0,transition:!0,get children(){var t=tt(),m=t.firstChild,w=m.nextSibling,S=w.firstChild,r=S.nextSibling;return i(m,()=>u.t("account.deleteAccount.description")),i(t,C(k,{get when(){return _.error},get children(){var e=G();return i(e,()=>_.error),e}}),w),S.$$click=()=>d.close(),i(S,()=>u.t("common.cancel")),r.$$click=a,i(r,(()=>{var e=z(()=>!!_.submitting);return()=>e()?"注销中...":u.t("account.deleteAccount.confirm")})()),f(e=>{var o=_.submitting,p=_.submitting;return o!==e.e&&(S.disabled=e.e=o),p!==e.t&&(r.disabled=e.t=p),e},{e:void 0,t:void 0}),t}})}function re(l){const u=W(),d=()=>{qe(),u(Ae(location.search),{replace:!0})};return(()=>{var _=rt(),x=_.firstChild,a=x.firstChild,t=a.nextSibling,m=t.firstChild,w=m.nextSibling,S=w.firstChild;return a.$$click=d,i(m,C(Se,{})),i(t,()=>l.children,w),S.$$click=d,f(()=>E(x,"data-mode",l.mode)),_})()}function st(l,u){return(l.trim()||u.trim()||"OS").slice(0,2).toUpperCase()}function at(l){return l==="active"?"正常":l==="frozen"?"已冻结":l==="limited"?"已限流":l==="pending"?"待激活":l||"未知"}function ce(l){return Pe(l)??""}function it(l){return l?new Intl.DateTimeFormat("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(new Date(be(l))):"未记录"}function ot(l){const u=Math.ceil(Math.max(0,be(l)-Date.now())/36e5);return u<=0?"已":u<24?`${u} 小时后`:`${Math.ceil(u/24)} 天后`}function lt(l){const u=l.trim().toLowerCase();return u?/^[a-z][a-z0-9._-]{2,31}$/.test(u)?u.includes("..")||u.endsWith(".")||u.startsWith(".")?"账户名不能以点开头/结尾,也不能包含连续的点":"":"账户名须为 3–32 位,以小写字母开头,仅含小写字母、数字、点、下划线或连字符":"请填写账户名"}function ue(l){const u=l.trim().toLowerCase();return!u||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(u)||u.length>254?"请填写有效邮箱":""}function ct(l){const u=Math.max(1,Math.ceil(l/1e3));if(u<60)return`${u} 秒`;const d=Math.ceil(u/60);return d<60?`${d} 分钟`:"1 小时"}function be(l){return l<1e10?l*1e3:l}we(["input","click"]);export{ft as AccountCenterPage,gt as ForgotPasswordPage,dt as LoginPage,mt as RegisterPage};
1
+ import{k as ee,f as G,u as de,m as me,bm as F,ag as te,i,c as C,n as V,o as Y,t as v,b as we,S as k,R as z,Q as f,T as E,dG as ve,aI as ge,bz as _e,cJ as Ce,cK as ye,a5 as xe,M as Se,r as Pe,cL as fe,dH as ke,dI as pe,dJ as qe,dK as Ae,dL as Me,dM as Te,dN as De,dO as Ee,c_ as oe,dP as Ue,_ as le,dQ as Le}from"./index-CjqsrRCL.js";var J=v("<p class=os-auth-error>"),He=v('<form class=os-auth-form><label><span>账户 / 邮箱</span><input autocomplete=username placeholder=账户名或注册邮箱></label><label><span>密码</span><input autocomplete=current-password type=password placeholder=输入密码></label><button type=submit class="os-button os-button-primary os-auth-submit">'),Re=v("<div class=os-auth-links><span>还没有账号?</span><a>创建账号</a><a>忘记密码?"),Ie=v("<p>"),Ne=v('<div class=os-auth-email-verify><button type=button class="os-button os-button-secondary os-auth-submit"></button><label><span></span><input autocomplete=one-time-code>'),Fe=v("<label><span>邀请码</span><input autocomplete=one-time-code placeholder=请输入邀请码><small class=os-auth-hint>当前已开启注册审核,需填写有效邀请码才能注册。"),ze=v('<form class=os-auth-form><label><span>账户</span><input autocomplete=username placeholder="例如 researcher01"><small class=os-auth-hint>用作登录标识及个人工作区目录名称。长度 3–32 个字符,须以小写字母开头,仅可包含小写字母、数字、点(.)、下划线(_)与连字符(-)。</small></label><label><span>邮箱</span><input autocomplete=email inputmode=email placeholder=name@example.com><small class=os-auth-hint>用于账号找回与系统通知,亦可作为登录凭证。</small></label><label><span>密码</span><input autocomplete=new-password type=password placeholder="至少 8 位"></label><label><span>确认密码</span><input autocomplete=new-password type=password placeholder=再次输入密码></label><button type=submit class="os-button os-button-primary os-auth-submit">'),je=v("<div class=os-auth-links><span>已有账号?</span><a>去登录"),Oe=v('<p class=os-auth-hint style="margin:0 0 0.35rem">通过注册邮箱获取验证码后重置密码。若无法收到邮件,请联系管理员。'),Z=v("<p class=os-account-success>"),Be=v('<form class=os-auth-form><label><span>账号邮箱</span><input autocomplete=email inputmode=email placeholder=name@example.com></label><button type=submit class="os-button os-button-secondary os-auth-submit">'),Ve=v("<label><span>邮件验证码</span><input autocomplete=one-time-code placeholder=输入邮件中的验证码>"),Ge=v('<form class=os-auth-form><label><span>新密码</span><input autocomplete=new-password type=password placeholder="至少 8 位"></label><label><span>确认新密码</span><input autocomplete=new-password type=password placeholder=再次输入新密码></label><button type=submit class="os-button os-button-primary os-auth-submit">'),Je=v("<div class=os-auth-links><a>返回登录</a><a>创建账号"),Ke=v('<p class=os-auth-hint style="margin:0 0 0.35rem">请设置新密码以完成重置。'),Qe=v("<main class=os-account-page><div class=os-account-shell>"),We=v("<section class=os-account-loading><strong>正在加载账号信息</strong><span>请稍候"),Xe=v('<section class=os-account-empty-state><strong></strong><span>登录后可以查看账号资料和开发空间。</span><a href="/login?redirect=%2Faccount"class="os-button os-button-primary">去登录'),Ye=v('<header class=os-account-header><div class=os-account-identity><div class=os-account-avatar></div><div><span class=os-account-kicker>账号中心</span><h1></h1><p></p></div></div><div class=os-account-actions><span class=os-account-status></span><a href=/code class="os-button os-button-secondary">进入科研开发</a><button type=button class="os-button os-button-danger">退出登录</button><button type=button class="os-button os-button-danger">'),Ze=v("<section class=os-account-workspace-hero><div class=os-account-workspace-hero-copy><span class=os-account-kicker>默认项目</span><strong>default</strong><p></p></div><div class=os-account-workspace-hero-meta><code>"),et=v('<section class=os-account-content-grid><section class=os-account-panel><div class=os-account-panel-head><strong>基本资料</strong><span class=os-account-session-expiry title="这是当前浏览器登录会话的有效期(约 14 天),不是账号本身到期。重新登录即可续期,账号与工作区数据不受影响。">登录会话 <!>失效</span></div><p class=os-account-session-expiry-note>提示:上方倒计时是登录会话有效期,重新登录即可续期;账号与工作区数据不会因此删除。</p><dl class=os-account-field-grid><div><dt>账户</dt><dd></dd></div><div><dt>邮箱</dt><dd></dd></div><div><dt>创建时间</dt><dd></dd></div><div><dt>默认入口</dt><dd>科研开发工作台</dd></div></dl></section><section class=os-account-panel><div class=os-account-panel-head><strong>修改密码</strong><span>本地账号</span></div><form class=os-account-password-form><label><span>当前密码</span><input autocomplete=current-password type=password placeholder=输入当前密码></label><label><span>新密码</span><input autocomplete=new-password type=password placeholder="至少 8 位"></label><label><span>确认新密码</span><input autocomplete=new-password type=password placeholder=再次输入新密码></label><button type=submit class="os-button os-button-danger os-auth-submit">'),tt=v('<div class="flex flex-col gap-4 pl-6 pr-2.5 pb-3"><p class="text-14-regular text-text-strong"></p><div class="flex justify-end gap-2"><button type=button class="os-button os-button-secondary"></button><button type=button class="os-button os-button-danger">'),rt=v("<main class=os-auth-page><section class=os-auth-shell><button type=button class=os-auth-dismiss aria-label=关闭并返回浏览><span aria-hidden=true>×</span></button><section class=os-auth-panel><a class=os-auth-brand href=/></a><div class=os-auth-links><button type=button class=os-auth-link-button>暂不登录,继续浏览");function dt(){const l=ee(),u=G(),[d,_]=F({name:"",email:"",password:"",confirmPassword:"",submitting:!1,error:""}),x=()=>typeof d.lockedUntil=="number"&&d.lockedUntil>Date.now(),a=async t=>{if(t.preventDefault(),x()){_("error",`尝试次数过多,请在 ${ct(d.lockedUntil-Date.now())} 后重试`);return}if(!d.email.trim()||!d.password){_("error","请输入账户/邮箱和密码");return}_({submitting:!0,error:"",lockedUntil:void 0});try{await fe(await ke({email:d.email.trim(),password:d.password}),l.storage),u(pe(location.search),{replace:!0});return}catch(m){const w=m instanceof Error&&"retryAfterMs"in m?Number(m.retryAfterMs):void 0;_({error:m instanceof Error?m.message:"登录失败,请稍后重试",submitting:!1,lockedUntil:typeof w=="number"&&w>0?Date.now()+w:void 0})}};return C(re,{mode:"login",get children(){return[(()=>{var t=He(),m=t.firstChild,w=m.firstChild,S=w.nextSibling,r=m.nextSibling,e=r.firstChild,o=e.nextSibling,p=r.nextSibling;return t.addEventListener("submit",a),S.$$input=n=>_("email",n.currentTarget.value),o.$$input=n=>_("password",n.currentTarget.value),i(t,C(k,{get when(){return d.error},get children(){var n=J();return i(n,()=>d.error),n}}),p),i(p,(()=>{var n=z(()=>!!d.submitting);return()=>n()?"正在登录...":x()?"已锁定,请稍后重试":"登录"})()),f(n=>{var h=d.submitting,s=d.submitting,c=d.submitting||x();return h!==n.e&&(S.disabled=n.e=h),s!==n.t&&(o.disabled=n.t=s),c!==n.a&&(p.disabled=n.a=c),n},{e:void 0,t:void 0,a:void 0}),f(()=>S.value=d.email),f(()=>o.value=d.password),t})(),(()=>{var t=Re(),m=t.firstChild,w=m.nextSibling,S=w.nextSibling;return f(r=>{var e=`/register${location.search}`,o=`/forgot-password${location.search}`;return e!==r.e&&E(w,"href",r.e=e),o!==r.t&&E(S,"href",r.t=o),r},{e:void 0,t:void 0}),t})()]}})}function mt(){const l=ee(),u=G(),[d,_]=V(!1),[x,a]=V(!1),[t,m]=V(!1),[w,S]=V(Date.now()),[r,e]=F({name:"",email:"",password:"",confirmPassword:"",inviteCode:"",emailCode:"",submitting:!1,requestingCode:!1,requestHint:"",cooldownUntil:0,error:""});te(()=>{ve().then(c=>{_(!!c.inviteRequired),a(!!c.emailVerificationRequired)}).catch(()=>{_(!1),a(!1)});const s=window.setInterval(()=>S(Date.now()),250);ge(()=>window.clearInterval(s))});const o=Y(()=>Math.max(0,Math.ceil(((r.cooldownUntil??0)-w())/1e3))),p=Y(()=>o()>0),n=async()=>{if(r.requestingCode||r.submitting||p())return;const s=ue(r.email);if(s){e({error:s,requestHint:""});return}e({requestingCode:!0,error:"",requestHint:""});try{const c=await Te({email:r.email.trim()}),b=typeof c.retryAfterMs=="number"&&c.retryAfterMs>0?c.retryAfterMs:6e4;if(c.smtpUnreachable){m(!0),e({requestingCode:!1,requestHint:"无法连接邮件服务器,本次注册无需填写验证码。找回密码仍须邮件验证,收不到验证码请联系管理员。",error:"",cooldownUntil:Date.now()+b});return}m(!1),e({requestingCode:!1,requestHint:"验证码已发送,请查收邮箱后填入下方。",error:"",cooldownUntil:Date.now()+b})}catch(c){const b=c instanceof Error&&"retryAfterMs"in c?Number(c.retryAfterMs):void 0;e({requestingCode:!1,error:c instanceof Error?c.message:"发送验证码失败,请稍后重试",requestHint:"",...typeof b=="number"&&b>0?{cooldownUntil:Date.now()+b}:{}})}},h=async s=>{if(s.preventDefault(),!r.name.trim()||!r.email.trim()||!r.password){e("error","请输入账户、邮箱和密码");return}const c=lt(r.name);if(c){e("error",c);return}const b=ue(r.email);if(b){e("error",b);return}if(d()&&!(r.inviteCode??"").trim()){e("error","请填写邀请码");return}if(x()&&!t()&&!(r.emailCode??"").trim()){e("error","请填写邮箱验证码");return}if(r.password.length<8){e("error","密码至少需要 8 位");return}if(r.password!==r.confirmPassword){e("error","两次输入的密码不一致");return}e({submitting:!0,error:""});try{await fe(await Me({name:r.name.trim().toLowerCase(),email:r.email.trim(),password:r.password,...r.inviteCode?.trim()?{inviteCode:r.inviteCode.trim()}:{},...x()&&r.emailCode?.trim()?{emailCode:r.emailCode.trim()}:{}}),l.storage),u(pe(location.search),{replace:!0})}catch(g){e("error",g instanceof Error?g.message:"注册失败,请稍后重试"),e("submitting",!1)}};return C(re,{mode:"register",get children(){return[(()=>{var s=ze(),c=s.firstChild,b=c.firstChild,g=b.nextSibling,q=c.nextSibling,P=q.firstChild,M=P.nextSibling,U=q.nextSibling,I=U.firstChild,L=I.nextSibling,H=U.nextSibling,K=H.firstChild,Q=K.nextSibling,j=H.nextSibling;return s.addEventListener("submit",h),g.$$input=$=>e("name",$.currentTarget.value),E(g,"spellcheck",!1),M.$$input=$=>{e("email",$.currentTarget.value),m(!1)},i(s,C(k,{get when(){return x()},get children(){var $=Ne(),T=$.firstChild,D=T.nextSibling,N=D.firstChild,R=N.nextSibling;return T.$$click=()=>void n(),i(T,(()=>{var y=z(()=>!!r.requestingCode);return()=>y()?"正在发送...":z(()=>!!p())()?`重新发送 (${o()}s)`:"发送验证码"})()),i($,C(k,{get when(){return r.requestHint},get children(){var y=Ie();return i(y,()=>r.requestHint),f(()=>_e(y,t()?"os-auth-hint":"os-account-success")),y}}),D),i(N,()=>t()?"邮箱验证码(可不填)":"邮箱验证码"),R.$$input=y=>e("emailCode",y.currentTarget.value),E(R,"spellcheck",!1),f(y=>{var O=r.requestingCode||r.submitting||p()||!r.email.trim(),W=t()?"邮件服务器不可达,可留空":"输入邮件中的验证码",B=r.submitting;return O!==y.e&&(T.disabled=y.e=O),W!==y.t&&E(R,"placeholder",y.t=W),B!==y.a&&(R.disabled=y.a=B),y},{e:void 0,t:void 0,a:void 0}),f(()=>R.value=r.emailCode??""),$}}),U),i(s,C(k,{get when(){return d()},get children(){var $=Fe(),T=$.firstChild,D=T.nextSibling;return D.$$input=N=>e("inviteCode",N.currentTarget.value),E(D,"spellcheck",!1),f(()=>D.value=r.inviteCode??""),$}}),U),L.$$input=$=>e("password",$.currentTarget.value),Q.$$input=$=>e("confirmPassword",$.currentTarget.value),i(s,C(k,{get when(){return r.error},get children(){var $=J();return i($,()=>r.error),$}}),j),i(j,()=>r.submitting?"正在创建...":"创建账号"),f($=>{var T=r.submitting||r.requestingCode,D=r.submitting;return T!==$.e&&(M.disabled=$.e=T),D!==$.t&&(j.disabled=$.t=D),$},{e:void 0,t:void 0}),f(()=>g.value=r.name),f(()=>M.value=r.email),f(()=>L.value=r.password),f(()=>Q.value=r.confirmPassword),s})(),(()=>{var s=je(),c=s.firstChild,b=c.nextSibling;return f(()=>E(b,"href",`/login${location.search}`)),s})()]}})}function gt(){const l=G(),u=typeof location<"u"?new URLSearchParams(location.search).get("token")?.trim()??"":"",d=!!u,[_,x]=V(Date.now()),[a,t]=F({email:"",token:u,newPassword:"",confirmPassword:"",requesting:!1,submitting:!1,error:"",success:"",requestHint:"",cooldownUntil:0});te(()=>{const e=window.setInterval(()=>x(Date.now()),250);ge(()=>window.clearInterval(e))});const m=Y(()=>Math.max(0,Math.ceil((a.cooldownUntil-_())/1e3))),w=Y(()=>m()>0),S=async()=>{if(!(a.requesting||a.submitting||w())){if(!a.email.trim()){t({error:"请输入账号邮箱",success:"",requestHint:""});return}t({requesting:!0,error:"",success:"",requestHint:""});try{const e=await De({email:a.email.trim()}),o=typeof e.retryAfterMs=="number"&&e.retryAfterMs>0?e.retryAfterMs:6e4;t({requesting:!1,requestHint:"若该邮箱已注册,验证码将发送至邮箱。请查收后在下方完成重置。",error:"",cooldownUntil:Date.now()+o})}catch(e){const o=e instanceof Error&&"retryAfterMs"in e?Number(e.retryAfterMs):void 0;t({requesting:!1,error:e instanceof Error?e.message:"发送验证码失败,请稍后重试",requestHint:"",...typeof o=="number"&&o>0?{cooldownUntil:Date.now()+o}:{}})}}},r=async e=>{if(e.preventDefault(),!a.token.trim()){t({error:"请输入邮件验证码",success:""});return}if(a.newPassword.length<8){t({error:"新密码至少需要 8 位",success:""});return}if(a.newPassword!==a.confirmPassword){t({error:"两次输入的新密码不一致",success:""});return}t({submitting:!0,error:"",success:""});try{await Ee({token:a.token.trim(),newPassword:a.newPassword}),t({submitting:!1,error:"",success:"密码已重置,请使用新密码登录",newPassword:"",confirmPassword:""});const o=new URLSearchParams(location.search);o.delete("token");const p=o.toString();window.setTimeout(()=>l(`/login${p?`?${p}`:""}`,{replace:!0}),1200)}catch(o){t({submitting:!1,error:o instanceof Error?o.message:"重置密码失败,请稍后重试",success:""})}};return C(re,{mode:"forgot-password",get children(){return[C(k,{when:!d,get fallback(){return Ke()},get children(){return Oe()}}),C(k,{when:!d,get children(){var e=Be(),o=e.firstChild,p=o.firstChild,n=p.nextSibling,h=o.nextSibling;return e.addEventListener("submit",s=>{s.preventDefault(),S()}),n.$$input=s=>t("email",s.currentTarget.value),i(h,(()=>{var s=z(()=>!!a.requesting);return()=>s()?"正在发送...":z(()=>!!w())()?`重新发送 (${m()}s)`:"获取验证码"})()),i(e,C(k,{get when(){return a.requestHint},get children(){var s=Z();return i(s,()=>a.requestHint),s}}),null),f(s=>{var c=a.requesting||a.submitting,b=a.requesting||a.submitting||w()||!a.email.trim();return c!==s.e&&(n.disabled=s.e=c),b!==s.t&&(h.disabled=s.t=b),s},{e:void 0,t:void 0}),f(()=>n.value=a.email),e}}),(()=>{var e=Ge(),o=e.firstChild,p=o.firstChild,n=p.nextSibling,h=o.nextSibling,s=h.firstChild,c=s.nextSibling,b=h.nextSibling;return e.addEventListener("submit",r),i(e,C(k,{when:!d,get children(){var g=Ve(),q=g.firstChild,P=q.nextSibling;return P.$$input=M=>t("token",M.currentTarget.value),f(()=>P.disabled=a.submitting),f(()=>P.value=a.token),g}}),o),n.$$input=g=>t("newPassword",g.currentTarget.value),c.$$input=g=>t("confirmPassword",g.currentTarget.value),i(e,C(k,{get when(){return a.error},get children(){var g=J();return i(g,()=>a.error),g}}),b),i(e,C(k,{get when(){return a.success},get children(){var g=Z();return i(g,()=>a.success),g}}),b),i(b,()=>a.submitting?"正在重置...":"重置密码"),f(g=>{var q=a.submitting,P=a.submitting,M=a.submitting;return q!==g.e&&(n.disabled=g.e=q),P!==g.t&&(c.disabled=g.t=P),M!==g.a&&(b.disabled=g.a=M),g},{e:void 0,t:void 0,a:void 0}),f(()=>n.value=a.newPassword),f(()=>c.value=a.confirmPassword),e})(),(()=>{var e=Je(),o=e.firstChild,p=o.nextSibling;return f(n=>{var h=`/login${location.search}`,s=`/register${location.search}`;return h!==n.e&&E(o,"href",n.e=h),s!==n.t&&E(p,"href",n.t=s),n},{e:void 0,t:void 0}),e})()]}})}function ft(){const l=ee(),u=G(),d=de(),_=me(),[x,a]=F({loading:!0,error:""}),[t,m]=F({currentPassword:"",newPassword:"",confirmPassword:"",submitting:!1,error:"",success:""});te(()=>{const o=Ce();if(!o){a({loading:!1,error:"当前未登录"});return}ye(o).then(p=>a({session:p,loading:!1,error:""})).catch(p=>a({loading:!1,error:p instanceof Error?p.message:"会话已失效"}))});const w=()=>{if(l.platform==="desktop"){u("/login",{replace:!0});return}location.assign("/login")},S=()=>{oe(l.storage).finally(()=>w())},r=async()=>{try{await Ue(),le({variant:"success",icon:"circle-check",title:d.t("account.deleteAccount.toast.success")}),await oe(l.storage),w()}catch(o){le({variant:"error",title:d.t("account.deleteAccount.toast.error"),description:o instanceof Error?o.message:"请稍后重试"})}},e=async(o,p)=>{if(o.preventDefault(),!t.currentPassword||!t.newPassword||!t.confirmPassword){m({error:"请输入当前密码和新密码",success:""});return}if(t.newPassword.length<8){m({error:"新密码至少需要 8 位",success:""});return}if(t.currentPassword===t.newPassword){m({error:"新密码不能与当前密码相同",success:""});return}if(t.newPassword!==t.confirmPassword){m({error:"两次输入的新密码不一致",success:""});return}m({submitting:!0,error:"",success:""});try{await Le({accountId:p.account.id,currentPassword:t.currentPassword,newPassword:t.newPassword}),m({currentPassword:"",newPassword:"",confirmPassword:"",submitting:!1,error:"",success:"密码已更新,下次登录请使用新密码"})}catch(n){m({submitting:!1,error:n instanceof Error?n.message:"修改密码失败,请稍后重试",success:""})}};return(()=>{var o=Qe(),p=o.firstChild;return i(p,C(k,{get when(){return!x.loading},get fallback(){return We()},get children(){return C(k,{get when(){return x.session},get fallback(){return(()=>{var n=Xe(),h=n.firstChild,s=h.nextSibling;return s.nextSibling,i(h,()=>x.error||"当前未登录"),n})()},children:n=>[(()=>{var h=Ye(),s=h.firstChild,c=s.firstChild,b=c.nextSibling,g=b.firstChild,q=g.nextSibling,P=q.nextSibling,M=s.nextSibling,U=M.firstChild,I=U.nextSibling,L=I.nextSibling,H=L.nextSibling;return i(c,()=>st(n().account.name,n().account.email)),i(q,()=>n().account.name),i(P,()=>n().account.email),i(U,()=>at(n().account.status)),L.$$click=S,H.$$click=()=>_.show(()=>C(nt,{onConfirm:r})),i(H,()=>d.t("account.deleteAccount.button")),h})(),(()=>{var h=Ze(),s=h.firstChild,c=s.firstChild,b=c.nextSibling,g=b.nextSibling,q=s.nextSibling,P=q.firstChild;return i(g,()=>d.t("account.defaultProject.description")),i(P,()=>ce(n())||"未分配"),f(()=>E(P,"title",ce(n()))),h})(),(()=>{var h=et(),s=h.firstChild,c=s.firstChild,b=c.firstChild,g=b.nextSibling,q=g.firstChild,P=q.nextSibling;P.nextSibling;var M=c.nextSibling,U=M.nextSibling,I=U.firstChild,L=I.firstChild,H=L.nextSibling,K=I.nextSibling,Q=K.firstChild,j=Q.nextSibling,$=K.nextSibling,T=$.firstChild,D=T.nextSibling,N=s.nextSibling,R=N.firstChild,y=R.nextSibling,O=y.firstChild,W=O.firstChild,B=W.nextSibling,ne=O.nextSibling,he=ne.firstChild,se=he.nextSibling,ae=ne.nextSibling,$e=ae.firstChild,ie=$e.nextSibling,X=ae.nextSibling;return i(g,()=>ot(n().expiresAt),P),i(H,()=>n().account.name),i(j,()=>n().account.email),i(D,()=>it(n().account.timeCreated)),y.addEventListener("submit",A=>e(A,n())),B.$$input=A=>m("currentPassword",A.currentTarget.value),se.$$input=A=>m("newPassword",A.currentTarget.value),ie.$$input=A=>m("confirmPassword",A.currentTarget.value),i(y,C(k,{get when(){return t.error},get children(){var A=J();return i(A,()=>t.error),A}}),X),i(y,C(k,{get when(){return t.success},get children(){var A=Z();return i(A,()=>t.success),A}}),X),i(X,()=>t.submitting?"正在更新...":"更新密码"),f(()=>X.disabled=t.submitting),f(()=>B.value=t.currentPassword),f(()=>se.value=t.newPassword),f(()=>ie.value=t.confirmPassword),h})()]})}})),o})()}function nt(l){const u=de(),d=me(),[_,x]=F({submitting:!1,error:""}),a=async()=>{x({submitting:!0,error:""});try{await l.onConfirm(),d.close()}catch(t){x({submitting:!1,error:t instanceof Error?t.message:u.t("account.deleteAccount.toast.error")})}};return C(xe,{get title(){return u.t("account.deleteAccount.title")},fit:!0,transition:!0,get children(){var t=tt(),m=t.firstChild,w=m.nextSibling,S=w.firstChild,r=S.nextSibling;return i(m,()=>u.t("account.deleteAccount.description")),i(t,C(k,{get when(){return _.error},get children(){var e=J();return i(e,()=>_.error),e}}),w),S.$$click=()=>d.close(),i(S,()=>u.t("common.cancel")),r.$$click=a,i(r,(()=>{var e=z(()=>!!_.submitting);return()=>e()?"注销中...":u.t("account.deleteAccount.confirm")})()),f(e=>{var o=_.submitting,p=_.submitting;return o!==e.e&&(S.disabled=e.e=o),p!==e.t&&(r.disabled=e.t=p),e},{e:void 0,t:void 0}),t}})}function re(l){const u=G(),d=()=>{qe(),u(Ae(location.search),{replace:!0})};return(()=>{var _=rt(),x=_.firstChild,a=x.firstChild,t=a.nextSibling,m=t.firstChild,w=m.nextSibling,S=w.firstChild;return a.$$click=d,i(m,C(Se,{})),i(t,()=>l.children,w),S.$$click=d,f(()=>E(x,"data-mode",l.mode)),_})()}function st(l,u){return(l.trim()||u.trim()||"OS").slice(0,2).toUpperCase()}function at(l){return l==="active"?"正常":l==="frozen"?"已冻结":l==="limited"?"已限流":l==="pending"?"待激活":l||"未知"}function ce(l){return Pe(l)??""}function it(l){return l?new Intl.DateTimeFormat("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(new Date(be(l))):"未记录"}function ot(l){const u=Math.ceil(Math.max(0,be(l)-Date.now())/36e5);return u<=0?"已":u<24?`${u} 小时后`:`${Math.ceil(u/24)} 天后`}function lt(l){const u=l.trim().toLowerCase();return u?/^[a-z][a-z0-9._-]{2,31}$/.test(u)?u.includes("..")||u.endsWith(".")||u.startsWith(".")?"账户名不能以点开头/结尾,也不能包含连续的点":"":"账户名须为 3–32 位,以小写字母开头,仅含小写字母、数字、点、下划线或连字符":"请填写账户名"}function ue(l){const u=l.trim().toLowerCase();return!u||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(u)||u.length>254?"请填写有效邮箱":""}function ct(l){const u=Math.max(1,Math.ceil(l/1e3));if(u<60)return`${u} 秒`;const d=Math.ceil(u/60);return d<60?`${d} 分钟`:"1 小时"}function be(l){return l<1e10?l*1e3:l}we(["input","click"]);export{ft as AccountCenterPage,gt as ForgotPasswordPage,dt as LoginPage,mt as RegisterPage};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609071804/assets/alert-04-CaGsIGFP.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/alert-01-BuOD_o_q.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609071804/assets/alert-05-D2gbGoRH.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/alert-02-CS75AsoP.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609071804/assets/alert-01-BuOD_o_q.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/alert-04-CaGsIGFP.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609071804/assets/alert-02-CS75AsoP.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/alert-05-D2gbGoRH.aac";export{e as default};
@@ -0,0 +1 @@
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/alert-06-GK5Tqy6u.aac";export{e as default};
@@ -0,0 +1 @@
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/alert-07-0r0kiLGz.aac";export{e as default};
@@ -0,0 +1 @@
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/alert-08-CZowNquU.aac";export{e as default};
@@ -0,0 +1 @@
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/alert-10-Ck5hR7zH.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609071804/assets/bip-bop-03-DXp7Zb0f.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/bip-bop-03-DXp7Zb0f.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609071804/assets/bip-bop-04-CfVtpI7z.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/bip-bop-04-CfVtpI7z.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609071804/assets/bip-bop-06-BuvNosjK.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/bip-bop-06-BuvNosjK.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609071804/assets/bip-bop-08-DBf7Bwjz.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/bip-bop-08-DBf7Bwjz.aac";export{e as default};
@@ -0,0 +1 @@
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609081145/assets/bip-bop-09-CxEgoAHQ.aac";export{e as default};
@@ -0,0 +1,5 @@
1
+ import{b as Ae,n as D,c as l,i as t,S as u,Q as C,b6 as Vt,t as i,b7 as Jt,X as Ge,b8 as wt,b9 as Xe,aX as Ze,r as et,s as fe,aZ as tt,Z as St,ba as Ct,Y as kt,_ as xe,E as It,bb as Yt,bc as xt,bd as Lt,l as We,h as qe,e as at,f as Me,o as se,aY as Fe,be as Dt,bf as Xt,x as Pt,R as ce,T as Q,F as ee,g as lt,ag as Ve,bg as Et,bh as Zt,bi as ea,bj as He,ak as Tt,bk as ta,bl as aa,bm as la,bn as Je,bo as na,bp as pt,bq as ra,br as gt,a$ as ia,bs as Te,bt as sa,bu as nt,bv as oa,L as bt,bw as ca}from"./index-CjqsrRCL.js";import{m as da,O as ua,S as pa,s as ga}from"./onescience-LsLZkI7t.js";import{d as ba,r as ha,s as ht,w as va}from"./selection-DZfvLSGx.js";import{s as $a,a as vt,b as ya,S as ma}from"./wizard-CV21yDeu.js";import"./onescience-docs-CH5KBTI9.js";var fa=i("<p class=os-client-capability-upload-error role=alert>"),_a=i('<div class=os-client-capability-wizard-overlay role=dialog aria-modal=true aria-label=上传私有模型><button type=button class=os-client-capability-wizard-backdrop aria-label=关闭上传></button><form class=os-client-capability-upload-dialog><header class=os-client-capability-upload-head><div class=os-client-capability-upload-head-copy><div class=os-client-capability-upload-eyebrow>私有资产 · 模型</div><h2>上传私有模型</h2><p>填写与模型卡片一致的基础信息。保存后会出现在当前领域的 onemodel 列表,并标注为私有资产。</p></div><button type=button class=os-client-capability-upload-close aria-label=关闭>×</button></header><div class=os-client-capability-upload-notice role=note><strong>后台登记为 AI 原语</strong><p>AI 原语是后台知识资产体系,不对用户单独展示。上传后会自动登记,供 Agent 检索与编排时利用该模型知识。</p></div><div class=os-client-capability-upload-body><label class=os-client-capability-upload-field><span>名称<span class=os-client-capability-upload-required> *</span></span><small>显示在模型卡片标题</small><input maxlength=64 required placeholder="例如:团队内部微调 MACE"></label><label class=os-client-capability-upload-field><span>简介<span class=os-client-capability-upload-required> *</span></span><small>对应卡片正文,建议 1–2 句说明用途与适用场景</small><textarea maxlength=160 required rows=3 placeholder="例如:面向界面体系的内部势函数,可用于弛豫与短时程 MD 冒烟"></textarea></label><div class=os-client-capability-upload-grid data-cols=2><label class=os-client-capability-upload-field><span>标签<span class=os-client-capability-upload-required> *</span></span><small>逗号分隔,将显示为卡片标签;系统会自动加上「私有」</small><input required placeholder="例如:mlff, 界面, 内部模型"></label><label class=os-client-capability-upload-field><span>领域</span><small>跟随当前能力中心领域,卡片会出现在该领域下</small><input class=is-readonly readonly></label></div></div><footer class=os-client-capability-upload-actions><button type=button>取消</button><button type=submit data-primary=true>保存并发布');function wa(e){return e.split(/[,,、]/).map(a=>a.trim()).filter(Boolean)}function Sa(e){const[a,r]=D(""),[s,n]=D(""),[c,g]=D(""),[b,k]=D(""),L=()=>{r(""),n(""),g(""),k("")},m=()=>{L(),e.onClose()},f=p=>{p.preventDefault();const d=a().trim(),T=s().trim(),$=wa(c());if(!d||!T||$.length===0){k("请填写名称、简介和至少一个标签,以便生成与现有模型卡片一致的展示信息。");return}const q=Jt({name:d,blurb:T,tags:$,domain:e.domain});e.onSaved({id:q.id,name:q.name}),m()};return l(u,{get when(){return e.open},get children(){var p=_a(),d=p.firstChild,T=d.nextSibling,$=T.firstChild,q=$.firstChild,j=q.nextSibling,te=$.nextSibling,o=te.nextSibling,P=o.firstChild,de=P.firstChild,M=de.nextSibling,X=M.nextSibling,x=P.nextSibling,U=x.firstChild,F=U.nextSibling,v=F.nextSibling,I=x.nextSibling,_=I.firstChild,A=_.firstChild,ae=A.nextSibling,Y=ae.nextSibling,w=_.nextSibling,N=w.firstChild,ue=N.nextSibling,_e=ue.nextSibling,Ce=o.nextSibling,we=Ce.firstChild;return d.$$click=m,T.addEventListener("submit",f),j.$$click=m,X.$$input=le=>r(le.currentTarget.value),v.$$input=le=>n(le.currentTarget.value),Y.$$input=le=>g(le.currentTarget.value),t(T,l(u,{get when(){return b()},get children(){var le=fa();return t(le,b),le}}),Ce),we.$$click=m,C(()=>X.value=a()),C(()=>v.value=s()),C(()=>Y.value=c()),C(()=>_e.value=Vt(e.domain)),p}})}Ae(["click","input"]);function Ca(e,a){return e.includes("modelscope download --model ")?e:`${e}
2
+
3
+ 【从魔搭下载模型】
4
+ ${da(a,{kind:"local"})}`}function ka(e){const a=wt(e);if(!a)throw new Error(`Unknown capability resource: ${e}`);if(!Xe(a))throw new Error(`Capability resource is not installable: ${e}`);const r=Yt(a);return{banner:a.install.banner,prompt:r?Ca(a.install.prompt,r):a.install.prompt}}function Ot(e){if(!Ge({navigate:e.navigate,action:{type:"install",resourceId:e.resourceId},isLoggedIn:e.isLoggedIn}))return!1;const a=wt(e.resourceId);if(!a||!Xe(a))return!1;const{banner:r,prompt:s}=ka(e.resourceId),n=Ze({path:e.path,recent:e.recent,lastCodeWorkspace:e.lastCodeWorkspace})||et(fe())||tt(document,e.path);if(!n)return!1;const c=St(n);return Ct(c,s),kt(c),e.openProject?.(n),e.touchCode?.(n),xe({variant:"success",title:r}),e.navigate(It(n)),!0}async function oe(e,a,r){const s=await xt(`${Lt(e)}${a}`,{...r,headers:{"content-type":"application/json",...r?.headers??{}}});if(!s.ok){const n=await s.text().catch(()=>"");throw new Error(n||`Request failed (${s.status})`)}return await s.json()}function Ia(e,a){const r=new URLSearchParams;return a?.domain&&a.domain!=="all"&&r.set("domain",a.domain),oe(e,`/experimental/onescience/raw-source?${r}`)}function xa(e,a){const r=new URLSearchParams({scope:a.scope});return a.domain&&a.domain!=="all"&&r.set("domain",a.domain),oe(e,`/experimental/onescience/already?${r}`)}function La(e,a){return oe(e,"/experimental/onescience/raw-source",{method:"POST",body:JSON.stringify(a)})}function Da(e,a){return oe(e,`/experimental/onescience/raw-source/${encodeURIComponent(a)}/convert`,{method:"POST"})}function Pa(e,a,r){const s=new URLSearchParams;r&&s.set("viewer_workspace_id",r);const n=s.size?`?${s}`:"";return oe(e,`/experimental/onescience/raw-source/${encodeURIComponent(a)}/preview${n}`)}function Ea(e,a,r){const s=new URLSearchParams;r&&s.set("viewer_workspace_id",r);const n=s.size?`?${s}`:"";return oe(e,`/experimental/onescience/already/${encodeURIComponent(a)}/preview${n}`)}function Ta(e,a,r){return oe(e,`/experimental/onescience/session/${encodeURIComponent(a)}/chips`,{method:"PUT",body:JSON.stringify({raw_ids:r})})}function Oa(e,a){return oe(e,`/experimental/onescience/already/${encodeURIComponent(a)}/publish`,{method:"POST"})}function Ra(e,a){return oe(e,`/experimental/onescience/already/${encodeURIComponent(a)}/unpublish`,{method:"POST"})}function ja(e,a){return oe(e,`/experimental/onescience/already/${encodeURIComponent(a)}/reingest`,{method:"POST"})}function Ua(e,a,r){return oe(e,`/experimental/onescience/already/${encodeURIComponent(a)}/training`,{method:"POST",body:JSON.stringify(r)})}function Aa(e){return oe(e,"/experimental/workspace")}function Wa(e){return oe(e,"/experimental/onescience/object-store-key")}function qa(e,a){return oe(e,"/experimental/onescience/object-store-key",{method:"PUT",body:JSON.stringify(a)})}function Ma(e,a){return oe(e,`/experimental/onescience/object-store-key/${encodeURIComponent(a)}`,{method:"DELETE"})}const Fa={all:"全部",weather:"地球科学",materials:"材料化学",bio:"生命科学",fluid:"流体仿真"};function Ka(e){switch(e){case"local_fs":return"本机";case"http_dataset":return"公开网址";case"object_store":return"对象存储";case"remote_workspace":return"远端";case"onedata_ref":return"公开数据引用";default:return"其他"}}function za(e){return e==="ready"?"可训练":"未就绪"}function Ue(e){switch(e){case"s3":return"Amazon S3";case"oss":return"阿里云 OSS";case"cos":return"腾讯云 COS"}}function Ba(e){const a=e.trim().toLowerCase();if(a.startsWith("http://")||a.startsWith("https://"))return"http_dataset";if(a.startsWith("s3://")||a.startsWith("oss://")||a.startsWith("cos://"))return"object_store"}function Ha(e){switch(e){case"local_fs":return"本机文件或目录路径";case"http_dataset":return"公开可访问的网址";case"object_store":return"对象存储路径或地址";case"remote_workspace":return"远端机器上的文件路径"}}function $t(e){return!e||e<=0?"":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(1)} GB`}var Qa=i("<div class=os-onedata-subtabs role=tablist aria-label=可训练数据范围><button type=button>我的</button><button type=button>已公开"),Na=i("<p class=os-client-capability-empty>登录后才能查看和接入自己的数据。"),Ga=i("<p class=os-onedata-error>"),Va=i("<label class=os-onedata-field><span>远端环境</span><select required><option value>选择已连接的远端"),Ja=i("<form class=os-onedata-register><strong>接入原始数据</strong><label class=os-onedata-field><span>名称</span><input placeholder=可选,不填则使用路径或网址></label><label class=os-onedata-field><span>数据位置</span><input required></label><label class=os-onedata-field><span>来源</span><select><option value=local_fs>本机文件</option><option value=http_dataset>公开网址</option><option value=object_store>对象存储</option><option value=remote_workspace>已连接的远端</option></select></label><button type=submit>接入"),Qe=i("<ul class=os-onedata-list>"),Ya=i('<details class=os-onedata-advanced><summary>对象存储密钥</summary><p>使用个人桶时需要先保存对应云厂商的密钥,界面只保留末几位。</p><form class="os-onedata-register os-onedata-register-nested"><label class=os-onedata-field><span>云厂商</span><select><option value=s3></option><option value=oss></option><option value=cos></option></select></label><label class=os-onedata-field><span>访问密钥 ID</span><input required></label><label class=os-onedata-field><span>密钥</span><input required type=password></label><label class=os-onedata-field><span>服务地址(可选)</span><input></label><label class=os-onedata-field><span>地域(可选)</span><input></label><button type=submit>保存密钥'),Xa=i("<p class=os-client-capability-empty>还没有原始数据。可从公开目录下载后登记,或直接填入本机路径、公开网址、已连接远端路径。"),Za=i("<button type=button class=os-onedata-chip-btn>把选中的原始数据加入当前对话"),yt=i("<pre class=os-onedata-preview>"),el=i("<label class=os-onedata-field><span>远端环境</span><select><option value>选择远端环境"),tl=i("<div class=os-onedata-actions><label class=os-onedata-field><span>训练位置</span><select><option value=local>本机</option><option value=workspace>已连接的远端</option><option value=shared_root>平台共享盘"),al=i("<p class=os-client-capability-empty>"),ll=i('<section class="os-client-capability-resource-panel os-onedata-catalog"><header class="os-client-capability-page-section-head os-client-capability-page-section-head-active"><p></p></header><div class=os-onedata-subtabs role=tablist aria-label="OneData 内容"><button type=button>公开目录</button><button type=button>原始数据</button><button type=button>可训练数据'),mt=i("<option>"),nl=i("<li><span> · 末位 </span><button type=button>删除"),rl=i("<li><label><input type=checkbox><strong></strong><span></span><small></small></label><div class=os-onedata-actions><button type=button>预览</button><button type=button>转为可训练数据"),il=i("<button type=button>发布"),sl=i("<button type=button>取消发布"),ol=i("<button type=button>接入为我的原始数据"),cl=i("<button type=button>开始训练"),dl=i("<li><strong></strong><span></span><small></small><div class=os-onedata-actions><button type=button>预览");function ul(e){const a=We(),r=qe(),s=at(),n=Me(),c=se(()=>new URLSearchParams(s.search)),g=se(()=>{const y=c().get("onedata");return y==="already"?"already":y==="raw"?"raw":"catalog"}),b=se(()=>c().get("already")==="public"?"public":"mine"),[k,L]=D([]),[m,f]=D([]),[p,d]=D(""),[T,$]=D(!1),[q,j]=D(""),[te,o]=D(""),[P,de]=D("local_fs"),[M,X]=D(""),[x,U]=D([]),[F,v]=D(""),[I,_]=D([]),[A,ae]=D("local"),[Y,w]=D([]),[N,ue]=D("s3"),[_e,Ce]=D(""),[we,le]=D(""),[he,Ke]=D(""),[Le,ze]=D(""),K=()=>a.current?.http.url,Re=()=>!!fe(),Mt=se(()=>Ze({path:r.data.path,recent:Fe(r.data.project??[]),lastCodeWorkspace:a.projects.lastCode()})||Dt(fe(),a.projects.lastCode())||et(fe())||tt(document,r.data.path)),rt=se(()=>{const y=Mt();if(!y)return;const G=Xt(y);if(G)return G;const[ve]=r.child(y,{bootstrap:!1});return(ve.session??[]).find(pe=>!pe.parentID&&!pe.time?.archived)?.id}),Ft=se(()=>Fa[e.domain]),Kt=se(()=>g()==="raw"?"把本机、公开网址或已连接远端上的数据登记进来。登记后可以预览,但不能直接训练。":g()==="already"?"可训练数据来自原始数据转化,或对话加工完成后的回写。只有就绪的数据能给模型使用。":`${e.copy.replace(/[。.]$/,"")}。下载后请到「原始数据」登记,转为可训练数据后才能给模型使用。`),Pe=y=>{const G=new URLSearchParams(s.search);for(const[ve,pe]of Object.entries(y))pe?G.set(ve,pe):G.delete(ve);G.set("category","onedata"),n(`${s.pathname}?${G}`)},Be=y=>Pe({onedata:y==="catalog"?"":y}),ye=async()=>{const y=K();if(!y||!Re()){L([]),f([]);return}d("");try{const G=e.domain==="all"?void 0:e.domain,[ve,pe,me,ke]=await Promise.all([Ia(y,{domain:G}),xa(y,{scope:b(),domain:G}),Aa(y).catch(()=>[]),Wa(y).catch(()=>({items:[]}))]);L(ve.items),f(pe.items),U(me.filter($e=>$e.id.startsWith("wrk_")).map($e=>({id:$e.id,name:$e.name||$e.id}))),w(ke.items)}catch(G){d(G instanceof Error?G.message:"无法加载数据")}};Pt(()=>{e.domain,g(),b(),ye()});const zt=se(()=>m().filter(y=>y.status==="ready")),it=(y,G)=>{if(y.zarr_summary?.arrays?.length)return y.zarr_summary.arrays.map(me=>`${me.path||"."} ${me.shape.join("×")} ${me.dtype}`).join(`
5
+ `);if(y.sample)return y.sample;const ve=$t(y.probe?.logical_bytes),pe=y.probe?.format_hint??G;return[ve,pe].filter(Boolean).join(" · ")||pe},st=y=>[y.format,y.connector?Ka(y.connector):"",$t(y.logical_bytes),y.status?za(y.status):"",y.visibility==="public"?"已公开":""].filter(Boolean).join(" · ");return(()=>{var y=ll(),G=y.firstChild,ve=G.firstChild,pe=G.nextSibling,me=pe.firstChild,ke=me.nextSibling;ke.firstChild;var $e=ke.nextSibling;return $e.firstChild,t(ve,Kt),me.$$click=()=>Be("catalog"),ke.$$click=()=>Be("raw"),t(ke,(()=>{var h=ce(()=>!!k().length);return()=>h()?` ${k().length}`:""})(),null),$e.$$click=()=>Be("already"),t($e,(()=>{var h=ce(()=>!!m().length);return()=>h()?` ${m().length}`:""})(),null),t(y,l(u,{get when(){return g()==="already"},get children(){var h=Qa(),S=h.firstChild,z=S.nextSibling;return S.$$click=()=>Pe({already:"mine"}),z.$$click=()=>Pe({already:"public"}),C(O=>{var B=b()==="mine",re=b()==="public";return B!==O.e&&Q(S,"aria-pressed",O.e=B),re!==O.t&&Q(z,"aria-pressed",O.t=re),O},{e:void 0,t:void 0}),h}}),null),t(y,l(u,{get when(){return ce(()=>!Re())()&&g()!=="catalog"},get children(){return Na()}}),null),t(y,l(u,{get when(){return p()},get children(){var h=Ga();return t(h,p),h}}),null),t(y,l(u,{get when(){return g()==="catalog"},get children(){return l(ua,{get filter(){return Ft()},get domainLabel(){return e.domainLabel}})}}),null),t(y,l(u,{get when(){return ce(()=>g()==="raw")()&&Re()},get children(){return[(()=>{var h=Ja(),S=h.firstChild,z=S.nextSibling,O=z.firstChild,B=O.nextSibling,re=z.nextSibling,V=re.firstChild,ie=V.nextSibling,R=re.nextSibling,W=R.firstChild,J=W.nextSibling,ge=R.nextSibling;return h.addEventListener("submit",async E=>{E.preventDefault();const ne=K();if(ne){$(!0),d("");try{await La(ne,{title:q().trim()||te().trim(),domain:e.domain==="all"?"unspecified":e.domain,uri:te().trim(),connector:P(),...P()==="remote_workspace"?{workspace_id:M()}:{}}),j(""),o(""),await ye()}catch(Z){d(Z instanceof Error?Z.message:"接入失败")}finally{$(!1)}}}),B.$$input=E=>j(E.currentTarget.value),ie.$$input=E=>{const ne=E.currentTarget.value;o(ne);const Z=Ba(ne);Z&&de(Z)},J.addEventListener("change",E=>de(E.currentTarget.value)),t(h,l(u,{get when(){return P()==="remote_workspace"},get children(){var E=Va(),ne=E.firstChild,Z=ne.nextSibling;return Z.firstChild,Z.addEventListener("change",Ie=>X(Ie.currentTarget.value)),t(Z,l(ee,{get each(){return x()},children:Ie=>(()=>{var De=mt();return t(De,()=>Ie.name),C(()=>De.value=Ie.id),De})()}),null),C(()=>Z.value=M()),E}}),ge),C(E=>{var ne=Ha(P()),Z=T()||!te().trim()||P()==="remote_workspace"&&!M();return ne!==E.e&&Q(ie,"placeholder",E.e=ne),Z!==E.t&&(ge.disabled=E.t=Z),E},{e:void 0,t:void 0}),C(()=>B.value=q()),C(()=>ie.value=te()),C(()=>J.value=P()),h})(),l(u,{get when(){return P()==="object_store"},get children(){var h=Ya(),S=h.firstChild,z=S.nextSibling,O=z.nextSibling,B=O.firstChild,re=B.firstChild,V=re.nextSibling,ie=V.firstChild,R=ie.nextSibling,W=R.nextSibling,J=B.nextSibling,ge=J.firstChild,E=ge.nextSibling,ne=J.nextSibling,Z=ne.firstChild,Ie=Z.nextSibling,De=ne.nextSibling,Bt=De.firstChild,ot=Bt.nextSibling,ct=De.nextSibling,Ht=ct.firstChild,dt=Ht.nextSibling,Qt=ct.nextSibling;return O.addEventListener("submit",async H=>{H.preventDefault();const be=K();if(be){$(!0),d("");try{await qa(be,{provider:N(),access_key_id:_e().trim(),secret:we().trim(),...he().trim()?{endpoint:he().trim()}:{},...Le().trim()?{region:Le().trim()}:{}}),Ce(""),le(""),await ye()}catch(Se){d(Se instanceof Error?Se.message:"保存密钥失败")}finally{$(!1)}}}),V.addEventListener("change",H=>ue(H.currentTarget.value)),t(ie,()=>Ue("s3")),t(R,()=>Ue("oss")),t(W,()=>Ue("cos")),E.$$input=H=>Ce(H.currentTarget.value),Ie.$$input=H=>le(H.currentTarget.value),ot.$$input=H=>Ke(H.currentTarget.value),dt.$$input=H=>ze(H.currentTarget.value),t(O,l(u,{get when(){return Y().length>0},get children(){var H=Qe();return t(H,l(ee,{get each(){return Y()},children:be=>(()=>{var Se=nl(),Ee=Se.firstChild,Nt=Ee.firstChild,Gt=Ee.nextSibling;return t(Ee,()=>Ue(be.provider),Nt),t(Ee,()=>be.access_key_id_suffix,null),t(Ee,(()=>{var je=ce(()=>!!be.endpoint);return()=>je()?` · ${be.endpoint}`:""})(),null),Gt.$$click=async()=>{const je=K();if(je)try{await Ma(je,be.provider),await ye()}catch(ut){d(ut instanceof Error?ut.message:"删除密钥失败")}},Se})()})),H}}),null),C(H=>{var be=Y().length===0,Se=T()||!_e().trim()||!we().trim();return be!==H.e&&(h.open=H.e=be),Se!==H.t&&(Qt.disabled=H.t=Se),H},{e:void 0,t:void 0}),C(()=>V.value=N()),C(()=>E.value=_e()),C(()=>Ie.value=we()),C(()=>ot.value=he()),C(()=>dt.value=Le()),h}}),l(u,{get when(){return k().length===0},get fallback(){return(()=>{var h=Qe();return t(h,l(ee,{get each(){return k()},children:S=>(()=>{var z=rl(),O=z.firstChild,B=O.firstChild,re=B.nextSibling,V=re.nextSibling,ie=V.nextSibling,R=O.nextSibling,W=R.firstChild,J=W.nextSibling;return B.addEventListener("change",ge=>{const E=ge.currentTarget.checked;_(ne=>E?[...ne,S.id]:ne.filter(Z=>Z!==S.id))}),t(re,()=>S.title),t(V,()=>st(S)),t(ie,()=>S.uri),W.$$click=async()=>{const ge=K();if(ge)try{const E=await Pa(ge,S.id,M()||void 0);v(it(E,S.format))}catch(E){d(E instanceof Error?E.message:"预览失败")}},J.$$click=async()=>{const ge=K();if(ge){$(!0);try{await Da(ge,S.id),Pe({onedata:"already",already:"mine"}),await ye()}catch(E){d(E instanceof Error?E.message:"转化失败")}finally{$(!1)}}},C(()=>B.checked=I().includes(S.id)),z})()})),h})()},get children(){return Xa()}}),l(u,{get when(){return ce(()=>!!rt())()&&I().length>0},get children(){var h=Za();return h.$$click=async()=>{const S=K(),z=rt();if(!(!S||!z))try{await Ta(S,z,I())}catch(O){d(O instanceof Error?O.message:"加入对话失败")}},h}}),l(u,{get when(){return F()},get children(){var h=yt();return t(h,F),h}})]}}),null),t(y,l(u,{get when(){return ce(()=>g()==="already")()&&Re()},get children(){return[l(u,{get when(){return zt().length>0},get children(){var h=tl(),S=h.firstChild,z=S.firstChild,O=z.nextSibling;return O.addEventListener("change",B=>ae(B.currentTarget.value)),t(h,l(u,{get when(){return A()==="workspace"},get children(){var B=el(),re=B.firstChild,V=re.nextSibling;return V.firstChild,V.addEventListener("change",ie=>X(ie.currentTarget.value)),t(V,l(ee,{get each(){return x()},children:ie=>(()=>{var R=mt();return t(R,()=>ie.name),C(()=>R.value=ie.id),R})()}),null),C(()=>V.value=M()),B}}),null),C(()=>O.value=A()),h}}),l(u,{get when(){return m().length===0},get fallback(){return(()=>{var h=Qe();return t(h,l(ee,{get each(){return m()},children:S=>(()=>{var z=dl(),O=z.firstChild,B=O.nextSibling,re=B.nextSibling,V=re.nextSibling,ie=V.firstChild;return t(O,()=>S.title),t(B,()=>st(S)),t(re,()=>S.uri),ie.$$click=async()=>{const R=K();if(R)try{const W=await Ea(R,S.id,b()==="public"&&M()||void 0);v(it(W,S.format))}catch(W){d(W instanceof Error?W.message:"预览失败")}},t(V,l(u,{get when(){return ce(()=>b()==="mine"&&S.status==="ready")()&&S.visibility!=="public"},get children(){var R=il();return R.$$click=async()=>{const W=K();if(W){$(!0);try{await Oa(W,S.id),await ye()}catch(J){d(J instanceof Error?J.message:"发布失败")}finally{$(!1)}}},R}}),null),t(V,l(u,{get when(){return ce(()=>b()==="mine")()&&S.visibility==="public"},get children(){var R=sl();return R.$$click=async()=>{const W=K();if(W){$(!0);try{await Ra(W,S.id),await ye()}catch(J){d(J instanceof Error?J.message:"取消发布失败")}finally{$(!1)}}},R}}),null),t(V,l(u,{get when(){return b()==="public"},get children(){var R=ol();return R.$$click=async()=>{const W=K();if(W){$(!0);try{await ja(W,S.id),Pe({onedata:"raw"}),await ye()}catch(J){d(J instanceof Error?J.message:"再次接入失败")}finally{$(!1)}}},R}}),null),t(V,l(u,{get when(){return S.status==="ready"},get children(){var R=cl();return R.$$click=async()=>{const W=K();if(W){if(A()==="workspace"&&!M()){d("请选择要运行训练的远端环境");return}$(!0);try{await Ua(W,S.id,{target:A(),...A()==="workspace"?{workspace_id:M()}:{}}),await ye()}catch(J){d(J instanceof Error?J.message:"开始训练失败")}finally{$(!1)}}},R}}),null),z})()})),h})()},get children(){var h=al();return t(h,()=>b()==="public"?"还没有已公开的可训练数据。":"还没有可训练数据。请先登记原始数据并转化,或等待对话加工完成。"),h}}),l(u,{get when(){return F()},get children(){var h=yt();return t(h,F),h}})]}}),null),C(h=>{var S=g()==="catalog",z=g()==="raw",O=g()==="already";return S!==h.e&&Q(me,"aria-pressed",h.e=S),z!==h.t&&Q(ke,"aria-pressed",h.t=z),O!==h.a&&Q($e,"aria-pressed",h.a=O),h},{e:void 0,t:void 0,a:void 0}),y})()}Ae(["click","input"]);var pl=i('<article class="os-client-capability-card os-client-capability-skill-card"><div class=os-client-capability-skill-card-head><h4></h4></div><p></p><div class=os-client-capability-meta><span class=os-client-capability-skill-provider></span></div><div class=os-client-capability-actions><button type=button>详情</button><button type=button data-primary=true>开发'),Rt=i("<span>"),gl=i("<div>"),bl=i("<button type=button class=os-client-capability-oneskills-expand>"),hl=i("<section class=os-client-capability-oneskills-section><header class=os-client-capability-oneskills-section-head><div class=os-client-capability-oneskills-section-title><h3></h3></div><p>"),vl=i("<p class=os-client-capability-empty>当前分类暂无技能卡片。"),$l=i("<span class=os-client-capability-oneskills-count> 个技能"),yl=i("<p class=os-client-capability-oneskills-error>"),ml=i("<div class=os-client-capability-oneskills-top-row>"),fl=i("<div class=os-client-capability-oneskills-overview>"),_l=i('<section class="os-client-capability-resource-panel os-client-capability-oneskills-panel"><header class=os-client-capability-oneskills-toolbar><div class=os-client-capability-oneskills-toolbar-copy><p>按 OneSkills 分层浏览官方技能,查看详情或进入开发。</p></div><div class=os-client-capability-oneskills-actions><span class=inline-flex><button type=button class=os-client-capability-oneskills-upgrade>'),wl=i("<p class=os-client-capability-empty>正在加载 OneSkills 技能..."),Sl=i("<p class=os-client-capability-empty>暂无可展示的 OneSkills 技能,请先安装或更新技能。");const ft=4,Ye=new Set(["orchestrator","resource"]);function Cl(e,a){return e.layer===a.title||e.tags.includes(a.title)||e.tags.includes(a.id)}function kl(e){return Ze(e)||Dt(fe(),e.lastCodeWorkspace)||et(fe())||tt(document,e.path)}function Il(e){const a=()=>e.item.tags.filter(r=>r!==e.item.layer&&r!==e.item.provider).slice(0,3);return(()=>{var r=pl(),s=r.firstChild,n=s.firstChild,c=s.nextSibling,g=c.nextSibling,b=g.firstChild,k=g.nextSibling,L=k.firstChild,m=L.nextSibling;return Tt(r,"click",e.onOpen,!0),t(n,()=>e.item.title),t(c,()=>e.item.copy),t(b,()=>e.item.provider),t(g,l(ee,{get each(){return a()},children:f=>(()=>{var p=Rt();return t(p,f),p})()}),null),L.$$click=f=>{f.stopPropagation(),e.onOpen()},m.$$click=f=>{f.stopPropagation(),e.onDevelop()},C(f=>{var p=e.layerId,d=e.canDevelop?void 0:"登录后使用";return p!==f.e&&Q(r,"data-layer",f.e=p),d!==f.t&&Q(m,"title",f.t=d),f},{e:void 0,t:void 0}),r})()}function _t(e){const[a,r]=D(!1),s=()=>e.items.length,n=()=>Math.max(0,s()-ft),c=()=>a()||n()===0?e.items:e.items.slice(0,ft),g=()=>Ye.has(e.group.id);return(()=>{var b=hl(),k=b.firstChild,L=k.firstChild,m=L.firstChild,f=L.nextSibling;return t(m,()=>e.group.title),t(L,l(u,{get when(){return s()>0},get children(){var p=Rt();return t(p,s),p}}),null),t(f,()=>e.group.copy),t(b,l(u,{get when(){return s()>0},get fallback(){return vl()},get children(){return[(()=>{var p=gl();return t(p,l(ee,{get each(){return c()},children:d=>l(Il,{item:d,get layerId(){return e.group.id},get canDevelop(){return e.canDevelop},onOpen:()=>e.onOpen(d),onDevelop:()=>e.onDevelop(d)})})),C(d=>{var T=!g(),$=!!g();return T!==d.e&&p.classList.toggle("os-client-capability-page-grid",d.e=T),$!==d.t&&p.classList.toggle("os-client-capability-oneskills-compact-grid",d.t=$),d},{e:void 0,t:void 0}),p})(),l(u,{get when(){return ce(()=>!g())()&&n()>0},get children(){var p=bl();return p.$$click=()=>r(d=>!d),t(p,(()=>{var d=ce(()=>!!a());return()=>d()?"收起":`展开其余 ${n()} 个`})()),C(()=>Q(p,"aria-expanded",a())),p}})]}}),null),C(p=>{var d=e.group.id,T=!!e.compact,$=e.group.id;return d!==p.e&&Q(b,"id",p.e=d),T!==p.t&&b.classList.toggle("is-compact",p.t=T),$!==p.a&&Q(b,"data-layer",p.a=$),p},{e:void 0,t:void 0,a:void 0}),b})()}function xl(){const e=at(),a=Me(),r=We(),s=qe(),n=lt(),[c,g]=D([]),[b,k]=D(!1),[L,m]=D(!1),[f,p]=D(),[d,T]=D(!1),[$,q]=D(),j=se(()=>!!fe()?.account.id),te=se(()=>kl({path:s.data.path,recent:Fe(s.data.project),lastCodeWorkspace:r.projects.lastCode()})),o=async()=>{const v=r.current;if(!v){g([]),k(!0);return}const I=await Zt(v.http.url,{limit:100});g(I.loaded?I.items:[]),k(!0)};Ve(()=>{const v=ba(e.search)??ha()?.domainId??"all";a(Et("oneskills",v),{replace:!0}),o()});const P=v=>c().filter(I=>Cl(I,v)),de=()=>ta.filter(v=>P(v).length>0),M=()=>{const v=de();return{pair:v.filter(I=>Ye.has(I.id)),rest:v.filter(I=>!Ye.has(I.id))}},X=v=>{q(v),T(!0)},x=()=>{T(!1),q(void 0)},U=v=>{if(!Ge({navigate:a,action:{type:"prompt",prompt:""},isLoggedIn:j()}))return;const I=te();if(!I){xe({variant:"error",title:"无法开发",description:"未检测到工作目录"});return}const _=ga({id:v.id,title:v.title,copy:v.copy,layer:v.layer,tags:v.tags,provider:v.provider}),A=St(I);Ct(A,_.prompt,{skill:_.skill}),kt(A),n.projects.open(I),r.projects.touchCode(I),T(!1),q(void 0),xe({variant:"success",title:`已为你创建「${v.title}」开发任务`}),a(It(I))},F=async()=>{if(!Ge({navigate:a,action:{type:"install",resourceId:"oneskills"},isLoggedIn:j()}))return;const v=r.current,I=te();if(!v){const _=He();p(_),xe({variant:"error",title:"更新失败",description:_});return}if(!I){const _=He();p(_),xe({variant:"error",title:"更新失败",description:_});return}m(!0),p(void 0);try{const _=await ea(v.http.url,I);await o();const A=_.version?`版本 ${_.version} · ${_.skillCount} 个技能`:`${_.skillCount} 个技能`,ae=_.seedSource==="bundled"&&_.seedFallbackReason?"原语已回退内置 seed":_.seedSource==="disk"?"原语已同步磁盘 oneskills":void 0;xe({variant:"success",title:"OneSkills 已更新",description:ae?`${A} · ${ae}`:A})}catch(_){const A=He(_ instanceof Error?_.message:"更新 OneSkills 失败");p(A),xe({variant:"error",title:"更新失败",description:A})}finally{m(!1)}};return(()=>{var v=_l(),I=v.firstChild,_=I.firstChild;_.firstChild;var A=_.nextSibling,ae=A.firstChild,Y=ae.firstChild;return t(_,l(u,{get when(){return ce(()=>!!b())()&&c().length>0},get children(){var w=$l(),N=w.firstChild;return t(w,()=>c().length,N),w}}),null),t(A,l(u,{get when(){return f()},get children(){var w=yl();return t(w,f),w}}),ae),Y.$$click=()=>void F(),t(Y,()=>L()?"更新中...":"更新 OneSkills"),t(v,l(u,{get when(){return b()},get fallback(){return wl()},get children(){return l(u,{get when(){return c().length>0},get fallback(){return Sl()},get children(){var w=fl();return t(w,l(u,{get when(){return M().pair.length>0},get children(){var N=ml();return t(N,l(ee,{get each(){return M().pair},children:ue=>l(_t,{group:ue,get items(){return P(ue)},compact:!0,get canDevelop(){return j()},onOpen:X,onDevelop:U})})),N}}),null),t(w,l(ee,{get each(){return M().rest},children:N=>l(_t,{group:N,get items(){return P(N)},get canDevelop(){return j()},onOpen:X,onDevelop:U})}),null),w}})}}),null),t(v,l(pa,{variant:"workbench",get item(){return $()},get open(){return d()},get serverUrl(){return r.current?.http.url},onClose:x,onDevelop:()=>{const w=$();w&&(x(),U(w))}}),null),C(w=>{var N=j()?void 0:"登录后使用",ue=L();return N!==w.e&&Q(ae,"title",w.e=N),ue!==w.t&&(Y.disabled=w.t=ue),w},{e:void 0,t:void 0}),v})()}Ae(["click"]);async function Ll(e,a){const r=new URLSearchParams;r.set("limit","200");const s=await xt(`${Lt(e)}/experimental/onescience/scenario?${r}`);if(!s.ok)throw new Error(`scenario catalog failed: ${s.status}`);const c=((await s.json()).items??[]).map(g=>({...g,model_ids:g.model_ids??[]}));return aa(c),c}var Dl=i("<span>当前范围:"),Pl=i("<strong>全领域"),El=i("<small>OneSkills 原语跨领域通用,不区分材料 / 气象 / 流体 / 生信"),Tl=i("<div class=os-client-capability-domain-row role=tablist aria-label=能力中心领域>"),Ol=i("<div class=os-client-capability-scenario-grid>"),Rl=i("<section class=os-client-capability-scenario-panel><div class=os-client-capability-scenario-toolbar><span>场景卡片</span><strong></strong><small> · 点击卡片打开场景弹窗</small><label class=os-client-capability-scenario-search><input type=search placeholder=搜索场景名称、ID、模型、HPC… aria-label=搜索场景>"),jl=i("<div class=os-client-capability-page><section class=os-client-capability-selector aria-label=能力中心筛选><div class=os-client-capability-current-domain></div><div class=os-client-capability-filter-tabs aria-label=能力类型></div></section><div class=os-client-capability-page-body>"),Ul=i("<span>当前领域:"),Al=i("<strong>"),Wl=i("<small>"),ql=i("<button type=button>"),Ml=i("<button type=button class=os-client-capability-filter-tab role=tab><div class=os-client-capability-filter-tab-text><strong></strong><small>"),Fl=i("<p class=os-client-capability-hint>"),Oe=i("<span>"),Kl=i("<button type=button class=os-client-capability-scenario-card><div class=os-client-capability-scenario-card-head><h4></h4><span></span></div><p></p><div class=os-client-capability-scenario-card-meta><span> 步工作流</span><span> 个字段</span></div><div class=os-client-capability-scenario-card-action><span>使用"),zl=i("<button type=button class=os-client-capability-upload-trigger><span aria-hidden=true>+</span>上传私有模型"),Bl=i("<label class=os-client-capability-catalog-search><span>搜索</span><input type=search placeholder=按名称、简介或标签筛选>"),Hl=i("<div class=os-client-capability-catalog-toolbar><div class=os-client-capability-catalog-toolbar-side><span class=os-client-capability-catalog-count></span><div class=os-client-capability-view-switch role=tablist aria-label=展示方式>"),Ql=i('<section class=os-client-capability-resource-panel><header class="os-client-capability-page-section-head os-client-capability-page-section-head-active"><p>'),Nl=i("<p class=os-client-capability-empty>当前「<!>」领域暂无<!>卡片。"),Gl=i("<button type=button role=tab>"),Vl=i("<p class=os-client-capability-empty>没有匹配的结果,试试换个关键词。"),Jl=i("<div class=os-client-capability-catalog role=list>"),Yl=i("<article class=os-client-capability-catalog-row role=listitem>"),Xl=i("<div class=os-client-capability-page-grid>"),jt=i("<span class=os-client-capability-private-badge>私有资产"),Ut=i("<span class=os-client-capability-unavailable-badge>暂不可用"),Zl=i("<div class=os-client-capability-meta>"),en=i("<article class=os-client-capability-card><div class=os-client-capability-card-body><div class=os-client-capability-card-head><div class=os-client-capability-card-title><h4></h4></div></div><p>"),tn=i("<p class=os-client-capability-unavailable-hint>暂无 OneScience 源码或魔搭映射"),an=i("<div class=os-client-capability-catalog-tags>"),ln=i("<div class=os-client-capability-catalog-copy><div class=os-client-capability-card-title><h4></h4></div><p>"),nn=i("<div>"),rn=i("<button type=button>安装");const sn=[{id:"all",label:"全部"},{id:"materials",label:"材料"},{id:"weather",label:"气象"},{id:"fluid",label:"流体"},{id:"bio",label:"生信"}],on=[{id:"scenario",label:"场景",title:"场景库"},{id:"onemodel",label:"onemodel",title:"模型库"},{id:"hpc",label:"HPC 软件",title:"软件库"},{id:"onedata",label:"onedata",title:"数据集"},{id:"oneskills",label:"oneskills",title:"技能库"}],cn=[{id:"cards",label:"卡片"},{id:"list",label:"列表"}],At="os-capability-view-mode";function Ne(e){return e==="all"||e==="materials"||e==="weather"||e==="fluid"||e==="bio"?e:"all"}function dn(e){return e==="materials"||e==="weather"||e==="fluid"||e==="bio"?e:"materials"}function un(e,a){const r=e.split("?")[0]??e;return new RegExp(`^${Je.capabilities}/[^/]+`).test(r)?!new URLSearchParams(a).has("domain"):!1}function Cn(e){const a=at(),r=Me(),s=ht(a.pathname,a.search),[n,c]=la({domainId:Ne(s.domainId),categoryId:s.categoryId,scenarioQuery:"",activeScenarioId:"",uploadPage:null,scenarioCatalogTick:0}),g=qe(),b=lt(),k=We();Ve(()=>{const o=k.current?.http.url;o&&Ll(o).then(()=>c("scenarioCatalogTick",P=>P+1)).catch(()=>{})});const L=o=>{va({categoryId:o.categoryId,domainId:Ne(o.domainId)})},m=o=>{L(o),r(Et(o.categoryId,o.domainId),{replace:!0})};Pt(()=>{const o=a.pathname,P=a.search,de=ht(o,P);if(un(o,P)){c("categoryId",de.categoryId);return}const M=Ne(de.domainId),X=de.categoryId;c({domainId:M,categoryId:X}),L({domainId:M,categoryId:X});const x=o.split("?")[0]??o,U=x===Je.capabilities||x===`${Je.capabilities}/`,F=new URLSearchParams(P);U&&!F.get("category")&&!F.get("domain")&&m({domainId:M,categoryId:X})});const f=se(()=>(na(),n.domainId==="all"?pt():pt(n.domainId))),p=se(()=>f().find(o=>o.id===n.categoryId)??f()[0]),d=se(()=>(n.scenarioCatalogTick,ra(n.domainId,n.scenarioQuery))),T=se(()=>{if(n.scenarioCatalogTick,!!n.activeScenarioId)return gt(n.activeScenarioId)}),$=o=>{c({categoryId:o,activeScenarioId:"",scenarioQuery:o==="scenario"?n.scenarioQuery:""}),m({domainId:n.domainId,categoryId:o})},q=()=>c("activeScenarioId",""),j=()=>({navigate:r,isLoggedIn:!!fe(),path:g.data.path,recent:Fe(g.data.project),lastCodeWorkspace:k.projects.lastCode(),openProject:o=>b.projects.open(o),touchCode:o=>k.projects.touchCode(o)});Ve(()=>{const o=ia();if(o)try{if(o.type==="install"){if(o.resourceId==="oneskills"){c("categoryId","oneskills"),m({domainId:n.domainId,categoryId:"oneskills"});return}if(o.resourceId.startsWith("__"))return;Ot({resourceId:o.resourceId,...j()});return}if(o.type==="prompt"&&o.prompt.trim()){$a({prompt:o.prompt,title:o.title||"能力中心任务",workflow:o.workflow,...j()});return}if(o.type==="scenario-run"){const P=gt(o.scenarioId);if(!P)return;vt({scenario:P,values:o.values,...j()});return}o.type==="wizard"&&ya({resourceId:o.resourceId,scenarioId:o.scenarioId,values:o.values,prompt:o.prompt,...j()})}catch{}});const te=(o,P)=>{vt({scenario:o,values:P.values,...j()})};return(()=>{var o=jl(),P=o.firstChild,de=P.firstChild,M=de.nextSibling,X=P.nextSibling;return t(de,l(u,{get when(){return n.categoryId==="oneskills"},get fallback(){return[Ul(),(()=>{var x=Al();return t(x,()=>Te(n.domainId)),x})(),(()=>{var x=Wl();return t(x,()=>n.categoryId==="scenario"?"切换领域后,下方场景同步刷新":"切换领域后,下方模型、HPC 软件与数据集内容同步刷新"),x})()]},get children(){return[Dl(),Pl(),El()]}})),t(P,l(u,{get when(){return n.categoryId!=="oneskills"},get children(){var x=Tl();return t(x,l(ee,{each:sn,children:U=>(()=>{var F=ql();return F.$$click=()=>{c({domainId:U.id,activeScenarioId:"",scenarioQuery:""}),m({domainId:U.id,categoryId:n.categoryId})},t(F,()=>U.label),C(v=>{var I=U.id===n.domainId,_=U.id===n.domainId;return I!==v.e&&F.classList.toggle("is-active",v.e=I),_!==v.t&&Q(F,"aria-pressed",v.t=_),v},{e:void 0,t:void 0}),F})()})),x}}),M),t(M,l(ee,{each:on,children:x=>(()=>{var U=Ml(),F=U.firstChild,v=F.firstChild,I=v.nextSibling;return U.$$click=()=>$(x.id),t(v,()=>x.label),t(I,()=>x.title),C(_=>{var A=n.categoryId===x.id,ae=n.categoryId===x.id;return A!==_.e&&U.classList.toggle("is-active",_.e=A),ae!==_.t&&Q(U,"aria-selected",_.t=ae),_},{e:void 0,t:void 0}),U})()})),t(X,l(u,{get when(){return n.categoryId==="oneskills"},get children(){return l(xl,{})}}),null),t(X,l(u,{get when(){return n.categoryId==="scenario"},get children(){var x=Rl(),U=x.firstChild,F=U.firstChild,v=F.nextSibling,I=v.nextSibling,_=I.firstChild,A=I.nextSibling,ae=A.firstChild;return t(v,()=>d().length),t(I,()=>Te(n.domainId),_),ae.$$input=Y=>c("scenarioQuery",Y.currentTarget.value),t(x,l(u,{get when(){return d().length>0},get fallback(){return(()=>{var Y=Fl();return t(Y,(()=>{var w=ce(()=>!!n.scenarioQuery.trim());return()=>w()?`未找到匹配「${n.scenarioQuery.trim()}」的场景。`:`当前「${Te(n.domainId)}」领域暂无场景卡片。`})()),Y})()},get children(){var Y=Ol();return t(Y,l(ee,{get each(){return d()},children:w=>(()=>{var N=Kl(),ue=N.firstChild,_e=ue.firstChild,Ce=_e.nextSibling,we=ue.nextSibling,le=we.nextSibling,he=le.firstChild,Ke=he.firstChild,Le=he.nextSibling,ze=Le.firstChild;return N.$$click=()=>c("activeScenarioId",sa(w)),t(_e,()=>w.name),t(Ce,()=>w.scenario_id),t(we,()=>w.problem_and_applicability),t(le,l(u,{get when(){return w.type?.trim()},get children(){var K=Oe();return t(K,()=>w.type),K}}),he),t(le,l(u,{get when(){return w.model?.trim()},get children(){var K=Oe();return t(K,()=>w.model),K}}),he),t(le,l(u,{get when(){return w.HPC?.trim()},get children(){var K=Oe();return t(K,()=>w.HPC),K}}),he),t(he,()=>w.workflow_steps?.length||w.workflow.length,Ke),t(Le,()=>w.user_input.length,ze),N})()})),Y}}),null),C(()=>ae.value=n.scenarioQuery),x}}),null),t(X,l(u,{get when(){return n.categoryId==="onemodel"||n.categoryId==="hpc"},get children(){return l(pn,{get category(){return p()},get domainId(){return n.domainId},get domainLabel(){return Te(n.domainId)},get onUpload(){return n.categoryId==="onemodel"?()=>c("uploadPage","models"):void 0}})}}),null),t(X,l(u,{get when(){return n.categoryId==="onedata"},get children(){return l(ul,{get domain(){return n.domainId},get domainLabel(){return Te(n.domainId)},get copy(){return p().copy}})}}),null),t(o,l(u,{get when(){return T()},children:x=>l(ma,{get scenario(){return x()},onClose:q,onSubmit:U=>te(x(),U)})}),null),t(o,l(Sa,{get open(){return n.uploadPage!==null},page:"models",get domain(){return dn(n.domainId)},onClose:()=>c("uploadPage",null),onSaved:()=>{c({categoryId:"onemodel",uploadPage:null,activeScenarioId:""}),m({domainId:n.domainId,categoryId:"onemodel"})}}),null),t(o,()=>e.children,null),o})()}function pn(e){const[a,r]=D(""),[s,n]=D($n()),c=()=>({category:e.category.id,domain:e.domainId}),g=se(()=>{const k=a().trim().toLowerCase();return k?e.category.items.filter(L=>[L.name,L.blurb,...L.tags].some(m=>m.toLowerCase().includes(k))):e.category.items}),b=k=>{n(k),yn(k)};return(()=>{var k=Ql(),L=k.firstChild,m=L.firstChild;return t(m,()=>e.category.copy.replace(/[。.]$/,"")),t(L,l(u,{get when(){return e.onUpload},get children(){var f=zl();return Tt(f,"click",e.onUpload,!0),f}}),null),t(k,l(u,{get when(){return e.category.items.length>0},get fallback(){return(()=>{var f=Nl(),p=f.firstChild,d=p.nextSibling,T=d.nextSibling,$=T.nextSibling;return $.nextSibling,t(f,()=>e.domainLabel,d),t(f,()=>e.category.id==="hpc"?" HPC 软件":"模型",$),f})()},get children(){return[(()=>{var f=Hl(),p=f.firstChild,d=p.firstChild,T=d.nextSibling;return t(f,l(u,{get when(){return e.category.items.length>=6},get children(){var $=Bl(),q=$.firstChild,j=q.nextSibling;return j.$$input=te=>r(te.currentTarget.value),C(()=>j.value=a()),$}}),p),t(d,(()=>{var $=ce(()=>g().length===e.category.items.length);return()=>$()?`共 ${e.category.items.length} 项`:`${g().length} / ${e.category.items.length} 项`})()),t(T,l(ee,{each:cn,children:$=>(()=>{var q=Gl();return q.$$click=()=>b($.id),t(q,()=>$.label),C(j=>{var te=s()===$.id,o=s()===$.id;return te!==j.e&&Q(q,"aria-selected",j.e=te),o!==j.t&&q.classList.toggle("is-active",j.t=o),j},{e:void 0,t:void 0}),q})()})),f})(),l(u,{get when(){return g().length>0},get fallback(){return Vl()},get children(){return[l(u,{get when(){return s()==="list"},get children(){return l(gn,{get items(){return g()},get catalog(){return c()}})}}),l(u,{get when(){return s()==="cards"},get children(){return l(bn,{get items(){return g()},get catalog(){return c()}})}})]}})]}}),null),k})()}function gn(e){return(()=>{var a=Jl();return t(a,l(ee,{get each(){return e.items},children:r=>{const s=()=>nt(r);return(()=>{var n=Yl();return t(n,l(hn,{item:r}),null),t(n,l(u,{get when(){return s()},get fallback(){return l(Wt,{})},get children(){return l(qt,{item:r,get catalog(){return e.catalog}})}}),null),C(c=>{var g=r.ownership==="private",b=!s(),k=s()?void 0:!0,L=s()?void 0:"暂无 OneScience 源码或魔搭映射,暂不可用";return g!==c.e&&n.classList.toggle("is-private",c.e=g),b!==c.t&&n.classList.toggle("is-unavailable",c.t=b),k!==c.a&&Q(n,"aria-disabled",c.a=k),L!==c.o&&Q(n,"title",c.o=L),c},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()}})),a})()}function bn(e){return(()=>{var a=Xl();return t(a,l(ee,{get each(){return e.items},children:r=>{const s=()=>nt(r);return(()=>{var n=en(),c=n.firstChild,g=c.firstChild,b=g.firstChild,k=b.firstChild,L=g.nextSibling;return t(k,()=>r.name),t(b,l(u,{get when(){return r.ownership==="private"},get children(){return jt()}}),null),t(b,l(u,{get when(){return!s()},get children(){return Ut()}}),null),t(g,l(u,{get when(){return r.tags.length>0},get children(){var m=Zl();return t(m,l(ee,{get each(){return r.tags},children:f=>(()=>{var p=Oe();return t(p,f),p})()})),m}}),null),t(L,()=>r.blurb),t(n,l(u,{get when(){return s()},get fallback(){return l(Wt,{variant:"card"})},get children(){return l(qt,{item:r,variant:"card",get catalog(){return e.catalog}})}}),null),C(m=>{var f=r.ownership==="private",p=!s(),d=s()?void 0:!0,T=s()?void 0:"暂无 OneScience 源码或魔搭映射,暂不可用";return f!==m.e&&n.classList.toggle("is-private",m.e=f),p!==m.t&&n.classList.toggle("is-unavailable",m.t=p),d!==m.a&&Q(n,"aria-disabled",m.a=d),T!==m.o&&Q(n,"title",m.o=T),m},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()}})),a})()}function Wt(e){return(()=>{var a=tn();return C(()=>a.classList.toggle("os-client-capability-unavailable-hint-card",e.variant==="card")),a})()}function hn(e){return(()=>{var a=ln(),r=a.firstChild,s=r.firstChild,n=r.nextSibling;return t(s,()=>e.item.name),t(r,l(u,{get when(){return e.item.ownership==="private"},get children(){return jt()}}),null),t(r,l(u,{get when(){return!nt(e.item)},get children(){return Ut()}}),null),t(n,()=>e.item.blurb),t(a,l(u,{get when(){return e.item.tags.length>0},get children(){var c=an();return t(c,l(ee,{get each(){return e.item.tags},children:g=>(()=>{var b=Oe();return t(b,g),b})()})),c}}),null),a})()}function qt(e){const a=()=>e.catalog?{category:e.catalog.category,domain:e.catalog.domain}:void 0;return(()=>{var r=nn();return t(r,l(bt,{get href(){return oa(e.item.id,a())},children:"详情"}),null),t(r,l(vn,{get item(){return e.item}}),null),t(r,l(bt,{get href(){return ca(e.item.id,void 0,a())},"data-primary":"true",children:"使用"}),null),C(s=>{var n=e.variant!=="card",c=e.variant==="card";return n!==s.e&&r.classList.toggle("os-client-capability-catalog-actions",s.e=n),c!==s.t&&r.classList.toggle("os-client-capability-actions",s.t=c),s},{e:void 0,t:void 0}),r})()}function vn(e){const a=Me(),r=qe(),s=lt(),n=We(),c=()=>Xe(e.item);return(()=>{var g=rn();return g.$$click=()=>{c()&&Ot({resourceId:e.item.id,navigate:a,isLoggedIn:!!fe(),path:r.data.path,recent:Fe(r.data.project),lastCodeWorkspace:n.projects.lastCode(),openProject:b=>s.projects.open(b),touchCode:b=>n.projects.touchCode(b)})},C(b=>{var k=!c(),L=c()?void 0:"暂无魔搭安装包";return k!==b.e&&(g.disabled=b.e=k),L!==b.t&&Q(g,"title",b.t=L),b},{e:void 0,t:void 0}),g})()}function $n(){if(typeof localStorage>"u")return"cards";const e=localStorage.getItem(At);return e==="cards"||e==="list"?e:"cards"}function yn(e){typeof localStorage>"u"||localStorage.setItem(At,e)}Ae(["input","click"]);export{Cn as CapabilityCenterPage};
@@ -1 +1 @@
1
- import{m as S,j as w,h as D,u as $,o,dG as k,bf as C,dp as _,c,i as l,ds as P,a4 as j,R as F,a5 as G,t as M}from"./index-CL0Pu3hA.js";var z=M('<form class="os-client-project-create-form flex flex-col gap-5 p-5 pt-4"><div class="flex flex-col gap-3"><p class="os-client-project-create-path text-12-regular text-text-weak"></p></div><div class="flex justify-end gap-2">');function K(e){const i=S(),f=w(),h=D(),a=$(),s=o(()=>k(e.project.worktree)),u=o(()=>e.project.name||s()),x=o(()=>`${e.project.worktree.replace(/\\/g,"/").replace(/\/+$/,"")}/`),[m,b]=C({name:u()}),d=o(()=>{const t=m.name.trim();return t?t!==u():!1}),r=_(()=>({mutationFn:async()=>{const t=m.name.trim(),n=t===s()?"":t;if(e.project.id&&e.project.id!=="global"){await f.client.project.update({projectID:e.project.id,directory:e.project.worktree,name:n,icon:{color:e.project.icon?.color||"",override:e.project.icon?.override||""},commands:{start:e.project.commands?.start??""}}),i.close();return}h.project.meta(e.project.worktree,{name:n,icon:e.project.icon,commands:e.project.commands}),i.close()}}));function v(t){t.preventDefault(),!(r.isPending||!d())&&r.mutate()}return c(G,{get title(){return a.t("dialog.project.rename.title")},class:"os-client-project-create w-full max-w-[480px] mx-auto",get children(){var t=z(),n=t.firstChild,g=n.firstChild,p=n.nextSibling;return t.addEventListener("submit",v),l(n,c(P,{autofocus:!0,type:"text",get label(){return a.t("dialog.project.rename.name")},get placeholder(){return s()},get value(){return m.name},onChange:y=>b("name",y)}),g),l(g,()=>a.t("dialog.project.rename.path",{path:x()})),l(p,c(j,{type:"button",variant:"ghost",size:"large",onClick:()=>i.close(),get children(){return a.t("common.cancel")}}),null),l(p,c(j,{type:"submit",variant:"primary",size:"large",get disabled(){return r.isPending||!d()},get children(){return F(()=>!!r.isPending)()?a.t("common.saving"):a.t("common.confirm")}}),null),t}})}export{K as DialogEditProject};
1
+ import{m as S,j as w,h as D,u as $,o,dR as k,bm as C,dA as _,c,i as l,dD as P,a4 as j,R as F,a5 as M,t as z}from"./index-CjqsrRCL.js";var E=z('<form class="os-client-project-create-form flex flex-col gap-5 p-5 pt-4"><div class="flex flex-col gap-3"><p class="os-client-project-create-path text-12-regular text-text-weak"></p></div><div class="flex justify-end gap-2">');function K(e){const i=S(),f=w(),h=D(),a=$(),s=o(()=>k(e.project.worktree)),u=o(()=>e.project.name||s()),x=o(()=>`${e.project.worktree.replace(/\\/g,"/").replace(/\/+$/,"")}/`),[m,b]=C({name:u()}),d=o(()=>{const t=m.name.trim();return t?t!==u():!1}),r=_(()=>({mutationFn:async()=>{const t=m.name.trim(),n=t===s()?"":t;if(e.project.id&&e.project.id!=="global"){await f.client.project.update({projectID:e.project.id,directory:e.project.worktree,name:n,icon:{color:e.project.icon?.color||"",override:e.project.icon?.override||""},commands:{start:e.project.commands?.start??""}}),i.close();return}h.project.meta(e.project.worktree,{name:n,icon:e.project.icon,commands:e.project.commands}),i.close()}}));function v(t){t.preventDefault(),!(r.isPending||!d())&&r.mutate()}return c(M,{get title(){return a.t("dialog.project.rename.title")},class:"os-client-project-create w-full max-w-[480px] mx-auto",get children(){var t=E(),n=t.firstChild,g=n.firstChild,p=n.nextSibling;return t.addEventListener("submit",v),l(n,c(P,{autofocus:!0,type:"text",get label(){return a.t("dialog.project.rename.name")},get placeholder(){return s()},get value(){return m.name},onChange:y=>b("name",y)}),g),l(g,()=>a.t("dialog.project.rename.path",{path:x()})),l(p,c(j,{type:"button",variant:"ghost",size:"large",onClick:()=>i.close(),get children(){return a.t("common.cancel")}}),null),l(p,c(j,{type:"submit",variant:"primary",size:"large",get disabled(){return r.isPending||!d()},get children(){return F(()=>!!r.isPending)()?a.t("common.saving"):a.t("common.confirm")}}),null),t}})}export{K as DialogEditProject};
@@ -1 +1 @@
1
- import{e0 as D,e as S,f as _,e1 as k,ae as P,e2 as w,m as F,u as L,o as $,c as d,dq as q,i as u,a5 as I,e3 as T,Z as b,_ as g,dV as C,t as E}from"./index-CL0Pu3hA.js";var K=E('<div class="w-full flex items-center gap-2"><span class="truncate flex-1 min-w-0 text-left font-normal"></span><span class="text-text-weak shrink-0 font-normal">');function M(i){return i.toLocaleTimeString(void 0,{timeStyle:"short"})}const H=()=>{const i=D(),p=S(),f=_(),c=k(),l=P(),h=w(),x=F(),n=L(),y=$(()=>{const t=i.id;if(!t)return[];const a=c.data.message[t]??[],o=[];for(const s of a){if(s.role!=="user")continue;const e=(c.data.part[s.id]??[]).find(r=>r.type==="text"&&!r.synthetic&&!r.ignored);e&&o.push({id:s.id,text:e.text.replace(/\n/g," ").slice(0,200),time:M(new Date(s.time.created))})}return o.reverse()}),v=t=>{if(!t)return;const a=i.id;if(!a)return;const o=c.data.part[t.id]??[],s=T(o,{directory:l.directory,attachmentName:n.t("common.attachment")}),m=b(l.directory);l.client.session.fork({sessionID:a,messageID:t.id}).then(e=>{if(!e.data){g({title:n.t("common.requestFailed")});return}x.close(),h.set(s,void 0,{dir:m,id:e.data.id}),f(C(p.pathname,m,e.data.id))}).catch(e=>{const r=e instanceof Error?e.message:String(e);g({title:n.t("common.requestFailed"),description:r})})};return d(I,{get title(){return n.t("command.session.fork")},get children(){return d(q,{class:"flex-1 min-h-0 [&_[data-slot=list-scroll]]:flex-1 [&_[data-slot=list-scroll]]:min-h-0",get search(){return{placeholder:n.t("common.search.placeholder"),autofocus:!0}},get emptyMessage(){return n.t("dialog.fork.empty")},key:t=>t.id,items:y,filterKeys:["text"],onSelect:v,children:t=>(()=>{var a=K(),o=a.firstChild,s=o.nextSibling;return u(o,()=>t.text),u(s,()=>t.time),a})()})}})};export{H as DialogFork};
1
+ import{eb as D,e as S,f as _,ec as k,ae as P,ed as w,m as F,u as L,o as $,c as d,dB as b,i as u,a5 as I,ee as T,Z as q,_ as g,e4 as C,t as E}from"./index-CjqsrRCL.js";var K=E('<div class="w-full flex items-center gap-2"><span class="truncate flex-1 min-w-0 text-left font-normal"></span><span class="text-text-weak shrink-0 font-normal">');function M(i){return i.toLocaleTimeString(void 0,{timeStyle:"short"})}const B=()=>{const i=D(),p=S(),f=_(),c=k(),l=P(),h=w(),x=F(),n=L(),y=$(()=>{const t=i.id;if(!t)return[];const a=c.data.message[t]??[],o=[];for(const s of a){if(s.role!=="user")continue;const e=(c.data.part[s.id]??[]).find(r=>r.type==="text"&&!r.synthetic&&!r.ignored);e&&o.push({id:s.id,text:e.text.replace(/\n/g," ").slice(0,200),time:M(new Date(s.time.created))})}return o.reverse()}),v=t=>{if(!t)return;const a=i.id;if(!a)return;const o=c.data.part[t.id]??[],s=T(o,{directory:l.directory,attachmentName:n.t("common.attachment")}),m=q(l.directory);l.client.session.fork({sessionID:a,messageID:t.id}).then(e=>{if(!e.data){g({title:n.t("common.requestFailed")});return}x.close(),h.set(s,void 0,{dir:m,id:e.data.id}),f(C(p.pathname,m,e.data.id))}).catch(e=>{const r=e instanceof Error?e.message:String(e);g({title:n.t("common.requestFailed"),description:r})})};return d(I,{get title(){return n.t("command.session.fork")},get children(){return d(b,{class:"flex-1 min-h-0 [&_[data-slot=list-scroll]]:flex-1 [&_[data-slot=list-scroll]]:min-h-0",get search(){return{placeholder:n.t("common.search.placeholder"),autofocus:!0}},get emptyMessage(){return n.t("dialog.fork.empty")},key:t=>t.id,items:y,filterKeys:["text"],onSelect:v,children:t=>(()=>{var a=K(),o=a.firstChild,s=o.nextSibling;return u(o,()=>t.text),u(s,()=>t.time),a})()})}})};export{B as DialogFork};
@@ -0,0 +1,2 @@
1
+ import{m as oe,u as se,l as ce,h as de,n as g,o as x,dT as ue,dU as ge,dV as pe,x as fe,dW as he,c as n,i as t,a4 as k,av as X,S as p,R as G,dX as U,dY as Y,F as xe,az as me,a5 as ve,t as f,dZ as we,d_ as _e,_ as be}from"./index-CjqsrRCL.js";var ye=f('<p class="text-12-regular text-icon-warning-base">'),L=f('<p class="text-12-regular text-text-weak">'),$e=f('<ul class="max-h-36 overflow-auto text-12-regular text-text-weak font-mono">'),Se=f('<div class="flex flex-col gap-2 rounded-md border border-border-weak-base bg-background-weak px-3 py-3"><p class="text-13-medium text-text-strong">'),ke=f("<p class=text-text-critical-base>"),je=f('<p class="text-12-regular text-text-critical-base whitespace-pre-wrap">'),Ee=f('<div class="flex flex-col gap-5 p-6 pt-0"><div class="flex flex-col gap-2"><p class="text-12-regular text-text-weak"></p><p class="text-13-medium text-text-strong break-all font-mono">/</p><p class="text-12-regular text-text-weak"></p></div><div class="flex flex-wrap gap-2"><input type=file class=hidden multiple><input type=file class=hidden multiple></div><div class="flex flex-col gap-1 text-12-regular text-text-weak"><p></p></div><div class="flex justify-end gap-2">'),Ce=f("<li class=truncate>");function Le(_){const F=oe(),l=se(),T=ce(),Z=de(),[s,q]=g([]),[J,K]=g(!1),[D,Q]=g(!1),[z,B]=g(),[ee,j]=g(!0),[h,I]=g(!1),[P,R]=g({done:0,total:0,written:0,skipped:0,failed:0}),[A,$]=g("");let H,M;const te=x(()=>{const r=Z.data.path.home,a=_.directory;return r&&a.startsWith(r)?`~${a.slice(r.length)}`:a}),E=x(()=>ue(s())),S=x(()=>ge(s())),O=x(()=>{const r=z();return r===void 0||r<=0?!1:E()>r}),W=x(()=>s().length>0&&!h()&&!O()),C=x(()=>s().slice(0,pe)),re=x(()=>s().length>0&&!S());fe(()=>{const r=_.directory,a=T.current?.http;if(!r||!a){j(!1);return}let i=!1;return j(!0),he(a.url,r).then(c=>{i||B(c.availableBytes)}).catch(()=>{i||B(void 0)}).finally(()=>{i||j(!1)}),()=>{i=!0}});const N=r=>{if(!r?.length)return;$("");const a=we(r);q(a.entries),K(a.truncated),a.truncated&&$(l.t("dialog.project.upload.tooManyFiles",{max:String(Y),selected:String(a.totalSelected)}))},le=async()=>{const r=T.current?.http;if(!r||!W())return;const a=s();I(!0),$(""),R({done:0,total:a.length,written:0,skipped:0,failed:0});let i=0,c=0,m=0;const b=[];for(let d=0;d<a.length;d+=1){const u=a[d];try{(await _e(r.url,_.directory,{path:u.path,file:u.file,overwrite:D()})).status==="written"?i+=1:c+=1}catch(v){m+=1;const w=v instanceof Error?v.message:l.t("dialog.project.upload.failed");b.length<3&&b.push(`${u.path}: ${w}`)}R({done:d+1,total:a.length,written:i,skipped:c,failed:m})}if(I(!1),m===0){be({title:l.t("toast.project.upload.success",{written:String(i),skipped:String(c)})}),_.onUploaded?.(),F.close();return}$([l.t("dialog.project.upload.partialFailed",{written:String(i),skipped:String(c),failed:String(m)}),...b].join(`
2
+ `)),(i>0||c>0)&&_.onUploaded?.()};return n(ve,{get title(){return l.t("command.project.upload")},class:"w-full max-w-[520px] mx-auto",get children(){var r=Ee(),a=r.firstChild,i=a.firstChild,c=i.nextSibling,m=c.firstChild,b=c.nextSibling,d=a.nextSibling,u=d.firstChild,v=u.nextSibling,w=d.nextSibling,ae=w.firstChild,y=w.nextSibling;return t(i,()=>l.t("dialog.project.upload.destinationLabel")),t(c,te,m),t(b,()=>l.t("dialog.project.upload.destinationHint")),t(d,n(k,{type:"button",variant:"secondary",size:"large",get disabled(){return h()},onClick:()=>H?.click(),get children(){return l.t("dialog.project.upload.pickFiles")}}),u),t(d,n(k,{type:"button",variant:"secondary",size:"large",get disabled(){return h()},onClick:()=>M?.click(),get children(){return l.t("dialog.project.upload.pickFolder")}}),u),u.addEventListener("change",e=>{N(e.currentTarget.files),e.currentTarget.value=""}),X(e=>{H=e},u),v.addEventListener("change",e=>{N(e.currentTarget.files),e.currentTarget.value=""}),X(e=>{M=e,e&&e.setAttribute("webkitdirectory","")},v),t(r,n(p,{get when(){return s().length>0},get children(){var e=Se(),ne=e.firstChild;return t(ne,(()=>{var o=G(()=>!!S());return()=>o()?l.t("dialog.project.upload.folderSummary",{folder:S(),count:String(s().length),size:U(E())}):l.t("dialog.project.upload.summary",{count:String(s().length),size:U(E())})})()),t(e,n(p,{get when(){return J()},get children(){var o=ye();return t(o,()=>l.t("dialog.project.upload.truncatedHint",{max:String(Y)})),o}}),null),t(e,n(p,{get when(){return S()},get children(){var o=L();return t(o,()=>l.t("dialog.project.upload.folderHint")),o}}),null),t(e,n(p,{get when(){return re()},get children(){return[(()=>{var o=$e();return t(o,n(xe,{get each(){return C()},children:ie=>(()=>{var V=Ce();return t(V,()=>ie.path),V})()})),o})(),n(p,{get when(){return s().length>C().length},get children(){var o=L();return t(o,()=>l.t("dialog.project.upload.moreFiles",{count:String(s().length-C().length)})),o}})]}}),null),e}}),w),t(ae,()=>l.t("dialog.project.upload.diskSpace",{space:ee()?l.t("common.loading"):U(z())})),t(w,n(p,{get when(){return O()},get children(){var e=ke();return t(e,()=>l.t("dialog.project.upload.diskInsufficient")),e}}),null),t(r,n(me,{get checked(){return D()},onChange:Q,get disabled(){return h()},get children(){return l.t("dialog.project.upload.overwrite")}}),y),t(r,n(p,{get when(){return h()},get children(){var e=L();return t(e,()=>l.t("dialog.project.upload.progress",{done:String(P().done),total:String(P().total)})),e}}),y),t(r,n(p,{get when(){return A()},get children(){var e=je();return t(e,A),e}}),y),t(y,n(k,{type:"button",variant:"ghost",size:"large",get disabled(){return h()},onClick:()=>F.close(),get children(){return l.t("common.cancel")}}),null),t(y,n(k,{type:"button",variant:"primary",size:"large",get disabled(){return!W()},onClick:()=>void le(),get children(){return G(()=>!!h())()?l.t("dialog.project.upload.uploading"):l.t("dialog.project.upload.confirm")}}),null),r}})}export{Le as DialogProjectUpload};
@@ -1 +1 @@
1
- import{i as f,Q as E,bJ as Y,t as $,aI as Z,u as X,g as ee,ad as te,m as ne,e as se,f as re,j as ae,h as oe,dQ as ie,n as ce,o as b,w as le,aB as de,c as w,dq as ue,am as fe,an as P,S as C,dR as ge,I as he,dS as pe,dT as me,dG as K,a5 as we,dU as ye,dV as ve,Z as be}from"./index-CL0Pu3hA.js";var xe=$("<span data-component=keybind>");function ke(t){return(()=>{var n=xe();return f(n,()=>t.children),E(a=>Y(n,{...t.classList,[t.class??""]:!!t.class},a)),n})()}function $e(t,n){const a=Math.floor(Math.max(0,t)/1e3),l=Math.floor(a/60),s=Math.floor(l/60),d=Math.floor(s/24);return a<60?n("common.time.justNow"):l<60?n("common.time.minutesAgo.short",{count:l}):s<24?n("common.time.hoursAgo.short",{count:s}):n("common.time.daysAgo.short",{count:d})}function Se(t,n){return $e(Date.now()-new Date(t).getTime(),n)}var q=$('<span class="text-14-regular text-text-weak truncate">'),_e=$('<div class="w-full flex items-center justify-between gap-4"><div class="flex items-center gap-2 min-w-0"><span class="text-14-regular text-text-strong whitespace-nowrap">'),De=$('<span class="text-12-regular text-text-weak whitespace-nowrap ml-2">'),Me=$('<div class="w-full flex items-center justify-between rounded-md pl-1"><div class="flex items-center gap-x-3 grow min-w-0"><div class="flex items-center gap-2 min-w-0"><span class="text-14-regular text-text-strong truncate">'),Ce=$('<div class="w-full flex items-center justify-between rounded-md pl-1"><div class="flex items-center gap-x-3 grow min-w-0"><div class="flex items-center text-14-regular"><span class="text-text-weak whitespace-nowrap overflow-hidden overflow-ellipsis truncate min-w-0"></span><span class="text-text-strong whitespace-nowrap">');const I=5,Fe=["session.new","workspace.new","session.previous","session.next","terminal.toggle","review.toggle"],A=t=>{const n=new Set,a=[];for(const l of t)n.has(l.id)||(n.add(l.id),a.push(l));return a},N=(t,n)=>({id:"command:"+t.id,type:"command",title:t.title,description:t.description,keybind:t.keybind,category:n,option:t}),F=(t,n)=>({id:"file:"+t,type:"file",title:t,category:n,path:t}),Te=(t,n)=>({id:`session:${t.directory}:${t.id}`,type:"session",title:t.title,description:t.description,category:n,directory:t.directory,sessionID:t.id,archived:t.archived,updated:t.updated});function Ee(t){const n=b(()=>t.filesOnly()?[]:t.command.options.filter(s=>!s.disabled&&!s.hidden&&!s.id.startsWith("suggested.")&&s.id!=="file.open")),a=b(()=>{const s=t.language.t("palette.group.commands");return n().map(d=>N(d,s))}),l=b(()=>{const s=n(),d=new Map(Fe.map((o,c)=>[o,c])),y=s.filter(o=>d.has(o.id)),i=y.length?y:s.slice(0,I),h=y.length?[...i].sort((o,c)=>(d.get(o.id)??0)-(d.get(c.id)??0)):i,v=t.language.t("palette.group.commands");return h.map(o=>N(o,v))});return{allowed:n,list:a,picks:l}}function Ie(t){const n=ye({tabs:t.tabs,pathFromTab:t.file.pathFromTab,normalizeTab:s=>s.startsWith("file://")?t.file.tab(s):s}),a=b(()=>{const s=n.openedTabs(),d=n.activeFileTab(),y=d?[d,...s.filter(o=>o!==d)]:s,i=new Set,h=t.language.t("palette.group.files"),v=[];for(const o of y){const c=t.file.pathFromTab(o);c&&(i.has(c)||(i.add(c),v.push(F(c,h))))}return v.slice(0,I)}),l=b(()=>{const s=t.language.t("palette.group.files");return t.file.tree.children("").filter(i=>i.type==="file").map(i=>i.path).sort((i,h)=>i.localeCompare(h)).slice(0,I).map(i=>F(i,s))});return{recent:a,root:l}}function Le(t){const n={token:0,inflight:void 0,cached:void 0};return{sessions:l=>{if(!l.trim())return n.token+=1,n.inflight=void 0,n.cached=void 0,[];if(n.cached)return n.cached;if(n.inflight)return n.inflight;const d=n.token,y=t.workspaces();return y.length===0?[]:(n.inflight=Promise.all(y.map(i=>{const h=t.label(i);return t.globalSDK.client.session.list({directory:i,roots:!0}).then(v=>(v.data??[]).filter(o=>!!o?.id).map(o=>({id:o.id,title:o.title??t.language.t("command.session.new"),description:h,directory:i,archived:o.time?.archived,updated:o.time?.updated}))).catch(()=>[])})).then(i=>{if(n.token!==d)return[];const h=new Set,v=t.language.t("command.category.session"),o=i.flat().filter(c=>{const S=`${c.directory}:${c.id}`;return h.has(S)?!1:(h.add(S),!0)}).map(c=>Te(c,v));return n.cached=o,o}).catch(()=>[]).finally(()=>{n.inflight=void 0}),n.inflight)}}}function Oe(t){const n=Z(),a=X(),l=ee(),s=te(),d=ne(),y=se(),i=re(),h=ae(),v=oe(),{params:o,tabs:c,view:S}=ie(),D=()=>t.mode==="files",k={cleanup:void 0,committed:!1},[R,G]=ce(!1),L=Ee({filesOnly:D,command:n,language:a}),_=Ie({file:s,tabs:c,language:a}),j=b(()=>le(o.dir)??""),O=b(()=>{const e=j();if(e)return l.projects.list().find(r=>r.worktree===e||r.sandboxes?.includes(e))}),z=b(()=>{const e=j(),r=O();if(!r)return e?[e]:[];const u=[r.worktree,...r.sandboxes??[]];return e&&!u.includes(e)?[...u,e]:u}),H=b(()=>v.data.path.home),B=e=>{const r=O(),u=r&&e===r.worktree?a.t("workspace.type.local"):a.t("workspace.type.sandbox"),[p]=v.child(e,{bootstrap:!1}),g=H(),m=g?e.replace(g,"~"):e,x=p.vcs?.branch??K(e);return`${u} : ${x||m}`},{sessions:Q}=Le({workspaces:z,label:B,globalSDK:h,language:a}),W=async e=>{const r=e.trim();if(G(r.length>0),!r&&D()){const x=s.tree.state("")?.loaded,T=x?Promise.resolve():s.tree.list(""),M=A([..._.recent(),..._.root()]);return x||M.length>0?M:(await T,A([..._.recent(),..._.root()]))}if(!r)return[...L.picks(),..._.recent()];if(D()){const x=await s.searchFiles(r),T=a.t("palette.group.files");return x.map(M=>F(M,T))}const[u,p]=await Promise.all([s.searchFiles(r),Promise.resolve(Q(r))]),g=a.t("palette.group.files"),m=u.map(x=>F(x,g));return[...L.list(),...p,...m]},J=e=>{k.cleanup?.(),e&&e.type==="command"&&(k.cleanup=e.option?.onHighlight?.())},U=e=>{const r=s.tab(e);c().open(r),s.load(e),S().reviewPanel.opened()||S().reviewPanel.open(),l.fileTree.setTab("all"),t.onOpenFile?.(e),c().setActive(r)},V=e=>{if(e){if(k.committed=!0,k.cleanup=void 0,d.close(),e.type==="command"){e.option?.onSelect?.("palette");return}if(e.type==="session"){if(!e.directory||!e.sessionID)return;i(ve(y.pathname,be(e.directory),e.sessionID));return}e.path&&U(e.path)}};return de(()=>{k.committed||k.cleanup?.()}),w(we,{class:"pt-3 pb-0 !max-h-[480px]",transition:!0,get children(){return w(ue,{get search(){return{placeholder:D()?a.t("session.header.searchFiles"):a.t("palette.search.placeholder"),autofocus:!0,hideIcon:!0}},get emptyMessage(){return a.t("palette.empty")},get loadingMessage(){return a.t("common.loading")},items:W,key:e=>e.id,filterKeys:["title","description","category"],get groupBy(){return R()?e=>e.category:()=>""},onMove:J,onSelect:V,children:e=>w(fe,{get fallback(){return(()=>{var r=Ce(),u=r.firstChild,p=u.firstChild,g=p.firstChild,m=g.nextSibling;return f(u,w(pe,{get node(){return{path:e.path??"",type:"file"}},class:"shrink-0 size-4"}),p),f(g,()=>me(e.path??"")),f(m,()=>K(e.path??"")),r})()},get children(){return[w(P,{get when(){return e.type==="command"},get children(){var r=_e(),u=r.firstChild,p=u.firstChild;return f(p,()=>e.title),f(u,w(C,{get when(){return e.description},get children(){var g=q();return f(g,()=>e.description),g}}),null),f(r,w(C,{get when(){return e.keybind},get children(){return w(ke,{class:"rounded-[4px]",get children(){return ge(e.keybind??"",a.t)}})}}),null),r}}),w(P,{get when(){return e.type==="session"},get children(){var r=Me(),u=r.firstChild,p=u.firstChild,g=p.firstChild;return f(u,w(he,{name:"bubble-5",size:"small",class:"shrink-0 text-icon-weak"}),p),f(g,()=>e.title),f(p,w(C,{get when(){return e.description},get children(){var m=q();return f(m,()=>e.description),E(()=>m.classList.toggle("opacity-70",!!e.archived)),m}}),null),f(r,w(C,{get when(){return e.updated},get children(){var m=De();return f(m,()=>Se(new Date(e.updated).toISOString(),a.t)),m}}),null),E(()=>g.classList.toggle("opacity-70",!!e.archived)),r}})]}})})}})}export{Oe as DialogSelectFile};
1
+ import{i as f,Q as E,bR as U,t as $,aP as V,u as X,g as ee,ad as te,m as ne,e as se,f as re,j as ae,h as oe,d$ as ie,n as ce,o as b,w as le,aI as de,c as w,dB as ue,am as fe,an as O,S as C,e0 as ge,I as he,e1 as pe,e2 as me,dR as K,a5 as we,e3 as ye,e4 as ve,Z as be}from"./index-CjqsrRCL.js";var xe=$("<span data-component=keybind>");function ke(t){return(()=>{var n=xe();return f(n,()=>t.children),E(a=>U(n,{...t.classList,[t.class??""]:!!t.class},a)),n})()}function $e(t,n){const a=Math.floor(Math.max(0,t)/1e3),l=Math.floor(a/60),s=Math.floor(l/60),d=Math.floor(s/24);return a<60?n("common.time.justNow"):l<60?n("common.time.minutesAgo.short",{count:l}):s<24?n("common.time.hoursAgo.short",{count:s}):n("common.time.daysAgo.short",{count:d})}function Se(t,n){return $e(Date.now()-new Date(t).getTime(),n)}var R=$('<span class="text-14-regular text-text-weak truncate">'),_e=$('<div class="w-full flex items-center justify-between gap-4"><div class="flex items-center gap-2 min-w-0"><span class="text-14-regular text-text-strong whitespace-nowrap">'),De=$('<span class="text-12-regular text-text-weak whitespace-nowrap ml-2">'),Me=$('<div class="w-full flex items-center justify-between rounded-md pl-1"><div class="flex items-center gap-x-3 grow min-w-0"><div class="flex items-center gap-2 min-w-0"><span class="text-14-regular text-text-strong truncate">'),Ce=$('<div class="w-full flex items-center justify-between rounded-md pl-1"><div class="flex items-center gap-x-3 grow min-w-0"><div class="flex items-center text-14-regular"><span class="text-text-weak whitespace-nowrap overflow-hidden overflow-ellipsis truncate min-w-0"></span><span class="text-text-strong whitespace-nowrap">');const I=5,Fe=["session.new","workspace.new","session.previous","session.next","terminal.toggle","review.toggle"],A=t=>{const n=new Set,a=[];for(const l of t)n.has(l.id)||(n.add(l.id),a.push(l));return a},N=(t,n)=>({id:"command:"+t.id,type:"command",title:t.title,description:t.description,keybind:t.keybind,category:n,option:t}),F=(t,n)=>({id:"file:"+t,type:"file",title:t,category:n,path:t}),Te=(t,n)=>({id:`session:${t.directory}:${t.id}`,type:"session",title:t.title,description:t.description,category:n,directory:t.directory,sessionID:t.id,archived:t.archived,updated:t.updated});function Ee(t){const n=b(()=>t.filesOnly()?[]:t.command.options.filter(s=>!s.disabled&&!s.hidden&&!s.id.startsWith("suggested.")&&s.id!=="file.open")),a=b(()=>{const s=t.language.t("palette.group.commands");return n().map(d=>N(d,s))}),l=b(()=>{const s=n(),d=new Map(Fe.map((o,c)=>[o,c])),y=s.filter(o=>d.has(o.id)),i=y.length?y:s.slice(0,I),h=y.length?[...i].sort((o,c)=>(d.get(o.id)??0)-(d.get(c.id)??0)):i,v=t.language.t("palette.group.commands");return h.map(o=>N(o,v))});return{allowed:n,list:a,picks:l}}function Ie(t){const n=ye({tabs:t.tabs,pathFromTab:t.file.pathFromTab,normalizeTab:s=>s.startsWith("file://")?t.file.tab(s):s}),a=b(()=>{const s=n.openedTabs(),d=n.activeFileTab(),y=d?[d,...s.filter(o=>o!==d)]:s,i=new Set,h=t.language.t("palette.group.files"),v=[];for(const o of y){const c=t.file.pathFromTab(o);c&&(i.has(c)||(i.add(c),v.push(F(c,h))))}return v.slice(0,I)}),l=b(()=>{const s=t.language.t("palette.group.files");return t.file.tree.children("").filter(i=>i.type==="file").map(i=>i.path).sort((i,h)=>i.localeCompare(h)).slice(0,I).map(i=>F(i,s))});return{recent:a,root:l}}function Le(t){const n={token:0,inflight:void 0,cached:void 0};return{sessions:l=>{if(!l.trim())return n.token+=1,n.inflight=void 0,n.cached=void 0,[];if(n.cached)return n.cached;if(n.inflight)return n.inflight;const d=n.token,y=t.workspaces();return y.length===0?[]:(n.inflight=Promise.all(y.map(i=>{const h=t.label(i);return t.globalSDK.client.session.list({directory:i,roots:!0}).then(v=>(v.data??[]).filter(o=>!!o?.id).map(o=>({id:o.id,title:o.title??t.language.t("command.session.new"),description:h,directory:i,archived:o.time?.archived,updated:o.time?.updated}))).catch(()=>[])})).then(i=>{if(n.token!==d)return[];const h=new Set,v=t.language.t("command.category.session"),o=i.flat().filter(c=>{const S=`${c.directory}:${c.id}`;return h.has(S)?!1:(h.add(S),!0)}).map(c=>Te(c,v));return n.cached=o,o}).catch(()=>[]).finally(()=>{n.inflight=void 0}),n.inflight)}}}function Pe(t){const n=V(),a=X(),l=ee(),s=te(),d=ne(),y=se(),i=re(),h=ae(),v=oe(),{params:o,tabs:c,view:S}=ie(),D=()=>t.mode==="files",k={cleanup:void 0,committed:!1},[q,z]=ce(!1),L=Ee({filesOnly:D,command:n,language:a}),_=Ie({file:s,tabs:c,language:a}),j=b(()=>le(o.dir)??""),P=b(()=>{const e=j();if(e)return l.projects.list().find(r=>r.worktree===e||r.sandboxes?.includes(e))}),G=b(()=>{const e=j(),r=P();if(!r)return e?[e]:[];const u=[r.worktree,...r.sandboxes??[]];return e&&!u.includes(e)?[...u,e]:u}),H=b(()=>v.data.path.home),B=e=>{const r=P(),u=r&&e===r.worktree?a.t("workspace.type.local"):a.t("workspace.type.sandbox"),[p]=v.child(e,{bootstrap:!1}),g=H(),m=g?e.replace(g,"~"):e,x=p.vcs?.branch??K(e);return`${u} : ${x||m}`},{sessions:W}=Le({workspaces:G,label:B,globalSDK:h,language:a}),Q=async e=>{const r=e.trim();if(z(r.length>0),!r&&D()){const x=s.tree.state("")?.loaded,T=x?Promise.resolve():s.tree.list(""),M=A([..._.recent(),..._.root()]);return x||M.length>0?M:(await T,A([..._.recent(),..._.root()]))}if(!r)return[...L.picks(),..._.recent()];if(D()){const x=await s.searchFiles(r),T=a.t("palette.group.files");return x.map(M=>F(M,T))}const[u,p]=await Promise.all([s.searchFiles(r),Promise.resolve(W(r))]),g=a.t("palette.group.files"),m=u.map(x=>F(x,g));return[...L.list(),...p,...m]},Y=e=>{k.cleanup?.(),e&&e.type==="command"&&(k.cleanup=e.option?.onHighlight?.())},Z=e=>{const r=s.tab(e);c().open(r),s.load(e),S().reviewPanel.opened()||S().reviewPanel.open(),l.fileTree.setTab("all"),t.onOpenFile?.(e),c().setActive(r)},J=e=>{if(e){if(k.committed=!0,k.cleanup=void 0,d.close(),e.type==="command"){e.option?.onSelect?.("palette");return}if(e.type==="session"){if(!e.directory||!e.sessionID)return;i(ve(y.pathname,be(e.directory),e.sessionID));return}e.path&&Z(e.path)}};return de(()=>{k.committed||k.cleanup?.()}),w(we,{class:"pt-3 pb-0 !max-h-[480px]",transition:!0,get children(){return w(ue,{get search(){return{placeholder:D()?a.t("session.header.searchFiles"):a.t("palette.search.placeholder"),autofocus:!0,hideIcon:!0}},get emptyMessage(){return a.t("palette.empty")},get loadingMessage(){return a.t("common.loading")},items:Q,key:e=>e.id,filterKeys:["title","description","category"],get groupBy(){return q()?e=>e.category:()=>""},onMove:Y,onSelect:J,children:e=>w(fe,{get fallback(){return(()=>{var r=Ce(),u=r.firstChild,p=u.firstChild,g=p.firstChild,m=g.nextSibling;return f(u,w(pe,{get node(){return{path:e.path??"",type:"file"}},class:"shrink-0 size-4"}),p),f(g,()=>me(e.path??"")),f(m,()=>K(e.path??"")),r})()},get children(){return[w(O,{get when(){return e.type==="command"},get children(){var r=_e(),u=r.firstChild,p=u.firstChild;return f(p,()=>e.title),f(u,w(C,{get when(){return e.description},get children(){var g=R();return f(g,()=>e.description),g}}),null),f(r,w(C,{get when(){return e.keybind},get children(){return w(ke,{class:"rounded-[4px]",get children(){return ge(e.keybind??"",a.t)}})}}),null),r}}),w(O,{get when(){return e.type==="session"},get children(){var r=Me(),u=r.firstChild,p=u.firstChild,g=p.firstChild;return f(u,w(he,{name:"bubble-5",size:"small",class:"shrink-0 text-icon-weak"}),p),f(g,()=>e.title),f(p,w(C,{get when(){return e.description},get children(){var m=R();return f(m,()=>e.description),E(()=>m.classList.toggle("opacity-70",!!e.archived)),m}}),null),f(r,w(C,{get when(){return e.updated},get children(){var m=De();return f(m,()=>Se(new Date(e.updated).toISOString(),a.t)),m}}),null),E(()=>g.classList.toggle("opacity-70",!!e.archived)),r}})]}})})}})}export{Pe as DialogSelectFile};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CL0Pu3hA.js","assets/index-FpOsJHB5.css"])))=>i.map(i=>d[i]);
2
- import{u as x,i as d,c as i,S as h,t as b,m as y,a4 as P,a5 as M,bf as O,dW as v,H as k,dX as S,dY as C,dZ as z,o as B,d_ as _,d$ as p,dq as E,a7 as L,$ as I}from"./index-CL0Pu3hA.js";var j=b('<div class="flex flex-col gap-1 py-1"><div class=text-13-medium></div><div class="text-12-regular text-text-invert-base"></div><div class="text-12-regular text-text-invert-base">'),A=b('<div class="text-12-regular text-text-invert-base">');const F=o=>{const n=x(),a=e=>{const l=`${e.id} ${e.name}`.toLowerCase();return/claude|anthropic/.test(l)?n.t("model.provider.anthropic"):/gpt|o[1-4]|codex|openai/.test(l)?n.t("model.provider.openai"):/gemini|palm|bard|google/.test(l)?n.t("model.provider.google"):/grok|xai/.test(l)?n.t("model.provider.xai"):/llama|meta/.test(l)?n.t("model.provider.meta"):e.provider.name},c=e=>e==="text"?n.t("model.input.text"):e==="image"?n.t("model.input.image"):e==="audio"?n.t("model.input.audio"):e==="video"?n.t("model.input.video"):e==="pdf"?n.t("model.input.pdf"):e,t=()=>{const e=[];o.latest&&e.push(n.t("model.tag.latest")),o.free&&e.push(n.t("model.tag.free")),o.limited&&e.push(n.t("model.tag.limited"));const l=e.length?` (${e.join(", ")})`:"";return`${a(o.model)} ${o.model.name}${l}`},r=()=>{if(o.model.capabilities){const g=o.model.capabilities.input,f=["text","image","audio","video","pdf"].filter(m=>g[m]).map(m=>c(m));return f.length?f.join(", "):void 0}const e=o.model.modalities?.input;if(!e)return;const l=e.map(g=>c(g));return l.length?l.join(", "):void 0},u=()=>o.model.capabilities?o.model.capabilities.reasoning?n.t("model.tooltip.reasoning.allowed"):n.t("model.tooltip.reasoning.none"):o.model.reasoning?n.t("model.tooltip.reasoning.allowed"):n.t("model.tooltip.reasoning.none"),s=()=>n.t("model.tooltip.context",{limit:o.model.limit.context.toLocaleString()});return(()=>{var e=j(),l=e.firstChild,g=l.nextSibling,D=g.nextSibling;return d(l,t),d(e,i(h,{get when(){return r()},children:f=>(()=>{var m=A();return d(m,()=>n.t("model.tooltip.allows",{inputs:f()})),m})()}),g),d(g,u),d(D,s),e})()};var K=b('<div class="w-full flex items-center gap-x-2 text-13-regular"><span class=truncate>'),R=b('<div class="flex items-center gap-1">');const $=(o,n)=>o==="opencode"&&(!n||n.input===0),w=o=>o==="onescience",T=o=>{const n=o.model??z().model,a=x(),c=B(()=>n.list().filter(r=>o.provider?r.provider.id===o.provider:!0).filter(r=>n.visible({modelID:r.id,providerID:r.provider.id})).map(r=>({...r,search:[r.provider.name,r.provider.id,r.name,r.id,r.family,$(r.provider.id,r.cost)?"free 免费":"",w(r.provider.id)?"limited 限免":"",r.latest?"latest 最新":""].join(" ")})));return i(E,{get class(){return`flex-1 min-h-0 [&_[data-slot=list-scroll]]:flex-1 [&_[data-slot=list-scroll]]:min-h-0 ${o.class??""}`},get search(){return{placeholder:a.t("dialog.model.search.placeholder"),autofocus:!0,action:o.action}},get emptyMessage(){return a.t("dialog.model.empty")},key:t=>`${t.provider.id}:${t.id}`,items:c,get current(){return n.current()},scrollToCurrent:!1,filterKeys:["search"],sortBy:(t,r)=>t.name.localeCompare(r.name),groupBy:t=>t.provider.name,sortGroupsBy:(t,r)=>{const u=t.items[0].provider.id,s=r.items[0].provider.id;return p.includes(u)&&!p.includes(s)?-1:!p.includes(u)&&p.includes(s)?1:p.indexOf(u)-p.indexOf(s)},itemWrapper:(t,r)=>i(S,{class:"w-full",placement:"right-start",gutter:12,get value(){return i(F,{model:t,get latest(){return t.latest},get free(){return $(t.provider.id,t.cost)},get limited(){return w(t.provider.id)}})},children:r}),onSelect:t=>{n.set(t?{modelID:t.id,providerID:t.provider.id}:void 0,{recent:!0}),o.onSelect()},children:t=>(()=>{var r=K(),u=r.firstChild;return d(u,()=>t.name),d(r,i(h,{get when(){return $(t.provider.id,t.cost)},get children(){return i(_,{get children(){return a.t("model.tag.free")}})}}),null),d(r,i(h,{get when(){return w(t.provider.id)},get children(){return i(_,{get children(){return a.t("model.tag.limited")}})}}),null),d(r,i(h,{get when(){return t.latest},get children(){return i(_,{get children(){return a.t("model.tag.latest")}})}}),null),r})()})};function W(o){const[n,a]=O({open:!1,dismiss:null}),c=y(),t=e=>{a("dismiss",e),a("open",!1)},r=()=>{t("manage"),c.show(()=>i(L,{tab:"models"}))},u=()=>{t("provider"),I(()=>import("./index-CL0Pu3hA.js").then(e=>e.ed),__vite__mapDeps([0,1])).then(e=>{c.show(()=>i(e.DialogSelectProvider,{}))})},s=x();return i(v,{get open(){return n.open},onOpenChange:e=>{e&&a("dismiss",null),a("open",e)},modal:!1,placement:"top-start",gutter:4,get children(){return[i(v.Trigger,k({get as(){return o.triggerAs??"div"}},()=>o.triggerProps,{get children(){return o.children}})),i(v.Portal,{get children(){return i(v.Content,{class:"w-72 h-80 flex flex-col p-2 rounded-md border border-border-base bg-surface-raised-stronger-non-alpha shadow-md z-50 outline-none overflow-hidden",onEscapeKeyDown:e=>{t("escape"),e.preventDefault(),e.stopPropagation()},onPointerDownOutside:()=>t("outside"),onFocusOutside:()=>t("outside"),onCloseAutoFocus:e=>{const l=n.dismiss;l==="outside"&&e.preventDefault(),(l==="escape"||l==="select")&&(e.preventDefault(),o.onClose?.(l)),a("dismiss",null)},get children(){return[i(v.Title,{class:"sr-only",get children(){return s.t("dialog.model.select.title")}}),i(T,{get provider(){return o.provider},get model(){return o.model},onSelect:()=>t("select"),class:"p-1",get action(){return(()=>{var e=R();return d(e,i(S,{placement:"top",get value(){return s.t("command.provider.connect")},get children(){return i(C,{icon:"plus-small",variant:"ghost",iconSize:"normal",class:"size-6",get"aria-label"(){return s.t("command.provider.connect")},onClick:u})}}),null),d(e,i(S,{placement:"top",get value(){return s.t("settings.models.title")},get children(){return i(C,{icon:"sliders",variant:"ghost",iconSize:"normal",class:"size-6",get"aria-label"(){return s.t("settings.models.title")},onClick:r})}}),null),e})()}})]}})}})]}})}const q=o=>{const n=y(),a=x(),c=()=>{I(()=>import("./index-CL0Pu3hA.js").then(r=>r.ed),__vite__mapDeps([0,1])).then(r=>{n.show(()=>i(r.DialogSelectProvider,{}))})},t=()=>{n.show(()=>i(L,{tab:"models"}))};return i(M,{get title(){return a.t("dialog.model.select.title")},get action(){return i(P,{class:"h-7 -my-1 text-14-medium",icon:"plus-small",tabIndex:-1,onClick:c,get children(){return a.t("command.provider.connect")}})},get children(){return[i(T,{get provider(){return o.provider},get model(){return o.model},onSelect:()=>n.close()}),i(P,{variant:"ghost",class:"ml-3 mt-5 mb-6 text-text-base self-start",onClick:t,get children(){return a.t("settings.models.title")}})]}})};export{q as DialogSelectModel,W as ModelSelectorPopover};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CjqsrRCL.js","assets/index-qvfonuvp.css"])))=>i.map(i=>d[i]);
2
+ import{u as x,i as d,c as i,S as h,t as b,m as y,a4 as P,a5 as M,bm as O,e5 as v,H as k,e6 as S,e7 as C,e8 as B,o as z,e9 as _,ea as p,dB as E,a7 as L,$ as I}from"./index-CjqsrRCL.js";var j=b('<div class="flex flex-col gap-1 py-1"><div class=text-13-medium></div><div class="text-12-regular text-text-invert-base"></div><div class="text-12-regular text-text-invert-base">'),A=b('<div class="text-12-regular text-text-invert-base">');const F=n=>{const o=x(),a=e=>{const l=`${e.id} ${e.name}`.toLowerCase();return/claude|anthropic/.test(l)?o.t("model.provider.anthropic"):/gpt|o[1-4]|codex|openai/.test(l)?o.t("model.provider.openai"):/gemini|palm|bard|google/.test(l)?o.t("model.provider.google"):/grok|xai/.test(l)?o.t("model.provider.xai"):/llama|meta/.test(l)?o.t("model.provider.meta"):e.provider.name},c=e=>e==="text"?o.t("model.input.text"):e==="image"?o.t("model.input.image"):e==="audio"?o.t("model.input.audio"):e==="video"?o.t("model.input.video"):e==="pdf"?o.t("model.input.pdf"):e,t=()=>{const e=[];n.latest&&e.push(o.t("model.tag.latest")),n.free&&e.push(o.t("model.tag.free")),n.limited&&e.push(o.t("model.tag.limited"));const l=e.length?` (${e.join(", ")})`:"";return`${a(n.model)} ${n.model.name}${l}`},r=()=>{if(n.model.capabilities){const g=n.model.capabilities.input,f=["text","image","audio","video","pdf"].filter(m=>g[m]).map(m=>c(m));return f.length?f.join(", "):void 0}const e=n.model.modalities?.input;if(!e)return;const l=e.map(g=>c(g));return l.length?l.join(", "):void 0},u=()=>n.model.capabilities?n.model.capabilities.reasoning?o.t("model.tooltip.reasoning.allowed"):o.t("model.tooltip.reasoning.none"):n.model.reasoning?o.t("model.tooltip.reasoning.allowed"):o.t("model.tooltip.reasoning.none"),s=()=>o.t("model.tooltip.context",{limit:n.model.limit.context.toLocaleString()});return(()=>{var e=j(),l=e.firstChild,g=l.nextSibling,D=g.nextSibling;return d(l,t),d(e,i(h,{get when(){return r()},children:f=>(()=>{var m=A();return d(m,()=>o.t("model.tooltip.allows",{inputs:f()})),m})()}),g),d(g,u),d(D,s),e})()};var K=b('<div class="w-full flex items-center gap-x-2 text-13-regular"><span class=truncate>'),R=b('<div class="flex items-center gap-1">');const $=(n,o)=>n==="opencode"&&(!o||o.input===0),w=n=>n==="onescience",T=n=>{const o=n.model??B().model,a=x(),c=z(()=>o.list().filter(r=>n.provider?r.provider.id===n.provider:!0).filter(r=>o.visible({modelID:r.id,providerID:r.provider.id})).map(r=>({...r,search:[r.provider.name,r.provider.id,r.name,r.id,r.family,$(r.provider.id,r.cost)?"free 免费":"",w(r.provider.id)?"limited 限免":"",r.latest?"latest 最新":""].join(" ")})));return i(E,{get class(){return`flex-1 min-h-0 [&_[data-slot=list-scroll]]:flex-1 [&_[data-slot=list-scroll]]:min-h-0 ${n.class??""}`},get search(){return{placeholder:a.t("dialog.model.search.placeholder"),autofocus:!0,action:n.action}},get emptyMessage(){return a.t("dialog.model.empty")},key:t=>`${t.provider.id}:${t.id}`,items:c,get current(){return o.current()},scrollToCurrent:!1,filterKeys:["search"],sortBy:(t,r)=>t.name.localeCompare(r.name),groupBy:t=>t.provider.name,sortGroupsBy:(t,r)=>{const u=t.items[0].provider.id,s=r.items[0].provider.id;return p.includes(u)&&!p.includes(s)?-1:!p.includes(u)&&p.includes(s)?1:p.indexOf(u)-p.indexOf(s)},itemWrapper:(t,r)=>i(S,{class:"w-full",placement:"right-start",gutter:12,get value(){return i(F,{model:t,get latest(){return t.latest},get free(){return $(t.provider.id,t.cost)},get limited(){return w(t.provider.id)}})},children:r}),onSelect:t=>{o.set(t?{modelID:t.id,providerID:t.provider.id}:void 0,{recent:!0}),n.onSelect()},children:t=>(()=>{var r=K(),u=r.firstChild;return d(u,()=>t.name),d(r,i(h,{get when(){return $(t.provider.id,t.cost)},get children(){return i(_,{get children(){return a.t("model.tag.free")}})}}),null),d(r,i(h,{get when(){return w(t.provider.id)},get children(){return i(_,{get children(){return a.t("model.tag.limited")}})}}),null),d(r,i(h,{get when(){return t.latest},get children(){return i(_,{get children(){return a.t("model.tag.latest")}})}}),null),r})()})};function G(n){const[o,a]=O({open:!1,dismiss:null}),c=y(),t=e=>{a("dismiss",e),a("open",!1)},r=()=>{t("manage"),c.show(()=>i(L,{tab:"models"}))},u=()=>{t("provider"),I(()=>import("./index-CjqsrRCL.js").then(e=>e.eo),__vite__mapDeps([0,1])).then(e=>{c.show(()=>i(e.DialogSelectProvider,{}))})},s=x();return i(v,{get open(){return o.open},onOpenChange:e=>{e&&a("dismiss",null),a("open",e)},modal:!1,placement:"top-start",gutter:4,get children(){return[i(v.Trigger,k({get as(){return n.triggerAs??"div"}},()=>n.triggerProps,{get children(){return n.children}})),i(v.Portal,{get children(){return i(v.Content,{class:"w-72 h-80 flex flex-col p-2 rounded-md border border-border-base bg-surface-raised-stronger-non-alpha shadow-md z-50 outline-none overflow-hidden",onEscapeKeyDown:e=>{t("escape"),e.preventDefault(),e.stopPropagation()},onPointerDownOutside:()=>t("outside"),onFocusOutside:()=>t("outside"),onCloseAutoFocus:e=>{const l=o.dismiss;l==="outside"&&e.preventDefault(),(l==="escape"||l==="select")&&(e.preventDefault(),n.onClose?.(l)),a("dismiss",null)},get children(){return[i(v.Title,{class:"sr-only",get children(){return s.t("dialog.model.select.title")}}),i(T,{get provider(){return n.provider},get model(){return n.model},onSelect:()=>t("select"),class:"p-1",get action(){return(()=>{var e=R();return d(e,i(S,{placement:"top",get value(){return s.t("command.provider.connect")},get children(){return i(C,{icon:"plus-small",variant:"ghost",iconSize:"normal",class:"size-6",get"aria-label"(){return s.t("command.provider.connect")},onClick:u})}}),null),d(e,i(S,{placement:"top",get value(){return s.t("settings.models.title")},get children(){return i(C,{icon:"sliders",variant:"ghost",iconSize:"normal",class:"size-6",get"aria-label"(){return s.t("settings.models.title")},onClick:r})}}),null),e})()}})]}})}})]}})}const H=n=>{const o=y(),a=x(),c=()=>{I(()=>import("./index-CjqsrRCL.js").then(r=>r.eo),__vite__mapDeps([0,1])).then(r=>{o.show(()=>i(r.DialogSelectProvider,{}))})},t=()=>{o.show(()=>i(L,{tab:"models"}))};return i(M,{get title(){return a.t("dialog.model.select.title")},get action(){return i(P,{class:"h-7 -my-1 text-14-medium",icon:"plus-small",tabIndex:-1,onClick:c,get children(){return a.t("command.provider.connect")}})},get children(){return[i(T,{get provider(){return n.provider},get model(){return n.model},onSelect:()=>o.close()}),i(P,{variant:"ghost",class:"ml-3 mt-5 mb-6 text-text-base self-start",onClick:t,get children(){return a.t("settings.models.title")}})]}})};export{H as DialogSelectModel,G as ModelSelectorPopover};
@@ -1,3 +1,3 @@
1
- import{m as $,o as r,s as I,dH as A,c as s,i as a,S as m,a4 as x,a5 as N,t as b}from"./index-CL0Pu3hA.js";var T=b('<pre class="m-0 shrink-0 max-h-28 overflow-y-auto rounded-lg border border-border-weak-base bg-background-weak p-3 text-12-regular text-text-strong leading-5 whitespace-pre-wrap break-all">服务端返回:'),S=b('<pre class="m-0 shrink-0 max-h-24 overflow-y-auto rounded-lg border border-border-weak-base bg-background-weak p-3 text-12-regular text-text-strong leading-5 whitespace-pre-wrap break-all">探测详情:'),D=b('<div class="flex flex-col gap-2 min-w-0 min-h-0"><div class="flex items-center justify-between gap-2 shrink-0"><strong class="text-13-medium text-text-strong">建议在服务器上执行</strong></div><pre class="m-0 max-h-[36vh] overflow-y-auto rounded-lg border border-border-weak-base bg-background-weak p-3 text-12-regular text-text-strong leading-5 whitespace-pre-wrap break-all">'),L=b('<div class="flex flex-col gap-4 px-6 pb-6 pt-0 min-h-0"><p class="text-14-regular text-text-weak m-0 leading-6 shrink-0"></p><p class="text-12-regular text-text-weak m-0 shrink-0">修改环境变量后需重启 OneCode,并在浏览器中重新登录后再打开终端。</p><div class="flex justify-end shrink-0">');function M(f={}){const k=$(),l=r(()=>I()),n=r(()=>l()?.capabilities.terminalUnavailableReason??""),w=r(()=>l()?.capabilities.terminalUnavailableDetail??""),i=r(()=>l()?.capabilities.terminalIsolation??""),h=r(()=>(f.failure??"").trim()),u=r(()=>!!l()&&l()?.capabilities.terminal===!0&&!n()),d=r(()=>!n()&&!u()&&i()==="bubblewrap"),p=r(()=>{if(u())return i()==="docker"?["# 1) 无 GPU:改用 bubblewrap 后重启 OneCode,并重新登录","export ONECODE_TERMINAL_ISOLATION=bubblewrap","# 2) 有 GPU 且必须用 docker:给运行账号加组后重新登录系统再启 OneCode",'sudo usermod -aG docker "$USER"',"docker info"]:i()==="bubblewrap"?["# A. 临时绕过隔离(先验证终端能否打开)","export ONECODE_TERMINAL_ISOLATION=native","# 然后重启 onecode,浏览器重新登录后再开终端","","# B. 继续用 bubblewrap 时,在运行 OneCode 的机器上检查:","which bwrap; bwrap --version","bwrap --unshare-all --die-with-parent --new-session --proc /proc --dev /dev --ro-bind-try /usr /usr --ro-bind-try /bin /bin --tmpfs /tmp -- /usr/bin/true; echo exit:$?","cat /proc/sys/kernel/unprivileged_userns_clone","cat /proc/sys/kernel/apparmor_restrict_unprivileged_userns 2>/dev/null || true","","# C. 若 exit 非 0,可临时放开(需管理员;重启后可能失效)","sudo sysctl -w kernel.unprivileged_userns_clone=1","sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0","","# D. 服务端日志(搜 creating session / exited)",'ls ~/.local/share/opencode/log/ 2>/dev/null || ls "$HOME"/.local/share/opencode/log/']:["# 查看服务端日志(搜 creating session / exited)",'ls ~/.local/share/opencode/log/ 2>/dev/null || ls "$HOME"/.local/share/opencode/log/',"# 临时可改:export ONECODE_TERMINAL_ISOLATION=native 后重启并重新登录"];const e=A(l());return Array.isArray(e)&&e.length>0?e:d()?["export ONECODE_TERMINAL_ISOLATION=native","cat /proc/sys/kernel/unprivileged_userns_clone"]:[]}),v=r(()=>p().length>0),_=r(()=>u()?"无法打开终端":n()==="docker-missing"?"无法打开终端:Docker 不可用":n()==="disabled"?"无法打开终端:服务未启用":n()==="bubblewrap-unusable"?"无法打开终端:bubblewrap 异常":d()?"无法打开终端:隔离环境异常":"无法打开终端:需要 bubblewrap"),O=r(()=>u()?i()==="docker"?"隔离模式为 docker,创建终端失败。常见原因是当前用户无权访问 docker.sock。无 GPU 请改用 bubblewrap;有 GPU 请把运行账号加入 docker 组。":i()==="bubblewrap"?"隔离模式为 bubblewrap,创建终端失败(服务端 POST /pty 返回错误)。可先按下方 A 改用 native 验证;若需继续隔离,再按 B/C 检查 bubblewrap 与内核命名空间。":`隔离模式为 ${i()||"native"},创建终端失败。请按下方命令查看日志或临时调整隔离模式后重试。`:n()==="docker-missing"?"已配置 docker 隔离,但当前用户无法使用 Docker。无 GPU 请改用 bubblewrap;有 GPU 请将运行账号加入 docker 组。":n()==="disabled"?"服务端未启用平台账号终端。":n()==="bubblewrap-unusable"?"已安装 bubblewrap,但无法创建用户命名空间。请按下方命令检查后重启 OneCode 并重新登录。":d()?"bubblewrap 终端启动失败。可临时改用 native,或检查 user namespace 相关 sysctl。":"需要安装 bubblewrap 后重启 OneCode 并重新登录。容器部署可使用 ONECODE_TERMINAL_ISOLATION=native。"),C=async()=>{const e=p().filter(o=>o.trim().length>0&&!o.trim().startsWith("#")).join(`
2
- `);if(e)try{await navigator.clipboard.writeText(e)}catch{}};return s(N,{get title(){return _()},class:"w-full max-w-[560px] mx-auto",size:"large",get children(){var e=L(),o=e.firstChild,c=o.nextSibling,y=c.nextSibling;return a(o,O),a(e,s(m,{get when(){return h()},get children(){var t=T();return t.firstChild,a(t,h,null),t}}),c),a(e,s(m,{get when(){return w()},get children(){var t=S();return t.firstChild,a(t,w,null),t}}),c),a(e,s(m,{get when(){return v()},get children(){var t=D(),g=t.firstChild;g.firstChild;var E=g.nextSibling;return a(g,s(x,{type:"button",size:"normal",variant:"ghost",onClick:()=>void C(),children:"复制命令"}),null),a(E,()=>p().join(`
1
+ import{m as $,o as r,s as I,dS as A,c as s,i as a,S as m,a4 as x,a5 as N,t as b}from"./index-CjqsrRCL.js";var S=b('<pre class="m-0 shrink-0 max-h-28 overflow-y-auto rounded-lg border border-border-weak-base bg-background-weak p-3 text-12-regular text-text-strong leading-5 whitespace-pre-wrap break-all">服务端返回:'),T=b('<pre class="m-0 shrink-0 max-h-24 overflow-y-auto rounded-lg border border-border-weak-base bg-background-weak p-3 text-12-regular text-text-strong leading-5 whitespace-pre-wrap break-all">探测详情:'),D=b('<div class="flex flex-col gap-2 min-w-0 min-h-0"><div class="flex items-center justify-between gap-2 shrink-0"><strong class="text-13-medium text-text-strong">建议在服务器上执行</strong></div><pre class="m-0 max-h-[36vh] overflow-y-auto rounded-lg border border-border-weak-base bg-background-weak p-3 text-12-regular text-text-strong leading-5 whitespace-pre-wrap break-all">'),L=b('<div class="flex flex-col gap-4 px-6 pb-6 pt-0 min-h-0"><p class="text-14-regular text-text-weak m-0 leading-6 shrink-0"></p><p class="text-12-regular text-text-weak m-0 shrink-0">修改环境变量后需重启 OneCode,并在浏览器中重新登录后再打开终端。</p><div class="flex justify-end shrink-0">');function M(f={}){const k=$(),l=r(()=>I()),n=r(()=>l()?.capabilities.terminalUnavailableReason??""),w=r(()=>l()?.capabilities.terminalUnavailableDetail??""),i=r(()=>l()?.capabilities.terminalIsolation??""),h=r(()=>(f.failure??"").trim()),u=r(()=>!!l()&&l()?.capabilities.terminal===!0&&!n()),d=r(()=>!n()&&!u()&&i()==="bubblewrap"),p=r(()=>{if(u())return i()==="docker"?["# 1) 无 GPU:改用 bubblewrap 后重启 OneCode,并重新登录","export ONECODE_TERMINAL_ISOLATION=bubblewrap","# 2) 有 GPU 且必须用 docker:给运行账号加组后重新登录系统再启 OneCode",'sudo usermod -aG docker "$USER"',"docker info"]:i()==="bubblewrap"?["# A. 临时绕过隔离(先验证终端能否打开)","export ONECODE_TERMINAL_ISOLATION=native","# 然后重启 onecode,浏览器重新登录后再开终端","","# B. 继续用 bubblewrap 时,在运行 OneCode 的机器上检查:","which bwrap; bwrap --version","bwrap --unshare-all --die-with-parent --new-session --proc /proc --dev /dev --ro-bind-try /usr /usr --ro-bind-try /bin /bin --tmpfs /tmp -- /usr/bin/true; echo exit:$?","cat /proc/sys/kernel/unprivileged_userns_clone","cat /proc/sys/kernel/apparmor_restrict_unprivileged_userns 2>/dev/null || true","","# C. 若 exit 非 0,可临时放开(需管理员;重启后可能失效)","sudo sysctl -w kernel.unprivileged_userns_clone=1","sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0","","# D. 服务端日志(搜 creating session / exited)",'ls ~/.local/share/opencode/log/ 2>/dev/null || ls "$HOME"/.local/share/opencode/log/']:["# 查看服务端日志(搜 creating session / exited)",'ls ~/.local/share/opencode/log/ 2>/dev/null || ls "$HOME"/.local/share/opencode/log/',"# 临时可改:export ONECODE_TERMINAL_ISOLATION=native 后重启并重新登录"];const e=A(l());return Array.isArray(e)&&e.length>0?e:d()?["export ONECODE_TERMINAL_ISOLATION=native","cat /proc/sys/kernel/unprivileged_userns_clone"]:[]}),v=r(()=>p().length>0),_=r(()=>u()?"无法打开终端":n()==="docker-missing"?"无法打开终端:Docker 不可用":n()==="disabled"?"无法打开终端:服务未启用":n()==="bubblewrap-unusable"?"无法打开终端:bubblewrap 异常":d()?"无法打开终端:隔离环境异常":"无法打开终端:需要 bubblewrap"),O=r(()=>u()?i()==="docker"?"隔离模式为 docker,创建终端失败。常见原因是当前用户无权访问 docker.sock。无 GPU 请改用 bubblewrap;有 GPU 请把运行账号加入 docker 组。":i()==="bubblewrap"?"隔离模式为 bubblewrap,创建终端失败(服务端 POST /pty 返回错误)。可先按下方 A 改用 native 验证;若需继续隔离,再按 B/C 检查 bubblewrap 与内核命名空间。":`隔离模式为 ${i()||"native"},创建终端失败。请按下方命令查看日志或临时调整隔离模式后重试。`:n()==="docker-missing"?"已配置 docker 隔离,但当前用户无法使用 Docker。无 GPU 请改用 bubblewrap;有 GPU 请将运行账号加入 docker 组。":n()==="disabled"?"服务端未启用平台账号终端。":n()==="bubblewrap-unusable"?"已安装 bubblewrap,但无法创建用户命名空间。请按下方命令检查后重启 OneCode 并重新登录。":d()?"bubblewrap 终端启动失败。可临时改用 native,或检查 user namespace 相关 sysctl。":"需要安装 bubblewrap 后重启 OneCode 并重新登录。容器部署可使用 ONECODE_TERMINAL_ISOLATION=native。"),C=async()=>{const e=p().filter(o=>o.trim().length>0&&!o.trim().startsWith("#")).join(`
2
+ `);if(e)try{await navigator.clipboard.writeText(e)}catch{}};return s(N,{get title(){return _()},class:"w-full max-w-[560px] mx-auto",size:"large",get children(){var e=L(),o=e.firstChild,c=o.nextSibling,y=c.nextSibling;return a(o,O),a(e,s(m,{get when(){return h()},get children(){var t=S();return t.firstChild,a(t,h,null),t}}),c),a(e,s(m,{get when(){return w()},get children(){var t=T();return t.firstChild,a(t,w,null),t}}),c),a(e,s(m,{get when(){return v()},get children(){var t=D(),g=t.firstChild;g.firstChild;var E=g.nextSibling;return a(g,s(x,{type:"button",size:"normal",variant:"ghost",onClick:()=>void C(),children:"复制命令"}),null),a(E,()=>p().join(`
3
3
  `)),t}}),c),a(y,s(x,{type:"button",variant:"primary",size:"large",onClick:()=>k.close(),children:"知道了"})),e}})}export{M as DialogTerminalUnavailable};
@@ -1 +1 @@
1
- import{e as M,f as O,n as P,x as Q,o as R,i as t,c as d,t as n,b as T,N as V,L as W,Q as x,T as k,F as g,S as j,V as q}from"./index-CL0Pu3hA.js";import{d as z}from"./onescience-docs-CH5KBTI9.js";var B=n("<div class=os-client-capability-page-grid>"),G=n('<div class="os-client-capability-page os-client-docs-page"><header class=os-client-docs-head><div class=os-client-docs-head-copy><h2>帮助</h2><p>平台使用说明、插件镜像与版本记录</p></div></header><section class=os-client-capability-selector aria-label=帮助与文档><div class=os-client-capability-current-domain><span>文档分类:</span><strong></strong><small>点击条目在新窗口打开原文</small></div><div class="os-client-capability-tabs os-client-docs-tabs"role=tablist aria-label=文档分类></div></section><div class=os-client-capability-page-body><section class=os-client-capability-resource-panel>'),J=n("<button type=button><strong></strong><small>"),K=n("<p class=os-client-capability-empty>该分类下暂无文档。"),U=n("<article class=os-client-capability-card><div><h4></h4><p></p></div><div class=os-client-capability-meta></div><div class=os-client-capability-actions><a target=_blank rel=noreferrer data-primary=true>"),X=n("<span>");const v=[{id:"manual",label:"用户手册",hint:"平台与 OneSkills 使用说明",match:e=>e.includes("用户手册")},{id:"plugins",label:"插件与镜像",hint:"插件协议与运行镜像",match:e=>e.includes("插件")||e.includes("镜像")},{id:"release",label:"发版记录",hint:"版本变化与重要调整",match:e=>e.includes("发版记录")||e.includes("版本记录")}];function w(e){const c=e.replace(/^#/,"").trim().toLowerCase();return c==="manual"||c==="plugins"||c==="release"?c:"manual"}function ee(){const e=M(),c=O(),[b,f]=P(w(e.hash));Q(()=>f(w(e.hash)));const H=a=>{f(a),c(q(a),{replace:!0})},$=()=>v.find(a=>a.id===b())??v[0],_=R(()=>z.filter(a=>$().match(a.tags)));return(()=>{var a=G(),u=a.firstChild;u.firstChild;var m=u.nextSibling,y=m.firstChild,L=y.firstChild,E=L.nextSibling,F=y.nextSibling,A=m.nextSibling,D=A.firstChild;return t(u,d(W,{get href(){return V()},class:"os-client-docs-close","aria-label":"关闭帮助",children:"×"}),null),t(E,()=>$().label),t(F,d(g,{each:v,children:i=>(()=>{var l=J(),r=l.firstChild,h=r.nextSibling;return l.$$click=()=>H(i.id),t(r,()=>i.label),t(h,()=>i.hint),x(s=>{var p=b()===i.id,o=b()===i.id;return p!==s.e&&l.classList.toggle("is-active",s.e=p),o!==s.t&&k(l,"aria-pressed",s.t=o),s},{e:void 0,t:void 0}),l})()})),t(D,d(j,{get when(){return _().length>0},get fallback(){return K()},get children(){var i=B();return t(i,d(g,{get each(){return _()},children:l=>(()=>{var r=U(),h=r.firstChild,s=h.firstChild,p=s.nextSibling,o=h.nextSibling,N=o.nextSibling,S=N.firstChild;return t(s,()=>l.title),t(p,()=>l.copy),t(o,d(g,{get each(){return l.tags},children:I=>(()=>{var C=X();return t(C,I),C})()})),t(S,()=>l.action),x(()=>k(S,"href",l.href)),r})()})),i}})),a})()}T(["click"]);export{ee as WorkbenchDocsPage};
1
+ import{e as M,f as O,n as P,x as Q,o as R,i as t,c as d,t as n,b as T,N as V,L as W,Q as x,T as k,F as g,S as j,V as q}from"./index-CjqsrRCL.js";import{d as z}from"./onescience-docs-CH5KBTI9.js";var B=n("<div class=os-client-capability-page-grid>"),G=n('<div class="os-client-capability-page os-client-docs-page"><header class=os-client-docs-head><div class=os-client-docs-head-copy><h2>帮助</h2><p>平台使用说明、插件镜像与版本记录</p></div></header><section class=os-client-capability-selector aria-label=帮助与文档><div class=os-client-capability-current-domain><span>文档分类:</span><strong></strong><small>点击条目在新窗口打开原文</small></div><div class="os-client-capability-tabs os-client-docs-tabs"role=tablist aria-label=文档分类></div></section><div class=os-client-capability-page-body><section class=os-client-capability-resource-panel>'),J=n("<button type=button><strong></strong><small>"),K=n("<p class=os-client-capability-empty>该分类下暂无文档。"),U=n("<article class=os-client-capability-card><div><h4></h4><p></p></div><div class=os-client-capability-meta></div><div class=os-client-capability-actions><a target=_blank rel=noreferrer data-primary=true>"),X=n("<span>");const v=[{id:"manual",label:"用户手册",hint:"平台与 OneSkills 使用说明",match:e=>e.includes("用户手册")},{id:"plugins",label:"插件与镜像",hint:"插件协议与运行镜像",match:e=>e.includes("插件")||e.includes("镜像")},{id:"release",label:"发版记录",hint:"版本变化与重要调整",match:e=>e.includes("发版记录")||e.includes("版本记录")}];function w(e){const c=e.replace(/^#/,"").trim().toLowerCase();return c==="manual"||c==="plugins"||c==="release"?c:"manual"}function ee(){const e=M(),c=O(),[b,f]=P(w(e.hash));Q(()=>f(w(e.hash)));const H=a=>{f(a),c(q(a),{replace:!0})},$=()=>v.find(a=>a.id===b())??v[0],_=R(()=>z.filter(a=>$().match(a.tags)));return(()=>{var a=G(),u=a.firstChild;u.firstChild;var m=u.nextSibling,y=m.firstChild,L=y.firstChild,E=L.nextSibling,F=y.nextSibling,A=m.nextSibling,D=A.firstChild;return t(u,d(W,{get href(){return V()},class:"os-client-docs-close","aria-label":"关闭帮助",children:"×"}),null),t(E,()=>$().label),t(F,d(g,{each:v,children:i=>(()=>{var l=J(),r=l.firstChild,h=r.nextSibling;return l.$$click=()=>H(i.id),t(r,()=>i.label),t(h,()=>i.hint),x(s=>{var p=b()===i.id,o=b()===i.id;return p!==s.e&&l.classList.toggle("is-active",s.e=p),o!==s.t&&k(l,"aria-pressed",s.t=o),s},{e:void 0,t:void 0}),l})()})),t(D,d(j,{get when(){return _().length>0},get fallback(){return K()},get children(){var i=B();return t(i,d(g,{get each(){return _()},children:l=>(()=>{var r=U(),h=r.firstChild,s=h.firstChild,p=s.nextSibling,o=h.nextSibling,N=o.nextSibling,S=N.firstChild;return t(s,()=>l.title),t(p,()=>l.copy),t(o,d(g,{get each(){return l.tags},children:I=>(()=>{var C=X();return t(C,I),C})()})),t(S,()=>l.action),x(()=>k(S,"href",l.href)),r})()})),i}})),a})()}T(["click"]);export{ee as WorkbenchDocsPage};