@onescience/onecode-web 1.14.50-202609151008 → 1.14.50-202609160919
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/{3Dmol-B_IGbao6.js → 3Dmol-xleXy9GQ.js} +1 -1
- package/assets/{account-system-CTeHb1vW.js → account-system-eYkc0SIK.js} +1 -1
- package/assets/{alert-04-BgqqlHmI.js → alert-01-CJCeF3ai.js} +1 -1
- package/assets/{alert-05-le40y4Ov.js → alert-02-CJi22mxO.js} +1 -1
- package/assets/{alert-01-BYx7_Y6Z.js → alert-04-BuuL0AIT.js} +1 -1
- package/assets/{alert-02-BNmvIR_v.js → alert-05-DcXrpRhd.js} +1 -1
- package/assets/alert-06-C3By8s_s.js +1 -0
- package/assets/alert-07-C-ojhQuZ.js +1 -0
- package/assets/alert-08-B8D0_9P3.js +1 -0
- package/assets/alert-10-DieOLQIQ.js +1 -0
- package/assets/{bip-bop-03-CqDsqjlf.js → bip-bop-03-BfWYH28z.js} +1 -1
- package/assets/{bip-bop-04-BfYqJzN5.js → bip-bop-04-BG-CNh_8.js} +1 -1
- package/assets/{bip-bop-06-Qa8_OIBP.js → bip-bop-06-j4-Pah17.js} +1 -1
- package/assets/{bip-bop-08-BRNo3MPi.js → bip-bop-08--N0Z031u.js} +1 -1
- package/assets/bip-bop-09-CrOhSPop.js +1 -0
- package/assets/center-B1n9y8EL.js +15 -0
- package/assets/{current-project-JlNpICgB.js → current-project-D88n80Ca.js} +1 -1
- package/assets/{dialog-edit-project-DIJi2nFh.js → dialog-edit-project-DkwpgJNK.js} +1 -1
- package/assets/{dialog-fork-BAdUOYrd.js → dialog-fork-DWY7BL9L.js} +1 -1
- package/assets/{dialog-project-upload-WdGsdhnu.js → dialog-project-upload-CQETR8DT.js} +1 -1
- package/assets/{dialog-select-file-BxZRrD_x.js → dialog-select-file-BeSTKWgn.js} +1 -1
- package/assets/{dialog-select-model-CHEbu3nA.js → dialog-select-model-C285UQWZ.js} +2 -2
- package/assets/{dialog-terminal-unavailable-Ct951kdx.js → dialog-terminal-unavailable-BJHx-DqW.js} +1 -1
- package/assets/{docs-9XmuiAVT.js → docs-DUvUHosJ.js} +1 -1
- package/assets/{ghostty-web-CQYfPYJQ.js → ghostty-web-DOfPEAa3.js} +1 -1
- package/assets/{home-rWV4IZFi.js → home-D0znvU1o.js} +1 -1
- package/assets/{index-DVeuXHcQ.css → index-B_MGkqLF.css} +1 -1
- package/assets/{index-ClzL6bnc.js → index-D89_umhI.js} +38 -38
- package/assets/{intro-CIrXkjnS.js → intro-RRbGgi66.js} +1 -1
- package/assets/{nope-02-ASorFz7P.js → nope-02-HEvVIfx-.js} +1 -1
- package/assets/{nope-05-Bb9darrm.js → nope-05-RgyHBqFD.js} +1 -1
- package/assets/{nope-08-ZdNZ54iS.js → nope-08-BS9LU-iv.js} +1 -1
- package/assets/{nope-11-CikRcDLB.js → nope-11-DDmUqlQl.js} +1 -1
- package/assets/nope-12-xFjEj3BZ.js +1 -0
- package/assets/{onescience-DIK2-VdE.js → onescience-Bh7elMIY.js} +1 -1
- package/assets/{resources-Bxi9A2NO.js → resources-BWggkSux.js} +1 -1
- package/assets/{selection-BA_gCWSj.js → selection-BGUJK_pT.js} +1 -1
- package/assets/{shell-DKbXW0cq.js → shell-DC-zhUf2.js} +2 -2
- package/assets/{skills-BOyLnWtR.js → skills-KXwoMhyR.js} +1 -1
- package/assets/{staplebops-03-2uZeelsg.js → staplebops-03-Jk0L8SSt.js} +1 -1
- package/assets/{staplebops-04-D8jUYwrY.js → staplebops-04-BpKJFMZ2.js} +1 -1
- package/assets/{staplebops-06-DPjsXuSG.js → staplebops-06-DXJvqdBM.js} +1 -1
- package/assets/{staplebops-07-CLnq5SIW.js → staplebops-07-C2GlRGJk.js} +1 -1
- package/assets/{status-popover-body-v0yai74z.js → status-popover-body-D6a05RuM.js} +2 -2
- package/assets/{wizard-DOKm2QfM.js → wizard-DO-x_wJv.js} +1 -1
- package/assets/{yup-01-Dao8BLua.js → yup-01-Cr-oSr_6.js} +1 -1
- package/assets/{yup-03-lf7BNtmg.js → yup-03-Cf1DFqxz.js} +1 -1
- package/assets/{yup-04-COy1Rj2j.js → yup-04-DzDXJxIT.js} +1 -1
- package/assets/{yup-05-CnbyLsuQ.js → yup-05-C5d28SLh.js} +1 -1
- package/index.html +11 -11
- package/package.json +2 -2
- package/assets/alert-06-B0g8xkop.js +0 -1
- package/assets/alert-07-PkjYJmP3.js +0 -1
- package/assets/alert-08-Dw29jME6.js +0 -1
- package/assets/alert-10-BlTMfkM6.js +0 -1
- package/assets/bip-bop-09-DWh-JEv4.js +0 -1
- package/assets/center-D4mU1wNB.js +0 -15
- package/assets/nope-12-BQ1aWMNo.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{eN as getDefaultExportFromCjs}from"./index-D89_umhI.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,bT as N,q as te,i,c as C,n as V,o as K,t as v,b as we,S as k,X as z,W as f,Y as E,dZ as ve,x as ge,a2 as _e,d9 as Ce,da as ye,ac as xe,O as Se,z as Pe,db as fe,d_ as ke,d$ as pe,e0 as qe,e1 as Ae,e2 as Me,e3 as Te,e4 as De,e5 as Ee,dr as oe,e6 as Ue,a5 as le,e7 as He}from"./index-ClzL6bnc.js";var G=v("<p class=os-auth-error>"),Le=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>"),Fe=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">'),je=v("<div class=os-auth-links><span>已有账号?</span><a>去登录"),Oe=v('<p class=os-auth-hint style="margin:0 0 0.35rem">通过注册邮箱获取验证码后重置密码。若无法收到邮件,请联系管理员。'),Q=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=输入邮件中的验证码>"),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>创建账号"),Xe=v('<p class=os-auth-hint style="margin:0 0 0.35rem">请设置新密码以完成重置。'),Ye=v("<main class=os-account-page><div class=os-account-shell>"),Ze=v("<section class=os-account-loading><strong>正在加载账号信息</strong><span>请稍候"),Je=v('<section class=os-account-empty-state><strong></strong><span>登录后可以查看账号资料和开发空间。</span><a href="/login?redirect=%2Faccount"class="os-button os-button-primary">去登录'),Ke=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">'),Qe=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=Le(),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=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=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=K(()=>Math.max(0,Math.ceil(((r.cooldownUntil??0)-w())/1e3))),p=K(()=>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,H=I.nextSibling,L=U.nextSibling,X=L.firstChild,Y=X.nextSibling,j=L.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 $=Fe(),T=$.firstChild,D=T.nextSibling,F=D.firstChild,R=F.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(F,()=>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(),Z=t()?"邮件服务器不可达,可留空":"输入邮件中的验证码",B=r.submitting;return O!==y.e&&(T.disabled=y.e=O),Z!==y.t&&E(R,"placeholder",y.t=Z),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 $=Ne(),T=$.firstChild,D=T.nextSibling;return D.$$input=F=>e("inviteCode",F.currentTarget.value),E(D,"spellcheck",!1),f(()=>D.value=r.inviteCode??""),$}}),U),H.$$input=$=>e("password",$.currentTarget.value),Y.$$input=$=>e("confirmPassword",$.currentTarget.value),i(s,C(k,{get when(){return r.error},get children(){var $=G();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(()=>H.value=r.password),f(()=>Y.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=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=K(()=>Math.max(0,Math.ceil((a.cooldownUntil-_())/1e3))),w=K(()=>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 Xe()},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=Q();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=Q();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 He({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=Ye(),p=o.firstChild;return i(p,C(k,{get when(){return!x.loading},get fallback(){return Ze()},get children(){return C(k,{get when(){return x.session},get fallback(){return(()=>{var n=Je(),h=n.firstChild,s=h.nextSibling;return s.nextSibling,i(h,()=>x.error||"当前未登录"),n})()},children:n=>[(()=>{var h=Ke(),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,H=I.nextSibling,L=H.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)),H.$$click=S,L.$$click=()=>_.show(()=>C(nt,{onConfirm:r})),i(L,()=>d.t("account.deleteAccount.button")),h})(),(()=>{var h=Qe(),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,H=I.firstChild,L=H.nextSibling,X=I.nextSibling,Y=X.firstChild,j=Y.nextSibling,$=X.nextSibling,T=$.firstChild,D=T.nextSibling,F=s.nextSibling,R=F.firstChild,y=R.nextSibling,O=y.firstChild,Z=O.firstChild,B=Z.nextSibling,ne=O.nextSibling,he=ne.firstChild,se=he.nextSibling,ae=ne.nextSibling,$e=ae.firstChild,ie=$e.nextSibling,J=ae.nextSibling;return i(g,()=>ot(n().expiresAt),P),i(L,()=>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=G();return i(A,()=>t.error),A}}),J),i(y,C(k,{get when(){return t.success},get children(){var A=Q();return i(A,()=>t.success),A}}),J),i(J,()=>t.submitting?"正在更新...":"更新密码"),f(()=>J.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]=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 W,u as de,m as me,bV as N,q as te,i,c as C,n as B,o as Q,t as v,b as we,S as k,X as z,W as f,Y as E,d$ as ve,x as ge,a2 as _e,db as Ce,dc as ye,ac as xe,O as Se,z as Pe,dd as fe,e0 as ke,e1 as pe,e2 as qe,e3 as Ae,e4 as Me,e5 as Te,e6 as De,e7 as Ee,dt as oe,e8 as Ue,a5 as le,e9 as He}from"./index-D89_umhI.js";var G=v("<p class=os-auth-error>"),Le=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>"),Fe=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">'),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>"),Ve=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">'),Be=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>创建账号"),Xe=v('<p class=os-auth-hint style="margin:0 0 0.35rem">请设置新密码以完成重置。'),Ye=v("<main class=os-account-page><div class=os-account-shell>"),Je=v("<section class=os-account-loading><strong>正在加载账号信息</strong><span>请稍候"),Ke=v('<section class=os-account-empty-state><strong></strong><span>登录后可以查看账号资料和开发空间。</span><a href="/login?redirect=%2Faccount"class="os-button os-button-primary">去登录'),Qe=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=Le(),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=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=W(),[d,_]=B(!1),[x,a]=B(!1),[t,m]=B(!1),[w,S]=B(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=Q(()=>Math.max(0,Math.ceil(((r.cooldownUntil??0)-w())/1e3))),p=Q(()=>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,H=I.nextSibling,L=U.nextSibling,X=L.firstChild,Y=X.nextSibling,j=L.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 $=Fe(),T=$.firstChild,D=T.nextSibling,F=D.firstChild,R=F.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(F,()=>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(),J=t()?"邮件服务器不可达,可留空":"输入邮件中的验证码",V=r.submitting;return O!==y.e&&(T.disabled=y.e=O),J!==y.t&&E(R,"placeholder",y.t=J),V!==y.a&&(R.disabled=y.a=V),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 $=Ne(),T=$.firstChild,D=T.nextSibling;return D.$$input=F=>e("inviteCode",F.currentTarget.value),E(D,"spellcheck",!1),f(()=>D.value=r.inviteCode??""),$}}),U),H.$$input=$=>e("password",$.currentTarget.value),Y.$$input=$=>e("confirmPassword",$.currentTarget.value),i(s,C(k,{get when(){return r.error},get children(){var $=G();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(()=>H.value=r.password),f(()=>Y.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=W(),u=typeof location<"u"?new URLSearchParams(location.search).get("token")?.trim()??"":"",d=!!u,[_,x]=B(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=Q(()=>Math.max(0,Math.ceil((a.cooldownUntil-_())/1e3))),w=Q(()=>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 Xe()},get children(){return Oe()}}),C(k,{when:!d,get children(){var e=Ve(),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=Be(),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 He({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=Ye(),p=o.firstChild;return i(p,C(k,{get when(){return!x.loading},get fallback(){return Je()},get children(){return C(k,{get when(){return x.session},get fallback(){return(()=>{var n=Ke(),h=n.firstChild,s=h.nextSibling;return s.nextSibling,i(h,()=>x.error||"当前未登录"),n})()},children:n=>[(()=>{var h=Qe(),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,H=I.nextSibling,L=H.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)),H.$$click=S,L.$$click=()=>_.show(()=>C(nt,{onConfirm:r})),i(L,()=>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,H=I.firstChild,L=H.nextSibling,X=I.nextSibling,Y=X.firstChild,j=Y.nextSibling,$=X.nextSibling,T=$.firstChild,D=T.nextSibling,F=s.nextSibling,R=F.firstChild,y=R.nextSibling,O=y.firstChild,J=O.firstChild,V=J.nextSibling,ne=O.nextSibling,he=ne.firstChild,se=he.nextSibling,ae=ne.nextSibling,$e=ae.firstChild,ie=$e.nextSibling,K=ae.nextSibling;return i(g,()=>ot(n().expiresAt),P),i(L,()=>n().account.name),i(j,()=>n().account.email),i(D,()=>it(n().account.timeCreated)),y.addEventListener("submit",A=>e(A,n())),V.$$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}}),K),i(y,C(k,{get when(){return t.success},get children(){var A=Z();return i(A,()=>t.success),A}}),K),i(K,()=>t.submitting?"正在更新...":"更新密码"),f(()=>K.disabled=t.submitting),f(()=>V.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 +1 @@
|
|
|
1
|
-
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-
|
|
1
|
+
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609160919/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-
|
|
1
|
+
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609160919/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-
|
|
1
|
+
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609160919/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-
|
|
1
|
+
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609160919/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-202609160919/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-202609160919/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-202609160919/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-202609160919/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-
|
|
1
|
+
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609160919/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-
|
|
1
|
+
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609160919/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-
|
|
1
|
+
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609160919/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-
|
|
1
|
+
const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202609160919/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-202609160919/assets/bip-bop-09-CxEgoAHQ.aac";export{e as default};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import{b as Be,n as T,c as l,i as t,S as b,W as _,bh as ln,t as s,bi as sn,a0 as Ot,bj as Da,bk as zt,bf as Bt,z as Nt,s as Fe,bg as Wt,a4 as gt,bl as bt,a3 as ht,a5 as ye,L as tt,bm as on,a2 as da,aC as Me,F as ee,X as Y,Y as P,aB as cn,C as ze,x as La,a1 as Ta,m as Aa,o as de,ac as Oa,bn as Et,bo as pt,bp as dn,bq as Le,l as vt,h as ft,g as $t,e as Ht,f as mt,be as yt,br as Ea,bs as un,bt as ua,bu as gn,bv as bn,bw as hn,bx as pn,by as vn,bz as fn,bA as $n,bB as mn,bC as yn,bD as _n,bE as wn,bF as Sn,bG as kn,bH as Cn,bI as xn,bJ as ga,bK as ba,bL as In,bM as Dn,q as Pt,bN as Pa,bO as Ln,bP as Tn,bQ as Lt,az as Ra,bR as An,bS as On,bT as En,bU as Pn,bV as Rn,bW as Rt,bX as jn,bY as qn,bZ as ha,b7 as Mn,b_ as Ze,b$ as Fn,c0 as Un,c1 as zn,R as pa,c2 as Bn}from"./index-D89_umhI.js";import{m as Nn,O as Wn,S as Hn,s as Qn}from"./onescience-Bh7elMIY.js";import{DialogProjectUpload as Kn}from"./dialog-project-upload-CQETR8DT.js";import{d as Jn,r as Vn,s as va,w as Yn}from"./selection-BGUJK_pT.js";import{s as Gn,a as fa,b as Xn,S as Zn}from"./wizard-DO-x_wJv.js";import"./onescience-docs-CH5KBTI9.js";var er=s("<p class=os-client-capability-upload-error role=alert>"),tr=s('<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 ar(e){return e.split(/[,,、]/).map(a=>a.trim()).filter(Boolean)}function nr(e){const[a,r]=T(""),[i,n]=T(""),[o,d]=T(""),[c,h]=T(""),f=()=>{r(""),n(""),d(""),h("")},p=()=>{f(),e.onClose()},$=v=>{v.preventDefault();const w=a().trim(),E=i().trim(),q=ar(o());if(!w||!E||q.length===0){h("请填写名称、简介和至少一个标签,以便生成与现有模型卡片一致的展示信息。");return}const re=sn({name:w,blurb:E,tags:q,domain:e.domain});e.onSaved({id:re.id,name:re.name}),p()};return l(b,{get when(){return e.open},get children(){var v=tr(),w=v.firstChild,E=w.nextSibling,q=E.firstChild,re=q.firstChild,y=re.nextSibling,_e=q.nextSibling,u=_e.nextSibling,F=u.firstChild,te=F.firstChild,U=te.nextSibling,R=U.nextSibling,z=F.nextSibling,K=z.firstChild,ne=K.nextSibling,x=ne.nextSibling,I=z.nextSibling,A=I.firstChild,W=A.firstChild,H=W.nextSibling,ie=H.nextSibling,j=A.nextSibling,se=j.firstChild,pe=se.nextSibling,Te=pe.nextSibling,X=u.nextSibling,ve=X.firstChild;return w.$$click=p,E.addEventListener("submit",$),y.$$click=p,R.$$input=J=>r(J.currentTarget.value),x.$$input=J=>n(J.currentTarget.value),ie.$$input=J=>d(J.currentTarget.value),t(E,l(b,{get when(){return c()},get children(){var J=er();return t(J,c),J}}),X),ve.$$click=p,_(()=>R.value=a()),_(()=>x.value=i()),_(()=>ie.value=o()),_(()=>Te.value=ln(e.domain)),v}})}Be(["click","input"]);function rr(e,a){return e.includes("modelscope download --model ")?e:`${e}
|
|
2
|
+
|
|
3
|
+
【从魔搭下载模型】
|
|
4
|
+
${Nn(a,{kind:"local"})}`}function lr(e){const a=Da(e);if(!a)throw new Error(`Unknown capability resource: ${e}`);if(!zt(a))throw new Error(`Capability resource is not installable: ${e}`);const r=on(a);return{banner:a.install.banner,prompt:r?rr(a.install.prompt,r):a.install.prompt}}function ja(e){if(!Ot({navigate:e.navigate,action:{type:"install",resourceId:e.resourceId},isLoggedIn:e.isLoggedIn}))return!1;const a=Da(e.resourceId);if(!a||!zt(a))return!1;const{banner:r,prompt:i}=lr(e.resourceId),n=Bt({path:e.path,recent:e.recent,lastCodeWorkspace:e.lastCodeWorkspace})||Nt(Fe())||Wt(document,e.path);if(!n)return!1;const o=gt(n);return bt(o,i),ht(o),e.openProject?.(n),e.touchCode?.(n),ye({variant:"success",title:r}),e.navigate(tt(n)),!0}const ir={all:"全部",weather:"地球科学",materials:"材料化学",bio:"生命科学",fluid:"流体仿真"};function sr(e){switch(e){case"local_fs":return"工作区";case"http_dataset":return"公开网址";case"database":return"数据库";case"remote_workspace":return"远端环境";case"onedata_ref":return"公开数据引用";default:return"其他"}}function or(e){return e==="ready"?"可训练":"未就绪"}function jt(e){if(e.connector==="remote_workspace")return"远端环境上的数据不能发布;请先落到工作区路径后再发布。";if(e.connector==="onedata_ref")return"从公开 OneData 拉回的引用不能直接发布;请对话加工成新的可训练数据后再发布。";if(e.connector==="database"||/^(postgres|mysql):\/\//i.test(e.uri))return"数据库表不能直接发布;请先转化为可训练数据或落到工作区路径后再发布。";if(e.connector==="object_store"||/^(s3|oss|cos):\/\//i.test(e.uri))return"对象存储路径不能直接发布;请使用工作区路径或公开网址。";if(!(e.connector==="local_fs"||e.connector==="http_dataset"||!e.connector))return"当前数据来源不支持发布;请使用工作区路径或公开网址的可训练数据。"}function cr(e){return e.status!=="ready"?!1:!jt(e)}function $a(e){const a=e.trim().toLowerCase();if(a.startsWith("http://")||a.startsWith("https://"))return"http_dataset";if(a.startsWith("postgres://")||a.startsWith("mysql://"))return"database"}function dr(e){switch(e){case"local_fs":return"服务器上可访问的绝对路径(账号工作区或其他有权限的目录)";case"http_dataset":return"公开可访问的网址";case"database":return"已连接数据库中的表";case"remote_workspace":return"已连接远端机器上的文件路径"}}function ur(e,a){const r=a.map(c=>c.replace(/\\/g,"/").trim()).filter(c=>c.startsWith("/")||/^[a-zA-Z]:\//.test(c));if(r.length>0&&r.length===a.length){if(r.length===1){const f=r[0];return[{kind:"file",label:f.split("/").filter(Boolean).at(-1)||f,uri:f}]}const c=gr(r),h=r.slice(0,50).map(f=>({kind:"file",label:f,uri:f}));return c?[{kind:"folder",label:c,uri:c},...h]:h}const i=e.replace(/\/+$/,""),n=a.map(c=>c.replace(/\\/g,"/").replace(/^\/+/,"")).filter(Boolean);if(n.length===0)return[];if(n.length===1)return[{kind:"file",label:n[0],uri:`${i}/${n[0]}`}];const o=qa(n),d=n.slice(0,50).map(c=>({kind:"file",label:c,uri:`${i}/${c}`}));return o?[{kind:"folder",label:o,uri:`${i}/${o}`},...d]:d}function gr(e){const a=qa(e.map(r=>r.replace(/^\/+/,"")));return a?`/${a}`:void 0}function qa(e){const a=e.map(n=>n.split("/").filter(Boolean)),r=a[0];if(!r||r.length===0)return;let i=0;for(;i<r.length-1;){const n=r[i];if(!a.every(o=>o[i]===n))break;i+=1}if(i!==0)return r.slice(0,i).join("/")}function qt(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`}function br(e){return e.trim().replace(/[^\w.\u4e00-\u9fff-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)}function hr(e,a){const r=e.trim().replace(/\/+$/,""),i=br(a)||"dataset";if(/^(https?|s3|oss|cos):\/\//i.test(r))return`onedata/ai-ready/${i}`;const n=r.split(/[/\\]/),o=n.at(-1)??"";if(/\.[A-Za-z0-9]+$/.test(o)){const c=o.replace(/\.[A-Za-z0-9]+$/,""),h=n.slice(0,-1).join("/");return h?`${h}/${c}-ai-ready`:`${c}-ai-ready`}return`${r}-ai-ready`}function pr(e){return["请使用OneScience技能对原始数据进行数据标准化处理。","",`数据集名称:${e.name}`,`source dir(原始数据):${e.sourceDir}`,`target dir(AI Ready):${e.targetDir}`,"","从 source dir 读取,标准化后写入 target dir。","完成后调用 dataset_report,只传:name(数据集名称)、target_dir(上面的 AI Ready 路径)。","dataset_report 成功后,再调用 register_dataset_primitive,传入 already_id(返回的 alr_*),可选填 title/description/data_schema/usage_notes。","source 已绑定到本会话,血缘会自动挂上;不要写 .onescience/already.json。"].join(`
|
|
5
|
+
`)}function Ma(e){return e==="workspace"?"已连接的远端":e==="shared_root"?"平台共享盘":"当前执行环境"}const Fa={materials:"材料",weather:"地球",fluid:"流体",bio:"生命"};function Mt(e,a){return a?`${Fa[e.domain]??e.domain} · ${e.name}`:e.name}function vr(e,a,r){const i=a.trim().toLowerCase();if(!i)return!0;const n=[e.name,e.id,e.blurb,Fa[e.domain]??e.domain,e.domain,Mt(e,r),...e.tags].join(" ").toLowerCase();return i.split(/\s+/).every(o=>n.includes(o))}function fr(e){const a=["请使用OneScience技能,结合选定模型与可训练数据执行训练。","",`模型:${e.modelName}(${e.modelId})`];return e.scenarioTitle&&(a.push(`场景:${e.scenarioTitle}`),e.scenarioSummary&&a.push(`场景说明:${e.scenarioSummary}`)),a.push(`数据集名称:${e.alreadyName}`,`可训练数据 ID:${e.alreadyId}`,`数据路径:${e.dataUri}`,`训练位置:${Ma(e.target)}`),e.target==="workspace"&&e.workspaceId&&a.push(`远端环境:${e.workspaceId}`),a.push("","请按该模型的训练流程配置并执行;引用数据时使用上面的可训练数据 ID(datasetRefs)。"),a.join(`
|
|
6
|
+
`)}const $r=new Set(["csv","tsv","xlsx"]),mr=new Set(["json","jsonl","ndjson"]),yr=new Set(["fasta","fa","fna","faa"]),_r=new Set(["fastq","fq"]),wr=new Set(["pdb","cif","mmcif","mol","sdf","mol2","xyz","extxyz"]),Sr=new Set(["nc","nc4","cdf","netcdf","h5","hdf5","hdf","he5","npy","npz","mat"]);function Ua(e,a){const r=(e.probe?.format_hint||a.format||"unknown").toLowerCase(),i=qt(e.probe?.logical_bytes),n={title:a.title,format:r,subtitle:[i,Ft(r)].filter(Boolean).join(" · "),samplePath:e.sample_path};if(e.zarr_summary?.arrays?.length)return{...n,kind:"zarr",format:"zarr",subtitle:[i,"Zarr",`${e.zarr_summary.arrays.length} 个数组`].filter(Boolean).join(" · "),cards:e.zarr_summary.arrays.map(o=>({label:o.path||".",value:`${o.shape.join(" × ")} · ${o.dtype}${o.chunks?.length?` · chunks ${o.chunks.join("×")}`:""}`}))};if(e.table_preview){const o=e.table_preview.columns.length?e.table_preview.columns:e.table_preview.rows[0]?Object.keys(e.table_preview.rows[0]):[],d=Math.min(Math.max(o.length,1),12),c=Array.from({length:d},(p,$)=>o[$]??""),h=e.table_preview.rows.slice(0,21).map(p=>c.map($=>kr(p[$]))),f=e.probe?.entry_count;return{...n,kind:"table",format:r==="table"?"table":r||"table",subtitle:[f!==void 0?`约 ${f} 行`:`${h.length} 行样例`,"数据表"].filter(Boolean).join(" · "),headers:c,rows:h}}if(e.directory_listing?.entries.length){const o=e.sample_path||e.directory_listing.sample_path,d=Cr(o||"");return{...n,kind:"directory",format:"directory",subtitle:[e.probe?.entry_count?`${e.probe.entry_count} 个文件`:"目录",i].filter(Boolean).join(" · "),entries:e.directory_listing.entries.map(c=>({path:c.path,is_dir:c.is_dir,size:qt(c.size_bytes)||void 0})),truncated:e.directory_listing.truncated,samplePath:o,nested:e.sample?Ua({sample:e.sample,probe:{format_hint:d||"txt"}},{title:o||"样例文件",format:d||"txt"}):void 0}}return e.sample?$r.has(r)?{...n,kind:"table",...xr(e.sample,r)}:mr.has(r)?{...n,kind:"json",body:Lr(e.sample)}:yr.has(r)?{...n,kind:"fasta",sequences:Tr(e.sample)}:_r.has(r)?{...n,kind:"fastq",sequences:Ar(e.sample)}:r==="pdf"?{...n,kind:"pdf",lines:e.sample.split(/\n+/).map(o=>o.trim()).filter(Boolean).slice(0,60)}:Sr.has(r)||Or(e.sample)?{...n,kind:"scientific",cards:Er(e.sample),body:e.sample}:wr.has(r)?{...n,kind:"structure",lines:e.sample.split(`
|
|
7
|
+
`).slice(0,120)}:{...n,kind:"text",body:e.sample,lines:e.sample.split(`
|
|
8
|
+
`).slice(0,160)}:{...n,kind:"empty",body:[i,Ft(r)].filter(Boolean).join(" · ")||"暂无预览内容"}}function Ft(e){return{csv:"CSV 表格",tsv:"TSV 表格",xlsx:"Excel 表格",json:"JSON",jsonl:"JSON Lines",ndjson:"JSON Lines",fasta:"FASTA 序列",fa:"FASTA 序列",fna:"FASTA 序列",faa:"FASTA 序列",fastq:"FASTQ 序列",fq:"FASTQ 序列",pdf:"PDF 文本",pdb:"PDB 结构",cif:"CIF 结构",mmcif:"mmCIF 结构",xyz:"XYZ 结构",extxyz:"EXTXYZ 结构",sdf:"SDF 分子",mol:"MOL 分子",nc:"NetCDF",nc4:"NetCDF",netcdf:"NetCDF",h5:"HDF5",hdf5:"HDF5",npy:"NumPy",npz:"NumPy Archive",mat:"MATLAB",zarr:"Zarr",directory:"目录",table:"数据表",txt:"文本"}[e]||e.toUpperCase()}function kr(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")return String(e);if(e instanceof Date)return e.toISOString();try{return JSON.stringify(e)}catch{return String(e)}}function Cr(e){const a=e.split("/").filter(Boolean).at(-1)||"";return(a.includes(".")?a.split(".").pop()?.toLowerCase():"")||""}function xr(e,a){const r=a==="csv"?",":Ir(e),i=e.replace(/\r\n/g,`
|
|
9
|
+
`).split(`
|
|
10
|
+
`).map(c=>c.trimEnd()).filter(c=>c.length>0).slice(0,41);if(i.length===0)return{headers:[],rows:[]};const n=i.map(c=>Dr(c,r)),o=Math.min(Math.max(...n.map(c=>c.length),1),12),d=c=>Array.from({length:o},(h,f)=>c[f]??"");return{headers:d(n[0]),rows:n.slice(1,21).map(d)}}function Ir(e){const a=e.split(/\r?\n/).find(n=>n.trim())||"",r=(a.match(/\t/g)||[]).length,i=(a.match(/,/g)||[]).length;return r>=i?" ":","}function Dr(e,a){if(a===" ")return e.split(" ");const r=[];let i="",n=!1;for(let o=0;o<e.length;o++){const d=e[o];if(d==='"'){n&&e[o+1]==='"'?(i+='"',o+=1):n=!n;continue}if(d===a&&!n){r.push(i),i="";continue}i+=d}return r.push(i),r}function Lr(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e.split(`
|
|
11
|
+
`).map(a=>a.trim()).filter(Boolean).slice(0,30).map(a=>{try{return JSON.stringify(JSON.parse(a),null,2)}catch{return a}}).join(`
|
|
12
|
+
|
|
13
|
+
`)}}function Tr(e){const a=[];let r="",i=[];for(const n of e.split(/\r?\n/)){if(n.startsWith(">")){if((r||i.length)&&a.push({header:r||"sequence",sequence:i.join("")}),a.length>=8)break;r=n.slice(1).trim()||"sequence",i=[];continue}n.trim()&&i.push(n.trim())}return(r||i.length)&&a.length<8&&a.push({header:r||"sequence",sequence:i.join("")}),a}function Ar(e){const a=e.split(/\r?\n/),r=[];for(let i=0;i+1<a.length&&r.length<8;i+=4){const n=(a[i]||"").replace(/^@/,"").trim()||"read",o=(a[i+1]||"").trim();o&&r.push({header:n,sequence:o})}return r}function Or(e){return/^(netcdf|hdf5|npy|npz|mat variables):/im.test(e)||/\bshape=\(/i.test(e)}function Er(e){return e.split(`
|
|
14
|
+
`).map(a=>a.trimEnd()).filter(Boolean).slice(0,40).map(a=>{const r=a.match(/^\s*(.+?):\s*(.+)$/);return r?{label:r[1].trim(),value:r[2].trim()}:{label:"",value:a.trim()}})}var Pr=s("<span>"),Rr=s("<button type=button class=os-onedata-preview-close>关闭"),jr=s("<section aria-label=原始数据预览><header class=os-onedata-preview-head><div class=os-onedata-preview-head-main><span></span><div class=os-onedata-preview-titles><strong></strong></div></div></header><div class=os-onedata-preview-body>"),qr=s("<div class=os-onedata-preview-table-wrap><table class=os-onedata-preview-table><thead><tr></tr></thead><tbody>"),Mr=s('<pre class="os-onedata-preview-pre os-onedata-preview-json">'),Fr=s("<ul class=os-onedata-preview-seq-list>"),Ur=s("<div class=os-onedata-preview-pdf>"),zr=s("<ul class=os-onedata-preview-cards>"),Br=s("<p class=os-onedata-preview-note>仅显示前若干项"),Nr=s("<div class=os-onedata-preview-directory><ul class=os-onedata-preview-dir-list>"),Wr=s("<div class=os-onedata-preview-structure>"),Hr=s("<p class=os-onedata-preview-empty>"),ma=s("<pre class=os-onedata-preview-pre>"),Qr=s("<th>"),Kr=s("<tr>"),Jr=s("<td>"),Vr=s("<li><div class=os-onedata-preview-seq-head><span></span><strong></strong><em> bp</em></div><p class=os-onedata-preview-seq-body>"),Yr=s("<p>"),Gr=s("<span class=os-onedata-preview-card-label>"),ya=s("<span class=os-onedata-preview-card-value>"),Xr=s("<li>"),Zr=s("<em>"),el=s("<li><span class=os-onedata-preview-dir-mark></span><code>"),tl=s("<div class=os-onedata-preview-nested><div class=os-onedata-preview-nested-label>样例文件"),al=s("<code>");function nl(e){return(()=>{var a=jr(),r=a.firstChild,i=r.firstChild,n=i.firstChild,o=n.nextSibling,d=o.firstChild,c=r.nextSibling;return t(n,()=>Ft(e.model.format)),t(d,()=>e.model.title),t(o,l(b,{get when(){return e.model.subtitle},get children(){var h=Pr();return t(h,()=>e.model.subtitle),h}}),null),t(r,l(b,{get when(){return e.onClose},get children(){var h=Rr();return h.$$click=()=>e.onClose?.(),h}}),null),t(c,l(za,{get model(){return e.model}})),_(h=>{var f=`os-onedata-preview-pane os-onedata-preview-kind-${e.model.kind}`,p=`os-onedata-preview-badge os-onedata-preview-badge-${rl(e.model)}`;return f!==h.e&&da(a,h.e=f),p!==h.t&&da(n,h.t=p),h},{e:void 0,t:void 0}),a})()}function za(e){return l(cn,{get fallback(){return(()=>{var a=ma();return t(a,()=>e.model.body||"暂无预览内容"),a})()},get children(){return[l(Me,{get when(){return Y(()=>e.model.kind==="table")()&&e.model.headers},get children(){var a=qr(),r=a.firstChild,i=r.firstChild,n=i.firstChild,o=i.nextSibling;return t(n,l(ee,{get each(){return e.model.headers},children:d=>(()=>{var c=Qr();return t(c,d||"—"),c})()})),t(o,l(ee,{get each(){return e.model.rows},children:d=>(()=>{var c=Kr();return t(c,l(ee,{each:d,children:h=>(()=>{var f=Jr();return t(f,h),f})()})),c})()})),a}}),l(Me,{get when(){return e.model.kind==="json"},get children(){var a=Mr();return t(a,()=>e.model.body),a}}),l(Me,{get when(){return Y(()=>e.model.kind==="fasta"||e.model.kind==="fastq")()&&e.model.sequences},get children(){var a=Fr();return t(a,l(ee,{get each(){return e.model.sequences},children:r=>(()=>{var i=Vr(),n=i.firstChild,o=n.firstChild,d=o.nextSibling,c=d.nextSibling,h=c.firstChild,f=n.nextSibling;return t(o,()=>e.model.kind==="fastq"?"@":">"),t(d,()=>r.header),t(c,()=>r.sequence.length,h),t(f,()=>ll(r.sequence)),i})()})),a}}),l(Me,{get when(){return Y(()=>e.model.kind==="pdf")()&&e.model.lines},get children(){var a=Ur();return t(a,l(ee,{get each(){return e.model.lines},children:r=>(()=>{var i=Yr();return t(i,r),i})()})),a}}),l(Me,{get when(){return Y(()=>e.model.kind==="zarr"||e.model.kind==="scientific")()&&e.model.cards},get children(){var a=zr();return t(a,l(ee,{get each(){return e.model.cards},children:r=>(()=>{var i=Xr();return t(i,l(b,{get when(){return r.label},get fallback(){return(()=>{var n=ya();return t(n,()=>r.value),n})()},get children(){return[(()=>{var n=Gr();return t(n,()=>r.label),n})(),(()=>{var n=ya();return t(n,()=>r.value),n})()]}})),i})()})),a}}),l(Me,{get when(){return e.model.kind==="directory"},get children(){var a=Nr(),r=a.firstChild;return t(r,l(ee,{get each(){return e.model.entries},children:i=>(()=>{var n=el(),o=n.firstChild,d=o.nextSibling;return t(o,()=>i.is_dir?"DIR":"FILE"),t(d,()=>i.path),t(n,l(b,{get when(){return i.size},get children(){var c=Zr();return t(c,()=>i.size),c}}),null),_(()=>P(n,"data-dir",i.is_dir?"true":"false")),n})()})),t(a,l(b,{get when(){return e.model.truncated},get children(){return Br()}}),null),t(a,l(b,{get when(){return e.model.nested},children:i=>(()=>{var n=tl(),o=n.firstChild;return o.firstChild,t(o,(()=>{var d=Y(()=>!!e.model.samplePath);return()=>d()?` · ${e.model.samplePath}`:""})(),null),t(n,l(za,{get model(){return i()}}),null),n})()}),null),a}}),l(Me,{get when(){return Y(()=>e.model.kind==="structure")()&&e.model.lines},get children(){var a=Wr();return t(a,l(ee,{get each(){return e.model.lines},children:r=>(()=>{var i=al();return t(i,r||" "),_(()=>P(i,"data-kind",il(r))),i})()})),a}}),l(Me,{get when(){return e.model.kind==="empty"},get children(){var a=Hr();return t(a,()=>e.model.body),a}}),l(Me,{get when(){return Y(()=>e.model.kind==="text")()&&e.model.lines},get children(){var a=ma();return t(a,()=>e.model.lines.join(`
|
|
15
|
+
`)),a}})]}})}function rl(e){return e.kind==="table"?"table":e.kind==="json"?"json":e.kind==="fasta"||e.kind==="fastq"?"seq":e.kind==="pdf"?"pdf":e.kind==="directory"?"dir":e.kind==="zarr"||e.kind==="scientific"?"sci":e.kind==="structure"?"struct":"text"}function ll(e){return e.replace(/(.{10})/g,"$1 ").trim()}function il(e){return/^(ATOM|HETATM)\b/.test(e)?"atom":/^(HEADER|TITLE|COMPND|SOURCE|KEYWDS|EXPDTA|AUTHOR|REMARK|SEQRES|CRYST1|MODEL|ENDMDL|END|DATA_|loop_)\b/i.test(e)?"meta":"plain"}Be(["click"]);var _a=s("<button type=button class=os-client-capability-filter-select-option role=option>"),sl=s("<div class=os-client-capability-filter-select-menu role=listbox>"),ol=s("<div class=os-client-capability-filter-select><button type=button class=os-client-capability-filter-select-trigger aria-haspopup=listbox><span class=os-client-capability-filter-select-value></span><span class=os-client-capability-filter-select-chevron aria-hidden=true>");function et(e){const[a,r]=T(!1);let i;const n=()=>e.options.find(d=>d.value===e.value)?.label??"",o=()=>!e.value;return ze(()=>{if(!a())return;const d=h=>{i?.contains(h.target)||r(!1)},c=h=>{h.key==="Escape"&&r(!1)};document.addEventListener("pointerdown",d),document.addEventListener("keydown",c),La(()=>{document.removeEventListener("pointerdown",d),document.removeEventListener("keydown",c)})}),(()=>{var d=ol(),c=d.firstChild,h=c.firstChild,f=i;return typeof f=="function"?Ta(f,d):i=d,c.$$click=p=>{p.stopPropagation(),e.onFocusTab?.(),r($=>!$)},t(h,(()=>{var p=Y(()=>!!o());return()=>p()?e.placeholder:n()})()),t(d,l(b,{get when(){return a()},get children(){var p=sl();return t(p,l(b,{get when(){return Y(()=>!!e.uploadLabel)()&&e.onUpload},get children(){var $=_a();return $.$$click=v=>{v.stopPropagation(),r(!1),e.onUpload?.()},t($,()=>e.uploadLabel),$}}),null),t(p,l(ee,{get each(){return e.options},children:$=>(()=>{var v=_a();return v.$$click=w=>{w.stopPropagation(),r(!1),e.onChange($.value)},t(v,()=>$.label),_(w=>{var E=$.value===e.value,q=$.value===e.value;return E!==w.e&&v.classList.toggle("is-selected",w.e=E),q!==w.t&&P(v,"aria-selected",w.t=q),w},{e:void 0,t:void 0}),v})()}),null),_(()=>P(p,"aria-label",e["aria-label"])),p}}),null),_(p=>{var $=o()?"true":"false",v=a()?"true":"false",w=e["aria-label"],E=a();return $!==p.e&&P(d,"data-empty",p.e=$),v!==p.t&&P(d,"data-open",p.t=v),w!==p.a&&P(c,"aria-label",p.a=w),E!==p.o&&P(c,"aria-expanded",p.o=E),p},{e:void 0,t:void 0,a:void 0,o:void 0}),d})()}Be(["click"]);var cl=s("<div class=os-onedata-train-field><span>模型</span><input type=search class=os-onedata-train-search aria-label=搜索模型 placeholder=搜索模型名称、标签或领域…><div class=os-onedata-train-model-list role=listbox aria-label=可选模型>"),dl=s("<div class=os-onedata-train-select-menu role=listbox aria-label=选择场景>"),ul=s("<div class=os-onedata-train-field><span>场景</span><div class=os-onedata-train-select><button type=button class=os-onedata-train-select-trigger aria-label=选择场景 aria-haspopup=listbox><span class=os-onedata-train-select-value></span><span class=os-onedata-train-select-chevron aria-hidden=true>"),gl=s("<div class=os-onedata-train-body><p class=os-onedata-train-hint>已选定可训练数据「<!>」。搜索并选择模型<!>,确认后进入对话。</p><div class=os-onedata-train-meta><div class=os-onedata-train-card><span>可训练数据</span><strong> · </strong><em></em></div><div class=os-onedata-train-card><span>训练位置</span><strong></strong></div></div><div class=os-onedata-train-actions><button type=button>取消</button><button type=button class=os-onedata-action-primary>进入训练对话"),bl=s("<p class=os-onedata-train-hint>当前领域暂无可用模型,请先到能力中心安装或切换领域。"),hl=s("<p class=os-onedata-train-empty>没有匹配「<!>」的模型"),pl=s("<button type=button role=option class=os-onedata-train-model-option><strong></strong><em>"),vl=s("<span> · "),fl=s("<p class=os-onedata-train-blurb>已选:"),$l=s("<button type=button role=option class=os-onedata-train-select-option>");function ml(e){return(Et(e==="all"?void 0:e).find(r=>r.id==="onemodel")?.items??[]).filter(r=>pt(r))}function wa(e){const a=Aa(),r=de(()=>ml(e.domain)),[i,n]=T(""),[o,d]=T(""),[c,h]=T(""),[f,p]=T(!1),$=()=>e.domain==="all";let v;ze(()=>{const u=r();if(u.length===0){n(""),d("");return}u.some(F=>F.id===i())||(n(u[0].id),d(u[0].scenarios[0]?.id??""))});const w=de(()=>r().find(u=>u.id===i())),E=de(()=>w()?.scenarios??[]),q=de(()=>r().filter(u=>vr(u,c(),$()))),re=de(()=>E().find(u=>u.id===o())?.title??"选择训练场景");ze(()=>{const u=E();if(u.length===0){d(""),p(!1);return}u.some(F=>F.id===o())||d(u[0].id)}),ze(()=>{if(!f())return;const u=te=>{v?.contains(te.target)||p(!1)},F=te=>{te.key==="Escape"&&p(!1)};document.addEventListener("pointerdown",u),document.addEventListener("keydown",F),La(()=>{document.removeEventListener("pointerdown",u),document.removeEventListener("keydown",F)})});const y=u=>{n(u);const F=r().find(te=>te.id===u);d(F?.scenarios[0]?.id??""),p(!1)},_e=()=>{const u=w();if(!u)return;const F=E().find(te=>te.id===o());e.onConfirm({resource:u,scenario:F}),a.close()};return l(Oa,{title:"用于训练:选择模型",size:"large",fit:!0,class:"os-onedata-train-dialog",get children(){var u=gl(),F=u.firstChild,te=F.firstChild,U=te.nextSibling,R=U.nextSibling,z=R.nextSibling;z.nextSibling;var K=F.nextSibling,ne=K.firstChild,x=ne.firstChild,I=x.nextSibling,A=I.firstChild,W=I.nextSibling,H=ne.nextSibling,ie=H.firstChild,j=ie.nextSibling,se=K.nextSibling,pe=se.firstChild,Te=pe.nextSibling;return t(F,()=>e.already.title,U),t(F,()=>E().length?"与场景":"",z),t(I,()=>e.already.title,A),t(I,()=>e.already.id,null),t(W,()=>e.already.uri),t(j,()=>Ma(e.trainTarget),null),t(j,(()=>{var X=Y(()=>!!(e.trainTarget==="workspace"&&e.workspaceId));return()=>X()?` · ${e.workspaceId}`:""})(),null),t(u,l(b,{get when(){return r().length>0},get fallback(){return bl()},get children(){return[(()=>{var X=cl(),ve=X.firstChild,J=ve.nextSibling,Se=J.nextSibling;return J.$$input=fe=>h(fe.currentTarget.value),t(Se,l(b,{get when(){return q().length>0},get fallback(){return(()=>{var fe=hl(),oe=fe.firstChild,$e=oe.nextSibling;return $e.nextSibling,t(fe,()=>c().trim(),$e),fe})()},get children(){return l(ee,{get each(){return q()},children:fe=>(()=>{var oe=pl(),$e=oe.firstChild,ce=$e.nextSibling;return oe.$$click=()=>y(fe.id),t($e,()=>Mt(fe,$())),t(ce,()=>fe.blurb),_(Ie=>{var Pe=fe.id===i(),Ne=fe.id===i();return Pe!==Ie.e&&P(oe,"aria-selected",Ie.e=Pe),Ne!==Ie.t&&oe.classList.toggle("is-selected",Ie.t=Ne),Ie},{e:void 0,t:void 0}),oe})()})}})),_(()=>J.value=c()),X})(),l(b,{get when(){return w()},children:X=>(()=>{var ve=fl();return ve.firstChild,t(ve,()=>Mt(X(),$()),null),t(ve,l(b,{get when(){return X().tags.length>0},get children(){var J=vl();return J.firstChild,t(J,()=>X().tags.slice(0,4).join(" · "),null),J}}),null),ve})()}),l(b,{get when(){return E().length>0},get children(){var X=ul(),ve=X.firstChild,J=ve.nextSibling,Se=J.firstChild,fe=Se.firstChild,oe=v;return typeof oe=="function"?Ta(oe,J):v=J,Se.$$click=()=>p($e=>!$e),t(fe,re),t(J,l(b,{get when(){return f()},get children(){var $e=dl();return t($e,l(ee,{get each(){return E()},children:ce=>(()=>{var Ie=$l();return Ie.$$click=()=>{d(ce.id),p(!1)},t(Ie,()=>ce.title),_(Pe=>{var Ne=ce.id===o(),Qe=ce.id===o();return Ne!==Pe.e&&P(Ie,"aria-selected",Pe.e=Ne),Qe!==Pe.t&&Ie.classList.toggle("is-selected",Pe.t=Qe),Pe},{e:void 0,t:void 0}),Ie})()})),$e}}),null),_($e=>{var ce=f()?"true":"false",Ie=f();return ce!==$e.e&&P(J,"data-open",$e.e=ce),Ie!==$e.t&&P(Se,"aria-expanded",$e.t=Ie),$e},{e:void 0,t:void 0}),X}})]}}),se),pe.$$click=()=>a.close(),Te.$$click=_e,_(X=>{var ve=e.already.uri,J=!w();return ve!==X.e&&P(W,"title",X.e=ve),J!==X.t&&(Te.disabled=X.t=J),X},{e:void 0,t:void 0}),u}})}Be(["input","click"]);var yl=s("<p class=os-onedata-error>"),_l=s('<div class=os-onedata-primitive-body><p class=os-onedata-primitive-hint>可训练数据已就绪。补充几项说明,方便 Agent 正确加载这份数据。可稍后补全。</p><label class=os-onedata-field><span>名称</span><input required></label><label class=os-onedata-field><span>一句话说明(可选)</span><input placeholder=例如:论文表格清洗后的训练集></label><label class=os-onedata-field><span>数据长什么样(可选)</span><input placeholder="例如:csv 列 title,year,abstract"></label><label class=os-onedata-field><span>怎么用 / 注意点(可选)</span><textarea rows=3 placeholder="例如:仅英文摘要;训练时按 year 过滤"></textarea></label><div class=os-onedata-primitive-actions><button type=button class=os-button>稍后补全</button><button type=button class="os-button os-button-primary">');function Tt(e){const[a,r]=T(e.already.title||""),[i,n]=T(""),[o,d]=T(e.already.format||""),[c,h]=T(""),[f,p]=T(!1),[$,v]=T(""),w=async()=>{const E=a().trim();if(!E){v("请填写名称");return}p(!0),v("");try{await dn(e.serverUrl,e.already.id,{title:E,...i().trim()?{description:i().trim()}:{},...o().trim()?{data_schema:o().trim()}:{},...c().trim()?{usage_notes:c().trim()}:{}}),ye({variant:"success",title:"数据说明已保存",description:"已绑定到这条可训练数据,可供 Agent / 任务使用。"}),e.onDone()}catch(q){v(Le(q,"保存数据说明失败"))}finally{p(!1)}};return l(Oa,{title:"补充数据说明",size:"normal",fit:!0,class:"os-onedata-primitive-dialog",get children(){var E=_l(),q=E.firstChild,re=q.nextSibling,y=re.firstChild,_e=y.nextSibling,u=re.nextSibling,F=u.firstChild,te=F.nextSibling,U=u.nextSibling,R=U.firstChild,z=R.nextSibling,K=U.nextSibling,ne=K.firstChild,x=ne.nextSibling,I=K.nextSibling,A=I.firstChild,W=A.nextSibling;return _e.$$input=H=>r(H.currentTarget.value),te.$$input=H=>n(H.currentTarget.value),z.$$input=H=>d(H.currentTarget.value),x.$$input=H=>h(H.currentTarget.value),t(E,l(b,{get when(){return $()},get children(){var H=yl();return t(H,$),H}}),I),A.$$click=()=>e.onSkip(),W.$$click=()=>void w(),t(W,()=>f()?"保存中…":"保存"),_(H=>{var ie=f(),j=f();return ie!==H.e&&(A.disabled=H.e=ie),j!==H.t&&(W.disabled=H.t=j),H},{e:void 0,t:void 0}),_(()=>_e.value=a()),_(()=>te.value=i()),_(()=>z.value=o()),_(()=>x.value=c()),E}})}Be(["input","click"]);var wl=s("<div class=os-onedata-subtabs role=tablist aria-label=可训练数据范围><button type=button>我的</button><button type=button>已公开"),Sl=s("<p class=os-client-capability-empty>登录后才能查看和接入自己的数据。"),kl=s("<p class=os-onedata-error>"),Cl=s("<div class=os-onedata-actions><button type=button>从这台电脑上传到工作区"),xl=s("<label class=os-onedata-field><span>名称</span><input placeholder=可选,不填则使用路径或网址>"),Il=s("<label class=os-onedata-field><span>数据位置</span><input required>"),Dl=s("<div class=os-onedata-field><span>登记粒度"),Ll=s("<p class=os-onedata-upload-hint>默认登记整个文件夹为一条原始数据;若只要某个文件可预览,可改选「仅文件」。"),Sa=s("<div class=os-onedata-field><span>远端环境"),Tl=s("<button type=submit>接入"),Al=s("<form class=os-onedata-register><strong>接入原始数据</strong><p class=os-onedata-upload-hint>「工作区路径」是 OneCode 部署机器上的账号目录,不是你浏览器所在电脑的盘符。若数据在 Windows/Mac,请先上传到工作区,或改用公开网址 / 数据库 / 已连接远端。</p><div class=os-onedata-field><span>来源</span><div class=os-onedata-source-pills role=radiogroup aria-label=数据来源><button type=button role=radio>工作区路径</button><button type=button role=radio>公开网址</button><button type=button role=radio>数据库</button><button type=button role=radio>已连接的远端"),dt=s("<ul class=os-onedata-list>"),Ol=s('<form class="os-onedata-register os-onedata-register-nested"><strong>我的数据库连接</strong><p class=os-onedata-upload-hint>先保存连接,再从表/视图多选登记为原始数据。一条原始数据对应一张表。</p><div class=os-onedata-field><span>引擎</span></div><label class=os-onedata-field><span>主机</span><input required></label><label class=os-onedata-field><span>端口</span><input required></label><label class=os-onedata-field><span>数据库</span><input required></label><label class=os-onedata-field><span>用户名</span><input required></label><label class=os-onedata-field><span>密码</span><input required type=password></label><label class=os-onedata-field><span>备注名(可选)</span><input placeholder=例如:文献库></label><button type=submit>保存连接'),El=s("<p class=os-client-capability-empty>还没有原始数据。可从「公开目录」下载后登记,从这台电脑上传到工作区,或填写工作区路径 / 公开网址 / 已连接数据库中的表 / 已连接远端路径。工作区路径须在账号目录内(通常是 …/workspaces/你的账号/…)。"),Pl=s("<span class=os-onedata-chip-hint>需要先有一个当前工程下的会话。请在左侧打开或新建会话后再回来点这里。"),Rl=s("<span class=os-onedata-chip-hint>勾选上方列表中的原始数据后可点击"),jl=s("<div class=os-onedata-chip-row><button type=button class=os-onedata-chip-btn>"),ql=s("<div class=os-onedata-status role=status><p>"),Ml=s("<div class=os-onedata-actions><div class=os-onedata-field><span>训练位置"),Fl=s("<p class=os-client-capability-empty>"),Ul=s('<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>可训练数据'),zl=s("<p class=os-onedata-upload-hint>还没有已连接的远端,请先在资源里添加 SSH 节点。"),Bl=s("<li><span><small> · <!> · </small></span><div class=os-onedata-actions><button type=button></button><button type=button class=os-onedata-action-danger>删除"),Nl=s("<p class=os-onedata-upload-hint>正在加载表…"),Wl=s("<p class=os-onedata-upload-hint>该连接下没有可登记的表或视图。"),Hl=s("<div class=os-onedata-actions><button type=button class=os-onedata-action-primary>"),Ql=s('<div class="os-onedata-register os-onedata-register-nested"><strong>从表登记 · '),Kl=s("<li><label class=os-onedata-raw-pick><input type=checkbox><span class=os-onedata-raw-pick-body><strong></strong><small>"),Jl=s("<li class=os-onedata-group-header>"),Vl=s("<button type=button title=可选:物化后登记为可训练数据>"),Yl=s("<li><label class=os-onedata-raw-pick><input type=checkbox><span class=os-onedata-raw-pick-body><strong></strong><span class=os-onedata-card-chips></span><small></small></span></label><div class=os-onedata-actions><button type=button class=os-onedata-action-primary></button><button type=button class=os-onedata-action-primary>加入对话</button><button type=button></button><button type=button class=os-onedata-action-danger>删除"),ka=s("<span class=os-onedata-card-chip>"),Gl=s("<button type=button class=os-onedata-status-action>打开会话查看"),Xl=s("<p class=os-onedata-upload-hint>还没有已连接的远端。"),Zl=s("<button type=button class=os-onedata-action-primary>补充说明"),ei=s("<button type=button class=os-onedata-action-primary>发布"),ti=s("<button type=button>取消发布"),ai=s("<button type=button class=os-onedata-action-primary>接入为我的原始数据"),ni=s("<button type=button class=os-onedata-action-primary>"),ri=s("<button type=button class=os-onedata-action-danger>删除"),li=s("<li><strong></strong><span class=os-onedata-card-chips></span><small></small><div class=os-onedata-actions>");function ii(e){const a=vt(),r=ft(),i=$t(),n=Ht(),o=mt(),d=Aa(),c=de(()=>new URLSearchParams(n.search)),h=de(()=>{const g=c().get("onedata");return g==="already"?"already":g==="raw"?"raw":"catalog"}),f=de(()=>c().get("already")==="public"?"public":"mine"),[p,$]=T([]),[v,w]=T([]),[E,q]=T(!1),[re,y]=T(""),[_e,u]=T(""),[F,te]=T(),[U,R]=T(!1),[z,K]=T(""),[ne,x]=T(""),[I,A]=T("local_fs"),[W,H]=T(""),[ie,j]=T([]),[se,pe]=T(),[Te,X]=T(),[ve,J]=T([]),[Se,fe]=T([]),[oe,$e]=T("local"),[ce,Ie]=T([]),[Pe,Ne]=T("postgres"),[Qe,Qt]=T(""),[Kt,Jt]=T("5432"),[_t,Vt]=T(""),[wt,Yt]=T(""),[St,Gt]=T(""),[kt,Xt]=T(""),[nt,Ct]=T(""),[rt,lt]=T([]),[xt,Ke]=T([]),[It,Zt]=T(!1),ke=()=>a.current?.http.url,Ve=()=>!!Fe(),Re=de(()=>Bt({path:r.data.path,recent:yt(r.data.project??[]),lastCodeWorkspace:a.projects.lastCode()})||Ea(Fe(),a.projects.lastCode())||Nt(Fe())||Wt(document,r.data.path)),qe=de(()=>{const g=Re();if(!g)return;const L=un(g);if(L)return L;const[O]=r.child(g,{bootstrap:!1});return(O.session??[]).find(C=>!C.parentID&&!C.time?.archived)?.id});ze(()=>{const g=Re();!g||!Ve()||r.project.loadSessions(g)});const Ja=de(()=>ir[e.domain]),Va=de(()=>h()==="raw"?"登记服务器上可访问的路径、公开网址、已连接数据库中的表或已连接远端上的数据(也可先从「公开目录」下载,或从这台电脑上传)。登记后可以预览,但不能直接训练。":h()==="already"?f()==="public"?"这里是已发布的可训练数据(OneData),可供他人使用;也可接入为自己的原始数据再加工。":"可训练数据来自对话中用 OneScience 技能标准化后回写。只有就绪的数据能给模型使用;发布后会出现在「已公开」。":`${e.copy.replace(/[。.]$/,"")}。公开目录是外部下载源,下载后请到「原始数据」登记;在对话里完成标准化后才能给模型使用。`),Ya=()=>{const g=Re();if(!g){y("请先打开个人工作区项目,再上传文件");return}d.show(()=>l(Kn,{directory:g,pathPrefix:"onedata",allowEditDestination:!0,title:"从这台电脑上传到工作区",destinationLabel:"上传目标路径(OneCode 所在环境)",destinationHint:"默认写到当前工作区的 onedata/ 目录。可改成服务器上其他可写路径;单文件不超过 200 MB,单次合计不超过 512 MB。上传不会自动登记。",maxFileBytes:Cn,maxTotalBytes:kn,onUploadedPaths:L=>{const O=ur(g,L);if(O.length===0)return;J(O);const C=O[0];if(A("local_fs"),x(C.uri),!z().trim()){const V=C.label.split("/").filter(Boolean).at(-1);V&&K(V)}y("")}}))},Je=g=>{const L=new URLSearchParams(n.search);for(const[O,C]of Object.entries(g))C?L.set(O,C):L.delete(O);L.set("category","onedata"),o(`${n.pathname}?${L}`)},Dt=g=>{pe(void 0),X(void 0),Je({onedata:g==="catalog"?"":g})};let Ye=0;const Ae=async()=>{const g=++Ye,L=f(),O=e.domain==="all"?void 0:e.domain,C=ke();if(!C||!Ve()){if(g!==Ye)return;$([]),w([]),Ie([]),q(!1);return}y(""),w([]),q(!0);try{const[V,we,ue,S]=await Promise.all([yn(C,{domain:O}),_n(C,{scope:L,domain:O}),wn(C).catch(()=>[]),Sn(C).catch(()=>({items:[]}))]);if(g!==Ye)return;$(V.items),w(L==="public"?we.items.filter(m=>m.visibility==="public"):we.items),j(ue.filter(m=>m.id.startsWith("wrk_")).map(m=>({id:m.id,name:m.name||m.id}))),Ie(S.items)}catch(V){if(g!==Ye)return;y(V instanceof Error?V.message:"无法加载数据")}finally{g===Ye&&q(!1)}};ze(()=>{e.domain,h(),f(),Ae()}),ze(()=>{if(h()!=="raw")return;const g=c(),L=g.get("rawUri")?.trim(),O=g.get("rawTitle")?.trim();if(L){x(L);const C=$a(L);C&&A(C)}O&&K(O)});const Ga=de(()=>v().filter(g=>g.status==="ready")),ea=de(()=>ce().find(g=>g.id===nt())),Xa=de(()=>{const g=ce(),L=new Map,O=[];for(const V of p()){if(V.connector!=="database"){O.push(V);continue}const we=si(V.uri)??"unknown",ue=L.get(we)??[];ue.push(V),L.set(we,ue)}const C=[];for(const[V,we]of L){C.push({kind:"header",key:`hdr-${V}`,label:ut(g.find(ue=>ue.id===V),V)});for(const ue of we)C.push({kind:"item",key:ue.id,item:ue})}for(const V of O)C.push({kind:"item",key:V.id,item:V});return C}),ta=async g=>{const L=ke();if(!L||!g){lt([]),Ke([]);return}Zt(!0),y("");try{const O=await xn(L,g);lt(O.items),Ke([])}catch(O){lt([]),Ke([]),y(Le(O,"加载表失败"))}finally{Zt(!1)}},Za=async()=>{const g=ke(),L=ea();if(!g||!L)return;const O=rt().filter(C=>xt().includes(Ca(C)));if(O.length===0){y("请先勾选要登记的表");return}R(!0),y("");try{for(const C of O){const V=oi(L.engine,L.id,C.schema,C.name);await ua(g,{title:C.schema?`${C.schema}.${C.name}`:`${L.database}.${C.name}`,domain:e.domain==="all"?"unspecified":e.domain,uri:V,connector:"database"})}Ke([]),await Ae(),ye({variant:"success",title:"已登记为原始数据",description:`已登记 ${O.length} 张表。`})}catch(C){y(Le(C,"登记失败"))}finally{R(!1)}},aa=g=>[g.format,g.connector?sr(g.connector):"",qt(g.logical_bytes),g.status?or(g.status):"",g.visibility==="public"?"已公开":"",g.build_method==="agent"?"对话加工":"",g.status==="ready"&&g.primitive_complete!==!0?"说明未补全":""].filter(L=>!!L),en=g=>pr({name:g.title.trim()||g.id,sourceDir:g.uri,targetDir:hr(g.uri,g.title.trim()||g.id)}),na=async g=>{const L=ke(),O=qe();if(!L){y("无法连接服务器,请刷新后重试");return}if(!O){y("请先在左侧打开或新建一个会话,再对话加工");return}if(g.length===0){y("请先勾选要加入对话的原始数据");return}R(!0),y(""),u(""),te(void 0);try{const C=await ga(L,O),V=Array.from(new Set([...C.raw_ids,...g]));await ba(L,O,V),window.dispatchEvent(new Event("onedata-session-chips-changed")),fe([]),te(O),u(`已加入当前会话(共 ${V.length} 项)。可在该会话输入框上方查看「对话加工用的原始数据」。`)}catch(C){y(Le(C,"加入对话失败"))}finally{R(!1)}},tn=async g=>{if(g.connector==="onedata_ref"){y("从公开 OneData 拉回的引用不能直接转换,请使用「对话加工」。");return}const L=ke();if(L){R(!0),y(""),u("");try{const O=await In(L,g.id);Te()===g.id&&(pe(void 0),X(void 0)),Je({onedata:"already",already:"mine"}),await Ae(),ye({variant:"success",title:"已转为可训练数据",description:`「${g.title}」已出现在「可训练数据 → 我的」。可补充数据说明。`}),d.show(()=>l(Tt,{serverUrl:L,already:O,onDone:()=>{d.close(),Ae()},onSkip:()=>{d.close(),ye({variant:"default",title:"已跳过数据说明",description:"可训练数据仍可用;用于训练前可再补全说明。"})}}))}catch(O){y(Le(O,"转为可训练数据失败")),ye({variant:"error",title:"转为可训练数据失败",description:Le(O,"转为可训练数据失败")})}finally{R(!1)}}},an=async g=>{const L=Re();if(!L){y("请先打开个人工作区项目,再对话加工"),ye({variant:"error",title:"无法打开对话",description:"未检测到工作目录,请先打开个人工作区"});return}const O=ke(),C=qe(),V=en(g),we=gt(L);R(!0),y(""),u(""),te(void 0);try{if(bt(we,V,{rawIds:[g.id]}),C||ht(we),i.projects.open(L),a.projects.touchCode(L),o(tt(L,C)),ye({variant:"success",title:"已进入对话加工",description:"标准化提示词已预填,发送后由 Agent 处理。"}),u("已预填标准化提示词。请在会话中发送,由 Agent 使用 OneScience 技能处理后回写可训练数据。"),C&&te(C),O&&C)try{const ue=await ga(O,C),S=Array.from(new Set([...ue.raw_ids,g.id]));await ba(O,C,S),window.dispatchEvent(new Event("onedata-session-chips-changed")),fe(m=>m.filter(Q=>Q!==g.id))}catch{}}catch(ue){y(Le(ue,"打开对话加工失败")),ye({variant:"error",title:"打开对话失败",description:Le(ue,"打开对话加工失败")})}finally{R(!1)}},ra=g=>{if(!Re()){y("请先打开个人工作区项目,再用于训练"),ye({variant:"error",title:"无法用于训练",description:"未检测到工作目录,请先打开个人工作区"});return}if(g.status!=="ready"){y("只有状态为「可训练」的数据才能用于训练");return}if(oe()==="workspace"&&!W()){y("请选择要运行训练的远端环境");return}const L=ke();if(L&&g.primitive_complete!==!0){ye({variant:"default",title:"请先补充数据说明",description:"补充说明后再用于训练,便于 Agent 正确加载数据。"}),d.show(()=>l(Tt,{serverUrl:L,already:g,onDone:()=>{d.close(),Ae().then(()=>{const O=v().find(C=>C.id===g.id)??{...g,primitive_complete:!0};ra(O)})},onSkip:()=>{d.close(),d.show(()=>l(wa,{already:g,get domain(){return e.domain},get trainTarget(){return oe()},get workspaceId(){return W()},onConfirm:({resource:O,scenario:C})=>void la(g,O,C)}))}}));return}d.show(()=>l(wa,{already:g,get domain(){return e.domain},get trainTarget(){return oe()},get workspaceId(){return W()},onConfirm:({resource:O,scenario:C})=>void la(g,O,C)}))},la=async(g,L,O)=>{const C=Re();if(!C)return;const V=ke(),we=qe(),ue=fr({alreadyName:g.title.trim()||g.id,alreadyId:g.id,dataUri:g.uri,modelName:L.name,modelId:L.id,...O?{scenarioTitle:O.title,scenarioSummary:O.summary}:{},target:oe(),...oe()==="workspace"?{workspaceId:W()}:{}}),S=gt(C);R(!0),y(""),u("");try{if(V)try{await Dn(V,g.id,{target:oe(),...oe()==="workspace"?{workspace_id:W()}:{}})}catch{}bt(S,ue),we||ht(S),i.projects.open(C),a.projects.touchCode(C),o(tt(C,we)),ye({variant:"success",title:"已进入训练对话",description:`已绑定「${L.name}」与可训练数据,提示词已预填。`})}catch(m){y(Le(m,"用于训练失败")),ye({variant:"error",title:"用于训练失败",description:Le(m,"用于训练失败")})}finally{R(!1)}};return(()=>{var g=Ul(),L=g.firstChild,O=L.firstChild,C=L.nextSibling,V=C.firstChild,we=V.nextSibling;we.firstChild;var ue=we.nextSibling;return ue.firstChild,t(O,Va),V.$$click=()=>Dt("catalog"),we.$$click=()=>Dt("raw"),t(we,(()=>{var S=Y(()=>!!p().length);return()=>S()?` ${p().length}`:""})(),null),ue.$$click=()=>Dt("already"),t(ue,(()=>{var S=Y(()=>!!v().length);return()=>S()?` ${v().length}`:""})(),null),t(g,l(b,{get when(){return h()==="already"},get children(){var S=wl(),m=S.firstChild,Q=m.nextSibling;return m.$$click=()=>Je({already:"mine"}),Q.$$click=()=>Je({already:"public"}),_(k=>{var Z=f()==="mine",De=f()==="public";return Z!==k.e&&P(m,"aria-pressed",k.e=Z),De!==k.t&&P(Q,"aria-pressed",k.t=De),k},{e:void 0,t:void 0}),S}}),null),t(g,l(b,{get when(){return Y(()=>!Ve())()&&h()!=="catalog"},get children(){return Sl()}}),null),t(g,l(b,{get when(){return re()},get children(){var S=kl();return t(S,re),S}}),null),t(g,l(b,{get when(){return h()==="catalog"},get children(){return l(Wn,{get filter(){return Ja()},get domainLabel(){return e.domainLabel}})}}),null),t(g,l(b,{get when(){return Y(()=>h()==="raw")()&&Ve()},get children(){return[(()=>{var S=Al(),m=S.firstChild,Q=m.nextSibling,k=Q.nextSibling,Z=k.firstChild,De=Z.nextSibling,ge=De.firstChild,B=ge.nextSibling,M=B.nextSibling,ae=M.nextSibling;return S.addEventListener("submit",async D=>{D.preventDefault();const G=ke();if(G){R(!0),y("");try{await ua(G,{title:z().trim()||ne().trim(),domain:e.domain==="all"?"unspecified":e.domain,uri:ne().trim(),connector:I(),...I()==="remote_workspace"?{workspace_id:W()}:{}}),K(""),x(""),J([]),await Ae()}catch(le){y(le instanceof Error?le.message:"接入失败")}finally{R(!1)}}}),t(S,l(b,{get when(){return I()!=="database"},get children(){var D=Cl(),G=D.firstChild;return G.$$click=Ya,_(()=>G.disabled=U()),D}}),k),ge.$$click=()=>A("local_fs"),B.$$click=()=>A("http_dataset"),M.$$click=()=>A("database"),ae.$$click=()=>A("remote_workspace"),t(S,l(b,{get when(){return I()!=="database"},get children(){return[(()=>{var D=xl(),G=D.firstChild,le=G.nextSibling;return le.$$input=be=>K(be.currentTarget.value),_(()=>le.value=z()),D})(),(()=>{var D=Il(),G=D.firstChild,le=G.nextSibling;return le.$$input=be=>{const Ce=be.currentTarget.value;x(Ce),J([]);const Oe=$a(Ce);Oe&&A(Oe)},_(()=>P(le,"placeholder",dr(I()))),_(()=>le.value=ne()),D})(),l(b,{get when(){return ve().length>1},get children(){return[(()=>{var D=Dl();return D.firstChild,t(D,l(et,{"aria-label":"登记粒度",get value(){return ne()},placeholder:"选择登记路径",get options(){return ve().map(G=>({value:G.uri,label:G.kind==="folder"?`整个文件夹:${G.label}`:`仅文件:${G.label}`}))},onChange:G=>{const le=ve().find(be=>be.uri===G);if(x(G),le){const be=le.label.split("/").filter(Boolean).at(-1);be&&K(be)}}}),null),D})(),Ll()]}}),l(b,{get when(){return I()==="remote_workspace"},get children(){var D=Sa();return D.firstChild,t(D,l(b,{get when(){return ie().length>0},get fallback(){return zl()},get children(){return l(et,{"aria-label":"远端环境",get value(){return W()},placeholder:"选择已连接的远端",get options(){return ie().map(G=>({value:G.id,label:G.name}))},onChange:H})}}),null),D}}),(()=>{var D=Tl();return _(()=>D.disabled=U()||!ne().trim()||I()==="remote_workspace"&&!W()),D})()]}}),null),_(D=>{var G=I()==="local_fs",le=I()==="local_fs"?"true":"false",be=I()==="http_dataset",Ce=I()==="http_dataset"?"true":"false",Oe=I()==="database",N=I()==="database"?"true":"false",me=I()==="remote_workspace",Ee=I()==="remote_workspace"?"true":"false";return G!==D.e&&P(ge,"aria-checked",D.e=G),le!==D.t&&P(ge,"data-active",D.t=le),be!==D.a&&P(B,"aria-checked",D.a=be),Ce!==D.o&&P(B,"data-active",D.o=Ce),Oe!==D.i&&P(M,"aria-checked",D.i=Oe),N!==D.n&&P(M,"data-active",D.n=N),me!==D.s&&P(ae,"aria-checked",D.s=me),Ee!==D.h&&P(ae,"data-active",D.h=Ee),D},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),S})(),l(b,{get when(){return I()==="database"},get children(){return[(()=>{var S=Ol(),m=S.firstChild,Q=m.nextSibling,k=Q.nextSibling;k.firstChild;var Z=k.nextSibling,De=Z.firstChild,ge=De.nextSibling,B=Z.nextSibling,M=B.firstChild,ae=M.nextSibling,D=B.nextSibling,G=D.firstChild,le=G.nextSibling,be=D.nextSibling,Ce=be.firstChild,Oe=Ce.nextSibling,N=be.nextSibling,me=N.firstChild,Ee=me.nextSibling,We=N.nextSibling,it=We.firstChild,Ge=it.nextSibling,st=We.nextSibling;return S.addEventListener("submit",async he=>{he.preventDefault();const xe=ke();if(!xe)return;const He=Number(Kt().trim());if(!Number.isInteger(He)||He<1||He>65535){y("端口须为 1–65535 的整数");return}R(!0),y("");try{const Ue=await gn(xe,{engine:Pe(),host:Qe().trim(),port:He,database:_t().trim(),username:wt().trim(),password:St(),...kt().trim()?{label:kt().trim()}:{}});Qt(""),Vt(""),Yt(""),Gt(""),Xt(""),await Ae(),Ct(Ue.id),await ta(Ue.id)}catch(Ue){y(Le(Ue,"保存连接失败"))}finally{R(!1)}}),t(k,l(et,{"aria-label":"数据库引擎",get value(){return Pe()},placeholder:"选择引擎",options:[{value:"postgres",label:"PostgreSQL"},{value:"mysql",label:"MySQL"}],onChange:he=>{const xe=he;Ne(xe),Jt(xe==="postgres"?"5432":"3306")}}),null),ge.$$input=he=>Qt(he.currentTarget.value),ae.$$input=he=>Jt(he.currentTarget.value),le.$$input=he=>Vt(he.currentTarget.value),Oe.$$input=he=>Yt(he.currentTarget.value),Ee.$$input=he=>Gt(he.currentTarget.value),Ge.$$input=he=>Xt(he.currentTarget.value),t(S,l(b,{get when(){return ce().length>0},get children(){var he=dt();return t(he,l(ee,{get each(){return ce()},children:xe=>(()=>{var He=Bl(),Ue=He.firstChild,ot=Ue.firstChild,nn=ot.firstChild,ia=nn.nextSibling;ia.nextSibling;var rn=Ue.nextSibling,Xe=rn.firstChild,sa=Xe.nextSibling;return t(Ue,()=>ut(xe,xe.id),ot),t(ot,()=>xe.engine==="postgres"?"PostgreSQL":"MySQL",ia),t(ot,()=>xe.username,null),Xe.$$click=()=>{Ct(xe.id),ta(xe.id)},t(Xe,()=>nt()===xe.id?"已选":"选表"),sa.$$click=async()=>{if(!window.confirm(`删除数据库连接「${ut(xe,xe.id)}」?`))return;const je=ke();if(je){R(!0);try{await bn(je,xe.id),nt()===xe.id&&(Ct(""),lt([]),Ke([])),await Ae()}catch(ct){y(Le(ct,"删除连接失败"))}finally{R(!1)}}},_(je=>{var ct=nt()===xe.id,oa=U(),ca=U();return ct!==je.e&&Xe.classList.toggle("os-onedata-action-primary",je.e=ct),oa!==je.t&&(Xe.disabled=je.t=oa),ca!==je.a&&(sa.disabled=je.a=ca),je},{e:void 0,t:void 0,a:void 0}),He})()})),he}}),null),_(()=>st.disabled=U()||!Qe().trim()||!_t().trim()||!wt().trim()||!St()),_(()=>ge.value=Qe()),_(()=>ae.value=Kt()),_(()=>le.value=_t()),_(()=>Oe.value=wt()),_(()=>Ee.value=St()),_(()=>Ge.value=kt()),S})(),l(b,{get when(){return ea()},children:S=>(()=>{var m=Ql(),Q=m.firstChild;return Q.firstChild,t(Q,()=>ut(S(),S().id),null),t(m,l(b,{get when(){return It()},get children(){return Nl()}}),null),t(m,l(b,{get when(){return Y(()=>!It())()&&rt().length===0},get children(){return Wl()}}),null),t(m,l(b,{get when(){return Y(()=>!It())()&&rt().length>0},get children(){return[(()=>{var k=dt();return t(k,l(ee,{get each(){return rt()},children:Z=>{const De=Ca(Z);return(()=>{var ge=Kl(),B=ge.firstChild,M=B.firstChild,ae=M.nextSibling,D=ae.firstChild,G=D.nextSibling;return M.addEventListener("change",le=>{const be=le.currentTarget.checked;Ke(Ce=>be?[...Ce,De]:Ce.filter(Oe=>Oe!==De))}),t(D,(()=>{var le=Y(()=>!!Z.schema);return()=>le()?`${Z.schema}.${Z.name}`:Z.name})()),t(G,()=>Z.kind==="view"?"视图":"表"),_(()=>M.checked=xt().includes(De)),ge})()}})),k})(),(()=>{var k=Hl(),Z=k.firstChild;return Z.$$click=()=>void Za(),t(Z,()=>U()?"正在登记…":"登记为原始数据"),_(()=>Z.disabled=U()||xt().length===0),k})()]}}),null),m})()})]}}),l(b,{get when(){return p().length===0},get fallback(){return(()=>{var S=dt();return t(S,l(ee,{get each(){return Xa()},children:m=>l(b,{get when(){return m.kind==="item"?m:void 0},get fallback(){return(()=>{var Q=Jl();return t(Q,(()=>{var k=Y(()=>m.kind==="header");return()=>k()?m.label:""})()),Q})()},children:Q=>{const k=Q().item;return(()=>{var Z=Yl(),De=Z.firstChild,ge=De.firstChild,B=ge.nextSibling,M=B.firstChild,ae=M.nextSibling,D=ae.nextSibling,G=De.nextSibling,le=G.firstChild,be=le.nextSibling,Ce=be.nextSibling,Oe=Ce.nextSibling;return ge.addEventListener("change",N=>{const me=N.currentTarget.checked;fe(Ee=>me?[...Ee,k.id]:Ee.filter(We=>We!==k.id))}),t(M,()=>k.title),t(ae,l(ee,{get each(){return aa(k)},children:N=>(()=>{var me=ka();return t(me,N),me})()})),t(D,()=>k.uri),le.$$click=async()=>{const N=ke();if(N){if(Te()===k.id&&se()){pe(void 0),X(void 0);return}try{const me=await hn(N,k.id,W()||void 0);X(k.id),pe(Ua(me,{title:k.title,format:k.format}))}catch(me){y(Le(me,"预览失败"))}}},t(le,()=>Te()===k.id&&se()?"收起预览":"预览"),be.$$click=()=>void na([k.id]),t(G,l(b,{get when(){return k.connector!=="onedata_ref"},get children(){var N=Vl();return N.$$click=()=>void tn(k),t(N,()=>U()?"正在转换…":"转为可训练数据"),_(()=>N.disabled=U()),N}}),Ce),Ce.$$click=()=>void an(k),t(Ce,()=>U()?"正在打开…":"对话加工"),Oe.$$click=async()=>{if(!window.confirm(`删除原始数据「${k.title}」?此操作不可恢复。`))return;const N=ke();if(N){R(!0);try{await pn(N,k.id),fe(me=>me.filter(Ee=>Ee!==k.id)),Te()===k.id&&(pe(void 0),X(void 0)),await Ae()}catch(me){y(Le(me,"删除失败"))}finally{R(!1)}}},t(Z,l(b,{get when(){return Y(()=>Te()===k.id)()&&se()},children:N=>l(nl,{get model(){return N()},onClose:()=>{pe(void 0),X(void 0)}})}),null),_(N=>{var me=!!(Te()===k.id&&se()),Ee=U()||!qe(),We=qe()?"把此项加入当前对话":"请先在左侧打开或新建一个会话",it=k.connector==="onedata_ref",Ge=U()||!Re(),st=Re()?k.connector==="onedata_ref"?"拉回的数据需在对话中用 OneScience 技能标准化,不能直接登记为可训练数据":"预填标准化提示词到会话,由 Agent 使用 OneScience 技能处理后再回写可训练数据":"请先打开个人工作区项目",he=U();return me!==N.e&&Z.classList.toggle("has-preview",N.e=me),Ee!==N.t&&(be.disabled=N.t=Ee),We!==N.a&&P(be,"title",N.a=We),it!==N.o&&Ce.classList.toggle("os-onedata-action-primary",N.o=it),Ge!==N.i&&(Ce.disabled=N.i=Ge),st!==N.n&&P(Ce,"title",N.n=st),he!==N.s&&(Oe.disabled=N.s=he),N},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),_(()=>ge.checked=Se().includes(k.id)),Z})()}})})),S})()},get children(){return El()}}),l(b,{get when(){return p().length>0},get children(){return[(()=>{var S=jl(),m=S.firstChild;return m.$$click=()=>void na(Se()),t(m,()=>U()?"正在加入…":"把选中的原始数据加入当前对话"),t(S,l(b,{get when(){return!qe()},get children(){return Pl()}}),null),t(S,l(b,{get when(){return Y(()=>!!qe())()&&Se().length===0},get children(){return Rl()}}),null),_(Q=>{var k=!qe()||Se().length===0||U(),Z=qe()?Se().length===0?"请先勾选上方列表中的原始数据":"把选中的原始数据绑定到当前会话,供对话加工":"请先在左侧打开或新建一个会话";return k!==Q.e&&(m.disabled=Q.e=k),Z!==Q.t&&P(m,"title",Q.t=Z),Q},{e:void 0,t:void 0}),S})(),l(b,{get when(){return _e()},get children(){var S=ql(),m=S.firstChild;return t(m,_e),t(S,l(b,{get when(){return Y(()=>!!F())()&&Re()},children:Q=>(()=>{var k=Gl();return k.$$click=()=>o(tt(Q(),F())),k})()}),null),S}})]}})]}}),null),t(g,l(b,{get when(){return Y(()=>h()==="already")()&&Ve()},get children(){return[l(b,{get when(){return Ga().length>0},get children(){var S=Ml(),m=S.firstChild;return m.firstChild,t(m,l(et,{"aria-label":"训练位置",get value(){return oe()},placeholder:"选择训练位置",options:[{value:"local",label:"当前执行环境"},{value:"workspace",label:"已连接的远端"},{value:"shared_root",label:"平台共享盘"}],onChange:Q=>$e(Q)}),null),t(S,l(b,{get when(){return oe()==="workspace"},get children(){var Q=Sa();return Q.firstChild,t(Q,l(b,{get when(){return ie().length>0},get fallback(){return Xl()},get children(){return l(et,{"aria-label":"训练远端环境",get value(){return W()},placeholder:"选择远端环境",get options(){return ie().map(k=>({value:k.id,label:k.name}))},onChange:H})}}),null),Q}}),null),S}}),l(b,{get when(){return v().length===0},get fallback(){return(()=>{var S=dt();return t(S,l(ee,{get each(){return v()},children:m=>(()=>{var Q=li(),k=Q.firstChild,Z=k.nextSibling,De=Z.nextSibling,ge=De.nextSibling;return t(k,()=>m.title),t(Z,l(ee,{get each(){return aa(m)},children:B=>(()=>{var M=ka();return t(M,B),M})()})),t(De,()=>m.uri),t(ge,l(b,{get when(){return Y(()=>f()==="mine"&&m.status==="ready")()&&m.primitive_complete!==!0},get children(){var B=Zl();return B.$$click=()=>{const M=ke();M&&d.show(()=>l(Tt,{serverUrl:M,already:m,onDone:()=>{d.close(),Ae()},onSkip:()=>d.close()}))},_(()=>B.disabled=U()),B}}),null),t(ge,l(b,{get when(){return Y(()=>f()==="mine"&&m.status==="ready")()&&m.visibility!=="public"},get children(){var B=ei();return B.$$click=async()=>{const M=jt(m);if(M){y(M);return}const ae=ke();if(ae){R(!0);try{await vn(ae,m.id),Je({already:"public"}),await Ae(),ye({variant:"success",title:"已发布",description:"可在「已公开」中查看"})}catch(D){y(Le(D,"发布失败"))}finally{R(!1)}}},_(M=>{var ae=jt(m)??"发布后会出现在「已公开」,供他人使用",D=U()||!cr(m);return ae!==M.e&&P(B,"title",M.e=ae),D!==M.t&&(B.disabled=M.t=D),M},{e:void 0,t:void 0}),B}}),null),t(ge,l(b,{get when(){return Y(()=>f()==="mine")()&&m.visibility==="public"},get children(){var B=ti();return B.$$click=async()=>{const M=ke();if(M){R(!0);try{await fn(M,m.id),await Ae()}catch(ae){y(ae instanceof Error?ae.message:"取消发布失败")}finally{R(!1)}}},_(()=>B.disabled=U()),B}}),null),t(ge,l(b,{get when(){return f()==="public"},get children(){var B=ai();return B.$$click=async()=>{const M=ke();if(M){R(!0);try{await $n(M,m.id),Je({onedata:"raw"}),await Ae()}catch(ae){y(ae instanceof Error?ae.message:"再次接入失败")}finally{R(!1)}}},_(()=>B.disabled=U()),B}}),null),t(ge,l(b,{get when(){return m.status==="ready"},get children(){var B=ni();return B.$$click=()=>ra(m),t(B,()=>U()?"正在打开…":"用于训练"),_(M=>{var ae=U()||!Re(),D=Re()?"选择模型后预填训练提示词到会话":"请先打开个人工作区项目";return ae!==M.e&&(B.disabled=M.e=ae),D!==M.t&&P(B,"title",M.t=D),M},{e:void 0,t:void 0}),B}}),null),t(ge,l(b,{get when(){return f()==="mine"},get children(){var B=ri();return B.$$click=async()=>{if(!window.confirm(`删除可训练数据「${m.title}」?此操作不可恢复。`))return;const M=ke();if(M){R(!0);try{await mn(M,m.id),await Ae()}catch(ae){y(Le(ae,"删除失败"))}finally{R(!1)}}},_(()=>B.disabled=U()),B}}),null),Q})()})),S})()},get children(){var S=Fl();return t(S,(()=>{var m=Y(()=>!!E());return()=>m()?"加载中…":f()==="public"?"还没有已公开的可训练数据。发布后会出现在这里,他人可拉回再加工。":"还没有可训练数据。请先登记原始数据并转化,或等待对话加工完成。"})()),S}})]}}),null),_(S=>{var m=h()==="catalog",Q=h()==="raw",k=h()==="already";return m!==S.e&&P(V,"aria-pressed",S.e=m),Q!==S.t&&P(we,"aria-pressed",S.t=Q),k!==S.a&&P(ue,"aria-pressed",S.a=k),S},{e:void 0,t:void 0,a:void 0}),g})()}function si(e){return/^(?:postgres|mysql):\/\/(dbc_[A-Za-z0-9]+)\//i.exec(e.trim())?.[1]}function ut(e,a){return e?e.label?.trim()||`${e.host}/${e.database}`:a}function Ca(e){return e.schema?`${e.schema}.${e.name}`:e.name}function oi(e,a,r,i){return e==="postgres"?`postgres://${a}/${r}.${i}`:`mysql://${a}/${i}`}Be(["click","input"]);var ci=s('<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>开发'),Ba=s("<span>"),di=s("<div>"),ui=s("<button type=button class=os-client-capability-oneskills-expand>"),gi=s("<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>"),bi=s("<p class=os-client-capability-empty>当前分类暂无技能卡片。"),hi=s("<span class=os-client-capability-oneskills-count> 个技能"),pi=s("<p class=os-client-capability-oneskills-error>"),vi=s("<div class=os-client-capability-oneskills-top-row>"),fi=s("<div class=os-client-capability-oneskills-overview>"),$i=s('<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>'),mi=s("<p class=os-client-capability-empty>正在加载 OneSkills 技能..."),yi=s("<p class=os-client-capability-empty>暂无可展示的 OneSkills 技能,请先安装或更新技能。");const xa=4,Ut=new Set(["orchestrator","resource"]);function _i(e,a){return e.layer===a.title||e.tags.includes(a.title)||e.tags.includes(a.id)}function wi(e){return Bt(e)||Ea(Fe(),e.lastCodeWorkspace)||Nt(Fe())||Wt(document,e.path)}function Si(e){const a=()=>e.item.tags.filter(r=>r!==e.item.layer&&r!==e.item.provider).slice(0,3);return(()=>{var r=ci(),i=r.firstChild,n=i.firstChild,o=i.nextSibling,d=o.nextSibling,c=d.firstChild,h=d.nextSibling,f=h.firstChild,p=f.nextSibling;return Ra(r,"click",e.onOpen,!0),t(n,()=>e.item.title),t(o,()=>e.item.copy),t(c,()=>e.item.provider),t(d,l(ee,{get each(){return a()},children:$=>(()=>{var v=Ba();return t(v,$),v})()}),null),f.$$click=$=>{$.stopPropagation(),e.onOpen()},p.$$click=$=>{$.stopPropagation(),e.onDevelop()},_($=>{var v=e.layerId,w=e.canDevelop?void 0:"登录后使用";return v!==$.e&&P(r,"data-layer",$.e=v),w!==$.t&&P(p,"title",$.t=w),$},{e:void 0,t:void 0}),r})()}function Ia(e){const[a,r]=T(!1),i=()=>e.items.length,n=()=>Math.max(0,i()-xa),o=()=>a()||n()===0?e.items:e.items.slice(0,xa),d=()=>Ut.has(e.group.id);return(()=>{var c=gi(),h=c.firstChild,f=h.firstChild,p=f.firstChild,$=f.nextSibling;return t(p,()=>e.group.title),t(f,l(b,{get when(){return i()>0},get children(){var v=Ba();return t(v,i),v}}),null),t($,()=>e.group.copy),t(c,l(b,{get when(){return i()>0},get fallback(){return bi()},get children(){return[(()=>{var v=di();return t(v,l(ee,{get each(){return o()},children:w=>l(Si,{item:w,get layerId(){return e.group.id},get canDevelop(){return e.canDevelop},onOpen:()=>e.onOpen(w),onDevelop:()=>e.onDevelop(w)})})),_(w=>{var E=!d(),q=!!d();return E!==w.e&&v.classList.toggle("os-client-capability-page-grid",w.e=E),q!==w.t&&v.classList.toggle("os-client-capability-oneskills-compact-grid",w.t=q),w},{e:void 0,t:void 0}),v})(),l(b,{get when(){return Y(()=>!d())()&&n()>0},get children(){var v=ui();return v.$$click=()=>r(w=>!w),t(v,(()=>{var w=Y(()=>!!a());return()=>w()?"收起":`展开其余 ${n()} 个`})()),_(()=>P(v,"aria-expanded",a())),v}})]}}),null),_(v=>{var w=e.group.id,E=!!e.compact,q=e.group.id;return w!==v.e&&P(c,"id",v.e=w),E!==v.t&&c.classList.toggle("is-compact",v.t=E),q!==v.a&&P(c,"data-layer",v.a=q),v},{e:void 0,t:void 0,a:void 0}),c})()}function ki(){const e=Ht(),a=mt(),r=vt(),i=ft(),n=$t(),[o,d]=T([]),[c,h]=T(!1),[f,p]=T(!1),[$,v]=T(),[w,E]=T(!1),[q,re]=T(),y=de(()=>!!Fe()?.account.id),_e=de(()=>wi({path:i.data.path,recent:yt(i.data.project),lastCodeWorkspace:r.projects.lastCode()})),u=async()=>{const x=r.current;if(!x){d([]),h(!0);return}const I=await Ln(x.http.url,{limit:100});d(I.loaded?I.items:[]),h(!0)};Pt(()=>{const x=Jn(e.search)??Vn()?.domainId??"all";a(Pa("oneskills",x),{replace:!0}),u()});const F=x=>o().filter(I=>_i(I,x)),te=()=>An.filter(x=>F(x).length>0),U=()=>{const x=te();return{pair:x.filter(I=>Ut.has(I.id)),rest:x.filter(I=>!Ut.has(I.id))}},R=x=>{re(x),E(!0)},z=()=>{E(!1),re(void 0)},K=x=>{if(!Ot({navigate:a,action:{type:"prompt",prompt:""},isLoggedIn:y()}))return;const I=_e();if(!I){ye({variant:"error",title:"无法开发",description:"未检测到工作目录"});return}const A=Qn({id:x.id,title:x.title,copy:x.copy,layer:x.layer,tags:x.tags,provider:x.provider}),W=gt(I);bt(W,A.prompt,{skill:A.skill}),ht(W),n.projects.open(I),r.projects.touchCode(I),E(!1),re(void 0),ye({variant:"success",title:`已为你创建「${x.title}」开发任务`}),a(tt(I))},ne=async()=>{if(!Ot({navigate:a,action:{type:"install",resourceId:"oneskills"},isLoggedIn:y()}))return;const x=r.current,I=_e();if(!x){const A=Lt();v(A),ye({variant:"error",title:"更新失败",description:A});return}if(!I){const A=Lt();v(A),ye({variant:"error",title:"更新失败",description:A});return}p(!0),v(void 0);try{const A=await Tn(x.http.url,I);await u();const W=A.version?`版本 ${A.version} · ${A.skillCount} 个技能`:`${A.skillCount} 个技能`,H=A.seedSource==="bundled"&&A.seedFallbackReason?"原语已回退内置 seed":A.seedSource==="disk"?"原语已同步磁盘 oneskills":void 0;ye({variant:"success",title:"OneSkills 已更新",description:H?`${W} · ${H}`:W})}catch(A){const W=Lt(A instanceof Error?A.message:"更新 OneSkills 失败");v(W),ye({variant:"error",title:"更新失败",description:W})}finally{p(!1)}};return(()=>{var x=$i(),I=x.firstChild,A=I.firstChild;A.firstChild;var W=A.nextSibling,H=W.firstChild,ie=H.firstChild;return t(A,l(b,{get when(){return Y(()=>!!c())()&&o().length>0},get children(){var j=hi(),se=j.firstChild;return t(j,()=>o().length,se),j}}),null),t(W,l(b,{get when(){return $()},get children(){var j=pi();return t(j,$),j}}),H),ie.$$click=()=>void ne(),t(ie,()=>f()?"更新中...":"更新 OneSkills"),t(x,l(b,{get when(){return c()},get fallback(){return mi()},get children(){return l(b,{get when(){return o().length>0},get fallback(){return yi()},get children(){var j=fi();return t(j,l(b,{get when(){return U().pair.length>0},get children(){var se=vi();return t(se,l(ee,{get each(){return U().pair},children:pe=>l(Ia,{group:pe,get items(){return F(pe)},compact:!0,get canDevelop(){return y()},onOpen:R,onDevelop:K})})),se}}),null),t(j,l(ee,{get each(){return U().rest},children:se=>l(Ia,{group:se,get items(){return F(se)},get canDevelop(){return y()},onOpen:R,onDevelop:K})}),null),j}})}}),null),t(x,l(Hn,{variant:"workbench",get item(){return q()},get open(){return w()},get serverUrl(){return r.current?.http.url},onClose:z,onDevelop:()=>{const j=q();j&&(z(),K(j))}}),null),_(j=>{var se=y()?void 0:"登录后使用",pe=f();return se!==j.e&&P(H,"title",j.e=se),pe!==j.t&&(ie.disabled=j.t=pe),j},{e:void 0,t:void 0}),x})()}Be(["click"]);async function Ci(e,a){const r=[];let i=0;for(;;){const n=new URLSearchParams;n.set("limit","200"),n.set("offset",String(i));const o=await On(`${En(e)}/experimental/onescience/scenario?${n}`);if(!o.ok)throw new Error(`scenario catalog failed: ${o.status}`);const d=await o.json(),c=(d.items??[]).map(h=>({...h,model_ids:h.model_ids??[]}));if(r.push(...c),d.nextOffset==null||c.length===0)break;i=d.nextOffset}return Pn(r),r}var xi=s("<span>当前范围:"),Ii=s("<strong>全领域"),Di=s("<small>OneSkills 原语跨领域通用,不区分材料 / 气象 / 流体 / 生信"),Li=s("<div class=os-client-capability-domain-row role=tablist aria-label=能力中心领域>"),Ti=s("<div class=os-client-capability-scenario-grid>"),Ai=s("<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=搜索场景>"),Oi=s("<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>"),Ei=s("<span>当前领域:"),Pi=s("<strong>"),Ri=s("<small>"),ji=s("<button type=button>"),qi=s("<button type=button class=os-client-capability-filter-tab role=tab><div class=os-client-capability-filter-tab-text><strong></strong><small>"),Mi=s("<p class=os-client-capability-hint>"),at=s("<span>"),Fi=s("<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>使用"),Ui=s("<button type=button class=os-client-capability-upload-trigger><span aria-hidden=true>+</span>上传私有模型"),zi=s("<label class=os-client-capability-catalog-search><span>搜索</span><input type=search placeholder=按名称、简介或标签筛选>"),Bi=s("<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=展示方式>"),Ni=s('<section class=os-client-capability-resource-panel><header class="os-client-capability-page-section-head os-client-capability-page-section-head-active"><p>'),Wi=s("<p class=os-client-capability-empty>当前「<!>」领域暂无<!>卡片。"),Hi=s("<button type=button role=tab>"),Qi=s("<p class=os-client-capability-empty>没有匹配的结果,试试换个关键词。"),Ki=s("<div class=os-client-capability-catalog role=list>"),Ji=s("<article class=os-client-capability-catalog-row role=listitem>"),Vi=s("<div class=os-client-capability-page-grid>"),Na=s("<span class=os-client-capability-private-badge>私有资产"),Wa=s("<span class=os-client-capability-unavailable-badge>暂不可用"),Yi=s("<div class=os-client-capability-meta>"),Gi=s("<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>"),Xi=s("<p class=os-client-capability-unavailable-hint>暂无 OneScience 源码或魔搭映射"),Zi=s("<div class=os-client-capability-catalog-tags>"),es=s("<div class=os-client-capability-catalog-copy><div class=os-client-capability-card-title><h4></h4></div><p>"),ts=s("<div>"),as=s("<button type=button>安装");const ns=[{id:"all",label:"全部"},{id:"materials",label:"材料"},{id:"weather",label:"气象"},{id:"fluid",label:"流体"},{id:"bio",label:"生信"}],rs=[{id:"scenario",label:"场景",title:"场景库"},{id:"onemodel",label:"onemodel",title:"模型库"},{id:"hpc",label:"HPC 软件",title:"软件库"},{id:"onedata",label:"onedata",title:"数据集"},{id:"oneskills",label:"oneskills",title:"技能库"}],ls=[{id:"cards",label:"卡片"},{id:"list",label:"列表"}],Ha="os-capability-view-mode";function At(e){return e==="all"||e==="materials"||e==="weather"||e==="fluid"||e==="bio"?e:"all"}function is(e){return e==="materials"||e==="weather"||e==="fluid"||e==="bio"?e:"materials"}function ss(e,a){const r=e.split("?")[0]??e;return new RegExp(`^${Rt.capabilities}/[^/]+`).test(r)?!new URLSearchParams(a).has("domain"):!1}function _s(e){const a=Ht(),r=mt(),i=va(a.pathname,a.search),[n,o]=Rn({domainId:At(i.domainId),categoryId:i.categoryId,scenarioQuery:"",activeScenarioId:"",uploadPage:null,scenarioCatalogTick:0}),d=ft(),c=$t(),h=vt();Pt(()=>{const u=h.current?.http.url;u&&Ci(u).then(()=>o("scenarioCatalogTick",F=>F+1)).catch(()=>{})});const f=u=>{Yn({categoryId:u.categoryId,domainId:At(u.domainId)})},p=u=>{f(u),r(Pa(u.categoryId,u.domainId),{replace:!0})};ze(()=>{const u=a.pathname,F=a.search,te=va(u,F);if(ss(u,F)){o("categoryId",te.categoryId);return}const U=At(te.domainId),R=te.categoryId;o({domainId:U,categoryId:R}),f({domainId:U,categoryId:R});const z=u.split("?")[0]??u,K=z===Rt.capabilities||z===`${Rt.capabilities}/`,ne=new URLSearchParams(F);K&&!ne.get("category")&&!ne.get("domain")&&p({domainId:U,categoryId:R})});const $=de(()=>(jn(),n.domainId==="all"?Et():Et(n.domainId))),v=de(()=>$().find(u=>u.id===n.categoryId)??$()[0]),w=de(()=>(n.scenarioCatalogTick,qn(n.domainId,n.scenarioQuery))),E=de(()=>{if(n.scenarioCatalogTick,!!n.activeScenarioId)return ha(n.activeScenarioId)}),q=u=>{o({categoryId:u,activeScenarioId:"",scenarioQuery:u==="scenario"?n.scenarioQuery:""}),p({domainId:n.domainId,categoryId:u})},re=()=>o("activeScenarioId",""),y=()=>({navigate:r,isLoggedIn:!!Fe(),path:d.data.path,recent:yt(d.data.project),lastCodeWorkspace:h.projects.lastCode(),openProject:u=>c.projects.open(u),touchCode:u=>h.projects.touchCode(u)});Pt(()=>{const u=Mn();if(u)try{if(u.type==="install"){if(u.resourceId==="oneskills"){o("categoryId","oneskills"),p({domainId:n.domainId,categoryId:"oneskills"});return}if(u.resourceId.startsWith("__"))return;ja({resourceId:u.resourceId,...y()});return}if(u.type==="prompt"&&u.prompt.trim()){Gn({prompt:u.prompt,title:u.title||"能力中心任务",workflow:u.workflow,...y()});return}if(u.type==="scenario-run"){const F=ha(u.scenarioId);if(!F)return;fa({scenario:F,values:u.values,...y()});return}u.type==="wizard"&&Xn({resourceId:u.resourceId,scenarioId:u.scenarioId,values:u.values,prompt:u.prompt,...y()})}catch{}});const _e=(u,F)=>{fa({scenario:u,values:F.values,...y()})};return(()=>{var u=Oi(),F=u.firstChild,te=F.firstChild,U=te.nextSibling,R=F.nextSibling;return t(te,l(b,{get when(){return n.categoryId==="oneskills"},get fallback(){return[Ei(),(()=>{var z=Pi();return t(z,()=>Ze(n.domainId)),z})(),(()=>{var z=Ri();return t(z,()=>n.categoryId==="scenario"?"切换领域后,下方场景同步刷新":"切换领域后,下方模型、HPC 软件与数据集内容同步刷新"),z})()]},get children(){return[xi(),Ii(),Di()]}})),t(F,l(b,{get when(){return n.categoryId!=="oneskills"},get children(){var z=Li();return t(z,l(ee,{each:ns,children:K=>(()=>{var ne=ji();return ne.$$click=()=>{o({domainId:K.id,activeScenarioId:"",scenarioQuery:""}),p({domainId:K.id,categoryId:n.categoryId})},t(ne,()=>K.label),_(x=>{var I=K.id===n.domainId,A=K.id===n.domainId;return I!==x.e&&ne.classList.toggle("is-active",x.e=I),A!==x.t&&P(ne,"aria-pressed",x.t=A),x},{e:void 0,t:void 0}),ne})()})),z}}),U),t(U,l(ee,{each:rs,children:z=>(()=>{var K=qi(),ne=K.firstChild,x=ne.firstChild,I=x.nextSibling;return K.$$click=()=>q(z.id),t(x,()=>z.label),t(I,()=>z.title),_(A=>{var W=n.categoryId===z.id,H=n.categoryId===z.id;return W!==A.e&&K.classList.toggle("is-active",A.e=W),H!==A.t&&P(K,"aria-selected",A.t=H),A},{e:void 0,t:void 0}),K})()})),t(R,l(b,{get when(){return n.categoryId==="oneskills"},get children(){return l(ki,{})}}),null),t(R,l(b,{get when(){return n.categoryId==="scenario"},get children(){var z=Ai(),K=z.firstChild,ne=K.firstChild,x=ne.nextSibling,I=x.nextSibling,A=I.firstChild,W=I.nextSibling,H=W.firstChild;return t(x,()=>w().length),t(I,()=>Ze(n.domainId),A),H.$$input=ie=>o("scenarioQuery",ie.currentTarget.value),t(z,l(b,{get when(){return w().length>0},get fallback(){return(()=>{var ie=Mi();return t(ie,(()=>{var j=Y(()=>!!n.scenarioQuery.trim());return()=>j()?`未找到匹配「${n.scenarioQuery.trim()}」的场景。`:`当前「${Ze(n.domainId)}」领域暂无场景卡片。`})()),ie})()},get children(){var ie=Ti();return t(ie,l(ee,{get each(){return w()},children:j=>(()=>{var se=Fi(),pe=se.firstChild,Te=pe.firstChild,X=Te.nextSibling,ve=pe.nextSibling,J=ve.nextSibling,Se=J.firstChild,fe=Se.firstChild,oe=Se.nextSibling,$e=oe.firstChild;return se.$$click=()=>o("activeScenarioId",Fn(j)),t(Te,()=>j.name),t(X,()=>j.scenario_id),t(ve,()=>Un(j.problem_and_applicability)),t(J,l(b,{get when(){return j.type?.trim()},get children(){var ce=at();return t(ce,()=>j.type),ce}}),Se),t(J,l(b,{get when(){return j.model?.trim()},get children(){var ce=at();return t(ce,()=>j.model),ce}}),Se),t(J,l(b,{get when(){return j.HPC?.trim()},get children(){var ce=at();return t(ce,()=>j.HPC),ce}}),Se),t(Se,()=>j.workflow_steps?.length||j.workflow.length,fe),t(oe,()=>j.user_input.length,$e),se})()})),ie}}),null),_(()=>H.value=n.scenarioQuery),z}}),null),t(R,l(b,{get when(){return n.categoryId==="onemodel"||n.categoryId==="hpc"},get children(){return l(os,{get category(){return v()},get domainId(){return n.domainId},get domainLabel(){return Ze(n.domainId)},get onUpload(){return n.categoryId==="onemodel"?()=>o("uploadPage","models"):void 0}})}}),null),t(R,l(b,{get when(){return n.categoryId==="onedata"},get children(){return l(ii,{get domain(){return n.domainId},get domainLabel(){return Ze(n.domainId)},get copy(){return v().copy}})}}),null),t(u,l(b,{get when(){return E()},children:z=>l(Zn,{get scenario(){return z()},onClose:re,onSubmit:K=>_e(z(),K)})}),null),t(u,l(nr,{get open(){return n.uploadPage!==null},page:"models",get domain(){return is(n.domainId)},onClose:()=>o("uploadPage",null),onSaved:()=>{o({categoryId:"onemodel",uploadPage:null,activeScenarioId:""}),p({domainId:n.domainId,categoryId:"onemodel"})}}),null),t(u,()=>e.children,null),u})()}function os(e){const[a,r]=T(""),[i,n]=T(bs()),o=()=>({category:e.category.id,domain:e.domainId}),d=de(()=>{const h=a().trim().toLowerCase();return h?e.category.items.filter(f=>[f.name,f.blurb,...f.tags].some(p=>p.toLowerCase().includes(h))):e.category.items}),c=h=>{n(h),hs(h)};return(()=>{var h=Ni(),f=h.firstChild,p=f.firstChild;return t(p,()=>e.category.copy.replace(/[。.]$/,"")),t(f,l(b,{get when(){return e.onUpload},get children(){var $=Ui();return Ra($,"click",e.onUpload,!0),$}}),null),t(h,l(b,{get when(){return e.category.items.length>0},get fallback(){return(()=>{var $=Wi(),v=$.firstChild,w=v.nextSibling,E=w.nextSibling,q=E.nextSibling;return q.nextSibling,t($,()=>e.domainLabel,w),t($,()=>e.category.id==="hpc"?" HPC 软件":"模型",q),$})()},get children(){return[(()=>{var $=Bi(),v=$.firstChild,w=v.firstChild,E=w.nextSibling;return t($,l(b,{get when(){return e.category.items.length>=6},get children(){var q=zi(),re=q.firstChild,y=re.nextSibling;return y.$$input=_e=>r(_e.currentTarget.value),_(()=>y.value=a()),q}}),v),t(w,(()=>{var q=Y(()=>d().length===e.category.items.length);return()=>q()?`共 ${e.category.items.length} 项`:`${d().length} / ${e.category.items.length} 项`})()),t(E,l(ee,{each:ls,children:q=>(()=>{var re=Hi();return re.$$click=()=>c(q.id),t(re,()=>q.label),_(y=>{var _e=i()===q.id,u=i()===q.id;return _e!==y.e&&P(re,"aria-selected",y.e=_e),u!==y.t&&re.classList.toggle("is-active",y.t=u),y},{e:void 0,t:void 0}),re})()})),$})(),l(b,{get when(){return d().length>0},get fallback(){return Qi()},get children(){return[l(b,{get when(){return i()==="list"},get children(){return l(cs,{get items(){return d()},get catalog(){return o()}})}}),l(b,{get when(){return i()==="cards"},get children(){return l(ds,{get items(){return d()},get catalog(){return o()}})}})]}})]}}),null),h})()}function cs(e){return(()=>{var a=Ki();return t(a,l(ee,{get each(){return e.items},children:r=>{const i=()=>pt(r);return(()=>{var n=Ji();return t(n,l(us,{item:r}),null),t(n,l(b,{get when(){return i()},get fallback(){return l(Qa,{})},get children(){return l(Ka,{item:r,get catalog(){return e.catalog}})}}),null),_(o=>{var d=r.ownership==="private",c=!i(),h=i()?void 0:!0,f=i()?void 0:"暂无 OneScience 源码或魔搭映射,暂不可用";return d!==o.e&&n.classList.toggle("is-private",o.e=d),c!==o.t&&n.classList.toggle("is-unavailable",o.t=c),h!==o.a&&P(n,"aria-disabled",o.a=h),f!==o.o&&P(n,"title",o.o=f),o},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()}})),a})()}function ds(e){return(()=>{var a=Vi();return t(a,l(ee,{get each(){return e.items},children:r=>{const i=()=>pt(r);return(()=>{var n=Gi(),o=n.firstChild,d=o.firstChild,c=d.firstChild,h=c.firstChild,f=d.nextSibling;return t(h,()=>r.name),t(c,l(b,{get when(){return r.ownership==="private"},get children(){return Na()}}),null),t(c,l(b,{get when(){return!i()},get children(){return Wa()}}),null),t(d,l(b,{get when(){return r.tags.length>0},get children(){var p=Yi();return t(p,l(ee,{get each(){return r.tags},children:$=>(()=>{var v=at();return t(v,$),v})()})),p}}),null),t(f,()=>r.blurb),t(n,l(b,{get when(){return i()},get fallback(){return l(Qa,{variant:"card"})},get children(){return l(Ka,{item:r,variant:"card",get catalog(){return e.catalog}})}}),null),_(p=>{var $=r.ownership==="private",v=!i(),w=i()?void 0:!0,E=i()?void 0:"暂无 OneScience 源码或魔搭映射,暂不可用";return $!==p.e&&n.classList.toggle("is-private",p.e=$),v!==p.t&&n.classList.toggle("is-unavailable",p.t=v),w!==p.a&&P(n,"aria-disabled",p.a=w),E!==p.o&&P(n,"title",p.o=E),p},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()}})),a})()}function Qa(e){return(()=>{var a=Xi();return _(()=>a.classList.toggle("os-client-capability-unavailable-hint-card",e.variant==="card")),a})()}function us(e){return(()=>{var a=es(),r=a.firstChild,i=r.firstChild,n=r.nextSibling;return t(i,()=>e.item.name),t(r,l(b,{get when(){return e.item.ownership==="private"},get children(){return Na()}}),null),t(r,l(b,{get when(){return!pt(e.item)},get children(){return Wa()}}),null),t(n,()=>e.item.blurb),t(a,l(b,{get when(){return e.item.tags.length>0},get children(){var o=Zi();return t(o,l(ee,{get each(){return e.item.tags},children:d=>(()=>{var c=at();return t(c,d),c})()})),o}}),null),a})()}function Ka(e){const a=()=>e.catalog?{category:e.catalog.category,domain:e.catalog.domain}:void 0;return(()=>{var r=ts();return t(r,l(pa,{get href(){return zn(e.item.id,a())},children:"详情"}),null),t(r,l(gs,{get item(){return e.item}}),null),t(r,l(pa,{get href(){return Bn(e.item.id,void 0,a())},"data-primary":"true",children:"使用"}),null),_(i=>{var n=e.variant!=="card",o=e.variant==="card";return n!==i.e&&r.classList.toggle("os-client-capability-catalog-actions",i.e=n),o!==i.t&&r.classList.toggle("os-client-capability-actions",i.t=o),i},{e:void 0,t:void 0}),r})()}function gs(e){const a=mt(),r=ft(),i=$t(),n=vt(),o=()=>zt(e.item);return(()=>{var d=as();return d.$$click=()=>{o()&&ja({resourceId:e.item.id,navigate:a,isLoggedIn:!!Fe(),path:r.data.path,recent:yt(r.data.project),lastCodeWorkspace:n.projects.lastCode(),openProject:c=>i.projects.open(c),touchCode:c=>n.projects.touchCode(c)})},_(c=>{var h=!o(),f=o()?void 0:"暂无魔搭安装包";return h!==c.e&&(d.disabled=c.e=h),f!==c.t&&P(d,"title",c.t=f),c},{e:void 0,t:void 0}),d})()}function bs(){if(typeof localStorage>"u")return"cards";const e=localStorage.getItem(Ha);return e==="cards"||e==="list"?e:"cards"}function hs(e){typeof localStorage>"u"||localStorage.setItem(Ha,e)}Be(["input","click"]);export{_s as CapabilityCenterPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as o,l as t,o as c,be as s,bf as a,z as n,s as u,bg as d}from"./index-
|
|
1
|
+
import{h as o,l as t,o as c,be as s,bf as a,z as n,s as u,bg as d}from"./index-D89_umhI.js";function l(e){return a(e)||n(u())||d(document,e.path)||""}function i(){const e=o(),r=t();return c(()=>l({path:e.data.path,recent:s(e.data.project),lastCodeWorkspace:r.projects.lastCode()}))}export{i as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as w,j as y,h as S,u as $,o,
|
|
1
|
+
import{m as w,j as y,h as S,u as $,o,ea as D,ar as C,as as F,au as P,ak as _,bV as E,eb as M,c,i,ec as W,ab as p,X as z,ac as G,t as K}from"./index-D89_umhI.js";var L=K('<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 R(e){const l=w(),f=y(),h=S(),r=$(),s=o(()=>D(e.project.worktree)),d=o(()=>e.project.name||s()),v=o(()=>{C(),F();const t=P(e.project.worktree),a=_(e.project.worktree)?.remotePath?.trim();return t.kind==="ssh"&&a?a.endsWith("/")?a:`${a}/`:`${e.project.worktree.replace(/\\/g,"/").replace(/\/+$/,"")}/`}),[m,b]=E({name:d()}),g=o(()=>{const t=m.name.trim();return t?t!==d():!1}),n=M(()=>({mutationFn:async()=>{const t=m.name.trim(),a=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:a,icon:{color:e.project.icon?.color||"",override:e.project.icon?.override||""},commands:{start:e.project.commands?.start??""}}),l.close();return}h.project.meta(e.project.worktree,{name:a,icon:e.project.icon,commands:e.project.commands}),l.close()}}));function x(t){t.preventDefault(),!(n.isPending||!g())&&n.mutate()}return c(G,{get title(){return r.t("dialog.project.rename.title")},class:"os-client-project-create w-full max-w-[480px] mx-auto",get children(){var t=L(),a=t.firstChild,u=a.firstChild,j=a.nextSibling;return t.addEventListener("submit",x),i(a,c(W,{autofocus:!0,type:"text",get label(){return r.t("dialog.project.rename.name")},get placeholder(){return s()},get value(){return m.name},onChange:k=>b("name",k)}),u),i(u,()=>r.t("dialog.project.rename.path",{path:v()})),i(j,c(p,{type:"button",variant:"ghost",size:"large",onClick:()=>l.close(),get children(){return r.t("common.cancel")}}),null),i(j,c(p,{type:"submit",variant:"primary",size:"large",get disabled(){return n.isPending||!g()},get children(){return z(()=>!!n.isPending)()?r.t("common.saving"):r.t("common.confirm")}}),null),t}})}export{R as DialogEditProject};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{em as v,e as S,f as k,eB as P,ap as _,eC as w,m as F,u as L,o as $,c as d,ep as C,i as u,ac as I,eD as T,a4 as b,a5 as p,eu as q,t as E}from"./index-D89_umhI.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=v(),g=S(),f=k(),c=P(),l=_(),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()}),D=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){p({title:n.t("common.requestFailed")});return}x.close(),h.set(s,void 0,{dir:m,id:e.data.id}),f(q(g.pathname,m,e.data.id))}).catch(e=>{const r=e instanceof Error?e.message:String(e);p({title:n.t("common.requestFailed"),description:r})})};return d(I,{get title(){return n.t("command.session.fork")},get children(){return d(C,{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:D,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};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as Ce,m as ze,u as Ie,l as Re,h as Ae,n as f,C as fe,o as b,
|
|
1
|
+
import{b as Ce,m as ze,u as Ie,l as Re,h as Ae,n as f,C as fe,o as b,ed as He,ee as Me,ef as be,eg as Oe,eh as We,c as i,i as l,S as u,Y as ve,W as U,a1 as $e,X as q,ei as w,ej as me,F as Ne,ac as Xe,t as v,ek as qe,el as Ge,a5 as Ve}from"./index-D89_umhI.js";var Ye=v("<input class=os-project-upload-path-input>"),ye=v("<p class=os-project-upload-warn>"),G=v("<p class=os-section-copy>"),Je=v("<ul class=os-project-upload-file-list>"),Ke=v("<div class=os-project-upload-summary role=status><strong>"),V=v("<p class=os-project-upload-error role=alert>"),Qe=v('<div class="os-upload-dialog os-download-dialog os-project-upload-panel"><div class=os-upload-head><div><div class=os-eyebrow></div><h2></h2></div><button type=button class="os-button os-button-secondary os-button-square">×</button></div><div class=os-project-upload-body><div class=os-download-env-field><span class=os-field-label></span><p class=os-section-copy></p></div><div class=os-project-upload-picks><button type=button class="os-button os-button-secondary"></button><button type=button class="os-button os-button-secondary"></button><input type=file class=hidden multiple><input type=file class=hidden multiple></div><p class=os-section-copy></p><label class=os-project-upload-overwrite><input type=checkbox><span></span></label></div><div class=os-upload-actions><button type=button class="os-button os-button-secondary"></button><button type=button class="os-button os-button-primary">'),Ze=v("<code class=os-project-upload-path>/"),et=v("<li class=truncate>");function lt(n){const C=ze(),o=Ie(),Y=Re(),_e=Ae(),[s,je]=f([]),[we,Se]=f(!1),[J,xe]=f(!1),[K,Q]=f(),[ke,z]=f(!0),[h,Z]=f(!1),[ee,te]=f({done:0,total:0,written:0,skipped:0,failed:0}),[I,E]=f("");let le,ae;const oe=()=>n.pathPrefix?.trim().replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")||void 0,R=()=>{const t=n.directory.replace(/\/+$/,""),a=oe();return a?`${t}/${a}`:t},[ne,re]=f(R());fe(()=>{re(R())});const Ee=t=>{if(n.allowEditDestination)return t;const a=oe();return a?`${a}/${t}`:t},S=()=>n.allowEditDestination?ne().replace(/\/+$/,"")||R():n.directory.replace(/\/+$/,""),Le=t=>`${S()}/${t.replace(/^\/+/,"")}`,De=b(()=>{const t=_e.data.path.home,a=S();return t&&a.startsWith(t)?`~${a.slice(t.length)}`:a}),Te=b(()=>{if(!n.allowEditDestination)return!1;const t=n.directory.replace(/\/+$/,""),a=S();return!(a===t||a.startsWith(`${t}/`))}),A=b(()=>He(s())),T=b(()=>Me(s())),H=b(()=>be(s(),{maxFileBytes:n.maxFileBytes,maxTotalBytes:n.maxTotalBytes})),ie=b(()=>{const t=K();return t===void 0||t<=0?!1:A()>t}),se=b(()=>s().length>0&&!h()&&!ie()&&!H()&&!!S()),M=b(()=>s().slice(0,Oe)),Be=b(()=>s().length>0&&!T()),ce=(t=H())=>t?t.kind==="file"?o.t("dialog.project.upload.fileTooLarge",{path:t.path,size:w(t.size),max:w(t.max)}):o.t("dialog.project.upload.totalTooLarge",{size:w(t.size),max:w(t.max)}):"";fe(()=>{const t=S(),a=Y.current?.http;if(!t||!a){z(!1);return}let c=!1;return z(!0),We(a.url,t).then(p=>{c||Q(p.availableBytes)}).catch(()=>{c||Q(void 0)}).finally(()=>{c||z(!1)}),()=>{c=!0}});const de=t=>{if(!t?.length)return;E("");const a=qe(t);je(a.entries),Se(a.truncated);const c=be(a.entries,{maxFileBytes:n.maxFileBytes,maxTotalBytes:n.maxTotalBytes});if(c){E(ce(c));return}a.truncated&&E(o.t("dialog.project.upload.tooManyFiles",{max:String(me),selected:String(a.totalSelected)}))},Pe=async()=>{const t=Y.current?.http;if(!t||!se())return;const a=s(),c=S();Z(!0),E(""),te({done:0,total:a.length,written:0,skipped:0,failed:0});let p=0,_=0,$=0;const d=[],m=[];for(let j=0;j<a.length;j+=1){const x=a[j],L=Ee(x.path);try{const g=await Ge(t.url,c,{path:L,file:x.file,overwrite:J()});g.status==="written"?p+=1:_+=1,m.push(Le(g.path||L))}catch(g){$+=1;const k=g instanceof Error?g.message:o.t("dialog.project.upload.failed");d.length<3&&d.push(`${x.path}: ${k}`)}te({done:j+1,total:a.length,written:p,skipped:_,failed:$})}if(Z(!1),$===0){Ve({title:o.t("toast.project.upload.success",{written:String(p),skipped:String(_)})}),n.onUploadedPaths?.(m),n.onUploaded?.(),C.close();return}E([o.t("dialog.project.upload.partialFailed",{written:String(p),skipped:String(_),failed:String($)}),...d].join(`
|
|
2
2
|
`)),(p>0||_>0)&&(n.onUploadedPaths?.(m),n.onUploaded?.())};return i(Xe,{fit:!0,class:"os-project-upload-dialog",get children(){var t=Qe(),a=t.firstChild,c=a.firstChild,p=c.firstChild,_=p.nextSibling,$=c.nextSibling,d=a.nextSibling,m=d.firstChild,j=m.firstChild,x=j.nextSibling,L=m.nextSibling,g=L.firstChild,k=g.nextSibling,O=k.nextSibling,ue=O.nextSibling,W=L.nextSibling,N=W.nextSibling,B=N.firstChild,Fe=B.nextSibling,Ue=d.nextSibling,P=Ue.firstChild,X=P.nextSibling;return l(p,()=>o.t("dialog.project.upload.eyebrow")),l(_,()=>n.title??o.t("command.project.upload")),$.$$click=()=>C.close(),l(j,()=>n.destinationLabel??o.t("dialog.project.upload.destinationLabel")),l(m,i(u,{get when(){return n.allowEditDestination},get fallback(){return(()=>{var e=Ze(),y=e.firstChild;return l(e,De,y),e})()},get children(){var e=Ye();return e.$$input=y=>re(y.currentTarget.value),ve(e,"spellcheck",!1),U(()=>e.disabled=h()),U(()=>e.value=ne()),e}}),x),l(x,()=>n.destinationHint??o.t("dialog.project.upload.destinationHint")),l(m,i(u,{get when(){return Te()},get children(){var e=ye();return l(e,()=>o.t("dialog.project.upload.destinationRisk")),e}}),null),g.$$click=()=>le?.click(),l(g,()=>o.t("dialog.project.upload.pickFiles")),k.$$click=()=>ae?.click(),l(k,()=>o.t("dialog.project.upload.pickFolder")),O.addEventListener("change",e=>{de(e.currentTarget.files),e.currentTarget.value=""}),$e(e=>{le=e},O),ue.addEventListener("change",e=>{de(e.currentTarget.files),e.currentTarget.value=""}),$e(e=>{ae=e,e&&e.setAttribute("webkitdirectory","")},ue),l(d,i(u,{get when(){return s().length>0},get children(){var e=Ke(),y=e.firstChild;return l(y,(()=>{var r=q(()=>!!T());return()=>r()?o.t("dialog.project.upload.folderSummary",{folder:T(),count:String(s().length),size:w(A())}):o.t("dialog.project.upload.summary",{count:String(s().length),size:w(A())})})()),l(e,i(u,{get when(){return we()},get children(){var r=ye();return l(r,()=>o.t("dialog.project.upload.truncatedHint",{max:String(me)})),r}}),null),l(e,i(u,{get when(){return T()},get children(){var r=G();return l(r,()=>o.t("dialog.project.upload.folderHint")),r}}),null),l(e,i(u,{get when(){return Be()},get children(){return[(()=>{var r=Je();return l(r,i(Ne,{get each(){return M()},children:F=>(()=>{var D=et();return l(D,()=>F.path),D})()})),r})(),i(u,{get when(){return s().length>M().length},get children(){var r=G();return l(r,()=>o.t("dialog.project.upload.moreFiles",{count:String(s().length-M().length)})),r}})]}}),null),e}}),W),l(W,()=>o.t("dialog.project.upload.diskSpace",{space:ke()?o.t("common.loading"):w(K())})),l(d,i(u,{get when(){return ie()},get children(){var e=V();return l(e,()=>o.t("dialog.project.upload.diskInsufficient")),e}}),N),l(d,i(u,{get when(){return q(()=>!!H())()&&!I()},get children(){var e=V();return l(e,ce),e}}),N),B.addEventListener("change",e=>xe(e.currentTarget.checked)),l(Fe,()=>o.t("dialog.project.upload.overwrite")),l(d,i(u,{get when(){return h()},get children(){var e=G();return l(e,()=>o.t("dialog.project.upload.progress",{done:String(ee().done),total:String(ee().total)})),e}}),null),l(d,i(u,{get when(){return I()},get children(){var e=V();return l(e,I),e}}),null),P.$$click=()=>C.close(),l(P,()=>o.t("common.cancel")),X.$$click=()=>void Pe(),l(X,(()=>{var e=q(()=>!!h());return()=>e()?o.t("dialog.project.upload.uploading"):o.t("dialog.project.upload.confirm")})()),U(e=>{var y=h(),r=o.t("common.cancel"),F=h(),D=h(),pe=h(),ge=h(),he=!se();return y!==e.e&&($.disabled=e.e=y),r!==e.t&&ve($,"aria-label",e.t=r),F!==e.a&&(g.disabled=e.a=F),D!==e.o&&(k.disabled=e.o=D),pe!==e.i&&(B.disabled=e.i=pe),ge!==e.n&&(P.disabled=e.n=ge),he!==e.s&&(X.disabled=e.s=he),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),U(()=>B.checked=J()),t}})}Ce(["click","input"]);export{lt as DialogProjectUpload};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as f,W as E,
|
|
1
|
+
import{i as f,W as E,cl as V,t as $,b0 as X,u as Z,g as ee,ao as te,m as ne,e as se,f as re,j as ae,h as oe,eo as ie,n as ce,o as b,B as le,x as de,c as w,ep as ue,aB as fe,aC as P,S as C,eq as ge,I as he,er as pe,es as me,ea as K,ac as we,et as ye,eu as ve,a4 as be}from"./index-D89_umhI.js";var xe=$("<span data-component=keybind>");function ke(t){return(()=>{var n=xe();return f(n,()=>t.children),E(a=>V(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=X(),a=Z(),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,z]=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))}),B=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}),G=b(()=>v.data.path.home),H=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=G(),m=g?e.replace(g,"~"):e,x=p.vcs?.branch??K(e);return`${u} : ${x||m}`},{sessions:W}=Le({workspaces:B,label:H,globalSDK:h,language:a}),Y=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]},J=e=>{k.cleanup?.(),e&&e.type==="command"&&(k.cleanup=e.option?.onHighlight?.())},Q=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)},U=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&&Q(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:Y,key:e=>e.id,filterKeys:["title","description","category"],get groupBy(){return R()?e=>e.category:()=>""},onMove:J,onSelect:U,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};
|