@onescience/onecode-web 1.14.50-202609190953 → 1.14.50-202609191621
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-CvjY_cvM.js → 3Dmol-Cb-yFavP.js} +1 -1
- package/assets/{account-system-iVR7os3T.js → account-system-B6NEeP1E.js} +1 -1
- package/assets/{alert-04-DGswaApz.js → alert-01-w3bKPSuh.js} +1 -1
- package/assets/{alert-05-zLUup1XQ.js → alert-02-DWcqAklJ.js} +1 -1
- package/assets/{alert-01-X-9J4A1o.js → alert-04-FRQpk3YA.js} +1 -1
- package/assets/{alert-02-DHBFlVfc.js → alert-05-BCdqfndG.js} +1 -1
- package/assets/alert-06-dr0ve9EZ.js +1 -0
- package/assets/alert-07-D73D8bQT.js +1 -0
- package/assets/alert-08-o5Pf90Tr.js +1 -0
- package/assets/alert-10-BhCDnQ7Q.js +1 -0
- package/assets/{bip-bop-03-Bb2zbmkB.js → bip-bop-03-qMmDljXh.js} +1 -1
- package/assets/{bip-bop-04-RFi7-itO.js → bip-bop-04-C9kLH5LW.js} +1 -1
- package/assets/{bip-bop-06-Bmlh-7Qz.js → bip-bop-06-BO8twUNJ.js} +1 -1
- package/assets/{bip-bop-08-CuLlYsed.js → bip-bop-08-DAi-h-tU.js} +1 -1
- package/assets/bip-bop-09-HteL5U8s.js +1 -0
- package/assets/{center-Bkwj7_Ni.js → center-Dc4qsMNh.js} +1 -1
- package/assets/{dialog-fork-DdOZuk-z.js → dialog-fork-CdB52KRm.js} +1 -1
- package/assets/{dialog-project-upload-q0FdbTA9.js → dialog-project-upload-Dl90TcIf.js} +1 -1
- package/assets/{dialog-select-file-D4XxBPPs.js → dialog-select-file-CfxIPL8F.js} +1 -1
- package/assets/dialog-select-model-5H-GmK-M.js +2 -0
- package/assets/{dialog-terminal-unavailable-B3H34CK1.js → dialog-terminal-unavailable-Cv51Zzi3.js} +1 -1
- package/assets/{docs-DlV6hyE2.js → docs-ChGaUhs9.js} +1 -1
- package/assets/{ghostty-web-BmhExhLy.js → ghostty-web-CVOHDXmf.js} +1 -1
- package/assets/{index-5t1ell5L.js → index-CLUM_n0C.js} +234 -234
- package/assets/{index-CWdCxJdh.css → index-CX0zdxzc.css} +1 -1
- package/assets/{intro-DBjNvdxc.js → intro-DKvWMPhm.js} +1 -1
- package/assets/{nope-02-JWH6fDAo.js → nope-02-uZQJ18Kk.js} +1 -1
- package/assets/{nope-05-DQu0zdcI.js → nope-05-RkLUzHvx.js} +1 -1
- package/assets/{nope-08-kx3ns1eL.js → nope-08-DsG0PaNH.js} +1 -1
- package/assets/{nope-11-CsGpaQ-s.js → nope-11-CdQw-KnX.js} +1 -1
- package/assets/nope-12-aiRaCr0A.js +1 -0
- package/assets/{onescience-kiHJU3TH.js → onescience-Bc0G_4FC.js} +15 -15
- package/assets/{resources-DpzdbAvV.js → resources-BpT3OgCa.js} +1 -1
- package/assets/{skills-11FhzUVq.js → skills-YWkJlR7k.js} +1 -1
- package/assets/{staplebops-03-BFDDoReC.js → staplebops-03-D3GWoLOF.js} +1 -1
- package/assets/{staplebops-04-ivfL0_AC.js → staplebops-04-BbA0eSIX.js} +1 -1
- package/assets/{staplebops-06-D7hPHJZ9.js → staplebops-06-C-Ekiiqq.js} +1 -1
- package/assets/{staplebops-07-PRQfTxbO.js → staplebops-07-DmBuS8Ha.js} +1 -1
- package/assets/{wizard-CE5Ve5Ic.js → wizard-CvrgcPvB.js} +1 -1
- package/assets/{yup-01-DD8GdkAr.js → yup-01-BgI3G0NU.js} +1 -1
- package/assets/{yup-03-DJmWr9DF.js → yup-03-BV2g6B1G.js} +1 -1
- package/assets/{yup-04-DokkGzxo.js → yup-04-_O8GZJzA.js} +1 -1
- package/assets/{yup-05-CcCL2F1c.js → yup-05-Di5f9A4a.js} +1 -1
- package/index.html +11 -11
- package/package.json +2 -2
- package/assets/alert-06-CF-rVba_.js +0 -1
- package/assets/alert-07-CGPwaDHI.js +0 -1
- package/assets/alert-08-DnnGwRDF.js +0 -1
- package/assets/alert-10-Ddflho21.js +0 -1
- package/assets/bip-bop-09-BgjN7mZO.js +0 -1
- package/assets/dialog-select-model-Ca7JCRhV.js +0 -2
- package/assets/nope-12-OYYOX3ep.js +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{d as At,a as n,aJ as bt,i,an as Oe,S as y,b as E,x as R,v as ne,c as S,z as ge,F as ce,t as o,u as mt,aK as $s,aL as Yi,aM as Da,aN as jt,aO as Xa,m as Cs,p as Ss,n as _s,aP as Ps,aQ as er,aR as ks,A as ze,aS as It,aH as Ze,ag as Ut,aT as Ds,D as j,B as pa,aU as ga,aV as La,K as ot,k as ft,a5 as tr,ap as gt,aW as Gr,aX as Br,aY as wi,aZ as $i,a_ as As,a$ as xs,b0 as na,b1 as Ci,b2 as Hr,P as wt,O as Kt,L as Tt,N as fa,af as qr,C as zr,b3 as Ms,b4 as Is,b5 as Fs,aj as et,b6 as ar,b7 as Ts,b8 as jr,b9 as Wr,ba as Vr,ak as Kr,aE as Es,bb as ri,bc as Os,bd as Ns,be as Rs,h as Xr,bf as Ls,bg as Us,bh as ir,ao as ca,bi as Gs,bj as Aa,bk as Ja,bl as Bs,bm as ht,bn as xt,Q as Si,bo as _i,bp as Hs,l as Jr,bq as qs,br as zs,bs as js,bt as Ws,bu as Vs,bv as Ta,bw as oa,bx as Ks,by as Qa,bz as Za,bA as Xs,bB as Js,bC as ia,bD as Qs,bE as Zs,bF as Ys,bG as eo,bH as Pi,bI as to,bJ as ao,bK as io,U as ro,aF as no,$ as so,bL as ki,bM as Di,bN as Qr,bO as Zr,bP as ni,bQ as oo,bR as si,bS as lo,bT as co,bU as uo,bV as zt,bW as mo,bX as ho,bY as Yr,bZ as en,b_ as tn,b$ as an,c0 as rn,c1 as po,c2 as nn,at as go,c3 as fo,c4 as bo,c5 as vo,c6 as yo,c7 as kt,c8 as wo,c9 as $o,ca as Co,cb as rr,cc as So,cd as oi,ce as _o,cf as sn,cg as on,ch as Po,ci as ln,o as la,cj as Ai,j as ko,ck as Do,cl as Ao,am as xo,al as nr,cm as cn,cn as Mo,co as Io,w as Fo,cp as To,cq as sr,cr as Eo,cs as Oo,ct as No}from"./index-5t1ell5L.js";import{d as Ro}from"./onescience-docs-CH5KBTI9.js";var Lo=o("<div><div class=os-download-path-hint-title></div><ul class=os-download-path-hint-list>"),Uo=o("<li class=break-all>"),Go=o("<div class=os-download-env-row><div class=os-download-env-field><span class=os-field-label-row><span class=os-field-label>下载到环境</span></span><div>"),Bo=o("<p class=os-section-copy>确认将 <strong></strong> <!>以下路径吗?"),Ho=o("<p class=os-section-copy data-testid=download-register-guide>下载完成不会自动登记。请到 OneData「原始数据」确认接入后再加工或训练。"),qo=o("<p class=os-section-copy>SCNet 侧无法直接访问 ModelScope。确认后将打开科研开发会话,由 Agent 使用 scnet MCP 工具完成下载与传输。"),zo=o("<div class=os-dataset-download-info-row><span></span><strong>"),jo=o("<div class=os-upload-error>可用空间不足,无法下载该数据集"),or=o("<div class=os-upload-error>"),Wo=o("<div class=os-upload-error>无法从魔搭获取数据集大小,暂不可下载"),Vo=o('<div class=os-modal-backdrop role=presentation><div class="os-upload-dialog os-download-dialog"><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-dataset-download-info><div class=os-dataset-download-info-row><span>数据集大小(预估)</span><strong></strong></div></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">'),Ko=o("<label><span class=os-field-label-row><span class=os-field-label><span class=os-field-required aria-hidden=true> *</span></span></span><input>"),Xo=o('<div class=os-modal-backdrop role=presentation><div class="os-upload-dialog os-download-dialog"><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><p class=os-section-copy>确认取消 <strong></strong> 的下载吗?已下载的部分文件将被保留,你可以稍后重新下载。</p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">继续下载</button><button type=button class="os-button os-button-primary">'),Jo=o("<p class=os-section-copy>正在删除所选副本…"),Qo=o("<p class=os-section-copy>"),Zo=o("<button type=button class=os-download-copy-all>"),Yo=o("<div class=os-download-copy-list role=group aria-label=选择要删除的环境>"),el=o('<div class=os-modal-backdrop role=presentation><div class="os-upload-dialog os-download-dialog"><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-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button type=button class="os-button os-button-primary">'),lr=o("<strong>"),tl=o("<span class=os-download-copy-partial> 未完成"),al=o("<button type=button class=os-download-copy-item><span class=os-download-copy-item-title></span><span class=os-download-copy-item-path>"),il=o('<span class="os-download-copy-path break-all">');function cr(e){const t=()=>e.paths.filter(a=>a.trim());return n(y,{get when(){return t().length>0},get children(){var a=Lo(),r=a.firstChild,s=r.nextSibling;return i(r,()=>e.confirmed?"数据集位置":"数据集实际位置(随 ModelScope 版本可能不同)"),i(s,n(ce,{get each(){return t()},children:l=>(()=>{var d=Uo();return i(d,l),d})()})),E(()=>mt(a,`os-download-path-hint ${e.class??""}`.trim())),a}})}function rl(e){const t=()=>e.actionLabel??"下载",a=()=>e.environment??{kind:"local"},r=()=>e.diskLoading?"加载中...":Yi(e.availableBytes),s=()=>e.sizeLoading?"加载中...":e.datasetBytes===void 0?"无法从魔搭获取数据集大小":Yi(e.datasetBytes),l=()=>{if(a().kind==="ssh")return e.remotePath??"";if(a().kind==="scnet")return e.remotePath?.trim()||"(SCNet 默认缓存目录)";const h=`/${e.datasetId}`;return e.targetPath.endsWith(h)?e.targetPath.slice(0,-h.length):e.targetPath},d=()=>{const h=(e.actualPaths??[]).map(f=>f.trim()).filter(Boolean);return h.length>0?{paths:[...new Set(h)],confirmed:!0}:{paths:$s(l(),e.datasetId),confirmed:!1}},c=()=>e.busy?a().kind==="ssh"?"正在提交到远端...":"正在提交下载...":a().kind==="scnet"?"创建下载任务":t()==="更新"?"确认更新":"确认下载",g=()=>!!e.sizeLoading||e.datasetBytes===void 0,v=()=>{if(a().kind==="scnet")return!1;const h=e.datasetBytes,f=e.availableBytes;return h===void 0||f===void 0||f<=0?!1:h>f},b=()=>a().kind==="scnet"||e.diskLoading?!1:e.availableBytes===void 0,u=()=>!!e.busy||!!e.confirmDisabled||a().kind==="ssh"&&!(e.remotePath??"").trim()||g()||!!e.diskLoading||b()||v();return n(y,{get when(){return e.open},get children(){return n(bt,{get children(){var h=Vo(),f=h.firstChild,w=f.firstChild,_=w.firstChild,p=_.firstChild,M=p.firstChild,N=p.nextSibling,L=_.nextSibling,W=w.nextSibling,O=W.firstChild,H=O.firstChild,D=H.nextSibling,T=W.nextSibling,G=T.firstChild,z=G.nextSibling;return f.$$click=P=>P.stopPropagation(),i(p,t,M),i(N,()=>e.title),Oe(L,"click",e.onClose,!0),i(f,n(y,{get when(){return e.environmentSelector},get children(){var P=Go(),F=P.firstChild,B=F.firstChild,re=B.nextSibling;return i(re,()=>e.environmentSelector),P}}),W),i(f,n(y,{get when(){return a().kind==="local"},get fallback(){return[(()=>{var P=Ko(),F=P.firstChild,B=F.firstChild,re=B.firstChild,de=F.nextSibling;return i(B,()=>a().kind==="ssh"?"远端存储目录":"SCNet 目标目录",re),de.$$input=J=>e.onRemotePathChange?.(J.currentTarget.value),E(()=>R(de,"placeholder",a().kind==="ssh"?"/work/you/modelscope/hub/datasets":"modelscope/hub/datasets")),E(()=>de.value=e.remotePath??""),P})(),n(cr,{get paths(){return d().paths},get confirmed(){return d().confirmed}})]},get children(){return[(()=>{var P=Bo(),F=P.firstChild,B=F.nextSibling,re=B.nextSibling,de=re.nextSibling;return de.nextSibling,i(B,()=>e.datasetId),i(P,()=>t()==="更新"?"更新到":"下载到",de),P})(),n(cr,{get paths(){return d().paths},get confirmed(){return d().confirmed}})]}}),W),i(f,n(y,{get when(){return d().confirmed},get children(){return Ho()}}),W),i(f,n(y,{get when(){return a().kind==="scnet"},get children(){return qo()}}),W),i(D,s),i(W,n(y,{get when(){return a().kind!=="scnet"},get children(){var P=zo(),F=P.firstChild,B=F.nextSibling;return i(F,()=>a().kind==="ssh"?"远端可用空间":"项目路径可用空间"),i(B,r),P}}),null),i(f,n(y,{get when(){return v()},get children(){return jo()}}),T),i(f,n(y,{get when(){return b()},get children(){var P=or();return i(P,()=>a().kind==="ssh"?"无法获取远端可用空间,暂不可下载":"无法获取项目路径可用空间,暂不可下载"),P}}),T),i(f,n(y,{get when(){return ne(()=>!e.sizeLoading)()&&e.datasetBytes===void 0},get children(){return Wo()}}),T),i(f,n(y,{get when(){return e.error},get children(){var P=or();return i(P,()=>e.error),P}}),T),Oe(G,"click",e.onClose,!0),Oe(z,"click",e.onConfirm,!0),i(z,c),E(P=>{var F=v()?"":void 0,B=b()?"":void 0,re=e.busy,de=u();return F!==P.e&&R(W,"data-insufficient",P.e=F),B!==P.t&&R(W,"data-unknown",P.t=B),re!==P.a&&(G.disabled=P.a=re),de!==P.o&&(z.disabled=P.o=de),P},{e:void 0,t:void 0,a:void 0,o:void 0}),h}})}})}function nl(e){return n(y,{get when(){return e.open},get children(){return n(bt,{get children(){var t=Xo(),a=t.firstChild,r=a.firstChild,s=r.firstChild,l=s.firstChild,d=l.nextSibling,c=s.nextSibling,g=r.nextSibling,v=g.firstChild,b=v.nextSibling,u=g.nextSibling,h=u.firstChild,f=h.nextSibling;return a.$$click=w=>w.stopPropagation(),i(d,()=>e.title),Oe(c,"click",e.onClose,!0),i(b,()=>e.datasetId),Oe(h,"click",e.onClose,!0),Oe(f,"click",e.onConfirm,!0),i(f,()=>e.busy?"正在取消...":"确认取消"),E(w=>{var _=e.busy,p=e.busy;return _!==w.e&&(h.disabled=w.e=_),p!==w.t&&(f.disabled=w.t=p),w},{e:void 0,t:void 0}),t}})}})}function sl(e){const[t,a]=S();ge(()=>{if(!e.open){a(void 0);return}e.busy||a(e.copies)});const r=()=>e.busy?t()??e.copies:e.copies,s=()=>new Set(e.selectedKeys),l=()=>r().filter(u=>s().has(u.key)),d=()=>r().length>0&&l().length===r().length,c=()=>{const u=l();return u.length>0&&u.every(h=>h.partial)},g=()=>!!e.busy||l().length===0,v=u=>{if(e.busy)return;const h=new Set(s());h.has(u)?h.delete(u):h.add(u),e.onSelectedKeysChange([...h])},b=()=>{e.busy||e.onSelectedKeysChange(d()?[]:r().map(u=>u.key))};return n(y,{get when(){return e.open},get children(){return n(bt,{get children(){var u=el(),h=u.firstChild,f=h.firstChild,w=f.firstChild,_=w.firstChild,p=_.nextSibling,M=w.nextSibling,N=f.nextSibling,L=N.firstChild,W=L.nextSibling;return h.$$click=O=>O.stopPropagation(),i(_,()=>c()?"清理残留文件":"删除数据集"),i(p,()=>e.title),Oe(M,"click",e.onClose,!0),i(h,n(y,{get when(){return e.busy},get children(){return Jo()}}),N),i(h,n(y,{get when(){return!e.busy},get children(){return[(()=>{var O=Qo();return i(O,(()=>{var H=ne(()=>r().length>1);return()=>H()?"该数据集已下载到多个环境。请选择要删除的副本,此操作不可恢复。":ne(()=>!!c())()?["确认清理 ",(()=>{var D=lr();return i(D,()=>e.datasetId),D})()," 未完成的下载残留吗?请选择环境后继续。"]:["请选择要删除 ",(()=>{var D=lr();return i(D,()=>e.datasetId),D})()," 的环境。此操作不可恢复。"]})()),O})(),n(y,{get when(){return r().length>1},get children(){var O=Zo();return O.$$click=b,i(O,()=>d()?"取消全选":"全选"),E(()=>O.disabled=e.busy),O}}),(()=>{var O=Yo();return i(O,n(ce,{get each(){return r()},children:H=>(()=>{var D=al(),T=D.firstChild,G=T.nextSibling;return D.$$click=()=>v(H.key),i(T,()=>H.label,null),i(T,n(y,{get when(){return H.partial},get children(){return tl()}}),null),i(G,n(ce,{get each(){return H.paths},children:z=>(()=>{var P=il();return i(P,z),P})()})),E(z=>{var P=s().has(H.key)?"":void 0,F=s().has(H.key),B=e.busy;return P!==z.e&&R(D,"data-selected",z.e=P),F!==z.t&&R(D,"aria-pressed",z.t=F),B!==z.a&&(D.disabled=z.a=B),z},{e:void 0,t:void 0,a:void 0}),D})()})),O})()]}}),N),Oe(L,"click",e.onClose,!0),Oe(W,"click",e.onConfirm,!0),i(W,(()=>{var O=ne(()=>!!e.busy);return()=>O()?"正在删除...":c()?"确认清理":"确认删除"})()),E(O=>{var H=e.busy,D=e.busy,T=g();return H!==O.e&&(M.disabled=O.e=H),D!==O.t&&(L.disabled=O.t=D),T!==O.a&&(W.disabled=O.a=T),O},{e:void 0,t:void 0,a:void 0}),u}})}})}At(["click","input"]);const St=`请按照下面的内容,使用OneScience,进行后续工作。
|
|
1
|
+
import{d as At,a as n,aJ as bt,i,an as Oe,S as y,b as E,x as R,v as ne,c as _,z as ge,F as ce,t as o,u as mt,aK as _s,aL as Yi,aM as Da,aN as jt,aO as Xa,m as Ps,p as ks,n as Ds,aP as As,aQ as er,aR as xs,A as Be,aS as It,aH as Ze,ag as Ft,aT as Ms,D as j,B as pa,aU as ga,aV as La,K as ot,k as ft,a5 as tr,ap as gt,aW as qr,aX as zr,aY as wi,aZ as $i,a_ as Is,a$ as Fs,b0 as na,b1 as Ci,b2 as jr,P as wt,O as Kt,L as Et,N as fa,af as Wr,C as Vr,b3 as Ts,b4 as Es,b5 as Os,aj as et,b6 as ar,b7 as Ns,b8 as Kr,b9 as Xr,ba as Jr,ak as Qr,aE as Rs,bb as ri,bc as Ls,bd as Us,be as Gs,h as Zr,bf as Bs,bg as Hs,bh as ir,ao as ca,bi as qs,bj as Aa,bk as Ja,bl as zs,bm as ht,bn as xt,Q as Si,bo as _i,bp as js,l as Yr,bq as Ws,br as Vs,bs as Ks,bt as Xs,bu as Js,bv as Ta,bw as oa,bx as Qs,by as Qa,bz as Za,bA as Zs,bB as Ys,bC as ia,bD as eo,bE as to,bF as ao,bG as io,bH as Pi,bI as ro,bJ as no,bK as so,U as oo,aF as lo,$ as co,bL as ki,bM as Di,bN as en,bO as tn,bP as ni,bQ as uo,bR as si,bS as mo,bT as ho,bU as po,bV as zt,bW as go,bX as fo,bY as an,bZ as rn,b_ as nn,b$ as sn,c0 as on,c1 as bo,c2 as ln,at as vo,c3 as yo,c4 as wo,c5 as $o,c6 as Co,c7 as kt,c8 as So,c9 as _o,ca as Po,cb as rr,cc as ko,cd as oi,ce as Do,cf as cn,cg as dn,ch as Ao,ci as un,cj as nr,ck as sr,cl as or,o as la,cm as Ai,j as xo,cn as Mo,co as Io,am as Fo,al as lr,cp as mn,cq as To,cr as Eo,w as Oo,cs as No,ct as cr,cu as Ro,cv as Lo,cw as Uo}from"./index-CLUM_n0C.js";import{d as Go}from"./onescience-docs-CH5KBTI9.js";var Bo=o("<div><div class=os-download-path-hint-title></div><ul class=os-download-path-hint-list>"),Ho=o("<li class=break-all>"),qo=o("<div class=os-download-env-row><div class=os-download-env-field><span class=os-field-label-row><span class=os-field-label>下载到环境</span></span><div>"),zo=o("<p class=os-section-copy>确认将 <strong></strong> <!>以下路径吗?"),jo=o("<p class=os-section-copy data-testid=download-register-guide>下载完成不会自动登记。请到 OneData「原始数据」确认接入后再加工或训练。"),Wo=o("<p class=os-section-copy>SCNet 侧无法直接访问 ModelScope。确认后将打开科研开发会话,由 Agent 使用 scnet MCP 工具完成下载与传输。"),Vo=o("<div class=os-dataset-download-info-row><span></span><strong>"),Ko=o("<div class=os-upload-error>可用空间不足,无法下载该数据集"),dr=o("<div class=os-upload-error>"),Xo=o("<div class=os-upload-error>无法从魔搭获取数据集大小,暂不可下载"),Jo=o('<div class=os-modal-backdrop role=presentation><div class="os-upload-dialog os-download-dialog"><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-dataset-download-info><div class=os-dataset-download-info-row><span>数据集大小(预估)</span><strong></strong></div></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">'),Qo=o("<label><span class=os-field-label-row><span class=os-field-label><span class=os-field-required aria-hidden=true> *</span></span></span><input>"),Zo=o('<div class=os-modal-backdrop role=presentation><div class="os-upload-dialog os-download-dialog"><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><p class=os-section-copy>确认取消 <strong></strong> 的下载吗?已下载的部分文件将被保留,你可以稍后重新下载。</p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">继续下载</button><button type=button class="os-button os-button-primary">'),Yo=o("<p class=os-section-copy>正在删除所选副本…"),el=o("<p class=os-section-copy>"),tl=o("<button type=button class=os-download-copy-all>"),al=o("<div class=os-download-copy-list role=group aria-label=选择要删除的环境>"),il=o('<div class=os-modal-backdrop role=presentation><div class="os-upload-dialog os-download-dialog"><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-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button type=button class="os-button os-button-primary">'),ur=o("<strong>"),rl=o("<span class=os-download-copy-partial> 未完成"),nl=o("<button type=button class=os-download-copy-item><span class=os-download-copy-item-title></span><span class=os-download-copy-item-path>"),sl=o('<span class="os-download-copy-path break-all">');function mr(e){const t=()=>e.paths.filter(a=>a.trim());return n(y,{get when(){return t().length>0},get children(){var a=Bo(),r=a.firstChild,s=r.nextSibling;return i(r,()=>e.confirmed?"数据集位置":"数据集实际位置(随 ModelScope 版本可能不同)"),i(s,n(ce,{get each(){return t()},children:d=>(()=>{var l=Ho();return i(l,d),l})()})),E(()=>mt(a,`os-download-path-hint ${e.class??""}`.trim())),a}})}function ol(e){const t=()=>e.actionLabel??"下载",a=()=>e.environment??{kind:"local"},r=()=>e.diskLoading?"加载中...":Yi(e.availableBytes),s=()=>e.sizeLoading?"加载中...":e.datasetBytes===void 0?"无法从魔搭获取数据集大小":Yi(e.datasetBytes),d=()=>{if(a().kind==="ssh")return e.remotePath??"";if(a().kind==="scnet")return e.remotePath?.trim()||"(SCNet 默认缓存目录)";const h=`/${e.datasetId}`;return e.targetPath.endsWith(h)?e.targetPath.slice(0,-h.length):e.targetPath},l=()=>{const h=(e.actualPaths??[]).map(f=>f.trim()).filter(Boolean);return h.length>0?{paths:[...new Set(h)],confirmed:!0}:{paths:_s(d(),e.datasetId),confirmed:!1}},c=()=>e.busy?a().kind==="ssh"?"正在提交到远端...":"正在提交下载...":a().kind==="scnet"?"创建下载任务":t()==="更新"?"确认更新":"确认下载",g=()=>!!e.sizeLoading||e.datasetBytes===void 0,v=()=>{if(a().kind==="scnet")return!1;const h=e.datasetBytes,f=e.availableBytes;return h===void 0||f===void 0||f<=0?!1:h>f},b=()=>a().kind==="scnet"||e.diskLoading?!1:e.availableBytes===void 0,u=()=>!!e.busy||!!e.confirmDisabled||a().kind==="ssh"&&!(e.remotePath??"").trim()||g()||!!e.diskLoading||b()||v();return n(y,{get when(){return e.open},get children(){return n(bt,{get children(){var h=Jo(),f=h.firstChild,w=f.firstChild,C=w.firstChild,p=C.firstChild,M=p.firstChild,N=p.nextSibling,L=C.nextSibling,W=w.nextSibling,O=W.firstChild,H=O.firstChild,D=H.nextSibling,T=W.nextSibling,G=T.firstChild,z=G.nextSibling;return f.$$click=P=>P.stopPropagation(),i(p,t,M),i(N,()=>e.title),Oe(L,"click",e.onClose,!0),i(f,n(y,{get when(){return e.environmentSelector},get children(){var P=qo(),F=P.firstChild,B=F.firstChild,re=B.nextSibling;return i(re,()=>e.environmentSelector),P}}),W),i(f,n(y,{get when(){return a().kind==="local"},get fallback(){return[(()=>{var P=Qo(),F=P.firstChild,B=F.firstChild,re=B.firstChild,de=F.nextSibling;return i(B,()=>a().kind==="ssh"?"远端存储目录":"SCNet 目标目录",re),de.$$input=J=>e.onRemotePathChange?.(J.currentTarget.value),E(()=>R(de,"placeholder",a().kind==="ssh"?"/work/you/modelscope/hub/datasets":"modelscope/hub/datasets")),E(()=>de.value=e.remotePath??""),P})(),n(mr,{get paths(){return l().paths},get confirmed(){return l().confirmed}})]},get children(){return[(()=>{var P=zo(),F=P.firstChild,B=F.nextSibling,re=B.nextSibling,de=re.nextSibling;return de.nextSibling,i(B,()=>e.datasetId),i(P,()=>t()==="更新"?"更新到":"下载到",de),P})(),n(mr,{get paths(){return l().paths},get confirmed(){return l().confirmed}})]}}),W),i(f,n(y,{get when(){return l().confirmed},get children(){return jo()}}),W),i(f,n(y,{get when(){return a().kind==="scnet"},get children(){return Wo()}}),W),i(D,s),i(W,n(y,{get when(){return a().kind!=="scnet"},get children(){var P=Vo(),F=P.firstChild,B=F.nextSibling;return i(F,()=>a().kind==="ssh"?"远端可用空间":"项目路径可用空间"),i(B,r),P}}),null),i(f,n(y,{get when(){return v()},get children(){return Ko()}}),T),i(f,n(y,{get when(){return b()},get children(){var P=dr();return i(P,()=>a().kind==="ssh"?"无法获取远端可用空间,暂不可下载":"无法获取项目路径可用空间,暂不可下载"),P}}),T),i(f,n(y,{get when(){return ne(()=>!e.sizeLoading)()&&e.datasetBytes===void 0},get children(){return Xo()}}),T),i(f,n(y,{get when(){return e.error},get children(){var P=dr();return i(P,()=>e.error),P}}),T),Oe(G,"click",e.onClose,!0),Oe(z,"click",e.onConfirm,!0),i(z,c),E(P=>{var F=v()?"":void 0,B=b()?"":void 0,re=e.busy,de=u();return F!==P.e&&R(W,"data-insufficient",P.e=F),B!==P.t&&R(W,"data-unknown",P.t=B),re!==P.a&&(G.disabled=P.a=re),de!==P.o&&(z.disabled=P.o=de),P},{e:void 0,t:void 0,a:void 0,o:void 0}),h}})}})}function ll(e){return n(y,{get when(){return e.open},get children(){return n(bt,{get children(){var t=Zo(),a=t.firstChild,r=a.firstChild,s=r.firstChild,d=s.firstChild,l=d.nextSibling,c=s.nextSibling,g=r.nextSibling,v=g.firstChild,b=v.nextSibling,u=g.nextSibling,h=u.firstChild,f=h.nextSibling;return a.$$click=w=>w.stopPropagation(),i(l,()=>e.title),Oe(c,"click",e.onClose,!0),i(b,()=>e.datasetId),Oe(h,"click",e.onClose,!0),Oe(f,"click",e.onConfirm,!0),i(f,()=>e.busy?"正在取消...":"确认取消"),E(w=>{var C=e.busy,p=e.busy;return C!==w.e&&(h.disabled=w.e=C),p!==w.t&&(f.disabled=w.t=p),w},{e:void 0,t:void 0}),t}})}})}function cl(e){const[t,a]=_();ge(()=>{if(!e.open){a(void 0);return}e.busy||a(e.copies)});const r=()=>e.busy?t()??e.copies:e.copies,s=()=>new Set(e.selectedKeys),d=()=>r().filter(u=>s().has(u.key)),l=()=>r().length>0&&d().length===r().length,c=()=>{const u=d();return u.length>0&&u.every(h=>h.partial)},g=()=>!!e.busy||d().length===0,v=u=>{if(e.busy)return;const h=new Set(s());h.has(u)?h.delete(u):h.add(u),e.onSelectedKeysChange([...h])},b=()=>{e.busy||e.onSelectedKeysChange(l()?[]:r().map(u=>u.key))};return n(y,{get when(){return e.open},get children(){return n(bt,{get children(){var u=il(),h=u.firstChild,f=h.firstChild,w=f.firstChild,C=w.firstChild,p=C.nextSibling,M=w.nextSibling,N=f.nextSibling,L=N.firstChild,W=L.nextSibling;return h.$$click=O=>O.stopPropagation(),i(C,()=>c()?"清理残留文件":"删除数据集"),i(p,()=>e.title),Oe(M,"click",e.onClose,!0),i(h,n(y,{get when(){return e.busy},get children(){return Yo()}}),N),i(h,n(y,{get when(){return!e.busy},get children(){return[(()=>{var O=el();return i(O,(()=>{var H=ne(()=>r().length>1);return()=>H()?"该数据集已下载到多个环境。请选择要删除的副本,此操作不可恢复。":ne(()=>!!c())()?["确认清理 ",(()=>{var D=ur();return i(D,()=>e.datasetId),D})()," 未完成的下载残留吗?请选择环境后继续。"]:["请选择要删除 ",(()=>{var D=ur();return i(D,()=>e.datasetId),D})()," 的环境。此操作不可恢复。"]})()),O})(),n(y,{get when(){return r().length>1},get children(){var O=tl();return O.$$click=b,i(O,()=>l()?"取消全选":"全选"),E(()=>O.disabled=e.busy),O}}),(()=>{var O=al();return i(O,n(ce,{get each(){return r()},children:H=>(()=>{var D=nl(),T=D.firstChild,G=T.nextSibling;return D.$$click=()=>v(H.key),i(T,()=>H.label,null),i(T,n(y,{get when(){return H.partial},get children(){return rl()}}),null),i(G,n(ce,{get each(){return H.paths},children:z=>(()=>{var P=sl();return i(P,z),P})()})),E(z=>{var P=s().has(H.key)?"":void 0,F=s().has(H.key),B=e.busy;return P!==z.e&&R(D,"data-selected",z.e=P),F!==z.t&&R(D,"aria-pressed",z.t=F),B!==z.a&&(D.disabled=z.a=B),z},{e:void 0,t:void 0,a:void 0}),D})()})),O})()]}}),N),Oe(L,"click",e.onClose,!0),Oe(W,"click",e.onConfirm,!0),i(W,(()=>{var O=ne(()=>!!e.busy);return()=>O()?"正在删除...":c()?"确认清理":"确认删除"})()),E(O=>{var H=e.busy,D=e.busy,T=g();return H!==O.e&&(M.disabled=O.e=H),D!==O.t&&(L.disabled=O.t=D),T!==O.a&&(W.disabled=O.a=T),O},{e:void 0,t:void 0,a:void 0}),u}})}})}At(["click","input"]);const St=`请按照下面的内容,使用OneScience,进行后续工作。
|
|
2
2
|
————————
|
|
3
|
-
`,
|
|
3
|
+
`,hn={training:{id:"training",label:"模型训练",description:"准备训练配置并做小规模验证"},inference:{id:"inference",label:"推理",description:"加载权重并完成推理验证"},"secondary-development":{id:"secondary-development",label:"二次开发",description:"改结构、做适配或扩展能力"},"parallel-expansion":{id:"parallel-expansion",label:"并行扩展",description:"改造为分布式或多卡训练"},"scientific-research":{id:"scientific-research",label:"科研开发",description:"选择论文或 GitHub 案例,复现并验证"}},dl=Object.values(hn),ul={training:`3)围绕 {title} 完成训练或微调准备与小规模验证:定位训练入口与配置方式,生成 training_config,优先 smoke training(小样本、少步数)。
|
|
4
4
|
能跑则跑通并汇报;不能跑则列出阻塞项与最小补齐方案。
|
|
5
5
|
验收:training_config、training_log、checkpoint(如有)、validation_summary。`,inference:`3)围绕 {title} 完成推理验证:定位可用 checkpoint 或预训练权重与推理入口,在样例输入上完成 smoke inference。
|
|
6
6
|
能跑则输出关键结果并汇报;不能跑则列出阻塞项与最小补齐方案。
|
|
@@ -8,13 +8,13 @@ import{d as At,a as n,aJ as bt,i,an as Oe,S as y,b as E,x as R,v as ne,c as S,z
|
|
|
8
8
|
完成后给出可验证的 smoke test 方案;未授权前不提交远程训练。
|
|
9
9
|
验收:改造说明、关键代码或配置变更、smoke test 方案或阻塞项清单。`,"parallel-expansion":`3)围绕 {title} 做并行扩展:在单卡可运行基础上,评估并推进多卡或分布式训练改造(如数据并行、模型并行、流水线并行等)。
|
|
10
10
|
若无先例或不适用,直接说明原因与阻塞项,不强行改造。
|
|
11
|
-
验收:并行方案说明、改造后的训练入口或配置、多卡 smoke test 方案或阻塞项清单。`};function Wt(e,t){const a=e?.trim();return a?`先执行 conda activate ${a},再执行 ${t}`:`执行 ${t}`}function
|
|
12
|
-
${jt(
|
|
11
|
+
验收:并行方案说明、改造后的训练入口或配置、多卡 smoke test 方案或阻塞项清单。`};function Wt(e,t){const a=e?.trim();return a?`先执行 conda activate ${a},再执行 ${t}`:`执行 ${t}`}function ml(e,t,a){const r=xs(e);if(t.kind==="ssh"){const s=a?.sshTarget;if(!s)return`1)运行环境为 SSH 远程(${t.targetName}),但该配置当前不可用;请先在运行环境选择框中重新选择环境,再下载模型。`;const d=`${s.remotePath}/${Xa}`;return`1)在远端 ${s.name} 上通过 ssh ${Wt(a?.condaEnv,`modelscope download --model ${e} --cache_dir ${d}`)}。
|
|
12
|
+
${jt(d)}
|
|
13
13
|
后续所有开发、训练与推理命令均在该远端环境执行,不要下载到本地。`}if(t.kind==="scnet"){const s=t.serverName??"scnet";return`1)SCNet 侧无法直接访问 ModelScope,不要在 SCNet 上执行 modelscope download。在当前项目目录${Wt(a?.condaEnv,r)}。
|
|
14
14
|
${jt(Xa)}
|
|
15
15
|
再通过 ${s} MCP 工具把下载得到的模型目录传输到 SCNet 侧工作目录。
|
|
16
16
|
后续所有开发、训练与推理命令均在 SCNet 环境执行。`}return`1)${Wt(a?.condaEnv,r)}。
|
|
17
|
-
${jt(Xa)}`}function
|
|
17
|
+
${jt(Xa)}`}function pn(e,t,a){const r=hn[e.developType].label,s=ml(e.modelId,t??{kind:"local"},a),d=ul[e.developType].replaceAll("{title}",e.title);return`${St}模型:${e.title} — ${e.copy}
|
|
18
18
|
|
|
19
19
|
${s}
|
|
20
20
|
下载得到的模型目录下的 README.md 为魔搭模型仓库自带说明,仅作依赖、示例命令、数据路径等补充参考,不要复述。
|
|
@@ -22,7 +22,7 @@ ${s}
|
|
|
22
22
|
2)开发类型:${r}。
|
|
23
23
|
优先依据 OneSkills 模型卡;未登记时再参考上文 README。
|
|
24
24
|
|
|
25
|
-
${
|
|
25
|
+
${d}`}function hl(e){return(t,a)=>pn(e,t,a)}function gn(e,t,a){if(t.kind==="ssh"){const r=a?.sshTarget;if(!r)return`${St}数据集:${e.title}(${e.datasetId})— 下载到 SSH 远端 ${t.targetName}
|
|
26
26
|
|
|
27
27
|
1)运行环境为 SSH 远程(${t.targetName}),但该配置当前不可用;请先在运行环境选择框中重新选择环境,再下载数据集。`;const s=`${r.remotePath}/${Da}`;return`${St}数据集:${e.title}(${e.datasetId})— 下载到 SSH 远端 ${r.name}
|
|
28
28
|
|
|
@@ -43,31 +43,31 @@ ${l}`}function dl(e){return(t,a)=>un(e,t,a)}function mn(e,t,a){if(t.kind==="ssh"
|
|
|
43
43
|
1)在当前项目目录${Wt(a?.condaEnv,er(e.datasetId))}。
|
|
44
44
|
${jt(Da)}
|
|
45
45
|
|
|
46
|
-
2)下载完成后核对文件数量与大小,汇报实际路径与核验结果。`}function ul(e){return(t,a)=>mn(e,t,a)}function ml(e,t,a){const r=Cs(e);return Ss(r,t,a),_s(r),Ps(e)}function hl(e,t,a){return ml(e,t,a)}const pl=[{id:"af3-paper-7pzb",label:"蛋白-DNA-小分子复合物 7PZB",description:"Figure 1a:CRP/FNR 转录调控蛋白、DNA 与 cyclic GMP 复合物",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/alphafold3` 的示例,使用 `bioscience` 虚拟环境,复现 AlphaFold 3 论文 Figure 1a 的 PDB 7PZB 案例。该复合物由 CRP/FNR 家族转录调控蛋白、DNA 和 cyclic GMP 组成。使用 RCSB PDB 的 7PZB 结构准备输入,保留 2 条蛋白、4 条 DNA 和 2 个 PCG 配体。完成结构预测后与实验结构叠合,生成完整复合物的 LDDT、GDT、结构叠合图和指标汇总表。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"},{id:"af3-paper-7pnm",label:"糖基化刺突蛋白-抗体复合物 7PNM",description:"Figure 1b:OC43 刺突蛋白三聚体、糖链与中和抗体复合物",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/alphafold3` 的示例,使用 `bioscience` 虚拟环境,复现 AlphaFold 3 论文 Figure 1b 的 PDB 7PNM 案例。该体系为 OC43 刺突蛋白三聚体、糖链和中和抗体复合物。按照 RCSB PDB 的 7PNM 沉积结构保留蛋白链、抗体链及共价糖基,完成预测后生成完整复合物的 LDDT、GDT、结构叠合图和指标汇总表。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"},{id:"af3-paper-7tql",label:"人 40S 翻译起始复合物 7TQL",description:"Figure 3a:人 40S 核糖体蛋白、rRNA 与起始因子复合物",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/alphafold3` 的示例,使用 `bioscience` 虚拟环境,复现 AlphaFold 3 论文 Figure 3a 的 PDB 7TQL 案例。输入应包含人 40S 核糖体蛋白、18S rRNA、起始 tRNA、eIF1A、eIF5B 及沉积结构中的必要组分,并核对总实体数为 43。完成预测后与 7TQL 实验结构叠合,生成完整复合物 LDDT、GDT、结构叠合图和指标汇总表。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"},{id:"af3-paper-protein-ligand",label:"四个蛋白-配体结合案例",description:"Figure 3:7AU2、7URD、7WUX、7QIE 蛋白-配体复合物",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/alphafold3` 的示例,使用 `bioscience` 虚拟环境,复现 AlphaFold 3 论文 Figure 3 中的四个蛋白-配体案例:7AU2 糖基化 EXTL3 二聚体、7URD PORCN-WNT3A-LGK974、7WUX AziU3/U2-底物复合物和 7QIE PI5P4K gamma-抑制剂复合物。使用相应的 RCSB PDB 结构准备输入,注意保留正确的蛋白链、糖基和目标配体。预测后进行口袋对齐,为每个案例生成配体 RMSD、口袋叠合图和指标汇总表。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"},{id:"af3-paper-7u8c",label:"Mesothelin-抗体复合物 7U8C",description:"Figure 3c:mesothelin C 端肽与单克隆抗体 15B6 复合物",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/alphafold3` 的示例,使用 `bioscience` 虚拟环境,复现 AlphaFold 3 论文 Figure 3c 的 PDB 7U8C 案例。该体系为 mesothelin C 端肽与单克隆抗体 15B6 的复合物,共包含 3 条蛋白实体。先用较少种子验证完整流程;算力允许时再按照论文的 1,000 个模型种子进行采样。使用实验结构生成抗原-抗体界面的 DockQ、界面叠合图和不同采样数量下的指标汇总表。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"}],gl=[{id:"evo2-github-brca1-vep",label:"BRCA1 zero-shot VEP",description:"参考与替代等位基因归一化和变异功能评分",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,对 Evo 2 原 GitHub 上的 BRCA1 zero-shot VEP 任务进行复现,包括参考与替代等位基因归一化和变异功能评分。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"},{id:"evo2-github-dna-generation",label:"DNA 序列生成与自动补全",description:"DNA prompt generation、autocompletion 与条件生成",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,对 Evo 2 原 GitHub 上的 generation notebook 进行复现,包括 DNA prompt generation、DNA autocompletion 和使用系统发育物种标签进行条件生成。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。\n\n请使用真实参考基因组进行一次 DNA 序列补全测试。测试对象为酿酒酵母 Saccharomyces cerevisiae S288C,参考组装为 R64,选择第 V 号染色体上的一个连续 4096 bp 片段。将该片段的前 2048 bp 作为 Evo2 已知输入,后 2048 bp 作为隐藏的真实答案。请根据前半段序列,预测其后紧接的 2048 bp DNA 序列。预测结果必须保持与输入序列连续,只允许使用 A、C、G、T、N,不要输出蛋白质序列、引物名称、解释文字或其他符号。测试完成后,将预测序列与参考基因组中真实的后 2048 bp 进行比较,统计序列长度、碱基组成和逐位碱基一致率。该测试仅用于评估 Evo2 的基因组序列建模能力,不能直接替代实验验证。"},{id:"evo2-github-exon-classifier",label:"外显子分类",description:"使用官方外显子分类器完成预测、AUROC 与可视化",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,对 Evo 2 原 GitHub 上的 exon classifier notebook 进行复现。使用原 notebook 提供的 `samplePositions.tsv` 和官方外显子分类器,完成外显子预测、AUROC 计算和结果可视化。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"},{id:"evo2-github-sparse-autoencoder",label:"稀疏自编码器特征解释",description:"在大肠杆菌参考基因组上提取并可视化 SAE 特征激活",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,对 Evo 2 原 GitHub 上的 sparse autoencoder notebook 进行复现。使用官方 SAE 模型,在 Escherichia coli K-12 MG1655 参考基因组上提取并可视化特征激活,重现 notebook 中的大肠杆菌示例区段。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"}],fl=[{id:"evo2-paper-brca1-saturation",label:"BRCA1 饱和突变功能效应预测",description:"Figure 3:coding / noncoding SNV 的零样本效应评分",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,复现 Evo 2 论文 Figure 3 的 BRCA1 变异效应预测。使用 Evo 2 官方 BRCA1 notebook 中的 GRCh37 chromosome 17 参考序列和 Findlay 等人的 BRCA1 saturation genome editing 数据,分别评价 coding SNV 和 noncoding SNV。生成 loss-of-function 与 functional/intermediate 变异的逐变异零样本分数、AUROC、AUPRC、ROC/PR 曲线和结果汇总表。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"},{id:"evo2-paper-start-codon",label:"起始密码子突变扫描",description:"Figure 2b:起始密码子上下游 SNV 扫描与序列特征",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,复现 Evo 2 论文 Figure 2b 的起始位点突变扫描。使用 Escherichia coli K-12 MG1655 和 Saccharomyces cerevisiae S288C 的参考基因组及 CDS 注释,对蛋白编码基因起始密码子上下游逐位点进行 SNV 扫描。重点展示 E. coli 的 dnaA、rpoB、recA、lacZ 和酵母 ACT1、CYC1、TDH3,观察起始密码子、三碱基周期、Shine-Dalgarno 区和 Kozak 区的似然变化。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"},{id:"evo2-paper-stop-codon",label:"不同遗传密码的终止密码子识别",description:"Figure 2e:标准遗传密码与 Code 4/6 终止密码子区分",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,复现 Evo 2 论文 Figure 2e 的遗传密码识别任务。选择采用标准遗传密码的 Escherichia coli K-12 MG1655、采用 Code 4 的 Mycoplasma pneumoniae 和采用 Code 6 的 Paramecium tetraurelia,分别测试 TAA、TAG 和 TGA 突变引起的似然变化,验证 Evo 2 是否能根据基因组上下文区分不同物种的终止密码子使用方式。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"}],bl=[{id:"mace-vasp-trajectory-training",label:"VASP 轨迹训练 MACE 势函数",description:"将 12C/13C VASP AIMD 轨迹转换为 MACE 数据集并训练势函数",prompt:"使用 OneScience 处理 0.9 V 下 Cu(111)-40H2O-K 电化学界面中 bent CO2 的 12C / 13C VASP AIMD 轨迹;体系为 H80 C1 O42 K1 Cu64,共 188 个原子。请将 VASP 输出转换为 MACE 数据集,训练 H/C/O/K/Cu 机器学习势函数,并输出训练脚本、模型文件、数据划分、测试误差和结果摘要。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"},{id:"mace-accuracy-validation",label:"MACE 模型精度验证",description:"在独立测试集上验证 MACE 能量和力的精度",prompt:"使用 OneScience 验证一个用于 0.9 V Cu(111)-40H2O-K bent CO2 界面的 MACE 模型;该模型由 12C / 13C VASP AIMD 轨迹训练得到,元素包含 H/C/O/K/Cu。请在独立测试集上计算能量和力的 MAE / RMSE,定位最大误差帧,生成误差分布图和模型选择依据,说明该 MACE 势函数能否作为 DFT 采样的近似替代。"},{id:"mace-long-time-md",label:"MACE-LAMMPS 长时间分子动力学",description:"将 MACE 模型转换为 LAMMPS 力场并运行长时程 MD",prompt:"使用 OneScience 将一个面向 0.9 V Cu(111)-40H2O-K bent CO2 界面的 H/C/O/K/Cu MACE 模型转换为 LAMMPS `pair_style mace` 可加载格式。请先完成 10 ps smoke test,确认模型加载、188 个原子、温度、能量、dump 和 restart 均正常;然后运行 100 ps / 300 ps MACE-LAMMPS 分子动力学,展示 MACE 如何把第一性原理采样扩展到更长时间尺度。"},{id:"mace-interface-evolution",label:"LAMMPS 轨迹中的界面结构演化分析",description:"分析 MACE-LAMMPS 轨迹中的界面结构演化",prompt:"使用 OneScience 分析 0.9 V Cu(111)-40H2O-K bent CO2 体系的 MACE-LAMMPS 轨迹;轨迹来自 H/C/O/K/Cu MACE 势函数驱动的长时间分子动力学。请统计 CO2 吸附取向、C-O 键长、O-C-O 角、C-Cu 距离、K+ 耦合、水供氢前驱结构和 CO2 是否脱附,并生成 PNG、CSV 和 Markdown 报告,展示 MACE 如何帮助研究者理解电化学界面结构演化。"},{id:"mace-enhanced-sampling",label:"MACE 增强采样与主动学习",description:"诊断 1 ns 扩展任务并给出主动学习建议",prompt:"使用 OneScience 诊断 0.9 V Cu(111)-40H2O-K bent CO2 体系的 1 ns MACE-LAMMPS 扩展任务;该任务使用 H/C/O/K/Cu MACE 势函数,可能出现 lost atoms、K+ 慢变量采样不足或训练域外构型。请比较 10 ps、100 ps、300 ps 与 1 ns 任务的结构和日志差异,定位风险来源,筛选需要回到 DFT 验证的边界帧,并给出下一轮主动学习或稳定性修复建议。"}],hn={AlphaFold3:[{label:"AlphaFold 3 论文案例",scenarios:pl}],Evo2:[{label:"Evo 2 原 GitHub 案例",scenarios:gl},{label:"Evo 2 论文案例",scenarios:fl}],MACE:[{label:"MACE 材料计算科研案例",scenarios:bl}]};function dr(e){if(e==="AlphaFold3")return"AlphaFold3";if(e==="Evo2"||e==="evo2")return"Evo2";if(e==="MACE")return"MACE"}function vl(e,t){const r=hn[e].flatMap(s=>s.scenarios).find(s=>s.id===t);if(!r)throw new Error(`未找到 ${e} 的科研开发场景: ${t}`);return r.prompt}var yl=o('<div class="os-task-radio-grid os-task-radio-grid-compact">'),wl=o("<div class=os-scenario-section>"),$l=o('<div class=os-modal-backdrop role=presentation><div class=os-upload-dialog><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><p class=os-section-copy></p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button type=button class="os-button os-button-primary">进入开发'),Cl=o("<label><input type=radio name=model-develop-type readonly><span><strong>"),Sl=o('<div class=os-scenario-group><div class=os-scenario-group-title></div><div class="os-task-radio-grid os-task-radio-grid-compact">'),_l=o("<label><input type=radio name=model-scenario readonly><span><strong>");function Pl(e){const[t,a]=S("training"),[r,s]=S(void 0),l=()=>e.scenarios&&e.scenarios.length>0,d=()=>l()?[]:ol.filter(g=>g.id!=="scientific-research"),c=()=>l()||t()==="scientific-research";return ge(()=>{e.open&&(a("training"),s(void 0))}),n(y,{get when(){return e.open},get children(){var g=$l(),v=g.firstChild,b=v.firstChild,u=b.firstChild,h=u.firstChild,f=h.nextSibling,w=u.nextSibling,_=b.nextSibling,p=_.nextSibling,M=p.firstChild,N=M.nextSibling;return v.$$click=L=>L.stopPropagation(),i(f,()=>e.title),Oe(w,"click",e.onClose,!0),i(_,()=>l()?"请选择科研复现场景,确认后将进入科研开发工作台并预填对应提示词。":"请选择开发方向,确认后将进入科研开发工作台并预填对应提示词。"),i(v,n(y,{get when(){return!l()},get children(){var L=yl();return i(L,n(ce,{get each(){return d()},children:W=>(()=>{var O=Cl(),H=O.firstChild,D=H.nextSibling,T=D.firstChild;return O.$$click=()=>a(W.id),i(T,()=>W.label),i(D,()=>W.description,null),E(()=>R(O,"data-selected",t()===W.id)),E(()=>H.checked=t()===W.id),O})()})),L}}),p),i(v,n(y,{get when(){return l()},get children(){var L=wl();return i(L,n(ce,{get each(){return e.scenarios},children:W=>(()=>{var O=Sl(),H=O.firstChild,D=H.nextSibling;return i(H,()=>W.label),i(D,n(ce,{get each(){return W.scenarios},children:T=>(()=>{var G=_l(),z=G.firstChild,P=z.nextSibling,F=P.firstChild;return G.$$click=()=>s(T.id),i(F,()=>T.label),i(P,()=>T.description,null),E(()=>R(G,"data-selected",r()===T.id)),E(()=>z.checked=r()===T.id),G})()})),O})()})),L}}),p),Oe(M,"click",e.onClose,!0),N.$$click=()=>{l()?e.onConfirm("scientific-research",r()):e.onConfirm(t(),r())},E(()=>N.disabled=c()&&!r()),g}})}At(["click"]);var kl=o("<a target=_blank rel=noreferrer>"),Dl=o("<button type=button aria-label=打开导航菜单 aria-controls=product-nav-mobile-drawer>"),Al=o('<div class="product-nav-mobile-backdrop fixed inset-0 z-[70] xl:hidden"aria-hidden=true>'),xl=o('<aside id=product-nav-mobile-drawer data-component=product-nav-mobile-drawer role=dialog aria-modal=true aria-label=导航菜单><div><span>导航</span><button type=button aria-label=关闭导航菜单></button></div><nav class="product-nav-mobile-drawer-nav flex-1 overflow-y-auto px-3 py-3">'),Ml=o("<p>"),Il=o('<details><summary></summary><div class="grid gap-1 pb-2">'),ur=o("<span>");const Fl={light:{trigger:"product-nav-mobile-trigger product-nav-mobile-trigger-light inline-flex items-center justify-center rounded-md border px-2.5 py-2 transition",panel:"product-nav-mobile-drawer product-nav-mobile-drawer-light",header:"product-nav-mobile-drawer-header product-nav-mobile-drawer-header-light border-b px-4 py-3",headerTitle:"text-14-bold",close:"product-nav-mobile-drawer-close rounded-md p-1 transition",section:"product-nav-mobile-drawer-section border-b py-2 last:border-b-0",summary:"product-nav-mobile-drawer-summary list-none cursor-pointer rounded-md px-2 py-2 text-14-bold",sectionCopy:"px-2 pb-2 text-12-regular leading-5",link:"product-nav-mobile-drawer-link rounded-md px-2 py-2 transition",linkTitle:"text-13-medium",linkCopy:"mt-1 block text-11-regular leading-4"},dark:{trigger:"product-nav-mobile-trigger product-nav-mobile-trigger-dark inline-flex items-center justify-center rounded-md border px-2.5 py-2 transition",panel:"product-nav-mobile-drawer product-nav-mobile-drawer-dark",header:"product-nav-mobile-drawer-header product-nav-mobile-drawer-header-dark border-b px-4 py-3",headerTitle:"text-14-bold",close:"product-nav-mobile-drawer-close rounded-md p-1 transition",section:"product-nav-mobile-drawer-section border-b py-2 last:border-b-0",summary:"product-nav-mobile-drawer-summary list-none cursor-pointer rounded-md px-2 py-2 text-14-bold",sectionCopy:"px-2 pb-2 text-12-regular leading-5",link:"product-nav-mobile-drawer-link rounded-md px-2 py-2 transition",linkTitle:"text-13-medium",linkCopy:"mt-1 block text-11-regular leading-4"}};function Tl(e){return e.href.startsWith("http://")||e.href.startsWith("https://")?(()=>{var t=kl();return Oe(t,"click",e.onClick,!0),i(t,()=>e.children),E(a=>{var r=e.href,s=e.class;return r!==a.e&&R(t,"href",a.e=r),s!==a.t&&mt(t,a.t=s),a},{e:void 0,t:void 0}),t})():n(Ze,{get href(){return e.href},get class(){return e.class},get onClick(){return e.onClick},get children(){return e.children}})}function El(e){const t=()=>e.variant??"light",[a,r]=S(!1),s=()=>r(!1),l=()=>Fl[t()];return ge(()=>{if(!a())return;const d=document.body.style.overflow;document.body.style.overflow="hidden";const c=g=>{g.key==="Escape"&&s()};window.addEventListener("keydown",c),ze(()=>{document.body.style.overflow=d,window.removeEventListener("keydown",c)})}),[(()=>{var d=Dl();return d.$$click=()=>r(!0),i(d,n(It,{name:"menu",size:"normal"})),E(c=>{var g=`xl:hidden ${l().trigger}`,v=a();return g!==c.e&&mt(d,c.e=g),v!==c.t&&R(d,"aria-expanded",c.t=v),c},{e:void 0,t:void 0}),d})(),n(y,{get when(){return a()},get children(){return n(bt,{get children(){return[(()=>{var d=Al();return d.$$click=s,d})(),(()=>{var d=xl(),c=d.firstChild,g=c.firstChild,v=g.nextSibling,b=c.nextSibling;return v.$$click=s,i(v,n(It,{name:"close",size:"normal"})),i(b,n(ce,{get each(){return e.nav},children:u=>(()=>{var h=Il(),f=h.firstChild,w=f.nextSibling;return i(f,()=>u.label),i(h,n(y,{get when(){return u.copy},get children(){var _=Ml();return i(_,()=>u.copy),E(()=>mt(_,`px-2 pb-2 text-12-regular leading-5 ${l().sectionCopy}`)),_}}),w),i(w,n(ce,{get each(){return u.items},children:_=>n(Tl,{get href(){return _.href},get class(){return l().link},onClick:s,get children(){return[(()=>{var p=ur();return i(p,()=>_.title),E(()=>mt(p,l().linkTitle)),p})(),(()=>{var p=ur();return i(p,()=>_.copy),E(()=>mt(p,`mt-1 block text-11-regular leading-4 ${l().linkCopy}`)),p})()]}})})),E(_=>{var p=`border-b py-2 last:border-b-0 ${l().section}`,M=`list-none cursor-pointer rounded-md px-2 py-2 ${l().summary}`;return p!==_.e&&mt(h,_.e=p),M!==_.t&&mt(f,_.t=M),_},{e:void 0,t:void 0}),h})()})),E(u=>{var h=t(),f=`fixed inset-y-0 right-0 z-[71] flex w-[min(22rem,calc(100vw-1.5rem))] flex-col border-l shadow-2xl xl:hidden ${l().panel}`,w=`flex items-center justify-between ${l().header}`,_=l().headerTitle,p=l().close;return h!==u.e&&R(d,"data-variant",u.e=h),f!==u.t&&mt(d,u.t=f),w!==u.a&&mt(c,u.a=w),_!==u.o&&mt(g,u.o=_),p!==u.i&&mt(v,u.i=p),u},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),d})()]}})}})]}At(["click"]);const mr=new Map;let li,hr=!1;function Ol(e){return!e||e===""?"/":e}function Nl(){hr||typeof window>"u"||(hr=!0,window.addEventListener("popstate",()=>{li=Ol(window.location.pathname)}))}function Rl(e,t){Nl();const a=()=>{const s=t();s&&mr.set(e,s.scrollTop)},r=()=>{const s=t();if(!s)return;const l=mr.get(e);l===void 0||l<=0||(s.scrollTop=l)};Ut(()=>{const s=t();if(!s)return;const l=li===e;l&&(li=void 0),l&&(r(),requestAnimationFrame(r)),s.addEventListener("scroll",a,{passive:!0}),ze(()=>{a(),s.removeEventListener("scroll",a)})})}function pn(e){const t=e.contractJson?.primitiveCategory;return typeof t=="string"&&t.trim()?t:e.primitiveType?Ds(e.primitiveType):"code-asset"}function gn(e){return e==="dataset"?[{id:"load-preview",label:"加载并预览数据",description:"生成读取该数据集、查看变量/shape 与样本切片的示例代码。",parameterFields:[{id:"timeRange",label:"时间范围",placeholder:"例如:2020-01 至 2020-12"},{id:"region",label:"空间范围",placeholder:"例如:东亚区域 / 全球"}]},{id:"build-datapipe",label:"接入 DataPipe",description:"把该数据集接入 OneScience DataPipe 或训练数据流水线。",parameterFields:[{id:"pipelineGoal",label:"流水线目标",placeholder:"例如:预训练样本生成 / 验证集切片"}]},{id:"schema-provenance",label:"梳理字段与来源",description:"整理 schema、变量说明、下载路径和 provenance 元数据。"}]:e==="model-inference"?[{id:"minimal-inference",label:"最小推理示例",description:"生成可运行的最小推理脚本,并说明输入输出张量形状。",parameterFields:[{id:"inputShape",label:"输入形状",placeholder:"例如:[1, 69, 721, 1440]"},{id:"checkpoint",label:"权重/checkpoint",placeholder:"例如:latest / 指定路径"}]},{id:"batch-inference",label:"批量推理任务",description:"设计批量推理或时空滚动预报任务,并给出运行参数建议。",parameterFields:[{id:"batchSize",label:"批量大小",placeholder:"例如:4"},{id:"horizon",label:"预报时效",placeholder:"例如:未来 10 天"}]},{id:"evaluate-output",label:"检查推理输出",description:"分析推理结果格式、后处理步骤和可视化方式。"}]:e==="model-training"?[{id:"training-scaffold",label:"训练脚本骨架",description:"生成训练入口、数据加载、优化器与 checkpoint 保存逻辑。",parameterFields:[{id:"epochs",label:"训练轮数",placeholder:"例如:50"},{id:"learningRate",label:"学习率",placeholder:"例如:1e-4"}]},{id:"finetune",label:"微调 / 继续训练",description:"基于已有 checkpoint 设计微调方案与数据划分。",parameterFields:[{id:"baseCheckpoint",label:"起始 checkpoint",placeholder:"例如:官方预训练权重"}]},{id:"review-config",label:"检查训练配置",description:"审查训练配置、资源需求和潜在风险点。"}]:e==="app"?[{id:"remote-workflow",label:"远程作业提交",description:"生成 HPC/集群作业提交方案,包含资源、队列和入口脚本。",parameterFields:[{id:"runtime",label:"运行资源",placeholder:"例如:CPU 32核 / GPU A100 x2"},{id:"queue",label:"队列/分区",placeholder:"例如:gpu / compute"}]},{id:"local-dry-run",label:"本地试运行",description:"给出本地或开发环境的试运行步骤与依赖检查清单。"},{id:"workflow-review",label:"检查工作流配置",description:"审查工作流输入输出、日志收集和失败恢复策略。",parameterFields:[{id:"entrypoint",label:"入口文件",placeholder:"例如:workflow.yaml / run.sh"}]}]:e==="evaluation"?[{id:"run-metrics",label:"运行评估指标",description:"生成评估脚本,并说明指标定义与输入输出。",parameterFields:[{id:"metricTarget",label:"评估对象",placeholder:"例如:预报场 RMSE / 结构预测 lDDT"}]},{id:"compare-runs",label:"对比实验结果",description:"设计不同实验/模型结果的对比分析与可视化。"}]:e==="data-processing"?[{id:"load-preview",label:"加载并预览数据",description:"生成读取数据源、查看变量/shape 与样本切片的示例代码。",parameterFields:[{id:"timeRange",label:"时间范围",placeholder:"例如:2020-01 至 2020-12"},{id:"region",label:"空间范围",placeholder:"例如:东亚区域 / 全球"}]},{id:"processing-pipeline",label:"数据处理流水线",description:"生成数据清洗、转换、切片或特征工程流水线。",parameterFields:[{id:"processingGoal",label:"处理目标",placeholder:"例如:归一化 / 重采样 / 特征提取"}]},{id:"validate-schema",label:"校验数据格式",description:"检查输入输出 schema、缺失值和批处理约束。"}]:[{id:"usage-example",label:"生成调用示例",description:"根据原语契约生成最小可运行示例,并说明集成方式。"},{id:"integrate-module",label:"集成到现有工程",description:"分析如何将该原语接入当前 OneScience 项目或模型代码。",parameterFields:[{id:"integrationTarget",label:"集成目标",placeholder:"例如:现有训练脚本 / 推理服务"}]}]}function Ll(e,t){const a=Ul(e),r=pn(a),s=gn(r).find(g=>g.id===t.scenarioId),l=a.intentTags?.filter(Boolean).slice(0,6).join(", ")||"未标注",d=Object.entries(t.parameters??{}).filter(([,g])=>g.trim()).map(([g,v])=>`${g}: ${v.trim()}`),c=t.notes?.trim();return`${St}请基于 AI 原语「${a.title}」进行科研开发。
|
|
46
|
+
2)下载完成后核对文件数量与大小,汇报实际路径与核验结果。`}function pl(e){return(t,a)=>gn(e,t,a)}function gl(e,t,a){const r=Ps(e);return ks(r,t,a),Ds(r),As(e)}function fl(e,t,a){return gl(e,t,a)}const bl=[{id:"af3-paper-7pzb",label:"蛋白-DNA-小分子复合物 7PZB",description:"Figure 1a:CRP/FNR 转录调控蛋白、DNA 与 cyclic GMP 复合物",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/alphafold3` 的示例,使用 `bioscience` 虚拟环境,复现 AlphaFold 3 论文 Figure 1a 的 PDB 7PZB 案例。该复合物由 CRP/FNR 家族转录调控蛋白、DNA 和 cyclic GMP 组成。使用 RCSB PDB 的 7PZB 结构准备输入,保留 2 条蛋白、4 条 DNA 和 2 个 PCG 配体。完成结构预测后与实验结构叠合,生成完整复合物的 LDDT、GDT、结构叠合图和指标汇总表。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"},{id:"af3-paper-7pnm",label:"糖基化刺突蛋白-抗体复合物 7PNM",description:"Figure 1b:OC43 刺突蛋白三聚体、糖链与中和抗体复合物",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/alphafold3` 的示例,使用 `bioscience` 虚拟环境,复现 AlphaFold 3 论文 Figure 1b 的 PDB 7PNM 案例。该体系为 OC43 刺突蛋白三聚体、糖链和中和抗体复合物。按照 RCSB PDB 的 7PNM 沉积结构保留蛋白链、抗体链及共价糖基,完成预测后生成完整复合物的 LDDT、GDT、结构叠合图和指标汇总表。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"},{id:"af3-paper-7tql",label:"人 40S 翻译起始复合物 7TQL",description:"Figure 3a:人 40S 核糖体蛋白、rRNA 与起始因子复合物",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/alphafold3` 的示例,使用 `bioscience` 虚拟环境,复现 AlphaFold 3 论文 Figure 3a 的 PDB 7TQL 案例。输入应包含人 40S 核糖体蛋白、18S rRNA、起始 tRNA、eIF1A、eIF5B 及沉积结构中的必要组分,并核对总实体数为 43。完成预测后与 7TQL 实验结构叠合,生成完整复合物 LDDT、GDT、结构叠合图和指标汇总表。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"},{id:"af3-paper-protein-ligand",label:"四个蛋白-配体结合案例",description:"Figure 3:7AU2、7URD、7WUX、7QIE 蛋白-配体复合物",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/alphafold3` 的示例,使用 `bioscience` 虚拟环境,复现 AlphaFold 3 论文 Figure 3 中的四个蛋白-配体案例:7AU2 糖基化 EXTL3 二聚体、7URD PORCN-WNT3A-LGK974、7WUX AziU3/U2-底物复合物和 7QIE PI5P4K gamma-抑制剂复合物。使用相应的 RCSB PDB 结构准备输入,注意保留正确的蛋白链、糖基和目标配体。预测后进行口袋对齐,为每个案例生成配体 RMSD、口袋叠合图和指标汇总表。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"},{id:"af3-paper-7u8c",label:"Mesothelin-抗体复合物 7U8C",description:"Figure 3c:mesothelin C 端肽与单克隆抗体 15B6 复合物",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/alphafold3` 的示例,使用 `bioscience` 虚拟环境,复现 AlphaFold 3 论文 Figure 3c 的 PDB 7U8C 案例。该体系为 mesothelin C 端肽与单克隆抗体 15B6 的复合物,共包含 3 条蛋白实体。先用较少种子验证完整流程;算力允许时再按照论文的 1,000 个模型种子进行采样。使用实验结构生成抗原-抗体界面的 DockQ、界面叠合图和不同采样数量下的指标汇总表。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"}],vl=[{id:"evo2-github-brca1-vep",label:"BRCA1 zero-shot VEP",description:"参考与替代等位基因归一化和变异功能评分",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,对 Evo 2 原 GitHub 上的 BRCA1 zero-shot VEP 任务进行复现,包括参考与替代等位基因归一化和变异功能评分。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"},{id:"evo2-github-dna-generation",label:"DNA 序列生成与自动补全",description:"DNA prompt generation、autocompletion 与条件生成",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,对 Evo 2 原 GitHub 上的 generation notebook 进行复现,包括 DNA prompt generation、DNA autocompletion 和使用系统发育物种标签进行条件生成。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。\n\n请使用真实参考基因组进行一次 DNA 序列补全测试。测试对象为酿酒酵母 Saccharomyces cerevisiae S288C,参考组装为 R64,选择第 V 号染色体上的一个连续 4096 bp 片段。将该片段的前 2048 bp 作为 Evo2 已知输入,后 2048 bp 作为隐藏的真实答案。请根据前半段序列,预测其后紧接的 2048 bp DNA 序列。预测结果必须保持与输入序列连续,只允许使用 A、C、G、T、N,不要输出蛋白质序列、引物名称、解释文字或其他符号。测试完成后,将预测序列与参考基因组中真实的后 2048 bp 进行比较,统计序列长度、碱基组成和逐位碱基一致率。该测试仅用于评估 Evo2 的基因组序列建模能力,不能直接替代实验验证。"},{id:"evo2-github-exon-classifier",label:"外显子分类",description:"使用官方外显子分类器完成预测、AUROC 与可视化",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,对 Evo 2 原 GitHub 上的 exon classifier notebook 进行复现。使用原 notebook 提供的 `samplePositions.tsv` 和官方外显子分类器,完成外显子预测、AUROC 计算和结果可视化。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"},{id:"evo2-github-sparse-autoencoder",label:"稀疏自编码器特征解释",description:"在大肠杆菌参考基因组上提取并可视化 SAE 特征激活",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,对 Evo 2 原 GitHub 上的 sparse autoencoder notebook 进行复现。使用官方 SAE 模型,在 Escherichia coli K-12 MG1655 参考基因组上提取并可视化特征激活,重现 notebook 中的大肠杆菌示例区段。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"}],yl=[{id:"evo2-paper-brca1-saturation",label:"BRCA1 饱和突变功能效应预测",description:"Figure 3:coding / noncoding SNV 的零样本效应评分",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,复现 Evo 2 论文 Figure 3 的 BRCA1 变异效应预测。使用 Evo 2 官方 BRCA1 notebook 中的 GRCh37 chromosome 17 参考序列和 Findlay 等人的 BRCA1 saturation genome editing 数据,分别评价 coding SNV 和 noncoding SNV。生成 loss-of-function 与 functional/intermediate 变异的逐变异零样本分数、AUROC、AUPRC、ROC/PR 曲线和结果汇总表。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"},{id:"evo2-paper-start-codon",label:"起始密码子突变扫描",description:"Figure 2b:起始密码子上下游 SNV 扫描与序列特征",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,复现 Evo 2 论文 Figure 2b 的起始位点突变扫描。使用 Escherichia coli K-12 MG1655 和 Saccharomyces cerevisiae S288C 的参考基因组及 CDS 注释,对蛋白编码基因起始密码子上下游逐位点进行 SNV 扫描。重点展示 E. coli 的 dnaA、rpoB、recA、lacZ 和酵母 ACT1、CYC1、TDH3,观察起始密码子、三碱基周期、Shine-Dalgarno 区和 Kozak 区的似然变化。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"},{id:"evo2-paper-stop-codon",label:"不同遗传密码的终止密码子识别",description:"Figure 2e:标准遗传密码与 Code 4/6 终止密码子区分",prompt:"参考本目录下 OneScience 仓库中 `examples/biosciences/evo2` 示例,使用 `bioscience-evo2` 虚拟环境,复现 Evo 2 论文 Figure 2e 的遗传密码识别任务。选择采用标准遗传密码的 Escherichia coli K-12 MG1655、采用 Code 4 的 Mycoplasma pneumoniae 和采用 Code 6 的 Paramecium tetraurelia,分别测试 TAA、TAG 和 TGA 突变引起的似然变化,验证 Evo 2 是否能根据基因组上下文区分不同物种的终止密码子使用方式。生成的代码、脚本以及产物放在单独的文件夹下,不要污染原代码仓。"}],wl=[{id:"mace-vasp-trajectory-training",label:"VASP 轨迹训练 MACE 势函数",description:"将 12C/13C VASP AIMD 轨迹转换为 MACE 数据集并训练势函数",prompt:"使用 OneScience 处理 0.9 V 下 Cu(111)-40H2O-K 电化学界面中 bent CO2 的 12C / 13C VASP AIMD 轨迹;体系为 H80 C1 O42 K1 Cu64,共 188 个原子。请将 VASP 输出转换为 MACE 数据集,训练 H/C/O/K/Cu 机器学习势函数,并输出训练脚本、模型文件、数据划分、测试误差和结果摘要。生成的代码、脚本和产物放在单独文件夹中,不要污染原代码仓。"},{id:"mace-accuracy-validation",label:"MACE 模型精度验证",description:"在独立测试集上验证 MACE 能量和力的精度",prompt:"使用 OneScience 验证一个用于 0.9 V Cu(111)-40H2O-K bent CO2 界面的 MACE 模型;该模型由 12C / 13C VASP AIMD 轨迹训练得到,元素包含 H/C/O/K/Cu。请在独立测试集上计算能量和力的 MAE / RMSE,定位最大误差帧,生成误差分布图和模型选择依据,说明该 MACE 势函数能否作为 DFT 采样的近似替代。"},{id:"mace-long-time-md",label:"MACE-LAMMPS 长时间分子动力学",description:"将 MACE 模型转换为 LAMMPS 力场并运行长时程 MD",prompt:"使用 OneScience 将一个面向 0.9 V Cu(111)-40H2O-K bent CO2 界面的 H/C/O/K/Cu MACE 模型转换为 LAMMPS `pair_style mace` 可加载格式。请先完成 10 ps smoke test,确认模型加载、188 个原子、温度、能量、dump 和 restart 均正常;然后运行 100 ps / 300 ps MACE-LAMMPS 分子动力学,展示 MACE 如何把第一性原理采样扩展到更长时间尺度。"},{id:"mace-interface-evolution",label:"LAMMPS 轨迹中的界面结构演化分析",description:"分析 MACE-LAMMPS 轨迹中的界面结构演化",prompt:"使用 OneScience 分析 0.9 V Cu(111)-40H2O-K bent CO2 体系的 MACE-LAMMPS 轨迹;轨迹来自 H/C/O/K/Cu MACE 势函数驱动的长时间分子动力学。请统计 CO2 吸附取向、C-O 键长、O-C-O 角、C-Cu 距离、K+ 耦合、水供氢前驱结构和 CO2 是否脱附,并生成 PNG、CSV 和 Markdown 报告,展示 MACE 如何帮助研究者理解电化学界面结构演化。"},{id:"mace-enhanced-sampling",label:"MACE 增强采样与主动学习",description:"诊断 1 ns 扩展任务并给出主动学习建议",prompt:"使用 OneScience 诊断 0.9 V Cu(111)-40H2O-K bent CO2 体系的 1 ns MACE-LAMMPS 扩展任务;该任务使用 H/C/O/K/Cu MACE 势函数,可能出现 lost atoms、K+ 慢变量采样不足或训练域外构型。请比较 10 ps、100 ps、300 ps 与 1 ns 任务的结构和日志差异,定位风险来源,筛选需要回到 DFT 验证的边界帧,并给出下一轮主动学习或稳定性修复建议。"}],fn={AlphaFold3:[{label:"AlphaFold 3 论文案例",scenarios:bl}],Evo2:[{label:"Evo 2 原 GitHub 案例",scenarios:vl},{label:"Evo 2 论文案例",scenarios:yl}],MACE:[{label:"MACE 材料计算科研案例",scenarios:wl}]};function hr(e){if(e==="AlphaFold3")return"AlphaFold3";if(e==="Evo2"||e==="evo2")return"Evo2";if(e==="MACE")return"MACE"}function $l(e,t){const r=fn[e].flatMap(s=>s.scenarios).find(s=>s.id===t);if(!r)throw new Error(`未找到 ${e} 的科研开发场景: ${t}`);return r.prompt}var Cl=o('<div class="os-task-radio-grid os-task-radio-grid-compact">'),Sl=o("<div class=os-scenario-section>"),_l=o('<div class=os-modal-backdrop role=presentation><div class=os-upload-dialog><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><p class=os-section-copy></p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button type=button class="os-button os-button-primary">进入开发'),Pl=o("<label><input type=radio name=model-develop-type readonly><span><strong>"),kl=o('<div class=os-scenario-group><div class=os-scenario-group-title></div><div class="os-task-radio-grid os-task-radio-grid-compact">'),Dl=o("<label><input type=radio name=model-scenario readonly><span><strong>");function Al(e){const[t,a]=_("training"),[r,s]=_(void 0),d=()=>e.scenarios&&e.scenarios.length>0,l=()=>d()?[]:dl.filter(g=>g.id!=="scientific-research"),c=()=>d()||t()==="scientific-research";return ge(()=>{e.open&&(a("training"),s(void 0))}),n(y,{get when(){return e.open},get children(){var g=_l(),v=g.firstChild,b=v.firstChild,u=b.firstChild,h=u.firstChild,f=h.nextSibling,w=u.nextSibling,C=b.nextSibling,p=C.nextSibling,M=p.firstChild,N=M.nextSibling;return v.$$click=L=>L.stopPropagation(),i(f,()=>e.title),Oe(w,"click",e.onClose,!0),i(C,()=>d()?"请选择科研复现场景,确认后将进入科研开发工作台并预填对应提示词。":"请选择开发方向,确认后将进入科研开发工作台并预填对应提示词。"),i(v,n(y,{get when(){return!d()},get children(){var L=Cl();return i(L,n(ce,{get each(){return l()},children:W=>(()=>{var O=Pl(),H=O.firstChild,D=H.nextSibling,T=D.firstChild;return O.$$click=()=>a(W.id),i(T,()=>W.label),i(D,()=>W.description,null),E(()=>R(O,"data-selected",t()===W.id)),E(()=>H.checked=t()===W.id),O})()})),L}}),p),i(v,n(y,{get when(){return d()},get children(){var L=Sl();return i(L,n(ce,{get each(){return e.scenarios},children:W=>(()=>{var O=kl(),H=O.firstChild,D=H.nextSibling;return i(H,()=>W.label),i(D,n(ce,{get each(){return W.scenarios},children:T=>(()=>{var G=Dl(),z=G.firstChild,P=z.nextSibling,F=P.firstChild;return G.$$click=()=>s(T.id),i(F,()=>T.label),i(P,()=>T.description,null),E(()=>R(G,"data-selected",r()===T.id)),E(()=>z.checked=r()===T.id),G})()})),O})()})),L}}),p),Oe(M,"click",e.onClose,!0),N.$$click=()=>{d()?e.onConfirm("scientific-research",r()):e.onConfirm(t(),r())},E(()=>N.disabled=c()&&!r()),g}})}At(["click"]);var xl=o("<a target=_blank rel=noreferrer>"),Ml=o("<button type=button aria-label=打开导航菜单 aria-controls=product-nav-mobile-drawer>"),Il=o('<div class="product-nav-mobile-backdrop fixed inset-0 z-[70] xl:hidden"aria-hidden=true>'),Fl=o('<aside id=product-nav-mobile-drawer data-component=product-nav-mobile-drawer role=dialog aria-modal=true aria-label=导航菜单><div><span>导航</span><button type=button aria-label=关闭导航菜单></button></div><nav class="product-nav-mobile-drawer-nav flex-1 overflow-y-auto px-3 py-3">'),Tl=o("<p>"),El=o('<details><summary></summary><div class="grid gap-1 pb-2">'),pr=o("<span>");const Ol={light:{trigger:"product-nav-mobile-trigger product-nav-mobile-trigger-light inline-flex items-center justify-center rounded-md border px-2.5 py-2 transition",panel:"product-nav-mobile-drawer product-nav-mobile-drawer-light",header:"product-nav-mobile-drawer-header product-nav-mobile-drawer-header-light border-b px-4 py-3",headerTitle:"text-14-bold",close:"product-nav-mobile-drawer-close rounded-md p-1 transition",section:"product-nav-mobile-drawer-section border-b py-2 last:border-b-0",summary:"product-nav-mobile-drawer-summary list-none cursor-pointer rounded-md px-2 py-2 text-14-bold",sectionCopy:"px-2 pb-2 text-12-regular leading-5",link:"product-nav-mobile-drawer-link rounded-md px-2 py-2 transition",linkTitle:"text-13-medium",linkCopy:"mt-1 block text-11-regular leading-4"},dark:{trigger:"product-nav-mobile-trigger product-nav-mobile-trigger-dark inline-flex items-center justify-center rounded-md border px-2.5 py-2 transition",panel:"product-nav-mobile-drawer product-nav-mobile-drawer-dark",header:"product-nav-mobile-drawer-header product-nav-mobile-drawer-header-dark border-b px-4 py-3",headerTitle:"text-14-bold",close:"product-nav-mobile-drawer-close rounded-md p-1 transition",section:"product-nav-mobile-drawer-section border-b py-2 last:border-b-0",summary:"product-nav-mobile-drawer-summary list-none cursor-pointer rounded-md px-2 py-2 text-14-bold",sectionCopy:"px-2 pb-2 text-12-regular leading-5",link:"product-nav-mobile-drawer-link rounded-md px-2 py-2 transition",linkTitle:"text-13-medium",linkCopy:"mt-1 block text-11-regular leading-4"}};function Nl(e){return e.href.startsWith("http://")||e.href.startsWith("https://")?(()=>{var t=xl();return Oe(t,"click",e.onClick,!0),i(t,()=>e.children),E(a=>{var r=e.href,s=e.class;return r!==a.e&&R(t,"href",a.e=r),s!==a.t&&mt(t,a.t=s),a},{e:void 0,t:void 0}),t})():n(Ze,{get href(){return e.href},get class(){return e.class},get onClick(){return e.onClick},get children(){return e.children}})}function Rl(e){const t=()=>e.variant??"light",[a,r]=_(!1),s=()=>r(!1),d=()=>Ol[t()];return ge(()=>{if(!a())return;const l=document.body.style.overflow;document.body.style.overflow="hidden";const c=g=>{g.key==="Escape"&&s()};window.addEventListener("keydown",c),Be(()=>{document.body.style.overflow=l,window.removeEventListener("keydown",c)})}),[(()=>{var l=Ml();return l.$$click=()=>r(!0),i(l,n(It,{name:"menu",size:"normal"})),E(c=>{var g=`xl:hidden ${d().trigger}`,v=a();return g!==c.e&&mt(l,c.e=g),v!==c.t&&R(l,"aria-expanded",c.t=v),c},{e:void 0,t:void 0}),l})(),n(y,{get when(){return a()},get children(){return n(bt,{get children(){return[(()=>{var l=Il();return l.$$click=s,l})(),(()=>{var l=Fl(),c=l.firstChild,g=c.firstChild,v=g.nextSibling,b=c.nextSibling;return v.$$click=s,i(v,n(It,{name:"close",size:"normal"})),i(b,n(ce,{get each(){return e.nav},children:u=>(()=>{var h=El(),f=h.firstChild,w=f.nextSibling;return i(f,()=>u.label),i(h,n(y,{get when(){return u.copy},get children(){var C=Tl();return i(C,()=>u.copy),E(()=>mt(C,`px-2 pb-2 text-12-regular leading-5 ${d().sectionCopy}`)),C}}),w),i(w,n(ce,{get each(){return u.items},children:C=>n(Nl,{get href(){return C.href},get class(){return d().link},onClick:s,get children(){return[(()=>{var p=pr();return i(p,()=>C.title),E(()=>mt(p,d().linkTitle)),p})(),(()=>{var p=pr();return i(p,()=>C.copy),E(()=>mt(p,`mt-1 block text-11-regular leading-4 ${d().linkCopy}`)),p})()]}})})),E(C=>{var p=`border-b py-2 last:border-b-0 ${d().section}`,M=`list-none cursor-pointer rounded-md px-2 py-2 ${d().summary}`;return p!==C.e&&mt(h,C.e=p),M!==C.t&&mt(f,C.t=M),C},{e:void 0,t:void 0}),h})()})),E(u=>{var h=t(),f=`fixed inset-y-0 right-0 z-[71] flex w-[min(22rem,calc(100vw-1.5rem))] flex-col border-l shadow-2xl xl:hidden ${d().panel}`,w=`flex items-center justify-between ${d().header}`,C=d().headerTitle,p=d().close;return h!==u.e&&R(l,"data-variant",u.e=h),f!==u.t&&mt(l,u.t=f),w!==u.a&&mt(c,u.a=w),C!==u.o&&mt(g,u.o=C),p!==u.i&&mt(v,u.i=p),u},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),l})()]}})}})]}At(["click"]);const gr=new Map;let li,fr=!1;function Ll(e){return!e||e===""?"/":e}function Ul(){fr||typeof window>"u"||(fr=!0,window.addEventListener("popstate",()=>{li=Ll(window.location.pathname)}))}function Gl(e,t){Ul();const a=()=>{const s=t();s&&gr.set(e,s.scrollTop)},r=()=>{const s=t();if(!s)return;const d=gr.get(e);d===void 0||d<=0||(s.scrollTop=d)};Ft(()=>{const s=t();if(!s)return;const d=li===e;d&&(li=void 0),d&&(r(),requestAnimationFrame(r)),s.addEventListener("scroll",a,{passive:!0}),Be(()=>{a(),s.removeEventListener("scroll",a)})})}function bn(e){const t=e.contractJson?.primitiveCategory;return typeof t=="string"&&t.trim()?t:e.primitiveType?Ms(e.primitiveType):"code-asset"}function vn(e){return e==="dataset"?[{id:"load-preview",label:"加载并预览数据",description:"生成读取该数据集、查看变量/shape 与样本切片的示例代码。",parameterFields:[{id:"timeRange",label:"时间范围",placeholder:"例如:2020-01 至 2020-12"},{id:"region",label:"空间范围",placeholder:"例如:东亚区域 / 全球"}]},{id:"build-datapipe",label:"接入 DataPipe",description:"把该数据集接入 OneScience DataPipe 或训练数据流水线。",parameterFields:[{id:"pipelineGoal",label:"流水线目标",placeholder:"例如:预训练样本生成 / 验证集切片"}]},{id:"schema-provenance",label:"梳理字段与来源",description:"整理 schema、变量说明、下载路径和 provenance 元数据。"}]:e==="model-inference"?[{id:"minimal-inference",label:"最小推理示例",description:"生成可运行的最小推理脚本,并说明输入输出张量形状。",parameterFields:[{id:"inputShape",label:"输入形状",placeholder:"例如:[1, 69, 721, 1440]"},{id:"checkpoint",label:"权重/checkpoint",placeholder:"例如:latest / 指定路径"}]},{id:"batch-inference",label:"批量推理任务",description:"设计批量推理或时空滚动预报任务,并给出运行参数建议。",parameterFields:[{id:"batchSize",label:"批量大小",placeholder:"例如:4"},{id:"horizon",label:"预报时效",placeholder:"例如:未来 10 天"}]},{id:"evaluate-output",label:"检查推理输出",description:"分析推理结果格式、后处理步骤和可视化方式。"}]:e==="model-training"?[{id:"training-scaffold",label:"训练脚本骨架",description:"生成训练入口、数据加载、优化器与 checkpoint 保存逻辑。",parameterFields:[{id:"epochs",label:"训练轮数",placeholder:"例如:50"},{id:"learningRate",label:"学习率",placeholder:"例如:1e-4"}]},{id:"finetune",label:"微调 / 继续训练",description:"基于已有 checkpoint 设计微调方案与数据划分。",parameterFields:[{id:"baseCheckpoint",label:"起始 checkpoint",placeholder:"例如:官方预训练权重"}]},{id:"review-config",label:"检查训练配置",description:"审查训练配置、资源需求和潜在风险点。"}]:e==="app"?[{id:"remote-workflow",label:"远程作业提交",description:"生成 HPC/集群作业提交方案,包含资源、队列和入口脚本。",parameterFields:[{id:"runtime",label:"运行资源",placeholder:"例如:CPU 32核 / GPU A100 x2"},{id:"queue",label:"队列/分区",placeholder:"例如:gpu / compute"}]},{id:"local-dry-run",label:"本地试运行",description:"给出本地或开发环境的试运行步骤与依赖检查清单。"},{id:"workflow-review",label:"检查工作流配置",description:"审查工作流输入输出、日志收集和失败恢复策略。",parameterFields:[{id:"entrypoint",label:"入口文件",placeholder:"例如:workflow.yaml / run.sh"}]}]:e==="evaluation"?[{id:"run-metrics",label:"运行评估指标",description:"生成评估脚本,并说明指标定义与输入输出。",parameterFields:[{id:"metricTarget",label:"评估对象",placeholder:"例如:预报场 RMSE / 结构预测 lDDT"}]},{id:"compare-runs",label:"对比实验结果",description:"设计不同实验/模型结果的对比分析与可视化。"}]:e==="data-processing"?[{id:"load-preview",label:"加载并预览数据",description:"生成读取数据源、查看变量/shape 与样本切片的示例代码。",parameterFields:[{id:"timeRange",label:"时间范围",placeholder:"例如:2020-01 至 2020-12"},{id:"region",label:"空间范围",placeholder:"例如:东亚区域 / 全球"}]},{id:"processing-pipeline",label:"数据处理流水线",description:"生成数据清洗、转换、切片或特征工程流水线。",parameterFields:[{id:"processingGoal",label:"处理目标",placeholder:"例如:归一化 / 重采样 / 特征提取"}]},{id:"validate-schema",label:"校验数据格式",description:"检查输入输出 schema、缺失值和批处理约束。"}]:[{id:"usage-example",label:"生成调用示例",description:"根据原语契约生成最小可运行示例,并说明集成方式。"},{id:"integrate-module",label:"集成到现有工程",description:"分析如何将该原语接入当前 OneScience 项目或模型代码。",parameterFields:[{id:"integrationTarget",label:"集成目标",placeholder:"例如:现有训练脚本 / 推理服务"}]}]}function Bl(e,t){const a=Hl(e),r=bn(a),s=vn(r).find(g=>g.id===t.scenarioId),d=a.intentTags?.filter(Boolean).slice(0,6).join(", ")||"未标注",l=Object.entries(t.parameters??{}).filter(([,g])=>g.trim()).map(([g,v])=>`${g}: ${v.trim()}`),c=t.notes?.trim();return`${St}请基于 AI 原语「${a.title}」进行科研开发。
|
|
47
47
|
|
|
48
48
|
原语 ID:${a.id??"未指定"}
|
|
49
49
|
原语类型:${a.primitiveType??"unknown"}
|
|
50
50
|
原语类别:${r}
|
|
51
51
|
领域:${a.domain??"未指定"}
|
|
52
52
|
能力描述:${a.description}
|
|
53
|
-
意图标签:${
|
|
53
|
+
意图标签:${d}
|
|
54
54
|
|
|
55
55
|
使用场景:${s?.label??t.scenarioId}
|
|
56
|
-
场景说明:${s?.description??"按原语契约完成对应开发任务。"}${
|
|
56
|
+
场景说明:${s?.description??"按原语契约完成对应开发任务。"}${l.length?`
|
|
57
57
|
|
|
58
58
|
我已确认的参数:
|
|
59
|
-
${
|
|
59
|
+
${l.map(g=>`- ${g}`).join(`
|
|
60
60
|
`)}`:""}${c?`
|
|
61
61
|
|
|
62
62
|
补充说明:
|
|
63
63
|
${c}`:""}
|
|
64
64
|
|
|
65
|
-
请根据该原语契约和上述场景生成可运行的 OneScience 方案,说明关键输入输出,并列出仍需我确认的运行参数。`}function Ul(e){return{id:e.id,title:e.title,description:e.description??e.copy??e.title,domain:e.domain,primitiveType:e.primitiveType,intentTags:e.intentTags??e.tags,contractJson:e.contractJson}}var Gl=o("<section class=os-primitive-dialog-section><h3>运行参数(可选)</h3><div class=os-primitive-dialog-grid>"),Bl=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-primitive-use-dialog"><div class=os-upload-head><div><div class=os-eyebrow>使用 AI 原语</div><h2></h2><p>选择使用场景并补充参数,提交后将预填到科研开发对话。</p></div><button type=button class="os-button os-button-secondary os-button-square">×</button></div><section class=os-primitive-dialog-section><h3></h3><div class=os-primitive-use-scenarios role=radiogroup aria-label=原语使用场景></div></section><label><span class=os-field-label>补充说明(可选)</span><textarea rows=3 placeholder=补充你的数据路径、实验目标、硬件环境或其它约束></textarea></label><details class=os-primitive-contract-preview><summary>预览将发送的提示词</summary><pre></pre></details><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>提交到科研开发'),Hl=o("<label class=os-primitive-use-scenario><input type=radio name=primitive-use-scenario><span class=os-primitive-use-scenario-body><strong></strong><span>"),ql=o("<label><span class=os-field-label></span><input>");function Ua(e){const t=j(()=>pn(e.item)),a=j(()=>gn(t())),[r,s]=S(""),[l,d]=S({}),[c,g]=S(""),v=j(()=>a().find(f=>f.id===r())),b=j(()=>{const f=r();return f?Ll(e.item,{scenarioId:f,parameters:l(),notes:c()}):""});ge(()=>{if(!e.open)return;const f=a()[0];s(f?.id??""),d({}),g("")});const u=(f,w)=>{d(_=>({..._,[f]:w}))},h=f=>{f.preventDefault();const w=b().trim();!w||!r()||e.onSubmit(w)};return n(y,{get when(){return e.open},get children(){var f=Bl(),w=f.firstChild,_=w.firstChild,p=_.firstChild,M=p.firstChild,N=M.nextSibling,L=p.nextSibling,W=_.nextSibling,O=W.firstChild,H=O.nextSibling,D=W.nextSibling,T=D.firstChild,G=T.nextSibling,z=D.nextSibling,P=z.firstChild,F=P.nextSibling,B=z.nextSibling,re=B.firstChild,de=re.nextSibling;return w.$$click=J=>J.stopPropagation(),w.addEventListener("submit",h),i(N,()=>e.item.title),Oe(L,"click",e.onClose,!0),i(O,()=>zl(t())),i(H,n(ce,{get each(){return a()},children:J=>(()=>{var we=Hl(),Y=we.firstChild,ve=Y.nextSibling,$e=ve.firstChild,ue=$e.nextSibling;return Y.addEventListener("change",()=>s(J.id)),i($e,()=>J.label),i(ue,()=>J.description),E(()=>R(we,"data-active",r()===J.id)),E(()=>Y.checked=r()===J.id),we})()})),i(w,n(y,{get when(){return v()?.parameterFields?.length},get children(){var J=Gl(),we=J.firstChild,Y=we.nextSibling;return i(Y,n(ce,{get each(){return v()?.parameterFields??[]},children:ve=>(()=>{var $e=ql(),ue=$e.firstChild,Z=ue.nextSibling;return i(ue,()=>ve.label),Z.$$input=te=>u(ve.id,te.currentTarget.value),E(()=>R(Z,"placeholder",ve.placeholder)),E(()=>Z.value=l()[ve.id]??""),$e})()})),J}}),D),G.$$input=J=>g(J.currentTarget.value),i(F,b),Oe(re,"click",e.onClose,!0),E(()=>de.disabled=!r()||!b().trim()),E(()=>G.value=c()),f}})}function zl(e){return e==="dataset"?"选择数据使用场景":e==="model-inference"?"选择模型推理场景":e==="model-training"?"选择模型训练场景":e==="app"?"选择应用运行场景":e==="evaluation"?"选择评估场景":e==="data-processing"?"选择数据处理场景":"选择使用场景"}At(["click","input"]);var jl=o("<ul class=os-field-select-menu role=listbox>"),Wl=o("<div class=os-field-select><button type=button class=os-field-select-trigger aria-haspopup=listbox><span class=os-field-select-value></span><span class=os-field-select-chevron aria-hidden=true>"),Vl=o("<li><button type=button role=option class=os-field-select-option>");const pr=e=>{const[t,a]=S(!1);let r;const s=()=>e.options.find(d=>d.value===e.value),l=()=>!e.value.trim();return ge(()=>{if(!t())return;const d=g=>{r?.contains(g.target)||a(!1)},c=g=>{g.key==="Escape"&&a(!1)};document.addEventListener("pointerdown",d),document.addEventListener("keydown",c),ze(()=>{document.removeEventListener("pointerdown",d),document.removeEventListener("keydown",c)})}),(()=>{var d=Wl(),c=d.firstChild,g=c.firstChild,v=r;return typeof v=="function"?pa(v,d):r=d,c.$$click=()=>a(b=>!b),i(g,()=>s()?.label??e.placeholder),i(d,n(y,{get when(){return t()},get children(){var b=jl();return i(b,n(ce,{get each(){return e.options},children:u=>(()=>{var h=Vl(),f=h.firstChild;return f.$$click=()=>{e.onChange(u.value),a(!1)},i(f,()=>u.label),E(w=>{var _=e.value===u.value,p=e.value===u.value?"true":void 0;return _!==w.e&&R(f,"aria-selected",w.e=_),p!==w.t&&R(f,"data-selected",w.t=p),w},{e:void 0,t:void 0}),h})()})),b}}),null),E(b=>{var u=l()?"true":void 0,h=t()?"true":void 0,f=t();return u!==b.e&&R(d,"data-empty",b.e=u),h!==b.t&&R(d,"data-open",b.t=h),f!==b.a&&R(c,"aria-expanded",b.a=f),b},{e:void 0,t:void 0,a:void 0}),d})()};At(["click"]);const Kl={storage:"storageLocation",schema:"dataSchema",access:"accessMethod",auth:"authHint",transformOutput:"transformOutput",checkpoint:"checkpointPath",resourceSync:"modelAcquisitionMethod",modelAcquisition:"modelAcquisitionMethod",framework:"framework",inputSpec:"inputSpec",outputSpec:"outputSpec",datasetIds:"datasetRefs",baseCheckpoint:"baseCheckpoint",outputCheckpointDir:"outputCheckpointDir",trainingConfig:"trainingConfigHint",runtime:"runtime",entrypoint:"entrypoint",resources:"resourceRequirements",image:"containerImage",inputs:"inputArtifacts",install:"installEntry",hardware:"hardwareSupport",language:"frameworkLanguage",adapterRepo:"adapterRepo"},Xl=/^将(?:资源库数据集|模型库资源|应用库资源)「[^」]+」接入为(?:可调用(?:数据加载|模型推理)原语|可执行科研工作流原语):\s*/;function Jl(e){return e.replace(Xl,"").trim()}function Ql(e){const t={};for(const a of e){const r=a.indexOf(":");if(r<=0)continue;const s=a.slice(0,r).trim(),l=a.slice(r+1).trim();if(!l)continue;const d=Kl[s];d&&(t[d]=l)}return t}function gr(e){const a=e.contractJson?.agentContract,r=a&&typeof a=="object"?a.resourceContract:void 0,s=r&&typeof r=="object"&&Array.isArray(r.requiredInputs)?r.requiredInputs.filter(l=>typeof l=="string"):[];return{title:e.title,description:Jl(e.description),domain:e.domain,primitiveType:e.primitiveType,intentTags:e.intentTags.join(", "),extraValues:Ql(s)}}function ci(e){return e.startsWith("seed-datasets-")?e.slice(14):e.startsWith("seed-models-")?e.slice(12):e.startsWith("seed-apps-")?e.slice(10):e}function fn(e){const t=e.resources?.[0],a=e.sourceResourceIds?.[0]??t?.id;if(t?.page==="datasets"||t?.page==="models"||t?.page==="apps")return t.page;if(a){if(a.startsWith("seed-datasets-")||a.startsWith("custom-datasets-"))return"datasets";if(a.startsWith("seed-models-")||a.startsWith("custom-models-"))return"models";if(a.startsWith("seed-apps-")||a.startsWith("custom-apps-"))return"apps"}}function Zl(e,t){if(e.status!=="draft")return!0;const a=e.resources?.[0],r=e.sourceResourceIds?.[0]??a?.id;if(!r||r.startsWith("custom-"))return!0;const s=fn(e);if(!s||s==="apps")return!0;const l=ci(r);if(s==="datasets")return!!ga(l);const d=t?.(l)??a?.title??e.title;return!!La(d)}function Yl(e){return e==="draft"?"从数据集、模型、应用等资源发布原语,草稿在此跟踪":e==="callable"?"可调用原语进入目录供智能体检索":"从数据集、模型、应用等资源发布原语,草稿在此跟踪;可调用原语进入目录供智能体检索。"}function ec(e){return e==="model.run"?"inference":e==="model.train"?"training":e==="data.load"?"dataset":e==="data.transform"?"data-processing":"default"}var fr=o("<span class=os-field-help>"),tc=o("<span class=os-field-help>暂无就绪的可训练数据。请先在 OneData 转化或发布,或手动填写 alr_ 编号。"),ac=o("<ul class=os-already-refs-list>"),ic=o('<div class=os-already-refs-field data-testid=already-dataset-refs-field><input placeholder="也可手动填写 alr_…(多个用逗号分隔)">'),rc=o("<li><label><input type=checkbox><span><strong></strong><small> · ");function bn(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function nc(e,t){const a=new Set(bn(e));return a.has(t)?a.delete(t):a.add(t),Array.from(a).join(",")}function sc(e){const t=ot(),[a,r]=S([]),[s,l]=S(""),d=()=>new Set(bn(e.value));return ge(()=>{const c=t.current?.http.url;if(!c||!ft()){r([]);return}Promise.all([tr(c,{scope:"mine"}),tr(c,{scope:"public"})]).then(([g,v])=>{const b=new Map;for(const u of[...g.items,...v.items])u.status==="ready"&&b.set(u.id,u);r(Array.from(b.values())),l("")}).catch(g=>{l(g instanceof Error?g.message:"无法加载可训练数据")})}),(()=>{var c=ic(),g=c.firstChild;return i(c,n(y,{get when(){return s()},get children(){var v=fr();return i(v,s),v}}),g),i(c,n(y,{get when(){return ne(()=>a().length===0)()&&!s()},get children(){return tc()}}),g),i(c,n(y,{get when(){return a().length>0},get children(){var v=ac();return i(v,n(ce,{get each(){return a()},children:b=>(()=>{var u=rc(),h=u.firstChild,f=h.firstChild,w=f.nextSibling,_=w.firstChild,p=_.nextSibling,M=p.firstChild;return f.addEventListener("change",()=>e.onChange(nc(e.value,b.id))),i(_,()=>b.title),i(p,()=>b.visibility==="public"?"已公开 OneData":"我的可训练数据",M),i(p,()=>b.id,null),E(()=>f.checked=d().has(b.id)),u})()})),v}}),g),g.$$input=v=>e.onChange(v.currentTarget.value),i(c,n(y,{get when(){return e.hint},get children(){var v=fr();return i(v,()=>e.hint),v}}),null),E(()=>g.value=e.value),c})()}At(["input"]);var oc=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-primitive-create-dialog">'),lc=o('<div class=os-upload-head><div><div class=os-eyebrow>发布 AI 原语</div><h2></h2><p>已预填可用字段,可按需修改后发布。</p></div><button type=button class="os-button os-button-secondary os-button-square">×'),cc=o("<div class=os-primitive-create-loading><span class=os-primitive-create-loading-dot aria-hidden=true></span>正在读取来源资源与草稿..."),Ya=o("<span>"),dc=o("<div class=os-primitive-source-tags>"),uc=o("<div class=os-primitive-create-field-row><label><span class=os-field-label>原语名称<span class=os-field-required aria-hidden=true> *</span></span><input></label><label><span class=os-field-label>原语类型</span><input value=框架原语 readonly tabindex=-1>"),br=o("<label><span class=os-field-label>能力描述<span class=os-field-required aria-hidden=true> *</span></span><textarea rows=3>"),mc=o('<div class=os-primitive-create-body><article class=os-primitive-source-card><div class=os-primitive-source-card-head><span class=os-primitive-source-card-label>来源资源</span><span class=os-source-badge data-source=onescience></span></div><h3></h3><div class=os-primitive-source-meta></div></article><section class="os-primitive-dialog-section os-primitive-create-section-primary"><h3></h3><p class=os-primitive-section-hint></p><label><span class=os-field-label>意图标签<span class=os-field-required aria-hidden=true> *</span></span><input></label></section><details class=os-primitive-contract-preview><summary>能力契约预览</summary><pre>'),hc=o('<div class="os-upload-actions os-primitive-dialog-actions"><span>发布成功后进入 AI原语 / 原语目录</span><div><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>'),pc=o("<span class=os-chip>"),gc=o("<label><span class=os-field-label>原语名称<span class=os-field-required aria-hidden=true> *</span></span><input>"),fc=o('<label><span class=os-field-label>原语类型</span><div class="os-field-select os-field-select-static"><div class=os-field-select-trigger aria-disabled=true><span class=os-field-select-value>'),bc=o("<div class=os-primitive-create-field-row><label><span class=os-field-label>领域<span class=os-field-required aria-hidden=true> *"),vc=o("<label><span class=os-field-label>原语类型<span class=os-field-required aria-hidden=true> *"),yc=o("<span class=os-field-required aria-hidden=true> *"),wc=o("<span class=os-field-help>"),$c=o("<label><span class=os-field-label>"),Cc=o("<input>"),Sc=o("<div class=os-upload-error>");const _c=["地球科学","生命科学","材料化学","流体仿真","其它"],xi=e=>{const[t,a]=S("当前资源"),[r,s]=S("地球科学"),[l,d]=S("OneScience"),[c,g]=S([]),[v,b]=S(),[u,h]=S(),[f,w]=S(""),[_,p]=S(""),[M,N]=S(""),[L,W]=S(""),[O,H]=S(""),[D,T]=S({}),[G,z]=S(!1),[P,F]=S(!1),[B,re]=S(""),[de,J]=S(),[we,Y]=S([]);let ve=0,$e=0;const ue=()=>ei({sourceFormat:u(),resourcePage:te(),resourceId:e.resourceId,resourceTitle:t(),sourceHint:e.sourceHint}),Z=me=>{W(me),T(ae=>({...$r(ae,me),...ue()}));const be=e.resourceId;if(!be){J(void 0);return}const I=++ve;gt(`${Ht(e.serverUrl)}/experimental/onescience/primitive/by-resource/${encodeURIComponent(be)}`).then(ae=>ae.ok?ae.json():void 0).then(ae=>{if(I!==ve)return;const oe=Mc(ae,me);if(!oe){J(void 0);return}J(oe.id);const q=gr(oe);q.title&&w(q.title),q.description&&p(q.description),q.intentTags&&H(q.intentTags),T(Q=>({...$r(Q,me),...ue(),...q.extraValues}))}).catch(()=>{})},te=j(()=>{if(e.resourcePage)return e.resourcePage;const me=v();if(me==="datasets"||me==="models"||me==="apps"||me==="frameworks")return me}),ee=()=>te()==="frameworks"?xa(e.resourceId,c()):M(),K=()=>{const me=L().trim();return te()==="apps"?"app.launch":te()==="frameworks"?"code.generate":me||Cr(te(),c())},X=j(()=>{const me=L().trim();return te()==="models"?me:te()==="apps"?"app.launch":te()==="frameworks"?"code.generate":me||Cr(te(),c())}),fe=j(()=>Vt(te(),X())),De=j(()=>vr(fe().primitiveTypes,we(),e.initialPrimitiveType)),He=j(()=>{if(te()!=="models")return;const me=De();if(me.length===1)return me[0].value}),Ke=j(()=>te()==="models"?!!L().trim():!0);ge(()=>{if(!e.open)return;const me=`${e.resourceId??""}:${e.draftId??""}:${e.initialPrimitiveType??""}`;re(""),J(e.draftId),w(""),p(""),N(""),Y([]),W(e.initialPrimitiveType?.trim()||(e.resourcePage==="apps"?"app.launch":"")||(e.resourcePage==="frameworks"?"code.generate":"")),H(""),T({});const be=e.resourceId;if(be&&(te()==="models"||te()==="datasets")){const q=++$e;gt(`${Ht(e.serverUrl)}/experimental/onescience/primitive/by-resource/${encodeURIComponent(be)}`).then(Q=>Q.ok?Q.json():void 0).then(Q=>{if(q!==$e||me!==`${e.resourceId??""}:${e.draftId??""}:${e.initialPrimitiveType??""}`)return;const ye=Ac(Q);Y(ye);const Ne=e.initialPrimitiveType?.trim()||L();if(Ne&&ye.includes(Ne)&&Ne!==e.initialPrimitiveType?.trim()){const Ee=vr(Vt(te(),Ne).primitiveTypes,ye,e.initialPrimitiveType)[0]?.value??"";te()==="models"?Z(Ee):W(Ee)}}).catch(()=>{})}const I=e.sourceHint;if((e.resourcePage==="frameworks"||I?.page==="frameworks")&&N(xa(e.resourceId,I?.tags??[])),I){a(I.title||"当前资源"),s(I.domain||""),d(I.provider||"OneScience"),g(I.tags??[]),b(I.page),h(I.format),I.page==="apps"&&W("app.launch"),I.page==="frameworks"&&(W("code.generate"),N(xa(e.resourceId,I.tags)));const q=ei({sourceFormat:I.format,sourceSize:I.size,sourceHref:I.href,resourcePage:I.page,resourceId:e.resourceId,resourceTitle:I.title,sourceHint:I});Object.keys(q).length&&T(q)}if(!be){z(!1);return}z(!0);const ae=q=>{if(!q||me!==`${e.resourceId??""}:${e.draftId??""}:${e.initialPrimitiveType??""}`)return;const Q=gr(q);Q.title&&w(Q.title),Q.description&&p(Q.description),Q.domain&&e.resourcePage!=="frameworks"&&N(Q.domain),Q.primitiveType&&!e.initialPrimitiveType?.trim()&&W(Q.primitiveType),Q.intentTags&&H(Q.intentTags),Object.keys(Q.extraValues).length&&T(ye=>({...ye,...Q.extraValues}))},oe=[];e.draftId&&oe.push(gt(`${Ht(e.serverUrl)}/experimental/onescience/primitive/${encodeURIComponent(e.draftId)}`).then(q=>q.ok?q.json():void 0)),Promise.all([gt(`${Ht(e.serverUrl)}/experimental/onescience/resource/${be}`).then(q=>q.ok?q.json():void 0),gt(`${Ht(e.serverUrl)}/experimental/onescience/primitive/by-resource/${encodeURIComponent(be)}`).then(q=>q.ok?q.json():void 0),...oe]).then(([q,Q,ye])=>{if(me!==`${e.resourceId??""}:${e.draftId??""}:${e.initialPrimitiveType??""}`)return;let Ne=ye;if(!Ne&&Q&&(Ne=(e.initialPrimitiveType==="model.train"?Q.training?.draft??Q.slots?.["model-training"]?.draft:e.initialPrimitiveType==="model.run"?Q.inference?.draft??Q.slots?.["model-inference"]?.draft:e.initialPrimitiveType==="data.transform"?Q.slots?.["data-processing"]?.draft:e.initialPrimitiveType==="data.load"?Q.slots?.dataset?.draft:void 0)??(e.initialPrimitiveType?.trim()?void 0:Q.inference?.draft??Q.training?.draft??Q.slots?.dataset?.draft??Q.slots?.["data-processing"]?.draft??Q.draft)),!e.draftId&&Ne?.id&&J(Ne.id),ae(Ne),!q)return;a(q.title||"当前资源"),s(q.domain||""),d(q.provider||"OneScience"),g(q.tags??[]),b(q.page),h(q.format),q.page==="apps"&&W("app.launch"),q.page==="frameworks"&&(W("code.generate"),N(q.domain?.trim()||xa(e.resourceId,q.tags??[])));const Ee=ei({sourceFormat:q.format,sourceSize:q.size,sourceHref:q.href,resourcePage:q.page==="datasets"||q.page==="models"||q.page==="apps"||q.page==="frameworks"?q.page:void 0,resourceId:be,resourceTitle:q.title,sourceHint:e.sourceHint});Object.keys(Ee).length&&T(Ye=>({...Ye,...Ee}))}).catch(()=>{}).finally(()=>z(!1))});const Ue=j(()=>O().split(",").map(me=>me.trim()).filter(Boolean)),tt=j(()=>Fc(K())),qe=j(()=>Nc({title:f(),description:_(),domain:ee(),resourceId:e.resourceId,primitiveType:K(),primitiveCategory:tt(),intentTags:Ue(),sourcePage:v(),sourceProvider:l(),sourceFormat:u()??c().find(me=>!me.includes(":"))??"unknown",resourcePage:te(),extraValues:D()})),lt=j(()=>({mode:Lc(te(),K()),page:v(),resourceId:e.resourceId,provider:l(),source:t()})),at=async()=>{const me=kc({title:f(),description:_(),domain:ee(),primitiveType:K(),intentTags:O(),extraValues:D(),resourcePage:te()});if(me){re(me);return}F(!0),re("");try{const be={title:f().trim(),description:_().trim(),domain:ee(),primitiveType:K(),intentTags:Ue(),contractJson:qe(),adapterJson:lt()};let I=de();if(!I){const oe=await gt(`${Ht(e.serverUrl)}/experimental/onescience/primitive`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...be,sourceResourceIds:e.resourceId?[e.resourceId]:void 0})});if(!oe.ok)throw new Error("创建失败");I=(await oe.json()).id}const ae=await Br(e.serverUrl,I,be);e.onSuccess?.(ae)}catch(be){re(be instanceof Error?be.message:"发布失败")}finally{F(!1)}};return n(y,{get when(){return e.open},get children(){return n(bt,{get children(){var me=oc(),be=me.firstChild;return be.$$click=I=>I.stopPropagation(),be.addEventListener("submit",I=>{I.preventDefault(),at()}),i(be,vt),me}})}});function vt(){return[(()=>{var me=lc(),be=me.firstChild,I=be.firstChild,ae=I.nextSibling,oe=be.nextSibling;return i(ae,()=>`从资源「${t()}」发布原语`),Oe(oe,"click",e.onClose,!0),me})(),(()=>{var me=mc(),be=me.firstChild,I=be.firstChild,ae=I.firstChild,oe=ae.nextSibling,q=I.nextSibling,Q=q.nextSibling,ye=be.nextSibling,Ne=ye.firstChild,Ee=Ne.nextSibling,Ye=Ee.nextSibling,nt=Ye.firstChild,Re=nt.nextSibling,Ce=ye.nextSibling,_e=Ce.firstChild,We=_e.nextSibling;return i(me,n(y,{get when(){return G()},get children(){return cc()}}),be),i(oe,()=>Pc(te())),i(q,t),i(Q,n(y,{get when(){return r()},get children(){var se=Ya();return i(se,r),se}}),null),i(Q,n(y,{get when(){return l()},get children(){var se=Ya();return i(se,l),se}}),null),i(Q,n(y,{get when(){return u()},get children(){var se=Ya();return i(se,u),se}}),null),i(be,n(y,{get when(){return c().length},get children(){var se=dc();return i(se,n(ce,{get each(){return c().slice(0,6)},children:Se=>(()=>{var Pe=pc();return i(Pe,Se),Pe})()})),se}}),null),i(Ne,()=>fe().sectionTitle),i(Ee,()=>fe().sectionHint),i(ye,n(y,{get when(){return te()==="frameworks"},get fallback(){return[(()=>{var se=gc(),Se=se.firstChild,Pe=Se.nextSibling;return Pe.$$input=xe=>w(xe.currentTarget.value),E(()=>R(Pe,"placeholder",fe().titlePlaceholder)),E(()=>Pe.value=f()),se})(),(()=>{var se=br(),Se=se.firstChild,Pe=Se.nextSibling;return Pe.$$input=xe=>p(xe.currentTarget.value),E(()=>R(Pe,"placeholder",fe().descriptionPlaceholder)),E(()=>Pe.value=_()),se})(),(()=>{var se=bc(),Se=se.firstChild;return Se.firstChild,i(Se,n(pr,{get value(){return M()},placeholder:"请选择领域",get options(){return _c.map(Pe=>({value:Pe,label:Pe}))},onChange:N}),null),i(se,n(y,{get when(){return te()==="apps"||He()},get fallback(){return(()=>{var Pe=vc();return Pe.firstChild,i(Pe,n(pr,{get value(){return L()},placeholder:"请选择原语类型",get options(){return De()},onChange:xe=>{if(te()==="models"){Z(xe);return}W(xe)}}),null),Pe})()},get children(){var Pe=fc(),xe=Pe.firstChild,ct=xe.nextSibling,dt=ct.firstChild,pt=dt.firstChild;return i(pt,()=>Gr(te()==="apps"?"app.launch":He())),Pe}}),null),se})()]},get children(){return[(()=>{var se=uc(),Se=se.firstChild,Pe=Se.firstChild,xe=Pe.nextSibling,ct=Se.nextSibling,dt=ct.firstChild;return dt.nextSibling,xe.$$input=pt=>w(pt.currentTarget.value),E(()=>R(xe,"placeholder",fe().titlePlaceholder)),E(()=>xe.value=f()),se})(),(()=>{var se=br(),Se=se.firstChild,Pe=Se.nextSibling;return Pe.$$input=xe=>p(xe.currentTarget.value),E(()=>R(Pe,"placeholder",fe().descriptionPlaceholder)),E(()=>Pe.value=_()),se})()]}}),Ye),Re.$$input=se=>H(se.currentTarget.value),i(ye,n(y,{get when(){return Ke()},get children(){return n(ce,{get each(){return fe().extraFields},children:se=>(()=>{var Se=$c(),Pe=Se.firstChild;return i(Pe,()=>se.label,null),i(Pe,n(y,{get when(){return se.required},get children(){return yc()}}),null),i(Se,n(y,{get when(){return se.key==="datasetRefs"},get fallback(){return(()=>{var xe=Cc();return xe.$$input=ct=>T(dt=>({...dt,[se.key]:ct.currentTarget.value})),E(()=>R(xe,"placeholder",se.placeholder)),E(()=>xe.value=D()[se.key]??""),xe})()},get children(){return n(sc,{get value(){return D()[se.key]??""},onChange:xe=>T(ct=>({...ct,[se.key]:xe})),get hint(){return se.hint}})}}),null),i(Se,n(y,{get when(){return ne(()=>!!se.hint)()&&se.key!=="datasetRefs"},get children(){var xe=wc();return i(xe,()=>se.hint),xe}}),null),Se})()})}}),null),i(We,()=>JSON.stringify({contractJson:qe(),adapterJson:lt()},null,2)),i(me,n(y,{get when(){return B()},children:se=>(()=>{var Se=Sc();return i(Se,se),Se})()}),null),E(()=>R(Re,"placeholder",fe().intentTagsPlaceholder)),E(()=>Re.value=O()),me})(),(()=>{var me=hc(),be=me.firstChild,I=be.nextSibling,ae=I.firstChild,oe=ae.nextSibling;return Oe(ae,"click",e.onClose,!0),i(oe,()=>P()?"发布中...":"发布原语"),E(q=>{var Q=P(),ye=P()||G();return Q!==q.e&&(ae.disabled=q.e=Q),ye!==q.t&&(oe.disabled=q.t=ye),q},{e:void 0,t:void 0}),me})()]}};function Pc(e){return e==="datasets"?"数据集":e==="models"?"模型库":e==="apps"?"应用库":e==="frameworks"?"AI框架":"OneHub 资源"}function Vt(e,t){const a=r=>({value:r,label:Gr(r)});if(e==="datasets"){const r=t==="data.transform";return{sectionTitle:r?"数据处理原语字段":"数据集原语字段",sectionHint:r?"说明 Agent 如何对该数据集做清洗、转换、切片或特征提取。":"说明 Agent 如何发现、加载并访问该数据集资源。",primitiveTypes:[{value:"data.load",label:"数据集原语"},{value:"data.transform",label:"数据处理原语"}],titlePlaceholder:r?"例如:ERA5 降水标准化原语":"例如:ERA5 数据加载原语",descriptionPlaceholder:r?"描述输入数据形态、转换步骤、输出 schema,以及 Agent 何时调用该处理原语":"描述数据覆盖范围、访问方式、输出格式,以及 Agent 何时应加载该数据集",intentTagsPlaceholder:r?"例如:normalize, regrid, netcdf":"例如:weather, reanalysis, netcdf",extraFields:[{key:"storageLocation",label:"获取方式",required:!1,placeholder:"例如:modelscope download --dataset OneScience/ERA5 --cache_dir modelscope/hub/datasets",hint:"说明 Agent 如何获取该数据集;资源卡片下载按钮可用时会预填 modelscope 下载命令。"},{key:"dataSchema",label:"数据模式",required:!1,placeholder:"例如:t2m,tp @ hourly, 0.25° 或 smiles,label 列",hint:"变量名、维度、分辨率或表结构,便于 Agent 生成 DataPipe 与切片逻辑。"},{key:"accessMethod",label:"访问方式",required:!1,placeholder:"例如:mount / download / api / zarr",hint:"说明 Agent 应挂载、下载还是通过 API 读取数据。"},{key:"authHint",label:"访问凭证",required:!1,placeholder:"例如:none / IAM role / API key / 内网 VPN",hint:"公开数据可填 none;需要鉴权时说明凭证类型,避免 Agent 静默失败。"},...r?[{key:"transformOutput",label:"转换输出",required:!1,placeholder:"例如:normalized zarr, regridded 1° netcdf",hint:"描述转换后的产物形态,便于 Agent 串联下游训练或评测。"}]:[]]}}if(e==="models"){const r=[{value:"model",label:"模型原语"},a("model.run"),a("model.train")];if(!t)return{sectionTitle:"模型原语字段",sectionHint:"请先选择原语类型:模型原语 / 模型推理原语 / 模型训练原语。",primitiveTypes:r,titlePlaceholder:"例如:GraphCast 模型原语",descriptionPlaceholder:"描述 Agent 何时使用该模型相关原语,以及它提供什么能力",intentTagsPlaceholder:"例如:forecasting, graph-model",extraFields:[]};const s=t==="model",l=t==="model.train",d={key:"modelAcquisitionMethod",label:"资源同步命令",required:!1,placeholder:"例如:modelscope download --model OneScience/FengWu --cache_dir modelscope/hub/models",hint:"智能体在确认调用本原语时执行该命令,将远程模型仓库同步至本地缓存;无需预设目录结构,同步完成后自行查阅仓库以确定权重路径与入口脚本。"};return{sectionTitle:s?"模型原语字段":l?"模型训练原语字段":"模型推理原语字段",sectionHint:s?"说明该模型资源本身的架构、能力边界与复用方式(非推理/训练调用契约)。":l?"说明 Agent 如何基于该模型资源发起训练、微调或 checkpoint 更新。":"说明 Agent 如何加载权重、准备输入并调用该模型完成推理。",primitiveTypes:r,titlePlaceholder:s?"例如:GraphCast 模型原语":l?"例如:GraphCast 微调原语":"例如:GraphCast 推理原语",descriptionPlaceholder:s?"描述模型架构、适用任务与资源定位,以及 Agent 何时选用该模型原语":l?"描述训练数据、优化目标、checkpoint 策略,以及 Agent 何时启动训练流程":"描述推理输入、输出变量、运行后端,以及 Agent 何时调用该模型",intentTagsPlaceholder:s?"例如:architecture, weather, foundation-model":l?"例如:fine-tune, checkpoint, pytorch":"例如:forecasting, graph-model, inference",extraFields:s?[d]:l?[d,{key:"datasetRefs",label:"可训练数据 / 已公开 OneData",required:!1,placeholder:"选择就绪的可训练数据,或多个 alr_ 用逗号分隔",hint:"仅可选择本人就绪的可训练数据,或已公开的 OneData。"},{key:"framework",label:"训练框架",required:!1,placeholder:"例如:PyTorch / JAX / TensorFlow",hint:"可从资源格式自动预填;帮助 Agent 选择正确的训练脚本模板。"},{key:"baseCheckpoint",label:"基座 Checkpoint",required:!1,placeholder:"例如:/models/graphcast/pretrained.ckpt",hint:"微调或继续训练时的起始权重路径。"},{key:"outputCheckpointDir",label:"Checkpoint 输出目录",required:!1,placeholder:"例如:/output/graphcast-finetune/",hint:"训练产物保存位置,便于 Agent 配置 checkpoint 回调。"},{key:"trainingConfigHint",label:"训练配置参考",required:!1,placeholder:"例如:configs/finetune.yaml 或 lr=1e-4, epochs=10",hint:"配置文件路径或关键超参摘要,减少 Agent 猜测训练参数。"}]:[d,{key:"checkpointPath",label:"Checkpoint 路径",required:!1,placeholder:"例如:/models/graphcast/checkpoint.ckpt 或 s3://bucket/weights/",hint:"推理时加载的权重或 checkpoint 路径;不填写则 Agent 从资源元数据推断。"},{key:"framework",label:"推理框架",required:!1,placeholder:"例如:PyTorch / JAX / ONNX / vLLM",hint:"可从资源格式自动预填;帮助 Agent 选择模型加载与推理后端。"},{key:"inputSpec",label:"输入说明",required:!1,placeholder:"例如:batch×lat×lon×channels float32, 6h lead time",hint:"张量形状、变量名或输入文件格式,便于 Agent 构造推理输入。"},{key:"outputSpec",label:"输出说明",required:!1,placeholder:"例如:forecast fields t2m,tp @ 24h lead",hint:"推理产物变量与格式,便于 Agent 对接评测或下游工作流。"},{key:"datasetRefs",label:"可训练数据 / 已公开 OneData",required:!1,placeholder:"选择就绪的可训练数据,或多个 alr_ 用逗号分隔",hint:"推理或评测时绑定的可训练数据 / 已公开 OneData。"}]}}return e==="apps"?{sectionTitle:"应用启动原语字段",sectionHint:"说明 Agent 如何启动该应用、准备运行环境并提交远程作业。",primitiveTypes:[a("app.launch")],titlePlaceholder:"例如:OpenFOAM 作业启动原语",descriptionPlaceholder:"描述 runtime、entrypoint、资源约束,以及 Agent 何时启动该应用",intentTagsPlaceholder:"例如:cfd, mpi, gpu",extraFields:[{key:"runtime",label:"运行环境",required:!1,placeholder:"例如:GPU / MPI / CPU",hint:"不填写时契约默认使用 CPU/GPU/MPI。"},{key:"entrypoint",label:"启动入口",required:!1,placeholder:"例如:workflow.yaml 或 python main.py",hint:"不填写时契约默认使用 workflow.yaml。"},{key:"resourceRequirements",label:"资源需求",required:!1,placeholder:"例如:4×GPU A100, 128GB RAM, 2 nodes MPI",hint:"帮助 Agent 在提交 HPC/云作业时选择合适队列与配额。"},{key:"containerImage",label:"容器/模块",required:!1,placeholder:"例如:openfoam:11 或 module load openfoam/11",hint:"容器镜像名或集群 module 加载命令。"},{key:"inputArtifacts",label:"输入产物",required:!1,placeholder:"例如:case/, config.yaml, mesh.su2",hint:"作业启动前必须准备的输入文件或目录。"}]}:e==="frameworks"?{sectionTitle:"AI框架原语字段",sectionHint:"说明 Agent 如何发现、安装和调用该 AI 框架,不区分科学领域。",primitiveTypes:[{value:"code.generate",label:"框架原语"}],titlePlaceholder:"例如:PyTorch 框架接入原语",descriptionPlaceholder:"描述框架能力、硬件支持、安装入口,以及 Agent 何时使用该框架",intentTagsPlaceholder:"例如:pytorch, training, gpu, dcu",extraFields:[{key:"installEntry",label:"安装入口",required:!1,placeholder:"例如:portal 安装链接或 GitHub 仓库地址",hint:"Agent 通过该入口完成框架安装或环境拉取。"},{key:"hardwareSupport",label:"硬件支持",required:!1,placeholder:"例如:CPU/GPU / GPU / CPU/GPU/TPU",hint:"可从资源格式自动预填;帮助 Agent 判断运行栈是否匹配。"},{key:"frameworkLanguage",label:"开发语言",required:!1,placeholder:"例如:Python / Python/CUDA / C++",hint:"可从资源规模字段自动预填;说明框架主要接口语言。"},{key:"adapterRepo",label:"适配仓库",required:!1,placeholder:"例如:https://github.com/flagos-ai/vllm-FL",hint:"FlagOS 或国产硬件适配仓库,便于 Agent 选择正确分支。"}]}:t==="data.load"||t==="data.transform"?Vt("datasets",t):t==="model.run"||t==="model.train"?Vt("models",t):t==="app.launch"||t==="workflow.compose"?Vt("apps",t):{sectionTitle:"核心字段",sectionHint:"补全原语名称、能力描述和意图标签,供 Agent 检索与调用。",primitiveTypes:[a("data.load"),a("model.run"),a("app.launch"),a("code.generate")],titlePlaceholder:"例如:ERA5 数据加载原语",descriptionPlaceholder:"描述 Agent 何时使用这个原语,以及它提供什么能力",intentTagsPlaceholder:"例如:weather_forecast, climate_model",extraFields:[]}}function kc(e){if(!e.title.trim()||!e.description.trim())return"请填写原语名称和能力描述";const t=e.resourcePage==="apps"?"app.launch":e.resourcePage==="frameworks"?"code.generate":e.primitiveType.trim();if(e.resourcePage!=="frameworks"&&!e.domain.trim())return"请选择领域";if(e.resourcePage==="frameworks"&&!e.domain.trim())return"无法识别框架分类";if(!t)return"请选择原语类型";if(!e.intentTags.split(",").map(r=>r.trim()).filter(Boolean).length)return"请至少填写一个意图标签";const a=Vt(e.resourcePage,t);for(const r of a.extraFields)if(r.required&&!e.extraValues[r.key]?.trim())return`请填写${r.label}`}function Dc(e){const t=e.extraValues??{},a=[...e.resourceId?[`resourceId: ${e.resourceId}`]:[],...e.domain.trim()?[`domain: ${e.domain.trim()}`]:[],`format: ${e.sourceFormat}`,`provider: ${e.sourceProvider}`,`primitiveType: ${e.primitiveType}`];if((e.resourcePage==="datasets"||e.primitiveType.startsWith("data."))&&(Qe(a,t,"storageLocation","storage"),Qe(a,t,"dataSchema","schema"),Qe(a,t,"accessMethod","access"),Qe(a,t,"authHint","auth"),e.primitiveType==="data.transform"&&Qe(a,t,"transformOutput","transformOutput")),e.resourcePage==="models"||e.primitiveType.startsWith("model.")){a.push(`modelId: ${e.resourceId??e.sourceProvider}`),Qe(a,t,"modelAcquisitionMethod","resourceSync"),Qe(a,t,"framework","framework");const r=t.datasetRefs?.split(",").map(s=>s.trim()).filter(Boolean)??[];r.length&&a.push(`datasetIds: ${r.join(", ")}`),e.primitiveType==="model.run"&&(Qe(a,t,"checkpointPath","checkpoint"),Qe(a,t,"inputSpec","inputSpec"),Qe(a,t,"outputSpec","outputSpec")),e.primitiveType==="model.train"&&(Qe(a,t,"baseCheckpoint","baseCheckpoint"),Qe(a,t,"outputCheckpointDir","outputCheckpointDir"),Qe(a,t,"trainingConfigHint","trainingConfig"))}return(e.resourcePage==="apps"||e.primitiveType==="app.launch"||e.primitiveType==="workflow.compose")&&(a.push(`runtime: ${t.runtime?.trim()||"CPU/GPU/MPI"}`),a.push(`entrypoint: ${t.entrypoint?.trim()||"workflow.yaml"}`),Qe(a,t,"resourceRequirements","resources"),Qe(a,t,"containerImage","image"),Qe(a,t,"inputArtifacts","inputs"),e.primitiveType==="workflow.compose"&&(Qe(a,t,"pipelineSteps","steps"),Qe(a,t,"dependencies","dependencies"))),e.resourcePage==="frameworks"&&(Qe(a,t,"installEntry","install"),Qe(a,t,"hardwareSupport","hardware"),Qe(a,t,"frameworkLanguage","language"),Qe(a,t,"adapterRepo","adapterRepo")),a}function Qe(e,t,a,r){const s=t[a]?.trim();s&&e.push(`${r}: ${s}`)}function Ac(e){if(!e)return[];const t=e.slots??{};return[...e.model?.callable||t.model?.callable?["model"]:[],...e.inference?.callable||t["model-inference"]?.callable?["model.run"]:[],...e.training?.callable||t["model-training"]?.callable?["model.train"]:[],...t.dataset?.callable?["data.load"]:[],...t["data-processing"]?.callable?["data.transform"]:[]]}function vr(e,t,a){const r=new Set(t),s=a?.trim();return e.filter(l=>l.value===s||!r.has(l.value))}const yr=["checkpointPath","inputSpec","outputSpec"],wr=["baseCheckpoint","outputCheckpointDir","trainingConfigHint"];function xc(e){return e==="model"?[...yr,...wr]:e==="model.train"?yr:wr}function $r(e,t){const a=new Set(xc(t));return Object.fromEntries(Object.entries(e).filter(([r])=>!a.has(r)))}function Mc(e,t){if(e){if(t==="model")return e.model?.draft??e.slots?.model?.draft;if(t==="model.train")return e.training?.draft??e.slots?.["model-training"]?.draft;if(t==="model.run")return e.inference?.draft??e.slots?.["model-inference"]?.draft}}function ei(e){const t=e.resourcePage;return t!=="datasets"&&t!=="models"&&t!=="apps"&&t!=="frameworks"?{}:Ic({format:e.sourceFormat,size:e.sourceSize,href:e.sourceHref,page:t,resourceId:e.resourceId,resourceTitle:e.resourceTitle,datasetDownloadMethod:e.sourceHint?.datasetDownloadMethod,modelDownloadMethod:e.sourceHint?.modelDownloadMethod})}function Ic(e){const t={};e.page==="models"&&e.format?.trim()&&(t.framework=e.format.trim()),e.page==="apps"&&e.format?.trim()&&(t.runtime=e.format.trim()),e.page==="frameworks"&&(e.format?.trim()&&(t.hardwareSupport=e.format.trim()),e.size?.trim()&&(t.frameworkLanguage=e.size.trim()),e.href?.trim()&&(t.installEntry=e.href.trim()));const a=e.datasetDownloadMethod?.trim()||(e.page==="datasets"&&e.resourceId?wi(e.resourceId):void 0);a&&(t.storageLocation=a);const r=e.modelDownloadMethod?.trim()||(e.page==="models"&&e.resourceTitle?$i(e.resourceTitle):void 0);return r&&(t.modelAcquisitionMethod=r),t}function Fc(e){return e==="data.load"?"dataset":e==="model.train"?"model-training":e==="model.run"?"model-inference":e==="model.evaluate"?"evaluation":e==="app.launch"||e==="workflow.compose"?"app":e==="data.transform"?"data-processing":"code-asset"}function Mi(e,t,a){if(t==="models"||a?.startsWith("model."))return e.modelAcquisitionMethod?.trim()||void 0;if(t==="datasets"||a?.startsWith("data."))return e.storageLocation?.trim()||void 0}function vn(e,t){return e==="models"||t?.startsWith("model.")?"resourceSync":"storage"}function Tc(e,t){return[`确认调用本原语后,先执行 resourceContract.requiredInputs 中的 ${vn(e,t)} 命令,将关联资源同步至本地缓存。`,"同步完成后读取本地资源内容(README、配置、示例脚本、权重或数据文件),再确定 checkpoint、schema、入口脚本等后续参数。","在资源已本地可用且用法明确前,不要跳过同步步骤直接假设路径、格式或运行入口。"]}function Ec(e){return e==="dataset"?["typed resource adapter result","dataset access metadata","schema/shape hints","provenance record"]:e==="model-inference"||e==="model-training"?["typed resource adapter result","model invocation plan","checkpoint/config metadata","provenance record"]:e==="app"?["typed resource adapter result","workflow launch plan","runtime resource requirements","provenance record"]:["typed resource adapter result","implementation reference","provenance record"]}function Oc(e){const t=Mi(e.extraValues??{},e.resourcePage,e.primitiveType),a=vn(e.resourcePage,e.primitiveType),r=t?[`执行 requiredInputs 中的 ${a} 命令,完成关联资源本地同步。`,"同步完成后浏览本地目录,识别 README、配置、示例脚本与权重/数据文件位置。"]:[];return e.category==="dataset"||e.category==="data-processing"?[...r,`读取数据集资源 ${e.title} 的 provider、format、href 和领域标签。`,"参考 datapipes 资产定义数据发现、下载/挂载、缓存和切片接口。","输出统一 DataPipe 结果,并附带 shape/schema/provenance 元数据。"]:e.category==="model-inference"||e.category==="model-training"?[...r,`基于本地资源内容确定模型 ${e.title} 的框架、checkpoint 路径、输入输出规格与运行约束。`,"参考 models 资产定义模型配置、checkpoint 加载、输入张量和后处理接口。","输出统一模型调用或训练计划,并记录资源版本与 provenance。"]:e.category==="app"?[...r,`读取应用资源 ${e.title} 的安装入口、运行环境、领域标签和 HPC/GPU 约束。`,"参考 contracts 资产约定科研工作流的输入、输出、日志和错误处理。","输出统一工作流启动计划,并记录 runtime、entrypoint 和资源需求。"]:[...r,`读取资源 ${e.title} 的 provider、format 和领域标签。`,"输出统一适配结果,并保留来源追踪信息。"]}function Nc(e){const t=e.title.toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80),a=Uc(e.primitiveCategory),r=Dc({resourceId:e.resourceId,domain:e.domain,primitiveType:e.primitiveType,sourceProvider:e.sourceProvider,sourceFormat:e.sourceFormat,resourcePage:e.resourcePage,extraValues:e.extraValues}),s=!!Mi(e.extraValues??{},e.resourcePage,e.primitiveType);return{id:t||"primitive",name:e.title,intent:e.intentTags,sourceResourceIds:e.resourceId?[e.resourceId]:[],primitiveType:e.primitiveType,primitiveCategory:e.primitiveCategory,agentContract:{assetSkill:a,purpose:e.description,usage:Rc({category:e.primitiveCategory,resourcePage:e.resourcePage,primitiveType:e.primitiveType,extraValues:e.extraValues}),resourceContract:{category:e.primitiveCategory,sourcePage:e.sourcePage??e.resourcePage??"resource",sourceResourceIds:e.resourceId?[e.resourceId]:[],requiredInputs:r,outputs:Ec(e.primitiveCategory),implementationSteps:Oc({category:e.primitiveCategory,title:e.title,resourcePage:e.resourcePage,primitiveType:e.primitiveType,extraValues:e.extraValues}),acceptanceCriteria:["契约必须保留 sourceResourceIds,并能回溯到资源库条目。",...s?["若 requiredInputs 含 resourceSync/storage,必须先完成资源同步并阅读本地资源后,再生成实现计划、代码或作业配置。"]:[],"缺少下载、权重或运行入口时,必须显式返回待补充字段。"]}}}}function Rc(e){const t=Mi(e.extraValues??{},e.resourcePage,e.primitiveType)?Tc(e.resourcePage,e.primitiveType):[];return e.category==="dataset"||e.category==="data-processing"?[...t,"按 resourceContract.requiredInputs 准备数据 resourceId、领域、格式和 provider。","生成 DataPipe 或数据接入代码前,先校验 primitiveType 与数据资源契约是否一致。"]:e.category==="model-inference"||e.category==="model-training"?[...t,"按 resourceContract.requiredInputs 准备 modelId、框架与推理/训练上下文。","生成模型调用或训练代码前,先校验 primitiveType 与模型资源契约是否一致。"]:e.category==="app"?[...t,"按 resourceContract.requiredInputs 准备 runtime、entrypoint 和 HPC/GPU 约束。","生成工作流或远程作业前,先校验 primitiveType 与应用资源契约是否一致。"]:[...t,"按 resourceContract.requiredInputs 准备资源 ID、领域标签、格式和运行上下文。","生成或修改代码前,先校验 primitiveType、primitiveCategory 与资源契约是否一致。"]}function Lc(e,t){return e==="datasets"||t==="data.load"||t==="data.transform"?"resource_reference":e==="models"||t.startsWith("model.")?"model_reference":e==="apps"||t==="app.launch"||t==="workflow.compose"?"hpc_workflow":e==="frameworks"?"code_reference":"resource_reference"}function Uc(e){return e==="app"||e==="model-inference"||e==="model-training"?"onescience-runtime":"onescience-coder"}function Cr(e,t){return e==="datasets"?"data.load":e==="frameworks"?"code.generate":e==="models"?t.some(a=>/train|fine-tune|微调/i.test(a))?"model.train":"model.run":e==="apps"?t.some(a=>/workflow|工作流/i.test(a))?"workflow.compose":"app.launch":t.some(a=>/data|dataset|数据/i.test(a))?"data.load":t.some(a=>/metric|评测|score/i.test(a))?"model.evaluate":t.some(a=>/app|应用/i.test(a))?"app.launch":t.some(a=>/operator|算子/i.test(a))?"operator.apply":"code.generate"}function xa(e,t=[]){const a=e??"";if(a.includes("framework-training"))return"训练框架";if(a.includes("framework-parallel"))return"并行训练";if(a.includes("framework-inference"))return"推理框架";const r=t.find(s=>s==="训练框架"||s==="并行训练"||s==="推理框架");return r||"其它"}function Ht(e){try{return new URL(e).toString().replace(/\/$/,"")}catch{return e.replace(/\/$/,"")}}At(["click","input"]);function Gc(e){const t=e?.trim();return t?`先执行 conda activate ${t},再`:"先"}function yn(e,t,a){const r=`安装说明请从官方文档获取并严格遵循:${e.href}
|
|
66
|
-
应用简介:${e.copy};目标平台:${e.format}。`,s="文档中的占位路径或缺失信息先向我确认。成功则汇报安装位置与验证结果,失败则列出阻塞项和最小修复方案。",
|
|
65
|
+
请根据该原语契约和上述场景生成可运行的 OneScience 方案,说明关键输入输出,并列出仍需我确认的运行参数。`}function Hl(e){return{id:e.id,title:e.title,description:e.description??e.copy??e.title,domain:e.domain,primitiveType:e.primitiveType,intentTags:e.intentTags??e.tags,contractJson:e.contractJson}}var ql=o("<section class=os-primitive-dialog-section><h3>运行参数(可选)</h3><div class=os-primitive-dialog-grid>"),zl=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-primitive-use-dialog"><div class=os-upload-head><div><div class=os-eyebrow>使用 AI 原语</div><h2></h2><p>选择使用场景并补充参数,提交后将预填到科研开发对话。</p></div><button type=button class="os-button os-button-secondary os-button-square">×</button></div><section class=os-primitive-dialog-section><h3></h3><div class=os-primitive-use-scenarios role=radiogroup aria-label=原语使用场景></div></section><label><span class=os-field-label>补充说明(可选)</span><textarea rows=3 placeholder=补充你的数据路径、实验目标、硬件环境或其它约束></textarea></label><details class=os-primitive-contract-preview><summary>预览将发送的提示词</summary><pre></pre></details><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>提交到科研开发'),jl=o("<label class=os-primitive-use-scenario><input type=radio name=primitive-use-scenario><span class=os-primitive-use-scenario-body><strong></strong><span>"),Wl=o("<label><span class=os-field-label></span><input>");function Ua(e){const t=j(()=>bn(e.item)),a=j(()=>vn(t())),[r,s]=_(""),[d,l]=_({}),[c,g]=_(""),v=j(()=>a().find(f=>f.id===r())),b=j(()=>{const f=r();return f?Bl(e.item,{scenarioId:f,parameters:d(),notes:c()}):""});ge(()=>{if(!e.open)return;const f=a()[0];s(f?.id??""),l({}),g("")});const u=(f,w)=>{l(C=>({...C,[f]:w}))},h=f=>{f.preventDefault();const w=b().trim();!w||!r()||e.onSubmit(w)};return n(y,{get when(){return e.open},get children(){var f=zl(),w=f.firstChild,C=w.firstChild,p=C.firstChild,M=p.firstChild,N=M.nextSibling,L=p.nextSibling,W=C.nextSibling,O=W.firstChild,H=O.nextSibling,D=W.nextSibling,T=D.firstChild,G=T.nextSibling,z=D.nextSibling,P=z.firstChild,F=P.nextSibling,B=z.nextSibling,re=B.firstChild,de=re.nextSibling;return w.$$click=J=>J.stopPropagation(),w.addEventListener("submit",h),i(N,()=>e.item.title),Oe(L,"click",e.onClose,!0),i(O,()=>Vl(t())),i(H,n(ce,{get each(){return a()},children:J=>(()=>{var we=jl(),Y=we.firstChild,ve=Y.nextSibling,$e=ve.firstChild,ue=$e.nextSibling;return Y.addEventListener("change",()=>s(J.id)),i($e,()=>J.label),i(ue,()=>J.description),E(()=>R(we,"data-active",r()===J.id)),E(()=>Y.checked=r()===J.id),we})()})),i(w,n(y,{get when(){return v()?.parameterFields?.length},get children(){var J=ql(),we=J.firstChild,Y=we.nextSibling;return i(Y,n(ce,{get each(){return v()?.parameterFields??[]},children:ve=>(()=>{var $e=Wl(),ue=$e.firstChild,Z=ue.nextSibling;return i(ue,()=>ve.label),Z.$$input=te=>u(ve.id,te.currentTarget.value),E(()=>R(Z,"placeholder",ve.placeholder)),E(()=>Z.value=d()[ve.id]??""),$e})()})),J}}),D),G.$$input=J=>g(J.currentTarget.value),i(F,b),Oe(re,"click",e.onClose,!0),E(()=>de.disabled=!r()||!b().trim()),E(()=>G.value=c()),f}})}function Vl(e){return e==="dataset"?"选择数据使用场景":e==="model-inference"?"选择模型推理场景":e==="model-training"?"选择模型训练场景":e==="app"?"选择应用运行场景":e==="evaluation"?"选择评估场景":e==="data-processing"?"选择数据处理场景":"选择使用场景"}At(["click","input"]);var Kl=o("<ul class=os-field-select-menu role=listbox>"),Xl=o("<div class=os-field-select><button type=button class=os-field-select-trigger aria-haspopup=listbox><span class=os-field-select-value></span><span class=os-field-select-chevron aria-hidden=true>"),Jl=o("<li><button type=button role=option class=os-field-select-option>");const br=e=>{const[t,a]=_(!1);let r;const s=()=>e.options.find(l=>l.value===e.value),d=()=>!e.value.trim();return ge(()=>{if(!t())return;const l=g=>{r?.contains(g.target)||a(!1)},c=g=>{g.key==="Escape"&&a(!1)};document.addEventListener("pointerdown",l),document.addEventListener("keydown",c),Be(()=>{document.removeEventListener("pointerdown",l),document.removeEventListener("keydown",c)})}),(()=>{var l=Xl(),c=l.firstChild,g=c.firstChild,v=r;return typeof v=="function"?pa(v,l):r=l,c.$$click=()=>a(b=>!b),i(g,()=>s()?.label??e.placeholder),i(l,n(y,{get when(){return t()},get children(){var b=Kl();return i(b,n(ce,{get each(){return e.options},children:u=>(()=>{var h=Jl(),f=h.firstChild;return f.$$click=()=>{e.onChange(u.value),a(!1)},i(f,()=>u.label),E(w=>{var C=e.value===u.value,p=e.value===u.value?"true":void 0;return C!==w.e&&R(f,"aria-selected",w.e=C),p!==w.t&&R(f,"data-selected",w.t=p),w},{e:void 0,t:void 0}),h})()})),b}}),null),E(b=>{var u=d()?"true":void 0,h=t()?"true":void 0,f=t();return u!==b.e&&R(l,"data-empty",b.e=u),h!==b.t&&R(l,"data-open",b.t=h),f!==b.a&&R(c,"aria-expanded",b.a=f),b},{e:void 0,t:void 0,a:void 0}),l})()};At(["click"]);const Ql={storage:"storageLocation",schema:"dataSchema",access:"accessMethod",auth:"authHint",transformOutput:"transformOutput",checkpoint:"checkpointPath",resourceSync:"modelAcquisitionMethod",modelAcquisition:"modelAcquisitionMethod",framework:"framework",inputSpec:"inputSpec",outputSpec:"outputSpec",datasetIds:"datasetRefs",baseCheckpoint:"baseCheckpoint",outputCheckpointDir:"outputCheckpointDir",trainingConfig:"trainingConfigHint",runtime:"runtime",entrypoint:"entrypoint",resources:"resourceRequirements",image:"containerImage",inputs:"inputArtifacts",install:"installEntry",hardware:"hardwareSupport",language:"frameworkLanguage",adapterRepo:"adapterRepo"},Zl=/^将(?:资源库数据集|模型库资源|应用库资源)「[^」]+」接入为(?:可调用(?:数据加载|模型推理)原语|可执行科研工作流原语):\s*/;function Yl(e){return e.replace(Zl,"").trim()}function ec(e){const t={};for(const a of e){const r=a.indexOf(":");if(r<=0)continue;const s=a.slice(0,r).trim(),d=a.slice(r+1).trim();if(!d)continue;const l=Ql[s];l&&(t[l]=d)}return t}function vr(e){const a=e.contractJson?.agentContract,r=a&&typeof a=="object"?a.resourceContract:void 0,s=r&&typeof r=="object"&&Array.isArray(r.requiredInputs)?r.requiredInputs.filter(d=>typeof d=="string"):[];return{title:e.title,description:Yl(e.description),domain:e.domain,primitiveType:e.primitiveType,intentTags:e.intentTags.join(", "),extraValues:ec(s)}}function ci(e){return e.startsWith("seed-datasets-")?e.slice(14):e.startsWith("seed-models-")?e.slice(12):e.startsWith("seed-apps-")?e.slice(10):e}function yn(e){const t=e.resources?.[0],a=e.sourceResourceIds?.[0]??t?.id;if(t?.page==="datasets"||t?.page==="models"||t?.page==="apps")return t.page;if(a){if(a.startsWith("seed-datasets-")||a.startsWith("custom-datasets-"))return"datasets";if(a.startsWith("seed-models-")||a.startsWith("custom-models-"))return"models";if(a.startsWith("seed-apps-")||a.startsWith("custom-apps-"))return"apps"}}function tc(e,t){if(e.status!=="draft")return!0;const a=e.resources?.[0],r=e.sourceResourceIds?.[0]??a?.id;if(!r||r.startsWith("custom-"))return!0;const s=yn(e);if(!s||s==="apps")return!0;const d=ci(r);if(s==="datasets")return!!ga(d);const l=t?.(d)??a?.title??e.title;return!!La(l)}function ac(e){return e==="draft"?"从数据集、模型、应用等资源发布原语,草稿在此跟踪":e==="callable"?"可调用原语进入目录供智能体检索":"从数据集、模型、应用等资源发布原语,草稿在此跟踪;可调用原语进入目录供智能体检索。"}function ic(e){return e==="model.run"?"inference":e==="model.train"?"training":e==="data.load"?"dataset":e==="data.transform"?"data-processing":"default"}var yr=o("<span class=os-field-help>"),rc=o("<span class=os-field-help>暂无就绪的可训练数据。请先在 OneData 转化或发布,或手动填写 alr_ 编号。"),nc=o("<ul class=os-already-refs-list>"),sc=o('<div class=os-already-refs-field data-testid=already-dataset-refs-field><input placeholder="也可手动填写 alr_…(多个用逗号分隔)">'),oc=o("<li><label><input type=checkbox><span><strong></strong><small> · ");function wn(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function lc(e,t){const a=new Set(wn(e));return a.has(t)?a.delete(t):a.add(t),Array.from(a).join(",")}function cc(e){const t=ot(),[a,r]=_([]),[s,d]=_(""),l=()=>new Set(wn(e.value));return ge(()=>{const c=t.current?.http.url;if(!c||!ft()){r([]);return}Promise.all([tr(c,{scope:"mine"}),tr(c,{scope:"public"})]).then(([g,v])=>{const b=new Map;for(const u of[...g.items,...v.items])u.status==="ready"&&b.set(u.id,u);r(Array.from(b.values())),d("")}).catch(g=>{d(g instanceof Error?g.message:"无法加载可训练数据")})}),(()=>{var c=sc(),g=c.firstChild;return i(c,n(y,{get when(){return s()},get children(){var v=yr();return i(v,s),v}}),g),i(c,n(y,{get when(){return ne(()=>a().length===0)()&&!s()},get children(){return rc()}}),g),i(c,n(y,{get when(){return a().length>0},get children(){var v=nc();return i(v,n(ce,{get each(){return a()},children:b=>(()=>{var u=oc(),h=u.firstChild,f=h.firstChild,w=f.nextSibling,C=w.firstChild,p=C.nextSibling,M=p.firstChild;return f.addEventListener("change",()=>e.onChange(lc(e.value,b.id))),i(C,()=>b.title),i(p,()=>b.visibility==="public"?"已公开 OneData":"我的可训练数据",M),i(p,()=>b.id,null),E(()=>f.checked=l().has(b.id)),u})()})),v}}),g),g.$$input=v=>e.onChange(v.currentTarget.value),i(c,n(y,{get when(){return e.hint},get children(){var v=yr();return i(v,()=>e.hint),v}}),null),E(()=>g.value=e.value),c})()}At(["input"]);var dc=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-primitive-create-dialog">'),uc=o('<div class=os-upload-head><div><div class=os-eyebrow>发布 AI 原语</div><h2></h2><p>已预填可用字段,可按需修改后发布。</p></div><button type=button class="os-button os-button-secondary os-button-square">×'),mc=o("<div class=os-primitive-create-loading><span class=os-primitive-create-loading-dot aria-hidden=true></span>正在读取来源资源与草稿..."),Ya=o("<span>"),hc=o("<div class=os-primitive-source-tags>"),pc=o("<div class=os-primitive-create-field-row><label><span class=os-field-label>原语名称<span class=os-field-required aria-hidden=true> *</span></span><input></label><label><span class=os-field-label>原语类型</span><input value=框架原语 readonly tabindex=-1>"),wr=o("<label><span class=os-field-label>能力描述<span class=os-field-required aria-hidden=true> *</span></span><textarea rows=3>"),gc=o('<div class=os-primitive-create-body><article class=os-primitive-source-card><div class=os-primitive-source-card-head><span class=os-primitive-source-card-label>来源资源</span><span class=os-source-badge data-source=onescience></span></div><h3></h3><div class=os-primitive-source-meta></div></article><section class="os-primitive-dialog-section os-primitive-create-section-primary"><h3></h3><p class=os-primitive-section-hint></p><label><span class=os-field-label>意图标签<span class=os-field-required aria-hidden=true> *</span></span><input></label></section><details class=os-primitive-contract-preview><summary>能力契约预览</summary><pre>'),fc=o('<div class="os-upload-actions os-primitive-dialog-actions"><span>发布成功后进入 AI原语 / 原语目录</span><div><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>'),bc=o("<span class=os-chip>"),vc=o("<label><span class=os-field-label>原语名称<span class=os-field-required aria-hidden=true> *</span></span><input>"),yc=o('<label><span class=os-field-label>原语类型</span><div class="os-field-select os-field-select-static"><div class=os-field-select-trigger aria-disabled=true><span class=os-field-select-value>'),wc=o("<div class=os-primitive-create-field-row><label><span class=os-field-label>领域<span class=os-field-required aria-hidden=true> *"),$c=o("<label><span class=os-field-label>原语类型<span class=os-field-required aria-hidden=true> *"),Cc=o("<span class=os-field-required aria-hidden=true> *"),Sc=o("<span class=os-field-help>"),_c=o("<label><span class=os-field-label>"),Pc=o("<input>"),kc=o("<div class=os-upload-error>");const Dc=["地球科学","生命科学","材料化学","流体仿真","其它"],xi=e=>{const[t,a]=_("当前资源"),[r,s]=_("地球科学"),[d,l]=_("OneScience"),[c,g]=_([]),[v,b]=_(),[u,h]=_(),[f,w]=_(""),[C,p]=_(""),[M,N]=_(""),[L,W]=_(""),[O,H]=_(""),[D,T]=_({}),[G,z]=_(!1),[P,F]=_(!1),[B,re]=_(""),[de,J]=_(),[we,Y]=_([]);let ve=0,$e=0;const ue=()=>ei({sourceFormat:u(),resourcePage:te(),resourceId:e.resourceId,resourceTitle:t(),sourceHint:e.sourceHint}),Z=me=>{W(me),T(ae=>({..._r(ae,me),...ue()}));const be=e.resourceId;if(!be){J(void 0);return}const I=++ve;gt(`${Ht(e.serverUrl)}/experimental/onescience/primitive/by-resource/${encodeURIComponent(be)}`).then(ae=>ae.ok?ae.json():void 0).then(ae=>{if(I!==ve)return;const oe=Tc(ae,me);if(!oe){J(void 0);return}J(oe.id);const q=vr(oe);q.title&&w(q.title),q.description&&p(q.description),q.intentTags&&H(q.intentTags),T(Q=>({..._r(Q,me),...ue(),...q.extraValues}))}).catch(()=>{})},te=j(()=>{if(e.resourcePage)return e.resourcePage;const me=v();if(me==="datasets"||me==="models"||me==="apps"||me==="frameworks")return me}),ee=()=>te()==="frameworks"?xa(e.resourceId,c()):M(),K=()=>{const me=L().trim();return te()==="apps"?"app.launch":te()==="frameworks"?"code.generate":me||Pr(te(),c())},X=j(()=>{const me=L().trim();return te()==="models"?me:te()==="apps"?"app.launch":te()==="frameworks"?"code.generate":me||Pr(te(),c())}),fe=j(()=>Vt(te(),X())),De=j(()=>$r(fe().primitiveTypes,we(),e.initialPrimitiveType)),qe=j(()=>{if(te()!=="models")return;const me=De();if(me.length===1)return me[0].value}),Ke=j(()=>te()==="models"?!!L().trim():!0);ge(()=>{if(!e.open)return;const me=`${e.resourceId??""}:${e.draftId??""}:${e.initialPrimitiveType??""}`;re(""),J(e.draftId),w(""),p(""),N(""),Y([]),W(e.initialPrimitiveType?.trim()||(e.resourcePage==="apps"?"app.launch":"")||(e.resourcePage==="frameworks"?"code.generate":"")),H(""),T({});const be=e.resourceId;if(be&&(te()==="models"||te()==="datasets")){const q=++$e;gt(`${Ht(e.serverUrl)}/experimental/onescience/primitive/by-resource/${encodeURIComponent(be)}`).then(Q=>Q.ok?Q.json():void 0).then(Q=>{if(q!==$e||me!==`${e.resourceId??""}:${e.draftId??""}:${e.initialPrimitiveType??""}`)return;const ye=Ic(Q);Y(ye);const Ne=e.initialPrimitiveType?.trim()||L();if(Ne&&ye.includes(Ne)&&Ne!==e.initialPrimitiveType?.trim()){const Ee=$r(Vt(te(),Ne).primitiveTypes,ye,e.initialPrimitiveType)[0]?.value??"";te()==="models"?Z(Ee):W(Ee)}}).catch(()=>{})}const I=e.sourceHint;if((e.resourcePage==="frameworks"||I?.page==="frameworks")&&N(xa(e.resourceId,I?.tags??[])),I){a(I.title||"当前资源"),s(I.domain||""),l(I.provider||"OneScience"),g(I.tags??[]),b(I.page),h(I.format),I.page==="apps"&&W("app.launch"),I.page==="frameworks"&&(W("code.generate"),N(xa(e.resourceId,I.tags)));const q=ei({sourceFormat:I.format,sourceSize:I.size,sourceHref:I.href,resourcePage:I.page,resourceId:e.resourceId,resourceTitle:I.title,sourceHint:I});Object.keys(q).length&&T(q)}if(!be){z(!1);return}z(!0);const ae=q=>{if(!q||me!==`${e.resourceId??""}:${e.draftId??""}:${e.initialPrimitiveType??""}`)return;const Q=vr(q);Q.title&&w(Q.title),Q.description&&p(Q.description),Q.domain&&e.resourcePage!=="frameworks"&&N(Q.domain),Q.primitiveType&&!e.initialPrimitiveType?.trim()&&W(Q.primitiveType),Q.intentTags&&H(Q.intentTags),Object.keys(Q.extraValues).length&&T(ye=>({...ye,...Q.extraValues}))},oe=[];e.draftId&&oe.push(gt(`${Ht(e.serverUrl)}/experimental/onescience/primitive/${encodeURIComponent(e.draftId)}`).then(q=>q.ok?q.json():void 0)),Promise.all([gt(`${Ht(e.serverUrl)}/experimental/onescience/resource/${be}`).then(q=>q.ok?q.json():void 0),gt(`${Ht(e.serverUrl)}/experimental/onescience/primitive/by-resource/${encodeURIComponent(be)}`).then(q=>q.ok?q.json():void 0),...oe]).then(([q,Q,ye])=>{if(me!==`${e.resourceId??""}:${e.draftId??""}:${e.initialPrimitiveType??""}`)return;let Ne=ye;if(!Ne&&Q&&(Ne=(e.initialPrimitiveType==="model.train"?Q.training?.draft??Q.slots?.["model-training"]?.draft:e.initialPrimitiveType==="model.run"?Q.inference?.draft??Q.slots?.["model-inference"]?.draft:e.initialPrimitiveType==="data.transform"?Q.slots?.["data-processing"]?.draft:e.initialPrimitiveType==="data.load"?Q.slots?.dataset?.draft:void 0)??(e.initialPrimitiveType?.trim()?void 0:Q.inference?.draft??Q.training?.draft??Q.slots?.dataset?.draft??Q.slots?.["data-processing"]?.draft??Q.draft)),!e.draftId&&Ne?.id&&J(Ne.id),ae(Ne),!q)return;a(q.title||"当前资源"),s(q.domain||""),l(q.provider||"OneScience"),g(q.tags??[]),b(q.page),h(q.format),q.page==="apps"&&W("app.launch"),q.page==="frameworks"&&(W("code.generate"),N(q.domain?.trim()||xa(e.resourceId,q.tags??[])));const Ee=ei({sourceFormat:q.format,sourceSize:q.size,sourceHref:q.href,resourcePage:q.page==="datasets"||q.page==="models"||q.page==="apps"||q.page==="frameworks"?q.page:void 0,resourceId:be,resourceTitle:q.title,sourceHint:e.sourceHint});Object.keys(Ee).length&&T(Ye=>({...Ye,...Ee}))}).catch(()=>{}).finally(()=>z(!1))});const Ue=j(()=>O().split(",").map(me=>me.trim()).filter(Boolean)),tt=j(()=>Oc(K())),ze=j(()=>Uc({title:f(),description:C(),domain:ee(),resourceId:e.resourceId,primitiveType:K(),primitiveCategory:tt(),intentTags:Ue(),sourcePage:v(),sourceProvider:d(),sourceFormat:u()??c().find(me=>!me.includes(":"))??"unknown",resourcePage:te(),extraValues:D()})),lt=j(()=>({mode:Bc(te(),K()),page:v(),resourceId:e.resourceId,provider:d(),source:t()})),at=async()=>{const me=xc({title:f(),description:C(),domain:ee(),primitiveType:K(),intentTags:O(),extraValues:D(),resourcePage:te()});if(me){re(me);return}F(!0),re("");try{const be={title:f().trim(),description:C().trim(),domain:ee(),primitiveType:K(),intentTags:Ue(),contractJson:ze(),adapterJson:lt()};let I=de();if(!I){const oe=await gt(`${Ht(e.serverUrl)}/experimental/onescience/primitive`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...be,sourceResourceIds:e.resourceId?[e.resourceId]:void 0})});if(!oe.ok)throw new Error("创建失败");I=(await oe.json()).id}const ae=await zr(e.serverUrl,I,be);e.onSuccess?.(ae)}catch(be){re(be instanceof Error?be.message:"发布失败")}finally{F(!1)}};return n(y,{get when(){return e.open},get children(){return n(bt,{get children(){var me=dc(),be=me.firstChild;return be.$$click=I=>I.stopPropagation(),be.addEventListener("submit",I=>{I.preventDefault(),at()}),i(be,vt),me}})}});function vt(){return[(()=>{var me=uc(),be=me.firstChild,I=be.firstChild,ae=I.nextSibling,oe=be.nextSibling;return i(ae,()=>`从资源「${t()}」发布原语`),Oe(oe,"click",e.onClose,!0),me})(),(()=>{var me=gc(),be=me.firstChild,I=be.firstChild,ae=I.firstChild,oe=ae.nextSibling,q=I.nextSibling,Q=q.nextSibling,ye=be.nextSibling,Ne=ye.firstChild,Ee=Ne.nextSibling,Ye=Ee.nextSibling,nt=Ye.firstChild,Re=nt.nextSibling,Ce=ye.nextSibling,_e=Ce.firstChild,We=_e.nextSibling;return i(me,n(y,{get when(){return G()},get children(){return mc()}}),be),i(oe,()=>Ac(te())),i(q,t),i(Q,n(y,{get when(){return r()},get children(){var se=Ya();return i(se,r),se}}),null),i(Q,n(y,{get when(){return d()},get children(){var se=Ya();return i(se,d),se}}),null),i(Q,n(y,{get when(){return u()},get children(){var se=Ya();return i(se,u),se}}),null),i(be,n(y,{get when(){return c().length},get children(){var se=hc();return i(se,n(ce,{get each(){return c().slice(0,6)},children:Se=>(()=>{var Pe=bc();return i(Pe,Se),Pe})()})),se}}),null),i(Ne,()=>fe().sectionTitle),i(Ee,()=>fe().sectionHint),i(ye,n(y,{get when(){return te()==="frameworks"},get fallback(){return[(()=>{var se=vc(),Se=se.firstChild,Pe=Se.nextSibling;return Pe.$$input=xe=>w(xe.currentTarget.value),E(()=>R(Pe,"placeholder",fe().titlePlaceholder)),E(()=>Pe.value=f()),se})(),(()=>{var se=wr(),Se=se.firstChild,Pe=Se.nextSibling;return Pe.$$input=xe=>p(xe.currentTarget.value),E(()=>R(Pe,"placeholder",fe().descriptionPlaceholder)),E(()=>Pe.value=C()),se})(),(()=>{var se=wc(),Se=se.firstChild;return Se.firstChild,i(Se,n(br,{get value(){return M()},placeholder:"请选择领域",get options(){return Dc.map(Pe=>({value:Pe,label:Pe}))},onChange:N}),null),i(se,n(y,{get when(){return te()==="apps"||qe()},get fallback(){return(()=>{var Pe=$c();return Pe.firstChild,i(Pe,n(br,{get value(){return L()},placeholder:"请选择原语类型",get options(){return De()},onChange:xe=>{if(te()==="models"){Z(xe);return}W(xe)}}),null),Pe})()},get children(){var Pe=yc(),xe=Pe.firstChild,ct=xe.nextSibling,dt=ct.firstChild,pt=dt.firstChild;return i(pt,()=>qr(te()==="apps"?"app.launch":qe())),Pe}}),null),se})()]},get children(){return[(()=>{var se=pc(),Se=se.firstChild,Pe=Se.firstChild,xe=Pe.nextSibling,ct=Se.nextSibling,dt=ct.firstChild;return dt.nextSibling,xe.$$input=pt=>w(pt.currentTarget.value),E(()=>R(xe,"placeholder",fe().titlePlaceholder)),E(()=>xe.value=f()),se})(),(()=>{var se=wr(),Se=se.firstChild,Pe=Se.nextSibling;return Pe.$$input=xe=>p(xe.currentTarget.value),E(()=>R(Pe,"placeholder",fe().descriptionPlaceholder)),E(()=>Pe.value=C()),se})()]}}),Ye),Re.$$input=se=>H(se.currentTarget.value),i(ye,n(y,{get when(){return Ke()},get children(){return n(ce,{get each(){return fe().extraFields},children:se=>(()=>{var Se=_c(),Pe=Se.firstChild;return i(Pe,()=>se.label,null),i(Pe,n(y,{get when(){return se.required},get children(){return Cc()}}),null),i(Se,n(y,{get when(){return se.key==="datasetRefs"},get fallback(){return(()=>{var xe=Pc();return xe.$$input=ct=>T(dt=>({...dt,[se.key]:ct.currentTarget.value})),E(()=>R(xe,"placeholder",se.placeholder)),E(()=>xe.value=D()[se.key]??""),xe})()},get children(){return n(cc,{get value(){return D()[se.key]??""},onChange:xe=>T(ct=>({...ct,[se.key]:xe})),get hint(){return se.hint}})}}),null),i(Se,n(y,{get when(){return ne(()=>!!se.hint)()&&se.key!=="datasetRefs"},get children(){var xe=Sc();return i(xe,()=>se.hint),xe}}),null),Se})()})}}),null),i(We,()=>JSON.stringify({contractJson:ze(),adapterJson:lt()},null,2)),i(me,n(y,{get when(){return B()},children:se=>(()=>{var Se=kc();return i(Se,se),Se})()}),null),E(()=>R(Re,"placeholder",fe().intentTagsPlaceholder)),E(()=>Re.value=O()),me})(),(()=>{var me=fc(),be=me.firstChild,I=be.nextSibling,ae=I.firstChild,oe=ae.nextSibling;return Oe(ae,"click",e.onClose,!0),i(oe,()=>P()?"发布中...":"发布原语"),E(q=>{var Q=P(),ye=P()||G();return Q!==q.e&&(ae.disabled=q.e=Q),ye!==q.t&&(oe.disabled=q.t=ye),q},{e:void 0,t:void 0}),me})()]}};function Ac(e){return e==="datasets"?"数据集":e==="models"?"模型库":e==="apps"?"应用库":e==="frameworks"?"AI框架":"OneHub 资源"}function Vt(e,t){const a=r=>({value:r,label:qr(r)});if(e==="datasets"){const r=t==="data.transform";return{sectionTitle:r?"数据处理原语字段":"数据集原语字段",sectionHint:r?"说明 Agent 如何对该数据集做清洗、转换、切片或特征提取。":"说明 Agent 如何发现、加载并访问该数据集资源。",primitiveTypes:[{value:"data.load",label:"数据集原语"},{value:"data.transform",label:"数据处理原语"}],titlePlaceholder:r?"例如:ERA5 降水标准化原语":"例如:ERA5 数据加载原语",descriptionPlaceholder:r?"描述输入数据形态、转换步骤、输出 schema,以及 Agent 何时调用该处理原语":"描述数据覆盖范围、访问方式、输出格式,以及 Agent 何时应加载该数据集",intentTagsPlaceholder:r?"例如:normalize, regrid, netcdf":"例如:weather, reanalysis, netcdf",extraFields:[{key:"storageLocation",label:"获取方式",required:!1,placeholder:"例如:modelscope download --dataset OneScience/ERA5 --cache_dir modelscope/hub/datasets",hint:"说明 Agent 如何获取该数据集;资源卡片下载按钮可用时会预填 modelscope 下载命令。"},{key:"dataSchema",label:"数据模式",required:!1,placeholder:"例如:t2m,tp @ hourly, 0.25° 或 smiles,label 列",hint:"变量名、维度、分辨率或表结构,便于 Agent 生成 DataPipe 与切片逻辑。"},{key:"accessMethod",label:"访问方式",required:!1,placeholder:"例如:mount / download / api / zarr",hint:"说明 Agent 应挂载、下载还是通过 API 读取数据。"},{key:"authHint",label:"访问凭证",required:!1,placeholder:"例如:none / IAM role / API key / 内网 VPN",hint:"公开数据可填 none;需要鉴权时说明凭证类型,避免 Agent 静默失败。"},...r?[{key:"transformOutput",label:"转换输出",required:!1,placeholder:"例如:normalized zarr, regridded 1° netcdf",hint:"描述转换后的产物形态,便于 Agent 串联下游训练或评测。"}]:[]]}}if(e==="models"){const r=[{value:"model",label:"模型原语"},a("model.run"),a("model.train")];if(!t)return{sectionTitle:"模型原语字段",sectionHint:"请先选择原语类型:模型原语 / 模型推理原语 / 模型训练原语。",primitiveTypes:r,titlePlaceholder:"例如:GraphCast 模型原语",descriptionPlaceholder:"描述 Agent 何时使用该模型相关原语,以及它提供什么能力",intentTagsPlaceholder:"例如:forecasting, graph-model",extraFields:[]};const s=t==="model",d=t==="model.train",l={key:"modelAcquisitionMethod",label:"资源同步命令",required:!1,placeholder:"例如:modelscope download --model OneScience/FengWu --cache_dir modelscope/hub/models",hint:"智能体在确认调用本原语时执行该命令,将远程模型仓库同步至本地缓存;无需预设目录结构,同步完成后自行查阅仓库以确定权重路径与入口脚本。"};return{sectionTitle:s?"模型原语字段":d?"模型训练原语字段":"模型推理原语字段",sectionHint:s?"说明该模型资源本身的架构、能力边界与复用方式(非推理/训练调用契约)。":d?"说明 Agent 如何基于该模型资源发起训练、微调或 checkpoint 更新。":"说明 Agent 如何加载权重、准备输入并调用该模型完成推理。",primitiveTypes:r,titlePlaceholder:s?"例如:GraphCast 模型原语":d?"例如:GraphCast 微调原语":"例如:GraphCast 推理原语",descriptionPlaceholder:s?"描述模型架构、适用任务与资源定位,以及 Agent 何时选用该模型原语":d?"描述训练数据、优化目标、checkpoint 策略,以及 Agent 何时启动训练流程":"描述推理输入、输出变量、运行后端,以及 Agent 何时调用该模型",intentTagsPlaceholder:s?"例如:architecture, weather, foundation-model":d?"例如:fine-tune, checkpoint, pytorch":"例如:forecasting, graph-model, inference",extraFields:s?[l]:d?[l,{key:"datasetRefs",label:"可训练数据 / 已公开 OneData",required:!1,placeholder:"选择就绪的可训练数据,或多个 alr_ 用逗号分隔",hint:"仅可选择本人就绪的可训练数据,或已公开的 OneData。"},{key:"framework",label:"训练框架",required:!1,placeholder:"例如:PyTorch / JAX / TensorFlow",hint:"可从资源格式自动预填;帮助 Agent 选择正确的训练脚本模板。"},{key:"baseCheckpoint",label:"基座 Checkpoint",required:!1,placeholder:"例如:/models/graphcast/pretrained.ckpt",hint:"微调或继续训练时的起始权重路径。"},{key:"outputCheckpointDir",label:"Checkpoint 输出目录",required:!1,placeholder:"例如:/output/graphcast-finetune/",hint:"训练产物保存位置,便于 Agent 配置 checkpoint 回调。"},{key:"trainingConfigHint",label:"训练配置参考",required:!1,placeholder:"例如:configs/finetune.yaml 或 lr=1e-4, epochs=10",hint:"配置文件路径或关键超参摘要,减少 Agent 猜测训练参数。"}]:[l,{key:"checkpointPath",label:"Checkpoint 路径",required:!1,placeholder:"例如:/models/graphcast/checkpoint.ckpt 或 s3://bucket/weights/",hint:"推理时加载的权重或 checkpoint 路径;不填写则 Agent 从资源元数据推断。"},{key:"framework",label:"推理框架",required:!1,placeholder:"例如:PyTorch / JAX / ONNX / vLLM",hint:"可从资源格式自动预填;帮助 Agent 选择模型加载与推理后端。"},{key:"inputSpec",label:"输入说明",required:!1,placeholder:"例如:batch×lat×lon×channels float32, 6h lead time",hint:"张量形状、变量名或输入文件格式,便于 Agent 构造推理输入。"},{key:"outputSpec",label:"输出说明",required:!1,placeholder:"例如:forecast fields t2m,tp @ 24h lead",hint:"推理产物变量与格式,便于 Agent 对接评测或下游工作流。"},{key:"datasetRefs",label:"可训练数据 / 已公开 OneData",required:!1,placeholder:"选择就绪的可训练数据,或多个 alr_ 用逗号分隔",hint:"推理或评测时绑定的可训练数据 / 已公开 OneData。"}]}}return e==="apps"?{sectionTitle:"应用启动原语字段",sectionHint:"说明 Agent 如何启动该应用、准备运行环境并提交远程作业。",primitiveTypes:[a("app.launch")],titlePlaceholder:"例如:OpenFOAM 作业启动原语",descriptionPlaceholder:"描述 runtime、entrypoint、资源约束,以及 Agent 何时启动该应用",intentTagsPlaceholder:"例如:cfd, mpi, gpu",extraFields:[{key:"runtime",label:"运行环境",required:!1,placeholder:"例如:GPU / MPI / CPU",hint:"不填写时契约默认使用 CPU/GPU/MPI。"},{key:"entrypoint",label:"启动入口",required:!1,placeholder:"例如:workflow.yaml 或 python main.py",hint:"不填写时契约默认使用 workflow.yaml。"},{key:"resourceRequirements",label:"资源需求",required:!1,placeholder:"例如:4×GPU A100, 128GB RAM, 2 nodes MPI",hint:"帮助 Agent 在提交 HPC/云作业时选择合适队列与配额。"},{key:"containerImage",label:"容器/模块",required:!1,placeholder:"例如:openfoam:11 或 module load openfoam/11",hint:"容器镜像名或集群 module 加载命令。"},{key:"inputArtifacts",label:"输入产物",required:!1,placeholder:"例如:case/, config.yaml, mesh.su2",hint:"作业启动前必须准备的输入文件或目录。"}]}:e==="frameworks"?{sectionTitle:"AI框架原语字段",sectionHint:"说明 Agent 如何发现、安装和调用该 AI 框架,不区分科学领域。",primitiveTypes:[{value:"code.generate",label:"框架原语"}],titlePlaceholder:"例如:PyTorch 框架接入原语",descriptionPlaceholder:"描述框架能力、硬件支持、安装入口,以及 Agent 何时使用该框架",intentTagsPlaceholder:"例如:pytorch, training, gpu, dcu",extraFields:[{key:"installEntry",label:"安装入口",required:!1,placeholder:"例如:portal 安装链接或 GitHub 仓库地址",hint:"Agent 通过该入口完成框架安装或环境拉取。"},{key:"hardwareSupport",label:"硬件支持",required:!1,placeholder:"例如:CPU/GPU / GPU / CPU/GPU/TPU",hint:"可从资源格式自动预填;帮助 Agent 判断运行栈是否匹配。"},{key:"frameworkLanguage",label:"开发语言",required:!1,placeholder:"例如:Python / Python/CUDA / C++",hint:"可从资源规模字段自动预填;说明框架主要接口语言。"},{key:"adapterRepo",label:"适配仓库",required:!1,placeholder:"例如:https://github.com/flagos-ai/vllm-FL",hint:"FlagOS 或国产硬件适配仓库,便于 Agent 选择正确分支。"}]}:t==="data.load"||t==="data.transform"?Vt("datasets",t):t==="model.run"||t==="model.train"?Vt("models",t):t==="app.launch"||t==="workflow.compose"?Vt("apps",t):{sectionTitle:"核心字段",sectionHint:"补全原语名称、能力描述和意图标签,供 Agent 检索与调用。",primitiveTypes:[a("data.load"),a("model.run"),a("app.launch"),a("code.generate")],titlePlaceholder:"例如:ERA5 数据加载原语",descriptionPlaceholder:"描述 Agent 何时使用这个原语,以及它提供什么能力",intentTagsPlaceholder:"例如:weather_forecast, climate_model",extraFields:[]}}function xc(e){if(!e.title.trim()||!e.description.trim())return"请填写原语名称和能力描述";const t=e.resourcePage==="apps"?"app.launch":e.resourcePage==="frameworks"?"code.generate":e.primitiveType.trim();if(e.resourcePage!=="frameworks"&&!e.domain.trim())return"请选择领域";if(e.resourcePage==="frameworks"&&!e.domain.trim())return"无法识别框架分类";if(!t)return"请选择原语类型";if(!e.intentTags.split(",").map(r=>r.trim()).filter(Boolean).length)return"请至少填写一个意图标签";const a=Vt(e.resourcePage,t);for(const r of a.extraFields)if(r.required&&!e.extraValues[r.key]?.trim())return`请填写${r.label}`}function Mc(e){const t=e.extraValues??{},a=[...e.resourceId?[`resourceId: ${e.resourceId}`]:[],...e.domain.trim()?[`domain: ${e.domain.trim()}`]:[],`format: ${e.sourceFormat}`,`provider: ${e.sourceProvider}`,`primitiveType: ${e.primitiveType}`];if((e.resourcePage==="datasets"||e.primitiveType.startsWith("data."))&&(Qe(a,t,"storageLocation","storage"),Qe(a,t,"dataSchema","schema"),Qe(a,t,"accessMethod","access"),Qe(a,t,"authHint","auth"),e.primitiveType==="data.transform"&&Qe(a,t,"transformOutput","transformOutput")),e.resourcePage==="models"||e.primitiveType.startsWith("model.")){a.push(`modelId: ${e.resourceId??e.sourceProvider}`),Qe(a,t,"modelAcquisitionMethod","resourceSync"),Qe(a,t,"framework","framework");const r=t.datasetRefs?.split(",").map(s=>s.trim()).filter(Boolean)??[];r.length&&a.push(`datasetIds: ${r.join(", ")}`),e.primitiveType==="model.run"&&(Qe(a,t,"checkpointPath","checkpoint"),Qe(a,t,"inputSpec","inputSpec"),Qe(a,t,"outputSpec","outputSpec")),e.primitiveType==="model.train"&&(Qe(a,t,"baseCheckpoint","baseCheckpoint"),Qe(a,t,"outputCheckpointDir","outputCheckpointDir"),Qe(a,t,"trainingConfigHint","trainingConfig"))}return(e.resourcePage==="apps"||e.primitiveType==="app.launch"||e.primitiveType==="workflow.compose")&&(a.push(`runtime: ${t.runtime?.trim()||"CPU/GPU/MPI"}`),a.push(`entrypoint: ${t.entrypoint?.trim()||"workflow.yaml"}`),Qe(a,t,"resourceRequirements","resources"),Qe(a,t,"containerImage","image"),Qe(a,t,"inputArtifacts","inputs"),e.primitiveType==="workflow.compose"&&(Qe(a,t,"pipelineSteps","steps"),Qe(a,t,"dependencies","dependencies"))),e.resourcePage==="frameworks"&&(Qe(a,t,"installEntry","install"),Qe(a,t,"hardwareSupport","hardware"),Qe(a,t,"frameworkLanguage","language"),Qe(a,t,"adapterRepo","adapterRepo")),a}function Qe(e,t,a,r){const s=t[a]?.trim();s&&e.push(`${r}: ${s}`)}function Ic(e){if(!e)return[];const t=e.slots??{};return[...e.model?.callable||t.model?.callable?["model"]:[],...e.inference?.callable||t["model-inference"]?.callable?["model.run"]:[],...e.training?.callable||t["model-training"]?.callable?["model.train"]:[],...t.dataset?.callable?["data.load"]:[],...t["data-processing"]?.callable?["data.transform"]:[]]}function $r(e,t,a){const r=new Set(t),s=a?.trim();return e.filter(d=>d.value===s||!r.has(d.value))}const Cr=["checkpointPath","inputSpec","outputSpec"],Sr=["baseCheckpoint","outputCheckpointDir","trainingConfigHint"];function Fc(e){return e==="model"?[...Cr,...Sr]:e==="model.train"?Cr:Sr}function _r(e,t){const a=new Set(Fc(t));return Object.fromEntries(Object.entries(e).filter(([r])=>!a.has(r)))}function Tc(e,t){if(e){if(t==="model")return e.model?.draft??e.slots?.model?.draft;if(t==="model.train")return e.training?.draft??e.slots?.["model-training"]?.draft;if(t==="model.run")return e.inference?.draft??e.slots?.["model-inference"]?.draft}}function ei(e){const t=e.resourcePage;return t!=="datasets"&&t!=="models"&&t!=="apps"&&t!=="frameworks"?{}:Ec({format:e.sourceFormat,size:e.sourceSize,href:e.sourceHref,page:t,resourceId:e.resourceId,resourceTitle:e.resourceTitle,datasetDownloadMethod:e.sourceHint?.datasetDownloadMethod,modelDownloadMethod:e.sourceHint?.modelDownloadMethod})}function Ec(e){const t={};e.page==="models"&&e.format?.trim()&&(t.framework=e.format.trim()),e.page==="apps"&&e.format?.trim()&&(t.runtime=e.format.trim()),e.page==="frameworks"&&(e.format?.trim()&&(t.hardwareSupport=e.format.trim()),e.size?.trim()&&(t.frameworkLanguage=e.size.trim()),e.href?.trim()&&(t.installEntry=e.href.trim()));const a=e.datasetDownloadMethod?.trim()||(e.page==="datasets"&&e.resourceId?wi(e.resourceId):void 0);a&&(t.storageLocation=a);const r=e.modelDownloadMethod?.trim()||(e.page==="models"&&e.resourceTitle?$i(e.resourceTitle):void 0);return r&&(t.modelAcquisitionMethod=r),t}function Oc(e){return e==="data.load"?"dataset":e==="model.train"?"model-training":e==="model.run"?"model-inference":e==="model.evaluate"?"evaluation":e==="app.launch"||e==="workflow.compose"?"app":e==="data.transform"?"data-processing":"code-asset"}function Mi(e,t,a){if(t==="models"||a?.startsWith("model."))return e.modelAcquisitionMethod?.trim()||void 0;if(t==="datasets"||a?.startsWith("data."))return e.storageLocation?.trim()||void 0}function $n(e,t){return e==="models"||t?.startsWith("model.")?"resourceSync":"storage"}function Nc(e,t){return[`确认调用本原语后,先执行 resourceContract.requiredInputs 中的 ${$n(e,t)} 命令,将关联资源同步至本地缓存。`,"同步完成后读取本地资源内容(README、配置、示例脚本、权重或数据文件),再确定 checkpoint、schema、入口脚本等后续参数。","在资源已本地可用且用法明确前,不要跳过同步步骤直接假设路径、格式或运行入口。"]}function Rc(e){return e==="dataset"?["typed resource adapter result","dataset access metadata","schema/shape hints","provenance record"]:e==="model-inference"||e==="model-training"?["typed resource adapter result","model invocation plan","checkpoint/config metadata","provenance record"]:e==="app"?["typed resource adapter result","workflow launch plan","runtime resource requirements","provenance record"]:["typed resource adapter result","implementation reference","provenance record"]}function Lc(e){const t=Mi(e.extraValues??{},e.resourcePage,e.primitiveType),a=$n(e.resourcePage,e.primitiveType),r=t?[`执行 requiredInputs 中的 ${a} 命令,完成关联资源本地同步。`,"同步完成后浏览本地目录,识别 README、配置、示例脚本与权重/数据文件位置。"]:[];return e.category==="dataset"||e.category==="data-processing"?[...r,`读取数据集资源 ${e.title} 的 provider、format、href 和领域标签。`,"参考 datapipes 资产定义数据发现、下载/挂载、缓存和切片接口。","输出统一 DataPipe 结果,并附带 shape/schema/provenance 元数据。"]:e.category==="model-inference"||e.category==="model-training"?[...r,`基于本地资源内容确定模型 ${e.title} 的框架、checkpoint 路径、输入输出规格与运行约束。`,"参考 models 资产定义模型配置、checkpoint 加载、输入张量和后处理接口。","输出统一模型调用或训练计划,并记录资源版本与 provenance。"]:e.category==="app"?[...r,`读取应用资源 ${e.title} 的安装入口、运行环境、领域标签和 HPC/GPU 约束。`,"参考 contracts 资产约定科研工作流的输入、输出、日志和错误处理。","输出统一工作流启动计划,并记录 runtime、entrypoint 和资源需求。"]:[...r,`读取资源 ${e.title} 的 provider、format 和领域标签。`,"输出统一适配结果,并保留来源追踪信息。"]}function Uc(e){const t=e.title.toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80),a=Hc(e.primitiveCategory),r=Mc({resourceId:e.resourceId,domain:e.domain,primitiveType:e.primitiveType,sourceProvider:e.sourceProvider,sourceFormat:e.sourceFormat,resourcePage:e.resourcePage,extraValues:e.extraValues}),s=!!Mi(e.extraValues??{},e.resourcePage,e.primitiveType);return{id:t||"primitive",name:e.title,intent:e.intentTags,sourceResourceIds:e.resourceId?[e.resourceId]:[],primitiveType:e.primitiveType,primitiveCategory:e.primitiveCategory,agentContract:{assetSkill:a,purpose:e.description,usage:Gc({category:e.primitiveCategory,resourcePage:e.resourcePage,primitiveType:e.primitiveType,extraValues:e.extraValues}),resourceContract:{category:e.primitiveCategory,sourcePage:e.sourcePage??e.resourcePage??"resource",sourceResourceIds:e.resourceId?[e.resourceId]:[],requiredInputs:r,outputs:Rc(e.primitiveCategory),implementationSteps:Lc({category:e.primitiveCategory,title:e.title,resourcePage:e.resourcePage,primitiveType:e.primitiveType,extraValues:e.extraValues}),acceptanceCriteria:["契约必须保留 sourceResourceIds,并能回溯到资源库条目。",...s?["若 requiredInputs 含 resourceSync/storage,必须先完成资源同步并阅读本地资源后,再生成实现计划、代码或作业配置。"]:[],"缺少下载、权重或运行入口时,必须显式返回待补充字段。"]}}}}function Gc(e){const t=Mi(e.extraValues??{},e.resourcePage,e.primitiveType)?Nc(e.resourcePage,e.primitiveType):[];return e.category==="dataset"||e.category==="data-processing"?[...t,"按 resourceContract.requiredInputs 准备数据 resourceId、领域、格式和 provider。","生成 DataPipe 或数据接入代码前,先校验 primitiveType 与数据资源契约是否一致。"]:e.category==="model-inference"||e.category==="model-training"?[...t,"按 resourceContract.requiredInputs 准备 modelId、框架与推理/训练上下文。","生成模型调用或训练代码前,先校验 primitiveType 与模型资源契约是否一致。"]:e.category==="app"?[...t,"按 resourceContract.requiredInputs 准备 runtime、entrypoint 和 HPC/GPU 约束。","生成工作流或远程作业前,先校验 primitiveType 与应用资源契约是否一致。"]:[...t,"按 resourceContract.requiredInputs 准备资源 ID、领域标签、格式和运行上下文。","生成或修改代码前,先校验 primitiveType、primitiveCategory 与资源契约是否一致。"]}function Bc(e,t){return e==="datasets"||t==="data.load"||t==="data.transform"?"resource_reference":e==="models"||t.startsWith("model.")?"model_reference":e==="apps"||t==="app.launch"||t==="workflow.compose"?"hpc_workflow":e==="frameworks"?"code_reference":"resource_reference"}function Hc(e){return e==="app"||e==="model-inference"||e==="model-training"?"onescience-runtime":"onescience-coder"}function Pr(e,t){return e==="datasets"?"data.load":e==="frameworks"?"code.generate":e==="models"?t.some(a=>/train|fine-tune|微调/i.test(a))?"model.train":"model.run":e==="apps"?t.some(a=>/workflow|工作流/i.test(a))?"workflow.compose":"app.launch":t.some(a=>/data|dataset|数据/i.test(a))?"data.load":t.some(a=>/metric|评测|score/i.test(a))?"model.evaluate":t.some(a=>/app|应用/i.test(a))?"app.launch":t.some(a=>/operator|算子/i.test(a))?"operator.apply":"code.generate"}function xa(e,t=[]){const a=e??"";if(a.includes("framework-training"))return"训练框架";if(a.includes("framework-parallel"))return"并行训练";if(a.includes("framework-inference"))return"推理框架";const r=t.find(s=>s==="训练框架"||s==="并行训练"||s==="推理框架");return r||"其它"}function Ht(e){try{return new URL(e).toString().replace(/\/$/,"")}catch{return e.replace(/\/$/,"")}}At(["click","input"]);function qc(e){const t=e?.trim();return t?`先执行 conda activate ${t},再`:"先"}function Cn(e,t,a){const r=`安装说明请从官方文档获取并严格遵循:${e.href}
|
|
66
|
+
应用简介:${e.copy};目标平台:${e.format}。`,s="文档中的占位路径或缺失信息先向我确认。成功则汇报安装位置与验证结果,失败则列出阻塞项和最小修复方案。",d=qc(a?.condaEnv);if(t?.kind==="ssh"){const c=a?.sshTarget;return c?`${St}请帮我在远端 ${c.name} 上通过 ssh 安装 OneHub 应用「${e.title}」。
|
|
67
67
|
|
|
68
68
|
${r}
|
|
69
69
|
|
|
70
|
-
请${
|
|
70
|
+
请${d}检查该远端环境是否满足要求,并按文档完成安装与验证;后续安装与验证均在该远端环境执行,不要安装到本地。
|
|
71
71
|
${s}`:`${St}请帮我在 SSH 远程(${t.targetName})安装 OneHub 应用「${e.title}」。
|
|
72
72
|
|
|
73
73
|
运行环境为 SSH 远程(${t.targetName}),但该配置当前不可用;请先在运行环境选择框中重新选择环境,再安装应用。`}if(t?.kind==="scnet"){const c=t.serverName??"scnet";return`${St}请帮我在 SCNet 环境安装 OneHub 应用「${e.title}」。
|
|
@@ -75,8 +75,8 @@ ${s}`:`${St}请帮我在 SSH 远程(${t.targetName})安装 OneHub 应用「$
|
|
|
75
75
|
${r}
|
|
76
76
|
|
|
77
77
|
请通过 ${c} MCP 工具在 SCNet 侧检查环境并按文档完成安装与验证,不要安装到本地。
|
|
78
|
-
${s}`}const d
|
|
78
|
+
${s}`}const l=d==="先"?"请先检查本地环境是否满足要求,再":`请${d}检查本地环境是否满足要求,并`;return`${St}请帮我在当前本地环境安装 OneHub 应用「${e.title}」。
|
|
79
79
|
|
|
80
80
|
${r}
|
|
81
81
|
|
|
82
|
-
${d}按文档完成安装与验证;${s}`}function Bc(e){return(t,a)=>yn(e,t,a)}function Hc(e){return{prompt:`请基于 OneSkills 技能「${e.title}」进行科研开发。`,skill:{name:e.id,title:e.title}}}const Sr=["name","description","layer","tags","references","allowed-tools","metadata"],qc={name:"名称",description:"描述",tags:"标签",references:"引用资源","allowed-tools":"可用工具",metadata:"元数据",layer:"分层"};function zc(e){return qc[e]??e}function wn(e){const t=Object.keys(e);return[...Sr.filter(r=>t.includes(r)),...t.filter(r=>!Sr.includes(r)).sort()].flatMap(r=>{const s=e[r];return s==null||s===""?[]:[[r,s]]})}function jc(e){return e?wn(e).length>0:!1}function Wc(e){return typeof e=="boolean"?e?"是":"否":typeof e=="number"?String(e):typeof e=="string"?e:JSON.stringify(e,null,2)}function Ma(e){return Array.isArray(e)?e.flatMap(t=>t==null||t===""?[]:[typeof t=="string"?t:JSON.stringify(t)]):[]}function _r(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return JSON.stringify(e,null,2)}var Vc=o("<section class=os-skill-detail-meta><div class=os-skill-detail-section-label>技能元数据</div><dl class=os-skill-detail-meta-grid>"),Kc=o("<dt>"),Xc=o('<div class="os-tag-row os-skill-detail-meta-tags">'),Jc=o("<span class=os-skill-detail-meta-value>"),Qc=o("<dd>"),Zc=o("<span class=os-tag>"),Yc=o("<pre class=os-skill-detail-meta-nested>"),ed=o("<div class=os-skill-detail-chips>"),td=o('<div class=os-skill-detail-loading><div class=os-skill-detail-loading-bar></div><div class="os-skill-detail-loading-bar os-skill-detail-loading-bar-short"></div><div class=os-skill-detail-loading-bar></div><p>正在加载 SKILL.md...'),ad=o("<section class=os-skill-detail-content><div class=os-skill-detail-section-label>技能说明"),id=o("<div role=presentation><div role=dialog aria-modal=true><div><div class=os-skill-detail-head-main><div>OneSkills</div><h2></h2><p class=os-skill-detail-summary></p></div><button type=button aria-label=关闭>×</button></div><div class=os-skill-detail-body></div><div><div><button type=button>关闭</button><button type=button>开发"),rd=o("<span class=os-skill-detail-chip>"),nd=o("<div>"),sd=o("<p class=os-section-copy>该技能暂无正文内容。"),od=o("<div class=os-skill-detail-markdown>"),ld=o("<span class=os-skill-detail-path-empty>路径待加载"),cd=o("<code class=os-skill-detail-path><span class=os-skill-detail-path-label>路径</span><span class=os-skill-detail-path-value>");function dd(e){const t=()=>wn(e.data);return(()=>{var a=Vc(),r=a.firstChild,s=r.nextSibling;return i(s,n(ce,{get each(){return t()},children:([l,d])=>[(()=>{var c=Kc();return i(c,()=>zc(l)),c})(),(()=>{var c=Qc();return i(c,n(y,{get when(){return Ma(d).length>0},get children(){var g=Xc();return i(g,n(ce,{get each(){return Ma(d)},children:v=>(()=>{var b=Zc();return i(b,v),b})()})),g}}),null),i(c,n(y,{get when(){return ne(()=>Ma(d).length===0)()&&_r(d)},children:g=>(()=>{var v=Yc();return i(v,g),v})()}),null),i(c,n(y,{get when(){return ne(()=>Ma(d).length===0)()&&!_r(d)},get children(){var g=Jc();return i(g,()=>Wc(d)),g}}),null),c})()]})),E(()=>a.classList.toggle("is-workbench",!!e.workbench)),a})()}function ud(e){const[t,a]=S(!1),[r,s]=S(),[l,d]=S(),[c,g]=S(),[v,b]=S(),u=()=>e.variant==="workbench",h=j(()=>e.open?e.item:void 0);ge(()=>{const w=h(),_=e.serverUrl;if(!w||!_){a(!1),s(void 0),d(void 0),g(void 0),b(void 0);return}let p=!0;a(!0),s(void 0),d(void 0),g(void 0),b(void 0),As(_,w.id).then(M=>{if(p){if(a(!1),!M.loaded){b(M.error??"无法加载技能内容");return}if(g(M.location),M.content){s(M.content),d(M.frontmatter);return}b(M.error??"技能文件不可用")}}),ze(()=>{p=!1})});const f=()=>{const w=h();if(!w)return[];const _=[];w.layer&&_.push({label:w.layer,tone:"layer"}),w.provider&&_.push({label:w.provider,tone:"provider"});for(const p of(w.tags??[]).slice(0,4))p===w.layer||p===w.provider||_.push({label:p});return _};return n(y,{get when(){return h()},get children(){return n(bt,{get mount(){return typeof document>"u"?void 0:document.body},get children(){var w=id(),_=w.firstChild,p=_.firstChild,M=p.firstChild,N=M.firstChild,L=N.nextSibling,W=L.nextSibling,O=M.nextSibling,H=p.nextSibling,D=H.nextSibling,T=D.firstChild,G=T.firstChild,z=G.nextSibling;return w.$$click=P=>{P.target===P.currentTarget&&e.onClose()},_.$$click=P=>P.stopPropagation(),i(L,()=>h().title),i(W,()=>h().copy),i(M,n(y,{get when(){return f().length>0},get children(){var P=ed();return i(P,n(ce,{get each(){return f()},children:F=>(()=>{var B=rd();return i(B,()=>F.label),E(()=>R(B,"data-tone",F.tone)),B})()})),P}}),null),Oe(O,"click",e.onClose,!0),i(H,n(y,{get when(){return t()},get children(){return td()}}),null),i(H,n(y,{get when(){return ne(()=>!t())()&&v()},children:P=>(()=>{var F=nd();return i(F,P),E(B=>{var re=!u(),de=!!u();return re!==B.e&&F.classList.toggle("os-upload-error",B.e=re),de!==B.t&&F.classList.toggle("os-client-capability-skill-detail-error",B.t=de),B},{e:void 0,t:void 0}),F})()}),null),i(H,n(y,{get when(){return ne(()=>!t())()&&!v()},get children(){return[n(y,{get when(){return jc(l())},get children(){return n(dd,{get data(){return l()},get workbench(){return u()}})}}),(()=>{var P=ad();return P.firstChild,i(P,n(y,{get when(){return r()},get fallback(){return sd()},children:F=>(()=>{var B=od();return i(B,n(xs,{get text(){return F()},get cacheKey(){return`skill-detail:${h().id}`}})),B})()}),null),P})()]}}),null),i(D,n(y,{get when(){return c()},get fallback(){return ld()},children:P=>(()=>{var F=cd(),B=F.firstChild,re=B.nextSibling;return i(re,P),E(()=>R(F,"title",P())),F})()}),T),Oe(G,"click",e.onClose,!0),Oe(z,"click",e.onDevelop,!0),E(P=>{var F=!u(),B=!!u(),re={"os-upload-dialog os-skill-detail-dialog":!u(),"os-client-capability-skill-detail-dialog":u()},de=`技能详情 ${h().title}`,J=!u(),we=!!u(),Y=!u(),ve=!!u(),$e={"os-button os-button-secondary os-button-square":!u(),"os-client-capability-skill-detail-close":u()},ue=!!u(),Z=t(),te=!u(),ee=!!u(),K=!u(),X=!!u(),fe={"os-button os-button-secondary":!u(),"os-client-capability-skill-detail-action":u()},De={"os-button os-button-primary":!u(),"os-client-capability-skill-detail-action is-primary":u()};return F!==P.e&&w.classList.toggle("os-modal-backdrop",P.e=F),B!==P.t&&w.classList.toggle("os-client-capability-skill-detail-overlay",P.t=B),P.a=na(_,re,P.a),de!==P.o&&R(_,"aria-label",P.o=de),J!==P.i&&p.classList.toggle("os-skill-detail-head",P.i=J),we!==P.n&&p.classList.toggle("os-client-capability-skill-detail-head",P.n=we),Y!==P.s&&N.classList.toggle("os-eyebrow",P.s=Y),ve!==P.h&&N.classList.toggle("os-client-capability-skill-detail-eyebrow",P.h=ve),P.r=na(O,$e,P.r),ue!==P.d&&H.classList.toggle("is-workbench",P.d=ue),Z!==P.l&&R(H,"aria-busy",P.l=Z),te!==P.u&&D.classList.toggle("os-skill-detail-footer",P.u=te),ee!==P.c&&D.classList.toggle("os-client-capability-skill-detail-footer",P.c=ee),K!==P.w&&T.classList.toggle("os-upload-actions",P.w=K),X!==P.m&&T.classList.toggle("os-client-capability-skill-detail-actions",P.m=X),P.f=na(G,fe,P.f),P.y=na(z,De,P.y),P},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0}),w}})}})}At(["click"]);var md=o('<svg><path d="M4.5 11.5 12 5l7.5 6.5"></svg>',!1,!0,!1),hd=o('<svg><path d="M6.5 10.5V19h11v-8.5"></svg>',!1,!0,!1),pd=o('<svg><path d="M10 19v-5h4v5"></svg>',!1,!0,!1),gd=o('<svg><path d="m8.5 8-4 4 4 4"></svg>',!1,!0,!1),fd=o('<svg><path d="m15.5 8 4 4-4 4"></svg>',!1,!0,!1),bd=o('<svg><path d="m13.5 6-3 12"></svg>',!1,!0,!1),vd=o('<svg><path d="M6 5.5h12"></svg>',!1,!0,!1),yd=o('<svg><path d="M6 12h12"></svg>',!1,!0,!1),wd=o('<svg><path d="M6 18.5h12"></svg>',!1,!0,!1),$d=o('<svg><path d="M4 5.5h.01"></svg>',!1,!0,!1),Cd=o('<svg><path d="M4 12h.01"></svg>',!1,!0,!1),Sd=o('<svg><path d="M4 18.5h.01"></svg>',!1,!0,!1),_d=o('<svg><path d="M5 6c0-1.7 3.1-3 7-3s7 1.3 7 3-3.1 3-7 3-7-1.3-7-3Z"></svg>',!1,!0,!1),Pd=o('<svg><path d="M5 6v6c0 1.7 3.1 3 7 3s7-1.3 7-3V6"></svg>',!1,!0,!1),kd=o('<svg><path d="M8 18.5h8"></svg>',!1,!0,!1),Dd=o('<svg><path d="M12 15v3.5"></svg>',!1,!0,!1),Ad=o('<svg><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.5-3.5a5.8 5.8 0 0 1-7.6 7.6l-6.8 6.8a2.1 2.1 0 0 1-3-3l6.8-6.8a5.8 5.8 0 0 1 7.6-7.6z"></svg>',!1,!0,!1),xd=o('<svg><path d="M6.5 6.5h4v4h-4z"></svg>',!1,!0,!1),Md=o('<svg><path d="M13.5 6.5h4v4h-4z"></svg>',!1,!0,!1),Id=o('<svg><path d="M6.5 13.5h4v4h-4z"></svg>',!1,!0,!1),Fd=o('<svg><path d="M13.5 13.5h4v4h-4z"></svg>',!1,!0,!1),Td=o('<svg><path d="M10.5 8.5h3"></svg>',!1,!0,!1),Ed=o('<svg><path d="M8.5 10.5v3"></svg>',!1,!0,!1),Od=o('<svg><path d="M15.5 10.5v3"></svg>',!1,!0,!1),Nd=o('<svg><path d="M10.5 15.5h3"></svg>',!1,!0,!1),Rd=o('<svg><path d="M5 7c0-2 3.1-3.5 7-3.5S19 5 19 7s-3.1 3.5-7 3.5S5 9 5 7Z"></svg>',!1,!0,!1),Ld=o('<svg><path d="M5 7v5c0 2 3.1 3.5 7 3.5S19 14 19 12V7"></svg>',!1,!0,!1),Ud=o('<svg><path d="M5 12v5c0 2 3.1 3.5 7 3.5s7-1.5 7-3.5v-5"></svg>',!1,!0,!1),Gd=o('<svg><path d="M7 8.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"></svg>',!1,!0,!1),Bd=o('<svg><path d="M17 20.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"></svg>',!1,!0,!1),Hd=o('<svg><path d="M17 8.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"></svg>',!1,!0,!1),qd=o('<svg><path d="M7 8.5 17 15.5"></svg>',!1,!0,!1),zd=o('<svg><path d="M9.5 6h5"></svg>',!1,!0,!1),jd=o('<svg><path d="M5 5h5v5H5z"></svg>',!1,!0,!1),Wd=o('<svg><path d="M14 5h5v5h-5z"></svg>',!1,!0,!1),Vd=o('<svg><path d="M5 14h5v5H5z"></svg>',!1,!0,!1),Kd=o('<svg><path d="M14 14h5v5h-5z"></svg>',!1,!0,!1),Xd=o('<svg><path d="M6 7h12"></svg>',!1,!0,!1),Jd=o('<svg><path d="M8 12h8"></svg>',!1,!0,!1),Qd=o('<svg><path d="M10 17h4"></svg>',!1,!0,!1),Zd=o('<svg><path d="M5 7h4"></svg>',!1,!0,!1),Yd=o('<svg><path d="M15 7h4"></svg>',!1,!0,!1),eu=o('<svg><path d="M5 17h4"></svg>',!1,!0,!1),tu=o('<svg><path d="M15 17h4"></svg>',!1,!0,!1),au=o('<svg><path d="M9 7c3 0 3 10 6 10"></svg>',!1,!0,!1),iu=o('<svg><path d="M9 17c3 0 3-10 6-10"></svg>',!1,!0,!1),ru=o('<svg><path d="M6 4.5h12v15H6z"></svg>',!1,!0,!1),nu=o('<svg><path d="M9 4.5v6l3-2 3 2v-6"></svg>',!1,!0,!1),su=o('<svg><path d="M9 14h6"></svg>',!1,!0,!1),ou=o('<svg><path d="M9 17h4"></svg>',!1,!0,!1),lu=o('<svg><path d="M7 4h7l3 3v13H7z"></svg>',!1,!0,!1),cu=o('<svg><path d="M14 4v4h4"></svg>',!1,!0,!1),du=o('<svg><path d="M10 12h5"></svg>',!1,!0,!1),uu=o('<svg><path d="M10 16h5"></svg>',!1,!0,!1),mu=o('<svg><path d="M8 10.5a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"></svg>',!1,!0,!1),hu=o('<svg><path d="M16.5 11a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"></svg>',!1,!0,!1),pu=o('<svg><path d="M3.5 19c.6-3.2 2.2-5 4.5-5s3.9 1.8 4.5 5"></svg>',!1,!0,!1),gu=o('<svg><path d="M13.5 18.5c.4-2.4 1.5-3.8 3-3.8 1.7 0 2.8 1.4 3.3 3.8"></svg>',!1,!0,!1),fu=o('<svg><path d="M12 8.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7Z"></svg>',!1,!0,!1),bu=o('<svg><path d="M12 3.5v2"></svg>',!1,!0,!1),vu=o('<svg><path d="M12 18.5v2"></svg>',!1,!0,!1),yu=o('<svg><path d="m5.6 5.6 1.4 1.4"></svg>',!1,!0,!1),wu=o('<svg><path d="m17 17 1.4 1.4"></svg>',!1,!0,!1),$u=o('<svg><path d="M3.5 12h2"></svg>',!1,!0,!1),Cu=o('<svg><path d="M18.5 12h2"></svg>',!1,!0,!1),Su=o('<svg><path d="m5.6 18.4 1.4-1.4"></svg>',!1,!0,!1),_u=o('<svg><path d="m17 7 1.4-1.4"></svg>',!1,!0,!1),Pu=o('<svg class=os-sidebar-icon viewBox="0 0 24 24"aria-hidden=true>'),ku=o("<button type=button class=os-case-row><div class=os-case-index></div><div><div class=os-case-tag></div><h3></h3><p></p></div><div class=os-case-result>"),Du=o("<strong>"),Au=o("<p class=os-resource-card-copy>"),xu=o("<span class=os-brand-mark>✣"),Mu=o("<span class=os-brand-copy><span class=os-brand-name>OneScience</span><span class=os-brand-subtitle>智能科研平台"),Iu=o('<button class="os-button os-button-primary">进入工作台'),Fu=o('<header class="os-topbar os-product-topbar sticky top-0 z-50"><div class="os-container flex min-h-16 items-center justify-between gap-4"><nav class="hidden items-center gap-1 xl:flex"></nav><div class="flex items-center gap-2">'),Tu=o('<div class="group relative"><button class=os-nav-button></button><div class="invisible absolute left-1/2 top-full w-[36rem] -translate-x-1/2 translate-y-2 pt-3 opacity-0 transition group-hover:visible group-hover:translate-y-0 group-hover:opacity-100 group-focus-within:visible group-focus-within:translate-y-0 group-focus-within:opacity-100"><div class=os-menu><div class=os-menu-head><p></p></div><div class="grid grid-cols-2 gap-1 p-2">'),$n=o("<span>"),Eu=o("<small>"),Ou=o('<button class="os-button os-button-secondary">进入工作台'),Nu=o('<footer id=contact class=os-footer><div class="os-container grid gap-8 lg:grid-cols-[1fr_1fr_1fr]"><div><div class=os-footer-title>OneScience</div><p class="mt-2 text-13-regular leading-6 text-slate-500">知识驱动的智能科研平台</p></div><div><div class=os-footer-heading>联系方式</div><div class=os-footer-links><a href=https://github.com/onescience-ai>GitHub:onescience-ai</a><a href=https://gitee.com/onescience-ai>Gitee:onescience-ai</a></div></div><div><div class=os-footer-heading>社区共建</div><div class="mt-3 flex flex-wrap gap-2">'),Ru=o("<span class=os-chip>"),Lu=o("<button type=button class=os-hero-scroll-cue aria-label=向下滚动查看更多内容>"),Uu=o('<div class="grid gap-4 sm:grid-cols-2 xl:grid-cols-4">'),Gu=o('<div class="grid gap-4 md:grid-cols-3">'),Bu=o('<div class="mt-4 grid gap-4 md:grid-cols-3">'),Hu=o('<div class="grid gap-4 md:grid-cols-4">'),qu=o('<main class="onescience-page os-page min-h-full overflow-y-auto"><section class="os-hero-section os-product-hero"><div class=os-hero-network aria-hidden=true></div><div class="os-container os-hero-center"><h1 class=os-hero-title>OneScience<span>智能科研平台</span></h1><p class=os-hero-copy><strong>革新科研开发流程,</strong><strong>以知识为核心,实现智能化代码开发、科研任务编排和结果复现。</strong></p><div class=os-hero-actions><span class="os-button os-button-ghost os-button-large os-hero-repo-links"><a href=https://github.com/onescience-ai target=_blank rel=noreferrer>GitHub</a><span aria-hidden=true>/</span><a href=https://gitee.com/onescience-ai target=_blank rel=noreferrer>Gitee</a></span></div></div></section><section id=product-content class="os-section os-section-white"><div class="os-container grid gap-8 lg:grid-cols-[1.1fr_0.9fr]"><div class=os-video-panel><div class="os-video-inner os-video-embed"><iframe title="OneScience Demo"src="https://player.bilibili.com/player.html?bvid=BV187V96qEF1&page=1"scrolling=no frameborder=0 allowfullscreen></iframe></div></div><div class=self-start><h2 class="os-section-title mt-3">从一个科研目标进入智能开发</h2><p class=os-section-copy>开发者可以先选择数据集、模型、组件、算力环境和评估指标,再通过 OneSkills 把这些先验知识与工程资产编排成可运行、可追踪、可复用的科研工作流。</p><div class="mt-7 flex flex-wrap gap-3 text-14-bold"></div></div></div></section><section class="os-section os-case-section"><div class="os-container os-case-layout"><div><h2 class="os-section-title mt-3">典型科研智能化案例</h2><p class="os-section-copy mt-4">围绕气象、材料、PDE 和科学模型扩展等高频科研开发场景,将知识资产、工程流程和智能体执行沉淀为可复用案例。</p></div><div class=os-case-list></div></div></section><section class=os-section><a href=https://www.modelscope.cn/organization/OneScience target=_blank rel=noreferrer class="os-container os-join-panel os-join-panel-link"aria-label="加入 OneScience 社区,前往魔搭社区主页"><div><h2 class="os-section-title mt-3">加入OneScience社区</h2><p class="os-section-copy os-join-copy">围绕科学模型研发构建、国产模型生态建设,开放欢迎科研团队、开发者、模型作者、数据贡献者和工程伙伴一起沉淀模型、数据、组件和技能,构建面向科学发现的先验知识生态。 对社区贡献者提供算力和模型服务支持。</p></div><div class="grid gap-3 md:grid-cols-2">'),zu=o("<span class=os-hero-line>"),ju=o("<span class=os-hero-node>"),Wu=o("<img class=os-metric-card-bg alt loading=lazy>",!0,!1,!1),Pr=o("<span class=os-metric-card-arrow>查看资源"),kr=o("<div class=os-metric-card-value>"),Dr=o("<h3>"),di=o("<p>"),Vu=o("<article class=os-achievement-card><img alt loading=lazy><div class=os-achievement-card-body><h3></h3><p>",!0,!1,!1),Ku=o("<article class=os-community-card><h3></h3><p>"),Xu=o("<section class=os-section><div class=os-container><div class=os-section-head><h2 class=os-section-title>"),Ju=o("<div class=os-eyebrow>"),Qu=o("<article class=os-info-card><div class=os-info-card-media><img alt loading=lazy></div><div class=os-info-card-content><h3></h3><p>",!0,!1,!1),Zu=o("<div class=os-sidebar-account>"),Ar=o("<span class=os-sidebar-account-avatar aria-hidden=true>"),Yu=o("<span class=os-sidebar-label><strong></strong><span>"),em=o("<span class=os-sidebar-label><strong></strong><span>账号管理"),tm=o("<div class=os-sidebar-account-menu-summary><span>账号管理</span><strong></strong><p>"),xr=o("<span class=os-sidebar-account-menu-icon aria-hidden=true>"),am=o("<p class=os-sidebar-account-menu-workspace>"),im=o('<span class="os-brand-mark os-brand-mark-large">✣'),ti=o("<span class=os-sidebar-label>"),rm=o("<div class=os-desktop-main-drag data-tauri-drag-region aria-hidden=true>"),nm=o('<main><aside class=os-sidebar><div class=os-sidebar-brand><button type=button class=os-sidebar-toggle></button></div><nav class=os-sidebar-nav></nav><div class=os-sidebar-footer><button type=button class="os-sidebar-link os-sidebar-action"data-action=workspace-settings><span class=os-sidebar-label>设置</span></button></div></aside><section class=os-workspace-main>'),sm=o("<div class=os-sidebar-group>"),om=o('<div class=os-sidebar-fold><button type=button class="os-sidebar-link os-sidebar-link-fold"><span class=os-sidebar-label></span></button><div class=os-sidebar-subnav>'),lm=o("<span>查看全部"),cm=o('<section class=os-home-hub-section><div class=os-home-hub-head><h2 class=os-block-title></h2></div><div class="os-resource-grid os-home-hub-grid">'),dm=o('<div class=os-workspace-content><div class=os-workspace-container><div class=os-workspace-hero><h1><span>OneScience</span>智能科研工作台</h1><p>定义结构,智能生成,可验证运行</p></div><form class=os-prompt-panel><textarea id=onescience-ai-prompt class=os-prompt-input aria-label="AI 输入框"rows=4 placeholder="描述你想开发的科学模型,例如:创建一个基于 Transformer 的气候预测模型..."></textarea><div class=os-prompt-actions><span class=os-prompt-hint>按 Enter 发送,Shift + Enter 换行</span><button class="os-button os-button-primary os-prompt-submit"type=submit>发送</button></div></form><h2 class="os-block-title os-home-domain-title">领域工作台</h2><div class=os-domain-grid>'),um=o("<a class=os-domain-card><img class=os-domain-card-bg alt loading=lazy><div class=os-domain-card-content><h3></h3><p>",!0,!1,!1),Ii=o("<p class=os-data-empty>"),mm=o('<div class=os-workspace-content><div class=os-workspace-container><div class=os-resource-head><div><div class=os-eyebrow></div><h1></h1></div></div><div class=os-resource-toolbar><label class=os-search-box><span class=os-search-box-icon aria-hidden=true>⌕</span><input type=search></label><div class=os-resource-head-actions><span class=inline-flex><button type=button class="os-button os-button-secondary"></button></span></div></div><div class=os-filter-tabs>'),hm=o('<span class=inline-flex title=登录后使用><button type=button class="os-button os-button-secondary"disabled>上传技能'),Ga=o("<button type=button>"),pm=o("<p class=os-data-empty>暂无可展示的 OneSkills 技能,请先安装或上传技能。"),gm=o('<span class=inline-flex><button class="os-button os-button-secondary"type=button>上传'),Cn=o("<div class=os-load-more-sentinel>"),fm=o("<div class=os-workspace-content><div class=os-workspace-container><div class=os-resource-head><div><div class=os-eyebrow></div><h1></h1></div><div class=os-resource-head-actions><span></span></div></div><div class=os-resource-toolbar><label class=os-search-box><span class=os-search-box-icon aria-hidden=true>⌕</span><input type=search></label></div><div class=os-filter-tabs>"),Sn=o("<div class=os-resource-grid>"),bm=o("<p class=os-data-empty>正在加载..."),vm=o("<span class=os-skill-group-count>"),ym=o("<div>"),wm=o("<button type=button class=os-skill-layer-expand>"),$m=o('<section class="os-skill-group scroll-mt-24"><div class=os-skill-group-head><div class=os-skill-group-title-row><h2></h2></div><p>'),_n=o("<div class=os-dashboard-card>当前分类暂无技能卡片。"),Cm=o("<div class=os-skill-group-grid>"),Sm=o('<div class="os-resource-grid os-skill-card-grid">'),_m=o("<section class=os-skill-group><div class=os-skill-group-head><h2></h2><p>"),Pm=o("<div class=os-skills-fixed-row>"),km=o('<div class="os-skill-group-grid os-skills-overview os-skills-card-overview">'),Dm=o("<div class=os-skill-task-grid>"),Am=o('<button type=button class=os-skill-task-card><span class=os-skill-task-card-head><strong></strong><svg class=os-skill-task-arrow viewBox="0 0 16 16"aria-hidden=true><path d="M6 3.5 10.5 8 6 12.5"fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.8></path></svg></span><span class=os-skill-task-description>'),xm=o("<div class=os-resource-grid aria-busy=true>"),Mm=o('<div class="os-resource-card os-resource-skeleton"><div class="os-skeleton-line os-skeleton-badge"></div><div class="os-skeleton-line os-skeleton-title"></div><div class=os-skeleton-line></div><div class="os-skeleton-line os-skeleton-short"></div><div class=os-skeleton-meta><span></span><span>'),Im=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-resource-upload-dialog"><div class=os-upload-head><div><div class=os-eyebrow></div><h2></h2><p class=os-upload-intro></p></div><button type=button class="os-button os-button-secondary os-button-square">×</button></div><label><span class=os-field-label-row><span class=os-field-label>名称<span class=os-field-required aria-hidden=true> *</span></span><span class=os-field-count>/</span></span><input></label><label><span class=os-field-label-row><span class=os-field-label>描述<span class=os-field-required aria-hidden=true> *</span></span><span class=os-field-count>/</span></span><textarea></textarea></label><div class=os-upload-grid><label><span class=os-field-label>提供方<span class=os-field-required aria-hidden=true> *</span></span><span class=os-upload-field-hint>资源归属,决定卡片角标</span><select></select></label><label><span class=os-field-label-row><span class=os-field-label><span class=os-field-required aria-hidden=true> *</span></span><span class=os-field-count>/</span></span><span class=os-upload-field-hint></span><input></label><label><span class=os-field-label-row><span class=os-field-label><span class=os-field-required aria-hidden=true> *</span></span><span class=os-field-count>/</span></span><span class=os-upload-field-hint></span><input></label></div><label><span class=os-field-label-row><span class=os-field-label>标签</span><span class=os-field-count>/</span></span><input placeholder=多个标签用逗号或空格分隔></label><label>领域<select></select></label><label><span class=os-field-label-row><span class=os-field-label>链接</span><span class=os-field-count>/</span></span><input></label><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>'),Mr=o("<option>"),ba=o("<div class=os-upload-error>"),Fm=o('<button type=button class="os-button os-button-primary">'),Tm=o('<div class=os-modal-backdrop role=presentation><div class=os-upload-dialog><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><p class=os-section-copy>案例 <strong></strong> 对应的预置会话已被删除,无法跳转到科研开发。</p><p class=os-section-copy></p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">关闭'),Em=o("<span class=os-skill-tile-badge data-tone=muted>"),Om=o('<button type=button class="os-button os-button-card os-card-action-link os-skill-tile-action">'),Nm=o("<div class=os-skill-tile><div class=os-skill-tile-head><h2></h2><div class=os-skill-tile-badges><span class=os-skill-tile-badge></span></div></div><div class=os-skill-tile-footer><div class=os-skill-tile-meta><span class=os-skill-tile-dot aria-hidden=true></span><span></span></div><div class=os-skill-tile-actions>"),Rm=o("<div class=os-source-badge>"),Lm=o("<div class=os-card-heading-row><h2></h2><div class=os-card-heading-actions>"),Pn=o("<div class=os-tag-row>"),Um=o("<span class=text-green-600><span aria-hidden=true>✓</span><span class=os-meta-text>"),Gm=o("<div class=os-meta-list><span><span aria-hidden=true>◈</span><span class=os-meta-text></span></span><span><span aria-hidden=true>◒</span><span class=os-meta-text>"),ra=o('<button type=button class="os-button os-button-card os-card-action-link">'),Bm=o('<div class=os-dataset-download-status><button type=button class="os-button os-button-card os-button-downloading os-card-action-link"></button><div class=os-dataset-download-progress role=progressbar aria-valuemin=0 aria-valuemax=100 aria-label=数据集下载进度><div class=os-dataset-download-progress-fill>'),Hm=o('<div class=os-card-footer><div class="os-card-actions os-card-action-row">'),qm=o("<a class=os-card-title-link target=_blank rel=noreferrer>"),kn=o("<span class=os-tag>"),Ir=o('<a class="os-button os-button-card os-card-action-link"target=_blank rel=noreferrer>'),zm=o('<a class="os-button os-button-card os-card-action-link"target=_blank rel=noreferrer>论文'),jm=o('<button type=button class="os-button os-button-card os-card-action-link os-primitive-publish-action">'),Wm=o('<button type=button class="os-button os-button-card os-card-action-link os-primitive-view-action">查看原语'),Vm=o('<article class="os-resource-card scroll-mt-24">'),Km=o("<a class=os-card-link-cover target=_blank rel=noreferrer tabindex=-1>"),Xm=o("<button type=button data-danger=true>删除"),Jm=o("<div class=os-card-menu-popover><button type=button>修改"),Qm=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-delete-dialog"><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><p>删除后该卡片会从当前资源库中移除。</p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>'),Zm=o('<div class=os-card-menu><button type=button class=os-card-menu-trigger><svg viewBox="0 0 16 16"aria-hidden=true><path d="M5 5.25h6M5 8h6M5 10.75h6"stroke=currentColor stroke-linecap=round stroke-width=1.75>'),Ym=o('<div class=os-management-page><header class=os-management-topbar><div><div class=os-management-title-row><h1>任务管理</h1><span class=os-management-count>训练中 1</span><span class=os-management-count>已完成 1</span><span class="os-management-count os-management-count-danger">失败 1</span></div><p>统一管理科研开发中的训练、处理、生成和发布任务。</p></div><div class=os-management-actions><button class="os-button os-button-secondary"type=button>任务配置</button><button class="os-button os-button-primary"type=button>+ 新建任务</button></div></header><div class="os-management-layout os-management-layout-tasks"><aside class=os-management-sidebar><div class=os-search-box>⌕ 搜索训练任务...</div><div class=os-management-list></div></aside><section class=os-management-detail><div class=os-management-detail-head><div><h2>蛋白质结构预测训练</h2><p>AlphaFold-v3</p></div><div class=os-management-actions><button class="os-button os-button-secondary"type=button>暂停</button><button class="os-button os-button-ghost"type=button>•••</button></div></div><div class=os-management-metrics><div><span>Loss</span><strong>0.0234</strong></div><div><span>Accuracy</span><strong>94.56%</strong></div><div><span>预计剩余</span><strong>2小时30分</strong></div><div><span>资源</span><strong>4× A100</strong></div></div><section class=os-management-panel><div class=os-management-section-head><h3>训练进度</h3><strong>65%</strong></div><p>总体进度</p><div class=os-progress-track><div class=os-progress-fill style=width:65%></div></div><div class=os-management-progress-row><span>Epoch 130 / 200</span><span>开始时间: 2024-01-15 09:30</span></div></section><section class=os-management-panel><div class=os-management-section-head><h3>训练日志</h3></div><pre class=os-management-log>[11:33:26] 训练任务已创建 [11:33:26] 分配资源:4× A100 [11:33:26] 开始训练 [11:33:26] Epoch 1/100 - Loss: 0.1234 - Accuracy: 0.5678 [11:33:26] Epoch 2/100 - Loss: 0.0987 - Accuracy: 0.6234 [11:33:26] Epoch 3/100 - Loss: 0.0876 - Accuracy: 0.6789'),eh=o("<article class=os-management-list-card><div class=os-management-card-head><h2></h2><span></span></div><p></p><div class=os-management-progress-row><span></span><strong>%</strong></div><div class=os-progress-track><div class=os-progress-fill>"),th=o('<div class="os-management-page os-data-intake-page"><header class=os-management-topbar><div><div class=os-management-title-row><h1>数据管理</h1></div><p>数据接入与可训练数据已迁移到能力中心的 OneData。旧版 AI Ready 项目流已停用。</p></div><div class=os-management-actions>'),ah=o("<button type=button class=os-onedata-stage-link>没有合适的?去登记自己的数据"),ih=o("<div class=os-client-capability-catalog-toolbar><label class=os-client-capability-catalog-search><span>搜索</span><input type=search placeholder=按名称、简介或标签筛选></label><div class=os-client-capability-catalog-toolbar-side><span class=os-client-capability-catalog-count>"),rh=o('<div class="os-resource-grid os-client-capability-onedata-grid">'),nh=o("<p class=os-client-capability-empty>"),sh=o("<div class=os-workspace-content><div class=os-workspace-container><div class=os-resource-head><div><div class=os-eyebrow>Primitive Workspace</div><h1>AI原语</h1></div></div><div class=os-filter-tabs><button type=button>原语目录</button><button type=button>原语工厂"),oh=o("<div class=os-primitive-category-bar aria-label=原语类别>"),lh=o("<div class=os-dashboard-card>正在从数据库加载原语..."),ch=o('<section class=os-skill-group><div class=os-skill-group-head><h2>原语目录</h2><p></p></div><div class="os-resource-toolbar os-primitive-catalog-toolbar"><label class=os-search-box><span class=os-search-box-icon aria-hidden=true>⌕</span><input type=search></label><button type=button class="os-button os-button-secondary"></button></div><div class=os-primitive-filter-panel><div class="os-filter-tabs os-primitive-scope-tabs"aria-label=数据范围>'),dh=o("<button type=button class=os-primitive-category-chip>"),uh=o("<div class=os-dashboard-card>正在加载原语工厂队列..."),mh=o("<div class=os-dashboard-card>当前阶段暂无原语。请从资源卡片「发布原语」补全契约并发布。"),hh=o('<section class=os-skill-system><div class=os-skill-system-head><div><h2>原语工厂</h2><p></p></div></div><div class="os-management-toolbar mt-4"><div class=os-filter-tabs></div><div class=os-card-actions></div></div><div class="os-resource-grid mt-4">'),ph=o("<button type=button> "),Dn=o('<button type=button class="os-button os-button-card os-card-action-link os-card-delete-action os-primitive-card-delete">删除'),gh=o('<article class="os-resource-card os-primitive-card os-resource-card-clickable"data-source=onescience role=button tabindex=0><div class=os-card-heading-row><h2></h2><div class=os-source-badge data-source=onescience></div></div><div class=os-meta-list><span><span aria-hidden=true>◈</span></span><span><span aria-hidden=true>◒</span></span></div><div class="os-card-footer os-primitive-card-footer"><div class="os-card-actions os-card-action-row">'),fh=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-delete-dialog"><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><p>是否要删除该原语?删除后将从原语工厂队列中移除。</p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>'),bh=o('<button type=button class="os-button os-button-primary os-button-card os-card-action-link">使用原语'),vh=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-delete-dialog"><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><p>是否要删除该原语?删除后将从原语目录中移除。</p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>'),yh=o('<article class="os-resource-card os-primitive-card scroll-mt-24"data-source=onescience><div class=os-card-heading-row><h2></h2><div class=os-source-badge data-source=onescience></div></div><div class=os-tag-row></div><div class=os-meta-list><span><span aria-hidden=true>◈</span></span><span><span aria-hidden=true>◒</span></span><span class=os-primitive-slug><span aria-hidden=true>#</span></span></div><div class="os-card-footer os-primitive-card-footer"><div class="os-card-actions os-card-action-row"><button type=button class="os-button os-button-card os-card-action-link">查看契约'),wh=o("<span class=os-tag>来源:"),$h=o('<div class=os-modal-backdrop role=presentation><div class=os-upload-dialog><div class=os-upload-head><div><div class=os-eyebrow>Primitive Contract</div><h2></h2></div><button type=button class="os-button os-button-secondary os-button-square">×</button></div><div class=os-contract-section-title>源码契约 JSON</div><pre class=os-primitive-contract-json>'),Ch=o("<section class=os-agent-contract><div class=os-contract-section-title>智能体契约</div><p></p><div class=os-contract-usage-list>"),Sh=o("<code>"),_h=o("<article class=os-agent-contract-asset><div class=os-contract-asset-head><span>资产契约</span><strong></strong></div><div class=os-contract-section-grid>"),Ph=o("<div class=os-contract-mini-section><strong></strong><p>");function Mt(e){return(()=>{var t=Pu();return i(t,n(y,{get when(){return e.name==="home"},get children(){return[md(),hd(),pd()]}}),null),i(t,n(y,{get when(){return e.name==="code"},get children(){return[gd(),fd(),bd()]}}),null),i(t,n(y,{get when(){return e.name==="tasks"},get children(){return[vd(),yd(),wd(),$d(),Cd(),Sd()]}}),null),i(t,n(y,{get when(){return e.name==="data-management"},get children(){return[_d(),Pd(),kd(),Dd()]}}),null),i(t,n(y,{get when(){return e.name==="skills"},get children(){return Ad()}}),null),i(t,n(y,{get when(){return e.name==="primitives"},get children(){return[xd(),Md(),Id(),Fd(),Td(),Ed(),Od(),Nd()]}}),null),i(t,n(y,{get when(){return e.name==="database"},get children(){return[Rd(),Ld(),Ud()]}}),null),i(t,n(y,{get when(){return e.name==="model"},get children(){return[Gd(),Bd(),Hd(),qd(),zd()]}}),null),i(t,n(y,{get when(){return e.name==="apps"},get children(){return[jd(),Wd(),Vd(),Kd()]}}),null),i(t,n(y,{get when(){return e.name==="framework"},get children(){return[Xd(),Jd(),Qd()]}}),null),i(t,n(y,{get when(){return e.name==="operator"},get children(){return[Zd(),Yd(),eu(),tu(),au(),iu()]}}),null),i(t,n(y,{get when(){return e.name==="cases"},get children(){return[ru(),nu(),su(),ou()]}}),null),i(t,n(y,{get when(){return e.name==="docs"},get children(){return[lu(),cu(),du(),uu()]}}),null),i(t,n(y,{get when(){return e.name==="users"},get children(){return[mu(),hu(),pu(),gu()]}}),null),i(t,n(y,{get when(){return e.name==="settings"},get children(){return[fu(),bu(),vu(),yu(),wu(),$u(),Cu(),Su(),_u()]}}),null),t})()}const Fr=[{label:"OneModel",eyebrow:"Scientific Models",copy:"覆盖气象、生信、材料、流体等领域的科研基座模型,安装后可直接进入对话工作台使用。",items:[{title:"全部模型",copy:"跨领域预训练与科研基座模型总览",href:et("onemodel")},{title:"材料化学",copy:"MACE、DeePMD、MatRIS 等材料与分子模拟模型",href:et("onemodel","materials")},{title:"地球科学",copy:"FuXi、GraphCast、FourCastNet 等气象预报模型",href:et("onemodel","weather")},{title:"生命科学",copy:"蛋白结构、序列设计与生信基础模型",href:et("onemodel","bio")},{title:"流体仿真",copy:"CFD、PDE 神经算子与流场预测模型",href:et("onemodel","fluid")}]},{label:"OneData",eyebrow:"Scientific Data",copy:"沉淀可检索、可下载、可接入的科学数据,将领域数据转化为智能开发的先验知识。",items:[{title:"全部数据集",copy:"跨领域高质量科学数据集总览",href:et("onedata")},{title:"地球科学",copy:"ERA5、气象、遥感、海洋再分析数据",href:et("onedata")},{title:"材料化学",copy:"晶体、反应、ML 势函数与材料图谱",href:et("onedata")},{title:"生命科学",copy:"基因组、蛋白结构、药物对接与组学数据",href:et("onedata")},{title:"流体仿真",copy:"CFD、湍流、PDE 基准与流场样本",href:et("onedata")}]},{label:"OneSkills",eyebrow:"Agent Skills",copy:"将数据、模型、组件、远程运行和评估过程组织成可编排的智能开发技能。",items:ca.map(e=>({title:e.title,copy:e.copy,href:et("oneskills")}))},{label:"案例",eyebrow:"Research Cases",copy:"面向真实科研任务的端到端场景化落地范例,覆盖数据准备、模型训练、评测验证与工程改造。",items:[{title:"全部案例",copy:"跨领域完整科研流程与可复现实践",href:Gs("open")},{title:"地球科学",copy:"天气预报模型训练、海气耦合搭建与并行训练改造",href:Aa("earth")},{title:"材料化学",copy:"机器学习势函数训练、第一性原理计算与材料性质预测",href:Aa("material")},{title:"生命科学",copy:"蛋白序列设计、语言模型微调与结构预测验证",href:Aa("life")},{title:"流体仿真",copy:"CFD 基准训练、网格仿真推理与 PDE 神经算子评测",href:Aa("fluid")}]},{label:"文档&下载",eyebrow:"Docs and Downloads",copy:"用户手册、插件与镜像说明、版本发版记录。",items:[{title:"用户手册",copy:"平台使用、项目创建和工作流说明",href:Ja("manual")},{title:"插件与镜像说明",copy:"OneSkills 插件协议、运行环境镜像和扩展方式",href:Ja("plugins")},{title:"版本发版记录",copy:"v0.1.0 -> v0.3.0",href:Ja("release")}]}],kh=[{tag:"Earth System",title:"海气融合模型小时级调试搭建",copy:"从 ERA5、海温场和大气变量出发,自动匹配数据读取、预处理脚本、模型配置和远程运行模板,快速完成可调试的海气耦合实验骨架。",result:"小时级形成可运行工作流",sessionId:"ses_173de5f78ffemATonCgBtx7ECA"},{tag:"Material Science",title:"材料数据快速接入 MACE 训练",copy:"将结构数据、标注格式、训练参数和 MACE 示例流程组织成可复用任务,减少材料体系从数据准备到首轮训练的工程成本。",result:"数据接入到训练脚本一体化",sessionId:"ses_09102687affe6WEyKzrDV0i5tJ"},{tag:"PDE Benchmark",title:"PDE 求解算法快速对比",copy:"围绕 FNO、DeepONet、PINNs 等算法沉淀统一数据接口、评估指标和运行环境,让同一物理问题可以快速切换模型并横向比较。",result:"统一评测口径与结果对比",sessionId:"ses_10bffedbbffeAnlewduYPOpjBz"},{tag:"Model Scaling",title:"科学模型一键参数扩展",copy:"基于已有模型配置、算力约束和训练日志,自动生成参数扩展方案、并行策略和任务提交脚本,支持科学模型从小规模验证走向大规模实验。",result:"扩展方案可追踪复用",sessionId:"ses_131e650f7ffejnFYPuWmd1TBPr"}];function Ea(e){const t=Mo(ft());return e.ensureSessions?.(t),(async()=>e.serverUrl&&!await Io({serverUrl:e.serverUrl,sessionId:e.sessionId,directory:t})?"missing":(e.navigate(Fo(t,e.sessionId)),"opened"))()}function Dh(e){const t=ot(),a=Tt(),r=wt(),[s,l]=S(!1),[d,c]=S(!1),g=async()=>{if(!s()){if(!t.current){la({variant:"error",title:"打开失败",description:"请先连接平台服务"});return}l(!0);try{await Ea({sessionId:e.item.sessionId,serverUrl:t.current.http.url,navigate:r,ensureSessions:u=>{a.project.loadSessions(u)}})==="missing"&&c(!0)}catch(b){la({variant:"error",title:"打开失败",description:b instanceof Error?b.message:"案例打开失败"})}finally{l(!1)}}},v=async b=>{const u=t.current;if(!u)throw new Error("恢复失败");const h=await Ai(u.http.url,b);c(!1),await Ea({sessionId:h.sessionId,serverUrl:u.http.url,navigate:r,ensureSessions:f=>{a.project.loadSessions(f)}})};return[(()=>{var b=ku(),u=b.firstChild,h=u.nextSibling,f=h.firstChild,w=f.nextSibling,_=w.nextSibling,p=h.nextSibling;return b.$$click=()=>void g(),i(u,()=>String(e.index+1).padStart(2,"0")),i(f,()=>e.item.tag),i(w,()=>e.item.title),i(_,()=>e.item.copy),i(p,()=>e.item.result),E(M=>{var N=s(),L=s();return N!==M.e&&(b.disabled=M.e=N),L!==M.t&&R(b,"aria-busy",M.t=L),M},{e:void 0,t:void 0}),b})(),n(y,{get when(){return d()},get children(){return n(Zn,{get title(){return e.item.title},get sessionId(){return e.item.sessionId},onClose:()=>c(!1),onRestore:b=>v(b)})}})]}const Ah=[{title:"多类机构",copy:"支持科研院所、高校与产业实验室开展 AI4S 应用建设",image:"/assets/onescience/platform-users.png"},{title:"模型构建",copy:"支撑科学模型训练、参数扩展、仿真评估与复现实验",image:"/assets/onescience/model-building.png"},{title:"智能化科研",copy:"推动智能体与大模型在数据接入、任务规划、代码生成和结果分析中的高效利用",image:"/assets/onescience/research-scenario.png"},{title:"持续共建",copy:"联合领域团队扩展知识资产、Skill 原语和科研工作流",image:"/assets/onescience/partner-network.png"}],xh=[["降幻觉","知识体系约束大模型语义","/assets/onescience/knowledge-archive.png"],["高稳定","Skills体系规范智能体执行边界","/assets/onescience/knowledge-flow.png"],["可沉淀","先验知识、后验知识构建知识体系","/assets/onescience/agent-orchestrator.png"],["降成本","Mcp/cli化降低调用消耗","/assets/onescience/reuse-loop.png"]],Mh=[["科学模型研发构建","共建 AI4S 模型、训练流程、评测基准与复现实验资产。"],["国产模型生态建设","沉淀国产模型适配、推理服务、工程组件和应用示例。"],["数据组件技能共建","共同扩展科研数据、算子组件、Skill 原语与工作流模板。"],["贡献者支持","对社区贡献者提供算力资源、模型服务和协作支持。"]],Ih=["科学模型研发","国产模型生态","数据组件共建","Skill 原语","科研工作流","算力与模型服务"],Fh=[{title:"材料化学",copy:"分子模拟、晶体预测、反应计算",href:"https://www.scnet.cn/ui/aihub/models/easyscience2024/onescience-matchem-models",image:"/assets/onescience/workbench-materials-chemistry.png"},{title:"地球科学",copy:"气候模拟、地质分析、环境预测",href:"https://www.scnet.cn/ui/aihub/models/easyscience2024/OneScience-Earth-Model",image:"/assets/onescience/workbench-earth-science.png"},{title:"流体力学",copy:"CFD计算、湍流分析、多相流",href:"https://www.scnet.cn/ui/aihub/models/easyscience2024/OneScience-CFD-models",image:"/assets/onescience/workbench-fluid-dynamics.png"},{title:"生命科学",copy:"基因分析、蛋白预测、药物发现",href:"https://www.scnet.cn/ui/aihub/models/easyscience2024/OneScience-Bio-Al4S",image:"/assets/onescience/workbench-life-science.png"}],Th=[{title:"模型库",href:et("onemodel"),page:"models",itemTitles:["FuXi","MACE","SimpleFold","Transolver-Airfoil-Design"]},{title:"数据集",href:et("onedata"),page:"datasets",itemTitles:["全球再分析","Nanotube","proteinmpnn","CFDBench数据集"]},{title:"应用库",href:et("hpc"),page:"apps",itemTitles:["SPECFEM3D","ABACUS","AutoDock-GPU","nekRS"]}];function Eh(e,t){return Be[e].items.find(a=>a.title===t)}const Oh=[[7,74,1.15],[16,38,.78],[24,25,1],[32,53,1.28],[42,18,.8],[51,42,1.12],[61,21,.92],[70,47,1.24],[82,31,.82],[91,67,1.1]],Nh=[[8,74,21,-34],[16,39,26,-12],[24,27,20,36],[32,53,21,-40],[42,19,21,20],[51,43,21,-32],[61,22,22,36],[70,48,22,-31],[17,38,33,22],[28,56,43,-19],[43,18,38,12],[56,46,36,25]],Rh="https://github.com/onescience-ai/OneSkills",Lh=[{id:"resource.discovery",title:"资源理解与检索"},{id:"data.building",title:"数据与样本构建"},{id:"model.building",title:"模型构建与适配"},{id:"training",title:"训练与调参"},{id:"inference.evaluation",title:"推理评估与 Benchmark"},{id:"performance.optimization",title:"性能优化与工程化"},{id:"runtime.deployment",title:"运行环境与部署"},{id:"report.reproducibility",title:"科研报告与复现归档"}],An=new Set(["地球科学","生命科学","其它","其他","材料科学","材料化学","流体仿真","benchmarking","foundation-model","pretraining","weather","forecasting"]),Uh=new Set(["用户手册"]),Gh=[$("life-pdb","PDB结构库","PDB:蛋白与复合物结构建模的核心公共结构库",["生命科学","protein","structure","mmcif","pdb"],"RCSB PDB / wwPDB","mmCIF/PDB","mmCIF/PDB","https://www.rcsb.org/downloads/"),$("life-uniref90","UniRef90","UniRef90:蛋白同源聚类序列库,常用于 MSA 搜索",["生命科学","protein","sequence","msa"],"UniProt","FASTA","FASTA","https://ftp.uniprot.org/pub/databases/uniprot/uniref/uniref90/"),$("life-uniprot","UniProt","UniProt:通用蛋白知识库,支持多聚体与配对信息构建",["生命科学","protein","sequence","annotation"],"UniProt","FASTA","FASTA","https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/"),$("life-bfd","BFD","BFD:AlphaFold 系列常用的大规模蛋白序列数据库",["生命科学","protein","msa","sequence"],"MMseqs/Soding Lab","FASTA","FASTA","https://bfd.mmseqs.com/"),$("life-mgnify","MGnify","MGnify:宏基因组蛋白序列资源,常用于 MSA 检索",["生命科学","metagenomics","protein","msa"],"EMBL-EBI","FASTA","FASTA","https://ftp.ebi.ac.uk/pub/databases/metagenomics/peptide_database/2022_05/"),$("life-afdb-swissprot","AFDB-SP","AFDB SwissProt:AlphaFold DB 的 SwissProt 蒸馏结构子集",["生命科学","protein","structure","swissprot"],"AlphaFold DB / EMBL-EBI","mmCIF/CSV","mmCIF/CSV","https://ml-site.cdn-apple.com/models/simplefold/swissprot_list.csv"),$("life-afesm","AFESM","AFESM:用于折叠训练的大规模蒸馏蛋白结构集合",["生命科学","protein","structure","simplefold"],"Foldseek / Apple","mmCIF/CSV","mmCIF/CSV","https://ml-site.cdn-apple.com/models/simplefold/afesm_list.csv"),$("life-afesme","AFESM-E","AFESM-E:AFESM 的扩展聚类版本,用于大规模折叠训练",["生命科学","protein","structure","clustering"],"Foldseek / Apple","JSON/mmCIF","JSON/mmCIF","https://ml-site.cdn-apple.com/models/simplefold/afesme_dict.json"),$("life-opengenome2","OpenGenome2","OpenGenome2:面向跨物种基因组建模的大规模序列数据集",["生命科学","genomics","dna","foundation_model"],"Arc Institute","FASTA/JSON","FASTA/JSON","https://modelscope.cn/datasets/arcinstitute/opengenome2"),$("life-casp14","CASP14","CASP14:蛋白质结构预测标准评测集,用于折叠基准测试",["生命科学","protein","structure","benchmark"],"CASP / Apple","mmCIF/ZIP","mmCIF/ZIP","https://ml-site.cdn-apple.com/models/simplefold/casp14_predictions.zip"),$("life-cameo22","CAMEO22","CAMEO22:持续更新型蛋白折叠评测基准的 2022 样本包",["生命科学","protein","structure","benchmark"],"CAMEO / Apple","mmCIF/ZIP","mmCIF/ZIP","https://ml-site.cdn-apple.com/models/simplefold/cameo22_predictions.zip"),$("life-apo","Apo","Apo:双态蛋白 Apo 任务数据,用于构象切换评估",["生命科学","protein","structure","benchmark"],"Apple SimpleFold","PDB/ZIP","PDB/ZIP","https://ml-site.cdn-apple.com/models/simplefold/apo_predictions.zip"),$("life-codnas","CoDNaS","CoDNaS:蛋白构象多样性数据,用于 fold-switch 评估",["生命科学","protein","structure","fold_switch"],"CoDNaS / Apple","PDB/ZIP","PDB/ZIP","https://ml-site.cdn-apple.com/models/simplefold/codnas_predictions.zip"),$("life-protenix-release-data","Protenix包","Protenix Release Data:Protenix 训练与推理所需的预处理结构数据包",["生命科学","protein","structure","ligand"],"ByteDance AML AI4Science","tar.gz/mmCIF","tar.gz/mmCIF","https://af3-dev.tos-cn-beijing.volces.com/release_data.tar.gz"),$("life-hg38-mm10-reference","hg38/mm10","hg38 / mm10 Reference Genome:AlphaGenome 推理与微调使用的人类和小鼠参考基因组",["生命科学","genomics","dna","reference_genome"],"Genome reference providers","FASTA/FAI","FASTA/FAI","https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphagenome/README.md"),$("life-ur50d-2021-04","UR50D","UR50/D 2021_04:ESM README 中使用的 UniRef 派生蛋白预训练语料划分",["生命科学","protein","sequence","language_model"],"Meta AI / UniProt","FASTA","FASTA","https://github.com/facebookresearch/esm"),$("life-esm-structural-split","ESM结构集","ESMStructuralSplitDataset:ESM 系列用于结构预测评测与教程演示的结构划分数据集",["生命科学","protein","structure","esm"],"Meta AI","Structure splits","Structure splits","https://github.com/facebookresearch/esm"),$("life-esm-metagenomic-atlas","ESM Atlas","ESM Metagenomic Atlas:包含数亿条预测蛋白结构与嵌入的宏基因组结构图谱",["生命科学","protein","metagenomics","atlas"],"Meta AI","PDB/embeddings","PDB/API","https://esmatlas.com/"),$("life-tahoe-100m","Tahoe-100M","Tahoe-100M:1 亿细胞规模单细胞扰动数据集,用于虚拟细胞建模",["生命科学","single_cell","perturbation","transcriptomics"],"Tahoe / Arc Institute","h5ad/AnnData","h5ad/AnnData","https://huggingface.co/datasets/tahoebio/Tahoe-100M"),$("life-scbasecount","scBaseCount","scBaseCount:Arc 统一处理的超大规模单细胞 RNA 测序基础数据仓",["生命科学","single_cell","transcriptomics","atlas"],"Arc Institute","h5ad/AnnData","h5ad/AnnData","https://arcinstitute.org/news/news/arc-virtual-cell-atlas-launch"),$("life-replogle-nadig-perturbseq","Replogle集","Replogle-Nadig Perturb-seq:STATE 常用的单细胞基因扰动响应训练与评测数据集合",["生命科学","single_cell","perturbation","crispr"],"Perturb-seq community","h5ad/count matrix","h5ad/count matrix","https://figshare.com/articles/dataset/_Mapping_information-rich_genotype-phenotype_landscapes_with_genome-scale_Perturb-seq_Replogle_et_al_2022_-_commonly_requested_supplemental_files/21632564"),$("life-virtual-cell-challenge-dataset","VCell挑战","Virtual Cell Challenge Dataset:Arc 虚拟细胞挑战赛的标准扰动响应评测数据集",["生命科学","virtual_cell","challenge","single_cell"],"Arc Institute","h5ad/splits","h5ad/splits","https://zenodo.org/records/17342530"),$("life-pdbbind","PDBbind","PDBbind:蛋白-配体复合物与实验亲和力标注的经典对接数据集",["生命科学","protein_ligand","docking","affinity"],"PDBbind","PDB/SDF","PDB/SDF","https://www.pdbbind-plus.org.cn/"),$("life-bindingmoad","BindingMOAD","BindingMOAD:高质量蛋白-配体复合物资源,DiffDock 等模型常用其处理版",["生命科学","protein_ligand","docking","structure"],"Binding MOAD","PDB/complexes","PDB/complexes","https://github.com/gcorso/DiffDock"),$("life-dockgen","DockGen","DockGen:检验对接模型跨口袋泛化能力的蛋白-配体基准",["生命科学","protein_ligand","docking","generalization"],"DiffDock-L authors","complexes","complexes","https://github.com/gcorso/DiffDock"),$("life-posebusters-benchmark","PoseBusters","PoseBusters Benchmark:面向生成与对接结果几何合理性的蛋白-配体评测集",["生命科学","protein_ligand","docking","geometry"],"PoseBusters authors","complexes","complexes","https://github.com/maabuu/posebusters"),$("life-crossdocked2020","CrossDocked","CrossDocked2020:结构基药物设计常用的 cross-docking 训练数据集",["生命科学","protein_ligand","cross_docking","sbdd"],"CrossDocked2020 authors","PDB/SDF/LMDB","PDB/SDF/LMDB","https://bits.csb.pitt.edu/files/crossdock2020/v1.1/"),$("life-casf-2016","CASF-2016","CASF-2016:蛋白-配体评分、排序与对接能力的经典评测基准",["生命科学","protein_ligand","scoring","ranking"],"PDBbind / CASF","benchmark set","benchmark set","https://www.pdbbind-plus.org.cn/"),$("life-dekois2-dude-docking-poses","DEKOIS+DUD","DEKOIS2.0 and DUD-E Docking Poses:用于虚拟筛选与 pose 排序研究的对接姿态集合",["生命科学","protein_ligand","virtual_screening","docking"],"GenScore benchmark","docking poses","docking poses","https://zenodo.org/records/6859325"),$("life-csar-nrc-hiq","CSAR HiQ","CSAR NRC-HiQ:面向高质量复合物评分与筛选的结构生物信息 benchmark",["生命科学","protein_ligand","scoring","affinity"],"CSAR","benchmark set","benchmark set","http://www.csardock.org/"),$("life-merck-fep-benchmark","Merck FEP","Merck FEP Benchmark:面向亲和力建模与排序的药化自由能评测基准",["生命科学","affinity","scoring","medicinal_chemistry"],"Merck","benchmark set","benchmark set","https://github.com/sc8668/GenScore"),$("life-pdbbind-crossdocked-core","PDBbind-XD","PDBbind-CrossDocked-Core:结合 PDBbind 与 cross-docking 场景的核心评测集",["生命科学","protein_ligand","cross_docking","scoring"],"GenScore benchmark","benchmark set","benchmark set","https://zenodo.org/records/5525936"),$("life-mimic-cxr","MIMIC-CXR","MIMIC-CXR:大规模胸部 X 光影像与报告数据集,常用于医学多模态建模",["生命科学","xray","radiology","multimodal"],"PhysioNet / MIT","DICOM/reports","DICOM/reports","https://physionet.org/content/mimic-cxr/2.1.0/"),$("life-slake-vqa","SLAKE","SLAKE:医学图像问答数据集,用于视觉问答与多模态推理",["生命科学","medical_vqa","multimodal","image"],"PolyU","image/QA pairs","image/QA pairs","https://www.med-vqa.com/"),$("life-pad-ufes-20","PAD-UFES","PAD-UFES-20:皮肤病灶图像与临床信息数据集,适合皮肤科医学 AI",["生命科学","dermatology","image","classification"],"UFES","image/metadata","image/metadata","https://developers.google.com/health-ai-developer-foundations/medgemma/model-card"),$("life-tcga","TCGA","TCGA:癌症基因组图谱资源,支持多组学与病理任务",["生命科学","oncology","genomics","pathology"],"NCI / NHGRI","genomics/pathology","clinical data","https://portal.gdc.cancer.gov/"),$("life-camelyon","CAMELYON","CAMELYON:淋巴结病理切片转移检测标准数据集",["生命科学","pathology","histopathology","cancer"],"CAMELYON","whole-slide images","WSI","https://camelyon17.grand-challenge.org/"),$("life-pmc-oa","PMC-OA","PMC-OA:PubMed Central 开放子集,包含大量生物医学文图内容",["生命科学","biomedical_literature","multimodal","documents"],"NLM / NCBI","XML/PDF/images","XML/PDF","https://catalog.data.gov/dataset/pubmed-central-open-access-subset")],Be={primitives:Hr,datasets:{eyebrow:"OneData",title:"公开数据集",count:"共 150 个高质量数据集:地球科学 50,材料化学 20,生命科学 47,流体仿真 33",search:"搜索数据集名称、描述或标签...",filters:["全部","地球科学","材料化学","生命科学","流体仿真","其它"],items:[$("earth-era5","全球再分析","ERA5:ECMWF 全球大气陆面再分析数据集",["地球科学","weather","climate","reanalysis","global"],"ECMWF/C3S","GRIB/NetCDF","GRIB/NetCDF","https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels"),$("earth-cmems","海洋多层数据","Copernicus Marine Service Global Ocean Physics:Copernicus 全球海洋多层物理再分析数据集",["地球科学","ocean","reanalysis","forecast","global"],"CMEMS","NetCDF/Zarr","NetCDF/Zarr","https://data.marine.copernicus.eu/product-detail/GLOBAL_MULTIYEAR_PHY_001_030"),$("earth-merra2","NASA再分析","MERRA-2:NASA 全球大气再分析数据集",["地球科学","weather","climate","reanalysis","global"],"NASA","NetCDF","NetCDF","https://gmao.gsfc.nasa.gov/gmao-products/merra-2/data-access_merra-2/"),$("earth-jra3q","长期再分析","JRA-3Q:JMA 全球长期大气再分析数据集",["地球科学","weather","climate","reanalysis","global"],"JMA","GRIB","GRIB","https://search.diasjp.net/en/dataset/JRA3Q"),$("earth-jra55","日系再分析","JRA-55:JMA 55 年全球大气再分析数据集",["地球科学","weather","climate","reanalysis","global"],"JMA","GRIB","GRIB","https://search.diasjp.net/en/dataset/JRA55"),$("earth-ncep-ncar-r1","经典再分析","NCEP/NCAR Reanalysis 1:NOAA 经典全球大气再分析数据集",["地球科学","weather","climate","reanalysis","global"],"NOAA PSL","NetCDF","NetCDF","https://psl.noaa.gov/data/gridded/data.ncep.reanalysis.html"),$("earth-gfs","全球预报","Global Forecast System:NOAA 全球业务天气预报数据集",["地球科学","weather","forecast","global"],"NOAA","GRIB2","GRIB2","https://registry.opendata.aws/noaa-gfs-bdp-pds/"),$("earth-gefs","集合预报","Global Ensemble Forecast System:NOAA 全球集合天气预报数据集",["地球科学","weather","forecast","global"],"NOAA","GRIB2","GRIB2","https://registry.opendata.aws/noaa-gefs/"),$("earth-hrrr","区域高分预报","High-Resolution Rapid Refresh:NOAA 美国区域高分辨率预报数据集",["地球科学","weather","forecast","regional"],"NOAA","GRIB2","GRIB2","https://registry.opendata.aws/noaa-hrrr-pds/"),$("earth-ecmwf-open-data","欧洲开放预报","ECMWF Open Data:ECMWF 开放业务预报产品子集",["地球科学","weather","forecast","global"],"ECMWF","GRIB2","GRIB2","https://data.ecmwf.int/forecasts/"),$("earth-cmip6","气候情景","Coupled Model Intercomparison Project Phase 6:全球气候模式比较计划数据集",["地球科学","climate","projection","global"],"WCRP","NetCDF","NetCDF","https://esgf-node.llnl.gov/search/cmip6/"),$("earth-s2s","次季节预报","Subseasonal-to-Seasonal Prediction Database:多中心次季节到季节预测数据集",["地球科学","climate","forecast","global"],"WWRP/WCRP","GRIB","GRIB","https://apps.ecmwf.int/datasets/data/s2s/"),$("earth-cfsv2","季节预测","Climate Forecast System Version 2:NOAA 海气陆耦合季节预测数据集",["地球科学","climate","forecast","global"],"NOAA","GRIB2","GRIB2","https://nomads.ncep.noaa.gov/pub/data/nccf/com/cfs/prod/"),$("earth-oisst","海表温度","Optimum Interpolation Sea Surface Temperature:NOAA 全球海表温度融合数据集",["地球科学","ocean","observation","satellite","global"],"NOAA","NetCDF","NetCDF","https://www.ncei.noaa.gov/data/sea-surface-temperature-optimum-interpolation/"),$("earth-argo-gdac","海洋剖面","Argo GDAC:全球 Argo 海洋剖面观测数据集",["地球科学","ocean","observation","global"],"Argo","NetCDF","NetCDF","https://data-argo.ifremer.fr/"),$("earth-wod","海洋观测库","World Ocean Database:NOAA 全球海洋原位观测数据库",["地球科学","ocean","observation","global"],"NOAA","NetCDF","NetCDF","https://www.ncei.noaa.gov/products/world-ocean-database"),$("earth-hycom-gofs","海洋预报","HYCOM Global Ocean Forecast System:HYCOM 全球海洋分析与预报数据集",["地球科学","ocean","forecast","reanalysis","global"],"HYCOM","NetCDF","NetCDF","https://tds.hycom.org/thredds/catalog.html"),$("earth-gpm-imerg","卫星降水","Integrated Multi-satellitE Retrievals for GPM:NASA 全球多卫星降水反演数据集",["地球科学","precipitation","satellite","observation","global"],"NASA/JAXA","HDF5/NetCDF","HDF5/NetCDF","https://disc.gsfc.nasa.gov/datasets?keywords=IMERG"),$("earth-chirps","陆地降水","Climate Hazards InfraRed Precipitation with Station data:长时序全球陆地降水融合数据集",["地球科学","precipitation","observation","climate","global"],"CHC","GeoTIFF/NetCDF","GeoTIFF/NetCDF","https://data.chc.ucsb.edu/products/CHIRPS/v3.0/"),$("earth-gldas","陆面同化","Global Land Data Assimilation System:NASA 全球陆面同化数据集",["地球科学","land","hydrology","reanalysis","global"],"NASA","NetCDF/GeoTIFF/KMZ","NetCDF/GeoTIFF/KMZ","https://disc.gsfc.nasa.gov/datasets?keywords=GLDAS"),$("earth-smap","土壤湿度","Soil Moisture Active Passive:NASA 全球土壤湿度卫星观测数据集",["地球科学","land","hydrology","satellite","observation"],"NASA/JPL","HDF5/NetCDF","HDF5/NetCDF","https://podaac.jpl.nasa.gov/SMAP"),$("earth-grace-fo","陆水储量","GRACE/GRACE-FO Mascon:全球陆水储量与质量变化数据集",["地球科学","hydrology","satellite","observation","global"],"NASA/JPL","NetCDF","NetCDF","https://podaac.jpl.nasa.gov/GRACE-FO"),$("earth-nexrad-level2","天气雷达","NEXRAD Level II:NOAA 美国天气雷达基数据集",["地球科学","weather","radar","observation","regional"],"NOAA","Archive-II","Archive-II","https://github.com/awslabs/open-data-docs/tree/main/docs/noaa/noaa-nexrad"),$("earth-mrms","雷达融合","Multi-Radar Multi-Sensor System:NOAA 多雷达多传感器融合数据集",["地球科学","precipitation","radar","observation","regional"],"NOAA","GRIB2","GRIB2","https://mrms.ncep.noaa.gov/data/"),$("earth-goes-abi","静止卫星","GOES-R Advanced Baseline Imager:NOAA 静止气象卫星多通道观测数据集",["地球科学","weather","satellite","remote-sensing","observation"],"NOAA/NASA","NetCDF","NetCDF","https://registry.opendata.aws/noaa-goes/"),$("earth-himawari-ahi","亚太卫星","Himawari Advanced Himawari Imager:JMA 亚太静止气象卫星观测数据集",["地球科学","weather","satellite","remote-sensing","observation"],"JMA","HSD/NetCDF","HSD/NetCDF","https://www.eorc.jaxa.jp/ptree/"),$("earth-modis","MODIS 多光谱遥感","Moderate Resolution Imaging Spectroradiometer:NASA 多光谱地球观测遥感数据集",["地球科学","remote-sensing","satellite","land","ocean"],"NASA","HDF/NetCDF","HDF/NetCDF","https://search.earthdata.nasa.gov/search"),$("earth-landsat-c2","陆表遥感","Landsat Collection 2:USGS Landsat 全球陆表遥感数据集",["地球科学","remote-sensing","satellite","land","observation"],"USGS/NASA","GeoTIFF/COG","GeoTIFF/COG","https://www.usgs.gov/data/landsat-89-long-term-acquisition-plan-earths-continental-landmasses-and-near-shore-coastal"),$("earth-noaa-20cr","百年再分析","NOAA-CIRES-DOE 20th Century Reanalysis:NOAA 长时段全球大气再分析数据集",["地球科学","climate","reanalysis","global"],"NOAA","NetCDF","NetCDF","https://psl.noaa.gov/data/gridded/reanalysis/"),$("earth-cerra","欧洲区域再分析","Copernicus European Regional Reanalysis:Copernicus 欧洲高分辨率区域再分析数据集",["地球科学","weather","reanalysis","regional"],"C3S","GRIB/NetCDF","GRIB/NetCDF","https://cds.climate.copernicus.eu/datasets/reanalysis-cerra-single-levels"),$("earth-cams-global-atmosphere","大气成分预报","CAMS Global Atmospheric Composition Forecasts:Copernicus 全球气溶胶与化学成分预报数据集",["地球科学","atmosphere","forecast","air-quality","global"],"ECMWF/CAMS","GRIB/NetCDF","GRIB/NetCDF","https://ads.atmosphere.copernicus.eu/datasets/cams-global-atmospheric-composition-forecasts"),$("earth-cfsr","耦合再分析","Climate Forecast System Reanalysis:NOAA 海气陆冰耦合气候再分析数据集",["地球科学","climate","reanalysis","forecast","global"],"NOAA","GRIB2","GRIB2","https://www.ncei.noaa.gov/products/weather-climate-models/climate-forecast-system"),$("earth-nam","北美中尺度","North American Mesoscale Forecast System:NOAA 北美中尺度业务天气预报数据集",["地球科学","weather","forecast","regional"],"NOAA","GRIB2","GRIB2","https://www.nco.ncep.noaa.gov/pmb/products/nam/"),$("earth-rap","快速更新预报","Rapid Refresh:NOAA 北美逐小时快速更新分析预报数据集",["地球科学","weather","forecast","regional"],"NOAA","GRIB2","GRIB2","https://www.ncei.noaa.gov/products/weather-climate-models/rapid-refresh-update"),$("earth-mur-sst","高分海温","Multi-scale Ultra-high Resolution Sea Surface Temperature:NASA JPL 全球高分辨率海表温度数据集",["地球科学","ocean","satellite","observation","global"],"NASA/JPL","NetCDF","NetCDF","https://podaac.jpl.nasa.gov/dataset/MUR-JPL-L4-GLOB-v4.1"),$("earth-esa-sst-cci","海温气候记录","ESA Sea Surface Temperature CCI:ESA CCI 长时序海表温度气候数据记录",["地球科学","ocean","satellite","climate","global"],"ESA CCI","NetCDF","NetCDF","https://climate.esa.int/en/projects/sea-surface-temperature/data/"),$("earth-hadisst","历史海冰海温","Hadley Centre Sea Ice and Sea Surface Temperature:Met Office 全球海冰与海表温度观测数据集",["地球科学","ocean","climate","observation","global"],"Met Office","NetCDF","NetCDF","https://www.metoffice.gov.uk/hadobs/hadisst/data/download.html"),$("earth-sea-ice-cdr","海冰浓度","NOAA/NSIDC Passive Microwave Sea Ice Concentration CDR:NOAA NSIDC 被动微波海冰浓度气候记录",["地球科学","cryosphere","satellite","climate","global"],"NOAA/NSIDC","NetCDF","NetCDF","https://nsidc.org/data/g02202"),$("earth-ghcn-daily","全球站点日值","Global Historical Climatology Network Daily:NOAA 全球气象站逐日观测数据集",["地球科学","climate","observation","station","global"],"NOAA","CSV/TXT","CSV/TXT","https://www.ncei.noaa.gov/pub/data/ghcn/daily/"),$("earth-hadisd","全球站点小时值","HadISD:Met Office 全球质量控制逐小时站点观测数据集",["地球科学","climate","observation","station","global"],"Met Office","NetCDF","NetCDF","https://hadobs.metoffice.gov.uk/hadisd/data/download.html"),$("earth-gistemp","全球温度指数","GISS Surface Temperature Analysis:NASA 全球地表温度异常分析数据集",["地球科学","climate","observation","global"],"NASA","CSV/NetCDF","CSV/NetCDF","https://data.giss.nasa.gov/gistemp/"),$("earth-berkeley-earth","地表温度","Berkeley Earth Surface Temperature:Berkeley Earth 全球地表温度数据集",["地球科学","climate","observation","global"],"Berkeley Earth","TXT/NetCDF","TXT/NetCDF","https://berkeleyearth.org/data/"),$("earth-cmorph-cdr","卫星降水CDR","CMORPH Climate Data Record:NOAA 全球高分辨率卫星降水气候记录",["地球科学","precipitation","satellite","climate","global"],"NOAA","NetCDF","NetCDF","https://www.ncei.noaa.gov/products/climate-data-records/precipitation-cmorph"),$("earth-gsmap","全球降水图","Global Satellite Mapping of Precipitation:JAXA 全球卫星降水估计数据集",["地球科学","precipitation","satellite","observation","global"],"JAXA","NetCDF/Binary","NetCDF/Binary","https://sharaku.eorc.jaxa.jp/GSMaP/"),$("earth-persiann-cdr","神经网络降水","PERSIANN-CDR:CHRS NOAA 全球卫星降水气候记录数据集",["地球科学","precipitation","satellite","climate","global"],"CHRS/NOAA","NetCDF","NetCDF","https://chrsdata.eng.uci.edu/"),$("earth-cpc-unified-precip","雨量站降水","CPC Global Unified Gauge-Based Analysis of Daily Precipitation:NOAA CPC 全球逐日雨量站融合降水数据集",["地球科学","precipitation","observation","station","global"],"NOAA","NetCDF","NetCDF","https://psl.noaa.gov/data/gridded/data.cpc.globalprecip.html"),$("earth-sentinel1","雷达遥感","Sentinel-1:Copernicus C 波段合成孔径雷达观测数据集",["地球科学","remote-sensing","satellite","radar","observation"],"ESA","SAFE/GeoTIFF","SAFE/GeoTIFF","https://browser.dataspace.copernicus.eu/"),$("earth-sentinel2","Sentinel-2 多光谱遥感","Sentinel-2:Copernicus 高分辨率多光谱陆表观测数据集",["地球科学","remote-sensing","satellite","land","observation"],"ESA","SAFE/JP2","SAFE/JP2","https://browser.dataspace.copernicus.eu/"),$("earth-sentinel3","海陆卫星","Sentinel-3:Copernicus 海洋陆地温度色度高度观测数据集",["地球科学","remote-sensing","satellite","ocean","land"],"ESA","NetCDF/SEN3","NetCDF/SEN3","https://browser.dataspace.copernicus.eu/"),$("earth-sentinel5p","大气污染卫星","Sentinel-5P:Copernicus TROPOMI 大气成分遥感数据集",["地球科学","atmosphere","satellite","remote-sensing","air-quality"],"ESA","NetCDF","NetCDF","https://browser.dataspace.copernicus.eu/"),...Gh,$("fluid-pdebench","PDEBench基准","涵盖广泛偏微分方程的科学机器学习基准集",["流体仿真","pde","sciml","benchmark"],"PDEBench Team","PDEBench","HDF5","https://darus.uni-stuttgart.de/dataset.xhtml?persistentId=doi:10.18419/darus-2986"),$("fluid-cfdbench","CFDBench数据集","CFDBench:包含多样化边界条件与几何形状的 CFD 基准",["流体仿真","cfd","incompressible-flow","surrogate-modeling"],"Tsinghua University","CFDBench","Numpy (.npy)","https://huggingface.co/datasets/chen-yingfa/CFDBench"),$("fluid-rpb-cno","RPB 数据集","面向神经算子与科学机器学习的二维 PDE 基准数据集,涵盖 Poisson、Wave、Navier-Stokes、Darcy、Transport 等多类方程",["流体仿真","cfd","representative-pde-benchmarks","neural-operators"],"ETH Zurich / CAMLab 等研究机构","h5","h5"),$("fluid-fno","FNO 数据集","一组通过高精度数值求解器生成的参数化偏微分方程模拟数据,涵盖 Burgers、Darcy Flow 和 Navier-Stokes 等典型任务",["流体仿真","cfd","neural-operator","pde"],"加利福尼亚理工学院 (California Institute of Technology)","mat","mat"),$("fluid-pointnet-cfd","PointNetCFD 数据集","二维非结构网格 CFD 数据集,用于基于点云直接预测不规则几何绕流场中的速度与压力分布",["流体仿真","cfd","point-cloud","unstructured-mesh"],"Stanford University","npy","npy"),$("fluid-beno","BENO数据集","BENO:求解二维 Poisson/椭圆 PDE 边值问题的仿真数据集",["流体仿真","cfd","2d","poisson","elliptic-pde"],"OneScience","Numpy (.npy)","Numpy (.npy)"),$("fluid-deepcfd","DeepCFD基准","DeepCFD:二维稳态层流 CFD 数据集",["流体仿真","cfd","2d","steady-laminar-flow","navier-stokes"],"OneScience","Python Pickle (.pkl)","Python Pickle (.pkl)"),$("fluid-pdenneval","PDENNEval数据集","PDENNEval:多物理场 PDE 基准数据集,覆盖流体、材料、金融和电磁等领域的 19 个 PDE 问题",["流体仿真","pde-benchmark","sciml","multi-physics"],"OneScience","HDF5 (.h5)","HDF5 (.h5)"),$("fluid-pdearena","PDEArena代理","现代且可扩展的PDE代理模型分布式基准",["流体仿真","fluid-mechanics","electrodynamics","distributed-training"],"Microsoft Research","PDEArena","HDF5","https://huggingface.co/pdearena/datasets"),$("fluid-blastnet","BLASTNet库","高保真可压缩反应流与湍流3D超分数据集",["流体仿真","combustion","turbulence","3d-super-resolution"],"Stanford University","BLASTNet","JSON / Binary","https://blastnet.github.io/datasets"),$("fluid-jhtdb","霍普金斯湍流库","提供TB级各向同性湍流及通道流DNS查询",["流体仿真","turbulence","dns","virtual-sensors"],"Johns Hopkins University","Johns Hopkins Turbulence Databases","Web-service Queries","https://turbulence.idies.jhu.edu/home"),$("fluid-deepmind-l2s","DeepMind粒子数据集","DeepMind Learning-to-Simulate:用于 GNN 学习复杂粒子物理与流体动力学",["流体仿真","particle-simulation","gnn","lagrangian"],"DeepMind","DeepMind Learning-to-Simulate","TFRecord / Pickle","https://github.com/deepmind/deepmind-research/tree/master/learning_to_simulate"),$("fluid-deepmind-cylinder-flow","DeepMind圆柱绕流数据集","DeepMind 圆柱绕流涡脱落网格时序数据集,适用于 MeshGraphNet 等 GNN 训练",["流体仿真","cylinder-flow","gnn","deepmind","vortex-shedding"],"OneScience","TFRecord","TFRecord"),$("fluid-meshgraphnets","MeshGraph","基于网格的流体与结构物理模拟GNN数据集",["流体仿真","mesh-simulation","cfd","gnn"],"DeepMind","MeshGraphNets Datasets","TFRecord","https://github.com/wwMark/meshgraphnets/blob/main/meshgraphnets/download_dataset.sh"),$("fluid-fda-blood-flow","FDA血液流体力学","医疗器械中血液流动的非牛顿流体力学基准",["流体仿真","hemodynamics","non-newtonian","biomedical"],"FDA (CDRH)","FDA CFD Blood Flow Benchmark","CFD Simulation","https://github.com/OSEL-DAM/CFD-and-Blood-Damage-Benchmarks"),$("fluid-nasa-tmr","NASA湍流验证","广泛使用的RANS湍流模型验证与网格收敛库",["流体仿真","rans","turbulence","verification"],"NASA & AIAA TMBWG","NASA Turbulence Modeling Resource","Data (.dat) / Plot3D","https://github.com/TMBWG/turbmodels"),$("fluid-spdebench","SPDEBench","涵盖常规与奇异随机偏微分方程的统一数据",["流体仿真","spde","stochastic","mathematical-physics"],"UCL Rough Path and Machine Learning Group","SPDEBench","Parquet","https://huggingface.co/datasets/SSPDEBench/Reuglar_and_Singular_SPDEBench"),$("fluid-realpdebench","RealPDE基准","整合真实物理测量与匹配数值仿真的基准集",["流体仿真","sim-to-real","real-world-data","fluid-structure"],"AI4Science-WestlakeU","RealPDEBench","HDF5","https://huggingface.co/datasets/AI4Science-WestlakeU/RealPDEBench"),$("fluid-drivaernet","汽车气动CFD","超8150个高保真3D汽车空气动力学仿真集",["流体仿真","cfd","automotive","3d-geometry"],"Mohamed Elrefaie et al.","DrivAerNet++","3D Meshes / CFD arrays","https://dataverse.harvard.edu/dataverse/DrivAerNet"),$("fluid-drivaerml","DrivAerML","首个包含500个参数化汽车变体的高保真CFD外部空气动力学大型数据集",["流体仿真","cfd","automotive","high-fidelity"],"Ashton et al.","DrivAerML","VTU / VTP / CSV","https://huggingface.co/datasets/neashton/drivaerml"),$("fluid-eagle-dataset","Eagle数据集","用于学习非恒定湍流动力学的大规模数据集",["流体仿真","turbulent-flow","mesh-transformers","non-steady"],"INSA Lyon / Naver Labs","EAGLE","Mesh / Graph","https://dataset-dl.liris.cnrs.fr/eagle_dataset/"),$("fluid-shapenet-car","Shape-Net Car","Shape-Net Car:基于 ShapeNet 汽车模型的 3D 空气动力学流场",["流体仿真","car-aerodynamics","3d-geometry","cfd"],"IST Austria / Autodesk","ShapeNet-Car CFD","Zip / Mesh","http://www.nobuyuki-umetani.com/publication/mlcfd_data.zip"),$("fluid-airfrans","AirfRANS","二维不可压缩稳态RANS翼型空气动力学数据集",["流体仿真","airfoil","rans","incompressible-flow"],"Sorbonne Universite / Extrality","AirfRANS","OpenFOAM / PyVista","https://data.isir.upmc.fr/extrality/NeurIPS_2022/Dataset.zip"),$("fluid-geo-fno","Geo-FNO基准","评估不规则几何和拓扑变化下的偏微分方程算子",["流体仿真","irregular-geometries","fno","mesh-deformation"],"Caltech (Zongyi Li et al.)","Geo-FNO Datasets","NumPy / Mat","https://drive.google.com/drive/folders/1YBuaoTdOSr_qzaow-G-iwvbUI7fiUzu8"),$("fluid-bubbleml","BubbleML","包含沸腾过程的多相多物理场流体动力学机器学习数据",["流体仿真","boiling","multiphase-flow","thermodynamics"],"HPCForge","BubbleML","HDF5","https://doi.org/10.5281/zenodo.8039786"),$("fluid-rae2822-airfoil","RAE2822翼型","RAE2822跨音速翼型的大规模气动高保真模拟",["流体仿真","transonic-flow","airfoil","cvae"],"Giovanni Catalani et al.","RAE2822 Airfoil Dataset","NumPy (.npy)","https://zenodo.org/records/12700680"),$("fluid-cfdoneval","CFDNNEval模型评估集","22个流体基准问题的综合评估数据集",["流体仿真","neural-operator","benchmark","darcy-flow","multiphase"],"中山大学、IJCAI","CFDNNEval","HDF5 / NPZ","https://drive.google.com/drive/folders/1Ao9vfWjy1VTwTa-9N1axZlXlz1s6CjPW"),$("fluid-kolmogorov-flow-dns","Kolmogorov流DNS","三维Kolmogorov流直接数值模拟数据集",["流体仿真","dns","kolmogorov-flow","nek5000","ml-ready"],"Nature Scientific Data","Kolmogorov-Flow-DNS","VTK / Python","https://zenodo.org/records/16733422"),$("fluid-parameterized-u-bend","U型管道流数据集","万组U型管流动与换热CFD仿真",["流体仿真","heat-transfer","shape-optimization","openfoam","design-parameters"],"卡塞尔大学","Parameterized-U-Bend","CSV / OpenFOAM","https://daks.uni-kassel.de/handle/123456789/50"),$("fluid-blendednet","BlendedNet","包含999个翼身融合飞行器(BWB)的高保真气动数据集",["流体仿真","cfd","blended-wing-body","surrogate-modeling"],"MIT DeCoDE Lab & Lincoln Lab","BlendedNet","RANS CFD / Point Cloud","https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/VJT9EP"),$("fluid-naca0012-compressible","NACA0012可压缩流","NACA0012翼型可压缩RANS数据集",["流体仿真","compressible-flow","naca0012","su2","graph-neural-network"],"Mendeley Data / JCP","NACA0012-Compressible","CSV / NPZ","https://data.mendeley.com/datasets/g3x4phfr3r/2"),$("material-mptrj","MPtrj","Materials Project DFT 弛豫轨迹数据集",["材料化学","dft","relaxation-trajectory","inorganic","mlff"],"LBNL / CHGNet team","MPtrj","extxyz / json","https://figshare.com/articles/dataset/Materials_Project_Trjectory_MPtrj_Dataset/23713842"),$("material-salex","sAlex","FAIR 重打包的 Alexandria 子集,PBE 参考",["材料化学","dft","inorganic","alexandria","mlff"],"Alexandria DB / Schmidt et al.","sAlex","aselmdb","https://huggingface.co/datasets/facebook/OMAT24"),$("material-omat24","OMat24","Meta FAIR 无机材料大规模 PBE 数据集",["材料化学","dft","inorganic","foundation-data","fair-chem"],"Meta FAIR","OMat24","aselmdb","https://huggingface.co/datasets/facebook/OMAT24"),$("material-omol25","OMol25","Meta FAIR 大规模有机分子 ωB97M-V 数据集",["材料化学","dft","molecular","foundation-data","fair-chem"],"Meta FAIR","OMol25","aselmdb","https://huggingface.co/datasets/facebook/OMol25"),$("material-oc20","OC20","Open Catalyst 2020,催化吸附构型数据集",["材料化学","dft","catalysis","adsorption","fair-chem"],"Meta FAIR / CMU","OC20","lmdb / aselmdb","https://github.com/facebookresearch/fairchem/blob/main/docs/catalysts/datasets/oc20.md"),$("material-alexandria","Alexandria","高通量无机晶体 DFT 数据库",["材料化学","dft","inorganic","high-throughput","crystal"],"Schmidt et al. / RUB ICAMS","Alexandria","json / cif","https://alexandria.icams.rub.de/data/pbe/"),$("material-oc22","OC22","Open Catalyst 2022,氧化物催化剂数据集",["材料化学","dft","catalysis","oxide","fair-chem"],"Meta FAIR / CMU","OC22","lmdb / aselmdb","https://github.com/facebookresearch/fairchem/blob/main/docs/catalysts/datasets/oc22.md"),$("material-md22","MD22","大分子有机体系 MD 轨迹基准数据集",["材料化学","md","molecular","benchmark","mlff"],"sGDML team / Chmiela et al.","MD22","npz / xyz","http://www.quantum-machine.org/gdml/data/"),$("material-deepmd-water-demo","DeePMD水","DeePMD-kit 官方水分子训练示例数据",["材料化学","mlff","water","demo","deepmd"],"DeepModeling","DeePMD water","deepmd-npy","https://github.com/deepmodeling/deepmd-kit/tree/master/examples/water"),$("material-mace-example","MACE示例","MACE 官方 tutorial 训练示例数据",["材料化学","mlff","mace","demo","tutorial"],"ACEsuit / MACE team","MACE example","extxyz","https://github.com/ACEsuit/mace/tree/main/tests"),$("material-matpl-example","MatPL示例","MatPL NEP 训练示例 (AuAg/Cu/HfO2/LiSiC)",["材料化学","mlff","nep","demo","matpl"],"LonxunQuantum","MatPL example","extxyz","https://github.com/LonxunQuantum/MatPL"),$("material-ms-nanotube","Nanotube","OneScience 魔搭 Nanotube 材料机器学习势训练数据集",["材料化学","mlff","modelscope","nanotube"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/Nanotube"),$("material-ms-lisic","LiSiC","OneScience 魔搭 LiSiC 材料机器学习势训练数据集",["材料化学","mlff","modelscope","lisic"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/LiSiC"),$("material-ms-liquid-water","Liquid_water","OneScience 魔搭 Liquid_water 分子动力学数据集",["材料化学","md","modelscope","water"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/Liquid_water"),$("material-ms-hfo2","HfO2","OneScience 魔搭 HfO2 材料机器学习势训练数据集",["材料化学","mlff","modelscope","hfo2"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/HfO2"),$("material-ms-dmc","DMC","OneScience 魔搭 DMC 分子数据集",["材料化学","md","modelscope","dmc"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/DMC"),$("material-ms-cu","Cu","OneScience 魔搭 Cu 材料机器学习势训练数据集",["材料化学","mlff","modelscope","cu"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/Cu"),$("material-ms-auag","AuAg","OneScience 魔搭 AuAg 合金材料机器学习势训练数据集",["材料化学","mlff","modelscope","auag"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/AuAg"),$("material-ms-ani1x","Ani1x","OneScience 魔搭 ANI-1x 分子势能数据集",["材料化学","mlff","modelscope","ani1x"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/Ani1x"),$("material-ms-pbe","pbe_pbesol_phonon","OneScience 魔搭 MatRIS 训练与评测数据集",["pbe","modelscope"],"MDR声子计算数据库","bz2","bz2"),$("fluid-ms-transolver-airfoil","Transolver-Airfoil-Design","OneScience 魔搭 Transolver 翼型设计 CFD 数据集",["流体仿真","cfd","modelscope","airfoil"],"OneScience","NumPy","NumPy","https://modelscope.cn/datasets/OneScience/Transolver-Airfoil-Design"),$("fluid-ms-transolver-car","Transolver-Car-Design","OneScience 魔搭 Transolver 汽车设计 CFD 数据集",["流体仿真","cfd","modelscope","car-design"],"OneScience","NumPy","NumPy","https://modelscope.cn/datasets/OneScience/Transolver-Car-Design"),$("life-ms-proteinmpnn","proteinmpnn","OneScience 魔搭 ProteinMPNN 训练与评测数据集",["生命科学","protein","modelscope","inverse_folding"],"OneScience","PDB","PDB","https://modelscope.cn/datasets/OneScience/proteinmpnn"),$("life-ms-medgemma","medgemma","OneScience 魔搭 MedGemma 医学多模态数据集",["生命科学","medical_ai","modelscope","multimodal"],"OneScience","image/text","image/text","https://modelscope.cn/datasets/OneScience/medgemma"),$("life-ms-mmseqsdb","mmseqsDB","OneScience 魔搭 mmseqsDB 蛋白序列搜索数据库",["生命科学","protein","modelscope","msa","sequence"],"OneScience","FASTA","FASTA","https://modelscope.cn/datasets/OneScience/mmseqsDB"),$("life-ms-alphagenome","AlphaGenome数据集","OneScience 魔搭 AlphaGenome 训练与评测数据集",["生命科学","genomics","alphagenome","modelscope"],"OneScience","FASTA/FAI/feather/TFRecord","FASTA/FAI/feather/TFRecord"),$("life-ms-evo2","EVO2数据集","OneScience 魔搭 EVO2 训练与评测数据集",["生命科学","genomics","evo2","modelscope"],"OneScience","FASTA","FASTA"),$("life-ms-la-proteina","La-Proteina数据集","OneScience 魔搭 La-Proteina 训练与评测数据集",["生命科学","protein","la-proteina","modelscope"],"OneScience","PDB","PDB"),$("life-ms-alphafold3","AlphaFold3数据集","OneScience 魔搭 AlphaFold3 训练与评测数据集",["生命科学","AlphaFold3","modelscope","protein"],"OneScience","JSON/FASTA/mmCIF/MMseqs DB/sharded FASTA","JSON/FASTA/mmCIF/MMseqs DB/sharded FASTA"),$("life-ms-protenix","Protenix数据集","OneScience 魔搭 Protenix 训练与评测数据集",["生命科学","Protenix","modelscope","protein"],"OneScience","json/cif","json/cif"),$("life-ms-esm2","ESM-2数据集","OneScience 魔搭 ESM-2 训练与评测数据集",["生命科学","ESM-2","modelscope","protein"],"OneScience","pt","pt")]},models:{eyebrow:"OneHub",title:"公开模型库",count:"共 135 个预训练模型:地球科学 59,材料化学 14,生命科学 19,流体仿真 43",search:"搜索模型名称、描述或标签...",filters:["全部","地球科学","材料化学","生命科学","流体仿真","其它"],items:[k("modelhub","GraphCast","Google DeepMind 中期全球天气预报模型",["地球科学","weather","forecasting","graph-model"],"weather","JAX"),k("modelhub-fourcastnet","FourCastNet","NVIDIA 全球高分辨率神经算子天气预报模型",["地球科学","weather","forecasting","neural-operator"],"weather","PyTorch"),k("modelhub-fourcastnet-v2","FourCastNet_v2","从v1的自适应傅里叶神经算子 (AFNO) 改为球面傅里叶神经算子 (SFNO)",["地球科学","weather","forecasting","neural-operator","sfno"],"weather","PyTorch"),k("modelhub-pangu-weather","Pangu-weather","Huawei 三维高分辨率全球天气预报模型",["地球科学","weather","forecasting","spatiotemporal"],"weather","PyTorch/ONNX"),k("modelhub-corrdiff","CorrDiff","NVIDIA 千米级天气生成式降尺度模型",["地球科学","weather","downscaling","generative"],"weather","PyTorch"),k("modelhub-fengwu","FengWu","OpenEarthLab 中期全球天气预报模型",["地球科学","weather","forecasting","spatiotemporal"],"weather","ONNX"),k("modelhub-fuxi","FuXi","级联机器学习全球十五天天气预报模型",["地球科学","weather","forecasting","spatiotemporal"],"weather","PyTorch"),k("modelhub-fuxi-v21","FuXi_v21","保持均方根误差 (RMSE) 等传统指标不下降的前提下,生成更清晰、细节更丰富的预报场",["地球科学","weather","forecasting","extreme-weather"],"weather","PyTorch"),k("modelhub-oneforecast","OneForecast","基于图神经网络 (GNN) 的全球-区域嵌套天气预报通用框架",["地球科学","weather","forecasting","graph-model","global-forecast"],"weather","PyTorch/ONNX"),k("modelhub-stormcast","StormCast","使用大尺度天气背景约束区域状态演变,并通过生成式扩散方法补充确定性预报难以刻画的细尺度结构",["地球科学","weather","forecasting","hrrr","regional","diffusion"],"weather","PyTorch/ONNX"),k("modelhub-globalsurgeml","GlobalSurgeML","基于气象和海洋环境变量,使用线性回归与随机森林模拟全球沿海每日最大风暴增水。",["地球科学","weather","storm-surge","random-forest","coastal-flooding"],"weather","PyTorch/scikit-learn"),k("modelhub-firecubenet","FireCubeNet","基于多源 FireCube 时空数据和 ConvLSTM,综合环境驱动因素预测次日野火危险。",["地球科学","weather","wildfire","firecube","convlstm"],"weather","PyTorch"),k("modelhub-wofs-stormcal","WoFS-StormCal","基于 WoFS 集合风暴轨迹特征,校准龙卷风、严重冰雹和严重大风的短时概率预报。",["地球科学","weather","severe-weather","wofs","probability-calibration"],"weather","PyTorch"),k("modelhub-climatebench","ClimateBench","使用 CNN-LSTM 学习排放与气候响应之间的关系,快速模拟不同情景下的全球气候变化。",["地球科学","climate","climate-projection","cnn-lstm"],"climate","PyTorch"),k("modelhub-causalmodelevaluation","CausalModelEvaluation","利用因果网络评价气候模型的过程表示能力,并约束未来全球降水变化。",["地球科学","climate","causal-discovery","pcmci"],"climate","PyTorch/scikit-learn"),k("modelhub-xihe","XiHe","全球高分辨率海洋涡旋预报模型",["地球科学","ocean","forecasting","spatiotemporal"],"ocean","ONNX"),k("modelhub-wenhai","WenHai","深度神经网络全球涡旋海洋预报模型",["地球科学","ocean","forecasting","spatiotemporal"],"ocean","PyTorch"),k("modelhub-gencast","GenCast","Google DeepMind 中期集合天气预报模型",["地球科学","weather","forecasting","probabilistic","generative"],"weather","JAX"),k("modelhub-weathernext-2","WeatherNext2","Google DeepMind 全球概率天气预报模型",["地球科学","weather","forecasting","probabilistic"],"weather","Google internal"),k("modelhub-artificial-intelligence-forecasting-system","Artificial Intelligence Forecasting System","ECMWF 业务化 AI 全球天气预报系统",["地球科学","weather","forecasting","graph-model"],"weather","PyTorch"),k("modelhub-aurora","AURORA","Microsoft 地球系统基础模型",["地球科学","weather","climate","foundation-model"],"earth-system","PyTorch"),k("modelhub-neuralgcm","NeuralGCM","Google 混合物理与机器学习大气环流模型",["地球科学","climate","forecasting","physics-informed"],"climate","JAX"),k("modelhub-prithvi-wxc","PrithviWxC","NASA IBM 天气气候基础模型",["地球科学","weather","climate","foundation-model"],"weather","PyTorch"),k("modelhub-climax","ClimaX","Microsoft 天气气候通用基础模型",["地球科学","weather","climate","foundation-model"],"climate","PyTorch"),k("modelhub-metnet-3","metnet-3","Google 短临与区域天气预报神经网络模型",["地球科学","weather","nowcasting","precipitation"],"weather","Google internal"),k("modelhub-nowcastnet","NowcastNet_Earth","极端降水临近预报生成模型",["地球科学","precipitation","nowcasting","generative"],"precipitation","PyTorch"),k("modelhub-deep-generative-model-of-rainfall","Deep-Generative-Model-of-Rain","DeepMind 雷达降水概率临近预报模型",["地球科学","precipitation","nowcasting","probabilistic","generative"],"precipitation","TensorFlow"),k("modelhub-earthformer","Earthformer","面向地球系统预测的时空 Transformer 模型",["地球科学","climate","forecasting","spatiotemporal"],"earth-system","PyTorch"),k("modelhub-spherical-fourier-neural-operator","Spherical-Fourier-Neural-Operators","面向球面网格天气气候建模的神经算子",["地球科学","weather","climate","neural-operator"],"weather","PyTorch"),k("modelhub-deep-learning-weather-prediction","deep-learning-weather-prediction","早期全球数据驱动天气预报模型",["地球科学","weather","forecasting","spatiotemporal"],"weather","TensorFlow/Keras"),k("modelhub-stormer","Stormer","面向中期天气预报的可扩展 Transformer 模型",["地球科学","weather","forecasting","spatiotemporal"],"weather","PyTorch"),k("modelhub-atmorep","AtmoRep","大气动力学随机表征学习模型",["地球科学","atmosphere","foundation-model","pretraining"],"atmosphere","PyTorch"),k("modelhub-aardvark-weather","Aardvark-Weather","端到端观测驱动全球天气预报模型",["地球科学","weather","forecasting","observation-driven"],"weather","PyTorch"),k("modelhub-graphdop","GraphDOP","ECMWF 直接从观测初始化的图天气预报模型",["地球科学","weather","forecasting","graph-model","observation-driven"],"weather","PyTorch"),k("modelhub-glonet","GLONET","Mercator 全球神经海洋预报模型",["地球科学","ocean","forecasting","spatiotemporal"],"ocean","PyTorch"),k("modelhub-ai2-climate-emulator","Ai2_Climate_Emulator","Ai2 全球天气气候机器学习模拟器",["地球科学","climate","emulator","forecasting"],"climate","PyTorch"),k("modelhub-samudra","Samudra","M2LInES 全球海洋气候模拟器",["地球科学","ocean","climate","emulator"],"ocean","PyTorch"),k("modelhub-fuxi-s2s","FuXi-S2S","面向全球次季节预测的 FuXi 系列模型",["地球科学","climate","forecasting","probabilistic"],"climate","PyTorch"),k("modelhub-fengwu-w2s","FengWu-W2S","面向天气到次季节无缝预报的 FengWu 模型",["地球科学","weather","climate","forecasting"],"weather","PyTorch"),k("modelhub-seeds","SEEDS","Google Research 天气集合预报扩散生成模型",["地球科学","weather","probabilistic","generative"],"weather","TensorFlow/JAX"),k("modelhub-climode","ClimODE","物理约束神经 ODE 天气气候预报模型",["地球科学","weather","climate","physics-informed"],"weather","PyTorch"),k("modelhub-spherical-dyffusion","Spherical DYffusion","面向全球气候模拟的球面扩散模拟器",["地球科学","climate","emulator","generative"],"climate","PyTorch"),k("modelhub-w-mae","W-MAE","多变量天气预报掩码自编码预训练模型",["地球科学","weather","forecasting","pretraining"],"weather","PyTorch"),k("modelhub-rainnet","RainNet","基于卷积神经网络的雷达降水临近预报模型",["地球科学","precipitation","nowcasting","spatiotemporal"],"precipitation","Keras"),k("modelhub-convolutional-lstm-nowcasting","ConvLSTM","面向对流降水临近预报的经典 ConvLSTM 模型",["地球科学","precipitation","nowcasting","spatiotemporal"],"precipitation","Theano"),k("modelhub-smaat-unet","SmaAt-UNet","小型注意力 UNet 降水临近预报模型",["地球科学","precipitation","nowcasting","spatiotemporal"],"precipitation","PyTorch"),k("modelhub-prithvi-eo","Prithvi-EO","NASA IBM 地球观测多时相基础模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-terramind","TerraMind","IBM ESA 地球观测任意模态生成基础模型",["地球科学","remote-sensing","foundation-model","multimodal","generative"],"remote-sensing","PyTorch"),k("modelhub-clay-foundation-model","Clay-Foundation-Model","面向地球观测嵌入与下游任务的开源基础模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-alphaearth-foundations","AlphaEarthFoundations","Google DeepMind 全球地球观测嵌入基础模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","Google internal"),k("modelhub-surya","Surya","NASA IBM 太阳物理与空间天气基础模型",["地球科学","heliophysics","foundation-model","forecasting"],"heliophysics","PyTorch"),k("modelhub-satmae","SatMAE","面向多光谱时序卫星影像的 MAE 预训练模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-satmae-2","SatMAE-PP","面向多尺度多光谱卫星影像的预训练模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-scale-mae","Scale-MAE","面向多尺度地理空间表征学习的 MAE 模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-dofa","DOFA","面向多模态地球观测的动态一体化基础模型",["地球科学","remote-sensing","foundation-model","multimodal"],"remote-sensing","PyTorch"),k("modelhub-remoteclip","RemoteCLIP","面向遥感图文检索与理解的视觉语言基础模型",["地球科学","remote-sensing","foundation-model","vision-language"],"remote-sensing","PyTorch"),k("modelhub-skysense","SkySense","面向地球观测通用解译的多模态遥感基础模型",["地球科学","remote-sensing","foundation-model","multimodal"],"remote-sensing","PyTorch"),k("modelhub-spectralgpt","SpectralGPT","面向光谱遥感影像理解的生成式预训练模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-satlaspretrain","SatlasPretrain","AI2 大规模遥感理解预训练模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("life","AlphaFold","DeepMind 蛋白质结构预测模型,支持单体与多聚体推理",["生命科学","protein","structure","folding","monomer","multimer"],"biology","JAX"),k("life-openfold","OpenFold","AlphaFold 2 的 PyTorch 重实现,适合训练与工程集成",["生命科学","protein","structure","folding","alphafold","pytorch"],"biology","PyTorch"),k("life-alphafold3","AlphaFold3","面向蛋白、核酸与配体复合物的多模态结构预测模型",["生命科学","protein","complex","ligand","nucleic_acid","structure"],"biology","JAX"),k("life-protenix","protenix","开源可训练的 AF3 风格生物大分子复合物结构预测模型",["生命科学","protein","complex","ligand","structure","finetuning"],"biology","PyTorch"),k("life-rfdiffusion","RFdiffusion","扩散式蛋白骨架设计模型,支持 motif、binder 与对称设计",["生命科学","protein_design","backbone","diffusion","binder","scaffolding"],"biology","PyTorch"),k("life-proteinmpnn","ProteinMPNN","从蛋白骨架反向生成序列的高效设计模型",["生命科学","protein_design","inverse_folding","sequence_design","backbone"],"biology","PyTorch"),k("life-pt-dit","PT-DiT","基于 ProToken 的蛋白序列与结构联合扩散生成模型",["生命科学","protein_design","diffusion","latent_space","protoken","co_design"],"biology","JAX/Flax"),k("life-simplefold","SimpleFold","仅依赖通用 Transformer 的流匹配蛋白折叠模型",["生命科学","protein","folding","transformer","flow_matching","validation"],"biology","PyTorch/MLX"),k("life-evo2","evo2","面向超长 DNA 序列建模与设计的基因组基础模型",["生命科学","genomics","dna","long_context","foundation_model","design"],"genomics","PyTorch/NeMo"),k("life-alphagenome","alphagenome","统一 DNA 序列模型,可预测多种基因组功能信号",["生命科学","genomics","dna","multiomics","variant_scoring","track_prediction"],"genomics","JAX/Haiku"),k("life-molsculptor","MolSculptor","面向多靶点抑制剂设计的扩散加进化小分子生成框架",["生命科学","small_molecule","drug_discovery","diffusion","docking","optimization"],"drug_discovery","JAX/Flax"),k("life-esm-2","ESM","Meta 通用蛋白语言模型,支持序列表征、结构与功能相关任务",["生命科学","protein","language_model","transformer","embeddings","variant_effect","structure"],"biology","PyTorch"),k("life-foldseek","Foldseek","高速蛋白结构搜索与聚类工具,支持 PDB、AFDB 与 ESM Atlas",["生命科学","structure_search","alignment","clustering","protein","3di"],"bioinformatics","C++/CUDA"),k("life-state","STATE","面向虚拟细胞的扰动响应预测模型,覆盖多细胞环境与上下文",["生命科学","virtual_cell","perturbation","single_cell","transcriptomics","foundation_model"],"systems_biology","PyTorch"),k("life-la-proteina","La-Proteina","联合生成蛋白序列与全原子结构的部分潜变量流匹配模型",["生命科学","protein_design","atomistic","flow_matching","co_design","motif_scaffolding"],"biology","PyTorch"),k("life-diffdock","DiffDock","基于 3D 扩散的蛋白-小分子对接模型,输出 pose 与置信度排序",["生命科学","docking","protein_ligand","diffusion","pose_prediction","confidence"],"drug_discovery","PyTorch"),k("life-targetdiff","TargetDiff","在蛋白口袋条件下联合生成 3D 分子并预测亲和力的扩散模型",["生命科学","molecule_generation","protein_pocket","diffusion","affinity_prediction","3d"],"drug_discovery","PyTorch/PyG"),k("life-genscore","GenScore","面向评分、排序、对接和筛选平衡优化的蛋白-配体评分框架",["生命科学","scoring","protein_ligand","affinity","docking","virtual_screening"],"drug_discovery","PyTorch/PyG"),k("life-medgemma","Medgemma","Google 医疗多模态模型集合,支持医学文本与影像理解",["生命科学","medical_ai","multimodal","llm","vision_encoder","radiology"],"medical_ai","PyTorch/Transformers"),k("fluid","FNO","频域神经算子,学习 PDE 解空间映射的经典基础模型",["流体仿真","pde-solver","neural-operator","spectral"],"fluid-dynamics","PyTorch"),k("fluid-gfno","GFNO","基于群等变傅里叶神经算子,在 FNO 的频域计算中引入旋转、反射等几何对称性,用于二维 Navier-Stokes 流场的时序预测与 CFD 代理建模。",["流体仿真","neural-operator","equivariant","cfd","navier-stokes"],"fluid-dynamics","PyTorch"),k("fluid-deeponet","DeepONet","Branch/Trunk 双网络,学习非线性 PDE 算子",["流体仿真","operator-network","pde-solver","physics-informed"],"mathematics","TensorFlow/PyTorch"),k("fluid-mgn","MeshGraphNet","网格图 GNN 模拟器,预测下一步物理状态",["流体仿真","gnn","mesh-based-simulation","learned-dynamics"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-cfdbench-model","CFDBench","CFD 泛化评测基准",["流体仿真","cfd","neural-operator","generalization-benchmark"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-beno-model","BENO","求解椭圆偏微分方程的边界嵌入神经算子",["流体仿真","beno","elliptic-pde","gnn","boundary-embedded"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-deepcfd-model","DeepCFD","U-Net 多解码器,从几何标签预测稳态层流场",["流体仿真","cfd","steady-laminar-flow","u-net","surrogate-modeling"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-lagrangian-mgn","LagrangianMGN","拉格朗日粒子图网络物理模拟器",["流体仿真","gnn","particle-simulation","lagrangian-dynamics","learned-physics-simulator"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-pdenneval-model","PDENNEval","面向 PDE 神经网络求解方法的系统性评测基准",["流体仿真","neural-pde-solver","sciml","benchmark-evaluation"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-transolver","Transolver-Airfoil-Design","拓扑感知 PDE Transformer",["流体仿真","transformer","pde-solver","attention"],"fluid-dynamics","PyTorch"),k("fluid-u-no","UNO","U-Net 与神经算子结合,面向多尺度高频频流 PDE",["流体仿真","multi-scale","neural-operator","cnn"],"fluid-dynamics","PyTorch"),k("fluid-pinns","PINNs","物理定律约束损失,无标注求解正逆 PDE 问题",["流体仿真","physics-informed","inverse-problem","pde-solver"],"mathematics","PyTorch/TensorFlow"),k("fluid-geo-fno","Geo-FNO","不规则几何 PDE 的 FNO,坐标变换至均匀网格",["流体仿真","neural-operator","geometry-aware","cfd"],"fluid-dynamics","PyTorch"),k("fluid-gino","GINO","GNN 与 FNO 结合,求解复杂三维工业 CFD",["流体仿真","neural-operator","gnn","3d-geometry"],"fluid-dynamics","PyTorch"),k("fluid-mp-pde","MP_PDE","消息传递 GNN 自回归求解器,预测流体时序演化",["流体仿真","gnn","message-passing","time-evolution"],"fluid-dynamics","PyTorch"),k("fluid-cno","CNO","连续卷积构建的无限维 PDE 神经算子",["流体仿真","neural-operator","continuous-convolution","pde-solver"],"mathematics","PyTorch"),k("fluid-factformer","FactFormer","轴向分解 Transformer,降低三维流体建模内存",["流体仿真","factorized-attention","transformer"],"turbulence-modeling","PyTorch"),k("fluid-gatr","GATr","等变 GNN 与 Transformer,几何代数建模三维物理",["流体仿真","transformer","geometric-algebra","equivariant"],"mechanics","PyTorch"),k("fluid-transolver-2","Transolver-Car-Design","百万级网格 PDE 求解",["流体仿真","transformer","million-scale","physics-attention"],"industrial-cfd","PyTorch"),k("fluid-factorized-fourier-neural-operator","Factorized Fourier Neural Operator","谱卷积因子化 FNO 变体,面向多相流建模",["流体仿真","fno","operator-learning"],"fluid-dynamics","PyTorch"),k("fluid-koopman-neural-operator","KNO","Koopman 线性化非线性 PDE 动态的无网格求解器",["流体仿真","koopman-theory","operator-learning"],"dynamic-systems","PyTorch"),k("fluid-multi-scale-patch-transformer","Multi-Scale Patch Transformer","多尺度图像块双层注意力 Transformer",["流体仿真","transformer","patch-attention"],"industrial-cfd","PyTorch"),k("fluid-universal-physics-transformers","Universal Physics Transformers","统一欧拉/拉格朗日域的物理 Transformer",["流体仿真","transformer","unified-model"],"eulerian, lagrangian","PyTorch"),k("fluid-anchored-branched-universal-physics-transformers","Anchored-Branched Universal Physics Transformers","UPT 工业分支,建模三维表面-体积耦合流体",["流体仿真","transformer","industrial-scale"],"industrial-aerodynamics","PyTorch"),k("fluid-oformer","OFormer","交叉注意力算子 Transformer,点云注入边界初值",["流体仿真","transformer","cross-attention"],"operator-learning","PyTorch"),k("fluid-pointnetcfd","PointNetCFD","点云 PointNet 框架,预测不规则域流场",["流体仿真","point-cloud","geometry-learning"],"irregular-cfd","PyTorch"),k("fluid-orthogonal-attention-neural-operator","ONO","正交注意力神经算子,核积分特征分解正则化",["流体仿真","orthogonal-attention","regularization"],"operator-learning","PyTorch"),k("fluid-poseidon","Poseidon","预训练 PDE 基础模型,零/少样本泛化未见方程",["流体仿真","foundation-model","multi-physics"],"pde-foundation-model","PyTorch"),k("fluid-diffusionpde","DiffusionPDE","引导扩散 PDE 求解器,联合前向预测与逆问题",["流体仿真","diffusion-model","inverse-problem"],"inverse-problems, generative","PyTorch"),k("fluid-diffusion-graph-net","Diffusion Graph Net","非结构化网格图扩散模型,采样湍流物理状态",["流体仿真","diffusion","gnn","turbulence"],"cfd, generative","PyTorch"),k("fluid-eagle-mesh-transformer","EagleMeshTransformer","非稳态流体网格求解器",["流体仿真","transformer","mesh-graph","fluid-dynamics"],"fluid-dynamics","PyTorch"),k("fluid-xpinn","XPINNs","时空域分解 PINN,子域并行求解复杂几何 PDE",["流体仿真","pinn","domain-decomposition"],"pde-solving","PyTorch, TensorFlow"),k("fluid-cpinn","cPINN","域分解 PINN,子域边界强制通量连续",["流体仿真","pinn","conservation-laws","domain-decomposition"],"conservation-laws","PyTorch, TensorFlow"),k("fluid-gpinn","gPINNs","梯度增强 PINN,稀疏样本下提高求解精度",["流体仿真","pinn","gradient-enhanced"],"pde-solving","PyTorch, TensorFlow"),k("fluid-hp-vpinn","VPINNs","变分弱形式与域分解结合的 PINN 框架",["流体仿真","pinn","variational-methods"],"pde-solving","PyTorch, TensorFlow"),k("fluid-bpinn","BPINNs","贝叶斯 PINN,预测物理场并量化不确定性",["流体仿真","pinn","bayesian","inverse-problems"],"uncertainty-quantification","PyTorch, TensorFlow"),k("fluid-sa-pinn","SA-PINNs","软注意力自适应配点权重,缓解刚性 PDE 收敛",["流体仿真","pinn","adaptive-weights","stiff-pdes"],"stiff-pdes","PyTorch, TensorFlow, JAX"),k("fluid-fpinn","FPINNs","分数阶微积分 PINN,求解非局部 PDE",["流体仿真","pinn","fractional-pdes"],"fractional-pdes","PyTorch, TensorFlow"),k("fluid-gp-for-to","GP_for_TO","基于物理信息高斯过程的无网格拓扑优化方法",["流体仿真","stokes-flow","topology-optimization","physics-informed-gaussian-processes"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-pinnsformer","PINNsformer","以时序建模和注意力机制提升物理信息神经网络求解复杂 PDE 的精度与鲁棒性。",["流体仿真","physics-informed-neural-networks","transformer","pde-solvers","scientific-machine-learning"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-u-fno","U-FNO","U-Net 与 FNO 结合的多相流算子网络",["流体仿真","fno","multiphase-flow","operator-learning"],"multiphase-flow","PyTorch"),k("fluid-mwt","MWT","多小波变换算子,处理多尺度与高频频变 PDE",["流体仿真","operator-learning","wavelets","multiwavelets"],"pde-solving","PyTorch"),k("fluid-galerkin-transformer","Galerkin Transformer","线性伽辽金投影的算子 Transformer",["流体仿真","transformer","galerkin-projection"],"operator-learning","PyTorch"),k("material","MACE","高阶等变消息传递机器学习势函数",["材料化学","mlff","equivariant","mpnn","dcu"],"matchem","PyTorch"),k("material-uma","UMA","Meta FAIR 跨化学领域通用原子势模型",["材料化学","mlff","foundation-model","catalysis","oc20"],"matchem","PyTorch"),k("material-deepmd","DeePMD","深度学习势能函数,支持 PT/TF 双后端",["材料化学","mlff","deepmd","lammps","dcu"],"matchem","PyTorch"),k("material-nep","NEP","神经演化势函数,DCU 上由 MatPL 训练",["材料化学","mlff","nep","matpl","dcu"],"matchem","PyTorch"),k("material-matris","MatRIS","中科院计算所科学智能预训练大模型",["材料化学","mlff","foundation-model","pretrained","dcu"],"matchem","PyTorch"),k("material-tace","TACE","Cartesian 张量原子簇展开势能模型",["材料化学","mlff","equivariant","ace","tensor"],"matchem","PyTorch"),k("material-nequix","Nequix","轻量 E(3) 等变材料基础势能模型",["材料化学","mlff","equivariant","foundation-model","materials"],"matchem","JAX"),k("material-mattersim","Mattersim","面向多元素温压条件的原子级深度学习模型",["材料化学","mlff","foundation-model","m3gnet","materials"],"matchem","PyTorch"),k("material-grace","GRACE","Graph Atomic Cluster Expansion 势能框架",["材料化学","mlff","ace","graph","foundation-model"],"matchem","PyTorch"),k("material-allegro","Allegro","严格局域 E(3) 等变高扩展势能模型",["材料化学","mlff","equivariant","scalable","nequip"],"matchem","PyTorch"),k("material-mattergen","Mattergen","面向无机晶体材料设计的扩散生成模型。",["材料化学","generative","diffusion","crystal","materials"],"matchem","PyTorch"),k("material-equiformer-v3","Equiformer_v3","用于材料结构能量、原子力和应力预测的 SE(3) 等变图注意力势模型。",["材料化学","mlff","equivariant","graph-attention","materials"],"matchem","PyTorch"),k("material-esen","eSEN","用于材料结构能量、原子力和应力预测的等变图神经网络势。",["材料化学","mlff","equivariant","gnn","materials"],"matchem","PyTorch"),k("material-nequip","NequIP","基于 SE (3) 等变图神经网络,用于原子体系能量、原子力预测的分子 / 材料势能模型",["材料化学","mlff","equivariant","gnn","materials"],"matchem","PyTorch")]},skills:{eyebrow:"OneSkills",title:"OneSkills 技能列表",count:"正在加载 OneSkills 技能...",search:"搜索 OneSkills 技能名称、描述或标签...",filters:["全部","编排层","资源层","专家层","执行层"],items:[]},apps:{eyebrow:"OneHub",title:"应用库",count:"共 37 个应用:材料化学 9,生命科学 9,流体仿真 4,其它 15",search:"搜索应用、软件库、方向或运行平台...",filters:["全部","地球科学","材料化学","生命科学","流体仿真","其它"],items:[pe("abacus","ABACUS","基于密度泛函理论的第一性原理电子结构与材料模拟软件",["材料化学","DFT","materials","quantum"],"Materials Science","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=fa860bcd-f8d7-11ef-be71-0242ac170002&type=frame"),pe("adaptivecpp","AdaptiveCpp","面向 CPU/GPU 的 SYCL 与 C++ 异构并行编译器和运行时",["其它","SYCL","compiler","GPU"],"Programming Model","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=38bbdeb3-f965-11ef-be71-0242ac170002&type=frame"),pe("astra_toolbox","ASTRA Toolbox","面向 GPU 加速层析成像与断层重建的高性能工具箱",["其它","tomography","CT","GPU"],"Imaging","Python","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=938690ad-f960-11ef-be71-0242ac170002&type=frame"),pe("autodock_gpu","AutoDock-GPU","面向药物筛选的 GPU 加速分子对接与虚拟筛选软件",["生命科学","drug-discovery","docking","GPU"],"Drug Discovery","C++","GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=2355d55d-f5a3-11ef-bb42-0242ac170002&type=frame"),pe("beagle","BEAGLE","用于系统发育树上序列进化似然计算的高性能生物信息学库",["生命科学","phylogenetics","GPU"],"Bioinformatics","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=5aa1ae8b-3edd-11f1-be71-0242ac170002&type=frame"),pe("bwa","BWA","基于 BWA-MEM 的 GPU 加速基因序列比对工具",["生命科学","genomics","alignment","GPU"],"Bioinformatics","C++","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=112d8f26-3ede-11f1-be71-0242ac170002&type=frame"),pe("cosma","COSMA","面向分布式内存系统的通信优化矩阵乘法库",["其它","linear-algebra","MPI","HPC"],"Math Libraries","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=34db8883-f5ad-11ef-bb42-0242ac170002&type=frame"),pe("cupy","CuPy","面向 GPU 的 NumPy 与 SciPy 风格数组计算库",["其它","Python","GPU","array"],"Scientific Python","Python","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=dc131138-f5ad-11ef-bb42-0242ac170002&type=frame"),pe("eigen3","Eigen3","提供矩阵、向量与数值求解器的 C++ 模板线性代数库",["其它","linear-algebra","C++"],"Math Libraries","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=895d2da4-f96a-11ef-be71-0242ac170002&type=frame"),pe("elpa","ELPA","面向大规模对称或厄米矩阵特征值问题的高性能求解库",["其它","eigensolver","MPI","HPC"],"Math Libraries","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=ffcb92e8-f3f3-11ef-bb42-0242ac170002&type=frame"),pe("genomeworks","GenomeWorks","面向基因组装与序列分析的 GPU 加速开发工具包",["生命科学","genomics","GPU","MPI"],"Bioinformatics","C++","GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=7f2555a5-f96c-11ef-be71-0242ac170002&type=frame"),pe("ginkgo","Ginkgo","面向稀疏线性代数与迭代求解的高性能数值计算库",["其它","sparse","solver","GPU"],"Math Libraries","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=81b84c92-f96d-11ef-be71-0242ac170002&type=frame"),pe("gpublast","GPU-Blast","面向生物序列搜索与比对的 GPU 加速 BLAST 工具",["生命科学","BLAST","genomics","GPU"],"Bioinformatics","C++","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=a682df0a-f96e-11ef-be71-0242ac170002&type=frame"),pe("gpumd","GPUMD","完全基于 GPU 实现的高效率通用分子动力学模拟软件",["材料化学","MD","materials","GPU"],"Molecular Dynamics","C++","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=0e3550e8-3ee0-11f1-be71-0242ac170002&type=frame"),pe("gromacs","GROMACS","面向生物分子与化学体系的高性能分子动力学模拟软件",["生命科学","MD","chemistry","MPI","GPU"],"Molecular Dynamics","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=79f6980f-f3e8-11ef-bb42-0242ac170002&type=frame"),pe("hashcat","Hashcat","面向多种哈希算法的高性能密码恢复与审计工具",["其它","security","GPU"],"Security","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=fb77220b-f5a9-11ef-bb42-0242ac170002&type=frame"),pe("hoomd_blue","HOOMD-blue","面向软物质体系的 GPU 加速分子动力学与蒙特卡罗模拟软件",["材料化学","MD","soft-matter","GPU"],"Molecular Dynamics","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=8ab9aebe-f986-11ef-be71-0242ac170002&type=frame"),pe("hypre","HYPRE","提供多重网格方法的并行稀疏线性系统求解与预条件库",["其它","multigrid","solver","MPI"],"Math Libraries","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=6eb76d28-f5ae-11ef-bb42-0242ac170002&type=frame"),pe("kokkos","Kokkos","提供并行执行与内存抽象的 C++ 性能可移植编程模型",["其它","parallel","C++","GPU"],"Programming Model","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=4b124510-f970-11ef-be71-0242ac170002&type=frame"),pe("lammps","LAMMPS","大规模并行经典/MLFF 分子动力学软件",["材料化学","MD","MPI","Kokkos","DCU"],"MD","C++","CPU/GPU/MPI","https://gitee.com/onescience-ai/onescience/blob/main/examples/matchem/README.md"),pe("vasp","VASP","商业 DFT 第一性原理材料模拟软件",["材料化学","DFT","first-principles","MPI","DCU"],"DFT","Fortran","CPU/GPU/MPI","https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/tools/vasp"),pe("cp2k","CP2K","面向分子与材料体系的并行 DFT/MD 软件",["材料化学","DFT","MD","MPI","DCU"],"DFT/MD","Fortran/C","CPU/GPU/MPI","https://gitee.com/onescience-ai/onescience/blob/main/examples/matchem/README.md"),pe("deepmd-kit","DeePMD-kit","深度学习势能函数训练与推理框架",["材料化学","MLFF","deep-learning","DCU"],"MLFF","C++/Python","CPU/GPU/MPI","https://gitee.com/onescience-ai/onescience/blob/main/examples/matchem/dp/dp_install.sh"),pe("matpl","MatPL","NEP 等机器学习势训练框架,含 DCU 算子",["材料化学","MLFF","NEP","DCU"],"MLFF","C++/Python","GPU/MPI","https://gitee.com/onescience-ai/onescience/blob/main/examples/matchem/nep/matpl_install.sh"),pe("magma","MAGMA","面向异构 CPU/GPU 平台的高性能稠密线性代数计算库",["其它","linear-algebra","GPU"],"Math Libraries","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=6bfd3815-f41a-11ef-bb42-0242ac170002&type=frame"),pe("namd","NAMD","面向大规模生物分子体系的高性能并行分子动力学模拟软件",["生命科学","MD","biomolecular","GPU"],"Molecular Dynamics","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=5f31ffe2-f417-11ef-bb42-0242ac170002&type=frame"),pe("nekrs","nekRS","面向 HPC 应用的快速可扩展谱元 CFD 求解器",["流体仿真","CFD","spectral-element","MPI"],"CFD","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=27b19af1-3ee4-11f1-be71-0242ac170002&type=frame"),pe("nwchem","NWChem","面向高性能计算环境的开源量子化学与计算化学软件",["材料化学","quantum-chemistry","DFT","MPI"],"Computational Chemistry","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=b4ffe397-f413-11ef-bb42-0242ac170002&type=frame"),pe("openfoam","OpenFOAM","面向流体、多相与传热问题的开源 CFD 仿真平台",["流体仿真","CFD","multiphysics","MPI"],"CFD","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=f7bb69bb-f984-11ef-be71-0242ac170002&type=frame"),pe("openmm","OpenMM","兼具库与独立应用形态的高性能分子模拟工具包",["生命科学","MD","simulation","GPU"],"Molecular Dynamics","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=36bbb575-f40b-11ef-bb42-0242ac170002&type=frame"),pe("petsc","PETSc","面向偏微分方程与科学计算的并行数值求解工具包",["其它","PDE","solver","MPI"],"Math Libraries","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=adfc07e9-3ee5-11f1-be71-0242ac170002&type=frame"),pe("picongpu","PIConGPU","面向激光等离子体研究的性能可移植粒子网格模拟框架",["其它","plasma","particle-in-cell","GPU"],"Plasma Physics","C++","GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=d386d847-f404-11ef-bb42-0242ac170002&type=frame"),pe("pyfr","PyFR","基于通量重构方法的高阶可扩展 CFD 计算框架",["流体仿真","CFD","high-order","GPU"],"CFD","Python","GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=21da2b12-f3f1-11ef-bb42-0242ac170002&type=frame"),pe("relion","RELION","面向冷冻电镜单颗粒分析的图像处理与三维重构软件",["生命科学","cryo-EM","imaging","GPU"],"Imaging","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=6162a45f-f3ef-11ef-bb42-0242ac170002&type=frame"),pe("sparta","SPARTA","面向稀薄气体流动的并行 DSMC 粒子模拟软件",["流体仿真","DSMC","rarefied-gas","MPI"],"CFD","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=67fc6a44-3ee6-11f1-be71-0242ac170002&type=frame"),pe("specfem3d","SPECFEM3D","用于三维地震波传播的谱元法地球物理模拟软件",["其它","geophysics","seismic","GPU"],"Geophysics","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=aa4ba8c2-f3ec-11ef-bb42-0242ac170002&type=frame"),pe("stdgpu","stdgpu","提供 STL 风格接口的高效 GPU 数据结构库",["其它","data-structures","C++","GPU"],"Programming Model","C++","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=d5e12516-3ee6-11f1-be71-0242ac170002&type=frame")]},frameworks:{eyebrow:"OneInfra",title:"AI框架",count:"共 9 个 AI 框架:训练框架 5,并行训练 2,推理框架 2",search:"搜索框架名称、硬件平台、适配入口或标签...",filters:["全部","训练框架","并行训练","推理框架"],items:[pe("framework-training","PyTorch深度学习框架","硬件支持:CPU/GPU;提供 DCU 安装适配入口,适合深度学习训练和动态图研发。",["deep-learning","dynamic-graph","DCU适配"],"PyTorch","Python/C++/CUDA","CPU/GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=04749079-6b33-11ef-b472-005056904552&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=04749079-6b33-11ef-b472-005056904552&type=frame"}]),pe("framework-training","JAX高性能数值计算库","硬件支持:CPU/GPU/TPU;提供 DCU 安装适配入口,适合自动微分、JIT 与函数式数值计算。",["autograd","JIT","DCU适配"],"JAX","Python/CUDA","CPU/GPU/TPU","https://das.sourcefind.cn:55011/portal/#/installation?id=57f974b4-6b39-11ef-b472-005056904552&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=57f974b4-6b39-11ef-b472-005056904552&type=frame"}]),pe("framework-training","NVIDIA TransformerEngine","硬件支持:GPU;提供 DCU 安装入口和 FlagOS 适配仓库,面向 Transformer FP8 训练加速。",["Transformer","FP8","DCU适配","FlagOS"],"TransformerEngine","Python/CUDA","GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=d091bbbf-fb10-11ef-915b-0242ac160002&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=d091bbbf-fb10-11ef-915b-0242ac160002&type=frame"},{label:"FlagOS",href:"https://github.com/flagos-ai/TransformerEngine-FL"}]),pe("framework-training","verl大语言模型训练框架","硬件支持:CPU/GPU;提供 FlagOS 适配仓库,专注大模型强化学习与 RLHF 训练。",["LLM","RLHF","FlagOS"],"verl","Python","CPU/GPU","https://github.com/flagos-ai/verl-FL",[{label:"FlagOS",href:"https://github.com/flagos-ai/verl-FL"}]),pe("framework-training","OneScience 科研计算与数据科学平台","硬件支持:CPU/GPU;提供 OneScience Gitee/GitHub 入口,面向科研工作流、并行计算和科学数据管理。",["scientific-computing","workflow-engine","OneScience"],"OneScience","Python/C++","CPU/GPU","https://gitee.com/onescience-ai/onescience",[{label:"Gitee/GitHub",href:"https://gitee.com/onescience-ai/onescience"}]),pe("framework-parallel","DeepSpeed分布式训练优化库","硬件支持:CPU/GPU;提供 DCU 安装适配入口,覆盖 ZeRO、混合精度训练和分布式显存优化。",["ZeRO","distributed-training","DCU适配"],"DeepSpeed","Python/CUDA","CPU/GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=e5892d54-6b3b-11ef-b472-005056904552&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=e5892d54-6b3b-11ef-b472-005056904552&type=frame"}]),pe("framework-parallel","Megatron-LM大规模模型并行训练框架","硬件支持:GPU;提供 DCU 安装入口和 FlagOS 适配仓库,支持模型并行、流水线并行和数据并行。",["model-parallelism","pipeline-parallelism","FlagOS"],"Megatron-LM","Python/CUDA","GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=af3d2407-bbba-11f0-98e6-0242ac130002&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=af3d2407-bbba-11f0-98e6-0242ac130002&type=frame"},{label:"FlagOS",href:"https://github.com/flagos-ai/Megatron-LM-FL"}]),pe("framework-inference","vLLM高性能LLM推理引擎","硬件支持:GPU;提供 DCU 安装入口和 FlagOS 适配仓库,面向高吞吐 LLM 推理服务。",["llm-inference","PagedAttention","FlagOS"],"vLLM","Python/CUDA","GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=9385225c-6b7a-11ef-bf92-005056904552&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=9385225c-6b7a-11ef-bf92-005056904552&type=frame"},{label:"FlagOS",href:"https://github.com/flagos-ai/vllm-FL"}]),pe("framework-inference","SGLang大语言模型服务框架","硬件支持:GPU;提供 DCU 安装适配入口,支持高效推理、RadixAttention 和结构化生成。",["llm-inference","RadixAttention","DCU适配"],"SGLang","Python/CUDA","GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=95f4fe5b-2cd9-11f1-ac5a-0242ac130002&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=95f4fe5b-2cd9-11f1-ac5a-0242ac130002&type=frame"}])]},operators:{eyebrow:"OneInfra",title:"通用算子",count:"基础算子与科学算子",search:"搜索算子、领域或性能能力...",filters:["全部","基础算子","科学算子","通信算子"],items:[pe("operator","张量基础算子","面向训练和推理的矩阵、归约、变换和调度算子。",["tensor","kernel","compile"],"OneInfra","120 ops","CUDA / CPU"),pe("comm-operator","通信算子","AllReduce、Gather、Scatter 和跨节点通信优化。",["NCCL","MPI","通信"],"OneInfra","24 ops","GPU Cluster"),pe("sci-operator","流体科学算子","Navier-Stokes、网格插值、边界条件和流场处理算子。",["CFD","grid","solver"],"OneInfra","32 ops","CUDA"),pe("sci-operator","分子科学算子","邻域搜索、势能计算、结构变换和分子图操作。",["MD","molecule","graph"],"OneInfra","28 ops","CUDA / CPU")]},research:{eyebrow:"AI4Research",title:"创新领域 AI 能力",count:"前沿研究工具列表",search:"搜索研究方向、工具或能力...",filters:["全部","物理AI","具身智能","自动驾驶","世界模型"],items:[pe("physical-ai","物理AI","物理世界建模、仿真、控制和可微物理工具链。",["physics","simulation"],"AI4Research","toolkit","beta"),pe("embodied-ai","具身智能","机器人、实验自动化和多模态感知规划能力。",["robotics","agent"],"AI4Research","lab","beta"),pe("autonomous-driving","自动驾驶","世界模型、场景生成和安全评估工具。",["driving","world model"],"AI4Research","sim","preview"),pe("world-model","世界模型","面向科学系统的预测、规划和实验代理。",["planning","agent"],"AI4Research","agent","preview")]},cases:{eyebrow:"Cases",title:"场景化落地范例",count:"共 16 个科研场景",search:"搜索案例名称、领域或标签...",filters:["全部","地球科学","材料化学","生命科学","流体仿真","其它"],items:[rt("case-cfdbench","CFDBench 训练 smoke 验证","下载魔搭 CFDBench 流体基准数据,跑通 FNO 神经算子在小样本上的训练冒烟验证。",["流体仿真","CFD","FNO"],"流体仿真","ses_10346f0acffeC6AHvtobK5pHFs"),rt("case-esm2","ESM-2 训练 smoke 验证","下载魔搭 ESM-2 蛋白语言模型,完成小规模训练冒烟验证,确认序列建模流程可用。",["生命科学","ESM-2","蛋白"],"生命科学","ses_103137ca7ffeO7q8BnYiPP3L2q"),rt("case-fourcastnet","FourCastNet 训练 smoke 验证","下载 FourCastNet 全球高分辨率神经算子天气预报模型,完成训练配置与小样本冒烟验证。",["地球科学","FourCastNet","天气预报"],"地球科学","ses_10336b7f1ffeL2BZqW7OT8eNMs"),rt("case-fuxi","FuXi 训练 smoke 验证","下载 FuXi 数据驱动中期预报模型,跑通训练入口配置与小规模冒烟验证。",["地球科学","FuXi","天气预报"],"地球科学","ses_103251332ffelcaGi7spx1esL9"),rt("case-mace","MACE 训练 smoke 验证","下载魔搭 MACE 机器学习势函数,完成训练配置与小规模冒烟验证,确认势函数训练流程可用。",["材料化学","MACE","MLFF"],"材料化学","ses_09102687affe6WEyKzrDV0i5tJ"),rt("case-matris","MatRIS 下载与推理验证","下载魔搭 MatRIS 预训练权重并完成样例推理验证,确认推理入口与结果产出可用。",["材料化学","MatRIS","推理"],"材料化学","ses_090e3ee94ffeOUHq4ZepQ8DKHs"),rt("case-mace-water-pes","MACE 水体系势能面训练与验证","下载 MACE 与水体系数据集,完成势能面小规模训练与验证,确认 checkpoint 与评测交付物可用。",["材料化学","MACE","水体系"],"材料化学","ses_090bb739bffevzX4Zf7pBxuD16"),rt("case-meshgraphnet","MeshGraphNet 训练推理与可视化","下载 MeshGraphNet 网格图神经网络,完成训练、推理与流场结果可视化全流程。",["流体仿真","MeshGraphNet","CFD"],"流体仿真","ses_1037cc763ffeMfaaYQ6CQdmbrq"),rt("case-proteinmpnn","ProteinMPNN 训练 smoke 验证","下载 ProteinMPNN 蛋白序列设计模型,完成训练冒烟验证,验证序列生成流程。",["生命科学","ProteinMPNN","蛋白设计"],"生命科学","ses_1033535eaffeFd2OKFwlyBG9bl"),rt("case-rae2822-fno","RAE2822 翼型 FNO 训练流程","围绕 RAE2822 翼型网格与流场数据,搭建 FNO 神经算子训练流程并完成验证。",["流体仿真","RAE2822","FNO"],"流体仿真","ses_12c59a12fffe4xD0VPNsTHQ2iO"),rt("case-aifs-repro","AIFS 论文复现","复现 AIFS 全球气象预报模型论文实验,覆盖数据准备、训练与评估关键环节。",["其它","AIFS","论文复现","AI4S"],"其它","ses_130857560ffebRRVOorz8TBEXI"),rt("case-fuxi-forecast-smoke","FuXi 预报模型训练冒烟验证","面向 FuXi 预报模型执行训练冒烟验证,快速确认配置与训练入口可用。",["地球科学","FuXi","冒烟验证"],"地球科学","ses_1109c4216ffe02IxWfmOd93yyu"),rt("case-fuxi-run-test","FuXi 模型下载与运行测试","下载 FuXi 预训练权重并执行运行测试,验证推理流程与结果产出。",["地球科学","FuXi","推理"],"地球科学","ses_12afd8b95ffeFdtfOOORfsnETp"),rt("case-ocean-atmo-fusion","海气融合预测模型搭建","从 ERA5 与海温场出发,搭建海气融合预测模型可调试骨架与运行模板。",["地球科学","海气耦合","ERA5"],"地球科学","ses_173de5f78ffemATonCgBtx7ECA"),rt("case-xihe-parallel","羲和模型并行训练改造","对羲和气象模型进行并行训练改造,生成并行策略与任务提交脚本。",["地球科学","羲和","并行训练"],"地球科学","ses_131e650f7ffejnFYPuWmd1TBPr"),rt("case-ns-benchmark","NS 方程多模型对比评测","围绕 Navier-Stokes 方程,统一 FNO、DeepONet、PINNs 的数据与评估口径,横向对比。",["流体仿真","NS 方程","评测"],"流体仿真","ses_10bffedbbffeAnlewduYPOpjBz")]},docs:{eyebrow:"Docs and Downloads",title:"文档与下载中心",count:"共 18 个文档资源:用户手册 13,插件 4,发版记录 1",search:"搜索文档、版本或下载内容...",filters:["全部","用户手册","插件","发版记录"],items:Ro}};function Fi(e){const t=e?.modelsCount??Be.models.items.length,a=e?.datasetsCount??Be.datasets.items.length,r=e?.appsCount??Be.apps.items.length,s=e?.primitiveCount??0;return{metrics:[{value:String(t),title:"领域模型",copy:"覆盖地球科学、生命科学、材料化学和流体仿真等方向",href:et("onemodel"),image:"/assets/onescience/domain-model.png"},{value:String(a),title:"科学数据集",copy:"沉淀可接入、可追溯、可复用的领域先验知识",href:et("onedata"),image:"/assets/onescience/scientific-dataset.png"},{value:String(s),title:"Skill原语",copy:"沉淀可被智能体调用、编排和复用的原语资产",href:et("oneskills"),image:"/assets/onescience/skill-primitives.png"}],metricLinks:[{value:String(r),title:"科研应用库",copy:"进入应用库资源界面查看可复用应用与模板",href:et("hpc")},{value:String(Be.frameworks.items.length),title:"多平台框架",copy:"进入框架资源界面查看训推与并行框架",href:ar()},{value:String(Be.operators.items.length),title:"领域算子",copy:"进入算子资源界面查看领域与基础算子",href:ar()}]}}Fi();function Oa(e,t=200){return typeof window.requestIdleCallback=="function"?window.requestIdleCallback(()=>e()):window.setTimeout(e,t)}function da(e){if(typeof window.cancelIdleCallback=="function"){window.cancelIdleCallback(e);return}window.clearTimeout(e)}function Ba(){Wr()}function xn(e){return{datasets:Be.datasets.items.length+e.datasets,models:Be.models.items.length+e.models,apps:Be.apps.items.length+e.apps,frameworks:Be.frameworks.items.length+(e.frameworks??0)}}function sa(e,t){const a={};for(const r of t){const s=Ln(e,r);a[s]=(a[s]??0)+1}return a}function Mn(...e){const t={};for(const a of e)if(a)for(const[r,s]of Object.entries(a))t[r]=(t[r]??0)+s;return t}const Tr={datasets:"高质量数据集",models:"预训练模型",apps:"应用",frameworks:"AI 框架"};function In(e,t){const a=Be[e].filters.filter(c=>c!=="全部"),r=a.map(c=>({filter:c,total:t[c]??0})).filter(c=>c.total>0),s=Object.entries(t).filter(([c,g])=>g>0&&!a.includes(c)).sort(([c],[g])=>c.localeCompare(g)).map(([c,g])=>({filter:c,total:g})),l=[...r,...s].map(c=>`${c.filter} ${c.total}`),d=Object.values(t).reduce((c,g)=>c+g,0);return l.length>0?`共 ${d} 个${Tr[e]}:${l.join(",")}`:`共 ${d} 个${Tr[e]}`}function Ti(e,t){return Be[e].count.replace(/共 \d+ 个/,`共 ${t} 个`)}const Bh=new Set(["datasets","models","apps"]),Ia=new Set(["datasets","models","apps","frameworks"]),Hh={"model-development":"构建或改造科学模型。","dataset-building":"生成 AI-ready 数据集。","data-analysis":"完成分析、可视化与报告。","model-training":"生成配置并提交训练。","model-inference-testing":"运行模型并评估结果。","research-workflow-building":"编排端到端科研流程。","paper-reproduction":"复现实验并生成报告。","model-performance-analysis":"定位模型性能瓶颈。","operator-performance-optimization":"优化热点 Kernel 并复测。","model-optimization":"优化结构、指标与训练策略。","model-adaptation":"生成适配器并完成验证。"},ua=new Map,ui=new Map,ai=new Map,qh=1e3*60*60,Fn={draft:"草稿",callable:"可调用"},Fa=new Map,Er=24,Tn=24,Ei={"earth-era5":"https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation","earth-cmems":"https://catalogue.marine.copernicus.eu/documents/PUM/CMEMS-GLO-PUM-001-030.pdf","earth-merra2":"https://gmao.gsfc.nasa.gov/pubs/docs/Bosilovich785.pdf","earth-jra3q":"https://www.data.jma.go.jp/jra/html/JRA-3Q/document/JRA-3Q_TL479_format_v1_en.pdf","earth-jra55":"https://www.data.jma.go.jp/jra/html/JRA-55/document/JRA-55_handbook_TL319_v2_en.pdf","earth-ncep-ncar-r1":"https://psl.noaa.gov/data/gridded/data.ncep.reanalysis.html","earth-gfs":"https://www.nco.ncep.noaa.gov/pmb/products/gfs/","earth-gefs":"https://www.nco.ncep.noaa.gov/pmb/products/gens/","earth-hrrr":"https://www.nco.ncep.noaa.gov/pmb/products/hrrr/","earth-ecmwf-open-data":"https://confluence.ecmwf.int/display/DAC/ECMWF+open+data%3A+real-time+forecasts+from+IFS+and+AIFS","earth-cmip6":"https://wcrp-cmip.org/cmip6/","earth-s2s":"https://confluence.ecmwf.int/display/S2S","earth-cfsv2":"https://www.nco.ncep.noaa.gov/pmb/products/cfs/","earth-oisst":"https://www.ncei.noaa.gov/products/optimum-interpolation-sst","earth-argo-gdac":"https://argo.ucsd.edu/data/data-faq/","earth-wod":"https://www.ncei.noaa.gov/products/world-ocean-database","earth-hycom-gofs":"https://www.hycom.org/dataserver","earth-gpm-imerg":"https://gpm.nasa.gov/data/directory","earth-chirps":"https://www.chc.ucsb.edu/data/chirps3","earth-gldas":"https://ldas.gsfc.nasa.gov/gldas","earth-smap":"https://nsidc.org/data/smap","earth-grace-fo":"https://grace.jpl.nasa.gov/data/get-data/","earth-nexrad-level2":"https://github.com/awslabs/open-data-docs/tree/main/docs/noaa/noaa-nexrad","earth-mrms":"https://vlab.noaa.gov/web/wdtd/mrms-products-guide","earth-goes-abi":"https://www.goes-r.gov/products/baseline-cloud-moisture-imagery.html","earth-himawari-ahi":"https://www.data.jma.go.jp/mscweb/en/himawari89/space_segment/hsd_sample/HS_D_users_guide_en.pdf","earth-modis":"https://modis.gsfc.nasa.gov/data/dataprod/","earth-landsat-c2":"https://www.usgs.gov/landsat-missions/landsat-collection-2-level-2-science-products","earth-noaa-20cr":"https://psl.noaa.gov/data/20thC_Rean/","earth-cerra":"https://confluence.ecmwf.int/display/CKB/Copernicus+European+Regional+ReAnalysis+%28CERRA%29%3A+product+user+guide","earth-cams-global-atmosphere":"https://confluence.ecmwf.int/display/CKB/CAMS%3A+Global+atmospheric+composition+forecast+data+documentation","earth-cfsr":"https://www.nco.ncep.noaa.gov/pmb/products/cfs/","earth-nam":"https://www.emc.ncep.noaa.gov/emc/pages/numerical_forecast_systems/nam.php","earth-rap":"https://rapidrefresh.noaa.gov/","earth-mur-sst":"https://podaac.github.io/tutorials/quarto_text/GHRSST.html","earth-esa-sst-cci":"https://climate.esa.int/en/projects/sea-surface-temperature/","earth-hadisst":"https://www.metoffice.gov.uk/hadobs/hadisst/","earth-sea-ice-cdr":"https://www.ncei.noaa.gov/pub/data/sds/cdr/CDRs/Sea_Ice_Concentration/UserGuide_01B-11.pdf","earth-ghcn-daily":"https://www.ncei.noaa.gov/pub/data/ghcn/daily/readme.txt","earth-hadisd":"https://hadobs.metoffice.gov.uk/hadisd/","earth-gistemp":"https://data.giss.nasa.gov/gistemp/faq/","earth-berkeley-earth":"https://berkeleyearth.org/data/","earth-cmorph-cdr":"https://www.ncei.noaa.gov/pub/data/sds/cdr/CDRs/Precipitation-CMORPH/","earth-gsmap":"https://www.eorc.jaxa.jp/GPM/doc/data_utilization/GSMaP_Guidelines_E.pdf","earth-persiann-cdr":"https://www.ncei.noaa.gov/products/climate-data-records/precipitation-persiann","earth-cpc-unified-precip":"https://www.drought.gov/data-maps-tools/global-cpc-unified-daily-precipitation","earth-sentinel1":"https://documentation.dataspace.copernicus.eu/Data/SentinelMissions/Sentinel1.html","earth-sentinel2":"https://documentation.dataspace.copernicus.eu/Data/SentinelMissions/Sentinel2.html","earth-sentinel3":"https://documentation.dataspace.copernicus.eu/Data/SentinelMissions/Sentinel3.html","earth-sentinel5p":"https://documentation.dataspace.copernicus.eu/Data/SentinelMissions/Sentinel5P.html","fluid-pdebench":"https://github.com/pdebench/PDEBench/tree/main/pdebench/data_download","fluid-cfdbench":"https://arxiv.org/abs/2310.05963","fluid-rpb-cno":"https://modelscope.cn/datasets/OneScience/RPB_CNO","fluid-fno":"https://modelscope.cn/datasets/OneScience/FNO","fluid-pointnet-cfd":"https://modelscope.cn/datasets/OneScience/pointnet_cfd","fluid-pdearena":"https://pdearena.github.io/pdearena/","fluid-blastnet":"https://arxiv.org/abs/2309.13457","fluid-jhtdb":"https://turbulence.idies.jhu.edu/datasets","fluid-deepmind-l2s":"https://arxiv.org/abs/2002.09405","fluid-meshgraphnets":"https://arxiv.org/abs/2010.03409","fluid-fda-blood-flow":"https://pubmed.ncbi.nlm.nih.gov/21428676/","fluid-nasa-tmr":"https://tmbwg.github.io/turbmodels/","fluid-spdebench":"https://arxiv.org/abs/2505.18511","fluid-realpdebench":"https://github.com/AI4Science-WestlakeU/RealPDEBench","fluid-drivaernet":"https://github.com/Mohamedelrefaie/DrivAerNet","fluid-drivaerml":"https://arxiv.org/abs/2408.11969","fluid-eagle-dataset":"https://arxiv.org/abs/2302.10803","fluid-shapenet-car":"https://dl.acm.org/doi/10.1145/3197517.3201325","fluid-airfrans":"https://airfrans.readthedocs.io/en/latest/","fluid-geo-fno":"https://arxiv.org/abs/2207.05209","fluid-bubbleml":"https://github.com/HPCForge/BubbleML","fluid-rae2822-airfoil":"https://github.com/giovannicatalani/Aerodynamic-VAE","fluid-cfdoneval":"https://github.com/Sysuzqs/CFDNNEval","fluid-kolmogorov-flow-dns":"https://github.com/KovacsKA00/Nek5000-interpolation","fluid-parameterized-u-bend":"https://zenodo.org/badge/latestdoi/612247257","fluid-blendednet":"https://arxiv.org/abs/2509.07209","fluid-naca0012-compressible":"https://data.mendeley.com/datasets/g3x4phfr3r/2","life-pdb":"https://www.rcsb.org/docs/","life-uniref90":"https://www.uniprot.org/help/uniref","life-uniprot":"https://www.uniprot.org/help/uniprotkb","life-bfd":"https://bfd.mmseqs.com/","life-mgnify":"https://www.ebi.ac.uk/metagenomics/","life-afdb-swissprot":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-afesm":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-afesme":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-opengenome2":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/evo2/README.md","life-casp14":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-cameo22":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-apo":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-codnas":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-protenix-release-data":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/protenix/README.md","life-hg38-mm10-reference":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphagenome/README.md","life-ur50d-2021-04":"https://github.com/facebookresearch/esm","life-esm-structural-split":"https://github.com/facebookresearch/esm","life-esm-metagenomic-atlas":"https://github.com/facebookresearch/esm","life-tahoe-100m":"https://arcinstitute.org/news/news/arc-virtual-cell-atlas-launch","life-scbasecount":"https://arcinstitute.org/news/news/arc-virtual-cell-atlas-launch","life-replogle-nadig-perturbseq":"https://github.com/ArcInstitute/state","life-virtual-cell-challenge-dataset":"https://virtualcellchallenge.org/","life-pdbbind":"https://www.pdbbind-plus.org.cn/","life-bindingmoad":"https://github.com/gcorso/DiffDock","life-dockgen":"https://github.com/gcorso/DiffDock","life-posebusters-benchmark":"https://github.com/maabuu/posebusters","life-crossdocked2020":"https://github.com/guanjq/targetdiff","life-casf-2016":"https://github.com/sc8668/GenScore","life-dekois2-dude-docking-poses":"https://github.com/sc8668/GenScore","life-csar-nrc-hiq":"https://github.com/sc8668/GenScore","life-merck-fep-benchmark":"https://github.com/sc8668/GenScore","life-pdbbind-crossdocked-core":"https://github.com/sc8668/GenScore","life-mimic-cxr":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","life-slake-vqa":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","life-pad-ufes-20":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","life-tcga":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","life-camelyon":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","life-pmc-oa":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","material-mptrj":"https://chgnet.lbl.gov/","material-salex":"https://alexandria.icams.rub.de/","material-omat24":"https://github.com/facebookresearch/fairchem/blob/main/docs/inorganic_materials/datasets/omat24.md","material-omol25":"https://github.com/facebookresearch/fairchem/blob/main/docs/molecules/datasets/omol25.md","material-oc20":"https://github.com/facebookresearch/fairchem/blob/main/docs/catalysts/datasets/oc20.md","material-alexandria":"https://alexandria.icams.rub.de/","material-oc22":"https://github.com/facebookresearch/fairchem/blob/main/docs/catalysts/datasets/oc22.md","material-md22":"http://www.sgdml.org/","material-deepmd-water-demo":"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/dp","material-mace-example":"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/mace","material-matpl-example":"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/nep"},Oi={GraphCast:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/graphcast",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/graphcast",paper:"https://www.science.org/doi/10.1126/science.adi2336"},FourCastNet:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fourcastnet",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fourcastnet",paper:"https://arxiv.org/abs/2202.11214"},FourCastNet_v2:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fourcastnet",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fourcastnet",paper:"https://arxiv.org/abs/2306.03838"},OneForecast:{docs:"https://modelscope.cn/models/OneScience/OneForecast",paper:"https://arxiv.org/abs/2502.00338"},StormCast:{docs:"https://modelscope.cn/models/OneScience/StormCast",paper:"https://arxiv.org/abs/2408.10958"},GlobalSurgeML:{docs:"https://modelscope.cn/models/OneScience/GlobalSurgeML"},FireCubeNet:{docs:"https://modelscope.cn/models/OneScience/FireCubeNet"},"WoFS-StormCal":{docs:"https://modelscope.cn/models/OneScience/WoFS-StormCal"},ClimateBench:{docs:"https://modelscope.cn/models/OneScience/ClimateBench"},CausalModelEvaluation:{docs:"https://modelscope.cn/models/OneScience/CausalModelEvaluation"},"Pangu-weather":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/pangu_weather",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/pangu_weather",paper:"https://www.nature.com/articles/s41586-023-06185-3"},CorrDiff:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/corrdiff",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/corrdiff",paper:"https://arxiv.org/abs/2309.15214"},FengWu:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fengwu",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fengwu",paper:"https://arxiv.org/abs/2304.02948"},FuXi:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fuxi",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fuxi",paper:"https://www.nature.com/articles/s41612-023-00512-1"},FuXi_v21:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fuxi",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fuxi",paper:"https://www.nature.com/articles/s41612-023-00512-1"},XiHe:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/xihe",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/xihe",paper:"https://arxiv.org/abs/2402.02995"},WenHai:{github:"https://github.com/Cuiyingzhe/WenHai",docs:"https://github.com/Cuiyingzhe/WenHai",paper:"https://www.nature.com/articles/s41467-025-57389-2"},GenCast:{github:"https://github.com/google-deepmind/graphcast",docs:"https://deepmind.google/research/publications/gencast-learning-skillful-ensemble-forecasting-of-medium-range-weather/",paper:"https://www.nature.com/articles/s41586-024-08252-9"},WeatherNext2:{docs:"https://deepmind.google/en/science/weathernext/",paper:"https://arxiv.org/abs/2506.10772"},"Artificial Intelligence Forecasting System":{github:"https://github.com/ecmwf/anemoi-core",docs:"https://anemoi.readthedocs.io/",paper:"https://arxiv.org/abs/2406.01465"},AURORA:{github:"https://github.com/microsoft/aurora",docs:"https://microsoft.github.io/aurora/",paper:"https://www.nature.com/articles/s41586-025-09005-y"},NeuralGCM:{github:"https://github.com/neuralgcm/neuralgcm",docs:"https://neuralgcm.readthedocs.io/",paper:"https://www.nature.com/articles/s41586-024-07744-y"},PrithviWxC:{github:"https://github.com/NASA-IMPACT/Prithvi-WxC",docs:"https://www.earthdata.nasa.gov/news/blog/nasa-ibm-research-apply-ai-weather-climate",paper:"https://arxiv.org/abs/2409.13598"},ClimaX:{github:"https://github.com/microsoft/ClimaX",docs:"https://microsoft.github.io/ClimaX/",paper:"https://arxiv.org/abs/2301.10343"},"metnet-3":{docs:"https://research.google/blog/metnet-3-a-state-of-the-art-neural-weather-model-available-in-google-products/",paper:"https://arxiv.org/abs/2306.06079"},NowcastNet_Earth:{docs:"https://www.nature.com/articles/s41586-023-06184-4",paper:"https://www.nature.com/articles/s41586-023-06184-4"},"Deep-Generative-Model-of-Rain":{github:"https://github.com/deepmind/deepmind-research/tree/master/nowcasting",docs:"https://deepmind.google/discover/blog/nowcasting-the-next-hour-of-rain/",paper:"https://www.nature.com/articles/s41586-021-03854-z"},Earthformer:{github:"https://github.com/amazon-science/earth-forecasting-transformer",docs:"https://gaozhihan.github.io/Earthformer/",paper:"https://arxiv.org/abs/2207.05833"},"Spherical-Fourier-Neural-Operators":{github:"https://github.com/NVIDIA/torch-harmonics",docs:"https://developer.nvidia.com/blog/modeling-earths-atmosphere-with-spherical-fourier-neural-operators/",paper:"https://proceedings.mlr.press/v202/bonev23a.html"},"deep-learning-weather-prediction":{github:"https://github.com/jweyn/DLWP",docs:"https://docs.nvidia.com/deeplearning/modulus/modulus-core-v040/examples/weather/dlwp/README.html",paper:"https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2020MS002109"},Stormer:{github:"https://github.com/tung-nd/stormer",docs:"https://arxiv.org/abs/2312.03876",paper:"https://arxiv.org/abs/2312.03876"},AtmoRep:{github:"https://github.com/clessig/atmorep",docs:"https://www.atmorep.org/",paper:"https://arxiv.org/abs/2308.13280"},"Aardvark-Weather":{github:"https://github.com/annavaughan/aardvark-weather-public",docs:"https://www.nature.com/articles/s41586-025-08897-0",paper:"https://www.nature.com/articles/s41586-025-08897-0"},GraphDOP:{docs:"https://arxiv.org/abs/2412.15687",paper:"https://arxiv.org/abs/2412.15687"},GLONET:{docs:"https://huggingface.co/mercator-ocean/GLONET",paper:"https://arxiv.org/abs/2412.05454"},Ai2_Climate_Emulator:{github:"https://github.com/ai2cm/ace",docs:"https://allenai.org/blog/ai2-climate-emulator",paper:"https://arxiv.org/abs/2310.02074"},Samudra:{github:"https://github.com/m2lines/Samudra",docs:"https://m2lines.github.io/code/",paper:"https://arxiv.org/abs/2412.03795"},"FuXi-S2S":{github:"https://github.com/tpys/FuXi-S2S",docs:"https://github.com/tpys/FuXi-S2S",paper:"https://www.nature.com/articles/s41467-024-50714-1"},"FengWu-W2S":{docs:"https://arxiv.org/abs/2411.10191",paper:"https://arxiv.org/abs/2411.10191"},SEEDS:{docs:"https://research.google/pubs/seeds-emulation-of-weather-forecast-ensembles-with-diffusion-models/",paper:"https://arxiv.org/abs/2306.14066"},ClimODE:{github:"https://github.com/Aalto-QuML/ClimODE",docs:"https://openreview.net/forum?id=xuY33XhEGR",paper:"https://arxiv.org/abs/2404.10024"},"Spherical DYffusion":{github:"https://github.com/Rose-STL-Lab/spherical-dyffusion",docs:"https://github.com/Rose-STL-Lab/spherical-dyffusion",paper:"https://arxiv.org/abs/2406.14798"},"W-MAE":{github:"https://github.com/Gufrannn/W-MAE",docs:"https://arxiv.org/abs/2304.08754",paper:"https://arxiv.org/abs/2304.08754"},RainNet:{github:"https://github.com/hydrogo/rainnet",docs:"https://github.com/hydrogo/rainnet",paper:"https://gmd.copernicus.org/articles/13/2631/2020/"},ConvLSTM:{docs:"https://papers.nips.cc/paper/5955-convolutional-lstm-network-a-machine-learning-approach-for-precipitation-nowcasting",paper:"https://papers.nips.cc/paper/5955-convolutional-lstm-network-a-machine-learning-approach-for-precipitation-nowcasting"},"SmaAt-UNet":{github:"https://github.com/HansBambel/SmaAt-UNet",docs:"https://github.com/HansBambel/SmaAt-UNet",paper:"https://arxiv.org/abs/2007.04417"},"Prithvi-EO":{github:"https://github.com/NASA-IMPACT/hls-foundation-os",docs:"https://huggingface.co/ibm-nasa-geospatial",paper:"https://arxiv.org/abs/2412.02732"},TerraMind:{github:"https://github.com/IBM/terramind",docs:"https://github.com/IBM/terramind",paper:"https://arxiv.org/abs/2504.11171"},"Clay-Foundation-Model":{github:"https://github.com/Clay-foundation/model",docs:"https://clay-foundation.github.io/model/"},AlphaEarthFoundations:{docs:"https://deepmind.google/blog/alphaearth-foundations-helps-map-our-planet-in-unprecedented-detail/",paper:"https://arxiv.org/abs/2507.22291"},Surya:{github:"https://github.com/NASA-IMPACT/Surya",docs:"https://www.heliofm.org/",paper:"https://ntrs.nasa.gov/citations/20250008498"},SatMAE:{github:"https://github.com/sustainlab-group/SatMAE",docs:"https://sustainlab-group.github.io/SatMAE/",paper:"https://arxiv.org/abs/2207.08051"},"SatMAE-PP":{github:"https://github.com/techmn/satmae_pp",docs:"https://github.com/techmn/satmae_pp",paper:"https://arxiv.org/abs/2403.05419"},"Scale-MAE":{docs:"https://openaccess.thecvf.com/content/ICCV2023/papers/Reed_Scale-MAE_A_Scale-Aware_Masked_Autoencoder_for_Multiscale_Geospatial_Representation_Learning_ICCV_2023_paper.pdf",paper:"https://arxiv.org/abs/2212.14532"},DOFA:{github:"https://github.com/zhu-xlab/DOFA",docs:"https://huggingface.co/earthflow/DOFA",paper:"https://arxiv.org/abs/2403.15356"},RemoteCLIP:{github:"https://github.com/ChenDelong1999/RemoteCLIP",docs:"https://github.com/ChenDelong1999/RemoteCLIP",paper:"https://arxiv.org/abs/2306.11029"},SkySense:{github:"https://github.com/Jack-bo1220/SkySense",docs:"https://github.com/Jack-bo1220/SkySense",paper:"https://arxiv.org/abs/2312.10115"},SpectralGPT:{github:"https://github.com/danfenghong/IEEE_TPAMI_SpectralGPT",docs:"https://github.com/danfenghong/IEEE_TPAMI_SpectralGPT",paper:"https://arxiv.org/abs/2311.07113"},SatlasPretrain:{github:"https://github.com/allenai/satlaspretrain_models",docs:"https://satlas-pretrain.allen.ai/",paper:"https://openaccess.thecvf.com/content/ICCV2023/papers/Bastani_SatlasPretrain_A_Large-Scale_Dataset_for_Remote_Sensing_Image_Understanding_ICCV_2023_paper.pdf"},AlphaFold:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphafold/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphafold/README.md",paper:"https://doi.org/10.1038/s41586-021-03819-2"},OpenFold:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/openfold/monomer/inference.sh",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/openfold/monomer/inference.sh"},AlphaFold3:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphafold3/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphafold3/README.md",paper:"https://www.nature.com/articles/s41586-024-07487-w"},protenix:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/protenix/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/protenix/README.md",paper:"https://github.com/bytedance/Protenix/blob/main/Protenix_Technical_Report.pdf"},RFdiffusion:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/RFdiffusion/RFdiffusion_README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/RFdiffusion/RFdiffusion_README.md",paper:"https://www.nature.com/articles/s41586-023-06415-8"},ProteinMPNN:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/ProteinMPNN/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/ProteinMPNN/README.md",paper:"https://www.biorxiv.org/content/10.1101/2022.06.03.494563v1"},"PT-DiT":{github:"https://gitee.com/onescience-ai/onescience/blob/main/src/onescience/flax_models/Pt_DiT/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/src/onescience/flax_models/Pt_DiT/README.md",paper:"https://doi.org/10.1101/2023.11.27.568722"},SimpleFold:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md",paper:"https://arxiv.org/abs/2509.18480"},evo2:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/evo2/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/evo2/README.md",paper:"https://www.biorxiv.org/content/10.1101/2025.02.18.638918v1"},alphagenome:{github:"https://github.com/google-deepmind/alphagenome",docs:"https://www.alphagenomedocs.com/"},MolSculptor:{github:"https://github.com/egg5154/MolSculptor",docs:"https://github.com/egg5154/MolSculptor",paper:"https://doi.org/10.26434/chemrxiv-2025-v4758"},ESM:{github:"https://github.com/facebookresearch/esm",docs:"https://github.com/facebookresearch/esm",paper:"https://www.science.org/doi/abs/10.1126/science.ade2574"},Foldseek:{github:"https://github.com/steineggerlab/foldseek",docs:"https://github.com/steineggerlab/foldseek/wiki",paper:"https://www.nature.com/articles/s41587-023-01773-0"},STATE:{github:"https://github.com/ArcInstitute/state",docs:"https://github.com/ArcInstitute/state",paper:"https://www.biorxiv.org/content/10.1101/2025.06.26.661135v2"},"La-Proteina":{github:"https://github.com/NVIDIA-Digital-Bio/la-proteina",docs:"https://github.com/NVIDIA-Digital-Bio/la-proteina",paper:"https://arxiv.org/abs/2507.09466"},DiffDock:{github:"https://github.com/gcorso/DiffDock",docs:"https://github.com/gcorso/DiffDock",paper:"https://arxiv.org/abs/2210.01776"},TargetDiff:{github:"https://github.com/guanjq/targetdiff",docs:"https://github.com/guanjq/targetdiff",paper:"https://openreview.net/pdf?id=kJqXEPXMsE0"},GenScore:{github:"https://github.com/sc8668/GenScore",docs:"https://github.com/sc8668/GenScore",paper:"https://doi.org/10.1039/D3SC02044D"},Medgemma:{github:"https://github.com/Google-Health/medgemma",docs:"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card",paper:"https://arxiv.org/abs/2604.05081"},FNO:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2010.08895"},GFNO:{github:"https://gitee.com/onescience-ai/onescience/tree/main/src/onescience/models/cfd_benchmark/GFNO.py",docs:"https://gitee.com/onescience-ai/onescience/tree/main/src/onescience/models/cfd_benchmark/GFNO.py"},DeepONet:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PDENNEval",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PDENNEval",paper:"https://arxiv.org/abs/1910.03193"},MeshGraphNet:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Vortex_shedding_mgn",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Vortex_shedding_mgn",paper:"https://arxiv.org/abs/2010.03409"},"Transolver-Airfoil-Design":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Transolver-Airfoil-Design",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Transolver-Airfoil-Design",paper:"https://arxiv.org/abs/2402.02366"},UNO:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2204.11127"},PINNs:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PDENNEval",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PDENNEval",paper:"https://arxiv.org/abs/1711.10561"},"Geo-FNO":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2207.05209"},GINO:{github:"https://github.com/neuraloperator/gino",paper:"https://arxiv.org/abs/2302.14376"},MP_PDE:{github:"https://github.com/brandstetter-johannes/MP-Neural-PDE-Solvers",paper:"https://arxiv.org/abs/2202.03376"},CNO:{github:"https://github.com/camlab-ethz/ConvolutionalNeuralOperator",paper:"https://arxiv.org/abs/2302.01178"},FactFormer:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2305.17560"},GATr:{github:"https://github.com/Qualcomm-AI-research/geometric-algebra-transformer",paper:"https://arxiv.org/abs/2305.18415"},"Transolver-Car-Design":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Transolver-Car-Design",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Transolver-Car-Design",paper:"https://arxiv.org/abs/2511.06294"},"Factorized Fourier Neural Operator":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2111.13802"},KNO:{github:"https://github.com/Koopman-Laboratory/KoopmanLab",paper:"https://arxiv.org/abs/2301.10022"},"Multi-Scale Patch Transformer":{github:"https://github.com/pedrocurvo/mspt",paper:"https://arxiv.org/abs/2512.01738"},"Universal Physics Transformers":{github:"https://github.com/ml-jku/UPT",paper:"https://arxiv.org/abs/2402.12365"},"Anchored-Branched Universal Physics Transformers":{github:"https://github.com/Emmi-AI/anchored-branched-universal-physics-transformers",paper:"https://arxiv.org/abs/2502.09692"},OFormer:{github:"https://github.com/BaratiLab/OFormer",paper:"https://openreview.net/forum?id=EPPqt3uERT"},PointNetCFD:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark"},ONO:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2310.12487"},Poseidon:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2405.19101"},DiffusionPDE:{github:"https://github.com/jhhuangchloe/DiffusionPDE",paper:"https://arxiv.org/abs/2406.17763"},"Diffusion Graph Net":{github:"https://github.com/tum-pbs/dgn4cfd",paper:"https://arxiv.org/abs/2504.02843"},EagleMeshTransformer:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/EagleMeshTransformer",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/EagleMeshTransformer",paper:"https://arxiv.org/abs/2302.10803"},XPINNs:{github:"https://github.com/AmeyaJagtap/XPINNs",paper:"https://www.global-sci.com/cicp/article/view/6911"},cPINN:{github:"https://github.com/AmeyaJagtap/Conservative_PINNs",paper:"https://doi.org/10.1016/j.cma.2020.113028"},gPINNs:{github:"https://github.com/lu-group/gpinn",paper:"https://doi.org/10.1016/j.cma.2022.114823"},VPINNs:{github:"https://github.com/cmgcds/fastvpinns",paper:"https://arxiv.org/abs/2404.12063"},BPINNs:{github:"https://github.com/jjdabr/BPINN-Wildfire",paper:"https://arxiv.org/abs/2212.00970"},"SA-PINNs":{github:"https://github.com/levimcclenny/SA-PINNs",paper:"https://arxiv.org/abs/2009.04544"},FPINNs:{github:"https://github.com/lululxvi/deepxde",paper:"https://arxiv.org/abs/1811.08967"},GP_for_TO:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/GP_for_TO",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/GP_for_TO"},PINNsformer:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PINNsformer",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PINNsformer"},"U-FNO":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PINNsformer",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PINNsformer",paper:"https://arxiv.org/abs/2109.03697"},MWT:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2109.13459"},"Galerkin Transformer":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2105.14995"},MACE:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem"},UMA:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem"},DeePMD:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/1707.09571"},NEP:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2205.10046"},MatRIS:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2603.02002"},TACE:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2509.14961"},Nequix:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2508.16067"},Mattersim:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2405.04967"},GRACE:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2508.17936"},Allegro:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://www.nature.com/articles/s41467-023-36329-y"},Mattergen:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/mattergen",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/mattergen"},Equiformer_v3:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/equiformer_v3",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/equiformer_v3",paper:"https://arxiv.org/abs/2604.09130"},eSEN:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/esen",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/esen"},NequIP:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/nequip",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/nequip",paper:"https://www.nature.com/articles/s41467-022-29939-5"}};function Ha(e){if(Ni(e))return e.source==="onescience"?{label:"OneScience",tone:"onescience"}:e.source==="paper"?{label:"论文资料",tone:"paper"}:e.source==="local"?{label:"本地入口",tone:"local"}:e.page==="datasets"?{label:"第三方数据",tone:"third-party"}:{label:"第三方资源",tone:"third-party"};const t="href"in e&&typeof e.href=="string"?e.href:void 0;if("id"in e&&ga(e.id)?.startsWith("OneScience/"))return{label:"OneScience",tone:"onescience"};if("title"in e&&La(e.title)?.startsWith("OneScience/"))return{label:"OneScience",tone:"onescience"};if(t?.includes("modelscope.cn/datasets/OneScience/"))return{label:"OneScience",tone:"onescience"};const a=Oi[e.title],r=a?.docs??a?.paper??("id"in e?Ei[e.id]??t:t);return r?r.includes("gitee.com/onescience-ai")||r.includes("github.com/onescience-ai")||r.includes("dos.sourcefind.cn")||r.includes("das.sourcefind.cn")?{label:"OneScience",tone:"onescience"}:r.includes("modelscope.cn/datasets/OneScience/")?{label:"OneScience",tone:"onescience"}:r.includes("arxiv.org")||r.includes("nature.com")||r.includes("science.org")||r.includes("openreview.net")?{label:"论文资料",tone:"paper"}:"id"in e&&(e.id.startsWith("earth-")||e.id.startsWith("fluid-")||e.id.startsWith("life-")||e.id.startsWith("material-"))?{label:"第三方数据",tone:"third-party"}:{label:"第三方资源",tone:"third-party"}:{label:"本地入口",tone:"local"}}function Ni(e){return"source"in e&&"page"in e}function Ft(e){return Ni(e)&&e.id.startsWith("custom-")}function Dt(){return ft()?.account.id}function En(e){if(!Ft(e))return!1;const t=Dt();return!!(t&&e.owner===t)}function On(e){return Ft(e)&&!e.owner}function zh(e){return Dt()?En(e)||On(e):!1}function jh(e){return Dt()?Ft(e)?En(e)||On(e):!0:!1}function pe(e,t,a,r,s,l,d,c,g){return{id:e,title:t,copy:a,tags:r,provider:s,size:l,format:d,href:c,...g&&g.length>0?{links:g}:{},metricLabel:"规模",action:c?"安装":"导入"}}function rt(e,t,a,r,s,l){return{id:e,title:t,copy:a,tags:r,provider:"OneScience",size:s,format:"可复现",domain:s,sessionId:l,metricLabel:"领域",action:"基于此开发"}}function $(e,t,a,r,s,l,d,c){return{id:e,title:t,copy:a,tags:r,provider:s,size:l,format:d,href:c,metricLabel:"数据源",action:c||ga(e)?"下载":"导入"}}function k(e,t,a,r,s,l){return{id:e,title:t,copy:a,tags:r.filter(d=>!An.has(d)),provider:s,size:l,format:"预训练模型",metricLabel:"框架",action:"开发"}}function Na(e){const t=()=>{if(e.plain)return-1;const a=e.copy.indexOf(":");return a<=0||a>40?-1:a};return(()=>{var a=Au();return i(a,n(y,{get when(){return t()>0},get fallback(){return e.copy},get children(){return[(()=>{var r=Du();return i(r,()=>e.copy.slice(0,t())),r})(),ne(()=>e.copy.slice(t()))]}})),a})()}const Wh={datasets:{地球科学:["earth"],生命科学:["life"],材料化学:["material"],流体仿真:["fluid"],其它:["tools"]},models:{地球科学:["modelhub"],生命科学:["life"],材料化学:["material"],流体仿真:["fluid"],其它:["tools"]},frameworks:{训练框架:["framework-training"],并行训练:["framework-parallel"],推理框架:["framework-inference"]},operators:{基础算子:["operator"],科学算子:["sci-operator"],通信算子:["comm-operator"]},research:{物理AI:["physical-ai"],具身智能:["embodied-ai"],自动驾驶:["autonomous-driving"],世界模型:["world-model"]},docs:{用户手册:["用户手册"],插件:["插件"],发版记录:["发版记录"]}},Nn={datasets:{life:"生命科学",drug:"生命科学",earth:"地球科学",material:"材料化学",fluid:"流体仿真",general:"其它",tools:"其它",components:"其它"},models:{modelhub:"地球科学",life:"生命科学",material:"材料化学",fluid:"流体仿真",tools:"其它"},frameworks:{aiframe:"训练框架",scaleframe:"并行训练",inferframe:"推理框架"},operators:{operator:"基础算子","sci-operator":"科学算子","comm-operator":"通信算子"},research:{"physical-ai":"物理AI","embodied-ai":"具身智能","autonomous-driving":"自动驾驶","world-model":"世界模型"},cases:{earth:"地球科学",material:"材料化学",life:"生命科学",fluid:"流体仿真",other:"其它","case-cfdbench":"流体仿真","case-esm2":"生命科学","case-fourcastnet":"地球科学","case-fuxi":"地球科学","case-mace":"材料化学","case-matris":"材料化学","case-mace-water-pes":"材料化学","case-meshgraphnet":"流体仿真","case-proteinmpnn":"生命科学","case-rae2822-fno":"流体仿真","case-aifs-repro":"其它","case-fuxi-forecast-smoke":"地球科学","case-fuxi-run-test":"地球科学","case-ocean-atmo-fusion":"地球科学","case-xihe-parallel":"地球科学","case-ns-benchmark":"流体仿真"},docs:{manual:"用户手册",plugins:"插件",release:"发版记录"}};function mi(e,t,a){const r=t.replace(/^#/,"").trim().toLowerCase();if(!r)return;let s=r;try{s=decodeURIComponent(r)}catch{s=r}const l=Nn[e],d=l?.[s]??l?.[r];if(d&&a.includes(d))return d;const c=a.find(g=>{const v=g.toLowerCase();return v===s||v===r});if(c)return c}function Rn(e,t){if(t==="全部")return"";const a=Nn[e];if(!a)return t;for(const[r,s]of Object.entries(a))if(s===t)return r;return t}function ma(e,t,a){if(t==="全部")return!0;const r=t.toLowerCase(),s=Wh[e]?.[t],l=a.id;return l&&s?.some(d=>l===d||l.startsWith(`${d}-`))||a.layer===t||a.domain===t?!0:a.tags.some(d=>d.toLowerCase()===r||d.toLowerCase().includes(r))}function Ra(e){return Be[e].filters.filter(t=>t!=="全部")}function Ln(e,t){const a=Ra(e),r=a.filter(s=>s!=="其它");for(const s of r)if(ma(e,s,t))return s;if(a.includes("其它"))return"其它";for(const s of a)if(ma(e,s,t))return s;return a[0]??"其它"}function ha(e,t,a){if(t==="全部")return a;if(t==="其它"&&Ra(e).includes("其它")){const r=Ra(e).filter(s=>s!=="其它");return a.filter(s=>!r.some(l=>ma(e,l,s)))}return a.filter(r=>ma(e,t,r))}const Vh={datasets:sa("datasets",Be.datasets.items),models:sa("models",Be.models.items),apps:sa("apps",Be.apps.items),frameworks:sa("frameworks",Be.frameworks.items)};function Kh(e,t){return Ti(e,t)}const Xh=new Set(["datasets","models","apps","cases"]);function Un(e,t,a){const r=e==="datasets"?"数据集":e==="models"?"模型":e==="apps"?"应用":e==="cases"?"案例":"资源",s=a.trim();return s?`未找到与「${s}」匹配的${r},请调整搜索词或切换标签。`:t==="全部"?`暂无可展示的${r}。`:e==="cases"?t==="其它"?"当前「其它」标签下暂无案例,可切换到「全部」查看已有内容。":`当前「${t}」标签下暂无案例,可切换到「全部」查看或尝试其他标签。`:t==="其它"?`当前「其它」标签下暂无${r},可切换到「全部」查看已有内容,或通过上传补充。`:`当前「${t}」标签下暂无${r},可切换到「全部」查看或尝试其他标签。`}function qa(e,t){const a=e.trim();return a?t.filter(r=>Es([r.title,r.copy,r.provider,r.format,"id"in r?r.id:"","domain"in r&&typeof r.domain=="string"?r.domain:"",...r.tags],a)):t}function Ri(e,t){return Ft(t)?!0:e==="models"?!!La(t.title):e==="datasets"&&"id"in t?!!ga(t.id):!0}function Li(e,t){if(e!=="models"&&e!=="datasets")return t;const a=[],r=[];for(const s of t)Ri(e,s)?a.push(s):r.push(s);return[...a,...r]}function Jh(){const e=wt();return(()=>{var t=Fu(),a=t.firstChild,r=a.firstChild,s=r.nextSibling;return i(a,n(Ze,{href:"/",class:"os-brand",get children(){return[xu(),Mu()]}}),r),i(r,n(ce,{each:Fr,children:l=>(()=>{var d=Tu(),c=d.firstChild,g=c.nextSibling,v=g.firstChild,b=v.firstChild,u=b.firstChild,h=b.nextSibling;return i(c,()=>l.label),i(u,()=>l.copy),i(h,n(ce,{get each(){return l.items},children:f=>n(Ze,{get href(){return f.href},class:"os-menu-item",get children(){return[(()=>{var w=$n();return i(w,()=>f.title),w})(),(()=>{var w=Eu();return i(w,()=>f.copy),w})()]}})})),d})()})),i(s,n(El,{nav:Fr,variant:"light"}),null),i(s,n(y,{get when(){return ft()},get fallback(){return[n(Ze,{get href(){return nn({pathname:"/workspace",search:"",hash:""})},class:"os-button os-button-primary",children:"登录"}),(()=>{var l=Ou();return l.$$click=()=>e("/workspace"),l})()]},get children(){var l=Iu();return l.$$click=()=>e("/workspace"),l}}),null),t})()}function Qh(){return(()=>{var e=Nu(),t=e.firstChild,a=t.firstChild,r=a.nextSibling,s=r.nextSibling,l=s.firstChild,d=l.nextSibling;return i(d,n(ce,{each:Ih,children:c=>(()=>{var g=Ru();return i(g,c),g})()})),e})()}function Zh(){const e=Ci();return n(y,{get when(){return e.platform!=="desktop"},get fallback(){return n(Bs,{href:"/workspace"})},get children(){return n(Yh,{})}})}function Yh(){wt();const e=ot();Tt();const[t,a]=S(""),[r,s]=S(!0),[l,d]=S(),[c,g]=S();let v=0,b;const u=p=>{g(xn(p)),d(p.callablePrimitives)},h=p=>{const M=tn(p);M&&u(M);const N=++v;Promise.all([an(p,{refresh:!0}),rn(p,{refresh:!0})]).then(([L,W])=>{if(N!==v)return;const O=L??M;if(!O&&W===void 0)return;const H={datasets:O?.datasets??M?.datasets??0,models:O?.models??M?.models??0,apps:O?.apps??M?.apps??0,frameworks:O?.frameworks??M?.frameworks??0,byDomain:O?.byDomain??M?.byDomain??{datasets:{},models:{},apps:{},frameworks:{}},callablePrimitives:W??O?.callablePrimitives??M?.callablePrimitives??0};(W!==void 0||L)&&po(p,H),u(H)})};ge(ht(()=>e.current?.http.url,p=>{p&&h(p)})),Ut(()=>{const p=()=>{const M=e.current?.http.url;M&&h(M)};window.addEventListener("onescience:catalog-metrics-invalidated",p),ze(()=>window.removeEventListener("onescience:catalog-metrics-invalidated",p))});const f=j(()=>Fi({...l()!==void 0?{primitiveCount:l()}:{},...c()?.models!==void 0?{modelsCount:c()?.models}:{},...c()?.datasets!==void 0?{datasetsCount:c()?.datasets}:{},...c()?.apps!==void 0?{appsCount:c()?.apps}:{}})),w=()=>{const p=b;if(!p)return;const M=p.scrollTop+p.clientHeight>=p.scrollHeight-12;s(!M)};Rl("/",()=>b),Ut(()=>{w(),b?.addEventListener("scroll",w,{passive:!0}),window.addEventListener("resize",w,{passive:!0}),ze(()=>{b?.removeEventListener("scroll",w),window.removeEventListener("resize",w)})});const _=()=>{const p=b;if(!p)return;const M=p.querySelector("#product-content");if(M){const N=p.getBoundingClientRect().top,L=M.getBoundingClientRect().top-N+p.scrollTop;if(p.scrollTop<L-12){M.scrollIntoView({behavior:"smooth",block:"start"});return}}p.scrollBy({top:p.clientHeight*.85,behavior:"smooth"})};return(()=>{var p=qu(),M=p.firstChild,N=M.firstChild,L=N.nextSibling,W=L.firstChild,O=W.nextSibling,H=O.nextSibling,D=H.firstChild,T=M.nextSibling,G=T.firstChild,z=G.firstChild,P=z.nextSibling,F=P.firstChild,B=F.nextSibling,re=B.nextSibling,de=T.nextSibling,J=de.firstChild,we=J.firstChild,Y=we.nextSibling,ve=de.nextSibling,$e=ve.firstChild,ue=$e.firstChild,Z=ue.nextSibling,te=b;return typeof te=="function"?pa(te,p):b=p,i(p,n(Jh,{}),M),i(N,n(ce,{each:Nh,children:ee=>(()=>{var K=zu();return E(X=>{var fe=`${ee[0]}%`,De=`${ee[1]}%`,He=`${ee[2]}rem`,Ke=`rotate(${ee[3]}deg)`;return fe!==X.e&&xt(K,"left",X.e=fe),De!==X.t&&xt(K,"top",X.t=De),He!==X.a&&xt(K,"width",X.a=He),Ke!==X.o&&xt(K,"transform",X.o=Ke),X},{e:void 0,t:void 0,a:void 0,o:void 0}),K})()}),null),i(N,n(ce,{each:Oh,children:ee=>(()=>{var K=ju();return E(X=>{var fe=`${ee[0]}%`,De=`${ee[1]}%`,He=`scale(${ee[2]})`;return fe!==X.e&&xt(K,"left",X.e=fe),De!==X.t&&xt(K,"top",X.t=De),He!==X.a&&xt(K,"transform",X.a=He),X},{e:void 0,t:void 0,a:void 0}),K})()}),null),i(H,n(Ze,{href:"/workspace",class:"os-button os-button-primary os-button-large",children:"立即体验"}),D),i(H,n(Ze,{get href(){return et("onemodel")},class:"os-button os-button-secondary os-button-large",children:"查看知识资产矩阵"}),D),i(p,n(y,{get when(){return r()},get children(){var ee=Lu();return ee.$$click=_,i(ee,n(It,{name:"chevron-down",size:"large",class:"os-hero-scroll-cue-icon"})),ee}}),T),i(re,n(Ze,{href:"/workspace",class:"os-button os-button-primary",children:"进入开发工作台"}),null),i(re,n(Ze,{get href(){return et("oneskills")},class:"os-button os-button-secondary",children:"查看 OneSkills"}),null),i(p,n(ii,{title:"用知识驱动科研智能化开发",get children(){var ee=Uu();return i(ee,n(ce,{each:xh,children:K=>n(ep,{get title(){return K[0]},get copy(){return K[1]},get image(){return K[2]}})})),ee}}),de),i(p,n(ii,{title:"可复用的先验知识与工程资产",get children(){return[(()=>{var ee=Gu();return i(ee,n(ce,{get each(){return f().metrics},children:K=>n(Ze,{get href(){return K.href},class:"os-metric-card",get children(){return[(()=>{var X=Wu();return E(()=>R(X,"src",K.image)),X})(),Pr(),(()=>{var X=kr();return i(X,()=>K.value),X})(),(()=>{var X=Dr();return i(X,()=>K.title),X})(),(()=>{var X=di();return i(X,()=>K.copy),X})()]}})})),ee})(),(()=>{var ee=Bu();return i(ee,n(ce,{get each(){return f().metricLinks},children:K=>n(Ze,{get href(){return K.href},class:"os-metric-card os-metric-card-plain",get children(){return[Pr(),(()=>{var X=kr();return i(X,()=>K.value),X})(),(()=>{var X=Dr();return i(X,()=>K.title),X})(),(()=>{var X=di();return i(X,()=>K.copy),X})()]}})})),ee})()]}}),de),i(Y,n(ce,{each:kh,children:(ee,K)=>n(Dh,{item:ee,get index(){return K()}})})),i(p,n(ii,{title:"平台支持",get children(){var ee=Hu();return i(ee,n(ce,{each:Ah,children:K=>(()=>{var X=Vu(),fe=X.firstChild,De=fe.nextSibling,He=De.firstChild,Ke=He.nextSibling;return i(He,()=>K.title),i(Ke,()=>K.copy),E(()=>R(fe,"src",K.image)),X})()})),ee}}),ve),i(Z,n(ce,{each:Mh,children:ee=>(()=>{var K=Ku(),X=K.firstChild,fe=X.nextSibling;return i(X,()=>ee[0]),i(fe,()=>ee[1]),K})()})),i(p,n(Qh,{}),null),p})()}function ii(e){return(()=>{var t=Xu(),a=t.firstChild,r=a.firstChild,s=r.firstChild;return i(r,(()=>{var l=ne(()=>!!e.eyebrow);return()=>l()&&(()=>{var d=Ju();return i(d,()=>e.eyebrow),d})()})(),s),i(s,()=>e.title),i(a,()=>e.children,null),E(()=>R(t,"id",e.id)),t})()}function ep(e){return(()=>{var t=Qu(),a=t.firstChild,r=a.firstChild,s=a.nextSibling,l=s.firstChild,d=l.nextSibling;return i(l,()=>e.title),i(d,()=>e.copy),E(()=>R(r,"src",e.image)),t})()}function tp(e){const t=Ci(),a=wt(),r=Kt(),[s,l]=go({loading:!0,error:""}),[d,c]=S(!1);Ut(()=>{const v=ft();v&&l({session:v,loading:!1,error:""});const b=fo();if(!b){l({loading:!1,error:""});return}bo(b).then(async u=>{await vo(u,t.storage),l({session:u,loading:!1,error:""})}).catch(u=>{if(v&&!yo(u)){l({session:v,loading:!1,error:""});return}l({loading:!1,error:u instanceof Error?u.message:"会话已失效"})})});const g=()=>{c(!1),Do(t.storage).finally(()=>{if(t.platform==="desktop"){a("/login",{replace:!0});return}window.location.assign("/login")})};return(()=>{var v=Zu();return i(v,n(y,{get when(){return s.session},get fallback(){return n(Ze,{get href(){return nn({pathname:r.pathname||"/",search:r.search||"",hash:r.hash||""})},class:"os-sidebar-link os-sidebar-link-fold os-sidebar-account-trigger",get title(){return e.collapsed()?"登录账号":void 0},get children(){return[(()=>{var b=Ar();return i(b,n(Mt,{name:"users"})),b})(),(()=>{var b=Yu(),u=b.firstChild,h=u.nextSibling;return i(u,()=>s.loading?"检查登录状态":"未登录"),i(h,()=>s.error||"登录后使用个人工作区"),b})()]}})},children:b=>n(kt,{get open(){return d()},onOpenChange:u=>c(u),placement:"right-end",gutter:8,get children(){return[n(kt.Trigger,{as:"button",type:"button",class:"os-sidebar-link os-sidebar-link-fold os-sidebar-account-trigger",get"aria-label"(){return`账号管理 · ${Gn(b())}`},get title(){return ip(b())},get children(){return[(()=>{var u=Ar();return i(u,()=>ap(b())),u})(),(()=>{var u=em(),h=u.firstChild;return i(h,()=>b().account.name),u})(),n(It,{get name(){return d()?"chevron-left":"chevron-right"},size:"small"})]}}),n(kt.Portal,{get children(){return n(kt.Content,{class:"os-sidebar-account-menu",get children(){return[(()=>{var u=tm(),h=u.firstChild,f=h.nextSibling,w=f.nextSibling;return i(f,()=>b().account.name),i(w,()=>b().account.email),i(u,n(y,{get when(){return Bn(b())},children:_=>(()=>{var p=am();return i(p,_),p})()}),null),u})(),n(kt.Item,{class:"os-sidebar-account-menu-item",onSelect:()=>{c(!1),window.location.assign("/account")},get children(){return[(()=>{var u=xr();return i(u,n(Mt,{name:"users"})),u})(),n(kt.ItemLabel,{children:"账号中心"})]}}),n(kt.Separator,{}),n(kt.Item,{class:"os-sidebar-account-menu-item os-sidebar-account-menu-logout",onSelect:g,get children(){return[(()=>{var u=xr();return i(u,n(It,{name:"arrow-left",size:"small"})),u})(),n(kt.ItemLabel,{children:"退出登录"})]}})]}})}})]}})})),E(()=>R(v,"data-collapsed",e.collapsed()?"true":void 0)),v})()}function ap(e){return(e.account.name.trim()||e.account.email.trim()||"OS").slice(0,2).toUpperCase()}function Gn(e){return`${e.account.name} · ${e.account.email}`}function Bn(e){const t=e.workspaces.find(d=>d.role==="admin")??e.workspaces[0];if(!t)return;const a=t.name.trim();if(a)return a;const r=t.slug.trim();return r||t.defaultEnvPath.trim().replaceAll("\\","/").split("/").filter(Boolean).at(-1)||void 0}function ip(e){const t=Bn(e),a=ko(e),r=["账号管理",Gn(e)];return t&&r.push(t),a&&a!==t&&r.push(a),r.join(" · ")}function rp(e){const t=Ci(),a=()=>t.platform==="desktop"?Vp:Wp,r=Kt(),s=Tt(),l=fa(),d=ot(),c=qr(),g=zr(),v=j(()=>r.pathname.startsWith("/code")),[b,u]=S(!1),h=j(()=>v()||b()),[f,w]=S(["OneHub"]);let _="";const p=j(()=>Si(_i([...s.data.project.reduce((D,T)=>(D.set(T.worktree,{expanded:!0,...l.projects.list().find(G=>G.worktree===T.worktree),...T}),D),new Map(l.projects.list().map(D=>[D.worktree,D]))).values()],ft()))),M=j(()=>Hs({pathname:r.pathname,search:r.search,hash:r.hash,path:s.data.path,recent:p(),defaultDirectory:Jr(document,s.data.path),lastCodeWorkspace:d.projects.lastCode()})),N=()=>{if(!s.bootstrapped||!d.ready())return;const D=Xr({path:s.data.path,recent:p(),lastCodeWorkspace:d.projects.lastCode()}),T=`${D}\0${d.projects.lastCode()??""}`;_!==T&&(_=T,l.projects.open(D),c.client.project.current({directory:D}).catch(()=>{}))};ge(()=>{!s.bootstrapped||!d.ready()||(d.projects.lastCode(),N())}),ge(()=>{const D=a().flatMap(T=>T).find(T=>"items"in T&&T.items.some(G=>r.pathname===G.href||r.pathname.startsWith(G.href)));!D||Ms(()=>f().includes(D.label))||w(T=>[...T,D.label])});const L=D=>"items"in D&&f().includes(D.label),W=D=>{w(T=>T.includes(D)?T.filter(G=>G!==D):[...T,D])},O=D=>{if(v()){W(D);return}if(h()){u(!1),w(T=>T.includes(D)?T:[...T,D]);return}W(D)},H=()=>{g.show(()=>n(qs,{}))};return(()=>{var D=nm(),T=D.firstChild,G=T.firstChild,z=G.firstChild,P=G.nextSibling,F=P.nextSibling,B=F.firstChild,re=B.firstChild,de=T.nextSibling;return Is(G,Fs(()=>t.platform==="desktop"?{"data-tauri-drag-region":!0}:{}),!1,!0),i(G,n(Ze,{get href(){return t.platform==="desktop"?"/workspace":"/"},class:"os-sidebar-brand-link",get children(){return[im(),(()=>{var J=ti();return i(J,()=>t.platform==="desktop"?"OneCode":"OneScience"),J})()]}}),z),z.$$click=()=>{v()||u(J=>!J)},i(z,n(It,{get name(){return h()?"chevron-right":"chevron-left"},size:"small"})),i(P,n(ce,{get each(){return a()},children:J=>(()=>{var we=sm();return i(we,n(ce,{each:J,children:Y=>{const ve=()=>"items"in Y?Y.items.some(ue=>r.pathname===ue.href||r.pathname.startsWith(ue.href)):Y.icon==="code"?r.pathname.startsWith("/workspace/")&&r.pathname.includes("/session"):Y.href==="/workspace"?r.pathname==="/workspace"||r.pathname.startsWith("/workspace/capabilities"):r.pathname===Y.href||r.pathname.startsWith(Y.href),$e=()=>"items"in Y?Y.items[0].href:Y.icon==="code"?M():Y.href;return"items"in Y?(()=>{var ue=om(),Z=ue.firstChild,te=Z.firstChild,ee=Z.nextSibling;return Z.$$click=()=>O(Y.label),i(Z,n(Mt,{get name(){return Y.icon}}),te),i(te,()=>Y.label),i(Z,n(It,{get name(){return L(Y)?"chevron-down":"chevron-right"},size:"small"}),null),i(ee,n(ce,{get each(){return Y.items},children:K=>n(Ze,{get href(){return K.href},get classList(){return{"os-sidebar-link":!0,"os-sidebar-link-sub":!0,"is-active":r.pathname===K.href||r.pathname.startsWith(K.href)}},get title(){return ne(()=>!!h())()?K.label:void 0},get children(){return[n(Mt,{get name(){return K.icon}}),(()=>{var X=ti();return i(X,()=>K.label),X})()]}})})),E(K=>{var X=!!L(Y),fe=h()?Y.label:void 0,De=L(Y);return X!==K.e&&ue.classList.toggle("is-open",K.e=X),fe!==K.t&&R(Z,"title",K.t=fe),De!==K.a&&R(Z,"aria-expanded",K.a=De),K},{e:void 0,t:void 0,a:void 0}),ue})():n(Ze,{get href(){return $e()},get classList(){return{"os-sidebar-link":!0,"is-active":ve()}},get title(){return ne(()=>!!h())()?Y.label:void 0},get onPointerEnter(){return Y.icon==="code"?N:void 0},get onFocus(){return Y.icon==="code"?N:void 0},get children(){return[n(Mt,{get name(){return Y.icon}}),(()=>{var ue=ti();return i(ue,()=>Y.label),ue})()]}})}})),we})()})),i(F,n(tp,{collapsed:h}),B),B.$$click=H,i(B,n(Mt,{name:"settings"}),re),i(de,n(y,{get when(){return ne(()=>t.platform==="desktop")()&&!r.pathname.startsWith("/code")},get children(){return rm()}}),null),i(de,()=>e.children,null),i(D,n(y,{get when(){return!r.pathname.startsWith("/code")},get children(){return n(zs.Region,{})}}),null),E(J=>{var we={"onescience-workspace os-workspace min-h-full":!0,"os-workspace-collapsed":h(),"os-workspace-code":v(),"os-desktop-shell":t.platform==="desktop"},Y=h()?"展开导航":"收起导航",ve=v()?!0:void 0,$e=h()?"设置":void 0;return J.e=na(D,we,J.e),Y!==J.t&&R(z,"aria-label",J.t=Y),ve!==J.a&&(z.disabled=J.a=ve),$e!==J.o&&R(B,"title",J.o=$e),J},{e:void 0,t:void 0,a:void 0,o:void 0}),D})()}function np(){const e=ot(),t=Tt(),a=fa(),r=j(()=>Si(_i([...t.data.project.reduce((s,l)=>(s.set(l.worktree,{expanded:!0,...a.projects.list().find(d=>d.worktree===l.worktree),...l}),s),new Map(a.projects.list().map(s=>[s.worktree,s]))).values()],ft())));return s=>{const l=Xr({path:t.data.path,recent:r(),lastCodeWorkspace:e.projects.lastCode()});return a.projects.open(l),e.projects.touchCode(l),Ls(l,s)}}function Xt(){const e=ot(),t=Tt(),a=fa(),r=j(()=>Si(_i([...t.data.project.reduce((l,d)=>(l.set(d.worktree,{expanded:!0,...a.projects.list().find(c=>c.worktree===d.worktree),...d}),l),new Map(a.projects.list().map(l=>[l.worktree,l]))).values()],ft())));return j(()=>js(t.data.path,r(),Jr(document,t.data.path),e.projects.last()))}function Ui(e){const t=ot(),a=Tt(),[r,s]=S({}),[l,d]=S();let c;const g=j(()=>l()??e()),v=async()=>{const h=t.current,f=g();if(!h||!f)return;const w=await Us(h.http.url,f).catch(()=>{});w&&s(Object.fromEntries(w.map(_=>[ir(_),_])))},b=()=>{c===void 0&&(c=window.setInterval(()=>{v()},2e3))};ge(()=>{if(Object.values(r()).some(h=>h.status==="downloading")){b();return}c!==void 0&&(window.clearInterval(c),c=void 0)}),Ut(()=>{v(),ze(()=>{c!==void 0&&window.clearInterval(c)})}),ge(()=>{a.data.path.directory,a.data.path.worktree,a.data.path.home,g(),t.projects.last(),!(!t.ready()||!t.current)&&v()}),ge(()=>{Object.values(r()).some(h=>h.status==="downloading")||d(void 0)});const u=h=>{s(f=>({...f,[ir(h)]:h}))};return{records:r,refresh:v,start:async(h,f)=>{const w=t.current,_=e();!w||!_||(d(_),u(await Rs(w.http.url,_,h,f)),b(),v())},cancel:async(h,f)=>{const w=t.current,_=g();if(!w||!_)return;const p=ri(f,h);let M;try{M=await Ns(w.http.url,_,h,f)}catch{M={resource_id:h,kind:"dataset",status:"failed",started_at:r()[p]?.started_at??Date.now(),finished_at:Date.now(),error:"cancelled",...f?{environment:f}:{}}}u(M),await v(),!r()[p]&&M.status==="partial"&&u(M)},remove:async(h,f)=>{const w=t.current,_=g();if(!w||!_)return;const p=ri(f,h);s(M=>{const N={...M};return delete N[p],N}),await Os(w.http.url,_,h,f),await v()}}}function za(){const e=ot();Tt();const t=fa(),a=wt(),r=Xt();return(s,l)=>{const d=r();t.projects.open(d),e.projects.touch(d),a(hl(d,s,l))}}function Hn(){const e=Xt(),t=Ui(e);return n(ce,{each:Th,children:a=>(()=>{var r=cm(),s=r.firstChild,l=s.firstChild,d=s.nextSibling;return i(l,()=>a.title),i(s,n(Ze,{class:"os-home-hub-more",get href(){return a.href},get children(){return[lm(),n(It,{name:"chevron-right",size:"small"})]}}),null),i(d,n(ce,{get each(){return a.itemTitles},children:c=>{const g=()=>Eh(a.page,c);return n(y,{get when(){return g()},children:v=>n(va,{get page(){return a.page},get item(){return v()},get workspaceDirectory(){return ne(()=>a.page==="datasets")()?e():void 0},get modelScopeDownloads(){return a.page==="datasets"?t:void 0},get onDatasetDownloadStart(){return ne(()=>a.page==="datasets")()?t.start:void 0},get onDatasetDownloadCancel(){return ne(()=>a.page==="datasets")()?t.cancel:void 0},get onDatasetDownloadDelete(){return ne(()=>a.page==="datasets")()?t.remove:void 0}})})}})),r})()})}function sp(){const e=wt(),t=np(),[a,r]=S(""),s=()=>{const l=a().trim();l&&e(t(l))};return(()=>{var l=dm(),d=l.firstChild,c=d.firstChild,g=c.nextSibling,v=g.firstChild,b=v.nextSibling,u=b.firstChild,h=u.nextSibling,f=g.nextSibling,w=f.nextSibling;return g.addEventListener("submit",_=>{_.preventDefault(),s()}),v.$$input=_=>r(_.currentTarget.value),v.$$keydown=_=>{_.key!=="Enter"||_.shiftKey||(_.preventDefault(),s())},i(d,n(Hn,{}),f),i(w,n(ce,{each:Fh,children:_=>(()=>{var p=um(),M=p.firstChild,N=M.nextSibling,L=N.firstChild,W=L.nextSibling;return i(L,()=>_.title),i(W,()=>_.copy),E(O=>{var H=_.href,D=_.image;return H!==O.e&&R(p,"href",O.e=H),D!==O.t&&R(M,"src",O.t=D),O},{e:void 0,t:void 0}),p})()})),E(()=>h.disabled=!a().trim()),E(()=>v.value=a()),l})()}function op(e){const t=e.replace(/^#/,"").trim().toLowerCase();if(!t)return;let a=t;try{a=decodeURIComponent(t)}catch{a=t}return ca.find(r=>r.id===a||r.title===a)?.id}function lp(){const e=Be.skills,t=Kt(),a=ot(),r=qr(),s=Xt(),[l,d]=S(e.filters[0]),[c,g]=S(""),[v,b]=S([]),[u,h]=S(!1),[f,w]=S(!1),[_,p]=S(),[M,N]=S(),L=j(()=>Po(s(),"upload")),W=j(()=>!!ft()?.account.id),O=j(()=>qa(c().trim(),ha("skills",l(),v()))),H=async()=>{const T=a.current;if(!T){b([]),h(!0);return}Xn();const G=await Kn(T.http.url,{limit:100});b(G.items),h(!0)};Ut(async()=>{await H();const T=r.event.listen(G=>{G.name==="global"&&String(G.details.type)==="oneskills.upgraded"&&H()});ze(T)}),ge(ht(()=>[t.hash,u()],([T,G])=>{if(!G)return;const z=op(T);if(!z)return;N(void 0);let P=0;P=window.requestAnimationFrame(()=>{N(z),document.getElementById(z)?.scrollIntoView({behavior:"smooth",block:"center"})});const F=window.setTimeout(()=>N(void 0),2400);ze(()=>{P&&window.cancelAnimationFrame(P),window.clearTimeout(F)})}));const D=async()=>{if(!W())return;const T=a.current;if(!T){const G=nr("更新 OneSkills 失败:请先连接平台服务");p(G),la({variant:"error",title:"更新失败",description:G});return}w(!0),p(void 0);try{const G=await xo(T.http.url);await H();const z=G.version?`版本 ${G.version} · ${G.skillCount} 个技能`:`${G.skillCount} 个技能`,P=G.seedSource==="bundled"&&G.seedFallbackReason?"原语已回退内置 seed":G.seedSource==="disk"?"原语已同步磁盘 oneskills":void 0;la({variant:"success",title:"OneSkills 已更新",description:P?`${z} · ${P}`:z})}catch(G){const z=nr(G instanceof Error?G.message:"更新 OneSkills 失败");p(z),la({variant:"error",title:"更新失败",description:z})}finally{w(!1)}};return(()=>{var T=mm(),G=T.firstChild,z=G.firstChild,P=z.firstChild,F=P.firstChild,B=F.nextSibling,re=z.nextSibling,de=re.firstChild,J=de.firstChild,we=J.nextSibling,Y=de.nextSibling,ve=Y.firstChild,$e=ve.firstChild,ue=re.nextSibling;return i(F,()=>e.eyebrow),i(B,()=>e.title),i(P,n(y,{get when(){return _()},get children(){var Z=Ii();return i(Z,_),Z}}),null),we.$$input=Z=>g(Z.currentTarget.value),$e.$$click=()=>void D(),i($e,()=>f()?"更新中...":"更新 OneSkills"),i(Y,n(y,{get when(){return W()},get fallback(){return hm()},get children(){return n(Ze,{class:"os-button os-button-secondary",get href(){return L()},children:"上传技能"})}}),null),i(ue,n(ce,{get each(){return e.filters},children:Z=>(()=>{var te=Ga();return te.$$click=()=>d(Z),i(te,Z),E(()=>R(te,"data-active",l()===Z)),te})()})),i(G,n(y,{get when(){return u()},get fallback(){return n(pi,{})},get children(){return n(y,{get when(){return O().length>0},get fallback(){return pm()},get children(){return n(qn,{page:"skills",get items(){return O()},get layerFilter(){return l()},get highlightedLayer(){return M()}})}})}}),null),E(Z=>{var te=e.search,ee=W()?void 0:"登录后使用",K=!W()||f();return te!==Z.e&&R(we,"placeholder",Z.e=te),ee!==Z.t&&R(ve,"title",Z.t=ee),K!==Z.a&&($e.disabled=Z.a=K),Z},{e:void 0,t:void 0,a:void 0}),E(()=>we.value=c()),T})()}function Or(e,t){return e===t?!0:ci(e)===ci(t)}function Et(e){const t=Be[e.page],a=Kt(),r=wt(),s=j(()=>new URLSearchParams(a.search)),l=j(()=>s().get("highlight")??void 0),d=j(()=>s().get("publish")==="1"),c=j(()=>s().get("draftId")??void 0),g=j(()=>s().get("primitiveType")??void 0),[v,b]=S(),u=ot(),h=Xt(),f=Ui(h);let w;const[_,p]=S(mi(e.page,a.hash,t.filters)??t.filters[0]),[M,N]=S("");ge(ht(()=>a.hash,V=>{p(mi(e.page,V,t.filters)??t.filters[0])}));const L=V=>{p(V);const le=Rn(e.page,V),ie=le?`#${le}`:"";a.hash!==ie&&r(`${a.pathname}${a.search}${ie}`,{replace:!0})},[W,O]=S(!1),[H,D]=S(!1),[T,G]=S(),z=j(()=>Bi(e.page)),P=j(()=>z()&&!!Dt()),[F,B]=S([]),[re,de]=S([]),[J,we]=S(),[Y,ve]=S(!1),[$e,ue]=S(!1),[Z,te]=S(),[ee,K]=S(!1);ge(()=>{if(e.page!=="datasets")return;ee(),h();const V=Oa(()=>{f.refresh()},300);ze(()=>da(V))});const X=j(()=>Bh.has(e.page));let fe=!1,De=0;const He=async(V=0)=>{const le=u.current;if(!z()||!le||Y())return;const ie=++De,Ae=_()==="全部"?void 0:_(),Me=M().trim()||void 0;ve(!0);const Ge=await fi(le.http.url,e.page,{domain:Ae,q:Me,customOnly:e.page==="frameworks"?!0:void 0,limit:X()?100:Tn,offset:V});if(ie!==De)return;if(fe){ve(!1);return}let Ve=Ge.items,je=typeof Ge.nextOffset=="number"?Ge.nextOffset:void 0;if(V===0&&X()&&Ge.loaded===!0)for(;typeof je=="number"&&ie===De&&!fe;){const U=await fi(le.http.url,e.page,{domain:Ae,q:Me,limit:100,offset:je});if(U.loaded!==!0)break;Ve=bi(Ve,U.items),je=typeof U.nextOffset=="number"?U.nextOffset:void 0}if(ie!==De||fe){ve(!1);return}zt(()=>{de(U=>V===0?Ve:bi(U,Ve)),we(X()?void 0:je),ue(Ge.loaded===!0),ve(!1)})},Ke=async()=>{const V=u.current;if(!V||!Ia.has(e.page))return;Ba();const le=await oi(V.http.url);le&&te(le)},Ue=()=>{zt(()=>{de([]),we(void 0),ue(!1),ve(!1)}),He(),Ia.has(e.page)&&Ke()},tt=V=>{G(V),D(!0)};Ut(()=>{zt(()=>{B(t.items),K(!0)});const le=Oa(()=>{if(fe)return;He();const ie=u.current;Ia.has(e.page)&&ie&&oi(ie.http.url).then(Ae=>{Ae&&te(Ae)})});ze(()=>{fe=!0,da(le)})});const qe=j(()=>{const V=re()??[],le=F();return e.page==="frameworks"&&$e()?vi(le,V.filter(ie=>ie.id.startsWith("custom-"))):X()&&$e()?vi(le,V):z()&&$e()&&V.length>0?V:le}),lt=j(()=>{if(e.page==="cases")return Ti(e.page,t.items.length);if(!Ia.has(e.page))return t.count;const V=e.page,le=Z()?.byDomain?.[V],ie=Mn(Vh[V],le);return In(V,ie)}),[at,vt]=S([]),me=j(()=>`${e.page}:${_()}:${M().trim().toLowerCase()}`),[be,I]=S(0),ae=j(()=>at().slice(0,be())),oe=j(()=>be()<at().length),q=j(()=>ae().flatMap(V=>"id"in V?e.page==="datasets"||e.page==="models"||e.page==="apps"?[V.id]:Ha(V).tone==="onescience"?[V.id]:[]:[])),[Q,ye]=S({}),[Ne,Ee]=S(new Set),Ye=V=>!Ne().has(V),nt=(V,le)=>{const ie=u.current?.http.url;ie&&Ao(ie,V),ye(Ae=>({...Ae,[V]:le}))},[Re,Ce]=S();ge(ht(()=>u.current?.http.url,V=>{ye({}),Ee(new Set)})),ge(()=>{const le=u.current?.http.url,ie=[...new Set(q())];if(!le||ie.length===0){Ee(new Set);return}const Ae=_o(le,ie);if(Object.keys(Ae.items).length>0&&ye(Ge=>({...Ge,...Object.fromEntries(Object.entries(Ae.items).map(([Ve,je])=>[Ve,oa(je)]))})),Ae.missing.length===0){Ee(new Set);return}Ee(new Set(Ae.missing));let Me=!0;sn(le,ie).then(Ge=>{!Me||u.current?.http.url!==le||(Ee(new Set),Ge.loaded&&ye(Ve=>({...Ve,...Object.fromEntries(Object.entries(Ge.items).map(([je,U])=>[je,oa(U)]))})))}),ze(()=>{Me=!1})});const _e=j(()=>z()&&typeof J()=="number"),We=j(()=>oe()?"继续加载中...":Y()?"正在从数据库加载...":_e()?"继续加载更多内容":"已经到底啦"),se=j(()=>!ee()),[Se,Pe]=S(),[xe,ct]=S(!1),dt=()=>{if(oe()){I(le=>{const ie=Math.min(le+Er,at().length);return Fa.set(me(),ie),ie});return}const V=J();_e()&&!Y()&&typeof V=="number"&&He(V)};ge(ht(()=>[me(),qe(),_(),M()],([V,le,ie,Ae])=>{const Me=Li(e.page,qa(Ae,ha(e.page,ie,le))),Ge=Fa.get(V),Ve=Math.min(Ge??Er,Me.length);zt(()=>{vt(Me),I(Ve)}),Ve>0&&Fa.set(V,Ve)})),ge(()=>{const V=be();V>0&&Fa.set(me(),V)}),ge(ht(_,()=>{ee()&&Ue()},{defer:!0})),ge(ht(M,()=>{if(!ee()||X())return;const V=window.setTimeout(()=>{Ue()},250);ze(()=>window.clearTimeout(V))},{defer:!0})),ge(()=>{const V=Se();if(!V)return;const le=V.closest(".os-workspace-main"),ie=new IntersectionObserver(Ae=>{ct(Ae.some(Me=>Me.isIntersecting)),Ae.some(Me=>Me.isIntersecting)&&dt()},{root:le,rootMargin:"640px 0px"});ie.observe(V),ze(()=>ie.disconnect())}),ge(ht(()=>l(),()=>{const V=l();w=void 0,V&&b(void 0)})),ge(()=>{const V=l();if(!V||se())return;const le=at().findIndex(Ge=>Or(Ge.id,V));if(le<0)return;I(Ge=>Math.max(Ge,le+1));const ie=at()[le]?.id;if(!ie)return;b(ie);let Ae=0;Ae=window.requestAnimationFrame(()=>{document.getElementById(ie)?.scrollIntoView({behavior:"smooth",block:"center"})});const Me=window.setTimeout(()=>b(void 0),2400);ze(()=>{Ae&&window.cancelAnimationFrame(Ae),window.clearTimeout(Me)})}),ge(()=>{if(!d()||se()||Re())return;const V=l();if(!V)return;const le=at().findIndex(it=>Or(it.id,V));if(le<0)return;const ie=at()[le];if(!ie||!("id"in ie))return;I(it=>Math.max(it,le+1));const Ae=c(),Me=g(),Ge=`${ie.id}:${Ae??""}:${Me??""}`;if(w===Ge||!Ae&&Ne().has(ie.id))return;const Ve=Q()[ie.id]??{},je=on(e.page,Ve),U=Ae??je.draftId;if(!U&&je.disabled)return;const Le=e.page==="datasets"||e.page==="models"||e.page==="apps"||e.page==="frameworks"?e.page:void 0,_t=Me??je.initialPrimitiveType;w=Ge,Ce({resourceId:ie.id,resourcePage:Le,draftId:U,initialPrimitiveType:_t,publishSlot:je.publishSlot??ec(_t),sourceHint:{title:ie.title,copy:ie.copy,provider:ie.provider,tags:[...ie.tags],domain:"domain"in ie&&typeof ie.domain=="string"?ie.domain:ie.tags.find(it=>Hi.has(it)),format:ie.format,size:ie.size,href:"href"in ie&&typeof ie.href=="string"?ie.href:void 0,page:Le,datasetDownloadMethod:e.page==="datasets"?wi(ie.id):void 0,modelDownloadMethod:e.page==="models"?$i(ie.title):void 0}})});const pt=()=>{const V=new URLSearchParams(a.search);if(V.get("publish")!=="1"&&!V.get("draftId")&&!V.get("primitiveType"))return;V.delete("publish"),V.delete("draftId"),V.delete("primitiveType");const le=V.toString();r(`${a.pathname}${le?`?${le}`:""}${a.hash}`,{replace:!0})};return ge(()=>{const V=xe(),le=Y(),ie=oe(),Ae=_e(),Me=J(),Ge=be(),Ve=at().length;if(!V||!ie&&(!Ae||le))return;let je=0;je=window.requestAnimationFrame(()=>{xe()&&Me===J()&&Ge===be()&&Ve===at().length&&dt()}),ze(()=>{je&&window.cancelAnimationFrame(je)})}),(()=>{var V=fm(),le=V.firstChild,ie=le.firstChild,Ae=ie.firstChild,Me=Ae.firstChild,Ge=Me.nextSibling,Ve=Ae.nextSibling,je=Ve.firstChild,U=ie.nextSibling,Le=U.firstChild,_t=Le.firstChild,it=_t.nextSibling,Ot=U.nextSibling;return i(Me,()=>t.eyebrow),i(Ge,()=>t.title),i(je,lt),i(Ve,n(y,{get when(){return z()},get children(){var Ie=gm(),Xe=Ie.firstChild;return Xe.$$click=()=>{P()&&O(!0)},E(Je=>{var Nt=P()?void 0:"登录后使用",Rt=!P();return Nt!==Je.e&&R(Ie,"title",Je.e=Nt),Rt!==Je.t&&(Xe.disabled=Je.t=Rt),Je},{e:void 0,t:void 0}),Ie}}),null),it.$$input=Ie=>N(Ie.currentTarget.value),i(Ot,n(ce,{get each(){return t.filters},children:Ie=>(()=>{var Xe=Ga();return Xe.$$click=()=>L(Ie),i(Xe,Ie),E(()=>R(Xe,"data-active",_()===Ie)),Xe})()})),i(le,n(y,{get when(){return e.page==="skills"},get fallback(){return n(y,{get when(){return!se()},get fallback(){return n(pi,{})},get children(){return n(y,{get when(){return ae().length>0||!Xh.has(e.page)},get fallback(){return n(y,{get when(){return!Y()},get fallback(){return bm()},get children(){var Ie=Ii();return i(Ie,()=>Un(e.page,_(),M())),Ie}})},get children(){var Ie=Sn();return i(Ie,n(ce,{get each(){return ae()},children:Xe=>n(va,{get page(){return e.page},item:Xe,get highlighted(){return v()===Xe.id},onChanged:Ue,onEdit:tt,get primitiveLink(){return Q()[Xe.id]},get primitiveLinkReady(){return Ye(Xe.id)},onPrimitiveLinkChange:nt,onPublishPrimitive:Ce,get workspaceDirectory(){return ne(()=>e.page==="datasets")()?h():void 0},get modelScopeDownloads(){return e.page==="datasets"?f:void 0},get onDatasetDownloadStart(){return ne(()=>e.page==="datasets")()?f.start:void 0},get onDatasetDownloadCancel(){return ne(()=>e.page==="datasets")()?f.cancel:void 0},get onDatasetDownloadDelete(){return ne(()=>e.page==="datasets")()?f.remove:void 0}})})),Ie}})}})},get children(){return n(y,{get when(){return!se()},get fallback(){return n(pi,{})},get children(){return n(qn,{get page(){return e.page},get items(){return ae()},onChanged:Ue,onEdit:tt})}})}}),null),i(le,n(y,{get when(){return ne(()=>!!ee())()&&ae().length>0},get children(){var Ie=Cn();return pa(Pe,Ie),i(Ie,We),Ie}}),null),i(le,n(y,{get when(){return z()},get children(){return[n(Rr,{get open(){return W()},get page(){return e.page},get domain(){return ne(()=>_()==="全部")()?void 0:_()},onClose:()=>O(!1),onCreated:()=>{O(!1),Ue()}}),n(y,{get when(){return T()},children:Ie=>n(Rr,{get open(){return H()},get page(){return Ie().page},get initial(){return T()},onClose:()=>{D(!1),G(void 0)},onCreated:()=>{D(!1),G(void 0),Ue()}})})]}}),null),i(le,n(xi,{get resourceId(){return Re()?.resourceId},get resourcePage(){return Re()?.resourcePage},get draftId(){return Re()?.draftId},get initialPrimitiveType(){return Re()?.initialPrimitiveType},get sourceHint(){return Re()?.sourceHint},get serverUrl(){return u.current?.http.url??window.location.origin},get open(){return Re()!==void 0},onClose:()=>{Ce(void 0),pt()},onSuccess:Ie=>{const Xe=Re();Xe&&Ta(u.current.http.url,Xe.resourceId).then(Je=>{Je.loaded&&nt(Xe.resourceId,oa({callable:Je.callable,draft:Je.draft,inference:Je.inference,training:Je.training,slots:Je.slots}))}),Ce(void 0),pt(),ji(r,Ie,u.current?.http.url)}}),null),E(()=>R(it,"placeholder",t.search)),E(()=>it.value=M()),V})()}function cp(e,t){return e.layer===t.title||e.tags.includes(t.title)||e.tags.includes(t.id)}function dp(e){if(!(!("layer"in e)||typeof e.layer!="string"))return So(e.layer)}const Nr=4,hi=new Set(["orchestrator","resource"]);function up(e){const[t,a]=S(!1),r=()=>e.items.length,s=()=>Math.max(0,r()-Nr),l=()=>t()||s()===0?e.items:e.items.slice(0,Nr),d=()=>hi.has(e.group.id);return(()=>{var c=$m(),g=c.firstChild,v=g.firstChild,b=v.firstChild,u=v.nextSibling;return i(b,()=>e.group.title),i(v,n(y,{get when(){return r()>0},get children(){var h=vm();return i(h,r),h}}),null),i(u,()=>e.group.copy),i(c,n(y,{get when(){return r()>0},get fallback(){return _n()},get children(){return[(()=>{var h=ym();return i(h,n(ce,{get each(){return l()},children:f=>n(va,{page:"skills",item:f,get onChanged(){return e.onChanged},get onEdit(){return e.onEdit}})})),E(()=>mt(h,d()?"os-skill-card-grid-1":"os-skill-card-grid-2")),h})(),n(y,{get when(){return ne(()=>!d())()&&s()>0},get children(){var h=wm();return h.$$click=()=>a(f=>!f),i(h,(()=>{var f=ne(()=>!!t());return()=>f()?"收起":`展开其余 ${s()} 个`})()),E(()=>R(h,"aria-expanded",t())),h}})]}}),null),E(h=>{var f=e.group.id,w=!!e.highlighted,_=e.group.id,p=e.highlighted?"true":void 0,M=d()?"true":void 0;return f!==h.e&&R(c,"id",h.e=f),w!==h.t&&c.classList.toggle("os-skill-group-highlighted",h.t=w),_!==h.a&&R(c,"data-layer",h.a=_),p!==h.o&&R(c,"data-highlighted",h.o=p),M!==h.i&&R(c,"data-fixed-single",h.i=M),h},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),c})()}function qn(e){const t=()=>e.page==="skills"&&e.layerFilter&&e.layerFilter!=="全部"?ca.filter(d=>d.title===e.layerFilter):ca,a=d=>e.page==="skills"?e.items.filter(c=>cp(c,d)):e.items.filter(c=>d.title===("layer"in c?c.layer:void 0));if(e.page!=="skills")return(()=>{var d=Cm();return i(d,n(ce,{get each(){return t()},children:c=>{const g=()=>a(c);return(()=>{var v=_m(),b=v.firstChild,u=b.firstChild,h=u.nextSibling;return i(u,()=>c.title),i(h,()=>c.copy),i(v,n(y,{get when(){return g().length>0},get fallback(){return _n()},get children(){var f=Sm();return i(f,n(ce,{get each(){return g()},children:w=>n(va,{get page(){return e.page},item:w,get onChanged(){return e.onChanged},get onEdit(){return e.onEdit}})})),f}}),null),v})()}})),d})();const r=()=>{const d=t();return e.layerFilter&&e.layerFilter!=="全部"?d:d.filter(c=>a(c).length>0)},s=()=>{const d=r();if(e.layerFilter&&e.layerFilter!=="全部")return{pair:[],rest:d};const c=d.filter(v=>hi.has(v.id)),g=d.filter(v=>!hi.has(v.id));return{pair:c,rest:g}},l=d=>n(up,{group:d,get items(){return a(d)},get highlighted(){return e.highlightedLayer===d.id},get onChanged(){return e.onChanged},get onEdit(){return e.onEdit}});return(()=>{var d=km();return i(d,n(y,{get when(){return s().pair.length>0},get children(){var c=Pm();return i(c,n(ce,{get each(){return s().pair},children:g=>l(g)})),E(()=>R(c,"data-cols",String(s().pair.length))),c}}),null),i(d,n(ce,{get each(){return s().rest},children:c=>l(c)}),null),d})()}function mp(e){return(()=>{var t=Dm();return i(t,n(ce,{get each(){return e.profiles},children:a=>(()=>{var r=Am(),s=r.firstChild,l=s.firstChild,d=s.nextSibling;return r.$$click=()=>e.onStart?.(a),i(l,()=>a.title),i(d,()=>Hh[a.id]??a.description),r})()})),t})()}function pi(){return(()=>{var e=xm();return i(e,n(ce,{get each(){return Array.from({length:4})},children:()=>Mm()})),e})()}const ja=[{value:"onescience",label:"OneScience"},{value:"third-party",label:"第三方"},{value:"paper",label:"论文资料"},{value:"local",label:"本地入口"}];function zn(e){return ja.find(t=>t.value===e)?.label??"第三方"}const ke={title:64,copy:120,size:48,format:48,tags:100,tagItem:36,href:512};function jn(e,t){return e.length>t?e.slice(0,t):e}function Wn(e){const t=[];return e.title.trim().length>ke.title&&t.push(`名称最多 ${ke.title} 字`),e.copy.trim().length>ke.copy&&t.push(`描述最多 ${ke.copy} 字`),e.size.trim().length>ke.size&&t.push(`元信息最多 ${ke.size} 字`),e.format.trim().length>ke.format&&t.push(`格式最多 ${ke.format} 字`),e.tags.length>ke.tags&&t.push(`标签最多 ${ke.tags} 字`),e.href.trim().length>ke.href&&t.push(`链接最多 ${ke.href} 字`),t.length?`${t.join(";")},请缩短后再保存`:""}function qt(e,t,a,r,s,l){const d=e.clipboardData?.getData("text")??"";if(!d)return;const c=e.currentTarget,g=c.selectionStart??t.length,v=c.selectionEnd??t.length,b=`${t.slice(0,g)}${d}${t.slice(v)}`;b.length<=a||(e.preventDefault(),r(jn(b,a)),l(`${s}超过 ${a} 字上限,粘贴内容已截断`))}function Vn(e){return e.split(/[,,\s]+/).map(t=>t.trim()).filter(Boolean).map(t=>t.slice(0,ke.tagItem)).slice(0,8)}function gi(e){return e?.source?e.source:ja.find(a=>a.label===e?.provider)?.value??"third-party"}function Gi(e){switch(e){case"datasets":return{eyebrow:"OneHub · 数据集",title:"新增数据集资源",editTitle:"修改数据集资源",description:"填写数据覆盖范围、访问方式与存储格式。保存后可发布为数据加载或数据处理原语。",typeLabel:"数据形态",typeHint:"显示在卡片元数据,便于 Agent 识别数据来源类型",typePlaceholder:"再分析 / 观测 / benchmark 等",formatLabel:"存储格式",formatHint:"发布原语时写入 schema 与 access 契约",formatPlaceholder:"GRIB / NetCDF / Zarr 等",hrefPlaceholder:"https://... 或 modelscope 数据集页",validationError:"请填写名称、描述、提供方、数据形态和存储格式"};case"models":return{eyebrow:"OneHub · 模型",title:"新增模型资源",editTitle:"修改模型资源",description:"填写推理框架、权重格式与获取方式。保存后可发布为模型推理或训练原语。",typeLabel:"推理框架",typeHint:"发布原语时预填 framework 字段",typePlaceholder:"PyTorch / JAX / ONNX 等",formatLabel:"权重格式",formatHint:"Checkpoint、ONNX 或预训练产物形态",formatPlaceholder:"Checkpoint / ONNX 等",hrefPlaceholder:"https://... 或 modelscope 模型页",validationError:"请填写名称、描述、提供方、推理框架和权重格式"};case"apps":return{eyebrow:"OneHub · 应用",title:"新增应用资源",editTitle:"修改应用资源",description:"填写实现语言、运行环境与安装入口。保存后可发布为应用启动原语。",typeLabel:"实现语言",typeHint:"软件主要实现语言或发行形态",typePlaceholder:"Python / C++ / Web 等",formatLabel:"运行环境",formatHint:"发布原语时预填 runtime 字段",formatPlaceholder:"CPU / GPU / MPI / Docker 等",hrefPlaceholder:"安装门户或 workflow 入口链接",validationError:"请填写名称、描述、提供方、实现语言和运行环境"};case"frameworks":return{eyebrow:"OneHub · AI 框架",title:"新增框架资源",editTitle:"修改框架资源",description:"填写框架语言、硬件支持与安装入口。",typeLabel:"语言或发行形态",typeHint:"框架主要语言或发行形态",typePlaceholder:"Python / C++ 等",formatLabel:"硬件或运行栈",formatHint:"支持的硬件与并行运行栈",formatPlaceholder:"CPU+GPU / MPI 等",hrefPlaceholder:"https://...",validationError:"请填写名称、描述、提供方、语言和运行栈"};case"skills":return{eyebrow:"OneSkills",title:"新增技能资源",editTitle:"修改技能资源",description:"填写技能类型、运行环境与依赖说明。",typeLabel:"技能类型或角色",typeHint:"技能在 OneSkills 分层中的类型",typePlaceholder:"Expert / Executor / Resource 等",formatLabel:"运行环境或依赖",formatHint:"技能运行所需环境与依赖",formatPlaceholder:"Python / Shell 等",hrefPlaceholder:"https://...",validationError:"请填写名称、描述、提供方、类型和运行环境"}}}function hp(e){const t=Gi(e);return{typeHint:t.typeHint,typePlaceholder:t.typePlaceholder,formatHint:t.formatHint,formatPlaceholder:t.formatPlaceholder}}function Rr(e){const t=ot(),[a,r]=S(e.initial?.title??""),[s,l]=S(e.initial?.copy??""),[d,c]=S(e.initial?.tags.join(", ")??""),[g,v]=S(e.initial?.domain??e.domain??Be[e.page].filters.find(G=>G!=="全部")??"其它"),[b,u]=S(gi(e.initial)),[h,f]=S(e.initial?.size??""),[w,_]=S(e.initial?.format??""),[p,M]=S(e.initial?.href??""),[N,L]=S(""),[W,O]=S(!1),H=j(()=>Gi(e.page)),D=()=>{r(e.initial?.title??""),l(e.initial?.copy??""),c(e.initial?.tags.join(", ")??""),v(e.initial?.domain??e.domain??Be[e.page].filters.find(G=>G!=="全部")??"其它"),u(gi(e.initial)),f(e.initial?.size??""),_(e.initial?.format??""),M(e.initial?.href??""),L("")};ge(ht(()=>[e.open,e.initial?.id,e.domain,e.page],()=>{D()}));const T=async G=>{G.preventDefault();const z=t.current;if(!z){L("当前没有可用服务");return}if(!a().trim()||!s().trim()||!h().trim()||!w().trim()){L(H().validationError);return}const P=Wn({title:a(),copy:s(),size:h(),format:w(),tags:d(),href:p()});if(P){L(P);return}O(!0),L("");try{const F={title:a().trim(),copy:s().trim(),domain:g(),tags:Vn(d()),provider:zn(b()),size:h().trim(),format:w().trim(),...p().trim()?{href:p().trim()}:{},source:b()};e.initial?await Jn(z.http.url,e.page,e.initial.id,F):await yp(z.http.url,{page:e.page,...F}),D(),e.onCreated()}catch(F){L(F instanceof Error?F.message:"上传失败")}finally{O(!1)}};return n(y,{get when(){return e.open},get children(){return n(bt,{get children(){var G=Im(),z=G.firstChild,P=z.firstChild,F=P.firstChild,B=F.firstChild,re=B.nextSibling,de=re.nextSibling,J=F.nextSibling,we=P.nextSibling,Y=we.firstChild,ve=Y.firstChild,$e=ve.nextSibling,ue=$e.firstChild,Z=Y.nextSibling,te=we.nextSibling,ee=te.firstChild,K=ee.firstChild,X=K.nextSibling,fe=X.firstChild,De=ee.nextSibling,He=te.nextSibling,Ke=He.firstChild,Ue=Ke.firstChild,tt=Ue.nextSibling,qe=tt.nextSibling,lt=Ke.nextSibling,at=lt.firstChild,vt=at.firstChild,me=vt.firstChild,be=vt.nextSibling,I=be.firstChild,ae=at.nextSibling,oe=ae.nextSibling,q=lt.nextSibling,Q=q.firstChild,ye=Q.firstChild,Ne=ye.firstChild,Ee=ye.nextSibling,Ye=Ee.firstChild,nt=Q.nextSibling,Re=nt.nextSibling,Ce=He.nextSibling,_e=Ce.firstChild,We=_e.firstChild,se=We.nextSibling,Se=se.firstChild,Pe=_e.nextSibling,xe=Ce.nextSibling,ct=xe.firstChild,dt=ct.nextSibling,pt=xe.nextSibling,V=pt.firstChild,le=V.firstChild,ie=le.nextSibling,Ae=ie.firstChild,Me=V.nextSibling,Ge=pt.nextSibling,Ve=Ge.firstChild,je=Ve.nextSibling;return z.$$click=U=>U.stopPropagation(),z.addEventListener("submit",T),i(B,()=>H().eyebrow),i(re,(()=>{var U=ne(()=>!!e.initial);return()=>U()?H().editTitle:H().title})()),i(de,()=>H().description),Oe(J,"click",e.onClose,!0),i($e,()=>a().length,ue),i($e,()=>ke.title,null),Z.addEventListener("paste",U=>qt(U,a(),ke.title,r,"名称",L)),Z.$$input=U=>{r(U.currentTarget.value),L("")},i(X,()=>s().length,fe),i(X,()=>ke.copy,null),De.addEventListener("paste",U=>qt(U,s(),ke.copy,l,"描述",L)),De.$$input=U=>{l(U.currentTarget.value),L("")},qe.$$input=U=>u(U.currentTarget.value),i(qe,n(ce,{each:ja,children:U=>(()=>{var Le=Mr();return i(Le,()=>U.label),E(()=>Le.value=U.value),Le})()})),i(vt,()=>H().typeLabel,me),i(be,()=>h().length,I),i(be,()=>ke.size,null),i(ae,()=>H().typeHint),oe.addEventListener("paste",U=>qt(U,h(),ke.size,f,H().typeLabel,L)),oe.$$input=U=>{f(U.currentTarget.value),L("")},i(ye,()=>H().formatLabel,Ne),i(Ee,()=>w().length,Ye),i(Ee,()=>ke.format,null),i(nt,()=>H().formatHint),Re.addEventListener("paste",U=>qt(U,w(),ke.format,_,H().formatLabel,L)),Re.$$input=U=>{_(U.currentTarget.value),L("")},i(se,()=>d().length,Se),i(se,()=>ke.tags,null),Pe.addEventListener("paste",U=>qt(U,d(),ke.tags,c,"标签",L)),Pe.$$input=U=>{c(U.currentTarget.value),L("")},dt.$$input=U=>v(U.currentTarget.value),i(dt,n(ce,{get each(){return Be[e.page].filters.filter(U=>U!=="全部")},children:U=>(()=>{var Le=Mr();return Le.value=U,i(Le,U),Le})()})),i(ie,()=>p().length,Ae),i(ie,()=>ke.href,null),Me.addEventListener("paste",U=>qt(U,p(),ke.href,M,"链接",L)),Me.$$input=U=>{M(U.currentTarget.value),L("")},i(z,n(y,{get when(){return N()},children:U=>(()=>{var Le=ba();return i(Le,U),Le})()}),Ge),Oe(Ve,"click",e.onClose,!0),i(je,(()=>{var U=ne(()=>!!W());return()=>U()?"保存中...":e.initial?"保存修改":"保存"})()),E(U=>{var Le=e.page,_t=a().length>ke.title?"true":void 0,it=ke.title,Ot=s().length>ke.copy?"true":void 0,Ie=ke.copy,Xe=h().length>ke.size?"true":void 0,Je=ke.size,Nt=H().typePlaceholder,Rt=w().length>ke.format?"true":void 0,ya=ke.format,wa=H().formatPlaceholder,$t=d().length>ke.tags?"true":void 0,Jt=ke.tags,$a=p().length>ke.href?"true":void 0,Qt=ke.href,Ca=H().hrefPlaceholder,Sa=W();return Le!==U.e&&R(z,"data-page",U.e=Le),_t!==U.t&&R($e,"data-over",U.t=_t),it!==U.a&&R(Z,"maxlength",U.a=it),Ot!==U.o&&R(X,"data-over",U.o=Ot),Ie!==U.i&&R(De,"maxlength",U.i=Ie),Xe!==U.n&&R(be,"data-over",U.n=Xe),Je!==U.s&&R(oe,"maxlength",U.s=Je),Nt!==U.h&&R(oe,"placeholder",U.h=Nt),Rt!==U.r&&R(Ee,"data-over",U.r=Rt),ya!==U.d&&R(Re,"maxlength",U.d=ya),wa!==U.l&&R(Re,"placeholder",U.l=wa),$t!==U.u&&R(se,"data-over",U.u=$t),Jt!==U.c&&R(Pe,"maxlength",U.c=Jt),$a!==U.w&&R(ie,"data-over",U.w=$a),Qt!==U.m&&R(Me,"maxlength",U.m=Qt),Ca!==U.f&&R(Me,"placeholder",U.f=Ca),Sa!==U.y&&(je.disabled=U.y=Sa),U},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0}),E(()=>Z.value=a()),E(()=>De.value=s()),E(()=>qe.value=b()),E(()=>oe.value=h()),E(()=>Re.value=w()),E(()=>Pe.value=d()),E(()=>dt.value=g()),E(()=>Me.value=p()),G}})}})}function Bi(e){return e==="datasets"||e==="models"||e==="apps"||e==="frameworks"}async function fi(e,t,a){const r=a?.limit??Tn,s=a?.offset??0,l=a?.domain?.trim(),d=a?.q?.trim(),c=a?.customOnly===!0,g=Dt()??"guest",v=`${yt(e)}:${t}:${g}:${l??""}:${d??""}:${c}:${r}:${s}`,b=ua.get(v);if(b)return b;try{const u=new URLSearchParams({page:t,limit:String(r),offset:String(s)});l&&u.set("domain",l),d&&u.set("q",d),c&&u.set("customOnly","true");const h=await gt(`${yt(e)}/experimental/onescience/resource?${u}`);if(!h.ok)return{items:[],loaded:!1};const f=await h.json(),w=Array.isArray(f)?{items:f,loaded:!0}:{items:Array.isArray(f.items)?f.items:[],loaded:!0,...typeof f.nextOffset=="number"?{nextOffset:f.nextOffset}:{}};return ua.set(v,w),w}catch{return{items:[],loaded:!1}}}async function Kn(e,t){const a=`${yt(e)}:skills:catalog:${t?.layer??""}:${t?.q??""}:${t?.limit??50}`,r=ui.get(a);if(r)return r;try{const s=await Kr(e,{layer:t?.layer,q:t?.q,limit:t?.limit??50});if(s.loaded!==!0)return{items:[],loaded:!1};const l={...s,items:s.items.map(d=>({...d,sortOrder:d.sortOrder??0})),loaded:!0};return ui.set(a,l),l}catch{return{items:[],loaded:!1}}}async function pp(e){const t=`${yt(e)}:task-profiles:v2`,a=ai.get(t);if(a)return a;const r=gp(t);if(r)return ai.set(t,r),r;try{const s=await gt(`${yt(e)}/experimental/onescience/task-profile`);if(!s.ok)return{items:[],loaded:!1};const d={items:(await s.json()).items.map(c=>c.id==="operator-performance-optimization"?{...c,title:"Kernel性能优化",description:"优化热点 Kernel 并复测。",expectedArtifacts:["kernel_profile_report","kernel_benchmark_report","kernel_optimization_patch","optimized_kernel_report"]}:c),loaded:!0};return ai.set(t,d),fp(t,d),d}catch{return{items:[],loaded:!1}}}function gp(e){if(!(typeof window>"u"))try{const t=window.localStorage.getItem(`onescience:${e}`);if(!t)return;const a=JSON.parse(t);return typeof a.time!="number"||Date.now()-a.time>qh||!a.value||!Array.isArray(a.value.items)?void 0:a.value}catch{return}}function fp(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(`onescience:${e}`,JSON.stringify({time:Date.now(),value:t}))}catch{return}}async function bp(e,t){return Vr(e,t)}async function vp(e,t){const a=new URLSearchParams({status:t?.status??"callable"});t?.domain&&a.set("domain",t.domain),t?.primitiveType&&a.set("primitiveType",t.primitiveType),a.set("limit",String(t?.limit??50)),a.set("offset",String(t?.offset??0));const r=await gt(`${yt(e)}/experimental/onescience/agent-registry?${a}`);return r.ok?{...await r.json(),loaded:!0}:{items:[],loaded:!1}}function Xn(){ua.clear(),ui.clear(),Ba()}function bi(e,t){const a=new Set(e.map(r=>r.id));return[...e,...t.filter(r=>a.has(r.id)?!1:(a.add(r.id),!0))]}function Lr(e){return e.title}const Hi=new Set(["地球科学","生命科学","材料化学","流体仿真","其它"]);function vi(e,t){const a=new Map;for(const r of e)a.set(Lr(r),r);for(const r of t)a.set(Lr(r),r);return[...a.values()]}function qi(e,t){const a=`${yt(e)}:${t}:`;for(const r of ua.keys())r.startsWith(a)&&ua.delete(r);Ba()}async function yp(e,t){const a=await gt(`${yt(e)}/experimental/onescience/resource`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw new Error("保存失败");return qi(e,t.page),await a.json()}async function Jn(e,t,a,r){const s=await gt(`${yt(e)}/experimental/onescience/resource/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(r)});if(!s.ok)throw new Error("保存失败");return qi(e,t),await s.json()}async function Qn(e,t,a){const r=await gt(`${yt(e)}/experimental/onescience/resource/${encodeURIComponent(a)}`,{method:"DELETE"});if(!r.ok)throw new Error("删除失败");return qi(e,t),await r.json()}async function zi(e,t){const a=await gt(`${yt(e)}/experimental/onescience/primitive/${encodeURIComponent(t)}`,{method:"DELETE"});if(!a.ok)throw new Error("删除失败");return Ts(e),jr(),await a.json()}function yt(e){try{return new URL(e).toString().replace(/\/$/,"")}catch{return e.replace(/\/$/,"")}}function Zn(e){const[t,a]=S(!1),[r,s]=S(""),l=()=>!!e.sessionId&&!!e.onRestore,d=()=>{const c=e.sessionId;if(!(!c||!e.onRestore||t())){a(!0),s("");try{const g=e.onRestore(c);g instanceof Promise?g.catch(v=>{s(v instanceof Error?v.message:"恢复失败")}).finally(()=>a(!1)):a(!1)}catch(g){a(!1),s(g instanceof Error?g.message:"恢复失败")}}};return n(bt,{get children(){var c=Tm(),g=c.firstChild,v=g.firstChild,b=v.firstChild,u=b.nextSibling,h=v.nextSibling,f=h.firstChild,w=f.nextSibling,_=h.nextSibling,p=_.nextSibling,M=p.firstChild;return Oe(c,"click",e.onClose,!0),g.$$click=N=>N.stopPropagation(),Oe(u,"click",e.onClose,!0),i(w,()=>e.title),i(_,()=>l()?"可点击右下角「恢复案例」直接还原该预置会话,或在科研开发中重新创建该案例。":"可以在科研开发中重新创建该案例,或返回案例页选择其它预置案例。"),i(g,n(y,{get when(){return r()},get children(){var N=ba();return i(N,r),N}}),p),Oe(M,"click",e.onClose,!0),i(p,n(y,{get when(){return l()},get children(){var N=Fm();return N.$$click=d,i(N,()=>t()?"恢复中...":"恢复案例"),E(()=>N.disabled=t()),N}}),null),c}})}function va(e){const t=wt(),a=ot();fa();const r=Tt(),s=zr(),l=Ws(),d=Vs(),c=Xt(),g=za(),v=j(()=>{const m=dr(e.item.title);return m?hn[m]:void 0}),b=()=>Oi[e.item.title],u=()=>e.item.action==="使用"?void 0:b()?.github??("href"in e.item?e.item.href:void 0),h=()=>{if(e.page==="skills")return;const m=b()?.docs??b()?.paper??("href"in e.item?Ei[e.item.id]??e.item.href:void 0);if(m)return m;if(e.page==="datasets"){const C=O();if(C)return wo(C)}},f=()=>b()?.paper,w=()=>("links"in e.item&&e.item.links?e.item.links:[]).filter(m=>m.href),_=()=>e.page==="frameworks"&&w().length>0,p=()=>e.page!=="frameworks"&&e.page!=="skills",M=()=>Ha(e.item),N=()=>!_()&&!(e.page==="skills"&&e.item.action==="安装"),L=()=>!e.downloadOnly&&(e.page==="datasets"||e.page==="models"||e.page==="apps"||e.page!=="skills"&&M().tone==="onescience"),W=()=>e.page==="models"?La(e.item.title):void 0,O=()=>e.page==="datasets"&&"id"in e.item?ga(e.item.id):void 0,H=()=>e.page==="datasets"&&e.item.action==="下载",D=()=>Ri(e.page,e.item),T=()=>(e.page==="models"||e.page==="datasets")&&!Ft(e.item),G=()=>e.page==="operators"&&e.item.action==="导入",z=()=>"id"in e.item?e.item.id:void 0,[P,F]=S({}),[B,re]=S(!1),[de,J]=S(!1),[we,Y]=S(!1),[ve,$e]=S("default"),[ue,Z]=S(),[te,ee]=S(),K=()=>e.primitiveLinkReady!==void 0?e.primitiveLink??{}:P(),X=()=>e.primitiveLinkReady??B(),fe=()=>on(e.page,K()),De=()=>!!Dt(),He=()=>fe().disabled||!De(),Ke=()=>fe().label,Ue=()=>{if(!De())return"请先登录";if(fe().disabled)return"该资源已发布可调用原语"},tt=()=>!!Dt(),qe=()=>!O()||Se()||!tt(),lt=()=>{if(!tt())return"请先登录"},at=()=>$o(e.page,K()),vt=()=>{const m=K();return e.page==="models"?m.inferenceCallableId??m.trainingCallableId??m.callableId:e.page==="datasets"?m.datasetCallableId??m.dataProcessingCallableId??m.callableId:m.callableId},me=()=>e.page==="datasets"||e.page==="models"||e.page==="apps"||e.page==="frameworks"?e.page:void 0,be=()=>({title:e.item.title,copy:e.item.copy,provider:e.item.provider,tags:[...e.item.tags],domain:"domain"in e.item&&typeof e.item.domain=="string"?e.item.domain:e.item.tags.find(m=>Hi.has(m)),format:e.item.format,size:e.item.size,href:"href"in e.item&&typeof e.item.href=="string"?e.item.href:void 0,page:me(),datasetDownloadMethod:e.page==="datasets"&&"id"in e.item?wi(e.item.id):void 0,modelDownloadMethod:e.page==="models"?$i(e.item.title):void 0}),I=()=>{const m=z();if(!m)return;const C=fe(),A={resourceId:m,resourcePage:me(),draftId:C.draftId,initialPrimitiveType:C.initialPrimitiveType,publishSlot:C.publishSlot??"default",sourceHint:be()};if(e.onPublishPrimitive){e.onPublishPrimitive(A);return}$e(C.publishSlot??"default"),Z(C.draftId),ee(C.initialPrimitiveType),Y(!0)};ge(()=>{if(e.primitiveLinkReady!==void 0)return;const m=z(),C=a.current;if(!m||!C||!L()){F({}),re(!0);return}re(!1);let A=!0;Ta(C.http.url,m).then(x=>{if(A){if(!x.loaded){F({}),re(!0);return}F(oa({callable:x.callable,draft:x.draft,inference:x.inference,training:x.training,slots:x.slots})),re(!0)}}),ze(()=>{A=!1})});const[ae,oe]=S(!1),[q,Q]=S(!1),[ye,Ne]=S(!1),[Ee,Ye]=S(!1),[nt,Re]=S([]),[Ce,_e]=S(!1),[We,se]=S(!1),[Se,Pe]=S(!1),[xe,ct]=S(!1),[dt,pt]=S(!1),V=()=>"sessionId"in e.item?e.item.sessionId:void 0,le=()=>e.page==="skills",ie=()=>pt(!0),Ae=async()=>{const m=V();if(!(!m||xe())){if(!a.current){Me();return}ct(!0);try{await Ea({sessionId:m,serverUrl:a.current.http.url,navigate:t,ensureSessions:A=>{r.project.loadSessions(A)}})==="missing"&&Me()}catch{Me()}finally{ct(!1)}}},Me=()=>{const m=V();s.show(()=>n(Zn,{get title(){return e.item.title},sessionId:m,onClose:()=>s.close(),onRestore:m?C=>Ge(C):void 0}))},Ge=async m=>{const C=a.current;if(!C)throw new Error("恢复失败");const A=await Ai(C.http.url,m);s.close(),await Ea({sessionId:A.sessionId,serverUrl:C.http.url,navigate:t,ensureSessions:x=>{r.project.loadSessions(x)}})},Ve=j(()=>{Ks();const m=e.workspaceDirectory??c();return Qa({directory:m,ssh:d(),mcp:l.getQueryData(r.queryOptions.mcp(Za(m)).queryKey)})}),je=j(()=>Xs(d())),U=j(()=>{const m=Ve().env;if(m.kind!=="scnet")return m.kind==="ssh"?{kind:"ssh",targetName:m.targetName}:{kind:"local"}}),Le=j(()=>{const m=e.modelScopeDownloads,C=O();if(!(!m||!C))return Js(m.records(),C,U())}),_t=j(()=>{const m=Le()?.environment;return m?m.kind==="ssh"?{kind:"ssh",targetName:m.targetName}:{kind:"local"}:U()}),it=j(()=>Le()?.status==="downloading"),Ot=j(()=>Le()?.downloaded_bytes??0),Ie=j(()=>it()&&Ot()<=0),Xe=j(()=>{const m=Le();if(m){if(m.progress_total_bytes&&m.progress_total_bytes>0)return{bytes:m.progress_total_bytes,estimated:!1};if(m.estimated_total_bytes&&m.estimated_total_bytes>0)return{bytes:m.estimated_total_bytes,estimated:!0}}}),Je=j(()=>{const m=Le(),C=Xe();if(C){const x=m?.downloaded_bytes??0;return x<=0||C.estimated&&x>=C.bytes?void 0:Math.min(100,Math.round(x/C.bytes*100))}const A=m?.current_file_total_bytes;if(A&&A>0){const x=m?.current_file_bytes??0;return Math.min(100,Math.round(x/A*100))}}),[Nt,Rt]=S(0);ge(()=>{if(!Ie()||Le()?.environment?.kind!=="ssh")return;const m=setInterval(()=>Rt(C=>C+1),1e3);ze(()=>clearInterval(m))});const ya=()=>{Nt();const m=Le()?.started_at;if(!m)return"正在等待远端环境完成下载…";const C=Math.max(0,Math.floor((Date.now()-m)/1e3)),A=String(Math.floor(C/60)).padStart(2,"0"),x=String(C%60).padStart(2,"0");return`正在等待远端环境完成下载(已用时 ${A}:${x})…`},wa=j(()=>{if(Ie())return Le()?.environment?.kind==="ssh"?ya():"正在准备...";const m=Le(),C=ia(m?.downloaded_bytes),A=Xe();if(A){const Fe=A.estimated?`约 ${ia(A.bytes)}(预估)`:ia(A.bytes),Te=Je();return Te!==void 0?`正在下载 · ${C} / ${Fe} (${Te}%)`:`正在下载 · ${C} / ${Fe}`}const x=m?.current_file,he=m?.current_file_total_bytes;if(x&&he&&he>0){const Fe=x.split("/").pop()??x,Te=ia(m?.current_file_bytes),st=ia(he);return`正在下载 · ${Fe} · ${Te} / ${st}`}return`已下载 · ${C}`}),$t=j(()=>{const m=O(),C=e.modelScopeDownloads;return!m||!C?[]:Qs(C.records(),m,e.workspaceDirectory)}),Jt=j(()=>$t().some(m=>!m.partial)),$a=j(()=>Le()?.status==="partial"),Qt=j(()=>$t().length>0),Ca=()=>{const m=$t();return m.length>1?"删除已下载的数据集(可选择环境)":m[0]?.partial?"清理未完成的下载文件(下载已取消,磁盘上仍有残留)":"删除已下载的数据集"},Sa=()=>O()&&e.workspaceDirectory?`${e.workspaceDirectory}/${Co(O())}`:"",[ts,Gt]=S(),[as,Bt]=S(),[is,Zt]=S(!1),[rs,Yt]=S(!1),[Lt,Wi]=S({kind:"local"}),[_a,Pa]=S(""),[ns,ea]=S(),Vi=m=>{const C=je().find(A=>A.name===m);return C?`${C.remotePath.replace(/\/+$/,"")}/modelscope/hub/datasets`:""},ss=m=>{if(Wi(m),ea(void 0),m.kind==="ssh"){Pa(Vi(m.targetName));return}Pa("")},Ki=j(()=>{const m=Lt();if(m.kind==="local")return{kind:"local"};if(m.kind!=="ssh")return;const C=je().find(x=>x.name===m.targetName),A=_a().trim();if(!(!C||!A))return{kind:"ssh",targetName:C.name,remotePath:A,ssh:C}}),Xi=j(()=>{const m=e.modelScopeDownloads,C=O();if(!m||!C)return;const A=Lt();if(A.kind==="scnet")return;const x=ri(A.kind==="ssh"?{kind:"ssh",targetName:A.targetName}:{kind:"local"},C);return m.records()[x]});ge(ht(()=>{if(!q())return;const m=O(),C=e.workspaceDirectory,A=a.current;if(!(!m||!C||!A))return{url:A.http.url,directory:C,datasetId:m}},m=>{if(!m){Gt(void 0),Yt(!1);return}let C=!1;Gt(void 0),Yt(!0),Zs(m.url,m.directory,m.datasetId).then(A=>{C||Gt(A)}).catch(()=>{C||Gt(void 0)}).finally(()=>{C||Yt(!1)}),ze(()=>{C=!0})})),ge(ht(()=>{if(!q())return;const m=e.workspaceDirectory,C=a.current;if(!m||!C)return;const A=Lt();if(A.kind==="scnet")return{url:C.http.url,directory:m,scnet:!0,diskUnavailable:!1,diskKey:"scnet"};if(A.kind==="ssh"){const x=_a().trim(),he=je().find(Fe=>Fe.name===A.targetName);return!he||!x?{url:C.http.url,directory:m,scnet:!1,diskUnavailable:!0,diskKey:`ssh-missing:${A.targetName}`}:{url:C.http.url,directory:m,scnet:!1,diskUnavailable:!1,diskKey:`ssh:${he.name}:${x}`,environment:{kind:"ssh",targetName:he.name,remotePath:x,ssh:he}}}return{url:C.http.url,directory:m,scnet:!1,diskUnavailable:!1,diskKey:`local:${m}`,environment:{kind:"local"}}},m=>{if(!m){Bt(void 0),Zt(!1);return}let C=!1;Bt(void 0),Zt(!m.scnet&&!m.diskUnavailable);const A=setTimeout(()=>{m.scnet||m.diskUnavailable||Ys(m.url,m.directory,m.environment).then(x=>{C||Bt(x.availableBytes)}).catch(()=>{C||Bt(void 0)}).finally(()=>{C||Zt(!1)})},m.environment?.kind==="ssh"?400:0);ze(()=>{C=!0,clearTimeout(A)})}));const os=()=>"href"in e.item&&e.item.action==="打开",ls=m=>{m.preventDefault(),m.stopPropagation(),J(!0)},Wa=()=>e.page==="apps"&&e.item.action==="安装"&&"href"in e.item&&!!e.item.href,cs=m=>{m.preventDefault(),m.stopPropagation(),W()&&oe(!0)},Va=m=>{m?.preventDefault(),m?.stopPropagation(),pt(!1);const C=Hc({id:e.item.id,title:e.item.title,copy:e.item.copy,layer:"layer"in e.item&&typeof e.item.layer=="string"?e.item.layer:void 0,tags:e.item.tags,provider:e.item.provider});g(C.prompt,{skill:C.skill})},ds=(m,C)=>{const A=W();if(!A)return;if(oe(!1),m==="scientific-research"){const st=dr(e.item.title);if(!st||!C)return;g(vl(st,C));return}const x={modelId:A,developType:m,title:e.item.title,copy:e.item.copy},he=c(),Fe=Qa({directory:he,ssh:d(),mcp:l.getQueryData(r.queryOptions.mcp(Za(he)).queryKey)}),Te=rr(he,Fe.env);g(un(x,Fe.env,{...Fe,...Te?{condaEnv:Te}:{}}),{template:dl(x)})},us=m=>{if(m.preventDefault(),m.stopPropagation(),!Wa()||!("href"in e.item)||!e.item.href)return;const C={title:e.item.title,copy:e.item.copy,format:e.item.format,href:e.item.href},A=c(),x=Qa({directory:A,ssh:d(),mcp:l.getQueryData(r.queryOptions.mcp(Za(A)).queryKey)}),he=rr(A,x.env);g(yn(C,x.env,{...x,...he?{condaEnv:he}:{}}),{template:Bc(C)})},ms=m=>{if(m.preventDefault(),m.stopPropagation(),!tt()||!O()||it()||Se())return;const C=Ve().env;zt(()=>{Wi(C),Pa(C.kind==="ssh"?Vi(C.targetName):""),Gt(void 0),Bt(void 0),Zt(!0),Yt(!0),ea(void 0),Q(!0)})},hs=m=>{m.preventDefault(),m.stopPropagation(),!(!O()||!it())&&Ne(!0)},ps=m=>{m.preventDefault(),m.stopPropagation(),!(!O()||!Qt()||Se())&&(Re([]),Ye(!0))},gs=async()=>{const m=O();if(!m||Ce()||Se())return;const C=Lt();if(C.kind==="scnet"){Q(!1);const x={datasetId:m,title:e.item.title,targetDir:_a().trim()||void 0,serverName:C.serverName};g(mn(x,C),{template:ul(x)});return}if(!e.onDatasetDownloadStart)return;const A=Ki();if(!(C.kind==="ssh"&&!A)){_e(!0),ea(void 0);try{await e.onDatasetDownloadStart(m,A),Q(!1)}catch(x){ea(x instanceof Error&&x.message.trim()?x.message:"启动下载失败")}finally{_e(!1)}}},fs=async()=>{const m=O();if(!(!m||!e.onDatasetDownloadCancel||We())){se(!0);try{await e.onDatasetDownloadCancel(m,_t())}finally{se(!1),Ne(!1)}}},bs=async()=>{const m=O();if(!m||!e.onDatasetDownloadDelete||Se())return;const C=new Set(nt()),A=$t().filter(x=>C.has(x.key));if(A.length!==0){Pe(!0);try{for(const x of A)await e.onDatasetDownloadDelete(m,x.environment);Ye(!1)}finally{Pe(!1)}}},vs=()=>e.item.tags.filter(m=>!An.has(m)&&(!os()||!Uh.has(m))).slice(0,4),ys=(()=>{var m=Nm(),C=m.firstChild,A=C.firstChild,x=A.nextSibling,he=x.firstChild,Fe=C.nextSibling,Te=Fe.firstChild,st=Te.firstChild,Pt=st.nextSibling,Ct=Te.nextSibling;return i(A,()=>e.item.title),i(he,()=>e.item.provider),i(x,n(y,{get when(){return ne(()=>!!e.item.size)()&&e.item.size!==e.item.provider},get children(){var ut=Em();return i(ut,()=>e.item.size),ut}}),null),i(m,n(Na,{get copy(){return e.item.copy},plain:!0}),Fe),i(Pt,(()=>{var ut=ne(()=>"layer"in e.item&&typeof e.item.layer=="string");return()=>ut()&&e.item.layer||"技能"})()),i(Ct,n(y,{get when(){return ne(()=>!!N())()&&e.item.action==="开发"},get children(){var ut=Om();return ut.$$click=Va,i(ut,()=>e.item.action),ut}}),null),i(Ct,n(y,{get when(){return!e.downloadOnly},get children(){return n(Ur,{get page(){return e.page},get item(){return e.item},get onChanged(){return e.onChanged},get onEdit(){return e.onEdit}})}}),null),m})(),ws=[(()=>{var m=Lm(),C=m.firstChild,A=C.nextSibling;return i(C,n(y,{get when(){return h()},get fallback(){return e.item.title},children:x=>(()=>{var he=qm();return i(he,()=>e.item.title),E(()=>R(he,"href",x())),he})()})),i(A,n(y,{get when(){return p()},get children(){var x=Rm();return i(x,()=>M().label),E(()=>R(x,"data-source",M().tone)),x}}),null),i(A,n(y,{get when(){return!e.downloadOnly},get children(){return n(Ur,{get page(){return e.page},get item(){return e.item},get onChanged(){return e.onChanged},get onEdit(){return e.onEdit}})}}),null),m})(),(()=>{var m=Pn();return i(m,n(ce,{get each(){return vs()},children:C=>(()=>{var A=kn();return i(A,C),A})()})),m})(),n(Na,{get copy(){return e.item.copy},get plain(){return le()}}),(()=>{var m=Gm(),C=m.firstChild,A=C.firstChild,x=A.nextSibling,he=C.nextSibling,Fe=he.firstChild,Te=Fe.nextSibling;return i(x,()=>e.item.provider),i(Te,()=>e.item.size),i(m,n(y,{get when(){return ne(()=>"score"in e.item)()&&e.item.action!=="开发"},get children(){var st=Um(),Pt=st.firstChild,Ct=Pt.nextSibling;return i(Ct,()=>e.item.score),st}}),null),m})(),n(y,{get when(){return!(e.page==="cases"&&V())},get children(){var m=Hm(),C=m.firstChild;return i(C,n(y,{get when(){return _()},get children(){return n(ce,{get each(){return w()},children:A=>(()=>{var x=Ir();return i(x,()=>A.label),E(()=>R(x,"href",A.href)),x})()})}}),null),i(C,n(y,{get when(){return ne(()=>!!(!e.downloadOnly&&N()))()&&e.item.action==="使用"},get children(){var A=ra();return A.$$click=ls,i(A,()=>e.item.action),A}}),null),i(C,n(y,{get when(){return ne(()=>!e.downloadOnly)()&&f()},children:A=>(()=>{var x=zm();return E(()=>R(x,"href",A())),x})()}),null),i(C,n(y,{get when(){return ne(()=>!!N())()&&e.item.action!=="使用"},get children(){return[n(y,{get when(){return ne(()=>!e.downloadOnly)()&&e.item.action==="开发"},get children(){var A=ra();return Oe(A,"click",e.page==="skills"?Va:cs,!0),i(A,()=>e.item.action),E(()=>A.disabled=e.page!=="skills"&&!W()),A}}),n(y,{get when(){return H()},get children(){return[n(y,{get when(){return it()},get fallback(){return(()=>{var A=ra();return A.$$click=ms,i(A,()=>Jt()?"更新":"下载"),E(x=>{var he=qe(),Fe=lt();return he!==x.e&&(A.disabled=x.e=he),Fe!==x.t&&R(A,"title",x.t=Fe),x},{e:void 0,t:void 0}),A})()},get children(){var A=Bm(),x=A.firstChild,he=x.nextSibling,Fe=he.firstChild;return x.$$click=hs,i(x,wa),E(Te=>{var st=!!Ie(),Pt=!Ie()&&Ot()>0,Ct=Je()!==void 0,ut=Ie()||Je()===void 0?"true":void 0,aa=Je()??0,ka=Je()!==void 0?{width:`${Je()}%`}:void 0;return st!==Te.e&&he.classList.toggle("is-preparing",Te.e=st),Pt!==Te.t&&he.classList.toggle("is-active",Te.t=Pt),Ct!==Te.a&&he.classList.toggle("is-determinate",Te.a=Ct),ut!==Te.o&&R(he,"aria-busy",Te.o=ut),aa!==Te.i&&R(he,"aria-valuenow",Te.i=aa),Te.n=eo(Fe,ka,Te.n),Te},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),A}}),n(y,{get when(){return ne(()=>!!Jt())()&&!it()},get children(){return n(Ze,{class:"os-button os-button-card os-card-action-link",get href(){const A=$t().flatMap(he=>he.paths??[]).filter(Boolean),x=new URLSearchParams({category:"onedata",onedata:"raw",register:"1"});return A[0]&&x.set("rawUri",A[0]),e.item.title&&x.set("rawTitle",e.item.title),`/workspace/capabilities?${x}`},title:"下载不会自动登记;请到原始数据确认接入",children:"去原始数据登记"})}})]}}),n(y,{get when(){return ne(()=>!e.downloadOnly&&e.item.action==="导入")()&&!H()},get children(){var A=ra();return i(A,()=>e.item.action),E(()=>A.disabled=G()),A}}),n(y,{get when(){return ne(()=>!e.downloadOnly)()&&Wa()},get children(){var A=ra();return A.$$click=us,i(A,()=>e.item.action),A}}),n(y,{get when(){return ne(()=>!e.downloadOnly&&e.item.action!=="开发"&&e.item.action!=="下载"&&e.item.action!=="导入"&&e.item.action!=="打开"&&e.item.action!=="基于此开发")()&&!Wa()},get children(){return n(y,{get when(){return u()},get fallback(){return n(Ze,{href:"#",class:"os-button os-button-card",get children(){return e.item.action}})},children:A=>(()=>{var x=Ir();return i(x,()=>e.item.action),E(()=>R(x,"href",A())),x})()})}})]}}),null),i(C,n(y,{get when(){return ne(()=>!!(!e.downloadOnly&&L()))()&&X()},get children(){return n(y,{get when(){return ne(()=>!!at())()?vt():void 0},get fallback(){return(()=>{var A=jm();return A.$$pointerdown=x=>{x.button!==0||He()||(x.preventDefault(),x.stopPropagation(),queueMicrotask(I))},i(A,Ke),E(x=>{var he=He(),Fe=Ue();return he!==x.e&&(A.disabled=x.e=he),Fe!==x.t&&R(A,"title",x.t=Fe),x},{e:void 0,t:void 0}),A})()},children:A=>(()=>{var x=Wm();return x.$$pointerdown=he=>{he.button===0&&(he.preventDefault(),he.stopPropagation(),t(Pi({id:A(),openDetail:!0,scope:Ft(e.item)?"mine":void 0})))},x})()})}}),null),i(C,n(y,{get when(){return ne(()=>!!(e.page==="datasets"&&O()))()&&(Qt()||Se())},get children(){var A=Ga();return A.$$click=ps,i(A,()=>Se()?"删除中...":"删除"),E(x=>{var he=`os-button os-button-card os-card-action-link os-card-delete-action${$a()?" os-button-delete-partial-dataset":" os-button-delete-dataset"}`,Fe=Se(),Te=Ca();return he!==x.e&&mt(A,x.e=he),Fe!==x.t&&(A.disabled=x.t=Fe),Te!==x.a&&R(A,"title",x.a=Te),x},{e:void 0,t:void 0,a:void 0}),A}}),null),m}})],Ka=()=>e.page==="cases"&&!!V(),ta=()=>Ka()||le(),Ji=()=>{if(Ka()){Ae();return}le()&&ie()};return[(()=>{var m=Vm();return Oe(m,"keydown",ta()?C=>{(C.key==="Enter"||C.key===" ")&&(C.preventDefault(),Ji())}:void 0,!0),Oe(m,"click",ta()?Ji:void 0,!0),i(m,n(y,{get when(){return h()},children:C=>(()=>{var A=Km();return E(x=>{var he=C(),Fe=`打开 ${e.item.title} 外部链接`;return he!==x.e&&R(A,"href",x.e=he),Fe!==x.t&&R(A,"aria-label",x.t=Fe),x},{e:void 0,t:void 0}),A})()}),null),i(m,()=>le()?ys:ws,null),E(C=>{var A=e.item.id,x=!!(T()&&!D()),he=!!ta(),Fe=!!e.highlighted,Te=!!le(),st=!!e.downloadOnly,Pt=M().tone,Ct=le()?dp(e.item):void 0,ut=T()?String(D()):void 0,aa=e.highlighted?"true":void 0,ka=ta()?"button":void 0,Qi=ta()?0:void 0,Zi=Ka()?`基于此开发 ${e.item.title}`:le()?`查看技能 ${e.item.title}`:void 0;return A!==C.e&&R(m,"id",C.e=A),x!==C.t&&m.classList.toggle("os-resource-card-unavailable",C.t=x),he!==C.a&&m.classList.toggle("os-resource-card-clickable",C.a=he),Fe!==C.o&&m.classList.toggle("os-resource-card-highlighted",C.o=Fe),Te!==C.i&&m.classList.toggle("os-skill-tile-card",C.i=Te),st!==C.n&&m.classList.toggle("os-onedata-dataset-card",C.n=st),Pt!==C.s&&R(m,"data-source",C.s=Pt),Ct!==C.h&&R(m,"data-layer",C.h=Ct),ut!==C.r&&R(m,"data-modelscope-available",C.r=ut),aa!==C.d&&R(m,"data-highlighted",C.d=aa),ka!==C.l&&R(m,"role",C.l=ka),Qi!==C.u&&R(m,"tabindex",C.u=Qi),Zi!==C.c&&R(m,"aria-label",C.c=Zi),C},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0}),m})(),n(Ua,{get item(){return e.item},get open(){return de()},onClose:()=>J(!1),onSubmit:m=>g(m)}),n(Pl,{get open(){return ae()},get title(){return e.item.title},get scenarios(){return v()},onClose:()=>oe(!1),onConfirm:ds}),n(ud,{get item(){return ne(()=>!!le())()?{id:e.item.id,title:e.item.title,copy:e.item.copy,layer:"layer"in e.item&&typeof e.item.layer=="string"?e.item.layer:void 0,tags:e.item.tags,provider:e.item.provider}:void 0},get open(){return dt()},get serverUrl(){return a.current?.http.url},onClose:()=>pt(!1),onDevelop:()=>Va()}),n(y,{get when(){return ne(()=>!e.downloadOnly)()&&!e.onPublishPrimitive},get children(){return n(xi,{get resourceId(){return z()},get resourcePage(){return me()},get draftId(){return ue()},get initialPrimitiveType(){return te()},get sourceHint(){return be()},get serverUrl(){return a.current?.http.url??window.location.origin},get open(){return we()},onClose:()=>{Y(!1),$e("default"),Z(void 0),ee(void 0)},onSuccess:m=>{const C=z(),A=a.current;if((e.page==="models"||e.page==="datasets")&&C&&A)Ta(A.http.url,C).then(x=>{if(!x.loaded)return;const he=oa({callable:x.callable,draft:x.draft,inference:x.inference,training:x.training,slots:x.slots});e.primitiveLinkReady!==void 0?e.onPrimitiveLinkChange?.(C,he):(F(he),re(!0))});else{const x=to(K(),m.id,ve());if(e.primitiveLinkReady!==void 0){const he=z();he&&e.onPrimitiveLinkChange?.(he,x)}else F(x),re(!0)}$e("default"),Z(void 0),ee(void 0),Y(!1),ji(t,m,a.current?.http.url)}})}}),n(rl,{get open(){return q()},get title(){return e.item.title},get datasetId(){return O()??""},get targetPath(){return Sa()},get diskLoading(){return is()},get sizeLoading(){return rs()},get availableBytes(){return as()},get datasetBytes(){return ts()?.datasetBytes},get busy(){return Ce()},get actionLabel(){return Xi()?.status==="completed"?"更新":"下载"},get confirmDisabled(){return ne(()=>Lt().kind==="ssh")()&&!Ki()},get environment(){return Lt()},get environmentSelector(){return n(io,{directory:()=>e.workspaceDirectory??c(),value:Lt,onChange:ss,variant:"field",downloadedCopies:$t})},get remotePath(){return _a()},onRemotePathChange:m=>{Pa(m),ea(void 0)},get actualPaths(){const m=Xi();if(!(!m||m.status!=="completed"&&m.status!=="partial"))return ao(m,e.workspaceDirectory).paths},get error(){return ns()},onClose:()=>{Q(!1),Gt(void 0),Bt(void 0),Zt(!1),Yt(!1)},onConfirm:()=>void gs()}),n(nl,{get open(){return ye()},get title(){return e.item.title},get datasetId(){return O()??""},get busy(){return We()},onClose:()=>Ne(!1),onConfirm:()=>void fs()}),n(sl,{get open(){return Ee()},get title(){return e.item.title},get datasetId(){return O()??""},get copies(){return $t()},get selectedKeys(){return nt()},onSelectedKeysChange:Re,get busy(){return Se()},onClose:()=>Ye(!1),onConfirm:()=>void bs()})]}function wp(e,t){if(!Bi(e))return;if(Ni(t))return t;const a=Ha(t).tone;return{id:t.id,page:e,title:t.title,copy:t.copy,domain:t.tags.find(r=>Be[e].filters.some(s=>s===r))??Be[e].filters.find(r=>r!=="全部")??"其它",tags:[...t.tags],provider:t.provider,size:t.size,format:t.format,href:"href"in t?t.href:void 0,source:a,metricLabel:t.metricLabel,action:t.action}}function Ur(e){const t=ot(),[a,r]=S(!1),[s,l]=S(!1),[d,c]=S(""),[g,v]=S(!1);let b;const u=()=>Bi(e.page),h=()=>jh(e.item),f=()=>zh(e.item);ge(()=>{if(!a())return;const N=L=>{const W=L.target;W instanceof Node&&(b?.contains(W)||r(!1))};document.addEventListener("mousedown",N),ze(()=>document.removeEventListener("mousedown",N))});const w=N=>{N.preventDefault(),N.stopPropagation(),r(L=>!L)},_=N=>{if(N.preventDefault(),N.stopPropagation(),!h())return;r(!1);const L=wp(e.page,e.item);L&&e.onEdit?.(L)},p=N=>{N.preventDefault(),N.stopPropagation(),f()&&(r(!1),l(!0))},M=async N=>{N.preventDefault();const L=t.current;if(!(!L||!Ft(e.item)||!f())){v(!0),c("");try{await Qn(L.http.url,e.item.page,e.item.id),l(!1),e.onChanged?.()}catch(W){c(W instanceof Error?W.message:"删除失败")}finally{v(!1)}}};return n(y,{get when(){return u()},get children(){var N=Zm(),L=N.firstChild;N.$$click=O=>O.stopPropagation();var W=b;return typeof W=="function"?pa(W,N):b=N,L.$$click=w,i(N,n(y,{get when(){return a()},get children(){var O=Jm(),H=O.firstChild;return H.$$click=_,i(O,n(y,{get when(){return f()},get children(){var D=Xm();return D.$$click=p,D}}),null),E(D=>{var T=!h(),G=h()?void 0:"登录后可修改";return T!==D.e&&(H.disabled=D.e=T),G!==D.t&&R(H,"title",D.t=G),D},{e:void 0,t:void 0}),O}}),null),i(N,n(y,{get when(){return ne(()=>!!s())()&&Ft(e.item)},get children(){return n(bt,{get children(){var O=Qm(),H=O.firstChild,D=H.firstChild,T=D.firstChild,G=T.firstChild,z=G.nextSibling,P=T.nextSibling,F=D.nextSibling,B=F.nextSibling,re=B.firstChild,de=re.nextSibling;return H.$$click=J=>J.stopPropagation(),H.addEventListener("submit",M),i(z,()=>e.item.title),P.$$click=()=>l(!1),i(H,n(y,{get when(){return d()},children:J=>(()=>{var we=ba();return i(we,J),we})()}),B),re.$$click=()=>l(!1),i(de,()=>g()?"删除中...":"删除"),E(()=>de.disabled=g()),O}})}}),null),E(()=>R(L,"aria-label",`${e.item.title} 编辑菜单`)),N}})}function $p(){return n(es,{})}const Cp=[{title:"蛋白质结构预测训练",model:"AlphaFold-v3",status:"训练中",tone:"blue",progress:65,meta:"Epoch 130/200"},{title:"气象预测模型微调",model:"FourCastNet",status:"已完成",tone:"green",progress:100,meta:"验证集 MAE 0.082"},{title:"分子动力学势函数训练",model:"MACE",status:"等待中",tone:"slate",progress:0,meta:"等待 A100 队列"},{title:"CFD湍流模型训练",model:"MeshGraphNet",status:"失败",tone:"red",progress:38,meta:"数据校验失败"}];function Sp(){return(()=>{var e=Ym(),t=e.firstChild,a=t.firstChild,r=a.firstChild,s=r.firstChild,l=t.nextSibling,d=l.firstChild,c=d.firstChild,g=c.nextSibling,v=d.nextSibling,b=v.firstChild,u=b.nextSibling,h=u.nextSibling,f=h.firstChild,w=f.nextSibling,_=w.nextSibling;return _.firstChild,i(r,n(Mt,{name:"tasks"}),s),i(g,n(ce,{each:Cp,children:(p,M)=>(()=>{var N=eh(),L=N.firstChild,W=L.firstChild,O=W.nextSibling,H=L.nextSibling,D=H.nextSibling,T=D.firstChild,G=T.nextSibling,z=G.firstChild,P=D.nextSibling,F=P.firstChild;return i(W,()=>p.title),i(O,()=>p.status),i(H,()=>p.model),i(T,()=>p.meta),i(G,()=>p.progress,z),E(B=>{var re=M()===0,de=p.tone,J=`${p.progress}%`;return re!==B.e&&N.classList.toggle("is-active",B.e=re),de!==B.t&&R(O,"data-tone",B.t=de),J!==B.a&&xt(F,"width",B.a=J),B},{e:void 0,t:void 0,a:void 0}),N})()})),e})()}function _p(){return(()=>{var e=th(),t=e.firstChild,a=t.firstChild,r=a.firstChild,s=r.firstChild,l=a.nextSibling;return i(r,n(Mt,{name:"data-management"}),s),i(l,n(Ze,{get href(){return`${et("onedata")}&onedata=raw`},class:"os-button os-button-primary",children:"打开 OneData"})),e})()}function Pp(){return n(Et,{page:"datasets"})}function kp(e){const t=Xt(),a=Ui(t),[r,s]=S(""),[l,d]=S(1);ge(()=>{e.filter,s(""),d(1)}),ge(()=>{r(),d(1)}),ge(()=>{t();const u=Oa(()=>{a.refresh()},300);ze(()=>da(u))});const c=j(()=>{const u=ha("datasets",e.filter,Be.datasets.items);return Li("datasets",qa(r(),u))}),g=j(()=>ha("datasets",e.filter,Be.datasets.items).length),v=j(()=>ro(c(),l(),no));ge(()=>{const u=v().page;u!==l()&&d(u)});const b=()=>e.onRegisterOwnData?(()=>{var u=ah();return u.$$click=()=>e.onRegisterOwnData?.(),u})():null;return[(()=>{var u=ih(),h=u.firstChild,f=h.firstChild,w=f.nextSibling,_=h.nextSibling,p=_.firstChild;return w.$$input=M=>s(M.currentTarget.value),i(_,n(y,{get when(){return!!e.onRegisterOwnData},get children(){return b()}}),p),i(p,(()=>{var M=ne(()=>c().length===g());return()=>M()?`共 ${g()} 项`:`${c().length} / ${g()} 项`})()),E(()=>w.value=r()),u})(),n(y,{get when(){return c().length>0},get fallback(){return(()=>{var u=nh();return i(u,(()=>{var h=ne(()=>!!r().trim());return()=>h()?`没有匹配「${r().trim()}」的数据集,试试换个关键词。`:`当前「${e.domainLabel??e.filter}」领域暂无数据集卡片。`})()),u})()},get children(){return[(()=>{var u=rh();return i(u,n(ce,{get each(){return v().pageItems},children:h=>n(va,{page:"datasets",item:h,downloadOnly:!0,get workspaceDirectory(){return t()},modelScopeDownloads:a,get onDatasetDownloadStart(){return a.start},get onDatasetDownloadCancel(){return a.cancel},get onDatasetDownloadDelete(){return a.remove}})})),u})(),n(so,{get page(){return v().page},get totalPages(){return v().totalPages},get total(){return v().total},onPageChange:d})]}})]}function Dp(){return n(Yn,{})}function Ap(){return n(lp,{})}function xp(){return n(Mp,{})}function ji(e,t,a){const r={...t,status:"callable",owner:t.owner??ft()?.account.id??"local",timeCreated:t.timeCreated??Date.now()};if(a){const s=ki(a)??[];Di(a,[r,...s.filter(l=>l.id!==t.id)])}e(Pi({id:r.id,scope:"mine"}),{replace:!0})}function Mp(){const e=["tab=catalog","tab=factory"],t=Kt(),a=wt(),r=j(()=>new URLSearchParams(t.search)),s=j(()=>r().get("highlight")??void 0),l=j(()=>{const b=r().get("scope");return b==="mine"||b==="recent"?b:"all"}),d=j(()=>r().get("openDetail")==="1"),c=j(()=>r().get("openUse")==="1"),g=j(()=>{const b=r().get("tab");return b==="factory"?b:"catalog"}),v=b=>{const u=new URLSearchParams(t.search);u.set("tab",b),a(`/primitives?${u}`)};return(()=>{var b=sh(),u=b.firstChild,h=u.firstChild,f=h.nextSibling,w=f.firstChild,_=w.nextSibling;return w.$$click=()=>v("catalog"),_.$$click=()=>v("factory"),i(u,n(y,{get when(){return g()==="catalog"},get children(){return n(Ip,{get highlightId(){return s()},get initialScope(){return l()},get openDetail(){return d()},get openUse(){return c()}})}}),null),i(u,n(y,{get when(){return g()==="factory"},get children(){return n(Ep,{})}}),null),E(p=>{var M=e.join(","),N=g()==="catalog",L=g()==="factory";return M!==p.e&&R(f,"data-tabs",p.e=M),N!==p.t&&R(w,"data-active",p.t=N),L!==p.a&&R(_,"data-active",p.a=L),p},{e:void 0,t:void 0,a:void 0}),b})()}function Ip(e={}){const a=ot(),r=Kt(),s=wt(),l=za(),[d,c]=S([]),[g,v]=S(!1),[b,u]=S(!1),[h,f]=S(""),[w,_]=S(e.initialScope??"all"),[p,M]=S(),[N,L]=S(),[W,O]=S(),[H,D]=S(),[T,G]=S(new Set),[z,P]=S(0),[F,B]=S(),[re,de]=S(!1),[J,we]=S(!1),[Y,ve]=S();let $e,ue,Z,te=0,ee;const K=async I=>{const ae=a.current;if(!ae||I!==te)return;let oe=0,q=[];for(;;){if(I!==te)return;const Q=await cn(ae.http.url,{limit:100,offset:oe,status:"callable"});if(Q.loaded!==!0||(q=oe===0?Q.items:[...q,...Q.items],typeof Q.nextOffset!="number"))break;oe=Q.nextOffset}I===te&&(Di(ae.http.url,q),c(q),v(q.length>0),u(!1))},X=async()=>{const I=a.current;if(!I){v(!1),c([]);return}const ae=++te;ee!==void 0&&(da(ee),ee=void 0);const oe=ki(I.http.url),q=e.highlightId;if(!!oe?.length&&(!q||oe.some(ye=>ye.id===q))){c(oe),v(!0),u(!1),ee=Oa(()=>{ee=void 0,K(ae)},500);return}oe?.length?(c(oe),v(!0)):(u(!0),c([]),v(!1)),await K(ae)};ge(()=>{const I=a.current;!a.ready()||!I||(X(),Qr(I.http.url).then(G))});const fe=()=>{L(void 0);const I=new URLSearchParams(r.search);I.get("openDetail")==="1"&&(I.delete("openDetail"),s(`/primitives?${I}`,{replace:!0}))},De=()=>{O(void 0);const I=new URLSearchParams(r.search);I.get("openUse")==="1"&&(I.delete("openUse"),s(`/primitives?${I}`,{replace:!0}))};ze(()=>{ee!==void 0&&da(ee),te+=1}),ge(()=>{const I=h().trim(),ae=a.current;if(!I||!ae){ve(void 0),we(!1);return}we(!0);const oe=window.setTimeout(()=>{Zr(ae.http.url,{q:I,category:p(),limit:50}).then(q=>{ve(q.loaded?q.items:[]),we(!1)})},250);ze(()=>window.clearTimeout(oe))}),ge(ht(()=>e.initialScope,I=>{I&&(_(I),M(void 0))}));const He=j(()=>`${w()}:${p()??""}:${h().trim().toLowerCase()}`),Ke=j(()=>{const I=d(),ae=h().trim();let oe;if(ae)if(J()||Y()===void 0)oe=[];else{const ye=Y(),Ne=(ye.length>0?ye:ni(I,{q:ae}).items).map(Ee=>oo(Ee,I));oe=si(Ne,w(),T(),ft()?.account.id)}else oe=si(I,w(),T(),ft()?.account.id);const q=e.highlightId;if(!q)return oe;const Q=I.find(ye=>ye.id===q);return!Q||oe.some(ye=>ye.id===q)||!ft()?.account.id&&!lo(Q)?oe:[Q,...oe]}),Ue=j(()=>co(Ke())),tt=j(()=>uo(w(),Ke(),Ue())),qe=j(()=>ni(Ke(),{category:p()}).items),lt=I=>{_(I),M(void 0);const ae=new URLSearchParams(r.search);ae.set("tab","catalog"),I==="all"?ae.delete("scope"):ae.set("scope",I),s(`/primitives?${ae}`,{replace:!0})},at=I=>{M(p()===I?void 0:I)};ge(()=>{tt()||p()&&M(void 0)}),ge(()=>{const I=p();I&&(Ue().some(ae=>ae.category===I)||M(void 0))});const vt=j(()=>qe().slice(0,z())),me=j(()=>z()<qe().length),be=()=>P(I=>Math.min(I+24,qe().length));return ge(ht(He,()=>{P(Math.min(24,qe().length))})),ge(()=>{const I=qe().length;I!==0&&P(ae=>ae===0?Math.min(24,I):ae)}),ge(()=>{const I=F();if(!I)return;const ae=I.closest(".os-workspace-main"),oe=new IntersectionObserver(q=>{const Q=q.some(ye=>ye.isIntersecting);de(Q),Q&&be()},{root:ae,rootMargin:"640px 0px"});oe.observe(I),ze(()=>oe.disconnect())}),ge(()=>{const I=re(),ae=z(),oe=qe().length;if(!I||ae>=oe)return;let q=0;q=window.requestAnimationFrame(()=>{re()&&ae===z()&&oe===qe().length&&be()}),ze(()=>{q&&window.cancelAnimationFrame(q)})}),ge(ht(()=>e.highlightId,(I,ae)=>{$e=void 0,ue=void 0,Z=void 0,!(!I||ae===void 0)&&X()})),ge(()=>{const I=e.highlightId;if(!I||b()||!g()||$e===I)return;const ae=d().find(Re=>Re.id===I);if(!ae)return;const oe=e.initialScope??"all",q=w()!==oe,Q=!!h().trim(),ye=!!p(),Ne=Y()!==void 0;if(Q||ye||Ne||q){zt(()=>{Q&&f(""),ye&&M(void 0),Ne&&ve(void 0),q&&e.initialScope&&_(e.initialScope)});return}$e=I;const Ee=qe().findIndex(Re=>Re.id===I);if(Ee>=0&&(P(Re=>Math.max(Re,Ee+1)),D(I)),e.openDetail&&ue!==I&&(ue=I,L(ae)),e.openUse&&Z!==I&&ae.status==="callable"&&(Z=I,O(ae)),Ee<0)return;let Ye=0;Ye=window.requestAnimationFrame(()=>{document.getElementById(I)?.scrollIntoView({behavior:"smooth",block:"center"})});const nt=window.setTimeout(()=>D(void 0),2400);ze(()=>{Ye&&window.cancelAnimationFrame(Ye),window.clearTimeout(nt)})}),(()=>{var I=ch(),ae=I.firstChild,oe=ae.firstChild,q=oe.nextSibling,Q=ae.nextSibling,ye=Q.firstChild,Ne=ye.firstChild,Ee=Ne.nextSibling,Ye=ye.nextSibling,nt=Q.nextSibling,Re=nt.firstChild;return i(q,(()=>{var Ce=ne(()=>!!J());return()=>Ce()?"正在语义检索...":ne(()=>!!(h().trim()&&qe().length===0&&g()))()?"未找到匹配原语":ne(()=>!!g())()?`数据库 ${qe().length} 个原语`:b()?"正在加载原语...":"服务不可用,展示静态目录"})()),Ee.$$input=Ce=>f(Ce.currentTarget.value),Ye.$$click=()=>void X(),i(Ye,()=>b()?"刷新中...":"刷新列表"),i(Re,n(ce,{each:mo,children:Ce=>(()=>{var _e=Ga();return _e.$$click=()=>lt(Ce.id),i(_e,()=>Ce.label),E(We=>{var se=w()===Ce.id,Se=Ce.hint;return se!==We.e&&R(_e,"data-active",We.e=se),Se!==We.t&&R(_e,"title",We.t=Se),We},{e:void 0,t:void 0}),_e})()})),i(nt,n(y,{get when(){return tt()},get children(){var Ce=oh();return i(Ce,n(ce,{get each(){return Ue()},children:_e=>(()=>{var We=dh();return We.$$click=()=>_e.category&&at(_e.category),i(We,()=>`${_e.shortLabel} (${_e.count})`),E(()=>R(We,"data-active",p()===_e.category)),We})()})),Ce}}),null),i(I,n(y,{get when(){return ne(()=>!!b())()&&d().length===0},get children(){return lh()}}),null),i(I,n(y,{get when(){return!b()||d().length>0},get children(){return n(y,{get when(){return qe().length>0},get fallback(){return(()=>{var Ce=Ii();return i(Ce,(()=>{var _e=ne(()=>!!J());return()=>_e()?"正在语义检索...":ne(()=>!!h().trim())()?"未找到匹配原语":ne(()=>w()==="mine")()?"暂无我创建的原语":w()==="recent"?"最近 7 天暂无新原语":"暂无可展示的原语"})()),Ce})()},get children(){var Ce=Sn();return i(Ce,n(ce,{get each(){return vt()},children:_e=>n(Op,{item:_e,get highlighted(){return H()===_e.id},get deletable(){return ne(()=>!!g())()&&yi(_e)},onInspect:()=>L(_e),get onDelete(){return g()&&yi(_e)?async()=>{const We=a.current;We&&(await zi(We.http.url,_e.id),c(se=>se.filter(Se=>Se.id!==_e.id)),N()?.id===_e.id&&L(void 0))}:void 0}})})),Ce}})}}),null),i(I,n(y,{get when(){return qe().length>0},get children(){var Ce=Cn();return pa(B,Ce),i(Ce,n(y,{get when(){return me()},fallback:"已经到底啦",children:"继续加载中..."})),Ce}}),null),i(I,n(Np,{get item(){return N()},onClose:fe}),null),i(I,n(y,{get when(){return W()},children:Ce=>n(Ua,{get item(){return Ce()},open:!0,onClose:De,onSubmit:_e=>{De(),l(_e)}})}),null),E(Ce=>{var _e=Hr.search,We=b();return _e!==Ce.e&&R(Ee,"placeholder",Ce.e=_e),We!==Ce.t&&(Ye.disabled=Ce.t=We),Ce},{e:void 0,t:void 0}),E(()=>Ee.value=h()),I})()}function yi(e){if(e.owner==="system"||(e.owner==="platform"||e.owner==="local")&&e.id.startsWith("primitive-resource-")&&!e.id.startsWith("primitive-resource-custom-"))return!1;const t=Dt();return t?!!(e.owner===t||!e.owner||ho(e.id)||(e.owner==="platform"||e.owner==="local")&&e.id.startsWith("primitive-resource-custom-")):!1}function Fp(e){return yi(e)}function Tp(e){if(e.owner==="system"||e.owner==="platform"||e.owner==="local"||!e.owner)return!0;const t=Dt();return!!(t&&e.owner===t)}function Ep(){const e=ot(),t=wt(),a=za(),[r,s]=S([]),[l,d]=S(!1),[c,g]=S("all"),[v,b]=S(),[u,h]=S(!1),[f,w]=S(""),[_,p]=S(),[M,N]=S(),L=[{id:"all",label:"全部"},{id:"draft",label:"草稿"},{id:"callable",label:"可调用"}],W=j(()=>{const F=new Map;for(const B of Be.models.items)F.set(B.id,B.title);return F}),O=async()=>{const F=e.current;if(!F)return;const B=await ln(F.http.url);d(B.loaded===!0),s(B.items.filter(re=>re.status==="draft"||re.status==="callable"))};ge(()=>{!e.ready()||!e.current||O()});const H=j(()=>r().filter(F=>Tp(F)&&Zl(F,B=>W().get(B)))),D=j(()=>{const F=c();return F==="all"?H():H().filter(B=>B.status===F)}),T=F=>F==="all"?H().length:H().filter(B=>B.status===F).length,G=F=>{if(F.status==="callable"){p(F);return}const B=F.resources?.[0],re=F.sourceResourceIds?.[0]??B?.id,de=fn(F);N({resourceId:re,resourcePage:de,draftId:F.id,initialPrimitiveType:F.primitiveType,sourceHint:B?{title:B.title,copy:F.description,provider:"OneScience",tags:[],domain:F.domain,page:de}:{title:F.title,copy:F.description,provider:"OneScience",tags:[],domain:F.domain,page:de}})},z=async F=>{F.preventDefault();const B=v(),re=e.current;if(!(!B||!re||u())){h(!0),w("");try{await zi(re.http.url,B.id),s(de=>de.filter(J=>J.id!==B.id)),b(void 0)}catch(de){w(de instanceof Error?de.message:"删除失败")}finally{h(!1)}}},P=F=>{N(void 0),ji(t,F,e.current?.http.url)};return(()=>{var F=hh(),B=F.firstChild,re=B.firstChild,de=re.firstChild,J=de.nextSibling,we=B.nextSibling,Y=we.firstChild,ve=Y.nextSibling,$e=we.nextSibling;return i(J,()=>Yl(c())),i(Y,n(ce,{each:L,children:ue=>(()=>{var Z=ph(),te=Z.firstChild;return Z.$$click=()=>g(ue.id),i(Z,()=>ue.label,te),i(Z,()=>T(ue.id),null),E(()=>R(Z,"data-active",c()===ue.id)),Z})()})),i(ve,n(Ze,{class:"os-button os-button-secondary",href:"/datasets",children:"数据集资源"}),null),i(ve,n(Ze,{class:"os-button os-button-secondary",href:"/models",children:"模型库资源"}),null),i(ve,n(Ze,{class:"os-button os-button-secondary",href:"/apps",children:"应用库资源"}),null),i(F,n(y,{get when(){return ne(()=>!l())()&&r().length===0},get children(){return uh()}}),$e),i(F,n(y,{get when(){return ne(()=>!!l())()&&D().length===0},get children(){return mh()}}),$e),i($e,n(ce,{get each(){return D()},children:ue=>(()=>{var Z=gh(),te=Z.firstChild,ee=te.firstChild,K=ee.nextSibling,X=te.nextSibling,fe=X.firstChild;fe.firstChild;var De=fe.nextSibling;De.firstChild;var He=X.nextSibling,Ke=He.firstChild;return Z.$$keydown=Ue=>{(Ue.key==="Enter"||Ue.key===" ")&&(Ue.preventDefault(),G(ue))},Z.$$click=()=>G(ue),i(ee,()=>ue.title),i(K,()=>Fn[ue.status]),i(Z,n(Na,{get copy(){return ue.description}}),X),i(fe,()=>ue.domain,null),i(De,()=>Yr[en(ue)]??ue.primitiveType,null),i(Ke,n(y,{get when(){return ne(()=>!!l())()&&Fp(ue)},get children(){var Ue=Dn();return Ue.$$click=tt=>{tt.stopPropagation(),w(""),b(ue)},E(()=>Ue.disabled=u()&&v()?.id===ue.id),Ue}})),Z})()})),i(F,n(y,{get when(){return v()},children:ue=>n(bt,{get children(){var Z=fh(),te=Z.firstChild,ee=te.firstChild,K=ee.firstChild,X=K.firstChild,fe=X.nextSibling,De=K.nextSibling,He=ee.nextSibling,Ke=He.nextSibling,Ue=Ke.firstChild,tt=Ue.nextSibling;return te.$$click=qe=>qe.stopPropagation(),te.addEventListener("submit",z),i(fe,()=>ue().title),De.$$click=()=>b(void 0),i(te,n(y,{get when(){return f()},children:qe=>(()=>{var lt=ba();return i(lt,qe),lt})()}),Ke),Ue.$$click=()=>b(void 0),i(tt,()=>u()?"删除中...":"删除"),E(()=>tt.disabled=u()),Z}})}),null),i(F,n(y,{get when(){return _()},children:ue=>n(Ua,{get item(){return ue()},open:!0,onClose:()=>p(void 0),onSubmit:Z=>{p(void 0),a(Z)}})}),null),i(F,n(xi,{get resourceId(){return M()?.resourceId},get resourcePage(){return M()?.resourcePage},get draftId(){return M()?.draftId},get initialPrimitiveType(){return M()?.initialPrimitiveType},get sourceHint(){return M()?.sourceHint},get serverUrl(){return e.current?.http.url??window.location.origin},get open(){return M()!==void 0},onClose:()=>N(void 0),onSuccess:ue=>P(ue)}),null),F})()}function Op(e){const t=za(),[a,r]=S(!1),[s,l]=S(!1),[d,c]=S(!1),[g,v]=S(""),b=async u=>{if(u.preventDefault(),!!e.onDelete){c(!0),v("");try{await e.onDelete(),l(!1)}catch(h){v(h instanceof Error?h.message:"删除失败")}finally{c(!1)}}};return[(()=>{var u=yh(),h=u.firstChild,f=h.firstChild,w=f.nextSibling,_=h.nextSibling,p=_.nextSibling,M=p.firstChild;M.firstChild;var N=M.nextSibling;N.firstChild;var L=N.nextSibling;L.firstChild;var W=p.nextSibling,O=W.firstChild,H=O.firstChild;return i(f,()=>e.item.title),i(w,()=>Fn[e.item.status]??e.item.status),i(_,n(ce,{get each(){return Up(e.item).slice(0,4)},children:D=>(()=>{var T=kn();return i(T,D),T})()})),i(u,n(Na,{get copy(){return e.item.description}}),p),i(M,()=>e.item.domain,null),i(N,()=>Yr[en(e.item)]??e.item.primitiveType,null),i(L,()=>e.item.slug??e.item.id,null),i(u,n(y,{get when(){return ne(()=>!!e.item.resources)()&&e.item.resources.length>0},get children(){var D=Pn();return i(D,n(ce,{get each(){return e.item.resources?.slice(0,3)??[]},children:T=>(()=>{var G=wh();return G.firstChild,i(G,()=>T.title,null),G})()})),D}}),W),i(O,n(y,{get when(){return e.item.status==="callable"},get children(){var D=bh();return D.$$click=()=>r(!0),D}}),H),Oe(H,"click",e.onInspect,!0),i(O,n(y,{get when(){return ne(()=>!!e.deletable)()&&e.onDelete},get children(){var D=Dn();return D.$$click=()=>l(!0),D}}),null),i(u,n(y,{get when(){return s()},get children(){return n(bt,{get children(){var D=vh(),T=D.firstChild,G=T.firstChild,z=G.firstChild,P=z.firstChild,F=P.nextSibling,B=z.nextSibling,re=G.nextSibling,de=re.nextSibling,J=de.firstChild,we=J.nextSibling;return T.$$click=Y=>Y.stopPropagation(),T.addEventListener("submit",b),i(F,()=>e.item.title),B.$$click=()=>l(!1),i(T,n(y,{get when(){return g()},children:Y=>(()=>{var ve=ba();return i(ve,Y),ve})()}),de),J.$$click=()=>l(!1),i(we,()=>d()?"删除中...":"删除"),E(()=>we.disabled=d()),D}})}}),null),E(D=>{var T=e.item.id,G=!!e.highlighted,z=e.highlighted?"true":void 0,P=e.item.slug??e.item.id;return T!==D.e&&R(u,"id",D.e=T),G!==D.t&&u.classList.toggle("os-resource-card-highlighted",D.t=G),z!==D.a&&R(u,"data-highlighted",D.a=z),P!==D.o&&R(L,"title",D.o=P),D},{e:void 0,t:void 0,a:void 0,o:void 0}),u})(),n(Ua,{get item(){return e.item},get open(){return a()},onClose:()=>r(!1),onSubmit:u=>{r(!1),t(u)}})]}function Np(e){return n(y,{get when(){return e.item},children:t=>n(bt,{get children(){var a=$h(),r=a.firstChild,s=r.firstChild,l=s.firstChild,d=l.firstChild,c=d.nextSibling,g=l.nextSibling,v=s.nextSibling,b=v.nextSibling;return Oe(a,"click",e.onClose,!0),r.$$click=u=>u.stopPropagation(),i(c,()=>t().title),Oe(g,"click",e.onClose,!0),i(r,n(Rp,{get item(){return t()}}),v),i(b,()=>JSON.stringify({contract:t().contractJson,adapter:t().adapterJson,validation:t().validationJson,resources:t().resources??[]},null,2)),a}})})}function Rp(e){const t=()=>Lp(e.item.contractJson);return n(y,{get when(){return t()},children:a=>(()=>{var r=Ch(),s=r.firstChild,l=s.nextSibling,d=l.nextSibling;return i(l,()=>a().purpose??"为智能体调用、代码实现和验证提供结构化约束。"),i(d,n(ce,{get each(){return a().usage??[]},children:c=>(()=>{var g=$n();return i(g,c),g})()})),i(r,n(ce,{get each(){return a().matchedAssets??[]},children:c=>(()=>{var g=_h(),v=g.firstChild,b=v.firstChild,u=b.nextSibling,h=v.nextSibling;return i(u,()=>c.title??c.name??c.path),i(g,n(y,{get when(){return c.path},get children(){var f=Sh();return i(f,()=>c.path),f}}),h),i(g,n(y,{get when(){return c.summary},get children(){var f=di();return i(f,()=>c.summary),f}}),h),i(h,n(ce,{get each(){return(c.sections??[]).slice(0,6)},children:f=>(()=>{var w=Ph(),_=w.firstChild,p=_.nextSibling;return i(_,()=>f.title),i(p,()=>f.content),w})()})),g})()}),null),r})()})}function Lp(e){const t=e?.agentContract;if(!(!t||typeof t!="object"))return t}function Up(e){return e.intentTags.filter(t=>!Gp(t)&&!Hi.has(t))}function Gp(e){return e.startsWith("category:")||e.startsWith("skill:")}function Bp(){return n(Et,{page:"research"})}function Hp(){return n(Et,{page:"cases"})}function qp(){return n(Et,{page:"docs"})}function zp(){return n(Et,{page:"models"})}function Yn(){return n(Et,{page:"apps"})}function es(){return n(Et,{page:"frameworks"})}function jp(){return n(Et,{page:"operators"})}const Wp=[[{label:"首页",href:"/workspace",icon:"home"},{label:"科研开发",href:"/workspace",icon:"code"}],[{label:"OneSkills",href:"/skills",icon:"skills"},{label:"AI原语",href:"/primitives",icon:"primitives"}],[{label:"OneHub",icon:"apps",items:[{label:"模型库",href:"/models",icon:"model"},{label:"数据集",href:"/datasets",icon:"database"},{label:"应用库",href:"/apps",icon:"apps"}]}],[{label:"OneInfra",icon:"framework",items:[{label:"AI框架",href:"/frameworks",icon:"framework"},{label:"算子",href:"/operators",icon:"operator"}]}],[{label:"案例",href:"/cases",icon:"cases"},{label:"文档",href:"/docs",icon:"docs"}]],Vp=[[{label:"工作台",href:"/workspace",icon:"home"},{label:"科研开发",href:"/workspace",icon:"code"}],[{label:"OneHub",icon:"apps",items:[{label:"模型库",href:"/models",icon:"model"},{label:"数据集",href:"/datasets",icon:"database"},{label:"应用库",href:"/apps",icon:"apps"},{label:"OneSkills",href:"/skills",icon:"skills"},{label:"AI原语",href:"/primitives",icon:"primitives"},{label:"案例",href:"/cases",icon:"cases"},{label:"文档",href:"/docs",icon:"docs"}]}]];At(["click","keydown","input","pointerdown"]);const Jp=Object.freeze(Object.defineProperty({__proto__:null,AppHubPage:Dp,AppsPage:Yn,CasesPage:Hp,DataManagementPage:_p,DatasetsPage:Pp,DocsPage:qp,FrameworksPage:es,InfraPage:$p,ModelsPage:zp,OnedataDownloadCatalog:kp,OperatorsPage:jp,PrimitivesPage:xp,ResearchPage:Bp,SkillTaskProfileGrid:mp,SkillsPage:Ap,TasksPage:Sp,WorkspaceHomeHubSections:Hn,WorkspaceHomePage:sp,WorkspaceShell:rp,appendUniqueResourceItems:bi,buildHomeAssetMetrics:Fi,buildMergedCatalogCounts:xn,clampResourceFieldValue:jn,countResourceItemsByDomain:sa,createAIPrimitive:To,datasetDocLinks:Ei,default:Zh,deleteAIPrimitive:zi,deleteUploadedResource:Qn,fetchCallablePrimitiveTotal:rn,fetchCatalogMetrics:an,fetchResourceCustomCounts:oi,fetchUserUploadedResourceIds:Qr,filterAIPrimitiveItems:ni,filterPrimitivesByCatalogScope:si,filterResourceItems:ha,forkPresetCase:sr,formatResourceCatalogCount:Kh,formatResourceCatalogSummary:In,formatResourceCatalogTotal:Ti,getResourceSource:Ha,invalidateCatalogMetricsCache:Wr,invalidatePrimitiveCatalogCaches:jr,invalidateResourceCustomCountsCache:Ba,isModelScopeResourceAvailable:Ri,itemMatchesResourceFilter:ma,listAIPrimitives:bp,listAIPrimitivesExperimental:cn,listAIPrimitivesFromDatabase:Vr,listAgentRegistryPrimitives:vp,listCatalogSkills:Kr,listOneScienceSkills:Kn,listOneScienceTaskProfiles:pp,listUploadedResources:fi,loadAllAIPrimitives:ln,lookupPrimitiveByResource:Ta,lookupPrimitivesByResources:sn,mergeResourceDomainCounts:Mn,mergeResourcePageItems:vi,modelLinks:Oi,oneskillsGithubRepo:Rh,parseResourceTags:Vn,primitiveCatalogHref:Pi,publishAIPrimitive:Br,readCallableCatalogCache:ki,readCatalogMetricsCache:tn,resetUploadedResourceCache:Xn,resolveCatalogEntry:Eo,resourceCatalogFilters:Ra,resourceFieldLengthError:Wn,resourceFieldLimits:ke,resourceFilterFromHash:mi,resourceHashFromFilter:Rn,resourceItemCatalogDomain:Ln,resourceListEmptyMessage:Un,resourcePages:Be,resourceProviderKindFromInitial:gi,resourceProviderLabel:zn,resourceProviderOptions:ja,resourceUploadFieldHints:hp,resourceUploadProfile:Gi,restorePresetCase:sr,restoreSharedPresetCase:Ai,searchCatalogEntries:Oo,searchPrimitivesViaCatalog:Zr,searchResourceItems:qa,skillCapabilityFamilies:Lh,skillSystemGroups:ca,sortResourceItemsByModelScopeAvailability:Li,updateAIPrimitive:No,updateUploadedResource:Jn,writeCallableCatalogCache:Di},Symbol.toStringTag,{value:"Module"}));export{kp as O,ud as S,cl as m,Jp as o,Hc as s};
|
|
82
|
+
${l}按文档完成安装与验证;${s}`}function zc(e){return(t,a)=>Cn(e,t,a)}function jc(e){return{prompt:`请基于 OneSkills 技能「${e.title}」进行科研开发。`,skill:{name:e.id,title:e.title}}}const kr=["name","description","layer","tags","references","allowed-tools","metadata"],Wc={name:"名称",description:"描述",tags:"标签",references:"引用资源","allowed-tools":"可用工具",metadata:"元数据",layer:"分层"};function Vc(e){return Wc[e]??e}function Sn(e){const t=Object.keys(e);return[...kr.filter(r=>t.includes(r)),...t.filter(r=>!kr.includes(r)).sort()].flatMap(r=>{const s=e[r];return s==null||s===""?[]:[[r,s]]})}function Kc(e){return e?Sn(e).length>0:!1}function Xc(e){return typeof e=="boolean"?e?"是":"否":typeof e=="number"?String(e):typeof e=="string"?e:JSON.stringify(e,null,2)}function Ma(e){return Array.isArray(e)?e.flatMap(t=>t==null||t===""?[]:[typeof t=="string"?t:JSON.stringify(t)]):[]}function Dr(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return JSON.stringify(e,null,2)}var Jc=o("<section class=os-skill-detail-meta><div class=os-skill-detail-section-label>技能元数据</div><dl class=os-skill-detail-meta-grid>"),Qc=o("<dt>"),Zc=o('<div class="os-tag-row os-skill-detail-meta-tags">'),Yc=o("<span class=os-skill-detail-meta-value>"),ed=o("<dd>"),td=o("<span class=os-tag>"),ad=o("<pre class=os-skill-detail-meta-nested>"),id=o("<div class=os-skill-detail-chips>"),rd=o('<div class=os-skill-detail-loading><div class=os-skill-detail-loading-bar></div><div class="os-skill-detail-loading-bar os-skill-detail-loading-bar-short"></div><div class=os-skill-detail-loading-bar></div><p>正在加载 SKILL.md...'),nd=o("<section class=os-skill-detail-content><div class=os-skill-detail-section-label>技能说明"),sd=o("<div role=presentation><div role=dialog aria-modal=true><div><div class=os-skill-detail-head-main><div>OneSkills</div><h2></h2><p class=os-skill-detail-summary></p></div><button type=button aria-label=关闭>×</button></div><div class=os-skill-detail-body></div><div><div><button type=button>关闭</button><button type=button>开发"),od=o("<span class=os-skill-detail-chip>"),ld=o("<div>"),cd=o("<p class=os-section-copy>该技能暂无正文内容。"),dd=o("<div class=os-skill-detail-markdown>"),ud=o("<span class=os-skill-detail-path-empty>路径待加载"),md=o("<code class=os-skill-detail-path><span class=os-skill-detail-path-label>路径</span><span class=os-skill-detail-path-value>");function hd(e){const t=()=>Sn(e.data);return(()=>{var a=Jc(),r=a.firstChild,s=r.nextSibling;return i(s,n(ce,{get each(){return t()},children:([d,l])=>[(()=>{var c=Qc();return i(c,()=>Vc(d)),c})(),(()=>{var c=ed();return i(c,n(y,{get when(){return Ma(l).length>0},get children(){var g=Zc();return i(g,n(ce,{get each(){return Ma(l)},children:v=>(()=>{var b=td();return i(b,v),b})()})),g}}),null),i(c,n(y,{get when(){return ne(()=>Ma(l).length===0)()&&Dr(l)},children:g=>(()=>{var v=ad();return i(v,g),v})()}),null),i(c,n(y,{get when(){return ne(()=>Ma(l).length===0)()&&!Dr(l)},get children(){var g=Yc();return i(g,()=>Xc(l)),g}}),null),c})()]})),E(()=>a.classList.toggle("is-workbench",!!e.workbench)),a})()}function pd(e){const[t,a]=_(!1),[r,s]=_(),[d,l]=_(),[c,g]=_(),[v,b]=_(),u=()=>e.variant==="workbench",h=j(()=>e.open?e.item:void 0);ge(()=>{const w=h(),C=e.serverUrl;if(!w||!C){a(!1),s(void 0),l(void 0),g(void 0),b(void 0);return}let p=!0;a(!0),s(void 0),l(void 0),g(void 0),b(void 0),Is(C,w.id).then(M=>{if(p){if(a(!1),!M.loaded){b(M.error??"无法加载技能内容");return}if(g(M.location),M.content){s(M.content),l(M.frontmatter);return}b(M.error??"技能文件不可用")}}),Be(()=>{p=!1})});const f=()=>{const w=h();if(!w)return[];const C=[];w.layer&&C.push({label:w.layer,tone:"layer"}),w.provider&&C.push({label:w.provider,tone:"provider"});for(const p of(w.tags??[]).slice(0,4))p===w.layer||p===w.provider||C.push({label:p});return C};return n(y,{get when(){return h()},get children(){return n(bt,{get mount(){return typeof document>"u"?void 0:document.body},get children(){var w=sd(),C=w.firstChild,p=C.firstChild,M=p.firstChild,N=M.firstChild,L=N.nextSibling,W=L.nextSibling,O=M.nextSibling,H=p.nextSibling,D=H.nextSibling,T=D.firstChild,G=T.firstChild,z=G.nextSibling;return w.$$click=P=>{P.target===P.currentTarget&&e.onClose()},C.$$click=P=>P.stopPropagation(),i(L,()=>h().title),i(W,()=>h().copy),i(M,n(y,{get when(){return f().length>0},get children(){var P=id();return i(P,n(ce,{get each(){return f()},children:F=>(()=>{var B=od();return i(B,()=>F.label),E(()=>R(B,"data-tone",F.tone)),B})()})),P}}),null),Oe(O,"click",e.onClose,!0),i(H,n(y,{get when(){return t()},get children(){return rd()}}),null),i(H,n(y,{get when(){return ne(()=>!t())()&&v()},children:P=>(()=>{var F=ld();return i(F,P),E(B=>{var re=!u(),de=!!u();return re!==B.e&&F.classList.toggle("os-upload-error",B.e=re),de!==B.t&&F.classList.toggle("os-client-capability-skill-detail-error",B.t=de),B},{e:void 0,t:void 0}),F})()}),null),i(H,n(y,{get when(){return ne(()=>!t())()&&!v()},get children(){return[n(y,{get when(){return Kc(d())},get children(){return n(hd,{get data(){return d()},get workbench(){return u()}})}}),(()=>{var P=nd();return P.firstChild,i(P,n(y,{get when(){return r()},get fallback(){return cd()},children:F=>(()=>{var B=dd();return i(B,n(Fs,{get text(){return F()},get cacheKey(){return`skill-detail:${h().id}`}})),B})()}),null),P})()]}}),null),i(D,n(y,{get when(){return c()},get fallback(){return ud()},children:P=>(()=>{var F=md(),B=F.firstChild,re=B.nextSibling;return i(re,P),E(()=>R(F,"title",P())),F})()}),T),Oe(G,"click",e.onClose,!0),Oe(z,"click",e.onDevelop,!0),E(P=>{var F=!u(),B=!!u(),re={"os-upload-dialog os-skill-detail-dialog":!u(),"os-client-capability-skill-detail-dialog":u()},de=`技能详情 ${h().title}`,J=!u(),we=!!u(),Y=!u(),ve=!!u(),$e={"os-button os-button-secondary os-button-square":!u(),"os-client-capability-skill-detail-close":u()},ue=!!u(),Z=t(),te=!u(),ee=!!u(),K=!u(),X=!!u(),fe={"os-button os-button-secondary":!u(),"os-client-capability-skill-detail-action":u()},De={"os-button os-button-primary":!u(),"os-client-capability-skill-detail-action is-primary":u()};return F!==P.e&&w.classList.toggle("os-modal-backdrop",P.e=F),B!==P.t&&w.classList.toggle("os-client-capability-skill-detail-overlay",P.t=B),P.a=na(C,re,P.a),de!==P.o&&R(C,"aria-label",P.o=de),J!==P.i&&p.classList.toggle("os-skill-detail-head",P.i=J),we!==P.n&&p.classList.toggle("os-client-capability-skill-detail-head",P.n=we),Y!==P.s&&N.classList.toggle("os-eyebrow",P.s=Y),ve!==P.h&&N.classList.toggle("os-client-capability-skill-detail-eyebrow",P.h=ve),P.r=na(O,$e,P.r),ue!==P.d&&H.classList.toggle("is-workbench",P.d=ue),Z!==P.l&&R(H,"aria-busy",P.l=Z),te!==P.u&&D.classList.toggle("os-skill-detail-footer",P.u=te),ee!==P.c&&D.classList.toggle("os-client-capability-skill-detail-footer",P.c=ee),K!==P.w&&T.classList.toggle("os-upload-actions",P.w=K),X!==P.m&&T.classList.toggle("os-client-capability-skill-detail-actions",P.m=X),P.f=na(G,fe,P.f),P.y=na(z,De,P.y),P},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0}),w}})}})}At(["click"]);var gd=o('<svg><path d="M4.5 11.5 12 5l7.5 6.5"></svg>',!1,!0,!1),fd=o('<svg><path d="M6.5 10.5V19h11v-8.5"></svg>',!1,!0,!1),bd=o('<svg><path d="M10 19v-5h4v5"></svg>',!1,!0,!1),vd=o('<svg><path d="m8.5 8-4 4 4 4"></svg>',!1,!0,!1),yd=o('<svg><path d="m15.5 8 4 4-4 4"></svg>',!1,!0,!1),wd=o('<svg><path d="m13.5 6-3 12"></svg>',!1,!0,!1),$d=o('<svg><path d="M6 5.5h12"></svg>',!1,!0,!1),Cd=o('<svg><path d="M6 12h12"></svg>',!1,!0,!1),Sd=o('<svg><path d="M6 18.5h12"></svg>',!1,!0,!1),_d=o('<svg><path d="M4 5.5h.01"></svg>',!1,!0,!1),Pd=o('<svg><path d="M4 12h.01"></svg>',!1,!0,!1),kd=o('<svg><path d="M4 18.5h.01"></svg>',!1,!0,!1),Dd=o('<svg><path d="M5 6c0-1.7 3.1-3 7-3s7 1.3 7 3-3.1 3-7 3-7-1.3-7-3Z"></svg>',!1,!0,!1),Ad=o('<svg><path d="M5 6v6c0 1.7 3.1 3 7 3s7-1.3 7-3V6"></svg>',!1,!0,!1),xd=o('<svg><path d="M8 18.5h8"></svg>',!1,!0,!1),Md=o('<svg><path d="M12 15v3.5"></svg>',!1,!0,!1),Id=o('<svg><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.5-3.5a5.8 5.8 0 0 1-7.6 7.6l-6.8 6.8a2.1 2.1 0 0 1-3-3l6.8-6.8a5.8 5.8 0 0 1 7.6-7.6z"></svg>',!1,!0,!1),Fd=o('<svg><path d="M6.5 6.5h4v4h-4z"></svg>',!1,!0,!1),Td=o('<svg><path d="M13.5 6.5h4v4h-4z"></svg>',!1,!0,!1),Ed=o('<svg><path d="M6.5 13.5h4v4h-4z"></svg>',!1,!0,!1),Od=o('<svg><path d="M13.5 13.5h4v4h-4z"></svg>',!1,!0,!1),Nd=o('<svg><path d="M10.5 8.5h3"></svg>',!1,!0,!1),Rd=o('<svg><path d="M8.5 10.5v3"></svg>',!1,!0,!1),Ld=o('<svg><path d="M15.5 10.5v3"></svg>',!1,!0,!1),Ud=o('<svg><path d="M10.5 15.5h3"></svg>',!1,!0,!1),Gd=o('<svg><path d="M5 7c0-2 3.1-3.5 7-3.5S19 5 19 7s-3.1 3.5-7 3.5S5 9 5 7Z"></svg>',!1,!0,!1),Bd=o('<svg><path d="M5 7v5c0 2 3.1 3.5 7 3.5S19 14 19 12V7"></svg>',!1,!0,!1),Hd=o('<svg><path d="M5 12v5c0 2 3.1 3.5 7 3.5s7-1.5 7-3.5v-5"></svg>',!1,!0,!1),qd=o('<svg><path d="M7 8.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"></svg>',!1,!0,!1),zd=o('<svg><path d="M17 20.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"></svg>',!1,!0,!1),jd=o('<svg><path d="M17 8.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"></svg>',!1,!0,!1),Wd=o('<svg><path d="M7 8.5 17 15.5"></svg>',!1,!0,!1),Vd=o('<svg><path d="M9.5 6h5"></svg>',!1,!0,!1),Kd=o('<svg><path d="M5 5h5v5H5z"></svg>',!1,!0,!1),Xd=o('<svg><path d="M14 5h5v5h-5z"></svg>',!1,!0,!1),Jd=o('<svg><path d="M5 14h5v5H5z"></svg>',!1,!0,!1),Qd=o('<svg><path d="M14 14h5v5h-5z"></svg>',!1,!0,!1),Zd=o('<svg><path d="M6 7h12"></svg>',!1,!0,!1),Yd=o('<svg><path d="M8 12h8"></svg>',!1,!0,!1),eu=o('<svg><path d="M10 17h4"></svg>',!1,!0,!1),tu=o('<svg><path d="M5 7h4"></svg>',!1,!0,!1),au=o('<svg><path d="M15 7h4"></svg>',!1,!0,!1),iu=o('<svg><path d="M5 17h4"></svg>',!1,!0,!1),ru=o('<svg><path d="M15 17h4"></svg>',!1,!0,!1),nu=o('<svg><path d="M9 7c3 0 3 10 6 10"></svg>',!1,!0,!1),su=o('<svg><path d="M9 17c3 0 3-10 6-10"></svg>',!1,!0,!1),ou=o('<svg><path d="M6 4.5h12v15H6z"></svg>',!1,!0,!1),lu=o('<svg><path d="M9 4.5v6l3-2 3 2v-6"></svg>',!1,!0,!1),cu=o('<svg><path d="M9 14h6"></svg>',!1,!0,!1),du=o('<svg><path d="M9 17h4"></svg>',!1,!0,!1),uu=o('<svg><path d="M7 4h7l3 3v13H7z"></svg>',!1,!0,!1),mu=o('<svg><path d="M14 4v4h4"></svg>',!1,!0,!1),hu=o('<svg><path d="M10 12h5"></svg>',!1,!0,!1),pu=o('<svg><path d="M10 16h5"></svg>',!1,!0,!1),gu=o('<svg><path d="M8 10.5a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"></svg>',!1,!0,!1),fu=o('<svg><path d="M16.5 11a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"></svg>',!1,!0,!1),bu=o('<svg><path d="M3.5 19c.6-3.2 2.2-5 4.5-5s3.9 1.8 4.5 5"></svg>',!1,!0,!1),vu=o('<svg><path d="M13.5 18.5c.4-2.4 1.5-3.8 3-3.8 1.7 0 2.8 1.4 3.3 3.8"></svg>',!1,!0,!1),yu=o('<svg><path d="M12 8.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7Z"></svg>',!1,!0,!1),wu=o('<svg><path d="M12 3.5v2"></svg>',!1,!0,!1),$u=o('<svg><path d="M12 18.5v2"></svg>',!1,!0,!1),Cu=o('<svg><path d="m5.6 5.6 1.4 1.4"></svg>',!1,!0,!1),Su=o('<svg><path d="m17 17 1.4 1.4"></svg>',!1,!0,!1),_u=o('<svg><path d="M3.5 12h2"></svg>',!1,!0,!1),Pu=o('<svg><path d="M18.5 12h2"></svg>',!1,!0,!1),ku=o('<svg><path d="m5.6 18.4 1.4-1.4"></svg>',!1,!0,!1),Du=o('<svg><path d="m17 7 1.4-1.4"></svg>',!1,!0,!1),Au=o('<svg class=os-sidebar-icon viewBox="0 0 24 24"aria-hidden=true>'),xu=o("<button type=button class=os-case-row><div class=os-case-index></div><div><div class=os-case-tag></div><h3></h3><p></p></div><div class=os-case-result>"),Mu=o("<strong>"),Iu=o("<p class=os-resource-card-copy>"),Fu=o("<span class=os-brand-mark>✣"),Tu=o("<span class=os-brand-copy><span class=os-brand-name>OneScience</span><span class=os-brand-subtitle>智能科研平台"),Eu=o('<button class="os-button os-button-primary">进入工作台'),Ou=o('<header class="os-topbar os-product-topbar sticky top-0 z-50"><div class="os-container flex min-h-16 min-w-0 items-center justify-between gap-4"><nav class="hidden min-w-0 flex-1 items-center justify-center gap-1 overflow-visible xl:flex"></nav><div class="flex shrink-0 items-center gap-2">'),Nu=o('<div class="group relative"><button class=os-nav-button></button><div class="invisible absolute left-1/2 top-full w-[36rem] -translate-x-1/2 translate-y-2 pt-3 opacity-0 transition group-hover:visible group-hover:translate-y-0 group-hover:opacity-100 group-focus-within:visible group-focus-within:translate-y-0 group-focus-within:opacity-100"><div class=os-menu><div class=os-menu-head><p></p></div><div class="grid grid-cols-2 gap-1 p-2">'),_n=o("<span>"),Ru=o("<small>"),Lu=o('<button class="os-button os-button-secondary">进入工作台'),Uu=o('<footer id=contact class=os-footer><div class="os-container grid gap-8 lg:grid-cols-[1fr_1fr_1fr]"><div><div class=os-footer-title>OneScience</div><p class="mt-2 text-13-regular leading-6 text-slate-500">知识驱动的智能科研平台</p></div><div><div class=os-footer-heading>联系方式</div><div class=os-footer-links><a href=https://github.com/onescience-ai>GitHub:onescience-ai</a><a href=https://gitee.com/onescience-ai>Gitee:onescience-ai</a></div></div><div><div class=os-footer-heading>社区共建</div><div class="mt-3 flex flex-wrap gap-2">'),Gu=o("<span class=os-chip>"),Bu=o("<button type=button class=os-hero-scroll-cue aria-label=向下滚动查看更多内容>"),Hu=o('<div class="grid gap-4 sm:grid-cols-2 xl:grid-cols-4">'),qu=o('<div class="grid gap-4 md:grid-cols-3">'),zu=o('<div class="mt-4 grid gap-4 md:grid-cols-3">'),ju=o('<div class="grid gap-4 md:grid-cols-4">'),Wu=o('<main class="onescience-page os-page min-h-full overflow-y-auto"><section class="os-hero-section os-product-hero"><div class=os-hero-network aria-hidden=true></div><div class="os-container os-hero-center"><h1 class=os-hero-title>OneScience<span>智能科研平台</span></h1><p class=os-hero-copy><strong>革新科研开发流程,</strong><strong>以知识为核心,实现智能化代码开发、科研任务编排和结果复现。</strong></p><div class=os-hero-actions><span class="os-button os-button-ghost os-button-large os-hero-repo-links"><a href=https://github.com/onescience-ai target=_blank rel=noreferrer>GitHub</a><span aria-hidden=true>/</span><a href=https://gitee.com/onescience-ai target=_blank rel=noreferrer>Gitee</a></span></div></div></section><section id=product-content class="os-section os-section-white"><div class="os-container grid gap-8 lg:grid-cols-[1.1fr_0.9fr]"><div class=os-video-panel><div class="os-video-inner os-video-embed"><iframe title="OneScience Demo"src="https://player.bilibili.com/player.html?bvid=BV187V96qEF1&page=1"scrolling=no frameborder=0 allowfullscreen></iframe></div></div><div class=self-start><h2 class="os-section-title mt-3">从一个科研目标进入智能开发</h2><p class=os-section-copy>开发者可以先选择数据集、模型、组件、算力环境和评估指标,再通过 OneSkills 把这些先验知识与工程资产编排成可运行、可追踪、可复用的科研工作流。</p><div class="mt-7 flex flex-wrap gap-3 text-14-bold"></div></div></div></section><section class="os-section os-case-section"><div class="os-container os-case-layout"><div><h2 class="os-section-title mt-3">典型科研智能化案例</h2><p class="os-section-copy mt-4">围绕气象、材料、PDE 和科学模型扩展等高频科研开发场景,将知识资产、工程流程和智能体执行沉淀为可复用案例。</p></div><div class=os-case-list></div></div></section><section class=os-section><a href=https://www.modelscope.cn/organization/OneScience target=_blank rel=noreferrer class="os-container os-join-panel os-join-panel-link"aria-label="加入 OneScience 社区,前往魔搭社区主页"><div><h2 class="os-section-title mt-3">加入OneScience社区</h2><p class="os-section-copy os-join-copy">围绕科学模型研发构建、国产模型生态建设,开放欢迎科研团队、开发者、模型作者、数据贡献者和工程伙伴一起沉淀模型、数据、组件和技能,构建面向科学发现的先验知识生态。 对社区贡献者提供算力和模型服务支持。</p></div><div class="grid gap-3 md:grid-cols-2">'),Vu=o("<span class=os-hero-line>"),Ku=o("<span class=os-hero-node>"),Xu=o("<img class=os-metric-card-bg alt loading=lazy>",!0,!1,!1),Ar=o("<span class=os-metric-card-arrow>查看资源"),xr=o("<div class=os-metric-card-value>"),Mr=o("<h3>"),di=o("<p>"),Ju=o("<article class=os-achievement-card><img alt loading=lazy><div class=os-achievement-card-body><h3></h3><p>",!0,!1,!1),Qu=o("<article class=os-community-card><h3></h3><p>"),Zu=o("<section class=os-section><div class=os-container><div class=os-section-head><h2 class=os-section-title>"),Yu=o("<div class=os-eyebrow>"),em=o("<article class=os-info-card><div class=os-info-card-media><img alt loading=lazy></div><div class=os-info-card-content><h3></h3><p>",!0,!1,!1),tm=o("<div class=os-sidebar-account>"),Ir=o("<span class=os-sidebar-account-avatar aria-hidden=true>"),am=o("<span class=os-sidebar-label><strong></strong><span>"),im=o("<span class=os-sidebar-label><strong></strong><span>账号管理"),rm=o("<div class=os-sidebar-account-menu-summary><span>账号管理</span><strong></strong><p>"),Fr=o("<span class=os-sidebar-account-menu-icon aria-hidden=true>"),nm=o("<p class=os-sidebar-account-menu-workspace>"),sm=o('<span class="os-brand-mark os-brand-mark-large">✣'),ti=o("<span class=os-sidebar-label>"),om=o("<div class=os-desktop-main-drag data-tauri-drag-region aria-hidden=true>"),lm=o('<main><aside class=os-sidebar><div class=os-sidebar-brand><button type=button class=os-sidebar-toggle></button></div><nav class=os-sidebar-nav></nav><div class=os-sidebar-footer><button type=button class="os-sidebar-link os-sidebar-action"data-action=workspace-settings><span class=os-sidebar-label>设置</span></button></div></aside><section class=os-workspace-main>'),cm=o("<div class=os-sidebar-group>"),dm=o('<div class=os-sidebar-fold><button type=button class="os-sidebar-link os-sidebar-link-fold"><span class=os-sidebar-label></span></button><div class=os-sidebar-subnav>'),um=o("<span>查看全部"),mm=o('<section class=os-home-hub-section><div class=os-home-hub-head><h2 class=os-block-title></h2></div><div class="os-resource-grid os-home-hub-grid">'),hm=o('<div class=os-workspace-content><div class=os-workspace-container><div class=os-workspace-hero><h1><span>OneScience</span>智能科研工作台</h1><p>定义结构,智能生成,可验证运行</p></div><form class=os-prompt-panel><textarea id=onescience-ai-prompt class=os-prompt-input aria-label="AI 输入框"rows=4 placeholder="描述你想开发的科学模型,例如:创建一个基于 Transformer 的气候预测模型..."></textarea><div class=os-prompt-actions><span class=os-prompt-hint>按 Enter 发送,Shift + Enter 换行</span><button class="os-button os-button-primary os-prompt-submit"type=submit>发送</button></div></form><h2 class="os-block-title os-home-domain-title">领域工作台</h2><div class=os-domain-grid>'),pm=o("<a class=os-domain-card><img class=os-domain-card-bg alt loading=lazy><div class=os-domain-card-content><h3></h3><p>",!0,!1,!1),Ii=o("<p class=os-data-empty>"),gm=o('<div class=os-workspace-content><div class=os-workspace-container><div class=os-resource-head><div><div class=os-eyebrow></div><h1></h1></div></div><div class=os-resource-toolbar><label class=os-search-box><span class=os-search-box-icon aria-hidden=true>⌕</span><input type=search></label><div class=os-resource-head-actions><span class=inline-flex><button type=button class="os-button os-button-secondary"></button></span></div></div><div class=os-filter-tabs>'),fm=o('<span class=inline-flex title=登录后使用><button type=button class="os-button os-button-secondary"disabled>上传技能'),Ga=o("<button type=button>"),bm=o("<p class=os-data-empty>暂无可展示的 OneSkills 技能,请先安装或上传技能。"),vm=o('<span class=inline-flex><button class="os-button os-button-secondary"type=button>上传'),Pn=o("<div class=os-load-more-sentinel>"),ym=o("<div class=os-workspace-content><div class=os-workspace-container><div class=os-resource-head><div><div class=os-eyebrow></div><h1></h1></div><div class=os-resource-head-actions><span></span></div></div><div class=os-resource-toolbar><label class=os-search-box><span class=os-search-box-icon aria-hidden=true>⌕</span><input type=search></label></div><div class=os-filter-tabs>"),kn=o("<div class=os-resource-grid>"),wm=o("<p class=os-data-empty>正在加载..."),$m=o("<span class=os-skill-group-count>"),Cm=o("<div>"),Sm=o("<button type=button class=os-skill-layer-expand>"),_m=o('<section class="os-skill-group scroll-mt-24"><div class=os-skill-group-head><div class=os-skill-group-title-row><h2></h2></div><p>'),Dn=o("<div class=os-dashboard-card>当前分类暂无技能卡片。"),Pm=o("<div class=os-skill-group-grid>"),km=o('<div class="os-resource-grid os-skill-card-grid">'),Dm=o("<section class=os-skill-group><div class=os-skill-group-head><h2></h2><p>"),Am=o("<div class=os-skills-fixed-row>"),xm=o('<div class="os-skill-group-grid os-skills-overview os-skills-card-overview">'),Mm=o("<div class=os-skill-task-grid>"),Im=o('<button type=button class=os-skill-task-card><span class=os-skill-task-card-head><strong></strong><svg class=os-skill-task-arrow viewBox="0 0 16 16"aria-hidden=true><path d="M6 3.5 10.5 8 6 12.5"fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.8></path></svg></span><span class=os-skill-task-description>'),Fm=o("<div class=os-resource-grid aria-busy=true>"),Tm=o('<div class="os-resource-card os-resource-skeleton"><div class="os-skeleton-line os-skeleton-badge"></div><div class="os-skeleton-line os-skeleton-title"></div><div class=os-skeleton-line></div><div class="os-skeleton-line os-skeleton-short"></div><div class=os-skeleton-meta><span></span><span>'),Em=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-resource-upload-dialog"><div class=os-upload-head><div><div class=os-eyebrow></div><h2></h2><p class=os-upload-intro></p></div><button type=button class="os-button os-button-secondary os-button-square">×</button></div><label><span class=os-field-label-row><span class=os-field-label>名称<span class=os-field-required aria-hidden=true> *</span></span><span class=os-field-count>/</span></span><input></label><label><span class=os-field-label-row><span class=os-field-label>描述<span class=os-field-required aria-hidden=true> *</span></span><span class=os-field-count>/</span></span><textarea></textarea></label><div class=os-upload-grid><label><span class=os-field-label>提供方<span class=os-field-required aria-hidden=true> *</span></span><span class=os-upload-field-hint>资源归属,决定卡片角标</span><select></select></label><label><span class=os-field-label-row><span class=os-field-label><span class=os-field-required aria-hidden=true> *</span></span><span class=os-field-count>/</span></span><span class=os-upload-field-hint></span><input></label><label><span class=os-field-label-row><span class=os-field-label><span class=os-field-required aria-hidden=true> *</span></span><span class=os-field-count>/</span></span><span class=os-upload-field-hint></span><input></label></div><label><span class=os-field-label-row><span class=os-field-label>标签</span><span class=os-field-count>/</span></span><input placeholder=多个标签用逗号或空格分隔></label><label>领域<select></select></label><label><span class=os-field-label-row><span class=os-field-label>链接</span><span class=os-field-count>/</span></span><input></label><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>'),Tr=o("<option>"),ba=o("<div class=os-upload-error>"),Om=o('<button type=button class="os-button os-button-primary">'),Nm=o('<div class=os-modal-backdrop role=presentation><div class=os-upload-dialog><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><p class=os-section-copy>案例 <strong></strong> 对应的预置会话已被删除,无法跳转到科研开发。</p><p class=os-section-copy></p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">关闭'),Rm=o("<span class=os-skill-tile-badge data-tone=muted>"),Lm=o('<button type=button class="os-button os-button-card os-card-action-link os-skill-tile-action">'),Um=o("<div class=os-skill-tile><div class=os-skill-tile-head><h2></h2><div class=os-skill-tile-badges><span class=os-skill-tile-badge></span></div></div><div class=os-skill-tile-footer><div class=os-skill-tile-meta><span class=os-skill-tile-dot aria-hidden=true></span><span></span></div><div class=os-skill-tile-actions>"),Gm=o("<div class=os-source-badge>"),Bm=o("<div class=os-card-heading-row><h2></h2><div class=os-card-heading-actions>"),An=o("<div class=os-tag-row>"),Hm=o("<span class=text-green-600><span aria-hidden=true>✓</span><span class=os-meta-text>"),qm=o("<div class=os-meta-list><span><span aria-hidden=true>◈</span><span class=os-meta-text></span></span><span><span aria-hidden=true>◒</span><span class=os-meta-text>"),ra=o('<button type=button class="os-button os-button-card os-card-action-link">'),zm=o('<div class=os-dataset-download-status><button type=button class="os-button os-button-card os-button-downloading os-card-action-link"></button><div class=os-dataset-download-progress role=progressbar aria-valuemin=0 aria-valuemax=100 aria-label=数据集下载进度><div class=os-dataset-download-progress-fill>'),jm=o('<div class=os-card-footer><div class="os-card-actions os-card-action-row">'),Wm=o("<a class=os-card-title-link target=_blank rel=noreferrer>"),xn=o("<span class=os-tag>"),Er=o('<a class="os-button os-button-card os-card-action-link"target=_blank rel=noreferrer>'),Vm=o('<a class="os-button os-button-card os-card-action-link"target=_blank rel=noreferrer>论文'),Km=o('<button type=button class="os-button os-button-card os-card-action-link os-primitive-publish-action">'),Xm=o('<button type=button class="os-button os-button-card os-card-action-link os-primitive-view-action">查看原语'),Jm=o('<article class="os-resource-card scroll-mt-24">'),Qm=o("<a class=os-card-link-cover target=_blank rel=noreferrer tabindex=-1>"),Zm=o("<button type=button data-danger=true>删除"),Ym=o("<div class=os-card-menu-popover><button type=button>修改"),eh=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-delete-dialog"><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><p>删除后该卡片会从当前资源库中移除。</p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>'),th=o('<div class=os-card-menu><button type=button class=os-card-menu-trigger><svg viewBox="0 0 16 16"aria-hidden=true><path d="M5 5.25h6M5 8h6M5 10.75h6"stroke=currentColor stroke-linecap=round stroke-width=1.75>'),ah=o('<div class=os-management-page><header class=os-management-topbar><div><div class=os-management-title-row><h1>任务管理</h1><span class=os-management-count>训练中 1</span><span class=os-management-count>已完成 1</span><span class="os-management-count os-management-count-danger">失败 1</span></div><p>统一管理科研开发中的训练、处理、生成和发布任务。</p></div><div class=os-management-actions><button class="os-button os-button-secondary"type=button>任务配置</button><button class="os-button os-button-primary"type=button>+ 新建任务</button></div></header><div class="os-management-layout os-management-layout-tasks"><aside class=os-management-sidebar><div class=os-search-box>⌕ 搜索训练任务...</div><div class=os-management-list></div></aside><section class=os-management-detail><div class=os-management-detail-head><div><h2>蛋白质结构预测训练</h2><p>AlphaFold-v3</p></div><div class=os-management-actions><button class="os-button os-button-secondary"type=button>暂停</button><button class="os-button os-button-ghost"type=button>•••</button></div></div><div class=os-management-metrics><div><span>Loss</span><strong>0.0234</strong></div><div><span>Accuracy</span><strong>94.56%</strong></div><div><span>预计剩余</span><strong>2小时30分</strong></div><div><span>资源</span><strong>4× A100</strong></div></div><section class=os-management-panel><div class=os-management-section-head><h3>训练进度</h3><strong>65%</strong></div><p>总体进度</p><div class=os-progress-track><div class=os-progress-fill style=width:65%></div></div><div class=os-management-progress-row><span>Epoch 130 / 200</span><span>开始时间: 2024-01-15 09:30</span></div></section><section class=os-management-panel><div class=os-management-section-head><h3>训练日志</h3></div><pre class=os-management-log>[11:33:26] 训练任务已创建 [11:33:26] 分配资源:4× A100 [11:33:26] 开始训练 [11:33:26] Epoch 1/100 - Loss: 0.1234 - Accuracy: 0.5678 [11:33:26] Epoch 2/100 - Loss: 0.0987 - Accuracy: 0.6234 [11:33:26] Epoch 3/100 - Loss: 0.0876 - Accuracy: 0.6789'),ih=o("<article class=os-management-list-card><div class=os-management-card-head><h2></h2><span></span></div><p></p><div class=os-management-progress-row><span></span><strong>%</strong></div><div class=os-progress-track><div class=os-progress-fill>"),rh=o('<div class="os-management-page os-data-intake-page"><header class=os-management-topbar><div><div class=os-management-title-row><h1>数据管理</h1></div><p>数据接入与可训练数据已迁移到能力中心的 OneData。旧版 AI Ready 项目流已停用。</p></div><div class=os-management-actions>'),nh=o("<button type=button class=os-onedata-stage-link>没有合适的?去登记自己的数据"),sh=o("<div class=os-client-capability-catalog-toolbar><label class=os-client-capability-catalog-search><span>搜索</span><input type=search placeholder=按名称、简介或标签筛选></label><div class=os-client-capability-catalog-toolbar-side><span class=os-client-capability-catalog-count>"),oh=o('<div class="os-resource-grid os-client-capability-onedata-grid">'),lh=o("<p class=os-client-capability-empty>"),ch=o("<div class=os-workspace-content><div class=os-workspace-container><div class=os-resource-head><div><div class=os-eyebrow>Primitive Workspace</div><h1>AI原语</h1></div></div><div class=os-filter-tabs><button type=button>原语目录</button><button type=button>原语工厂"),dh=o("<div class=os-primitive-category-bar aria-label=原语类别>"),uh=o("<div class=os-dashboard-card>正在从数据库加载原语..."),mh=o('<section class=os-skill-group><div class=os-skill-group-head><h2>原语目录</h2><p></p></div><div class="os-resource-toolbar os-primitive-catalog-toolbar"><label class=os-search-box><span class=os-search-box-icon aria-hidden=true>⌕</span><input type=search></label><button type=button class="os-button os-button-secondary"></button></div><div class=os-primitive-filter-panel><div class="os-filter-tabs os-primitive-scope-tabs"aria-label=数据范围>'),hh=o("<button type=button class=os-primitive-category-chip>"),ph=o("<div class=os-dashboard-card>正在加载原语工厂队列..."),gh=o("<div class=os-dashboard-card>当前阶段暂无原语。请从资源卡片「发布原语」补全契约并发布。"),fh=o('<section class=os-skill-system><div class=os-skill-system-head><div><h2>原语工厂</h2><p></p></div></div><div class="os-management-toolbar mt-4"><div class=os-filter-tabs></div><div class=os-card-actions></div></div><div class="os-resource-grid mt-4">'),bh=o("<button type=button> "),Mn=o('<button type=button class="os-button os-button-card os-card-action-link os-card-delete-action os-primitive-card-delete">删除'),vh=o('<article class="os-resource-card os-primitive-card os-resource-card-clickable"data-source=onescience role=button tabindex=0><div class=os-card-heading-row><h2></h2><div class=os-source-badge data-source=onescience></div></div><div class=os-meta-list><span><span aria-hidden=true>◈</span></span><span><span aria-hidden=true>◒</span></span></div><div class="os-card-footer os-primitive-card-footer"><div class="os-card-actions os-card-action-row">'),yh=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-delete-dialog"><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><p>是否要删除该原语?删除后将从原语工厂队列中移除。</p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>'),wh=o('<button type=button class="os-button os-button-primary os-button-card os-card-action-link">使用原语'),$h=o('<div class=os-modal-backdrop role=presentation><form class="os-upload-dialog os-delete-dialog"><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><p>是否要删除该原语?删除后将从原语目录中移除。</p><div class=os-upload-actions><button type=button class="os-button os-button-secondary">取消</button><button class="os-button os-button-primary"type=submit>'),Ch=o('<article class="os-resource-card os-primitive-card scroll-mt-24"data-source=onescience><div class=os-card-heading-row><h2></h2><div class=os-source-badge data-source=onescience></div></div><div class=os-tag-row></div><div class=os-meta-list><span><span aria-hidden=true>◈</span></span><span><span aria-hidden=true>◒</span></span><span class=os-primitive-slug><span aria-hidden=true>#</span></span></div><div class="os-card-footer os-primitive-card-footer"><div class="os-card-actions os-card-action-row"><button type=button class="os-button os-button-card os-card-action-link">查看契约'),Sh=o("<span class=os-tag>来源:"),_h=o('<div class=os-modal-backdrop role=presentation><div class=os-upload-dialog><div class=os-upload-head><div><div class=os-eyebrow>Primitive Contract</div><h2></h2></div><button type=button class="os-button os-button-secondary os-button-square">×</button></div><div class=os-contract-section-title>源码契约 JSON</div><pre class=os-primitive-contract-json>'),Ph=o("<section class=os-agent-contract><div class=os-contract-section-title>智能体契约</div><p></p><div class=os-contract-usage-list>"),kh=o("<code>"),Dh=o("<article class=os-agent-contract-asset><div class=os-contract-asset-head><span>资产契约</span><strong></strong></div><div class=os-contract-section-grid>"),Ah=o("<div class=os-contract-mini-section><strong></strong><p>");function Mt(e){return(()=>{var t=Au();return i(t,n(y,{get when(){return e.name==="home"},get children(){return[gd(),fd(),bd()]}}),null),i(t,n(y,{get when(){return e.name==="code"},get children(){return[vd(),yd(),wd()]}}),null),i(t,n(y,{get when(){return e.name==="tasks"},get children(){return[$d(),Cd(),Sd(),_d(),Pd(),kd()]}}),null),i(t,n(y,{get when(){return e.name==="data-management"},get children(){return[Dd(),Ad(),xd(),Md()]}}),null),i(t,n(y,{get when(){return e.name==="skills"},get children(){return Id()}}),null),i(t,n(y,{get when(){return e.name==="primitives"},get children(){return[Fd(),Td(),Ed(),Od(),Nd(),Rd(),Ld(),Ud()]}}),null),i(t,n(y,{get when(){return e.name==="database"},get children(){return[Gd(),Bd(),Hd()]}}),null),i(t,n(y,{get when(){return e.name==="model"},get children(){return[qd(),zd(),jd(),Wd(),Vd()]}}),null),i(t,n(y,{get when(){return e.name==="apps"},get children(){return[Kd(),Xd(),Jd(),Qd()]}}),null),i(t,n(y,{get when(){return e.name==="framework"},get children(){return[Zd(),Yd(),eu()]}}),null),i(t,n(y,{get when(){return e.name==="operator"},get children(){return[tu(),au(),iu(),ru(),nu(),su()]}}),null),i(t,n(y,{get when(){return e.name==="cases"},get children(){return[ou(),lu(),cu(),du()]}}),null),i(t,n(y,{get when(){return e.name==="docs"},get children(){return[uu(),mu(),hu(),pu()]}}),null),i(t,n(y,{get when(){return e.name==="users"},get children(){return[gu(),fu(),bu(),vu()]}}),null),i(t,n(y,{get when(){return e.name==="settings"},get children(){return[yu(),wu(),$u(),Cu(),Su(),_u(),Pu(),ku(),Du()]}}),null),t})()}const Or=[{label:"OneModel",eyebrow:"Scientific Models",copy:"覆盖气象、生信、材料、流体等领域的科研基座模型,安装后可直接进入对话工作台使用。",items:[{title:"全部模型",copy:"跨领域预训练与科研基座模型总览",href:et("onemodel")},{title:"材料化学",copy:"MACE、DeePMD、MatRIS 等材料与分子模拟模型",href:et("onemodel","materials")},{title:"地球科学",copy:"FuXi、GraphCast、FourCastNet 等气象预报模型",href:et("onemodel","weather")},{title:"生命科学",copy:"蛋白结构、序列设计与生信基础模型",href:et("onemodel","bio")},{title:"流体仿真",copy:"CFD、PDE 神经算子与流场预测模型",href:et("onemodel","fluid")}]},{label:"OneData",eyebrow:"Scientific Data",copy:"沉淀可检索、可下载、可接入的科学数据,将领域数据转化为智能开发的先验知识。",items:[{title:"全部数据集",copy:"跨领域高质量科学数据集总览",href:et("onedata")},{title:"地球科学",copy:"ERA5、气象、遥感、海洋再分析数据",href:et("onedata")},{title:"材料化学",copy:"晶体、反应、ML 势函数与材料图谱",href:et("onedata")},{title:"生命科学",copy:"基因组、蛋白结构、药物对接与组学数据",href:et("onedata")},{title:"流体仿真",copy:"CFD、湍流、PDE 基准与流场样本",href:et("onedata")}]},{label:"OneSkills",eyebrow:"Agent Skills",copy:"将数据、模型、组件、远程运行和评估过程组织成可编排的智能开发技能。",items:ca.map(e=>({title:e.title,copy:e.copy,href:et("oneskills")}))},{label:"案例",eyebrow:"Research Cases",copy:"面向真实科研任务的端到端场景化落地范例,覆盖数据准备、模型训练、评测验证与工程改造。",items:[{title:"全部案例",copy:"跨领域完整科研流程与可复现实践",href:qs("open")},{title:"地球科学",copy:"天气预报模型训练、海气耦合搭建与并行训练改造",href:Aa("earth")},{title:"材料化学",copy:"机器学习势函数训练、第一性原理计算与材料性质预测",href:Aa("material")},{title:"生命科学",copy:"蛋白序列设计、语言模型微调与结构预测验证",href:Aa("life")},{title:"流体仿真",copy:"CFD 基准训练、网格仿真推理与 PDE 神经算子评测",href:Aa("fluid")}]},{label:"文档&下载",eyebrow:"Docs and Downloads",copy:"用户手册、插件与镜像说明、版本发版记录。",items:[{title:"用户手册",copy:"平台使用、项目创建和工作流说明",href:Ja("manual")},{title:"插件与镜像说明",copy:"OneSkills 插件协议、运行环境镜像和扩展方式",href:Ja("plugins")},{title:"版本发版记录",copy:"v0.1.0 -> v0.3.0",href:Ja("release")}]}],xh=[{tag:"Earth System",title:"海气融合模型小时级调试搭建",copy:"从 ERA5、海温场和大气变量出发,自动匹配数据读取、预处理脚本、模型配置和远程运行模板,快速完成可调试的海气耦合实验骨架。",result:"小时级形成可运行工作流",sessionId:"ses_173de5f78ffemATonCgBtx7ECA"},{tag:"Material Science",title:"材料数据快速接入 MACE 训练",copy:"将结构数据、标注格式、训练参数和 MACE 示例流程组织成可复用任务,减少材料体系从数据准备到首轮训练的工程成本。",result:"数据接入到训练脚本一体化",sessionId:"ses_09102687affe6WEyKzrDV0i5tJ"},{tag:"PDE Benchmark",title:"PDE 求解算法快速对比",copy:"围绕 FNO、DeepONet、PINNs 等算法沉淀统一数据接口、评估指标和运行环境,让同一物理问题可以快速切换模型并横向比较。",result:"统一评测口径与结果对比",sessionId:"ses_10bffedbbffeAnlewduYPOpjBz"},{tag:"Model Scaling",title:"科学模型一键参数扩展",copy:"基于已有模型配置、算力约束和训练日志,自动生成参数扩展方案、并行策略和任务提交脚本,支持科学模型从小规模验证走向大规模实验。",result:"扩展方案可追踪复用",sessionId:"ses_131e650f7ffejnFYPuWmd1TBPr"}];function Ea(e){const t=To(ft());return e.ensureSessions?.(t),(async()=>e.serverUrl&&!await Eo({serverUrl:e.serverUrl,sessionId:e.sessionId,directory:t})?"missing":(e.navigate(Oo(t,e.sessionId)),"opened"))()}function Mh(e){const t=ot(),a=Et(),r=wt(),[s,d]=_(!1),[l,c]=_(!1),g=async()=>{if(!s()){if(!t.current){la({variant:"error",title:"打开失败",description:"请先连接平台服务"});return}d(!0);try{await Ea({sessionId:e.item.sessionId,serverUrl:t.current.http.url,navigate:r,ensureSessions:u=>{a.project.loadSessions(u)}})==="missing"&&c(!0)}catch(b){la({variant:"error",title:"打开失败",description:b instanceof Error?b.message:"案例打开失败"})}finally{d(!1)}}},v=async b=>{const u=t.current;if(!u)throw new Error("恢复失败");const h=await Ai(u.http.url,b);c(!1),await Ea({sessionId:h.sessionId,serverUrl:u.http.url,navigate:r,ensureSessions:f=>{a.project.loadSessions(f)}})};return[(()=>{var b=xu(),u=b.firstChild,h=u.nextSibling,f=h.firstChild,w=f.nextSibling,C=w.nextSibling,p=h.nextSibling;return b.$$click=()=>void g(),i(u,()=>String(e.index+1).padStart(2,"0")),i(f,()=>e.item.tag),i(w,()=>e.item.title),i(C,()=>e.item.copy),i(p,()=>e.item.result),E(M=>{var N=s(),L=s();return N!==M.e&&(b.disabled=M.e=N),L!==M.t&&R(b,"aria-busy",M.t=L),M},{e:void 0,t:void 0}),b})(),n(y,{get when(){return l()},get children(){return n(ts,{get title(){return e.item.title},get sessionId(){return e.item.sessionId},onClose:()=>c(!1),onRestore:b=>v(b)})}})]}const Ih=[{title:"多类机构",copy:"支持科研院所、高校与产业实验室开展 AI4S 应用建设",image:"/assets/onescience/platform-users.png"},{title:"模型构建",copy:"支撑科学模型训练、参数扩展、仿真评估与复现实验",image:"/assets/onescience/model-building.png"},{title:"智能化科研",copy:"推动智能体与大模型在数据接入、任务规划、代码生成和结果分析中的高效利用",image:"/assets/onescience/research-scenario.png"},{title:"持续共建",copy:"联合领域团队扩展知识资产、Skill 原语和科研工作流",image:"/assets/onescience/partner-network.png"}],Fh=[["降幻觉","知识体系约束大模型语义","/assets/onescience/knowledge-archive.png"],["高稳定","Skills体系规范智能体执行边界","/assets/onescience/knowledge-flow.png"],["可沉淀","先验知识、后验知识构建知识体系","/assets/onescience/agent-orchestrator.png"],["降成本","Mcp/cli化降低调用消耗","/assets/onescience/reuse-loop.png"]],Th=[["科学模型研发构建","共建 AI4S 模型、训练流程、评测基准与复现实验资产。"],["国产模型生态建设","沉淀国产模型适配、推理服务、工程组件和应用示例。"],["数据组件技能共建","共同扩展科研数据、算子组件、Skill 原语与工作流模板。"],["贡献者支持","对社区贡献者提供算力资源、模型服务和协作支持。"]],Eh=["科学模型研发","国产模型生态","数据组件共建","Skill 原语","科研工作流","算力与模型服务"],Oh=[{title:"材料化学",copy:"分子模拟、晶体预测、反应计算",href:"https://www.scnet.cn/ui/aihub/models/easyscience2024/onescience-matchem-models",image:"/assets/onescience/workbench-materials-chemistry.png"},{title:"地球科学",copy:"气候模拟、地质分析、环境预测",href:"https://www.scnet.cn/ui/aihub/models/easyscience2024/OneScience-Earth-Model",image:"/assets/onescience/workbench-earth-science.png"},{title:"流体力学",copy:"CFD计算、湍流分析、多相流",href:"https://www.scnet.cn/ui/aihub/models/easyscience2024/OneScience-CFD-models",image:"/assets/onescience/workbench-fluid-dynamics.png"},{title:"生命科学",copy:"基因分析、蛋白预测、药物发现",href:"https://www.scnet.cn/ui/aihub/models/easyscience2024/OneScience-Bio-Al4S",image:"/assets/onescience/workbench-life-science.png"}],Nh=[{title:"模型库",href:et("onemodel"),page:"models",itemTitles:["FuXi","MACE","SimpleFold","Transolver-Airfoil-Design"]},{title:"数据集",href:et("onedata"),page:"datasets",itemTitles:["全球再分析","Nanotube","proteinmpnn","CFDBench数据集"]},{title:"应用库",href:et("hpc"),page:"apps",itemTitles:["SPECFEM3D","ABACUS","AutoDock-GPU","nekRS"]}];function Rh(e,t){return He[e].items.find(a=>a.title===t)}const Lh=[[7,74,1.15],[16,38,.78],[24,25,1],[32,53,1.28],[42,18,.8],[51,42,1.12],[61,21,.92],[70,47,1.24],[82,31,.82],[91,67,1.1]],Uh=[[8,74,21,-34],[16,39,26,-12],[24,27,20,36],[32,53,21,-40],[42,19,21,20],[51,43,21,-32],[61,22,22,36],[70,48,22,-31],[17,38,33,22],[28,56,43,-19],[43,18,38,12],[56,46,36,25]],Gh="https://github.com/onescience-ai/OneSkills",Bh=[{id:"resource.discovery",title:"资源理解与检索"},{id:"data.building",title:"数据与样本构建"},{id:"model.building",title:"模型构建与适配"},{id:"training",title:"训练与调参"},{id:"inference.evaluation",title:"推理评估与 Benchmark"},{id:"performance.optimization",title:"性能优化与工程化"},{id:"runtime.deployment",title:"运行环境与部署"},{id:"report.reproducibility",title:"科研报告与复现归档"}],In=new Set(["地球科学","生命科学","其它","其他","材料科学","材料化学","流体仿真","benchmarking","foundation-model","pretraining","weather","forecasting"]),Hh=new Set(["用户手册"]),qh=[$("life-pdb","PDB结构库","PDB:蛋白与复合物结构建模的核心公共结构库",["生命科学","protein","structure","mmcif","pdb"],"RCSB PDB / wwPDB","mmCIF/PDB","mmCIF/PDB","https://www.rcsb.org/downloads/"),$("life-uniref90","UniRef90","UniRef90:蛋白同源聚类序列库,常用于 MSA 搜索",["生命科学","protein","sequence","msa"],"UniProt","FASTA","FASTA","https://ftp.uniprot.org/pub/databases/uniprot/uniref/uniref90/"),$("life-uniprot","UniProt","UniProt:通用蛋白知识库,支持多聚体与配对信息构建",["生命科学","protein","sequence","annotation"],"UniProt","FASTA","FASTA","https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/"),$("life-bfd","BFD","BFD:AlphaFold 系列常用的大规模蛋白序列数据库",["生命科学","protein","msa","sequence"],"MMseqs/Soding Lab","FASTA","FASTA","https://bfd.mmseqs.com/"),$("life-mgnify","MGnify","MGnify:宏基因组蛋白序列资源,常用于 MSA 检索",["生命科学","metagenomics","protein","msa"],"EMBL-EBI","FASTA","FASTA","https://ftp.ebi.ac.uk/pub/databases/metagenomics/peptide_database/2022_05/"),$("life-afdb-swissprot","AFDB-SP","AFDB SwissProt:AlphaFold DB 的 SwissProt 蒸馏结构子集",["生命科学","protein","structure","swissprot"],"AlphaFold DB / EMBL-EBI","mmCIF/CSV","mmCIF/CSV","https://ml-site.cdn-apple.com/models/simplefold/swissprot_list.csv"),$("life-afesm","AFESM","AFESM:用于折叠训练的大规模蒸馏蛋白结构集合",["生命科学","protein","structure","simplefold"],"Foldseek / Apple","mmCIF/CSV","mmCIF/CSV","https://ml-site.cdn-apple.com/models/simplefold/afesm_list.csv"),$("life-afesme","AFESM-E","AFESM-E:AFESM 的扩展聚类版本,用于大规模折叠训练",["生命科学","protein","structure","clustering"],"Foldseek / Apple","JSON/mmCIF","JSON/mmCIF","https://ml-site.cdn-apple.com/models/simplefold/afesme_dict.json"),$("life-opengenome2","OpenGenome2","OpenGenome2:面向跨物种基因组建模的大规模序列数据集",["生命科学","genomics","dna","foundation_model"],"Arc Institute","FASTA/JSON","FASTA/JSON","https://modelscope.cn/datasets/arcinstitute/opengenome2"),$("life-casp14","CASP14","CASP14:蛋白质结构预测标准评测集,用于折叠基准测试",["生命科学","protein","structure","benchmark"],"CASP / Apple","mmCIF/ZIP","mmCIF/ZIP","https://ml-site.cdn-apple.com/models/simplefold/casp14_predictions.zip"),$("life-cameo22","CAMEO22","CAMEO22:持续更新型蛋白折叠评测基准的 2022 样本包",["生命科学","protein","structure","benchmark"],"CAMEO / Apple","mmCIF/ZIP","mmCIF/ZIP","https://ml-site.cdn-apple.com/models/simplefold/cameo22_predictions.zip"),$("life-apo","Apo","Apo:双态蛋白 Apo 任务数据,用于构象切换评估",["生命科学","protein","structure","benchmark"],"Apple SimpleFold","PDB/ZIP","PDB/ZIP","https://ml-site.cdn-apple.com/models/simplefold/apo_predictions.zip"),$("life-codnas","CoDNaS","CoDNaS:蛋白构象多样性数据,用于 fold-switch 评估",["生命科学","protein","structure","fold_switch"],"CoDNaS / Apple","PDB/ZIP","PDB/ZIP","https://ml-site.cdn-apple.com/models/simplefold/codnas_predictions.zip"),$("life-protenix-release-data","Protenix包","Protenix Release Data:Protenix 训练与推理所需的预处理结构数据包",["生命科学","protein","structure","ligand"],"ByteDance AML AI4Science","tar.gz/mmCIF","tar.gz/mmCIF","https://af3-dev.tos-cn-beijing.volces.com/release_data.tar.gz"),$("life-hg38-mm10-reference","hg38/mm10","hg38 / mm10 Reference Genome:AlphaGenome 推理与微调使用的人类和小鼠参考基因组",["生命科学","genomics","dna","reference_genome"],"Genome reference providers","FASTA/FAI","FASTA/FAI","https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphagenome/README.md"),$("life-ur50d-2021-04","UR50D","UR50/D 2021_04:ESM README 中使用的 UniRef 派生蛋白预训练语料划分",["生命科学","protein","sequence","language_model"],"Meta AI / UniProt","FASTA","FASTA","https://github.com/facebookresearch/esm"),$("life-esm-structural-split","ESM结构集","ESMStructuralSplitDataset:ESM 系列用于结构预测评测与教程演示的结构划分数据集",["生命科学","protein","structure","esm"],"Meta AI","Structure splits","Structure splits","https://github.com/facebookresearch/esm"),$("life-esm-metagenomic-atlas","ESM Atlas","ESM Metagenomic Atlas:包含数亿条预测蛋白结构与嵌入的宏基因组结构图谱",["生命科学","protein","metagenomics","atlas"],"Meta AI","PDB/embeddings","PDB/API","https://esmatlas.com/"),$("life-tahoe-100m","Tahoe-100M","Tahoe-100M:1 亿细胞规模单细胞扰动数据集,用于虚拟细胞建模",["生命科学","single_cell","perturbation","transcriptomics"],"Tahoe / Arc Institute","h5ad/AnnData","h5ad/AnnData","https://huggingface.co/datasets/tahoebio/Tahoe-100M"),$("life-scbasecount","scBaseCount","scBaseCount:Arc 统一处理的超大规模单细胞 RNA 测序基础数据仓",["生命科学","single_cell","transcriptomics","atlas"],"Arc Institute","h5ad/AnnData","h5ad/AnnData","https://arcinstitute.org/news/news/arc-virtual-cell-atlas-launch"),$("life-replogle-nadig-perturbseq","Replogle集","Replogle-Nadig Perturb-seq:STATE 常用的单细胞基因扰动响应训练与评测数据集合",["生命科学","single_cell","perturbation","crispr"],"Perturb-seq community","h5ad/count matrix","h5ad/count matrix","https://figshare.com/articles/dataset/_Mapping_information-rich_genotype-phenotype_landscapes_with_genome-scale_Perturb-seq_Replogle_et_al_2022_-_commonly_requested_supplemental_files/21632564"),$("life-virtual-cell-challenge-dataset","VCell挑战","Virtual Cell Challenge Dataset:Arc 虚拟细胞挑战赛的标准扰动响应评测数据集",["生命科学","virtual_cell","challenge","single_cell"],"Arc Institute","h5ad/splits","h5ad/splits","https://zenodo.org/records/17342530"),$("life-pdbbind","PDBbind","PDBbind:蛋白-配体复合物与实验亲和力标注的经典对接数据集",["生命科学","protein_ligand","docking","affinity"],"PDBbind","PDB/SDF","PDB/SDF","https://www.pdbbind-plus.org.cn/"),$("life-bindingmoad","BindingMOAD","BindingMOAD:高质量蛋白-配体复合物资源,DiffDock 等模型常用其处理版",["生命科学","protein_ligand","docking","structure"],"Binding MOAD","PDB/complexes","PDB/complexes","https://github.com/gcorso/DiffDock"),$("life-dockgen","DockGen","DockGen:检验对接模型跨口袋泛化能力的蛋白-配体基准",["生命科学","protein_ligand","docking","generalization"],"DiffDock-L authors","complexes","complexes","https://github.com/gcorso/DiffDock"),$("life-posebusters-benchmark","PoseBusters","PoseBusters Benchmark:面向生成与对接结果几何合理性的蛋白-配体评测集",["生命科学","protein_ligand","docking","geometry"],"PoseBusters authors","complexes","complexes","https://github.com/maabuu/posebusters"),$("life-crossdocked2020","CrossDocked","CrossDocked2020:结构基药物设计常用的 cross-docking 训练数据集",["生命科学","protein_ligand","cross_docking","sbdd"],"CrossDocked2020 authors","PDB/SDF/LMDB","PDB/SDF/LMDB","https://bits.csb.pitt.edu/files/crossdock2020/v1.1/"),$("life-casf-2016","CASF-2016","CASF-2016:蛋白-配体评分、排序与对接能力的经典评测基准",["生命科学","protein_ligand","scoring","ranking"],"PDBbind / CASF","benchmark set","benchmark set","https://www.pdbbind-plus.org.cn/"),$("life-dekois2-dude-docking-poses","DEKOIS+DUD","DEKOIS2.0 and DUD-E Docking Poses:用于虚拟筛选与 pose 排序研究的对接姿态集合",["生命科学","protein_ligand","virtual_screening","docking"],"GenScore benchmark","docking poses","docking poses","https://zenodo.org/records/6859325"),$("life-csar-nrc-hiq","CSAR HiQ","CSAR NRC-HiQ:面向高质量复合物评分与筛选的结构生物信息 benchmark",["生命科学","protein_ligand","scoring","affinity"],"CSAR","benchmark set","benchmark set","http://www.csardock.org/"),$("life-merck-fep-benchmark","Merck FEP","Merck FEP Benchmark:面向亲和力建模与排序的药化自由能评测基准",["生命科学","affinity","scoring","medicinal_chemistry"],"Merck","benchmark set","benchmark set","https://github.com/sc8668/GenScore"),$("life-pdbbind-crossdocked-core","PDBbind-XD","PDBbind-CrossDocked-Core:结合 PDBbind 与 cross-docking 场景的核心评测集",["生命科学","protein_ligand","cross_docking","scoring"],"GenScore benchmark","benchmark set","benchmark set","https://zenodo.org/records/5525936"),$("life-mimic-cxr","MIMIC-CXR","MIMIC-CXR:大规模胸部 X 光影像与报告数据集,常用于医学多模态建模",["生命科学","xray","radiology","multimodal"],"PhysioNet / MIT","DICOM/reports","DICOM/reports","https://physionet.org/content/mimic-cxr/2.1.0/"),$("life-slake-vqa","SLAKE","SLAKE:医学图像问答数据集,用于视觉问答与多模态推理",["生命科学","medical_vqa","multimodal","image"],"PolyU","image/QA pairs","image/QA pairs","https://www.med-vqa.com/"),$("life-pad-ufes-20","PAD-UFES","PAD-UFES-20:皮肤病灶图像与临床信息数据集,适合皮肤科医学 AI",["生命科学","dermatology","image","classification"],"UFES","image/metadata","image/metadata","https://developers.google.com/health-ai-developer-foundations/medgemma/model-card"),$("life-tcga","TCGA","TCGA:癌症基因组图谱资源,支持多组学与病理任务",["生命科学","oncology","genomics","pathology"],"NCI / NHGRI","genomics/pathology","clinical data","https://portal.gdc.cancer.gov/"),$("life-camelyon","CAMELYON","CAMELYON:淋巴结病理切片转移检测标准数据集",["生命科学","pathology","histopathology","cancer"],"CAMELYON","whole-slide images","WSI","https://camelyon17.grand-challenge.org/"),$("life-pmc-oa","PMC-OA","PMC-OA:PubMed Central 开放子集,包含大量生物医学文图内容",["生命科学","biomedical_literature","multimodal","documents"],"NLM / NCBI","XML/PDF/images","XML/PDF","https://catalog.data.gov/dataset/pubmed-central-open-access-subset")],He={primitives:jr,datasets:{eyebrow:"OneData",title:"公开数据集",count:"共 150 个高质量数据集:地球科学 50,材料化学 20,生命科学 47,流体仿真 33",search:"搜索数据集名称、描述或标签...",filters:["全部","地球科学","材料化学","生命科学","流体仿真","其它"],items:[$("earth-era5","全球再分析","ERA5:ECMWF 全球大气陆面再分析数据集",["地球科学","weather","climate","reanalysis","global"],"ECMWF/C3S","GRIB/NetCDF","GRIB/NetCDF","https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels"),$("earth-cmems","海洋多层数据","Copernicus Marine Service Global Ocean Physics:Copernicus 全球海洋多层物理再分析数据集",["地球科学","ocean","reanalysis","forecast","global"],"CMEMS","NetCDF/Zarr","NetCDF/Zarr","https://data.marine.copernicus.eu/product-detail/GLOBAL_MULTIYEAR_PHY_001_030"),$("earth-merra2","NASA再分析","MERRA-2:NASA 全球大气再分析数据集",["地球科学","weather","climate","reanalysis","global"],"NASA","NetCDF","NetCDF","https://gmao.gsfc.nasa.gov/gmao-products/merra-2/data-access_merra-2/"),$("earth-jra3q","长期再分析","JRA-3Q:JMA 全球长期大气再分析数据集",["地球科学","weather","climate","reanalysis","global"],"JMA","GRIB","GRIB","https://search.diasjp.net/en/dataset/JRA3Q"),$("earth-jra55","日系再分析","JRA-55:JMA 55 年全球大气再分析数据集",["地球科学","weather","climate","reanalysis","global"],"JMA","GRIB","GRIB","https://search.diasjp.net/en/dataset/JRA55"),$("earth-ncep-ncar-r1","经典再分析","NCEP/NCAR Reanalysis 1:NOAA 经典全球大气再分析数据集",["地球科学","weather","climate","reanalysis","global"],"NOAA PSL","NetCDF","NetCDF","https://psl.noaa.gov/data/gridded/data.ncep.reanalysis.html"),$("earth-gfs","全球预报","Global Forecast System:NOAA 全球业务天气预报数据集",["地球科学","weather","forecast","global"],"NOAA","GRIB2","GRIB2","https://registry.opendata.aws/noaa-gfs-bdp-pds/"),$("earth-gefs","集合预报","Global Ensemble Forecast System:NOAA 全球集合天气预报数据集",["地球科学","weather","forecast","global"],"NOAA","GRIB2","GRIB2","https://registry.opendata.aws/noaa-gefs/"),$("earth-hrrr","区域高分预报","High-Resolution Rapid Refresh:NOAA 美国区域高分辨率预报数据集",["地球科学","weather","forecast","regional"],"NOAA","GRIB2","GRIB2","https://registry.opendata.aws/noaa-hrrr-pds/"),$("earth-ecmwf-open-data","欧洲开放预报","ECMWF Open Data:ECMWF 开放业务预报产品子集",["地球科学","weather","forecast","global"],"ECMWF","GRIB2","GRIB2","https://data.ecmwf.int/forecasts/"),$("earth-cmip6","气候情景","Coupled Model Intercomparison Project Phase 6:全球气候模式比较计划数据集",["地球科学","climate","projection","global"],"WCRP","NetCDF","NetCDF","https://esgf-node.llnl.gov/search/cmip6/"),$("earth-s2s","次季节预报","Subseasonal-to-Seasonal Prediction Database:多中心次季节到季节预测数据集",["地球科学","climate","forecast","global"],"WWRP/WCRP","GRIB","GRIB","https://apps.ecmwf.int/datasets/data/s2s/"),$("earth-cfsv2","季节预测","Climate Forecast System Version 2:NOAA 海气陆耦合季节预测数据集",["地球科学","climate","forecast","global"],"NOAA","GRIB2","GRIB2","https://nomads.ncep.noaa.gov/pub/data/nccf/com/cfs/prod/"),$("earth-oisst","海表温度","Optimum Interpolation Sea Surface Temperature:NOAA 全球海表温度融合数据集",["地球科学","ocean","observation","satellite","global"],"NOAA","NetCDF","NetCDF","https://www.ncei.noaa.gov/data/sea-surface-temperature-optimum-interpolation/"),$("earth-argo-gdac","海洋剖面","Argo GDAC:全球 Argo 海洋剖面观测数据集",["地球科学","ocean","observation","global"],"Argo","NetCDF","NetCDF","https://data-argo.ifremer.fr/"),$("earth-wod","海洋观测库","World Ocean Database:NOAA 全球海洋原位观测数据库",["地球科学","ocean","observation","global"],"NOAA","NetCDF","NetCDF","https://www.ncei.noaa.gov/products/world-ocean-database"),$("earth-hycom-gofs","海洋预报","HYCOM Global Ocean Forecast System:HYCOM 全球海洋分析与预报数据集",["地球科学","ocean","forecast","reanalysis","global"],"HYCOM","NetCDF","NetCDF","https://tds.hycom.org/thredds/catalog.html"),$("earth-gpm-imerg","卫星降水","Integrated Multi-satellitE Retrievals for GPM:NASA 全球多卫星降水反演数据集",["地球科学","precipitation","satellite","observation","global"],"NASA/JAXA","HDF5/NetCDF","HDF5/NetCDF","https://disc.gsfc.nasa.gov/datasets?keywords=IMERG"),$("earth-chirps","陆地降水","Climate Hazards InfraRed Precipitation with Station data:长时序全球陆地降水融合数据集",["地球科学","precipitation","observation","climate","global"],"CHC","GeoTIFF/NetCDF","GeoTIFF/NetCDF","https://data.chc.ucsb.edu/products/CHIRPS/v3.0/"),$("earth-gldas","陆面同化","Global Land Data Assimilation System:NASA 全球陆面同化数据集",["地球科学","land","hydrology","reanalysis","global"],"NASA","NetCDF/GeoTIFF/KMZ","NetCDF/GeoTIFF/KMZ","https://disc.gsfc.nasa.gov/datasets?keywords=GLDAS"),$("earth-smap","土壤湿度","Soil Moisture Active Passive:NASA 全球土壤湿度卫星观测数据集",["地球科学","land","hydrology","satellite","observation"],"NASA/JPL","HDF5/NetCDF","HDF5/NetCDF","https://podaac.jpl.nasa.gov/SMAP"),$("earth-grace-fo","陆水储量","GRACE/GRACE-FO Mascon:全球陆水储量与质量变化数据集",["地球科学","hydrology","satellite","observation","global"],"NASA/JPL","NetCDF","NetCDF","https://podaac.jpl.nasa.gov/GRACE-FO"),$("earth-nexrad-level2","天气雷达","NEXRAD Level II:NOAA 美国天气雷达基数据集",["地球科学","weather","radar","observation","regional"],"NOAA","Archive-II","Archive-II","https://github.com/awslabs/open-data-docs/tree/main/docs/noaa/noaa-nexrad"),$("earth-mrms","雷达融合","Multi-Radar Multi-Sensor System:NOAA 多雷达多传感器融合数据集",["地球科学","precipitation","radar","observation","regional"],"NOAA","GRIB2","GRIB2","https://mrms.ncep.noaa.gov/data/"),$("earth-goes-abi","静止卫星","GOES-R Advanced Baseline Imager:NOAA 静止气象卫星多通道观测数据集",["地球科学","weather","satellite","remote-sensing","observation"],"NOAA/NASA","NetCDF","NetCDF","https://registry.opendata.aws/noaa-goes/"),$("earth-himawari-ahi","亚太卫星","Himawari Advanced Himawari Imager:JMA 亚太静止气象卫星观测数据集",["地球科学","weather","satellite","remote-sensing","observation"],"JMA","HSD/NetCDF","HSD/NetCDF","https://www.eorc.jaxa.jp/ptree/"),$("earth-modis","MODIS 多光谱遥感","Moderate Resolution Imaging Spectroradiometer:NASA 多光谱地球观测遥感数据集",["地球科学","remote-sensing","satellite","land","ocean"],"NASA","HDF/NetCDF","HDF/NetCDF","https://search.earthdata.nasa.gov/search"),$("earth-landsat-c2","陆表遥感","Landsat Collection 2:USGS Landsat 全球陆表遥感数据集",["地球科学","remote-sensing","satellite","land","observation"],"USGS/NASA","GeoTIFF/COG","GeoTIFF/COG","https://www.usgs.gov/data/landsat-89-long-term-acquisition-plan-earths-continental-landmasses-and-near-shore-coastal"),$("earth-noaa-20cr","百年再分析","NOAA-CIRES-DOE 20th Century Reanalysis:NOAA 长时段全球大气再分析数据集",["地球科学","climate","reanalysis","global"],"NOAA","NetCDF","NetCDF","https://psl.noaa.gov/data/gridded/reanalysis/"),$("earth-cerra","欧洲区域再分析","Copernicus European Regional Reanalysis:Copernicus 欧洲高分辨率区域再分析数据集",["地球科学","weather","reanalysis","regional"],"C3S","GRIB/NetCDF","GRIB/NetCDF","https://cds.climate.copernicus.eu/datasets/reanalysis-cerra-single-levels"),$("earth-cams-global-atmosphere","大气成分预报","CAMS Global Atmospheric Composition Forecasts:Copernicus 全球气溶胶与化学成分预报数据集",["地球科学","atmosphere","forecast","air-quality","global"],"ECMWF/CAMS","GRIB/NetCDF","GRIB/NetCDF","https://ads.atmosphere.copernicus.eu/datasets/cams-global-atmospheric-composition-forecasts"),$("earth-cfsr","耦合再分析","Climate Forecast System Reanalysis:NOAA 海气陆冰耦合气候再分析数据集",["地球科学","climate","reanalysis","forecast","global"],"NOAA","GRIB2","GRIB2","https://www.ncei.noaa.gov/products/weather-climate-models/climate-forecast-system"),$("earth-nam","北美中尺度","North American Mesoscale Forecast System:NOAA 北美中尺度业务天气预报数据集",["地球科学","weather","forecast","regional"],"NOAA","GRIB2","GRIB2","https://www.nco.ncep.noaa.gov/pmb/products/nam/"),$("earth-rap","快速更新预报","Rapid Refresh:NOAA 北美逐小时快速更新分析预报数据集",["地球科学","weather","forecast","regional"],"NOAA","GRIB2","GRIB2","https://www.ncei.noaa.gov/products/weather-climate-models/rapid-refresh-update"),$("earth-mur-sst","高分海温","Multi-scale Ultra-high Resolution Sea Surface Temperature:NASA JPL 全球高分辨率海表温度数据集",["地球科学","ocean","satellite","observation","global"],"NASA/JPL","NetCDF","NetCDF","https://podaac.jpl.nasa.gov/dataset/MUR-JPL-L4-GLOB-v4.1"),$("earth-esa-sst-cci","海温气候记录","ESA Sea Surface Temperature CCI:ESA CCI 长时序海表温度气候数据记录",["地球科学","ocean","satellite","climate","global"],"ESA CCI","NetCDF","NetCDF","https://climate.esa.int/en/projects/sea-surface-temperature/data/"),$("earth-hadisst","历史海冰海温","Hadley Centre Sea Ice and Sea Surface Temperature:Met Office 全球海冰与海表温度观测数据集",["地球科学","ocean","climate","observation","global"],"Met Office","NetCDF","NetCDF","https://www.metoffice.gov.uk/hadobs/hadisst/data/download.html"),$("earth-sea-ice-cdr","海冰浓度","NOAA/NSIDC Passive Microwave Sea Ice Concentration CDR:NOAA NSIDC 被动微波海冰浓度气候记录",["地球科学","cryosphere","satellite","climate","global"],"NOAA/NSIDC","NetCDF","NetCDF","https://nsidc.org/data/g02202"),$("earth-ghcn-daily","全球站点日值","Global Historical Climatology Network Daily:NOAA 全球气象站逐日观测数据集",["地球科学","climate","observation","station","global"],"NOAA","CSV/TXT","CSV/TXT","https://www.ncei.noaa.gov/pub/data/ghcn/daily/"),$("earth-hadisd","全球站点小时值","HadISD:Met Office 全球质量控制逐小时站点观测数据集",["地球科学","climate","observation","station","global"],"Met Office","NetCDF","NetCDF","https://hadobs.metoffice.gov.uk/hadisd/data/download.html"),$("earth-gistemp","全球温度指数","GISS Surface Temperature Analysis:NASA 全球地表温度异常分析数据集",["地球科学","climate","observation","global"],"NASA","CSV/NetCDF","CSV/NetCDF","https://data.giss.nasa.gov/gistemp/"),$("earth-berkeley-earth","地表温度","Berkeley Earth Surface Temperature:Berkeley Earth 全球地表温度数据集",["地球科学","climate","observation","global"],"Berkeley Earth","TXT/NetCDF","TXT/NetCDF","https://berkeleyearth.org/data/"),$("earth-cmorph-cdr","卫星降水CDR","CMORPH Climate Data Record:NOAA 全球高分辨率卫星降水气候记录",["地球科学","precipitation","satellite","climate","global"],"NOAA","NetCDF","NetCDF","https://www.ncei.noaa.gov/products/climate-data-records/precipitation-cmorph"),$("earth-gsmap","全球降水图","Global Satellite Mapping of Precipitation:JAXA 全球卫星降水估计数据集",["地球科学","precipitation","satellite","observation","global"],"JAXA","NetCDF/Binary","NetCDF/Binary","https://sharaku.eorc.jaxa.jp/GSMaP/"),$("earth-persiann-cdr","神经网络降水","PERSIANN-CDR:CHRS NOAA 全球卫星降水气候记录数据集",["地球科学","precipitation","satellite","climate","global"],"CHRS/NOAA","NetCDF","NetCDF","https://chrsdata.eng.uci.edu/"),$("earth-cpc-unified-precip","雨量站降水","CPC Global Unified Gauge-Based Analysis of Daily Precipitation:NOAA CPC 全球逐日雨量站融合降水数据集",["地球科学","precipitation","observation","station","global"],"NOAA","NetCDF","NetCDF","https://psl.noaa.gov/data/gridded/data.cpc.globalprecip.html"),$("earth-sentinel1","雷达遥感","Sentinel-1:Copernicus C 波段合成孔径雷达观测数据集",["地球科学","remote-sensing","satellite","radar","observation"],"ESA","SAFE/GeoTIFF","SAFE/GeoTIFF","https://browser.dataspace.copernicus.eu/"),$("earth-sentinel2","Sentinel-2 多光谱遥感","Sentinel-2:Copernicus 高分辨率多光谱陆表观测数据集",["地球科学","remote-sensing","satellite","land","observation"],"ESA","SAFE/JP2","SAFE/JP2","https://browser.dataspace.copernicus.eu/"),$("earth-sentinel3","海陆卫星","Sentinel-3:Copernicus 海洋陆地温度色度高度观测数据集",["地球科学","remote-sensing","satellite","ocean","land"],"ESA","NetCDF/SEN3","NetCDF/SEN3","https://browser.dataspace.copernicus.eu/"),$("earth-sentinel5p","大气污染卫星","Sentinel-5P:Copernicus TROPOMI 大气成分遥感数据集",["地球科学","atmosphere","satellite","remote-sensing","air-quality"],"ESA","NetCDF","NetCDF","https://browser.dataspace.copernicus.eu/"),...qh,$("fluid-pdebench","PDEBench基准","涵盖广泛偏微分方程的科学机器学习基准集",["流体仿真","pde","sciml","benchmark"],"PDEBench Team","PDEBench","HDF5","https://darus.uni-stuttgart.de/dataset.xhtml?persistentId=doi:10.18419/darus-2986"),$("fluid-cfdbench","CFDBench数据集","CFDBench:包含多样化边界条件与几何形状的 CFD 基准",["流体仿真","cfd","incompressible-flow","surrogate-modeling"],"Tsinghua University","CFDBench","Numpy (.npy)","https://huggingface.co/datasets/chen-yingfa/CFDBench"),$("fluid-rpb-cno","RPB 数据集","面向神经算子与科学机器学习的二维 PDE 基准数据集,涵盖 Poisson、Wave、Navier-Stokes、Darcy、Transport 等多类方程",["流体仿真","cfd","representative-pde-benchmarks","neural-operators"],"ETH Zurich / CAMLab 等研究机构","h5","h5"),$("fluid-fno","FNO 数据集","一组通过高精度数值求解器生成的参数化偏微分方程模拟数据,涵盖 Burgers、Darcy Flow 和 Navier-Stokes 等典型任务",["流体仿真","cfd","neural-operator","pde"],"加利福尼亚理工学院 (California Institute of Technology)","mat","mat"),$("fluid-pointnet-cfd","PointNetCFD 数据集","二维非结构网格 CFD 数据集,用于基于点云直接预测不规则几何绕流场中的速度与压力分布",["流体仿真","cfd","point-cloud","unstructured-mesh"],"Stanford University","npy","npy"),$("fluid-beno","BENO数据集","BENO:求解二维 Poisson/椭圆 PDE 边值问题的仿真数据集",["流体仿真","cfd","2d","poisson","elliptic-pde"],"OneScience","Numpy (.npy)","Numpy (.npy)"),$("fluid-deepcfd","DeepCFD基准","DeepCFD:二维稳态层流 CFD 数据集",["流体仿真","cfd","2d","steady-laminar-flow","navier-stokes"],"OneScience","Python Pickle (.pkl)","Python Pickle (.pkl)"),$("fluid-pdenneval","PDENNEval数据集","PDENNEval:多物理场 PDE 基准数据集,覆盖流体、材料、金融和电磁等领域的 19 个 PDE 问题",["流体仿真","pde-benchmark","sciml","multi-physics"],"OneScience","HDF5 (.h5)","HDF5 (.h5)"),$("fluid-pdearena","PDEArena代理","现代且可扩展的PDE代理模型分布式基准",["流体仿真","fluid-mechanics","electrodynamics","distributed-training"],"Microsoft Research","PDEArena","HDF5","https://huggingface.co/pdearena/datasets"),$("fluid-blastnet","BLASTNet库","高保真可压缩反应流与湍流3D超分数据集",["流体仿真","combustion","turbulence","3d-super-resolution"],"Stanford University","BLASTNet","JSON / Binary","https://blastnet.github.io/datasets"),$("fluid-jhtdb","霍普金斯湍流库","提供TB级各向同性湍流及通道流DNS查询",["流体仿真","turbulence","dns","virtual-sensors"],"Johns Hopkins University","Johns Hopkins Turbulence Databases","Web-service Queries","https://turbulence.idies.jhu.edu/home"),$("fluid-deepmind-l2s","DeepMind粒子数据集","DeepMind Learning-to-Simulate:用于 GNN 学习复杂粒子物理与流体动力学",["流体仿真","particle-simulation","gnn","lagrangian"],"DeepMind","DeepMind Learning-to-Simulate","TFRecord / Pickle","https://github.com/deepmind/deepmind-research/tree/master/learning_to_simulate"),$("fluid-deepmind-cylinder-flow","DeepMind圆柱绕流数据集","DeepMind 圆柱绕流涡脱落网格时序数据集,适用于 MeshGraphNet 等 GNN 训练",["流体仿真","cylinder-flow","gnn","deepmind","vortex-shedding"],"OneScience","TFRecord","TFRecord"),$("fluid-meshgraphnets","MeshGraph","基于网格的流体与结构物理模拟GNN数据集",["流体仿真","mesh-simulation","cfd","gnn"],"DeepMind","MeshGraphNets Datasets","TFRecord","https://github.com/wwMark/meshgraphnets/blob/main/meshgraphnets/download_dataset.sh"),$("fluid-fda-blood-flow","FDA血液流体力学","医疗器械中血液流动的非牛顿流体力学基准",["流体仿真","hemodynamics","non-newtonian","biomedical"],"FDA (CDRH)","FDA CFD Blood Flow Benchmark","CFD Simulation","https://github.com/OSEL-DAM/CFD-and-Blood-Damage-Benchmarks"),$("fluid-nasa-tmr","NASA湍流验证","广泛使用的RANS湍流模型验证与网格收敛库",["流体仿真","rans","turbulence","verification"],"NASA & AIAA TMBWG","NASA Turbulence Modeling Resource","Data (.dat) / Plot3D","https://github.com/TMBWG/turbmodels"),$("fluid-spdebench","SPDEBench","涵盖常规与奇异随机偏微分方程的统一数据",["流体仿真","spde","stochastic","mathematical-physics"],"UCL Rough Path and Machine Learning Group","SPDEBench","Parquet","https://huggingface.co/datasets/SSPDEBench/Reuglar_and_Singular_SPDEBench"),$("fluid-realpdebench","RealPDE基准","整合真实物理测量与匹配数值仿真的基准集",["流体仿真","sim-to-real","real-world-data","fluid-structure"],"AI4Science-WestlakeU","RealPDEBench","HDF5","https://huggingface.co/datasets/AI4Science-WestlakeU/RealPDEBench"),$("fluid-drivaernet","汽车气动CFD","超8150个高保真3D汽车空气动力学仿真集",["流体仿真","cfd","automotive","3d-geometry"],"Mohamed Elrefaie et al.","DrivAerNet++","3D Meshes / CFD arrays","https://dataverse.harvard.edu/dataverse/DrivAerNet"),$("fluid-drivaerml","DrivAerML","首个包含500个参数化汽车变体的高保真CFD外部空气动力学大型数据集",["流体仿真","cfd","automotive","high-fidelity"],"Ashton et al.","DrivAerML","VTU / VTP / CSV","https://huggingface.co/datasets/neashton/drivaerml"),$("fluid-eagle-dataset","Eagle数据集","用于学习非恒定湍流动力学的大规模数据集",["流体仿真","turbulent-flow","mesh-transformers","non-steady"],"INSA Lyon / Naver Labs","EAGLE","Mesh / Graph","https://dataset-dl.liris.cnrs.fr/eagle_dataset/"),$("fluid-shapenet-car","Shape-Net Car","Shape-Net Car:基于 ShapeNet 汽车模型的 3D 空气动力学流场",["流体仿真","car-aerodynamics","3d-geometry","cfd"],"IST Austria / Autodesk","ShapeNet-Car CFD","Zip / Mesh","http://www.nobuyuki-umetani.com/publication/mlcfd_data.zip"),$("fluid-airfrans","AirfRANS","二维不可压缩稳态RANS翼型空气动力学数据集",["流体仿真","airfoil","rans","incompressible-flow"],"Sorbonne Universite / Extrality","AirfRANS","OpenFOAM / PyVista","https://data.isir.upmc.fr/extrality/NeurIPS_2022/Dataset.zip"),$("fluid-geo-fno","Geo-FNO基准","评估不规则几何和拓扑变化下的偏微分方程算子",["流体仿真","irregular-geometries","fno","mesh-deformation"],"Caltech (Zongyi Li et al.)","Geo-FNO Datasets","NumPy / Mat","https://drive.google.com/drive/folders/1YBuaoTdOSr_qzaow-G-iwvbUI7fiUzu8"),$("fluid-bubbleml","BubbleML","包含沸腾过程的多相多物理场流体动力学机器学习数据",["流体仿真","boiling","multiphase-flow","thermodynamics"],"HPCForge","BubbleML","HDF5","https://doi.org/10.5281/zenodo.8039786"),$("fluid-rae2822-airfoil","RAE2822翼型","RAE2822跨音速翼型的大规模气动高保真模拟",["流体仿真","transonic-flow","airfoil","cvae"],"Giovanni Catalani et al.","RAE2822 Airfoil Dataset","NumPy (.npy)","https://zenodo.org/records/12700680"),$("fluid-cfdoneval","CFDNNEval模型评估集","22个流体基准问题的综合评估数据集",["流体仿真","neural-operator","benchmark","darcy-flow","multiphase"],"中山大学、IJCAI","CFDNNEval","HDF5 / NPZ","https://drive.google.com/drive/folders/1Ao9vfWjy1VTwTa-9N1axZlXlz1s6CjPW"),$("fluid-kolmogorov-flow-dns","Kolmogorov流DNS","三维Kolmogorov流直接数值模拟数据集",["流体仿真","dns","kolmogorov-flow","nek5000","ml-ready"],"Nature Scientific Data","Kolmogorov-Flow-DNS","VTK / Python","https://zenodo.org/records/16733422"),$("fluid-parameterized-u-bend","U型管道流数据集","万组U型管流动与换热CFD仿真",["流体仿真","heat-transfer","shape-optimization","openfoam","design-parameters"],"卡塞尔大学","Parameterized-U-Bend","CSV / OpenFOAM","https://daks.uni-kassel.de/handle/123456789/50"),$("fluid-blendednet","BlendedNet","包含999个翼身融合飞行器(BWB)的高保真气动数据集",["流体仿真","cfd","blended-wing-body","surrogate-modeling"],"MIT DeCoDE Lab & Lincoln Lab","BlendedNet","RANS CFD / Point Cloud","https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/VJT9EP"),$("fluid-naca0012-compressible","NACA0012可压缩流","NACA0012翼型可压缩RANS数据集",["流体仿真","compressible-flow","naca0012","su2","graph-neural-network"],"Mendeley Data / JCP","NACA0012-Compressible","CSV / NPZ","https://data.mendeley.com/datasets/g3x4phfr3r/2"),$("material-mptrj","MPtrj","Materials Project DFT 弛豫轨迹数据集",["材料化学","dft","relaxation-trajectory","inorganic","mlff"],"LBNL / CHGNet team","MPtrj","extxyz / json","https://figshare.com/articles/dataset/Materials_Project_Trjectory_MPtrj_Dataset/23713842"),$("material-salex","sAlex","FAIR 重打包的 Alexandria 子集,PBE 参考",["材料化学","dft","inorganic","alexandria","mlff"],"Alexandria DB / Schmidt et al.","sAlex","aselmdb","https://huggingface.co/datasets/facebook/OMAT24"),$("material-omat24","OMat24","Meta FAIR 无机材料大规模 PBE 数据集",["材料化学","dft","inorganic","foundation-data","fair-chem"],"Meta FAIR","OMat24","aselmdb","https://huggingface.co/datasets/facebook/OMAT24"),$("material-omol25","OMol25","Meta FAIR 大规模有机分子 ωB97M-V 数据集",["材料化学","dft","molecular","foundation-data","fair-chem"],"Meta FAIR","OMol25","aselmdb","https://huggingface.co/datasets/facebook/OMol25"),$("material-oc20","OC20","Open Catalyst 2020,催化吸附构型数据集",["材料化学","dft","catalysis","adsorption","fair-chem"],"Meta FAIR / CMU","OC20","lmdb / aselmdb","https://github.com/facebookresearch/fairchem/blob/main/docs/catalysts/datasets/oc20.md"),$("material-alexandria","Alexandria","高通量无机晶体 DFT 数据库",["材料化学","dft","inorganic","high-throughput","crystal"],"Schmidt et al. / RUB ICAMS","Alexandria","json / cif","https://alexandria.icams.rub.de/data/pbe/"),$("material-oc22","OC22","Open Catalyst 2022,氧化物催化剂数据集",["材料化学","dft","catalysis","oxide","fair-chem"],"Meta FAIR / CMU","OC22","lmdb / aselmdb","https://github.com/facebookresearch/fairchem/blob/main/docs/catalysts/datasets/oc22.md"),$("material-md22","MD22","大分子有机体系 MD 轨迹基准数据集",["材料化学","md","molecular","benchmark","mlff"],"sGDML team / Chmiela et al.","MD22","npz / xyz","http://www.quantum-machine.org/gdml/data/"),$("material-deepmd-water-demo","DeePMD水","DeePMD-kit 官方水分子训练示例数据",["材料化学","mlff","water","demo","deepmd"],"DeepModeling","DeePMD water","deepmd-npy","https://github.com/deepmodeling/deepmd-kit/tree/master/examples/water"),$("material-mace-example","MACE示例","MACE 官方 tutorial 训练示例数据",["材料化学","mlff","mace","demo","tutorial"],"ACEsuit / MACE team","MACE example","extxyz","https://github.com/ACEsuit/mace/tree/main/tests"),$("material-matpl-example","MatPL示例","MatPL NEP 训练示例 (AuAg/Cu/HfO2/LiSiC)",["材料化学","mlff","nep","demo","matpl"],"LonxunQuantum","MatPL example","extxyz","https://github.com/LonxunQuantum/MatPL"),$("material-ms-nanotube","Nanotube","OneScience 魔搭 Nanotube 材料机器学习势训练数据集",["材料化学","mlff","modelscope","nanotube"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/Nanotube"),$("material-ms-lisic","LiSiC","OneScience 魔搭 LiSiC 材料机器学习势训练数据集",["材料化学","mlff","modelscope","lisic"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/LiSiC"),$("material-ms-liquid-water","Liquid_water","OneScience 魔搭 Liquid_water 分子动力学数据集",["材料化学","md","modelscope","water"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/Liquid_water"),$("material-ms-hfo2","HfO2","OneScience 魔搭 HfO2 材料机器学习势训练数据集",["材料化学","mlff","modelscope","hfo2"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/HfO2"),$("material-ms-dmc","DMC","OneScience 魔搭 DMC 分子数据集",["材料化学","md","modelscope","dmc"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/DMC"),$("material-ms-cu","Cu","OneScience 魔搭 Cu 材料机器学习势训练数据集",["材料化学","mlff","modelscope","cu"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/Cu"),$("material-ms-auag","AuAg","OneScience 魔搭 AuAg 合金材料机器学习势训练数据集",["材料化学","mlff","modelscope","auag"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/AuAg"),$("material-ms-ani1x","Ani1x","OneScience 魔搭 ANI-1x 分子势能数据集",["材料化学","mlff","modelscope","ani1x"],"OneScience","extxyz","extxyz","https://modelscope.cn/datasets/OneScience/Ani1x"),$("material-ms-pbe","pbe_pbesol_phonon","OneScience 魔搭 MatRIS 训练与评测数据集",["pbe","modelscope"],"MDR声子计算数据库","bz2","bz2"),$("fluid-ms-transolver-airfoil","Transolver-Airfoil-Design","OneScience 魔搭 Transolver 翼型设计 CFD 数据集",["流体仿真","cfd","modelscope","airfoil"],"OneScience","NumPy","NumPy","https://modelscope.cn/datasets/OneScience/Transolver-Airfoil-Design"),$("fluid-ms-transolver-car","Transolver-Car-Design","OneScience 魔搭 Transolver 汽车设计 CFD 数据集",["流体仿真","cfd","modelscope","car-design"],"OneScience","NumPy","NumPy","https://modelscope.cn/datasets/OneScience/Transolver-Car-Design"),$("life-ms-proteinmpnn","proteinmpnn","OneScience 魔搭 ProteinMPNN 训练与评测数据集",["生命科学","protein","modelscope","inverse_folding"],"OneScience","PDB","PDB","https://modelscope.cn/datasets/OneScience/proteinmpnn"),$("life-ms-medgemma","medgemma","OneScience 魔搭 MedGemma 医学多模态数据集",["生命科学","medical_ai","modelscope","multimodal"],"OneScience","image/text","image/text","https://modelscope.cn/datasets/OneScience/medgemma"),$("life-ms-mmseqsdb","mmseqsDB","OneScience 魔搭 mmseqsDB 蛋白序列搜索数据库",["生命科学","protein","modelscope","msa","sequence"],"OneScience","FASTA","FASTA","https://modelscope.cn/datasets/OneScience/mmseqsDB"),$("life-ms-alphagenome","AlphaGenome数据集","OneScience 魔搭 AlphaGenome 训练与评测数据集",["生命科学","genomics","alphagenome","modelscope"],"OneScience","FASTA/FAI/feather/TFRecord","FASTA/FAI/feather/TFRecord"),$("life-ms-evo2","EVO2数据集","OneScience 魔搭 EVO2 训练与评测数据集",["生命科学","genomics","evo2","modelscope"],"OneScience","FASTA","FASTA"),$("life-ms-la-proteina","La-Proteina数据集","OneScience 魔搭 La-Proteina 训练与评测数据集",["生命科学","protein","la-proteina","modelscope"],"OneScience","PDB","PDB"),$("life-ms-alphafold3","AlphaFold3数据集","OneScience 魔搭 AlphaFold3 训练与评测数据集",["生命科学","AlphaFold3","modelscope","protein"],"OneScience","JSON/FASTA/mmCIF/MMseqs DB/sharded FASTA","JSON/FASTA/mmCIF/MMseqs DB/sharded FASTA"),$("life-ms-protenix","Protenix数据集","OneScience 魔搭 Protenix 训练与评测数据集",["生命科学","Protenix","modelscope","protein"],"OneScience","json/cif","json/cif"),$("life-ms-esm2","ESM-2数据集","OneScience 魔搭 ESM-2 训练与评测数据集",["生命科学","ESM-2","modelscope","protein"],"OneScience","pt","pt")]},models:{eyebrow:"OneHub",title:"公开模型库",count:"共 135 个预训练模型:地球科学 59,材料化学 14,生命科学 19,流体仿真 43",search:"搜索模型名称、描述或标签...",filters:["全部","地球科学","材料化学","生命科学","流体仿真","其它"],items:[k("modelhub","GraphCast","Google DeepMind 中期全球天气预报模型",["地球科学","weather","forecasting","graph-model"],"weather","JAX"),k("modelhub-fourcastnet","FourCastNet","NVIDIA 全球高分辨率神经算子天气预报模型",["地球科学","weather","forecasting","neural-operator"],"weather","PyTorch"),k("modelhub-fourcastnet-v2","FourCastNet_v2","从v1的自适应傅里叶神经算子 (AFNO) 改为球面傅里叶神经算子 (SFNO)",["地球科学","weather","forecasting","neural-operator","sfno"],"weather","PyTorch"),k("modelhub-pangu-weather","Pangu-weather","Huawei 三维高分辨率全球天气预报模型",["地球科学","weather","forecasting","spatiotemporal"],"weather","PyTorch/ONNX"),k("modelhub-corrdiff","CorrDiff","NVIDIA 千米级天气生成式降尺度模型",["地球科学","weather","downscaling","generative"],"weather","PyTorch"),k("modelhub-fengwu","FengWu","OpenEarthLab 中期全球天气预报模型",["地球科学","weather","forecasting","spatiotemporal"],"weather","ONNX"),k("modelhub-fuxi","FuXi","级联机器学习全球十五天天气预报模型",["地球科学","weather","forecasting","spatiotemporal"],"weather","PyTorch"),k("modelhub-fuxi-v21","FuXi_v21","保持均方根误差 (RMSE) 等传统指标不下降的前提下,生成更清晰、细节更丰富的预报场",["地球科学","weather","forecasting","extreme-weather"],"weather","PyTorch"),k("modelhub-oneforecast","OneForecast","基于图神经网络 (GNN) 的全球-区域嵌套天气预报通用框架",["地球科学","weather","forecasting","graph-model","global-forecast"],"weather","PyTorch/ONNX"),k("modelhub-stormcast","StormCast","使用大尺度天气背景约束区域状态演变,并通过生成式扩散方法补充确定性预报难以刻画的细尺度结构",["地球科学","weather","forecasting","hrrr","regional","diffusion"],"weather","PyTorch/ONNX"),k("modelhub-globalsurgeml","GlobalSurgeML","基于气象和海洋环境变量,使用线性回归与随机森林模拟全球沿海每日最大风暴增水。",["地球科学","weather","storm-surge","random-forest","coastal-flooding"],"weather","PyTorch/scikit-learn"),k("modelhub-firecubenet","FireCubeNet","基于多源 FireCube 时空数据和 ConvLSTM,综合环境驱动因素预测次日野火危险。",["地球科学","weather","wildfire","firecube","convlstm"],"weather","PyTorch"),k("modelhub-wofs-stormcal","WoFS-StormCal","基于 WoFS 集合风暴轨迹特征,校准龙卷风、严重冰雹和严重大风的短时概率预报。",["地球科学","weather","severe-weather","wofs","probability-calibration"],"weather","PyTorch"),k("modelhub-climatebench","ClimateBench","使用 CNN-LSTM 学习排放与气候响应之间的关系,快速模拟不同情景下的全球气候变化。",["地球科学","climate","climate-projection","cnn-lstm"],"climate","PyTorch"),k("modelhub-causalmodelevaluation","CausalModelEvaluation","利用因果网络评价气候模型的过程表示能力,并约束未来全球降水变化。",["地球科学","climate","causal-discovery","pcmci"],"climate","PyTorch/scikit-learn"),k("modelhub-xihe","XiHe","全球高分辨率海洋涡旋预报模型",["地球科学","ocean","forecasting","spatiotemporal"],"ocean","ONNX"),k("modelhub-wenhai","WenHai","深度神经网络全球涡旋海洋预报模型",["地球科学","ocean","forecasting","spatiotemporal"],"ocean","PyTorch"),k("modelhub-gencast","GenCast","Google DeepMind 中期集合天气预报模型",["地球科学","weather","forecasting","probabilistic","generative"],"weather","JAX"),k("modelhub-weathernext-2","WeatherNext2","Google DeepMind 全球概率天气预报模型",["地球科学","weather","forecasting","probabilistic"],"weather","Google internal"),k("modelhub-artificial-intelligence-forecasting-system","Artificial Intelligence Forecasting System","ECMWF 业务化 AI 全球天气预报系统",["地球科学","weather","forecasting","graph-model"],"weather","PyTorch"),k("modelhub-aurora","AURORA","Microsoft 地球系统基础模型",["地球科学","weather","climate","foundation-model"],"earth-system","PyTorch"),k("modelhub-neuralgcm","NeuralGCM","Google 混合物理与机器学习大气环流模型",["地球科学","climate","forecasting","physics-informed"],"climate","JAX"),k("modelhub-prithvi-wxc","PrithviWxC","NASA IBM 天气气候基础模型",["地球科学","weather","climate","foundation-model"],"weather","PyTorch"),k("modelhub-climax","ClimaX","Microsoft 天气气候通用基础模型",["地球科学","weather","climate","foundation-model"],"climate","PyTorch"),k("modelhub-metnet-3","metnet-3","Google 短临与区域天气预报神经网络模型",["地球科学","weather","nowcasting","precipitation"],"weather","Google internal"),k("modelhub-nowcastnet","NowcastNet_Earth","极端降水临近预报生成模型",["地球科学","precipitation","nowcasting","generative"],"precipitation","PyTorch"),k("modelhub-deep-generative-model-of-rainfall","Deep-Generative-Model-of-Rain","DeepMind 雷达降水概率临近预报模型",["地球科学","precipitation","nowcasting","probabilistic","generative"],"precipitation","TensorFlow"),k("modelhub-earthformer","Earthformer","面向地球系统预测的时空 Transformer 模型",["地球科学","climate","forecasting","spatiotemporal"],"earth-system","PyTorch"),k("modelhub-spherical-fourier-neural-operator","Spherical-Fourier-Neural-Operators","面向球面网格天气气候建模的神经算子",["地球科学","weather","climate","neural-operator"],"weather","PyTorch"),k("modelhub-deep-learning-weather-prediction","deep-learning-weather-prediction","早期全球数据驱动天气预报模型",["地球科学","weather","forecasting","spatiotemporal"],"weather","TensorFlow/Keras"),k("modelhub-stormer","Stormer","面向中期天气预报的可扩展 Transformer 模型",["地球科学","weather","forecasting","spatiotemporal"],"weather","PyTorch"),k("modelhub-atmorep","AtmoRep","大气动力学随机表征学习模型",["地球科学","atmosphere","foundation-model","pretraining"],"atmosphere","PyTorch"),k("modelhub-aardvark-weather","Aardvark-Weather","端到端观测驱动全球天气预报模型",["地球科学","weather","forecasting","observation-driven"],"weather","PyTorch"),k("modelhub-graphdop","GraphDOP","ECMWF 直接从观测初始化的图天气预报模型",["地球科学","weather","forecasting","graph-model","observation-driven"],"weather","PyTorch"),k("modelhub-glonet","GLONET","Mercator 全球神经海洋预报模型",["地球科学","ocean","forecasting","spatiotemporal"],"ocean","PyTorch"),k("modelhub-ai2-climate-emulator","Ai2_Climate_Emulator","Ai2 全球天气气候机器学习模拟器",["地球科学","climate","emulator","forecasting"],"climate","PyTorch"),k("modelhub-samudra","Samudra","M2LInES 全球海洋气候模拟器",["地球科学","ocean","climate","emulator"],"ocean","PyTorch"),k("modelhub-fuxi-s2s","FuXi-S2S","面向全球次季节预测的 FuXi 系列模型",["地球科学","climate","forecasting","probabilistic"],"climate","PyTorch"),k("modelhub-fengwu-w2s","FengWu-W2S","面向天气到次季节无缝预报的 FengWu 模型",["地球科学","weather","climate","forecasting"],"weather","PyTorch"),k("modelhub-seeds","SEEDS","Google Research 天气集合预报扩散生成模型",["地球科学","weather","probabilistic","generative"],"weather","TensorFlow/JAX"),k("modelhub-climode","ClimODE","物理约束神经 ODE 天气气候预报模型",["地球科学","weather","climate","physics-informed"],"weather","PyTorch"),k("modelhub-spherical-dyffusion","Spherical DYffusion","面向全球气候模拟的球面扩散模拟器",["地球科学","climate","emulator","generative"],"climate","PyTorch"),k("modelhub-w-mae","W-MAE","多变量天气预报掩码自编码预训练模型",["地球科学","weather","forecasting","pretraining"],"weather","PyTorch"),k("modelhub-rainnet","RainNet","基于卷积神经网络的雷达降水临近预报模型",["地球科学","precipitation","nowcasting","spatiotemporal"],"precipitation","Keras"),k("modelhub-convolutional-lstm-nowcasting","ConvLSTM","面向对流降水临近预报的经典 ConvLSTM 模型",["地球科学","precipitation","nowcasting","spatiotemporal"],"precipitation","Theano"),k("modelhub-smaat-unet","SmaAt-UNet","小型注意力 UNet 降水临近预报模型",["地球科学","precipitation","nowcasting","spatiotemporal"],"precipitation","PyTorch"),k("modelhub-prithvi-eo","Prithvi-EO","NASA IBM 地球观测多时相基础模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-terramind","TerraMind","IBM ESA 地球观测任意模态生成基础模型",["地球科学","remote-sensing","foundation-model","multimodal","generative"],"remote-sensing","PyTorch"),k("modelhub-clay-foundation-model","Clay-Foundation-Model","面向地球观测嵌入与下游任务的开源基础模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-alphaearth-foundations","AlphaEarthFoundations","Google DeepMind 全球地球观测嵌入基础模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","Google internal"),k("modelhub-surya","Surya","NASA IBM 太阳物理与空间天气基础模型",["地球科学","heliophysics","foundation-model","forecasting"],"heliophysics","PyTorch"),k("modelhub-satmae","SatMAE","面向多光谱时序卫星影像的 MAE 预训练模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-satmae-2","SatMAE-PP","面向多尺度多光谱卫星影像的预训练模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-scale-mae","Scale-MAE","面向多尺度地理空间表征学习的 MAE 模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-dofa","DOFA","面向多模态地球观测的动态一体化基础模型",["地球科学","remote-sensing","foundation-model","multimodal"],"remote-sensing","PyTorch"),k("modelhub-remoteclip","RemoteCLIP","面向遥感图文检索与理解的视觉语言基础模型",["地球科学","remote-sensing","foundation-model","vision-language"],"remote-sensing","PyTorch"),k("modelhub-skysense","SkySense","面向地球观测通用解译的多模态遥感基础模型",["地球科学","remote-sensing","foundation-model","multimodal"],"remote-sensing","PyTorch"),k("modelhub-spectralgpt","SpectralGPT","面向光谱遥感影像理解的生成式预训练模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("modelhub-satlaspretrain","SatlasPretrain","AI2 大规模遥感理解预训练模型",["地球科学","remote-sensing","foundation-model","pretraining"],"remote-sensing","PyTorch"),k("life","AlphaFold","DeepMind 蛋白质结构预测模型,支持单体与多聚体推理",["生命科学","protein","structure","folding","monomer","multimer"],"biology","JAX"),k("life-openfold","OpenFold","AlphaFold 2 的 PyTorch 重实现,适合训练与工程集成",["生命科学","protein","structure","folding","alphafold","pytorch"],"biology","PyTorch"),k("life-alphafold3","AlphaFold3","面向蛋白、核酸与配体复合物的多模态结构预测模型",["生命科学","protein","complex","ligand","nucleic_acid","structure"],"biology","JAX"),k("life-protenix","protenix","开源可训练的 AF3 风格生物大分子复合物结构预测模型",["生命科学","protein","complex","ligand","structure","finetuning"],"biology","PyTorch"),k("life-rfdiffusion","RFdiffusion","扩散式蛋白骨架设计模型,支持 motif、binder 与对称设计",["生命科学","protein_design","backbone","diffusion","binder","scaffolding"],"biology","PyTorch"),k("life-proteinmpnn","ProteinMPNN","从蛋白骨架反向生成序列的高效设计模型",["生命科学","protein_design","inverse_folding","sequence_design","backbone"],"biology","PyTorch"),k("life-pt-dit","PT-DiT","基于 ProToken 的蛋白序列与结构联合扩散生成模型",["生命科学","protein_design","diffusion","latent_space","protoken","co_design"],"biology","JAX/Flax"),k("life-simplefold","SimpleFold","仅依赖通用 Transformer 的流匹配蛋白折叠模型",["生命科学","protein","folding","transformer","flow_matching","validation"],"biology","PyTorch/MLX"),k("life-evo2","evo2","面向超长 DNA 序列建模与设计的基因组基础模型",["生命科学","genomics","dna","long_context","foundation_model","design"],"genomics","PyTorch/NeMo"),k("life-alphagenome","alphagenome","统一 DNA 序列模型,可预测多种基因组功能信号",["生命科学","genomics","dna","multiomics","variant_scoring","track_prediction"],"genomics","JAX/Haiku"),k("life-molsculptor","MolSculptor","面向多靶点抑制剂设计的扩散加进化小分子生成框架",["生命科学","small_molecule","drug_discovery","diffusion","docking","optimization"],"drug_discovery","JAX/Flax"),k("life-esm-2","ESM","Meta 通用蛋白语言模型,支持序列表征、结构与功能相关任务",["生命科学","protein","language_model","transformer","embeddings","variant_effect","structure"],"biology","PyTorch"),k("life-foldseek","Foldseek","高速蛋白结构搜索与聚类工具,支持 PDB、AFDB 与 ESM Atlas",["生命科学","structure_search","alignment","clustering","protein","3di"],"bioinformatics","C++/CUDA"),k("life-state","STATE","面向虚拟细胞的扰动响应预测模型,覆盖多细胞环境与上下文",["生命科学","virtual_cell","perturbation","single_cell","transcriptomics","foundation_model"],"systems_biology","PyTorch"),k("life-la-proteina","La-Proteina","联合生成蛋白序列与全原子结构的部分潜变量流匹配模型",["生命科学","protein_design","atomistic","flow_matching","co_design","motif_scaffolding"],"biology","PyTorch"),k("life-diffdock","DiffDock","基于 3D 扩散的蛋白-小分子对接模型,输出 pose 与置信度排序",["生命科学","docking","protein_ligand","diffusion","pose_prediction","confidence"],"drug_discovery","PyTorch"),k("life-targetdiff","TargetDiff","在蛋白口袋条件下联合生成 3D 分子并预测亲和力的扩散模型",["生命科学","molecule_generation","protein_pocket","diffusion","affinity_prediction","3d"],"drug_discovery","PyTorch/PyG"),k("life-genscore","GenScore","面向评分、排序、对接和筛选平衡优化的蛋白-配体评分框架",["生命科学","scoring","protein_ligand","affinity","docking","virtual_screening"],"drug_discovery","PyTorch/PyG"),k("life-medgemma","Medgemma","Google 医疗多模态模型集合,支持医学文本与影像理解",["生命科学","medical_ai","multimodal","llm","vision_encoder","radiology"],"medical_ai","PyTorch/Transformers"),k("fluid","FNO","频域神经算子,学习 PDE 解空间映射的经典基础模型",["流体仿真","pde-solver","neural-operator","spectral"],"fluid-dynamics","PyTorch"),k("fluid-gfno","GFNO","基于群等变傅里叶神经算子,在 FNO 的频域计算中引入旋转、反射等几何对称性,用于二维 Navier-Stokes 流场的时序预测与 CFD 代理建模。",["流体仿真","neural-operator","equivariant","cfd","navier-stokes"],"fluid-dynamics","PyTorch"),k("fluid-deeponet","DeepONet","Branch/Trunk 双网络,学习非线性 PDE 算子",["流体仿真","operator-network","pde-solver","physics-informed"],"mathematics","TensorFlow/PyTorch"),k("fluid-mgn","MeshGraphNet","网格图 GNN 模拟器,预测下一步物理状态",["流体仿真","gnn","mesh-based-simulation","learned-dynamics"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-cfdbench-model","CFDBench","CFD 泛化评测基准",["流体仿真","cfd","neural-operator","generalization-benchmark"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-beno-model","BENO","求解椭圆偏微分方程的边界嵌入神经算子",["流体仿真","beno","elliptic-pde","gnn","boundary-embedded"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-deepcfd-model","DeepCFD","U-Net 多解码器,从几何标签预测稳态层流场",["流体仿真","cfd","steady-laminar-flow","u-net","surrogate-modeling"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-lagrangian-mgn","LagrangianMGN","拉格朗日粒子图网络物理模拟器",["流体仿真","gnn","particle-simulation","lagrangian-dynamics","learned-physics-simulator"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-pdenneval-model","PDENNEval","面向 PDE 神经网络求解方法的系统性评测基准",["流体仿真","neural-pde-solver","sciml","benchmark-evaluation"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-transolver","Transolver-Airfoil-Design","拓扑感知 PDE Transformer",["流体仿真","transformer","pde-solver","attention"],"fluid-dynamics","PyTorch"),k("fluid-u-no","UNO","U-Net 与神经算子结合,面向多尺度高频频流 PDE",["流体仿真","multi-scale","neural-operator","cnn"],"fluid-dynamics","PyTorch"),k("fluid-pinns","PINNs","物理定律约束损失,无标注求解正逆 PDE 问题",["流体仿真","physics-informed","inverse-problem","pde-solver"],"mathematics","PyTorch/TensorFlow"),k("fluid-geo-fno","Geo-FNO","不规则几何 PDE 的 FNO,坐标变换至均匀网格",["流体仿真","neural-operator","geometry-aware","cfd"],"fluid-dynamics","PyTorch"),k("fluid-gino","GINO","GNN 与 FNO 结合,求解复杂三维工业 CFD",["流体仿真","neural-operator","gnn","3d-geometry"],"fluid-dynamics","PyTorch"),k("fluid-mp-pde","MP_PDE","消息传递 GNN 自回归求解器,预测流体时序演化",["流体仿真","gnn","message-passing","time-evolution"],"fluid-dynamics","PyTorch"),k("fluid-cno","CNO","连续卷积构建的无限维 PDE 神经算子",["流体仿真","neural-operator","continuous-convolution","pde-solver"],"mathematics","PyTorch"),k("fluid-factformer","FactFormer","轴向分解 Transformer,降低三维流体建模内存",["流体仿真","factorized-attention","transformer"],"turbulence-modeling","PyTorch"),k("fluid-gatr","GATr","等变 GNN 与 Transformer,几何代数建模三维物理",["流体仿真","transformer","geometric-algebra","equivariant"],"mechanics","PyTorch"),k("fluid-transolver-2","Transolver-Car-Design","百万级网格 PDE 求解",["流体仿真","transformer","million-scale","physics-attention"],"industrial-cfd","PyTorch"),k("fluid-factorized-fourier-neural-operator","Factorized Fourier Neural Operator","谱卷积因子化 FNO 变体,面向多相流建模",["流体仿真","fno","operator-learning"],"fluid-dynamics","PyTorch"),k("fluid-koopman-neural-operator","KNO","Koopman 线性化非线性 PDE 动态的无网格求解器",["流体仿真","koopman-theory","operator-learning"],"dynamic-systems","PyTorch"),k("fluid-multi-scale-patch-transformer","Multi-Scale Patch Transformer","多尺度图像块双层注意力 Transformer",["流体仿真","transformer","patch-attention"],"industrial-cfd","PyTorch"),k("fluid-universal-physics-transformers","Universal Physics Transformers","统一欧拉/拉格朗日域的物理 Transformer",["流体仿真","transformer","unified-model"],"eulerian, lagrangian","PyTorch"),k("fluid-anchored-branched-universal-physics-transformers","Anchored-Branched Universal Physics Transformers","UPT 工业分支,建模三维表面-体积耦合流体",["流体仿真","transformer","industrial-scale"],"industrial-aerodynamics","PyTorch"),k("fluid-oformer","OFormer","交叉注意力算子 Transformer,点云注入边界初值",["流体仿真","transformer","cross-attention"],"operator-learning","PyTorch"),k("fluid-pointnetcfd","PointNetCFD","点云 PointNet 框架,预测不规则域流场",["流体仿真","point-cloud","geometry-learning"],"irregular-cfd","PyTorch"),k("fluid-orthogonal-attention-neural-operator","ONO","正交注意力神经算子,核积分特征分解正则化",["流体仿真","orthogonal-attention","regularization"],"operator-learning","PyTorch"),k("fluid-poseidon","Poseidon","预训练 PDE 基础模型,零/少样本泛化未见方程",["流体仿真","foundation-model","multi-physics"],"pde-foundation-model","PyTorch"),k("fluid-diffusionpde","DiffusionPDE","引导扩散 PDE 求解器,联合前向预测与逆问题",["流体仿真","diffusion-model","inverse-problem"],"inverse-problems, generative","PyTorch"),k("fluid-diffusion-graph-net","Diffusion Graph Net","非结构化网格图扩散模型,采样湍流物理状态",["流体仿真","diffusion","gnn","turbulence"],"cfd, generative","PyTorch"),k("fluid-eagle-mesh-transformer","EagleMeshTransformer","非稳态流体网格求解器",["流体仿真","transformer","mesh-graph","fluid-dynamics"],"fluid-dynamics","PyTorch"),k("fluid-xpinn","XPINNs","时空域分解 PINN,子域并行求解复杂几何 PDE",["流体仿真","pinn","domain-decomposition"],"pde-solving","PyTorch, TensorFlow"),k("fluid-cpinn","cPINN","域分解 PINN,子域边界强制通量连续",["流体仿真","pinn","conservation-laws","domain-decomposition"],"conservation-laws","PyTorch, TensorFlow"),k("fluid-gpinn","gPINNs","梯度增强 PINN,稀疏样本下提高求解精度",["流体仿真","pinn","gradient-enhanced"],"pde-solving","PyTorch, TensorFlow"),k("fluid-hp-vpinn","VPINNs","变分弱形式与域分解结合的 PINN 框架",["流体仿真","pinn","variational-methods"],"pde-solving","PyTorch, TensorFlow"),k("fluid-bpinn","BPINNs","贝叶斯 PINN,预测物理场并量化不确定性",["流体仿真","pinn","bayesian","inverse-problems"],"uncertainty-quantification","PyTorch, TensorFlow"),k("fluid-sa-pinn","SA-PINNs","软注意力自适应配点权重,缓解刚性 PDE 收敛",["流体仿真","pinn","adaptive-weights","stiff-pdes"],"stiff-pdes","PyTorch, TensorFlow, JAX"),k("fluid-fpinn","FPINNs","分数阶微积分 PINN,求解非局部 PDE",["流体仿真","pinn","fractional-pdes"],"fractional-pdes","PyTorch, TensorFlow"),k("fluid-gp-for-to","GP_for_TO","基于物理信息高斯过程的无网格拓扑优化方法",["流体仿真","stokes-flow","topology-optimization","physics-informed-gaussian-processes"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-pinnsformer","PINNsformer","以时序建模和注意力机制提升物理信息神经网络求解复杂 PDE 的精度与鲁棒性。",["流体仿真","physics-informed-neural-networks","transformer","pde-solvers","scientific-machine-learning"],"fluid-dynamics","PyTorch/ONNX"),k("fluid-u-fno","U-FNO","U-Net 与 FNO 结合的多相流算子网络",["流体仿真","fno","multiphase-flow","operator-learning"],"multiphase-flow","PyTorch"),k("fluid-mwt","MWT","多小波变换算子,处理多尺度与高频频变 PDE",["流体仿真","operator-learning","wavelets","multiwavelets"],"pde-solving","PyTorch"),k("fluid-galerkin-transformer","Galerkin Transformer","线性伽辽金投影的算子 Transformer",["流体仿真","transformer","galerkin-projection"],"operator-learning","PyTorch"),k("material","MACE","高阶等变消息传递机器学习势函数",["材料化学","mlff","equivariant","mpnn","dcu"],"matchem","PyTorch"),k("material-uma","UMA","Meta FAIR 跨化学领域通用原子势模型",["材料化学","mlff","foundation-model","catalysis","oc20"],"matchem","PyTorch"),k("material-deepmd","DeePMD","深度学习势能函数,支持 PT/TF 双后端",["材料化学","mlff","deepmd","lammps","dcu"],"matchem","PyTorch"),k("material-nep","NEP","神经演化势函数,DCU 上由 MatPL 训练",["材料化学","mlff","nep","matpl","dcu"],"matchem","PyTorch"),k("material-matris","MatRIS","中科院计算所科学智能预训练大模型",["材料化学","mlff","foundation-model","pretrained","dcu"],"matchem","PyTorch"),k("material-tace","TACE","Cartesian 张量原子簇展开势能模型",["材料化学","mlff","equivariant","ace","tensor"],"matchem","PyTorch"),k("material-nequix","Nequix","轻量 E(3) 等变材料基础势能模型",["材料化学","mlff","equivariant","foundation-model","materials"],"matchem","JAX"),k("material-mattersim","Mattersim","面向多元素温压条件的原子级深度学习模型",["材料化学","mlff","foundation-model","m3gnet","materials"],"matchem","PyTorch"),k("material-grace","GRACE","Graph Atomic Cluster Expansion 势能框架",["材料化学","mlff","ace","graph","foundation-model"],"matchem","PyTorch"),k("material-allegro","Allegro","严格局域 E(3) 等变高扩展势能模型",["材料化学","mlff","equivariant","scalable","nequip"],"matchem","PyTorch"),k("material-mattergen","Mattergen","面向无机晶体材料设计的扩散生成模型。",["材料化学","generative","diffusion","crystal","materials"],"matchem","PyTorch"),k("material-equiformer-v3","Equiformer_v3","用于材料结构能量、原子力和应力预测的 SE(3) 等变图注意力势模型。",["材料化学","mlff","equivariant","graph-attention","materials"],"matchem","PyTorch"),k("material-esen","eSEN","用于材料结构能量、原子力和应力预测的等变图神经网络势。",["材料化学","mlff","equivariant","gnn","materials"],"matchem","PyTorch"),k("material-nequip","NequIP","基于 SE (3) 等变图神经网络,用于原子体系能量、原子力预测的分子 / 材料势能模型",["材料化学","mlff","equivariant","gnn","materials"],"matchem","PyTorch")]},skills:{eyebrow:"OneSkills",title:"OneSkills 技能列表",count:"正在加载 OneSkills 技能...",search:"搜索 OneSkills 技能名称、描述或标签...",filters:["全部","编排层","资源层","专家层","执行层"],items:[]},apps:{eyebrow:"OneHub",title:"应用库",count:"共 37 个应用:材料化学 9,生命科学 9,流体仿真 4,其它 15",search:"搜索应用、软件库、方向或运行平台...",filters:["全部","地球科学","材料化学","生命科学","流体仿真","其它"],items:[pe("abacus","ABACUS","基于密度泛函理论的第一性原理电子结构与材料模拟软件",["材料化学","DFT","materials","quantum"],"Materials Science","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=fa860bcd-f8d7-11ef-be71-0242ac170002&type=frame"),pe("adaptivecpp","AdaptiveCpp","面向 CPU/GPU 的 SYCL 与 C++ 异构并行编译器和运行时",["其它","SYCL","compiler","GPU"],"Programming Model","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=38bbdeb3-f965-11ef-be71-0242ac170002&type=frame"),pe("astra_toolbox","ASTRA Toolbox","面向 GPU 加速层析成像与断层重建的高性能工具箱",["其它","tomography","CT","GPU"],"Imaging","Python","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=938690ad-f960-11ef-be71-0242ac170002&type=frame"),pe("autodock_gpu","AutoDock-GPU","面向药物筛选的 GPU 加速分子对接与虚拟筛选软件",["生命科学","drug-discovery","docking","GPU"],"Drug Discovery","C++","GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=2355d55d-f5a3-11ef-bb42-0242ac170002&type=frame"),pe("beagle","BEAGLE","用于系统发育树上序列进化似然计算的高性能生物信息学库",["生命科学","phylogenetics","GPU"],"Bioinformatics","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=5aa1ae8b-3edd-11f1-be71-0242ac170002&type=frame"),pe("bwa","BWA","基于 BWA-MEM 的 GPU 加速基因序列比对工具",["生命科学","genomics","alignment","GPU"],"Bioinformatics","C++","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=112d8f26-3ede-11f1-be71-0242ac170002&type=frame"),pe("cosma","COSMA","面向分布式内存系统的通信优化矩阵乘法库",["其它","linear-algebra","MPI","HPC"],"Math Libraries","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=34db8883-f5ad-11ef-bb42-0242ac170002&type=frame"),pe("cupy","CuPy","面向 GPU 的 NumPy 与 SciPy 风格数组计算库",["其它","Python","GPU","array"],"Scientific Python","Python","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=dc131138-f5ad-11ef-bb42-0242ac170002&type=frame"),pe("eigen3","Eigen3","提供矩阵、向量与数值求解器的 C++ 模板线性代数库",["其它","linear-algebra","C++"],"Math Libraries","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=895d2da4-f96a-11ef-be71-0242ac170002&type=frame"),pe("elpa","ELPA","面向大规模对称或厄米矩阵特征值问题的高性能求解库",["其它","eigensolver","MPI","HPC"],"Math Libraries","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=ffcb92e8-f3f3-11ef-bb42-0242ac170002&type=frame"),pe("genomeworks","GenomeWorks","面向基因组装与序列分析的 GPU 加速开发工具包",["生命科学","genomics","GPU","MPI"],"Bioinformatics","C++","GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=7f2555a5-f96c-11ef-be71-0242ac170002&type=frame"),pe("ginkgo","Ginkgo","面向稀疏线性代数与迭代求解的高性能数值计算库",["其它","sparse","solver","GPU"],"Math Libraries","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=81b84c92-f96d-11ef-be71-0242ac170002&type=frame"),pe("gpublast","GPU-Blast","面向生物序列搜索与比对的 GPU 加速 BLAST 工具",["生命科学","BLAST","genomics","GPU"],"Bioinformatics","C++","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=a682df0a-f96e-11ef-be71-0242ac170002&type=frame"),pe("gpumd","GPUMD","完全基于 GPU 实现的高效率通用分子动力学模拟软件",["材料化学","MD","materials","GPU"],"Molecular Dynamics","C++","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=0e3550e8-3ee0-11f1-be71-0242ac170002&type=frame"),pe("gromacs","GROMACS","面向生物分子与化学体系的高性能分子动力学模拟软件",["生命科学","MD","chemistry","MPI","GPU"],"Molecular Dynamics","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=79f6980f-f3e8-11ef-bb42-0242ac170002&type=frame"),pe("hashcat","Hashcat","面向多种哈希算法的高性能密码恢复与审计工具",["其它","security","GPU"],"Security","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=fb77220b-f5a9-11ef-bb42-0242ac170002&type=frame"),pe("hoomd_blue","HOOMD-blue","面向软物质体系的 GPU 加速分子动力学与蒙特卡罗模拟软件",["材料化学","MD","soft-matter","GPU"],"Molecular Dynamics","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=8ab9aebe-f986-11ef-be71-0242ac170002&type=frame"),pe("hypre","HYPRE","提供多重网格方法的并行稀疏线性系统求解与预条件库",["其它","multigrid","solver","MPI"],"Math Libraries","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=6eb76d28-f5ae-11ef-bb42-0242ac170002&type=frame"),pe("kokkos","Kokkos","提供并行执行与内存抽象的 C++ 性能可移植编程模型",["其它","parallel","C++","GPU"],"Programming Model","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=4b124510-f970-11ef-be71-0242ac170002&type=frame"),pe("lammps","LAMMPS","大规模并行经典/MLFF 分子动力学软件",["材料化学","MD","MPI","Kokkos","DCU"],"MD","C++","CPU/GPU/MPI","https://gitee.com/onescience-ai/onescience/blob/main/examples/matchem/README.md"),pe("vasp","VASP","商业 DFT 第一性原理材料模拟软件",["材料化学","DFT","first-principles","MPI","DCU"],"DFT","Fortran","CPU/GPU/MPI","https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/tools/vasp"),pe("cp2k","CP2K","面向分子与材料体系的并行 DFT/MD 软件",["材料化学","DFT","MD","MPI","DCU"],"DFT/MD","Fortran/C","CPU/GPU/MPI","https://gitee.com/onescience-ai/onescience/blob/main/examples/matchem/README.md"),pe("deepmd-kit","DeePMD-kit","深度学习势能函数训练与推理框架",["材料化学","MLFF","deep-learning","DCU"],"MLFF","C++/Python","CPU/GPU/MPI","https://gitee.com/onescience-ai/onescience/blob/main/examples/matchem/dp/dp_install.sh"),pe("matpl","MatPL","NEP 等机器学习势训练框架,含 DCU 算子",["材料化学","MLFF","NEP","DCU"],"MLFF","C++/Python","GPU/MPI","https://gitee.com/onescience-ai/onescience/blob/main/examples/matchem/nep/matpl_install.sh"),pe("magma","MAGMA","面向异构 CPU/GPU 平台的高性能稠密线性代数计算库",["其它","linear-algebra","GPU"],"Math Libraries","C++","CPU/GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=6bfd3815-f41a-11ef-bb42-0242ac170002&type=frame"),pe("namd","NAMD","面向大规模生物分子体系的高性能并行分子动力学模拟软件",["生命科学","MD","biomolecular","GPU"],"Molecular Dynamics","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=5f31ffe2-f417-11ef-bb42-0242ac170002&type=frame"),pe("nekrs","nekRS","面向 HPC 应用的快速可扩展谱元 CFD 求解器",["流体仿真","CFD","spectral-element","MPI"],"CFD","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=27b19af1-3ee4-11f1-be71-0242ac170002&type=frame"),pe("nwchem","NWChem","面向高性能计算环境的开源量子化学与计算化学软件",["材料化学","quantum-chemistry","DFT","MPI"],"Computational Chemistry","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=b4ffe397-f413-11ef-bb42-0242ac170002&type=frame"),pe("openfoam","OpenFOAM","面向流体、多相与传热问题的开源 CFD 仿真平台",["流体仿真","CFD","multiphysics","MPI"],"CFD","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=f7bb69bb-f984-11ef-be71-0242ac170002&type=frame"),pe("openmm","OpenMM","兼具库与独立应用形态的高性能分子模拟工具包",["生命科学","MD","simulation","GPU"],"Molecular Dynamics","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=36bbb575-f40b-11ef-bb42-0242ac170002&type=frame"),pe("petsc","PETSc","面向偏微分方程与科学计算的并行数值求解工具包",["其它","PDE","solver","MPI"],"Math Libraries","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=adfc07e9-3ee5-11f1-be71-0242ac170002&type=frame"),pe("picongpu","PIConGPU","面向激光等离子体研究的性能可移植粒子网格模拟框架",["其它","plasma","particle-in-cell","GPU"],"Plasma Physics","C++","GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=d386d847-f404-11ef-bb42-0242ac170002&type=frame"),pe("pyfr","PyFR","基于通量重构方法的高阶可扩展 CFD 计算框架",["流体仿真","CFD","high-order","GPU"],"CFD","Python","GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=21da2b12-f3f1-11ef-bb42-0242ac170002&type=frame"),pe("relion","RELION","面向冷冻电镜单颗粒分析的图像处理与三维重构软件",["生命科学","cryo-EM","imaging","GPU"],"Imaging","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=6162a45f-f3ef-11ef-bb42-0242ac170002&type=frame"),pe("sparta","SPARTA","面向稀薄气体流动的并行 DSMC 粒子模拟软件",["流体仿真","DSMC","rarefied-gas","MPI"],"CFD","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=67fc6a44-3ee6-11f1-be71-0242ac170002&type=frame"),pe("specfem3d","SPECFEM3D","用于三维地震波传播的谱元法地球物理模拟软件",["其它","geophysics","seismic","GPU"],"Geophysics","C++","CPU/GPU/MPI","https://dos.sourcefind.cn:50275/portal/#/installation?id=aa4ba8c2-f3ec-11ef-bb42-0242ac170002&type=frame"),pe("stdgpu","stdgpu","提供 STL 风格接口的高效 GPU 数据结构库",["其它","data-structures","C++","GPU"],"Programming Model","C++","GPU","https://dos.sourcefind.cn:50275/portal/#/installation?id=d5e12516-3ee6-11f1-be71-0242ac170002&type=frame")]},frameworks:{eyebrow:"OneInfra",title:"AI框架",count:"共 9 个 AI 框架:训练框架 5,并行训练 2,推理框架 2",search:"搜索框架名称、硬件平台、适配入口或标签...",filters:["全部","训练框架","并行训练","推理框架"],items:[pe("framework-training","PyTorch深度学习框架","硬件支持:CPU/GPU;提供 DCU 安装适配入口,适合深度学习训练和动态图研发。",["deep-learning","dynamic-graph","DCU适配"],"PyTorch","Python/C++/CUDA","CPU/GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=04749079-6b33-11ef-b472-005056904552&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=04749079-6b33-11ef-b472-005056904552&type=frame"}]),pe("framework-training","JAX高性能数值计算库","硬件支持:CPU/GPU/TPU;提供 DCU 安装适配入口,适合自动微分、JIT 与函数式数值计算。",["autograd","JIT","DCU适配"],"JAX","Python/CUDA","CPU/GPU/TPU","https://das.sourcefind.cn:55011/portal/#/installation?id=57f974b4-6b39-11ef-b472-005056904552&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=57f974b4-6b39-11ef-b472-005056904552&type=frame"}]),pe("framework-training","NVIDIA TransformerEngine","硬件支持:GPU;提供 DCU 安装入口和 FlagOS 适配仓库,面向 Transformer FP8 训练加速。",["Transformer","FP8","DCU适配","FlagOS"],"TransformerEngine","Python/CUDA","GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=d091bbbf-fb10-11ef-915b-0242ac160002&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=d091bbbf-fb10-11ef-915b-0242ac160002&type=frame"},{label:"FlagOS",href:"https://github.com/flagos-ai/TransformerEngine-FL"}]),pe("framework-training","verl大语言模型训练框架","硬件支持:CPU/GPU;提供 FlagOS 适配仓库,专注大模型强化学习与 RLHF 训练。",["LLM","RLHF","FlagOS"],"verl","Python","CPU/GPU","https://github.com/flagos-ai/verl-FL",[{label:"FlagOS",href:"https://github.com/flagos-ai/verl-FL"}]),pe("framework-training","OneScience 科研计算与数据科学平台","硬件支持:CPU/GPU;提供 OneScience Gitee/GitHub 入口,面向科研工作流、并行计算和科学数据管理。",["scientific-computing","workflow-engine","OneScience"],"OneScience","Python/C++","CPU/GPU","https://gitee.com/onescience-ai/onescience",[{label:"Gitee/GitHub",href:"https://gitee.com/onescience-ai/onescience"}]),pe("framework-parallel","DeepSpeed分布式训练优化库","硬件支持:CPU/GPU;提供 DCU 安装适配入口,覆盖 ZeRO、混合精度训练和分布式显存优化。",["ZeRO","distributed-training","DCU适配"],"DeepSpeed","Python/CUDA","CPU/GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=e5892d54-6b3b-11ef-b472-005056904552&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=e5892d54-6b3b-11ef-b472-005056904552&type=frame"}]),pe("framework-parallel","Megatron-LM大规模模型并行训练框架","硬件支持:GPU;提供 DCU 安装入口和 FlagOS 适配仓库,支持模型并行、流水线并行和数据并行。",["model-parallelism","pipeline-parallelism","FlagOS"],"Megatron-LM","Python/CUDA","GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=af3d2407-bbba-11f0-98e6-0242ac130002&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=af3d2407-bbba-11f0-98e6-0242ac130002&type=frame"},{label:"FlagOS",href:"https://github.com/flagos-ai/Megatron-LM-FL"}]),pe("framework-inference","vLLM高性能LLM推理引擎","硬件支持:GPU;提供 DCU 安装入口和 FlagOS 适配仓库,面向高吞吐 LLM 推理服务。",["llm-inference","PagedAttention","FlagOS"],"vLLM","Python/CUDA","GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=9385225c-6b7a-11ef-bf92-005056904552&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=9385225c-6b7a-11ef-bf92-005056904552&type=frame"},{label:"FlagOS",href:"https://github.com/flagos-ai/vllm-FL"}]),pe("framework-inference","SGLang大语言模型服务框架","硬件支持:GPU;提供 DCU 安装适配入口,支持高效推理、RadixAttention 和结构化生成。",["llm-inference","RadixAttention","DCU适配"],"SGLang","Python/CUDA","GPU","https://das.sourcefind.cn:55011/portal/#/installation?id=95f4fe5b-2cd9-11f1-ac5a-0242ac130002&type=frame",[{label:"DCU",href:"https://das.sourcefind.cn:55011/portal/#/installation?id=95f4fe5b-2cd9-11f1-ac5a-0242ac130002&type=frame"}])]},operators:{eyebrow:"OneInfra",title:"通用算子",count:"基础算子与科学算子",search:"搜索算子、领域或性能能力...",filters:["全部","基础算子","科学算子","通信算子"],items:[pe("operator","张量基础算子","面向训练和推理的矩阵、归约、变换和调度算子。",["tensor","kernel","compile"],"OneInfra","120 ops","CUDA / CPU"),pe("comm-operator","通信算子","AllReduce、Gather、Scatter 和跨节点通信优化。",["NCCL","MPI","通信"],"OneInfra","24 ops","GPU Cluster"),pe("sci-operator","流体科学算子","Navier-Stokes、网格插值、边界条件和流场处理算子。",["CFD","grid","solver"],"OneInfra","32 ops","CUDA"),pe("sci-operator","分子科学算子","邻域搜索、势能计算、结构变换和分子图操作。",["MD","molecule","graph"],"OneInfra","28 ops","CUDA / CPU")]},research:{eyebrow:"AI4Research",title:"创新领域 AI 能力",count:"前沿研究工具列表",search:"搜索研究方向、工具或能力...",filters:["全部","物理AI","具身智能","自动驾驶","世界模型"],items:[pe("physical-ai","物理AI","物理世界建模、仿真、控制和可微物理工具链。",["physics","simulation"],"AI4Research","toolkit","beta"),pe("embodied-ai","具身智能","机器人、实验自动化和多模态感知规划能力。",["robotics","agent"],"AI4Research","lab","beta"),pe("autonomous-driving","自动驾驶","世界模型、场景生成和安全评估工具。",["driving","world model"],"AI4Research","sim","preview"),pe("world-model","世界模型","面向科学系统的预测、规划和实验代理。",["planning","agent"],"AI4Research","agent","preview")]},cases:{eyebrow:"Cases",title:"场景化落地范例",count:"共 16 个科研场景",search:"搜索案例名称、领域或标签...",filters:["全部","地球科学","材料化学","生命科学","流体仿真","其它"],items:[rt("case-cfdbench","CFDBench 训练 smoke 验证","下载魔搭 CFDBench 流体基准数据,跑通 FNO 神经算子在小样本上的训练冒烟验证。",["流体仿真","CFD","FNO"],"流体仿真","ses_10346f0acffeC6AHvtobK5pHFs"),rt("case-esm2","ESM-2 训练 smoke 验证","下载魔搭 ESM-2 蛋白语言模型,完成小规模训练冒烟验证,确认序列建模流程可用。",["生命科学","ESM-2","蛋白"],"生命科学","ses_103137ca7ffeO7q8BnYiPP3L2q"),rt("case-fourcastnet","FourCastNet 训练 smoke 验证","下载 FourCastNet 全球高分辨率神经算子天气预报模型,完成训练配置与小样本冒烟验证。",["地球科学","FourCastNet","天气预报"],"地球科学","ses_10336b7f1ffeL2BZqW7OT8eNMs"),rt("case-fuxi","FuXi 训练 smoke 验证","下载 FuXi 数据驱动中期预报模型,跑通训练入口配置与小规模冒烟验证。",["地球科学","FuXi","天气预报"],"地球科学","ses_103251332ffelcaGi7spx1esL9"),rt("case-mace","MACE 训练 smoke 验证","下载魔搭 MACE 机器学习势函数,完成训练配置与小规模冒烟验证,确认势函数训练流程可用。",["材料化学","MACE","MLFF"],"材料化学","ses_09102687affe6WEyKzrDV0i5tJ"),rt("case-matris","MatRIS 下载与推理验证","下载魔搭 MatRIS 预训练权重并完成样例推理验证,确认推理入口与结果产出可用。",["材料化学","MatRIS","推理"],"材料化学","ses_090e3ee94ffeOUHq4ZepQ8DKHs"),rt("case-mace-water-pes","MACE 水体系势能面训练与验证","下载 MACE 与水体系数据集,完成势能面小规模训练与验证,确认 checkpoint 与评测交付物可用。",["材料化学","MACE","水体系"],"材料化学","ses_090bb739bffevzX4Zf7pBxuD16"),rt("case-meshgraphnet","MeshGraphNet 训练推理与可视化","下载 MeshGraphNet 网格图神经网络,完成训练、推理与流场结果可视化全流程。",["流体仿真","MeshGraphNet","CFD"],"流体仿真","ses_1037cc763ffeMfaaYQ6CQdmbrq"),rt("case-proteinmpnn","ProteinMPNN 训练 smoke 验证","下载 ProteinMPNN 蛋白序列设计模型,完成训练冒烟验证,验证序列生成流程。",["生命科学","ProteinMPNN","蛋白设计"],"生命科学","ses_1033535eaffeFd2OKFwlyBG9bl"),rt("case-rae2822-fno","RAE2822 翼型 FNO 训练流程","围绕 RAE2822 翼型网格与流场数据,搭建 FNO 神经算子训练流程并完成验证。",["流体仿真","RAE2822","FNO"],"流体仿真","ses_12c59a12fffe4xD0VPNsTHQ2iO"),rt("case-aifs-repro","AIFS 论文复现","复现 AIFS 全球气象预报模型论文实验,覆盖数据准备、训练与评估关键环节。",["其它","AIFS","论文复现","AI4S"],"其它","ses_130857560ffebRRVOorz8TBEXI"),rt("case-fuxi-forecast-smoke","FuXi 预报模型训练冒烟验证","面向 FuXi 预报模型执行训练冒烟验证,快速确认配置与训练入口可用。",["地球科学","FuXi","冒烟验证"],"地球科学","ses_1109c4216ffe02IxWfmOd93yyu"),rt("case-fuxi-run-test","FuXi 模型下载与运行测试","下载 FuXi 预训练权重并执行运行测试,验证推理流程与结果产出。",["地球科学","FuXi","推理"],"地球科学","ses_12afd8b95ffeFdtfOOORfsnETp"),rt("case-ocean-atmo-fusion","海气融合预测模型搭建","从 ERA5 与海温场出发,搭建海气融合预测模型可调试骨架与运行模板。",["地球科学","海气耦合","ERA5"],"地球科学","ses_173de5f78ffemATonCgBtx7ECA"),rt("case-xihe-parallel","羲和模型并行训练改造","对羲和气象模型进行并行训练改造,生成并行策略与任务提交脚本。",["地球科学","羲和","并行训练"],"地球科学","ses_131e650f7ffejnFYPuWmd1TBPr"),rt("case-ns-benchmark","NS 方程多模型对比评测","围绕 Navier-Stokes 方程,统一 FNO、DeepONet、PINNs 的数据与评估口径,横向对比。",["流体仿真","NS 方程","评测"],"流体仿真","ses_10bffedbbffeAnlewduYPOpjBz")]},docs:{eyebrow:"Docs and Downloads",title:"文档与下载中心",count:"共 18 个文档资源:用户手册 13,插件 4,发版记录 1",search:"搜索文档、版本或下载内容...",filters:["全部","用户手册","插件","发版记录"],items:Go}};function Fi(e){const t=e?.modelsCount??He.models.items.length,a=e?.datasetsCount??He.datasets.items.length,r=e?.appsCount??He.apps.items.length,s=e?.primitiveCount??0;return{metrics:[{value:String(t),title:"领域模型",copy:"覆盖地球科学、生命科学、材料化学和流体仿真等方向",href:et("onemodel"),image:"/assets/onescience/domain-model.png"},{value:String(a),title:"科学数据集",copy:"沉淀可接入、可追溯、可复用的领域先验知识",href:et("onedata"),image:"/assets/onescience/scientific-dataset.png"},{value:String(s),title:"Skill原语",copy:"沉淀可被智能体调用、编排和复用的原语资产",href:et("oneskills"),image:"/assets/onescience/skill-primitives.png"}],metricLinks:[{value:String(r),title:"科研应用库",copy:"进入应用库资源界面查看可复用应用与模板",href:et("hpc")},{value:String(He.frameworks.items.length),title:"多平台框架",copy:"进入框架资源界面查看训推与并行框架",href:ar()},{value:String(He.operators.items.length),title:"领域算子",copy:"进入算子资源界面查看领域与基础算子",href:ar()}]}}Fi();function Oa(e,t=200){return typeof window.requestIdleCallback=="function"?window.requestIdleCallback(()=>e()):window.setTimeout(e,t)}function da(e){if(typeof window.cancelIdleCallback=="function"){window.cancelIdleCallback(e);return}window.clearTimeout(e)}function Ba(){Xr()}function Fn(e){return{datasets:He.datasets.items.length+e.datasets,models:He.models.items.length+e.models,apps:He.apps.items.length+e.apps,frameworks:He.frameworks.items.length+(e.frameworks??0)}}function sa(e,t){const a={};for(const r of t){const s=Bn(e,r);a[s]=(a[s]??0)+1}return a}function Tn(...e){const t={};for(const a of e)if(a)for(const[r,s]of Object.entries(a))t[r]=(t[r]??0)+s;return t}const Nr={datasets:"高质量数据集",models:"预训练模型",apps:"应用",frameworks:"AI 框架"};function En(e,t){const a=He[e].filters.filter(c=>c!=="全部"),r=a.map(c=>({filter:c,total:t[c]??0})).filter(c=>c.total>0),s=Object.entries(t).filter(([c,g])=>g>0&&!a.includes(c)).sort(([c],[g])=>c.localeCompare(g)).map(([c,g])=>({filter:c,total:g})),d=[...r,...s].map(c=>`${c.filter} ${c.total}`),l=Object.values(t).reduce((c,g)=>c+g,0);return d.length>0?`共 ${l} 个${Nr[e]}:${d.join(",")}`:`共 ${l} 个${Nr[e]}`}function Ti(e,t){return He[e].count.replace(/共 \d+ 个/,`共 ${t} 个`)}const zh=new Set(["datasets","models","apps"]),Ia=new Set(["datasets","models","apps","frameworks"]),jh={"model-development":"构建或改造科学模型。","dataset-building":"生成 AI-ready 数据集。","data-analysis":"完成分析、可视化与报告。","model-training":"生成配置并提交训练。","model-inference-testing":"运行模型并评估结果。","research-workflow-building":"编排端到端科研流程。","paper-reproduction":"复现实验并生成报告。","model-performance-analysis":"定位模型性能瓶颈。","operator-performance-optimization":"优化热点 Kernel 并复测。","model-optimization":"优化结构、指标与训练策略。","model-adaptation":"生成适配器并完成验证。"},ua=new Map,ui=new Map,ai=new Map,Wh=1e3*60*60,On={draft:"草稿",callable:"可调用"},Fa=new Map,Rr=24,Nn=24,Ei={"earth-era5":"https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation","earth-cmems":"https://catalogue.marine.copernicus.eu/documents/PUM/CMEMS-GLO-PUM-001-030.pdf","earth-merra2":"https://gmao.gsfc.nasa.gov/pubs/docs/Bosilovich785.pdf","earth-jra3q":"https://www.data.jma.go.jp/jra/html/JRA-3Q/document/JRA-3Q_TL479_format_v1_en.pdf","earth-jra55":"https://www.data.jma.go.jp/jra/html/JRA-55/document/JRA-55_handbook_TL319_v2_en.pdf","earth-ncep-ncar-r1":"https://psl.noaa.gov/data/gridded/data.ncep.reanalysis.html","earth-gfs":"https://www.nco.ncep.noaa.gov/pmb/products/gfs/","earth-gefs":"https://www.nco.ncep.noaa.gov/pmb/products/gens/","earth-hrrr":"https://www.nco.ncep.noaa.gov/pmb/products/hrrr/","earth-ecmwf-open-data":"https://confluence.ecmwf.int/display/DAC/ECMWF+open+data%3A+real-time+forecasts+from+IFS+and+AIFS","earth-cmip6":"https://wcrp-cmip.org/cmip6/","earth-s2s":"https://confluence.ecmwf.int/display/S2S","earth-cfsv2":"https://www.nco.ncep.noaa.gov/pmb/products/cfs/","earth-oisst":"https://www.ncei.noaa.gov/products/optimum-interpolation-sst","earth-argo-gdac":"https://argo.ucsd.edu/data/data-faq/","earth-wod":"https://www.ncei.noaa.gov/products/world-ocean-database","earth-hycom-gofs":"https://www.hycom.org/dataserver","earth-gpm-imerg":"https://gpm.nasa.gov/data/directory","earth-chirps":"https://www.chc.ucsb.edu/data/chirps3","earth-gldas":"https://ldas.gsfc.nasa.gov/gldas","earth-smap":"https://nsidc.org/data/smap","earth-grace-fo":"https://grace.jpl.nasa.gov/data/get-data/","earth-nexrad-level2":"https://github.com/awslabs/open-data-docs/tree/main/docs/noaa/noaa-nexrad","earth-mrms":"https://vlab.noaa.gov/web/wdtd/mrms-products-guide","earth-goes-abi":"https://www.goes-r.gov/products/baseline-cloud-moisture-imagery.html","earth-himawari-ahi":"https://www.data.jma.go.jp/mscweb/en/himawari89/space_segment/hsd_sample/HS_D_users_guide_en.pdf","earth-modis":"https://modis.gsfc.nasa.gov/data/dataprod/","earth-landsat-c2":"https://www.usgs.gov/landsat-missions/landsat-collection-2-level-2-science-products","earth-noaa-20cr":"https://psl.noaa.gov/data/20thC_Rean/","earth-cerra":"https://confluence.ecmwf.int/display/CKB/Copernicus+European+Regional+ReAnalysis+%28CERRA%29%3A+product+user+guide","earth-cams-global-atmosphere":"https://confluence.ecmwf.int/display/CKB/CAMS%3A+Global+atmospheric+composition+forecast+data+documentation","earth-cfsr":"https://www.nco.ncep.noaa.gov/pmb/products/cfs/","earth-nam":"https://www.emc.ncep.noaa.gov/emc/pages/numerical_forecast_systems/nam.php","earth-rap":"https://rapidrefresh.noaa.gov/","earth-mur-sst":"https://podaac.github.io/tutorials/quarto_text/GHRSST.html","earth-esa-sst-cci":"https://climate.esa.int/en/projects/sea-surface-temperature/","earth-hadisst":"https://www.metoffice.gov.uk/hadobs/hadisst/","earth-sea-ice-cdr":"https://www.ncei.noaa.gov/pub/data/sds/cdr/CDRs/Sea_Ice_Concentration/UserGuide_01B-11.pdf","earth-ghcn-daily":"https://www.ncei.noaa.gov/pub/data/ghcn/daily/readme.txt","earth-hadisd":"https://hadobs.metoffice.gov.uk/hadisd/","earth-gistemp":"https://data.giss.nasa.gov/gistemp/faq/","earth-berkeley-earth":"https://berkeleyearth.org/data/","earth-cmorph-cdr":"https://www.ncei.noaa.gov/pub/data/sds/cdr/CDRs/Precipitation-CMORPH/","earth-gsmap":"https://www.eorc.jaxa.jp/GPM/doc/data_utilization/GSMaP_Guidelines_E.pdf","earth-persiann-cdr":"https://www.ncei.noaa.gov/products/climate-data-records/precipitation-persiann","earth-cpc-unified-precip":"https://www.drought.gov/data-maps-tools/global-cpc-unified-daily-precipitation","earth-sentinel1":"https://documentation.dataspace.copernicus.eu/Data/SentinelMissions/Sentinel1.html","earth-sentinel2":"https://documentation.dataspace.copernicus.eu/Data/SentinelMissions/Sentinel2.html","earth-sentinel3":"https://documentation.dataspace.copernicus.eu/Data/SentinelMissions/Sentinel3.html","earth-sentinel5p":"https://documentation.dataspace.copernicus.eu/Data/SentinelMissions/Sentinel5P.html","fluid-pdebench":"https://github.com/pdebench/PDEBench/tree/main/pdebench/data_download","fluid-cfdbench":"https://arxiv.org/abs/2310.05963","fluid-rpb-cno":"https://modelscope.cn/datasets/OneScience/RPB_CNO","fluid-fno":"https://modelscope.cn/datasets/OneScience/FNO","fluid-pointnet-cfd":"https://modelscope.cn/datasets/OneScience/pointnet_cfd","fluid-pdearena":"https://pdearena.github.io/pdearena/","fluid-blastnet":"https://arxiv.org/abs/2309.13457","fluid-jhtdb":"https://turbulence.idies.jhu.edu/datasets","fluid-deepmind-l2s":"https://arxiv.org/abs/2002.09405","fluid-meshgraphnets":"https://arxiv.org/abs/2010.03409","fluid-fda-blood-flow":"https://pubmed.ncbi.nlm.nih.gov/21428676/","fluid-nasa-tmr":"https://tmbwg.github.io/turbmodels/","fluid-spdebench":"https://arxiv.org/abs/2505.18511","fluid-realpdebench":"https://github.com/AI4Science-WestlakeU/RealPDEBench","fluid-drivaernet":"https://github.com/Mohamedelrefaie/DrivAerNet","fluid-drivaerml":"https://arxiv.org/abs/2408.11969","fluid-eagle-dataset":"https://arxiv.org/abs/2302.10803","fluid-shapenet-car":"https://dl.acm.org/doi/10.1145/3197517.3201325","fluid-airfrans":"https://airfrans.readthedocs.io/en/latest/","fluid-geo-fno":"https://arxiv.org/abs/2207.05209","fluid-bubbleml":"https://github.com/HPCForge/BubbleML","fluid-rae2822-airfoil":"https://github.com/giovannicatalani/Aerodynamic-VAE","fluid-cfdoneval":"https://github.com/Sysuzqs/CFDNNEval","fluid-kolmogorov-flow-dns":"https://github.com/KovacsKA00/Nek5000-interpolation","fluid-parameterized-u-bend":"https://zenodo.org/badge/latestdoi/612247257","fluid-blendednet":"https://arxiv.org/abs/2509.07209","fluid-naca0012-compressible":"https://data.mendeley.com/datasets/g3x4phfr3r/2","life-pdb":"https://www.rcsb.org/docs/","life-uniref90":"https://www.uniprot.org/help/uniref","life-uniprot":"https://www.uniprot.org/help/uniprotkb","life-bfd":"https://bfd.mmseqs.com/","life-mgnify":"https://www.ebi.ac.uk/metagenomics/","life-afdb-swissprot":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-afesm":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-afesme":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-opengenome2":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/evo2/README.md","life-casp14":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-cameo22":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-apo":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-codnas":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md","life-protenix-release-data":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/protenix/README.md","life-hg38-mm10-reference":"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphagenome/README.md","life-ur50d-2021-04":"https://github.com/facebookresearch/esm","life-esm-structural-split":"https://github.com/facebookresearch/esm","life-esm-metagenomic-atlas":"https://github.com/facebookresearch/esm","life-tahoe-100m":"https://arcinstitute.org/news/news/arc-virtual-cell-atlas-launch","life-scbasecount":"https://arcinstitute.org/news/news/arc-virtual-cell-atlas-launch","life-replogle-nadig-perturbseq":"https://github.com/ArcInstitute/state","life-virtual-cell-challenge-dataset":"https://virtualcellchallenge.org/","life-pdbbind":"https://www.pdbbind-plus.org.cn/","life-bindingmoad":"https://github.com/gcorso/DiffDock","life-dockgen":"https://github.com/gcorso/DiffDock","life-posebusters-benchmark":"https://github.com/maabuu/posebusters","life-crossdocked2020":"https://github.com/guanjq/targetdiff","life-casf-2016":"https://github.com/sc8668/GenScore","life-dekois2-dude-docking-poses":"https://github.com/sc8668/GenScore","life-csar-nrc-hiq":"https://github.com/sc8668/GenScore","life-merck-fep-benchmark":"https://github.com/sc8668/GenScore","life-pdbbind-crossdocked-core":"https://github.com/sc8668/GenScore","life-mimic-cxr":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","life-slake-vqa":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","life-pad-ufes-20":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","life-tcga":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","life-camelyon":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","life-pmc-oa":"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card","material-mptrj":"https://chgnet.lbl.gov/","material-salex":"https://alexandria.icams.rub.de/","material-omat24":"https://github.com/facebookresearch/fairchem/blob/main/docs/inorganic_materials/datasets/omat24.md","material-omol25":"https://github.com/facebookresearch/fairchem/blob/main/docs/molecules/datasets/omol25.md","material-oc20":"https://github.com/facebookresearch/fairchem/blob/main/docs/catalysts/datasets/oc20.md","material-alexandria":"https://alexandria.icams.rub.de/","material-oc22":"https://github.com/facebookresearch/fairchem/blob/main/docs/catalysts/datasets/oc22.md","material-md22":"http://www.sgdml.org/","material-deepmd-water-demo":"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/dp","material-mace-example":"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/mace","material-matpl-example":"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/nep"},Oi={GraphCast:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/graphcast",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/graphcast",paper:"https://www.science.org/doi/10.1126/science.adi2336"},FourCastNet:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fourcastnet",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fourcastnet",paper:"https://arxiv.org/abs/2202.11214"},FourCastNet_v2:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fourcastnet",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fourcastnet",paper:"https://arxiv.org/abs/2306.03838"},OneForecast:{docs:"https://modelscope.cn/models/OneScience/OneForecast",paper:"https://arxiv.org/abs/2502.00338"},StormCast:{docs:"https://modelscope.cn/models/OneScience/StormCast",paper:"https://arxiv.org/abs/2408.10958"},GlobalSurgeML:{docs:"https://modelscope.cn/models/OneScience/GlobalSurgeML"},FireCubeNet:{docs:"https://modelscope.cn/models/OneScience/FireCubeNet"},"WoFS-StormCal":{docs:"https://modelscope.cn/models/OneScience/WoFS-StormCal"},ClimateBench:{docs:"https://modelscope.cn/models/OneScience/ClimateBench"},CausalModelEvaluation:{docs:"https://modelscope.cn/models/OneScience/CausalModelEvaluation"},"Pangu-weather":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/pangu_weather",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/pangu_weather",paper:"https://www.nature.com/articles/s41586-023-06185-3"},CorrDiff:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/corrdiff",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/corrdiff",paper:"https://arxiv.org/abs/2309.15214"},FengWu:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fengwu",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fengwu",paper:"https://arxiv.org/abs/2304.02948"},FuXi:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fuxi",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fuxi",paper:"https://www.nature.com/articles/s41612-023-00512-1"},FuXi_v21:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fuxi",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/fuxi",paper:"https://www.nature.com/articles/s41612-023-00512-1"},XiHe:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/xihe",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/earth/xihe",paper:"https://arxiv.org/abs/2402.02995"},WenHai:{github:"https://github.com/Cuiyingzhe/WenHai",docs:"https://github.com/Cuiyingzhe/WenHai",paper:"https://www.nature.com/articles/s41467-025-57389-2"},GenCast:{github:"https://github.com/google-deepmind/graphcast",docs:"https://deepmind.google/research/publications/gencast-learning-skillful-ensemble-forecasting-of-medium-range-weather/",paper:"https://www.nature.com/articles/s41586-024-08252-9"},WeatherNext2:{docs:"https://deepmind.google/en/science/weathernext/",paper:"https://arxiv.org/abs/2506.10772"},"Artificial Intelligence Forecasting System":{github:"https://github.com/ecmwf/anemoi-core",docs:"https://anemoi.readthedocs.io/",paper:"https://arxiv.org/abs/2406.01465"},AURORA:{github:"https://github.com/microsoft/aurora",docs:"https://microsoft.github.io/aurora/",paper:"https://www.nature.com/articles/s41586-025-09005-y"},NeuralGCM:{github:"https://github.com/neuralgcm/neuralgcm",docs:"https://neuralgcm.readthedocs.io/",paper:"https://www.nature.com/articles/s41586-024-07744-y"},PrithviWxC:{github:"https://github.com/NASA-IMPACT/Prithvi-WxC",docs:"https://www.earthdata.nasa.gov/news/blog/nasa-ibm-research-apply-ai-weather-climate",paper:"https://arxiv.org/abs/2409.13598"},ClimaX:{github:"https://github.com/microsoft/ClimaX",docs:"https://microsoft.github.io/ClimaX/",paper:"https://arxiv.org/abs/2301.10343"},"metnet-3":{docs:"https://research.google/blog/metnet-3-a-state-of-the-art-neural-weather-model-available-in-google-products/",paper:"https://arxiv.org/abs/2306.06079"},NowcastNet_Earth:{docs:"https://www.nature.com/articles/s41586-023-06184-4",paper:"https://www.nature.com/articles/s41586-023-06184-4"},"Deep-Generative-Model-of-Rain":{github:"https://github.com/deepmind/deepmind-research/tree/master/nowcasting",docs:"https://deepmind.google/discover/blog/nowcasting-the-next-hour-of-rain/",paper:"https://www.nature.com/articles/s41586-021-03854-z"},Earthformer:{github:"https://github.com/amazon-science/earth-forecasting-transformer",docs:"https://gaozhihan.github.io/Earthformer/",paper:"https://arxiv.org/abs/2207.05833"},"Spherical-Fourier-Neural-Operators":{github:"https://github.com/NVIDIA/torch-harmonics",docs:"https://developer.nvidia.com/blog/modeling-earths-atmosphere-with-spherical-fourier-neural-operators/",paper:"https://proceedings.mlr.press/v202/bonev23a.html"},"deep-learning-weather-prediction":{github:"https://github.com/jweyn/DLWP",docs:"https://docs.nvidia.com/deeplearning/modulus/modulus-core-v040/examples/weather/dlwp/README.html",paper:"https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2020MS002109"},Stormer:{github:"https://github.com/tung-nd/stormer",docs:"https://arxiv.org/abs/2312.03876",paper:"https://arxiv.org/abs/2312.03876"},AtmoRep:{github:"https://github.com/clessig/atmorep",docs:"https://www.atmorep.org/",paper:"https://arxiv.org/abs/2308.13280"},"Aardvark-Weather":{github:"https://github.com/annavaughan/aardvark-weather-public",docs:"https://www.nature.com/articles/s41586-025-08897-0",paper:"https://www.nature.com/articles/s41586-025-08897-0"},GraphDOP:{docs:"https://arxiv.org/abs/2412.15687",paper:"https://arxiv.org/abs/2412.15687"},GLONET:{docs:"https://huggingface.co/mercator-ocean/GLONET",paper:"https://arxiv.org/abs/2412.05454"},Ai2_Climate_Emulator:{github:"https://github.com/ai2cm/ace",docs:"https://allenai.org/blog/ai2-climate-emulator",paper:"https://arxiv.org/abs/2310.02074"},Samudra:{github:"https://github.com/m2lines/Samudra",docs:"https://m2lines.github.io/code/",paper:"https://arxiv.org/abs/2412.03795"},"FuXi-S2S":{github:"https://github.com/tpys/FuXi-S2S",docs:"https://github.com/tpys/FuXi-S2S",paper:"https://www.nature.com/articles/s41467-024-50714-1"},"FengWu-W2S":{docs:"https://arxiv.org/abs/2411.10191",paper:"https://arxiv.org/abs/2411.10191"},SEEDS:{docs:"https://research.google/pubs/seeds-emulation-of-weather-forecast-ensembles-with-diffusion-models/",paper:"https://arxiv.org/abs/2306.14066"},ClimODE:{github:"https://github.com/Aalto-QuML/ClimODE",docs:"https://openreview.net/forum?id=xuY33XhEGR",paper:"https://arxiv.org/abs/2404.10024"},"Spherical DYffusion":{github:"https://github.com/Rose-STL-Lab/spherical-dyffusion",docs:"https://github.com/Rose-STL-Lab/spherical-dyffusion",paper:"https://arxiv.org/abs/2406.14798"},"W-MAE":{github:"https://github.com/Gufrannn/W-MAE",docs:"https://arxiv.org/abs/2304.08754",paper:"https://arxiv.org/abs/2304.08754"},RainNet:{github:"https://github.com/hydrogo/rainnet",docs:"https://github.com/hydrogo/rainnet",paper:"https://gmd.copernicus.org/articles/13/2631/2020/"},ConvLSTM:{docs:"https://papers.nips.cc/paper/5955-convolutional-lstm-network-a-machine-learning-approach-for-precipitation-nowcasting",paper:"https://papers.nips.cc/paper/5955-convolutional-lstm-network-a-machine-learning-approach-for-precipitation-nowcasting"},"SmaAt-UNet":{github:"https://github.com/HansBambel/SmaAt-UNet",docs:"https://github.com/HansBambel/SmaAt-UNet",paper:"https://arxiv.org/abs/2007.04417"},"Prithvi-EO":{github:"https://github.com/NASA-IMPACT/hls-foundation-os",docs:"https://huggingface.co/ibm-nasa-geospatial",paper:"https://arxiv.org/abs/2412.02732"},TerraMind:{github:"https://github.com/IBM/terramind",docs:"https://github.com/IBM/terramind",paper:"https://arxiv.org/abs/2504.11171"},"Clay-Foundation-Model":{github:"https://github.com/Clay-foundation/model",docs:"https://clay-foundation.github.io/model/"},AlphaEarthFoundations:{docs:"https://deepmind.google/blog/alphaearth-foundations-helps-map-our-planet-in-unprecedented-detail/",paper:"https://arxiv.org/abs/2507.22291"},Surya:{github:"https://github.com/NASA-IMPACT/Surya",docs:"https://www.heliofm.org/",paper:"https://ntrs.nasa.gov/citations/20250008498"},SatMAE:{github:"https://github.com/sustainlab-group/SatMAE",docs:"https://sustainlab-group.github.io/SatMAE/",paper:"https://arxiv.org/abs/2207.08051"},"SatMAE-PP":{github:"https://github.com/techmn/satmae_pp",docs:"https://github.com/techmn/satmae_pp",paper:"https://arxiv.org/abs/2403.05419"},"Scale-MAE":{docs:"https://openaccess.thecvf.com/content/ICCV2023/papers/Reed_Scale-MAE_A_Scale-Aware_Masked_Autoencoder_for_Multiscale_Geospatial_Representation_Learning_ICCV_2023_paper.pdf",paper:"https://arxiv.org/abs/2212.14532"},DOFA:{github:"https://github.com/zhu-xlab/DOFA",docs:"https://huggingface.co/earthflow/DOFA",paper:"https://arxiv.org/abs/2403.15356"},RemoteCLIP:{github:"https://github.com/ChenDelong1999/RemoteCLIP",docs:"https://github.com/ChenDelong1999/RemoteCLIP",paper:"https://arxiv.org/abs/2306.11029"},SkySense:{github:"https://github.com/Jack-bo1220/SkySense",docs:"https://github.com/Jack-bo1220/SkySense",paper:"https://arxiv.org/abs/2312.10115"},SpectralGPT:{github:"https://github.com/danfenghong/IEEE_TPAMI_SpectralGPT",docs:"https://github.com/danfenghong/IEEE_TPAMI_SpectralGPT",paper:"https://arxiv.org/abs/2311.07113"},SatlasPretrain:{github:"https://github.com/allenai/satlaspretrain_models",docs:"https://satlas-pretrain.allen.ai/",paper:"https://openaccess.thecvf.com/content/ICCV2023/papers/Bastani_SatlasPretrain_A_Large-Scale_Dataset_for_Remote_Sensing_Image_Understanding_ICCV_2023_paper.pdf"},AlphaFold:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphafold/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphafold/README.md",paper:"https://doi.org/10.1038/s41586-021-03819-2"},OpenFold:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/openfold/monomer/inference.sh",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/openfold/monomer/inference.sh"},AlphaFold3:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphafold3/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/alphafold3/README.md",paper:"https://www.nature.com/articles/s41586-024-07487-w"},protenix:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/protenix/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/protenix/README.md",paper:"https://github.com/bytedance/Protenix/blob/main/Protenix_Technical_Report.pdf"},RFdiffusion:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/RFdiffusion/RFdiffusion_README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/RFdiffusion/RFdiffusion_README.md",paper:"https://www.nature.com/articles/s41586-023-06415-8"},ProteinMPNN:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/ProteinMPNN/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/ProteinMPNN/README.md",paper:"https://www.biorxiv.org/content/10.1101/2022.06.03.494563v1"},"PT-DiT":{github:"https://gitee.com/onescience-ai/onescience/blob/main/src/onescience/flax_models/Pt_DiT/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/src/onescience/flax_models/Pt_DiT/README.md",paper:"https://doi.org/10.1101/2023.11.27.568722"},SimpleFold:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/simplefold/README.md",paper:"https://arxiv.org/abs/2509.18480"},evo2:{github:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/evo2/README.md",docs:"https://gitee.com/onescience-ai/onescience/blob/main/examples/biosciences/evo2/README.md",paper:"https://www.biorxiv.org/content/10.1101/2025.02.18.638918v1"},alphagenome:{github:"https://github.com/google-deepmind/alphagenome",docs:"https://www.alphagenomedocs.com/"},MolSculptor:{github:"https://github.com/egg5154/MolSculptor",docs:"https://github.com/egg5154/MolSculptor",paper:"https://doi.org/10.26434/chemrxiv-2025-v4758"},ESM:{github:"https://github.com/facebookresearch/esm",docs:"https://github.com/facebookresearch/esm",paper:"https://www.science.org/doi/abs/10.1126/science.ade2574"},Foldseek:{github:"https://github.com/steineggerlab/foldseek",docs:"https://github.com/steineggerlab/foldseek/wiki",paper:"https://www.nature.com/articles/s41587-023-01773-0"},STATE:{github:"https://github.com/ArcInstitute/state",docs:"https://github.com/ArcInstitute/state",paper:"https://www.biorxiv.org/content/10.1101/2025.06.26.661135v2"},"La-Proteina":{github:"https://github.com/NVIDIA-Digital-Bio/la-proteina",docs:"https://github.com/NVIDIA-Digital-Bio/la-proteina",paper:"https://arxiv.org/abs/2507.09466"},DiffDock:{github:"https://github.com/gcorso/DiffDock",docs:"https://github.com/gcorso/DiffDock",paper:"https://arxiv.org/abs/2210.01776"},TargetDiff:{github:"https://github.com/guanjq/targetdiff",docs:"https://github.com/guanjq/targetdiff",paper:"https://openreview.net/pdf?id=kJqXEPXMsE0"},GenScore:{github:"https://github.com/sc8668/GenScore",docs:"https://github.com/sc8668/GenScore",paper:"https://doi.org/10.1039/D3SC02044D"},Medgemma:{github:"https://github.com/Google-Health/medgemma",docs:"https://developers.google.com/health-ai-developer-foundations/medgemma/model-card",paper:"https://arxiv.org/abs/2604.05081"},FNO:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2010.08895"},GFNO:{github:"https://gitee.com/onescience-ai/onescience/tree/main/src/onescience/models/cfd_benchmark/GFNO.py",docs:"https://gitee.com/onescience-ai/onescience/tree/main/src/onescience/models/cfd_benchmark/GFNO.py"},DeepONet:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PDENNEval",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PDENNEval",paper:"https://arxiv.org/abs/1910.03193"},MeshGraphNet:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Vortex_shedding_mgn",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Vortex_shedding_mgn",paper:"https://arxiv.org/abs/2010.03409"},"Transolver-Airfoil-Design":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Transolver-Airfoil-Design",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Transolver-Airfoil-Design",paper:"https://arxiv.org/abs/2402.02366"},UNO:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2204.11127"},PINNs:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PDENNEval",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PDENNEval",paper:"https://arxiv.org/abs/1711.10561"},"Geo-FNO":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2207.05209"},GINO:{github:"https://github.com/neuraloperator/gino",paper:"https://arxiv.org/abs/2302.14376"},MP_PDE:{github:"https://github.com/brandstetter-johannes/MP-Neural-PDE-Solvers",paper:"https://arxiv.org/abs/2202.03376"},CNO:{github:"https://github.com/camlab-ethz/ConvolutionalNeuralOperator",paper:"https://arxiv.org/abs/2302.01178"},FactFormer:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2305.17560"},GATr:{github:"https://github.com/Qualcomm-AI-research/geometric-algebra-transformer",paper:"https://arxiv.org/abs/2305.18415"},"Transolver-Car-Design":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Transolver-Car-Design",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/Transolver-Car-Design",paper:"https://arxiv.org/abs/2511.06294"},"Factorized Fourier Neural Operator":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2111.13802"},KNO:{github:"https://github.com/Koopman-Laboratory/KoopmanLab",paper:"https://arxiv.org/abs/2301.10022"},"Multi-Scale Patch Transformer":{github:"https://github.com/pedrocurvo/mspt",paper:"https://arxiv.org/abs/2512.01738"},"Universal Physics Transformers":{github:"https://github.com/ml-jku/UPT",paper:"https://arxiv.org/abs/2402.12365"},"Anchored-Branched Universal Physics Transformers":{github:"https://github.com/Emmi-AI/anchored-branched-universal-physics-transformers",paper:"https://arxiv.org/abs/2502.09692"},OFormer:{github:"https://github.com/BaratiLab/OFormer",paper:"https://openreview.net/forum?id=EPPqt3uERT"},PointNetCFD:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark"},ONO:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2310.12487"},Poseidon:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2405.19101"},DiffusionPDE:{github:"https://github.com/jhhuangchloe/DiffusionPDE",paper:"https://arxiv.org/abs/2406.17763"},"Diffusion Graph Net":{github:"https://github.com/tum-pbs/dgn4cfd",paper:"https://arxiv.org/abs/2504.02843"},EagleMeshTransformer:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/EagleMeshTransformer",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/EagleMeshTransformer",paper:"https://arxiv.org/abs/2302.10803"},XPINNs:{github:"https://github.com/AmeyaJagtap/XPINNs",paper:"https://www.global-sci.com/cicp/article/view/6911"},cPINN:{github:"https://github.com/AmeyaJagtap/Conservative_PINNs",paper:"https://doi.org/10.1016/j.cma.2020.113028"},gPINNs:{github:"https://github.com/lu-group/gpinn",paper:"https://doi.org/10.1016/j.cma.2022.114823"},VPINNs:{github:"https://github.com/cmgcds/fastvpinns",paper:"https://arxiv.org/abs/2404.12063"},BPINNs:{github:"https://github.com/jjdabr/BPINN-Wildfire",paper:"https://arxiv.org/abs/2212.00970"},"SA-PINNs":{github:"https://github.com/levimcclenny/SA-PINNs",paper:"https://arxiv.org/abs/2009.04544"},FPINNs:{github:"https://github.com/lululxvi/deepxde",paper:"https://arxiv.org/abs/1811.08967"},GP_for_TO:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/GP_for_TO",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/GP_for_TO"},PINNsformer:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PINNsformer",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PINNsformer"},"U-FNO":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PINNsformer",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/PINNsformer",paper:"https://arxiv.org/abs/2109.03697"},MWT:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2109.13459"},"Galerkin Transformer":{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/cfd/CFD_Benchmark",paper:"https://arxiv.org/abs/2105.14995"},MACE:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem"},UMA:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem"},DeePMD:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/1707.09571"},NEP:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2205.10046"},MatRIS:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2603.02002"},TACE:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2509.14961"},Nequix:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2508.16067"},Mattersim:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2405.04967"},GRACE:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://arxiv.org/abs/2508.17936"},Allegro:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem",paper:"https://www.nature.com/articles/s41467-023-36329-y"},Mattergen:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/mattergen",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/mattergen"},Equiformer_v3:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/equiformer_v3",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/equiformer_v3",paper:"https://arxiv.org/abs/2604.09130"},eSEN:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/esen",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/esen"},NequIP:{github:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/nequip",docs:"https://gitee.com/onescience-ai/onescience/tree/main/examples/matchem/nequip",paper:"https://www.nature.com/articles/s41467-022-29939-5"}};function Ha(e){if(Ni(e))return e.source==="onescience"?{label:"OneScience",tone:"onescience"}:e.source==="paper"?{label:"论文资料",tone:"paper"}:e.source==="local"?{label:"本地入口",tone:"local"}:e.page==="datasets"?{label:"第三方数据",tone:"third-party"}:{label:"第三方资源",tone:"third-party"};const t="href"in e&&typeof e.href=="string"?e.href:void 0;if("id"in e&&ga(e.id)?.startsWith("OneScience/"))return{label:"OneScience",tone:"onescience"};if("title"in e&&La(e.title)?.startsWith("OneScience/"))return{label:"OneScience",tone:"onescience"};if(t?.includes("modelscope.cn/datasets/OneScience/"))return{label:"OneScience",tone:"onescience"};const a=Oi[e.title],r=a?.docs??a?.paper??("id"in e?Ei[e.id]??t:t);return r?r.includes("gitee.com/onescience-ai")||r.includes("github.com/onescience-ai")||r.includes("dos.sourcefind.cn")||r.includes("das.sourcefind.cn")?{label:"OneScience",tone:"onescience"}:r.includes("modelscope.cn/datasets/OneScience/")?{label:"OneScience",tone:"onescience"}:r.includes("arxiv.org")||r.includes("nature.com")||r.includes("science.org")||r.includes("openreview.net")?{label:"论文资料",tone:"paper"}:"id"in e&&(e.id.startsWith("earth-")||e.id.startsWith("fluid-")||e.id.startsWith("life-")||e.id.startsWith("material-"))?{label:"第三方数据",tone:"third-party"}:{label:"第三方资源",tone:"third-party"}:{label:"本地入口",tone:"local"}}function Ni(e){return"source"in e&&"page"in e}function Tt(e){return Ni(e)&&e.id.startsWith("custom-")}function Dt(){return ft()?.account.id}function Rn(e){if(!Tt(e))return!1;const t=Dt();return!!(t&&e.owner===t)}function Ln(e){return Tt(e)&&!e.owner}function Vh(e){return Dt()?Rn(e)||Ln(e):!1}function Kh(e){return Dt()?Tt(e)?Rn(e)||Ln(e):!0:!1}function pe(e,t,a,r,s,d,l,c,g){return{id:e,title:t,copy:a,tags:r,provider:s,size:d,format:l,href:c,...g&&g.length>0?{links:g}:{},metricLabel:"规模",action:c?"安装":"导入"}}function rt(e,t,a,r,s,d){return{id:e,title:t,copy:a,tags:r,provider:"OneScience",size:s,format:"可复现",domain:s,sessionId:d,metricLabel:"领域",action:"基于此开发"}}function $(e,t,a,r,s,d,l,c){return{id:e,title:t,copy:a,tags:r,provider:s,size:d,format:l,href:c,metricLabel:"数据源",action:c||ga(e)?"下载":"导入"}}function k(e,t,a,r,s,d){return{id:e,title:t,copy:a,tags:r.filter(l=>!In.has(l)),provider:s,size:d,format:"预训练模型",metricLabel:"框架",action:"开发"}}function Na(e){const t=()=>{if(e.plain)return-1;const a=e.copy.indexOf(":");return a<=0||a>40?-1:a};return(()=>{var a=Iu();return i(a,n(y,{get when(){return t()>0},get fallback(){return e.copy},get children(){return[(()=>{var r=Mu();return i(r,()=>e.copy.slice(0,t())),r})(),ne(()=>e.copy.slice(t()))]}})),a})()}const Xh={datasets:{地球科学:["earth"],生命科学:["life"],材料化学:["material"],流体仿真:["fluid"],其它:["tools"]},models:{地球科学:["modelhub"],生命科学:["life"],材料化学:["material"],流体仿真:["fluid"],其它:["tools"]},frameworks:{训练框架:["framework-training"],并行训练:["framework-parallel"],推理框架:["framework-inference"]},operators:{基础算子:["operator"],科学算子:["sci-operator"],通信算子:["comm-operator"]},research:{物理AI:["physical-ai"],具身智能:["embodied-ai"],自动驾驶:["autonomous-driving"],世界模型:["world-model"]},docs:{用户手册:["用户手册"],插件:["插件"],发版记录:["发版记录"]}},Un={datasets:{life:"生命科学",drug:"生命科学",earth:"地球科学",material:"材料化学",fluid:"流体仿真",general:"其它",tools:"其它",components:"其它"},models:{modelhub:"地球科学",life:"生命科学",material:"材料化学",fluid:"流体仿真",tools:"其它"},frameworks:{aiframe:"训练框架",scaleframe:"并行训练",inferframe:"推理框架"},operators:{operator:"基础算子","sci-operator":"科学算子","comm-operator":"通信算子"},research:{"physical-ai":"物理AI","embodied-ai":"具身智能","autonomous-driving":"自动驾驶","world-model":"世界模型"},cases:{earth:"地球科学",material:"材料化学",life:"生命科学",fluid:"流体仿真",other:"其它","case-cfdbench":"流体仿真","case-esm2":"生命科学","case-fourcastnet":"地球科学","case-fuxi":"地球科学","case-mace":"材料化学","case-matris":"材料化学","case-mace-water-pes":"材料化学","case-meshgraphnet":"流体仿真","case-proteinmpnn":"生命科学","case-rae2822-fno":"流体仿真","case-aifs-repro":"其它","case-fuxi-forecast-smoke":"地球科学","case-fuxi-run-test":"地球科学","case-ocean-atmo-fusion":"地球科学","case-xihe-parallel":"地球科学","case-ns-benchmark":"流体仿真"},docs:{manual:"用户手册",plugins:"插件",release:"发版记录"}};function mi(e,t,a){const r=t.replace(/^#/,"").trim().toLowerCase();if(!r)return;let s=r;try{s=decodeURIComponent(r)}catch{s=r}const d=Un[e],l=d?.[s]??d?.[r];if(l&&a.includes(l))return l;const c=a.find(g=>{const v=g.toLowerCase();return v===s||v===r});if(c)return c}function Gn(e,t){if(t==="全部")return"";const a=Un[e];if(!a)return t;for(const[r,s]of Object.entries(a))if(s===t)return r;return t}function ma(e,t,a){if(t==="全部")return!0;const r=t.toLowerCase(),s=Xh[e]?.[t],d=a.id;return d&&s?.some(l=>d===l||d.startsWith(`${l}-`))||a.layer===t||a.domain===t?!0:a.tags.some(l=>l.toLowerCase()===r||l.toLowerCase().includes(r))}function Ra(e){return He[e].filters.filter(t=>t!=="全部")}function Bn(e,t){const a=Ra(e),r=a.filter(s=>s!=="其它");for(const s of r)if(ma(e,s,t))return s;if(a.includes("其它"))return"其它";for(const s of a)if(ma(e,s,t))return s;return a[0]??"其它"}function ha(e,t,a){if(t==="全部")return a;if(t==="其它"&&Ra(e).includes("其它")){const r=Ra(e).filter(s=>s!=="其它");return a.filter(s=>!r.some(d=>ma(e,d,s)))}return a.filter(r=>ma(e,t,r))}const Jh={datasets:sa("datasets",He.datasets.items),models:sa("models",He.models.items),apps:sa("apps",He.apps.items),frameworks:sa("frameworks",He.frameworks.items)};function Qh(e,t){return Ti(e,t)}const Zh=new Set(["datasets","models","apps","cases"]);function Hn(e,t,a){const r=e==="datasets"?"数据集":e==="models"?"模型":e==="apps"?"应用":e==="cases"?"案例":"资源",s=a.trim();return s?`未找到与「${s}」匹配的${r},请调整搜索词或切换标签。`:t==="全部"?`暂无可展示的${r}。`:e==="cases"?t==="其它"?"当前「其它」标签下暂无案例,可切换到「全部」查看已有内容。":`当前「${t}」标签下暂无案例,可切换到「全部」查看或尝试其他标签。`:t==="其它"?`当前「其它」标签下暂无${r},可切换到「全部」查看已有内容,或通过上传补充。`:`当前「${t}」标签下暂无${r},可切换到「全部」查看或尝试其他标签。`}function qa(e,t){const a=e.trim();return a?t.filter(r=>Rs([r.title,r.copy,r.provider,r.format,"id"in r?r.id:"","domain"in r&&typeof r.domain=="string"?r.domain:"",...r.tags],a)):t}function Ri(e,t){return Tt(t)?!0:e==="models"?!!La(t.title):e==="datasets"&&"id"in t?!!ga(t.id):!0}function Li(e,t){if(e!=="models"&&e!=="datasets")return t;const a=[],r=[];for(const s of t)Ri(e,s)?a.push(s):r.push(s);return[...a,...r]}function Yh(){const[e,t]=_(0),a=j(()=>(e(),ft()));return Ft(()=>{const r=()=>t(s=>s+1);window.addEventListener(nr,r),window.addEventListener(sr,r),window.addEventListener(or,r),window.addEventListener("storage",r),Be(()=>{window.removeEventListener(nr,r),window.removeEventListener(sr,r),window.removeEventListener(or,r),window.removeEventListener("storage",r)})}),a}function ep(){const e=wt(),t=Yh();return(()=>{var a=Ou(),r=a.firstChild,s=r.firstChild,d=s.nextSibling;return i(r,n(Ze,{href:"/",class:"os-brand shrink-0",get children(){return[Fu(),Tu()]}}),s),i(s,n(ce,{each:Or,children:l=>(()=>{var c=Nu(),g=c.firstChild,v=g.nextSibling,b=v.firstChild,u=b.firstChild,h=u.firstChild,f=u.nextSibling;return i(g,()=>l.label),i(h,()=>l.copy),i(f,n(ce,{get each(){return l.items},children:w=>n(Ze,{get href(){return w.href},class:"os-menu-item",get children(){return[(()=>{var C=_n();return i(C,()=>w.title),C})(),(()=>{var C=Ru();return i(C,()=>w.copy),C})()]}})})),c})()})),i(d,n(Rl,{nav:Or,variant:"light"}),null),i(d,n(y,{get when(){return t()},get fallback(){return[n(Ze,{get href(){return ln({pathname:"/workspace",search:"",hash:""})},class:"os-button os-button-primary",children:"登录"}),(()=>{var l=Lu();return l.$$click=()=>e("/workspace"),l})()]},get children(){var l=Eu();return l.$$click=()=>e("/workspace"),l}}),null),a})()}function tp(){return(()=>{var e=Uu(),t=e.firstChild,a=t.firstChild,r=a.nextSibling,s=r.nextSibling,d=s.firstChild,l=d.nextSibling;return i(l,n(ce,{each:Eh,children:c=>(()=>{var g=Gu();return i(g,c),g})()})),e})()}function ap(){const e=Ci();return n(y,{get when(){return e.platform!=="desktop"},get fallback(){return n(zs,{href:"/workspace"})},get children(){return n(ip,{})}})}function ip(){wt();const e=ot();Et();const[t,a]=_(""),[r,s]=_(!0),[d,l]=_(),[c,g]=_();let v=0,b;const u=p=>{g(Fn(p)),l(p.callablePrimitives)},h=p=>{const M=nn(p);M&&u(M);const N=++v;Promise.all([sn(p,{refresh:!0}),on(p,{refresh:!0})]).then(([L,W])=>{if(N!==v)return;const O=L??M;if(!O&&W===void 0)return;const H={datasets:O?.datasets??M?.datasets??0,models:O?.models??M?.models??0,apps:O?.apps??M?.apps??0,frameworks:O?.frameworks??M?.frameworks??0,byDomain:O?.byDomain??M?.byDomain??{datasets:{},models:{},apps:{},frameworks:{}},callablePrimitives:W??O?.callablePrimitives??M?.callablePrimitives??0};(W!==void 0||L)&&bo(p,H),u(H)})};ge(ht(()=>e.current?.http.url,p=>{p&&h(p)})),Ft(()=>{const p=()=>{const M=e.current?.http.url;M&&h(M)};window.addEventListener("onescience:catalog-metrics-invalidated",p),Be(()=>window.removeEventListener("onescience:catalog-metrics-invalidated",p))});const f=j(()=>Fi({...d()!==void 0?{primitiveCount:d()}:{},...c()?.models!==void 0?{modelsCount:c()?.models}:{},...c()?.datasets!==void 0?{datasetsCount:c()?.datasets}:{},...c()?.apps!==void 0?{appsCount:c()?.apps}:{}})),w=()=>{const p=b;if(!p)return;const M=p.scrollTop+p.clientHeight>=p.scrollHeight-12;s(!M)};Gl("/",()=>b),Ft(()=>{w(),b?.addEventListener("scroll",w,{passive:!0}),window.addEventListener("resize",w,{passive:!0}),Be(()=>{b?.removeEventListener("scroll",w),window.removeEventListener("resize",w)})});const C=()=>{const p=b;if(!p)return;const M=p.querySelector("#product-content");if(M){const N=p.getBoundingClientRect().top,L=M.getBoundingClientRect().top-N+p.scrollTop;if(p.scrollTop<L-12){M.scrollIntoView({behavior:"smooth",block:"start"});return}}p.scrollBy({top:p.clientHeight*.85,behavior:"smooth"})};return(()=>{var p=Wu(),M=p.firstChild,N=M.firstChild,L=N.nextSibling,W=L.firstChild,O=W.nextSibling,H=O.nextSibling,D=H.firstChild,T=M.nextSibling,G=T.firstChild,z=G.firstChild,P=z.nextSibling,F=P.firstChild,B=F.nextSibling,re=B.nextSibling,de=T.nextSibling,J=de.firstChild,we=J.firstChild,Y=we.nextSibling,ve=de.nextSibling,$e=ve.firstChild,ue=$e.firstChild,Z=ue.nextSibling,te=b;return typeof te=="function"?pa(te,p):b=p,i(p,n(ep,{}),M),i(N,n(ce,{each:Uh,children:ee=>(()=>{var K=Vu();return E(X=>{var fe=`${ee[0]}%`,De=`${ee[1]}%`,qe=`${ee[2]}rem`,Ke=`rotate(${ee[3]}deg)`;return fe!==X.e&&xt(K,"left",X.e=fe),De!==X.t&&xt(K,"top",X.t=De),qe!==X.a&&xt(K,"width",X.a=qe),Ke!==X.o&&xt(K,"transform",X.o=Ke),X},{e:void 0,t:void 0,a:void 0,o:void 0}),K})()}),null),i(N,n(ce,{each:Lh,children:ee=>(()=>{var K=Ku();return E(X=>{var fe=`${ee[0]}%`,De=`${ee[1]}%`,qe=`scale(${ee[2]})`;return fe!==X.e&&xt(K,"left",X.e=fe),De!==X.t&&xt(K,"top",X.t=De),qe!==X.a&&xt(K,"transform",X.a=qe),X},{e:void 0,t:void 0,a:void 0}),K})()}),null),i(H,n(Ze,{href:"/workspace",class:"os-button os-button-primary os-button-large",children:"立即体验"}),D),i(H,n(Ze,{get href(){return et("onemodel")},class:"os-button os-button-secondary os-button-large",children:"查看知识资产矩阵"}),D),i(p,n(y,{get when(){return r()},get children(){var ee=Bu();return ee.$$click=C,i(ee,n(It,{name:"chevron-down",size:"large",class:"os-hero-scroll-cue-icon"})),ee}}),T),i(re,n(Ze,{href:"/workspace",class:"os-button os-button-primary",children:"进入开发工作台"}),null),i(re,n(Ze,{get href(){return et("oneskills")},class:"os-button os-button-secondary",children:"查看 OneSkills"}),null),i(p,n(ii,{title:"用知识驱动科研智能化开发",get children(){var ee=Hu();return i(ee,n(ce,{each:Fh,children:K=>n(rp,{get title(){return K[0]},get copy(){return K[1]},get image(){return K[2]}})})),ee}}),de),i(p,n(ii,{title:"可复用的先验知识与工程资产",get children(){return[(()=>{var ee=qu();return i(ee,n(ce,{get each(){return f().metrics},children:K=>n(Ze,{get href(){return K.href},class:"os-metric-card",get children(){return[(()=>{var X=Xu();return E(()=>R(X,"src",K.image)),X})(),Ar(),(()=>{var X=xr();return i(X,()=>K.value),X})(),(()=>{var X=Mr();return i(X,()=>K.title),X})(),(()=>{var X=di();return i(X,()=>K.copy),X})()]}})})),ee})(),(()=>{var ee=zu();return i(ee,n(ce,{get each(){return f().metricLinks},children:K=>n(Ze,{get href(){return K.href},class:"os-metric-card os-metric-card-plain",get children(){return[Ar(),(()=>{var X=xr();return i(X,()=>K.value),X})(),(()=>{var X=Mr();return i(X,()=>K.title),X})(),(()=>{var X=di();return i(X,()=>K.copy),X})()]}})})),ee})()]}}),de),i(Y,n(ce,{each:xh,children:(ee,K)=>n(Mh,{item:ee,get index(){return K()}})})),i(p,n(ii,{title:"平台支持",get children(){var ee=ju();return i(ee,n(ce,{each:Ih,children:K=>(()=>{var X=Ju(),fe=X.firstChild,De=fe.nextSibling,qe=De.firstChild,Ke=qe.nextSibling;return i(qe,()=>K.title),i(Ke,()=>K.copy),E(()=>R(fe,"src",K.image)),X})()})),ee}}),ve),i(Z,n(ce,{each:Th,children:ee=>(()=>{var K=Qu(),X=K.firstChild,fe=X.nextSibling;return i(X,()=>ee[0]),i(fe,()=>ee[1]),K})()})),i(p,n(tp,{}),null),p})()}function ii(e){return(()=>{var t=Zu(),a=t.firstChild,r=a.firstChild,s=r.firstChild;return i(r,(()=>{var d=ne(()=>!!e.eyebrow);return()=>d()&&(()=>{var l=Yu();return i(l,()=>e.eyebrow),l})()})(),s),i(s,()=>e.title),i(a,()=>e.children,null),E(()=>R(t,"id",e.id)),t})()}function rp(e){return(()=>{var t=em(),a=t.firstChild,r=a.firstChild,s=a.nextSibling,d=s.firstChild,l=d.nextSibling;return i(d,()=>e.title),i(l,()=>e.copy),E(()=>R(r,"src",e.image)),t})()}function np(e){const t=Ci(),a=wt(),r=Kt(),[s,d]=vo({loading:!0,error:""}),[l,c]=_(!1);Ft(()=>{const v=ft();v&&d({session:v,loading:!1,error:""});const b=yo();if(!b){d({loading:!1,error:""});return}wo(b).then(async u=>{await $o(u,t.storage),d({session:u,loading:!1,error:""})}).catch(u=>{if(v&&!Co(u)){d({session:v,loading:!1,error:""});return}d({loading:!1,error:u instanceof Error?u.message:"会话已失效"})})});const g=()=>{c(!1),Mo(t.storage).finally(()=>{if(t.platform==="desktop"){a("/login",{replace:!0});return}window.location.assign("/login")})};return(()=>{var v=tm();return i(v,n(y,{get when(){return s.session},get fallback(){return n(Ze,{get href(){return ln({pathname:r.pathname||"/",search:r.search||"",hash:r.hash||""})},class:"os-sidebar-link os-sidebar-link-fold os-sidebar-account-trigger",get title(){return e.collapsed()?"登录账号":void 0},get children(){return[(()=>{var b=Ir();return i(b,n(Mt,{name:"users"})),b})(),(()=>{var b=am(),u=b.firstChild,h=u.nextSibling;return i(u,()=>s.loading?"检查登录状态":"未登录"),i(h,()=>s.error||"登录后使用个人工作区"),b})()]}})},children:b=>n(kt,{get open(){return l()},onOpenChange:u=>c(u),placement:"right-end",gutter:8,get children(){return[n(kt.Trigger,{as:"button",type:"button",class:"os-sidebar-link os-sidebar-link-fold os-sidebar-account-trigger",get"aria-label"(){return`账号管理 · ${qn(b())}`},get title(){return op(b())},get children(){return[(()=>{var u=Ir();return i(u,()=>sp(b())),u})(),(()=>{var u=im(),h=u.firstChild;return i(h,()=>b().account.name),u})(),n(It,{get name(){return l()?"chevron-left":"chevron-right"},size:"small"})]}}),n(kt.Portal,{get children(){return n(kt.Content,{class:"os-sidebar-account-menu",get children(){return[(()=>{var u=rm(),h=u.firstChild,f=h.nextSibling,w=f.nextSibling;return i(f,()=>b().account.name),i(w,()=>b().account.email),i(u,n(y,{get when(){return zn(b())},children:C=>(()=>{var p=nm();return i(p,C),p})()}),null),u})(),n(kt.Item,{class:"os-sidebar-account-menu-item",onSelect:()=>{c(!1),window.location.assign("/account")},get children(){return[(()=>{var u=Fr();return i(u,n(Mt,{name:"users"})),u})(),n(kt.ItemLabel,{children:"账号中心"})]}}),n(kt.Separator,{}),n(kt.Item,{class:"os-sidebar-account-menu-item os-sidebar-account-menu-logout",onSelect:g,get children(){return[(()=>{var u=Fr();return i(u,n(It,{name:"arrow-left",size:"small"})),u})(),n(kt.ItemLabel,{children:"退出登录"})]}})]}})}})]}})})),E(()=>R(v,"data-collapsed",e.collapsed()?"true":void 0)),v})()}function sp(e){return(e.account.name.trim()||e.account.email.trim()||"OS").slice(0,2).toUpperCase()}function qn(e){return`${e.account.name} · ${e.account.email}`}function zn(e){const t=e.workspaces.find(l=>l.role==="admin")??e.workspaces[0];if(!t)return;const a=t.name.trim();if(a)return a;const r=t.slug.trim();return r||t.defaultEnvPath.trim().replaceAll("\\","/").split("/").filter(Boolean).at(-1)||void 0}function op(e){const t=zn(e),a=xo(e),r=["账号管理",qn(e)];return t&&r.push(t),a&&a!==t&&r.push(a),r.join(" · ")}function lp(e){const t=Ci(),a=()=>t.platform==="desktop"?Qp:Jp,r=Kt(),s=Et(),d=fa(),l=ot(),c=Wr(),g=Vr(),v=j(()=>r.pathname.startsWith("/code")),[b,u]=_(!1),h=j(()=>v()||b()),[f,w]=_(["OneHub"]);let C="";const p=j(()=>Si(_i([...s.data.project.reduce((D,T)=>(D.set(T.worktree,{expanded:!0,...d.projects.list().find(G=>G.worktree===T.worktree),...T}),D),new Map(d.projects.list().map(D=>[D.worktree,D]))).values()],ft()))),M=j(()=>js({pathname:r.pathname,search:r.search,hash:r.hash,path:s.data.path,recent:p(),defaultDirectory:Yr(document,s.data.path),lastCodeWorkspace:l.projects.lastCode()})),N=()=>{if(!s.bootstrapped||!l.ready())return;const D=Zr({path:s.data.path,recent:p(),lastCodeWorkspace:l.projects.lastCode()}),T=`${D}\0${l.projects.lastCode()??""}`;C!==T&&(C=T,d.projects.open(D),c.client.project.current({directory:D}).catch(()=>{}))};ge(()=>{!s.bootstrapped||!l.ready()||(l.projects.lastCode(),N())}),ge(()=>{const D=a().flatMap(T=>T).find(T=>"items"in T&&T.items.some(G=>r.pathname===G.href||r.pathname.startsWith(G.href)));!D||Ts(()=>f().includes(D.label))||w(T=>[...T,D.label])});const L=D=>"items"in D&&f().includes(D.label),W=D=>{w(T=>T.includes(D)?T.filter(G=>G!==D):[...T,D])},O=D=>{if(v()){W(D);return}if(h()){u(!1),w(T=>T.includes(D)?T:[...T,D]);return}W(D)},H=()=>{g.show(()=>n(Ws,{}))};return(()=>{var D=lm(),T=D.firstChild,G=T.firstChild,z=G.firstChild,P=G.nextSibling,F=P.nextSibling,B=F.firstChild,re=B.firstChild,de=T.nextSibling;return Es(G,Os(()=>t.platform==="desktop"?{"data-tauri-drag-region":!0}:{}),!1,!0),i(G,n(Ze,{get href(){return t.platform==="desktop"?"/workspace":"/"},class:"os-sidebar-brand-link",get children(){return[sm(),(()=>{var J=ti();return i(J,()=>t.platform==="desktop"?"OneCode":"OneScience"),J})()]}}),z),z.$$click=()=>{v()||u(J=>!J)},i(z,n(It,{get name(){return h()?"chevron-right":"chevron-left"},size:"small"})),i(P,n(ce,{get each(){return a()},children:J=>(()=>{var we=cm();return i(we,n(ce,{each:J,children:Y=>{const ve=()=>"items"in Y?Y.items.some(ue=>r.pathname===ue.href||r.pathname.startsWith(ue.href)):Y.icon==="code"?r.pathname.startsWith("/workspace/")&&r.pathname.includes("/session"):Y.href==="/workspace"?r.pathname==="/workspace"||r.pathname.startsWith("/workspace/capabilities"):r.pathname===Y.href||r.pathname.startsWith(Y.href),$e=()=>"items"in Y?Y.items[0].href:Y.icon==="code"?M():Y.href;return"items"in Y?(()=>{var ue=dm(),Z=ue.firstChild,te=Z.firstChild,ee=Z.nextSibling;return Z.$$click=()=>O(Y.label),i(Z,n(Mt,{get name(){return Y.icon}}),te),i(te,()=>Y.label),i(Z,n(It,{get name(){return L(Y)?"chevron-down":"chevron-right"},size:"small"}),null),i(ee,n(ce,{get each(){return Y.items},children:K=>n(Ze,{get href(){return K.href},get classList(){return{"os-sidebar-link":!0,"os-sidebar-link-sub":!0,"is-active":r.pathname===K.href||r.pathname.startsWith(K.href)}},get title(){return ne(()=>!!h())()?K.label:void 0},get children(){return[n(Mt,{get name(){return K.icon}}),(()=>{var X=ti();return i(X,()=>K.label),X})()]}})})),E(K=>{var X=!!L(Y),fe=h()?Y.label:void 0,De=L(Y);return X!==K.e&&ue.classList.toggle("is-open",K.e=X),fe!==K.t&&R(Z,"title",K.t=fe),De!==K.a&&R(Z,"aria-expanded",K.a=De),K},{e:void 0,t:void 0,a:void 0}),ue})():n(Ze,{get href(){return $e()},get classList(){return{"os-sidebar-link":!0,"is-active":ve()}},get title(){return ne(()=>!!h())()?Y.label:void 0},get onPointerEnter(){return Y.icon==="code"?N:void 0},get onFocus(){return Y.icon==="code"?N:void 0},get children(){return[n(Mt,{get name(){return Y.icon}}),(()=>{var ue=ti();return i(ue,()=>Y.label),ue})()]}})}})),we})()})),i(F,n(np,{collapsed:h}),B),B.$$click=H,i(B,n(Mt,{name:"settings"}),re),i(de,n(y,{get when(){return ne(()=>t.platform==="desktop")()&&!r.pathname.startsWith("/code")},get children(){return om()}}),null),i(de,()=>e.children,null),i(D,n(y,{get when(){return!r.pathname.startsWith("/code")},get children(){return n(Vs.Region,{})}}),null),E(J=>{var we={"onescience-workspace os-workspace min-h-full":!0,"os-workspace-collapsed":h(),"os-workspace-code":v(),"os-desktop-shell":t.platform==="desktop"},Y=h()?"展开导航":"收起导航",ve=v()?!0:void 0,$e=h()?"设置":void 0;return J.e=na(D,we,J.e),Y!==J.t&&R(z,"aria-label",J.t=Y),ve!==J.a&&(z.disabled=J.a=ve),$e!==J.o&&R(B,"title",J.o=$e),J},{e:void 0,t:void 0,a:void 0,o:void 0}),D})()}function cp(){const e=ot(),t=Et(),a=fa(),r=j(()=>Si(_i([...t.data.project.reduce((s,d)=>(s.set(d.worktree,{expanded:!0,...a.projects.list().find(l=>l.worktree===d.worktree),...d}),s),new Map(a.projects.list().map(s=>[s.worktree,s]))).values()],ft())));return s=>{const d=Zr({path:t.data.path,recent:r(),lastCodeWorkspace:e.projects.lastCode()});return a.projects.open(d),e.projects.touchCode(d),Bs(d,s)}}function Xt(){const e=ot(),t=Et(),a=fa(),r=j(()=>Si(_i([...t.data.project.reduce((d,l)=>(d.set(l.worktree,{expanded:!0,...a.projects.list().find(c=>c.worktree===l.worktree),...l}),d),new Map(a.projects.list().map(d=>[d.worktree,d]))).values()],ft())));return j(()=>Ks(t.data.path,r(),Yr(document,t.data.path),e.projects.last()))}function Ui(e){const t=ot(),a=Et(),[r,s]=_({}),[d,l]=_();let c;const g=j(()=>d()??e()),v=async()=>{const h=t.current,f=g();if(!h||!f)return;const w=await Hs(h.http.url,f).catch(()=>{});w&&s(Object.fromEntries(w.map(C=>[ir(C),C])))},b=()=>{c===void 0&&(c=window.setInterval(()=>{v()},2e3))};ge(()=>{if(Object.values(r()).some(h=>h.status==="downloading")){b();return}c!==void 0&&(window.clearInterval(c),c=void 0)}),Ft(()=>{v(),Be(()=>{c!==void 0&&window.clearInterval(c)})}),ge(()=>{a.data.path.directory,a.data.path.worktree,a.data.path.home,g(),t.projects.last(),!(!t.ready()||!t.current)&&v()}),ge(()=>{Object.values(r()).some(h=>h.status==="downloading")||l(void 0)});const u=h=>{s(f=>({...f,[ir(h)]:h}))};return{records:r,refresh:v,start:async(h,f)=>{const w=t.current,C=e();!w||!C||(l(C),u(await Gs(w.http.url,C,h,f)),b(),v())},cancel:async(h,f)=>{const w=t.current,C=g();if(!w||!C)return;const p=ri(f,h);let M;try{M=await Us(w.http.url,C,h,f)}catch{M={resource_id:h,kind:"dataset",status:"failed",started_at:r()[p]?.started_at??Date.now(),finished_at:Date.now(),error:"cancelled",...f?{environment:f}:{}}}u(M),await v(),!r()[p]&&M.status==="partial"&&u(M)},remove:async(h,f)=>{const w=t.current,C=g();if(!w||!C)return;const p=ri(f,h);s(M=>{const N={...M};return delete N[p],N}),await Ls(w.http.url,C,h,f),await v()}}}function za(){const e=ot();Et();const t=fa(),a=wt(),r=Xt();return(s,d)=>{const l=r();t.projects.open(l),e.projects.touch(l),a(fl(l,s,d))}}function jn(){const e=Xt(),t=Ui(e);return n(ce,{each:Nh,children:a=>(()=>{var r=mm(),s=r.firstChild,d=s.firstChild,l=s.nextSibling;return i(d,()=>a.title),i(s,n(Ze,{class:"os-home-hub-more",get href(){return a.href},get children(){return[um(),n(It,{name:"chevron-right",size:"small"})]}}),null),i(l,n(ce,{get each(){return a.itemTitles},children:c=>{const g=()=>Rh(a.page,c);return n(y,{get when(){return g()},children:v=>n(va,{get page(){return a.page},get item(){return v()},get workspaceDirectory(){return ne(()=>a.page==="datasets")()?e():void 0},get modelScopeDownloads(){return a.page==="datasets"?t:void 0},get onDatasetDownloadStart(){return ne(()=>a.page==="datasets")()?t.start:void 0},get onDatasetDownloadCancel(){return ne(()=>a.page==="datasets")()?t.cancel:void 0},get onDatasetDownloadDelete(){return ne(()=>a.page==="datasets")()?t.remove:void 0}})})}})),r})()})}function dp(){const e=wt(),t=cp(),[a,r]=_(""),s=()=>{const d=a().trim();d&&e(t(d))};return(()=>{var d=hm(),l=d.firstChild,c=l.firstChild,g=c.nextSibling,v=g.firstChild,b=v.nextSibling,u=b.firstChild,h=u.nextSibling,f=g.nextSibling,w=f.nextSibling;return g.addEventListener("submit",C=>{C.preventDefault(),s()}),v.$$input=C=>r(C.currentTarget.value),v.$$keydown=C=>{C.key!=="Enter"||C.shiftKey||(C.preventDefault(),s())},i(l,n(jn,{}),f),i(w,n(ce,{each:Oh,children:C=>(()=>{var p=pm(),M=p.firstChild,N=M.nextSibling,L=N.firstChild,W=L.nextSibling;return i(L,()=>C.title),i(W,()=>C.copy),E(O=>{var H=C.href,D=C.image;return H!==O.e&&R(p,"href",O.e=H),D!==O.t&&R(M,"src",O.t=D),O},{e:void 0,t:void 0}),p})()})),E(()=>h.disabled=!a().trim()),E(()=>v.value=a()),d})()}function up(e){const t=e.replace(/^#/,"").trim().toLowerCase();if(!t)return;let a=t;try{a=decodeURIComponent(t)}catch{a=t}return ca.find(r=>r.id===a||r.title===a)?.id}function mp(){const e=He.skills,t=Kt(),a=ot(),r=Wr(),s=Xt(),[d,l]=_(e.filters[0]),[c,g]=_(""),[v,b]=_([]),[u,h]=_(!1),[f,w]=_(!1),[C,p]=_(),[M,N]=_(),L=j(()=>Ao(s(),"upload")),W=j(()=>!!ft()?.account.id),O=j(()=>qa(c().trim(),ha("skills",d(),v()))),H=async()=>{const T=a.current;if(!T){b([]),h(!0);return}Zn();const G=await Qn(T.http.url,{limit:100});b(G.items),h(!0)};Ft(async()=>{await H();const T=r.event.listen(G=>{G.name==="global"&&String(G.details.type)==="oneskills.upgraded"&&H()});Be(T)}),ge(ht(()=>[t.hash,u()],([T,G])=>{if(!G)return;const z=up(T);if(!z)return;N(void 0);let P=0;P=window.requestAnimationFrame(()=>{N(z),document.getElementById(z)?.scrollIntoView({behavior:"smooth",block:"center"})});const F=window.setTimeout(()=>N(void 0),2400);Be(()=>{P&&window.cancelAnimationFrame(P),window.clearTimeout(F)})}));const D=async()=>{if(!W())return;const T=a.current;if(!T){const G=lr("更新 OneSkills 失败:请先连接平台服务");p(G),la({variant:"error",title:"更新失败",description:G});return}w(!0),p(void 0);try{const G=await Fo(T.http.url);await H();const z=G.version?`版本 ${G.version} · ${G.skillCount} 个技能`:`${G.skillCount} 个技能`,P=G.seedSource==="bundled"&&G.seedFallbackReason?"原语已回退内置 seed":G.seedSource==="disk"?"原语已同步磁盘 oneskills":void 0;la({variant:"success",title:"OneSkills 已更新",description:P?`${z} · ${P}`:z})}catch(G){const z=lr(G instanceof Error?G.message:"更新 OneSkills 失败");p(z),la({variant:"error",title:"更新失败",description:z})}finally{w(!1)}};return(()=>{var T=gm(),G=T.firstChild,z=G.firstChild,P=z.firstChild,F=P.firstChild,B=F.nextSibling,re=z.nextSibling,de=re.firstChild,J=de.firstChild,we=J.nextSibling,Y=de.nextSibling,ve=Y.firstChild,$e=ve.firstChild,ue=re.nextSibling;return i(F,()=>e.eyebrow),i(B,()=>e.title),i(P,n(y,{get when(){return C()},get children(){var Z=Ii();return i(Z,C),Z}}),null),we.$$input=Z=>g(Z.currentTarget.value),$e.$$click=()=>void D(),i($e,()=>f()?"更新中...":"更新 OneSkills"),i(Y,n(y,{get when(){return W()},get fallback(){return fm()},get children(){return n(Ze,{class:"os-button os-button-secondary",get href(){return L()},children:"上传技能"})}}),null),i(ue,n(ce,{get each(){return e.filters},children:Z=>(()=>{var te=Ga();return te.$$click=()=>l(Z),i(te,Z),E(()=>R(te,"data-active",d()===Z)),te})()})),i(G,n(y,{get when(){return u()},get fallback(){return n(pi,{})},get children(){return n(y,{get when(){return O().length>0},get fallback(){return bm()},get children(){return n(Wn,{page:"skills",get items(){return O()},get layerFilter(){return d()},get highlightedLayer(){return M()}})}})}}),null),E(Z=>{var te=e.search,ee=W()?void 0:"登录后使用",K=!W()||f();return te!==Z.e&&R(we,"placeholder",Z.e=te),ee!==Z.t&&R(ve,"title",Z.t=ee),K!==Z.a&&($e.disabled=Z.a=K),Z},{e:void 0,t:void 0,a:void 0}),E(()=>we.value=c()),T})()}function Lr(e,t){return e===t?!0:ci(e)===ci(t)}function Ot(e){const t=He[e.page],a=Kt(),r=wt(),s=j(()=>new URLSearchParams(a.search)),d=j(()=>s().get("highlight")??void 0),l=j(()=>s().get("publish")==="1"),c=j(()=>s().get("draftId")??void 0),g=j(()=>s().get("primitiveType")??void 0),[v,b]=_(),u=ot(),h=Xt(),f=Ui(h);let w;const[C,p]=_(mi(e.page,a.hash,t.filters)??t.filters[0]),[M,N]=_("");ge(ht(()=>a.hash,V=>{p(mi(e.page,V,t.filters)??t.filters[0])}));const L=V=>{p(V);const le=Gn(e.page,V),ie=le?`#${le}`:"";a.hash!==ie&&r(`${a.pathname}${a.search}${ie}`,{replace:!0})},[W,O]=_(!1),[H,D]=_(!1),[T,G]=_(),z=j(()=>Bi(e.page)),P=j(()=>z()&&!!Dt()),[F,B]=_([]),[re,de]=_([]),[J,we]=_(),[Y,ve]=_(!1),[$e,ue]=_(!1),[Z,te]=_(),[ee,K]=_(!1);ge(()=>{if(e.page!=="datasets")return;ee(),h();const V=Oa(()=>{f.refresh()},300);Be(()=>da(V))});const X=j(()=>zh.has(e.page));let fe=!1,De=0;const qe=async(V=0)=>{const le=u.current;if(!z()||!le||Y())return;const ie=++De,Ae=C()==="全部"?void 0:C(),Me=M().trim()||void 0;ve(!0);const Ge=await fi(le.http.url,e.page,{domain:Ae,q:Me,customOnly:e.page==="frameworks"?!0:void 0,limit:X()?100:Nn,offset:V});if(ie!==De)return;if(fe){ve(!1);return}let Ve=Ge.items,je=typeof Ge.nextOffset=="number"?Ge.nextOffset:void 0;if(V===0&&X()&&Ge.loaded===!0)for(;typeof je=="number"&&ie===De&&!fe;){const U=await fi(le.http.url,e.page,{domain:Ae,q:Me,limit:100,offset:je});if(U.loaded!==!0)break;Ve=bi(Ve,U.items),je=typeof U.nextOffset=="number"?U.nextOffset:void 0}if(ie!==De||fe){ve(!1);return}zt(()=>{de(U=>V===0?Ve:bi(U,Ve)),we(X()?void 0:je),ue(Ge.loaded===!0),ve(!1)})},Ke=async()=>{const V=u.current;if(!V||!Ia.has(e.page))return;Ba();const le=await oi(V.http.url);le&&te(le)},Ue=()=>{zt(()=>{de([]),we(void 0),ue(!1),ve(!1)}),qe(),Ia.has(e.page)&&Ke()},tt=V=>{G(V),D(!0)};Ft(()=>{zt(()=>{B(t.items),K(!0)});const le=Oa(()=>{if(fe)return;qe();const ie=u.current;Ia.has(e.page)&&ie&&oi(ie.http.url).then(Ae=>{Ae&&te(Ae)})});Be(()=>{fe=!0,da(le)})});const ze=j(()=>{const V=re()??[],le=F();return e.page==="frameworks"&&$e()?vi(le,V.filter(ie=>ie.id.startsWith("custom-"))):X()&&$e()?vi(le,V):z()&&$e()&&V.length>0?V:le}),lt=j(()=>{if(e.page==="cases")return Ti(e.page,t.items.length);if(!Ia.has(e.page))return t.count;const V=e.page,le=Z()?.byDomain?.[V],ie=Tn(Jh[V],le);return En(V,ie)}),[at,vt]=_([]),me=j(()=>`${e.page}:${C()}:${M().trim().toLowerCase()}`),[be,I]=_(0),ae=j(()=>at().slice(0,be())),oe=j(()=>be()<at().length),q=j(()=>ae().flatMap(V=>"id"in V?e.page==="datasets"||e.page==="models"||e.page==="apps"?[V.id]:Ha(V).tone==="onescience"?[V.id]:[]:[])),[Q,ye]=_({}),[Ne,Ee]=_(new Set),Ye=V=>!Ne().has(V),nt=(V,le)=>{const ie=u.current?.http.url;ie&&Io(ie,V),ye(Ae=>({...Ae,[V]:le}))},[Re,Ce]=_();ge(ht(()=>u.current?.http.url,V=>{ye({}),Ee(new Set)})),ge(()=>{const le=u.current?.http.url,ie=[...new Set(q())];if(!le||ie.length===0){Ee(new Set);return}const Ae=Do(le,ie);if(Object.keys(Ae.items).length>0&&ye(Ge=>({...Ge,...Object.fromEntries(Object.entries(Ae.items).map(([Ve,je])=>[Ve,oa(je)]))})),Ae.missing.length===0){Ee(new Set);return}Ee(new Set(Ae.missing));let Me=!0;cn(le,ie).then(Ge=>{!Me||u.current?.http.url!==le||(Ee(new Set),Ge.loaded&&ye(Ve=>({...Ve,...Object.fromEntries(Object.entries(Ge.items).map(([je,U])=>[je,oa(U)]))})))}),Be(()=>{Me=!1})});const _e=j(()=>z()&&typeof J()=="number"),We=j(()=>oe()?"继续加载中...":Y()?"正在从数据库加载...":_e()?"继续加载更多内容":"已经到底啦"),se=j(()=>!ee()),[Se,Pe]=_(),[xe,ct]=_(!1),dt=()=>{if(oe()){I(le=>{const ie=Math.min(le+Rr,at().length);return Fa.set(me(),ie),ie});return}const V=J();_e()&&!Y()&&typeof V=="number"&&qe(V)};ge(ht(()=>[me(),ze(),C(),M()],([V,le,ie,Ae])=>{const Me=Li(e.page,qa(Ae,ha(e.page,ie,le))),Ge=Fa.get(V),Ve=Math.min(Ge??Rr,Me.length);zt(()=>{vt(Me),I(Ve)}),Ve>0&&Fa.set(V,Ve)})),ge(()=>{const V=be();V>0&&Fa.set(me(),V)}),ge(ht(C,()=>{ee()&&Ue()},{defer:!0})),ge(ht(M,()=>{if(!ee()||X())return;const V=window.setTimeout(()=>{Ue()},250);Be(()=>window.clearTimeout(V))},{defer:!0})),ge(()=>{const V=Se();if(!V)return;const le=V.closest(".os-workspace-main"),ie=new IntersectionObserver(Ae=>{ct(Ae.some(Me=>Me.isIntersecting)),Ae.some(Me=>Me.isIntersecting)&&dt()},{root:le,rootMargin:"640px 0px"});ie.observe(V),Be(()=>ie.disconnect())}),ge(ht(()=>d(),()=>{const V=d();w=void 0,V&&b(void 0)})),ge(()=>{const V=d();if(!V||se())return;const le=at().findIndex(Ge=>Lr(Ge.id,V));if(le<0)return;I(Ge=>Math.max(Ge,le+1));const ie=at()[le]?.id;if(!ie)return;b(ie);let Ae=0;Ae=window.requestAnimationFrame(()=>{document.getElementById(ie)?.scrollIntoView({behavior:"smooth",block:"center"})});const Me=window.setTimeout(()=>b(void 0),2400);Be(()=>{Ae&&window.cancelAnimationFrame(Ae),window.clearTimeout(Me)})}),ge(()=>{if(!l()||se()||Re())return;const V=d();if(!V)return;const le=at().findIndex(it=>Lr(it.id,V));if(le<0)return;const ie=at()[le];if(!ie||!("id"in ie))return;I(it=>Math.max(it,le+1));const Ae=c(),Me=g(),Ge=`${ie.id}:${Ae??""}:${Me??""}`;if(w===Ge||!Ae&&Ne().has(ie.id))return;const Ve=Q()[ie.id]??{},je=dn(e.page,Ve),U=Ae??je.draftId;if(!U&&je.disabled)return;const Le=e.page==="datasets"||e.page==="models"||e.page==="apps"||e.page==="frameworks"?e.page:void 0,_t=Me??je.initialPrimitiveType;w=Ge,Ce({resourceId:ie.id,resourcePage:Le,draftId:U,initialPrimitiveType:_t,publishSlot:je.publishSlot??ic(_t),sourceHint:{title:ie.title,copy:ie.copy,provider:ie.provider,tags:[...ie.tags],domain:"domain"in ie&&typeof ie.domain=="string"?ie.domain:ie.tags.find(it=>Hi.has(it)),format:ie.format,size:ie.size,href:"href"in ie&&typeof ie.href=="string"?ie.href:void 0,page:Le,datasetDownloadMethod:e.page==="datasets"?wi(ie.id):void 0,modelDownloadMethod:e.page==="models"?$i(ie.title):void 0}})});const pt=()=>{const V=new URLSearchParams(a.search);if(V.get("publish")!=="1"&&!V.get("draftId")&&!V.get("primitiveType"))return;V.delete("publish"),V.delete("draftId"),V.delete("primitiveType");const le=V.toString();r(`${a.pathname}${le?`?${le}`:""}${a.hash}`,{replace:!0})};return ge(()=>{const V=xe(),le=Y(),ie=oe(),Ae=_e(),Me=J(),Ge=be(),Ve=at().length;if(!V||!ie&&(!Ae||le))return;let je=0;je=window.requestAnimationFrame(()=>{xe()&&Me===J()&&Ge===be()&&Ve===at().length&&dt()}),Be(()=>{je&&window.cancelAnimationFrame(je)})}),(()=>{var V=ym(),le=V.firstChild,ie=le.firstChild,Ae=ie.firstChild,Me=Ae.firstChild,Ge=Me.nextSibling,Ve=Ae.nextSibling,je=Ve.firstChild,U=ie.nextSibling,Le=U.firstChild,_t=Le.firstChild,it=_t.nextSibling,Nt=U.nextSibling;return i(Me,()=>t.eyebrow),i(Ge,()=>t.title),i(je,lt),i(Ve,n(y,{get when(){return z()},get children(){var Ie=vm(),Xe=Ie.firstChild;return Xe.$$click=()=>{P()&&O(!0)},E(Je=>{var Rt=P()?void 0:"登录后使用",Lt=!P();return Rt!==Je.e&&R(Ie,"title",Je.e=Rt),Lt!==Je.t&&(Xe.disabled=Je.t=Lt),Je},{e:void 0,t:void 0}),Ie}}),null),it.$$input=Ie=>N(Ie.currentTarget.value),i(Nt,n(ce,{get each(){return t.filters},children:Ie=>(()=>{var Xe=Ga();return Xe.$$click=()=>L(Ie),i(Xe,Ie),E(()=>R(Xe,"data-active",C()===Ie)),Xe})()})),i(le,n(y,{get when(){return e.page==="skills"},get fallback(){return n(y,{get when(){return!se()},get fallback(){return n(pi,{})},get children(){return n(y,{get when(){return ae().length>0||!Zh.has(e.page)},get fallback(){return n(y,{get when(){return!Y()},get fallback(){return wm()},get children(){var Ie=Ii();return i(Ie,()=>Hn(e.page,C(),M())),Ie}})},get children(){var Ie=kn();return i(Ie,n(ce,{get each(){return ae()},children:Xe=>n(va,{get page(){return e.page},item:Xe,get highlighted(){return v()===Xe.id},onChanged:Ue,onEdit:tt,get primitiveLink(){return Q()[Xe.id]},get primitiveLinkReady(){return Ye(Xe.id)},onPrimitiveLinkChange:nt,onPublishPrimitive:Ce,get workspaceDirectory(){return ne(()=>e.page==="datasets")()?h():void 0},get modelScopeDownloads(){return e.page==="datasets"?f:void 0},get onDatasetDownloadStart(){return ne(()=>e.page==="datasets")()?f.start:void 0},get onDatasetDownloadCancel(){return ne(()=>e.page==="datasets")()?f.cancel:void 0},get onDatasetDownloadDelete(){return ne(()=>e.page==="datasets")()?f.remove:void 0}})})),Ie}})}})},get children(){return n(y,{get when(){return!se()},get fallback(){return n(pi,{})},get children(){return n(Wn,{get page(){return e.page},get items(){return ae()},onChanged:Ue,onEdit:tt})}})}}),null),i(le,n(y,{get when(){return ne(()=>!!ee())()&&ae().length>0},get children(){var Ie=Pn();return pa(Pe,Ie),i(Ie,We),Ie}}),null),i(le,n(y,{get when(){return z()},get children(){return[n(Gr,{get open(){return W()},get page(){return e.page},get domain(){return ne(()=>C()==="全部")()?void 0:C()},onClose:()=>O(!1),onCreated:()=>{O(!1),Ue()}}),n(y,{get when(){return T()},children:Ie=>n(Gr,{get open(){return H()},get page(){return Ie().page},get initial(){return T()},onClose:()=>{D(!1),G(void 0)},onCreated:()=>{D(!1),G(void 0),Ue()}})})]}}),null),i(le,n(xi,{get resourceId(){return Re()?.resourceId},get resourcePage(){return Re()?.resourcePage},get draftId(){return Re()?.draftId},get initialPrimitiveType(){return Re()?.initialPrimitiveType},get sourceHint(){return Re()?.sourceHint},get serverUrl(){return u.current?.http.url??window.location.origin},get open(){return Re()!==void 0},onClose:()=>{Ce(void 0),pt()},onSuccess:Ie=>{const Xe=Re();Xe&&Ta(u.current.http.url,Xe.resourceId).then(Je=>{Je.loaded&&nt(Xe.resourceId,oa({callable:Je.callable,draft:Je.draft,inference:Je.inference,training:Je.training,slots:Je.slots}))}),Ce(void 0),pt(),ji(r,Ie,u.current?.http.url)}}),null),E(()=>R(it,"placeholder",t.search)),E(()=>it.value=M()),V})()}function hp(e,t){return e.layer===t.title||e.tags.includes(t.title)||e.tags.includes(t.id)}function pp(e){if(!(!("layer"in e)||typeof e.layer!="string"))return ko(e.layer)}const Ur=4,hi=new Set(["orchestrator","resource"]);function gp(e){const[t,a]=_(!1),r=()=>e.items.length,s=()=>Math.max(0,r()-Ur),d=()=>t()||s()===0?e.items:e.items.slice(0,Ur),l=()=>hi.has(e.group.id);return(()=>{var c=_m(),g=c.firstChild,v=g.firstChild,b=v.firstChild,u=v.nextSibling;return i(b,()=>e.group.title),i(v,n(y,{get when(){return r()>0},get children(){var h=$m();return i(h,r),h}}),null),i(u,()=>e.group.copy),i(c,n(y,{get when(){return r()>0},get fallback(){return Dn()},get children(){return[(()=>{var h=Cm();return i(h,n(ce,{get each(){return d()},children:f=>n(va,{page:"skills",item:f,get onChanged(){return e.onChanged},get onEdit(){return e.onEdit}})})),E(()=>mt(h,l()?"os-skill-card-grid-1":"os-skill-card-grid-2")),h})(),n(y,{get when(){return ne(()=>!l())()&&s()>0},get children(){var h=Sm();return h.$$click=()=>a(f=>!f),i(h,(()=>{var f=ne(()=>!!t());return()=>f()?"收起":`展开其余 ${s()} 个`})()),E(()=>R(h,"aria-expanded",t())),h}})]}}),null),E(h=>{var f=e.group.id,w=!!e.highlighted,C=e.group.id,p=e.highlighted?"true":void 0,M=l()?"true":void 0;return f!==h.e&&R(c,"id",h.e=f),w!==h.t&&c.classList.toggle("os-skill-group-highlighted",h.t=w),C!==h.a&&R(c,"data-layer",h.a=C),p!==h.o&&R(c,"data-highlighted",h.o=p),M!==h.i&&R(c,"data-fixed-single",h.i=M),h},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),c})()}function Wn(e){const t=()=>e.page==="skills"&&e.layerFilter&&e.layerFilter!=="全部"?ca.filter(l=>l.title===e.layerFilter):ca,a=l=>e.page==="skills"?e.items.filter(c=>hp(c,l)):e.items.filter(c=>l.title===("layer"in c?c.layer:void 0));if(e.page!=="skills")return(()=>{var l=Pm();return i(l,n(ce,{get each(){return t()},children:c=>{const g=()=>a(c);return(()=>{var v=Dm(),b=v.firstChild,u=b.firstChild,h=u.nextSibling;return i(u,()=>c.title),i(h,()=>c.copy),i(v,n(y,{get when(){return g().length>0},get fallback(){return Dn()},get children(){var f=km();return i(f,n(ce,{get each(){return g()},children:w=>n(va,{get page(){return e.page},item:w,get onChanged(){return e.onChanged},get onEdit(){return e.onEdit}})})),f}}),null),v})()}})),l})();const r=()=>{const l=t();return e.layerFilter&&e.layerFilter!=="全部"?l:l.filter(c=>a(c).length>0)},s=()=>{const l=r();if(e.layerFilter&&e.layerFilter!=="全部")return{pair:[],rest:l};const c=l.filter(v=>hi.has(v.id)),g=l.filter(v=>!hi.has(v.id));return{pair:c,rest:g}},d=l=>n(gp,{group:l,get items(){return a(l)},get highlighted(){return e.highlightedLayer===l.id},get onChanged(){return e.onChanged},get onEdit(){return e.onEdit}});return(()=>{var l=xm();return i(l,n(y,{get when(){return s().pair.length>0},get children(){var c=Am();return i(c,n(ce,{get each(){return s().pair},children:g=>d(g)})),E(()=>R(c,"data-cols",String(s().pair.length))),c}}),null),i(l,n(ce,{get each(){return s().rest},children:c=>d(c)}),null),l})()}function fp(e){return(()=>{var t=Mm();return i(t,n(ce,{get each(){return e.profiles},children:a=>(()=>{var r=Im(),s=r.firstChild,d=s.firstChild,l=s.nextSibling;return r.$$click=()=>e.onStart?.(a),i(d,()=>a.title),i(l,()=>jh[a.id]??a.description),r})()})),t})()}function pi(){return(()=>{var e=Fm();return i(e,n(ce,{get each(){return Array.from({length:4})},children:()=>Tm()})),e})()}const ja=[{value:"onescience",label:"OneScience"},{value:"third-party",label:"第三方"},{value:"paper",label:"论文资料"},{value:"local",label:"本地入口"}];function Vn(e){return ja.find(t=>t.value===e)?.label??"第三方"}const ke={title:64,copy:120,size:48,format:48,tags:100,tagItem:36,href:512};function Kn(e,t){return e.length>t?e.slice(0,t):e}function Xn(e){const t=[];return e.title.trim().length>ke.title&&t.push(`名称最多 ${ke.title} 字`),e.copy.trim().length>ke.copy&&t.push(`描述最多 ${ke.copy} 字`),e.size.trim().length>ke.size&&t.push(`元信息最多 ${ke.size} 字`),e.format.trim().length>ke.format&&t.push(`格式最多 ${ke.format} 字`),e.tags.length>ke.tags&&t.push(`标签最多 ${ke.tags} 字`),e.href.trim().length>ke.href&&t.push(`链接最多 ${ke.href} 字`),t.length?`${t.join(";")},请缩短后再保存`:""}function qt(e,t,a,r,s,d){const l=e.clipboardData?.getData("text")??"";if(!l)return;const c=e.currentTarget,g=c.selectionStart??t.length,v=c.selectionEnd??t.length,b=`${t.slice(0,g)}${l}${t.slice(v)}`;b.length<=a||(e.preventDefault(),r(Kn(b,a)),d(`${s}超过 ${a} 字上限,粘贴内容已截断`))}function Jn(e){return e.split(/[,,\s]+/).map(t=>t.trim()).filter(Boolean).map(t=>t.slice(0,ke.tagItem)).slice(0,8)}function gi(e){return e?.source?e.source:ja.find(a=>a.label===e?.provider)?.value??"third-party"}function Gi(e){switch(e){case"datasets":return{eyebrow:"OneHub · 数据集",title:"新增数据集资源",editTitle:"修改数据集资源",description:"填写数据覆盖范围、访问方式与存储格式。保存后可发布为数据加载或数据处理原语。",typeLabel:"数据形态",typeHint:"显示在卡片元数据,便于 Agent 识别数据来源类型",typePlaceholder:"再分析 / 观测 / benchmark 等",formatLabel:"存储格式",formatHint:"发布原语时写入 schema 与 access 契约",formatPlaceholder:"GRIB / NetCDF / Zarr 等",hrefPlaceholder:"https://... 或 modelscope 数据集页",validationError:"请填写名称、描述、提供方、数据形态和存储格式"};case"models":return{eyebrow:"OneHub · 模型",title:"新增模型资源",editTitle:"修改模型资源",description:"填写推理框架、权重格式与获取方式。保存后可发布为模型推理或训练原语。",typeLabel:"推理框架",typeHint:"发布原语时预填 framework 字段",typePlaceholder:"PyTorch / JAX / ONNX 等",formatLabel:"权重格式",formatHint:"Checkpoint、ONNX 或预训练产物形态",formatPlaceholder:"Checkpoint / ONNX 等",hrefPlaceholder:"https://... 或 modelscope 模型页",validationError:"请填写名称、描述、提供方、推理框架和权重格式"};case"apps":return{eyebrow:"OneHub · 应用",title:"新增应用资源",editTitle:"修改应用资源",description:"填写实现语言、运行环境与安装入口。保存后可发布为应用启动原语。",typeLabel:"实现语言",typeHint:"软件主要实现语言或发行形态",typePlaceholder:"Python / C++ / Web 等",formatLabel:"运行环境",formatHint:"发布原语时预填 runtime 字段",formatPlaceholder:"CPU / GPU / MPI / Docker 等",hrefPlaceholder:"安装门户或 workflow 入口链接",validationError:"请填写名称、描述、提供方、实现语言和运行环境"};case"frameworks":return{eyebrow:"OneHub · AI 框架",title:"新增框架资源",editTitle:"修改框架资源",description:"填写框架语言、硬件支持与安装入口。",typeLabel:"语言或发行形态",typeHint:"框架主要语言或发行形态",typePlaceholder:"Python / C++ 等",formatLabel:"硬件或运行栈",formatHint:"支持的硬件与并行运行栈",formatPlaceholder:"CPU+GPU / MPI 等",hrefPlaceholder:"https://...",validationError:"请填写名称、描述、提供方、语言和运行栈"};case"skills":return{eyebrow:"OneSkills",title:"新增技能资源",editTitle:"修改技能资源",description:"填写技能类型、运行环境与依赖说明。",typeLabel:"技能类型或角色",typeHint:"技能在 OneSkills 分层中的类型",typePlaceholder:"Expert / Executor / Resource 等",formatLabel:"运行环境或依赖",formatHint:"技能运行所需环境与依赖",formatPlaceholder:"Python / Shell 等",hrefPlaceholder:"https://...",validationError:"请填写名称、描述、提供方、类型和运行环境"}}}function bp(e){const t=Gi(e);return{typeHint:t.typeHint,typePlaceholder:t.typePlaceholder,formatHint:t.formatHint,formatPlaceholder:t.formatPlaceholder}}function Gr(e){const t=ot(),[a,r]=_(e.initial?.title??""),[s,d]=_(e.initial?.copy??""),[l,c]=_(e.initial?.tags.join(", ")??""),[g,v]=_(e.initial?.domain??e.domain??He[e.page].filters.find(G=>G!=="全部")??"其它"),[b,u]=_(gi(e.initial)),[h,f]=_(e.initial?.size??""),[w,C]=_(e.initial?.format??""),[p,M]=_(e.initial?.href??""),[N,L]=_(""),[W,O]=_(!1),H=j(()=>Gi(e.page)),D=()=>{r(e.initial?.title??""),d(e.initial?.copy??""),c(e.initial?.tags.join(", ")??""),v(e.initial?.domain??e.domain??He[e.page].filters.find(G=>G!=="全部")??"其它"),u(gi(e.initial)),f(e.initial?.size??""),C(e.initial?.format??""),M(e.initial?.href??""),L("")};ge(ht(()=>[e.open,e.initial?.id,e.domain,e.page],()=>{D()}));const T=async G=>{G.preventDefault();const z=t.current;if(!z){L("当前没有可用服务");return}if(!a().trim()||!s().trim()||!h().trim()||!w().trim()){L(H().validationError);return}const P=Xn({title:a(),copy:s(),size:h(),format:w(),tags:l(),href:p()});if(P){L(P);return}O(!0),L("");try{const F={title:a().trim(),copy:s().trim(),domain:g(),tags:Jn(l()),provider:Vn(b()),size:h().trim(),format:w().trim(),...p().trim()?{href:p().trim()}:{},source:b()};e.initial?await Yn(z.http.url,e.page,e.initial.id,F):await Sp(z.http.url,{page:e.page,...F}),D(),e.onCreated()}catch(F){L(F instanceof Error?F.message:"上传失败")}finally{O(!1)}};return n(y,{get when(){return e.open},get children(){return n(bt,{get children(){var G=Em(),z=G.firstChild,P=z.firstChild,F=P.firstChild,B=F.firstChild,re=B.nextSibling,de=re.nextSibling,J=F.nextSibling,we=P.nextSibling,Y=we.firstChild,ve=Y.firstChild,$e=ve.nextSibling,ue=$e.firstChild,Z=Y.nextSibling,te=we.nextSibling,ee=te.firstChild,K=ee.firstChild,X=K.nextSibling,fe=X.firstChild,De=ee.nextSibling,qe=te.nextSibling,Ke=qe.firstChild,Ue=Ke.firstChild,tt=Ue.nextSibling,ze=tt.nextSibling,lt=Ke.nextSibling,at=lt.firstChild,vt=at.firstChild,me=vt.firstChild,be=vt.nextSibling,I=be.firstChild,ae=at.nextSibling,oe=ae.nextSibling,q=lt.nextSibling,Q=q.firstChild,ye=Q.firstChild,Ne=ye.firstChild,Ee=ye.nextSibling,Ye=Ee.firstChild,nt=Q.nextSibling,Re=nt.nextSibling,Ce=qe.nextSibling,_e=Ce.firstChild,We=_e.firstChild,se=We.nextSibling,Se=se.firstChild,Pe=_e.nextSibling,xe=Ce.nextSibling,ct=xe.firstChild,dt=ct.nextSibling,pt=xe.nextSibling,V=pt.firstChild,le=V.firstChild,ie=le.nextSibling,Ae=ie.firstChild,Me=V.nextSibling,Ge=pt.nextSibling,Ve=Ge.firstChild,je=Ve.nextSibling;return z.$$click=U=>U.stopPropagation(),z.addEventListener("submit",T),i(B,()=>H().eyebrow),i(re,(()=>{var U=ne(()=>!!e.initial);return()=>U()?H().editTitle:H().title})()),i(de,()=>H().description),Oe(J,"click",e.onClose,!0),i($e,()=>a().length,ue),i($e,()=>ke.title,null),Z.addEventListener("paste",U=>qt(U,a(),ke.title,r,"名称",L)),Z.$$input=U=>{r(U.currentTarget.value),L("")},i(X,()=>s().length,fe),i(X,()=>ke.copy,null),De.addEventListener("paste",U=>qt(U,s(),ke.copy,d,"描述",L)),De.$$input=U=>{d(U.currentTarget.value),L("")},ze.$$input=U=>u(U.currentTarget.value),i(ze,n(ce,{each:ja,children:U=>(()=>{var Le=Tr();return i(Le,()=>U.label),E(()=>Le.value=U.value),Le})()})),i(vt,()=>H().typeLabel,me),i(be,()=>h().length,I),i(be,()=>ke.size,null),i(ae,()=>H().typeHint),oe.addEventListener("paste",U=>qt(U,h(),ke.size,f,H().typeLabel,L)),oe.$$input=U=>{f(U.currentTarget.value),L("")},i(ye,()=>H().formatLabel,Ne),i(Ee,()=>w().length,Ye),i(Ee,()=>ke.format,null),i(nt,()=>H().formatHint),Re.addEventListener("paste",U=>qt(U,w(),ke.format,C,H().formatLabel,L)),Re.$$input=U=>{C(U.currentTarget.value),L("")},i(se,()=>l().length,Se),i(se,()=>ke.tags,null),Pe.addEventListener("paste",U=>qt(U,l(),ke.tags,c,"标签",L)),Pe.$$input=U=>{c(U.currentTarget.value),L("")},dt.$$input=U=>v(U.currentTarget.value),i(dt,n(ce,{get each(){return He[e.page].filters.filter(U=>U!=="全部")},children:U=>(()=>{var Le=Tr();return Le.value=U,i(Le,U),Le})()})),i(ie,()=>p().length,Ae),i(ie,()=>ke.href,null),Me.addEventListener("paste",U=>qt(U,p(),ke.href,M,"链接",L)),Me.$$input=U=>{M(U.currentTarget.value),L("")},i(z,n(y,{get when(){return N()},children:U=>(()=>{var Le=ba();return i(Le,U),Le})()}),Ge),Oe(Ve,"click",e.onClose,!0),i(je,(()=>{var U=ne(()=>!!W());return()=>U()?"保存中...":e.initial?"保存修改":"保存"})()),E(U=>{var Le=e.page,_t=a().length>ke.title?"true":void 0,it=ke.title,Nt=s().length>ke.copy?"true":void 0,Ie=ke.copy,Xe=h().length>ke.size?"true":void 0,Je=ke.size,Rt=H().typePlaceholder,Lt=w().length>ke.format?"true":void 0,ya=ke.format,wa=H().formatPlaceholder,$t=l().length>ke.tags?"true":void 0,Jt=ke.tags,$a=p().length>ke.href?"true":void 0,Qt=ke.href,Ca=H().hrefPlaceholder,Sa=W();return Le!==U.e&&R(z,"data-page",U.e=Le),_t!==U.t&&R($e,"data-over",U.t=_t),it!==U.a&&R(Z,"maxlength",U.a=it),Nt!==U.o&&R(X,"data-over",U.o=Nt),Ie!==U.i&&R(De,"maxlength",U.i=Ie),Xe!==U.n&&R(be,"data-over",U.n=Xe),Je!==U.s&&R(oe,"maxlength",U.s=Je),Rt!==U.h&&R(oe,"placeholder",U.h=Rt),Lt!==U.r&&R(Ee,"data-over",U.r=Lt),ya!==U.d&&R(Re,"maxlength",U.d=ya),wa!==U.l&&R(Re,"placeholder",U.l=wa),$t!==U.u&&R(se,"data-over",U.u=$t),Jt!==U.c&&R(Pe,"maxlength",U.c=Jt),$a!==U.w&&R(ie,"data-over",U.w=$a),Qt!==U.m&&R(Me,"maxlength",U.m=Qt),Ca!==U.f&&R(Me,"placeholder",U.f=Ca),Sa!==U.y&&(je.disabled=U.y=Sa),U},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0}),E(()=>Z.value=a()),E(()=>De.value=s()),E(()=>ze.value=b()),E(()=>oe.value=h()),E(()=>Re.value=w()),E(()=>Pe.value=l()),E(()=>dt.value=g()),E(()=>Me.value=p()),G}})}})}function Bi(e){return e==="datasets"||e==="models"||e==="apps"||e==="frameworks"}async function fi(e,t,a){const r=a?.limit??Nn,s=a?.offset??0,d=a?.domain?.trim(),l=a?.q?.trim(),c=a?.customOnly===!0,g=Dt()??"guest",v=`${yt(e)}:${t}:${g}:${d??""}:${l??""}:${c}:${r}:${s}`,b=ua.get(v);if(b)return b;try{const u=new URLSearchParams({page:t,limit:String(r),offset:String(s)});d&&u.set("domain",d),l&&u.set("q",l),c&&u.set("customOnly","true");const h=await gt(`${yt(e)}/experimental/onescience/resource?${u}`);if(!h.ok)return{items:[],loaded:!1};const f=await h.json(),w=Array.isArray(f)?{items:f,loaded:!0}:{items:Array.isArray(f.items)?f.items:[],loaded:!0,...typeof f.nextOffset=="number"?{nextOffset:f.nextOffset}:{}};return ua.set(v,w),w}catch{return{items:[],loaded:!1}}}async function Qn(e,t){const a=`${yt(e)}:skills:catalog:${t?.layer??""}:${t?.q??""}:${t?.limit??50}`,r=ui.get(a);if(r)return r;try{const s=await Qr(e,{layer:t?.layer,q:t?.q,limit:t?.limit??50});if(s.loaded!==!0)return{items:[],loaded:!1};const d={...s,items:s.items.map(l=>({...l,sortOrder:l.sortOrder??0})),loaded:!0};return ui.set(a,d),d}catch{return{items:[],loaded:!1}}}async function vp(e){const t=`${yt(e)}:task-profiles:v2`,a=ai.get(t);if(a)return a;const r=yp(t);if(r)return ai.set(t,r),r;try{const s=await gt(`${yt(e)}/experimental/onescience/task-profile`);if(!s.ok)return{items:[],loaded:!1};const l={items:(await s.json()).items.map(c=>c.id==="operator-performance-optimization"?{...c,title:"Kernel性能优化",description:"优化热点 Kernel 并复测。",expectedArtifacts:["kernel_profile_report","kernel_benchmark_report","kernel_optimization_patch","optimized_kernel_report"]}:c),loaded:!0};return ai.set(t,l),wp(t,l),l}catch{return{items:[],loaded:!1}}}function yp(e){if(!(typeof window>"u"))try{const t=window.localStorage.getItem(`onescience:${e}`);if(!t)return;const a=JSON.parse(t);return typeof a.time!="number"||Date.now()-a.time>Wh||!a.value||!Array.isArray(a.value.items)?void 0:a.value}catch{return}}function wp(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(`onescience:${e}`,JSON.stringify({time:Date.now(),value:t}))}catch{return}}async function $p(e,t){return Jr(e,t)}async function Cp(e,t){const a=new URLSearchParams({status:t?.status??"callable"});t?.domain&&a.set("domain",t.domain),t?.primitiveType&&a.set("primitiveType",t.primitiveType),a.set("limit",String(t?.limit??50)),a.set("offset",String(t?.offset??0));const r=await gt(`${yt(e)}/experimental/onescience/agent-registry?${a}`);return r.ok?{...await r.json(),loaded:!0}:{items:[],loaded:!1}}function Zn(){ua.clear(),ui.clear(),Ba()}function bi(e,t){const a=new Set(e.map(r=>r.id));return[...e,...t.filter(r=>a.has(r.id)?!1:(a.add(r.id),!0))]}function Br(e){return e.title}const Hi=new Set(["地球科学","生命科学","材料化学","流体仿真","其它"]);function vi(e,t){const a=new Map;for(const r of e)a.set(Br(r),r);for(const r of t)a.set(Br(r),r);return[...a.values()]}function qi(e,t){const a=`${yt(e)}:${t}:`;for(const r of ua.keys())r.startsWith(a)&&ua.delete(r);Ba()}async function Sp(e,t){const a=await gt(`${yt(e)}/experimental/onescience/resource`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw new Error("保存失败");return qi(e,t.page),await a.json()}async function Yn(e,t,a,r){const s=await gt(`${yt(e)}/experimental/onescience/resource/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(r)});if(!s.ok)throw new Error("保存失败");return qi(e,t),await s.json()}async function es(e,t,a){const r=await gt(`${yt(e)}/experimental/onescience/resource/${encodeURIComponent(a)}`,{method:"DELETE"});if(!r.ok)throw new Error("删除失败");return qi(e,t),await r.json()}async function zi(e,t){const a=await gt(`${yt(e)}/experimental/onescience/primitive/${encodeURIComponent(t)}`,{method:"DELETE"});if(!a.ok)throw new Error("删除失败");return Ns(e),Kr(),await a.json()}function yt(e){try{return new URL(e).toString().replace(/\/$/,"")}catch{return e.replace(/\/$/,"")}}function ts(e){const[t,a]=_(!1),[r,s]=_(""),d=()=>!!e.sessionId&&!!e.onRestore,l=()=>{const c=e.sessionId;if(!(!c||!e.onRestore||t())){a(!0),s("");try{const g=e.onRestore(c);g instanceof Promise?g.catch(v=>{s(v instanceof Error?v.message:"恢复失败")}).finally(()=>a(!1)):a(!1)}catch(g){a(!1),s(g instanceof Error?g.message:"恢复失败")}}};return n(bt,{get children(){var c=Nm(),g=c.firstChild,v=g.firstChild,b=v.firstChild,u=b.nextSibling,h=v.nextSibling,f=h.firstChild,w=f.nextSibling,C=h.nextSibling,p=C.nextSibling,M=p.firstChild;return Oe(c,"click",e.onClose,!0),g.$$click=N=>N.stopPropagation(),Oe(u,"click",e.onClose,!0),i(w,()=>e.title),i(C,()=>d()?"可点击右下角「恢复案例」直接还原该预置会话,或在科研开发中重新创建该案例。":"可以在科研开发中重新创建该案例,或返回案例页选择其它预置案例。"),i(g,n(y,{get when(){return r()},get children(){var N=ba();return i(N,r),N}}),p),Oe(M,"click",e.onClose,!0),i(p,n(y,{get when(){return d()},get children(){var N=Om();return N.$$click=l,i(N,()=>t()?"恢复中...":"恢复案例"),E(()=>N.disabled=t()),N}}),null),c}})}function va(e){const t=wt(),a=ot();fa();const r=Et(),s=Vr(),d=Xs(),l=Js(),c=Xt(),g=za(),v=j(()=>{const m=hr(e.item.title);return m?fn[m]:void 0}),b=()=>Oi[e.item.title],u=()=>e.item.action==="使用"?void 0:b()?.github??("href"in e.item?e.item.href:void 0),h=()=>{if(e.page==="skills")return;const m=b()?.docs??b()?.paper??("href"in e.item?Ei[e.item.id]??e.item.href:void 0);if(m)return m;if(e.page==="datasets"){const S=O();if(S)return So(S)}},f=()=>b()?.paper,w=()=>("links"in e.item&&e.item.links?e.item.links:[]).filter(m=>m.href),C=()=>e.page==="frameworks"&&w().length>0,p=()=>e.page!=="frameworks"&&e.page!=="skills",M=()=>Ha(e.item),N=()=>!C()&&!(e.page==="skills"&&e.item.action==="安装"),L=()=>!e.downloadOnly&&(e.page==="datasets"||e.page==="models"||e.page==="apps"||e.page!=="skills"&&M().tone==="onescience"),W=()=>e.page==="models"?La(e.item.title):void 0,O=()=>e.page==="datasets"&&"id"in e.item?ga(e.item.id):void 0,H=()=>e.page==="datasets"&&e.item.action==="下载",D=()=>Ri(e.page,e.item),T=()=>(e.page==="models"||e.page==="datasets")&&!Tt(e.item),G=()=>e.page==="operators"&&e.item.action==="导入",z=()=>"id"in e.item?e.item.id:void 0,[P,F]=_({}),[B,re]=_(!1),[de,J]=_(!1),[we,Y]=_(!1),[ve,$e]=_("default"),[ue,Z]=_(),[te,ee]=_(),K=()=>e.primitiveLinkReady!==void 0?e.primitiveLink??{}:P(),X=()=>e.primitiveLinkReady??B(),fe=()=>dn(e.page,K()),De=()=>!!Dt(),qe=()=>fe().disabled||!De(),Ke=()=>fe().label,Ue=()=>{if(!De())return"请先登录";if(fe().disabled)return"该资源已发布可调用原语"},tt=()=>!!Dt(),ze=()=>!O()||Se()||!tt(),lt=()=>{if(!tt())return"请先登录"},at=()=>_o(e.page,K()),vt=()=>{const m=K();return e.page==="models"?m.inferenceCallableId??m.trainingCallableId??m.callableId:e.page==="datasets"?m.datasetCallableId??m.dataProcessingCallableId??m.callableId:m.callableId},me=()=>e.page==="datasets"||e.page==="models"||e.page==="apps"||e.page==="frameworks"?e.page:void 0,be=()=>({title:e.item.title,copy:e.item.copy,provider:e.item.provider,tags:[...e.item.tags],domain:"domain"in e.item&&typeof e.item.domain=="string"?e.item.domain:e.item.tags.find(m=>Hi.has(m)),format:e.item.format,size:e.item.size,href:"href"in e.item&&typeof e.item.href=="string"?e.item.href:void 0,page:me(),datasetDownloadMethod:e.page==="datasets"&&"id"in e.item?wi(e.item.id):void 0,modelDownloadMethod:e.page==="models"?$i(e.item.title):void 0}),I=()=>{const m=z();if(!m)return;const S=fe(),A={resourceId:m,resourcePage:me(),draftId:S.draftId,initialPrimitiveType:S.initialPrimitiveType,publishSlot:S.publishSlot??"default",sourceHint:be()};if(e.onPublishPrimitive){e.onPublishPrimitive(A);return}$e(S.publishSlot??"default"),Z(S.draftId),ee(S.initialPrimitiveType),Y(!0)};ge(()=>{if(e.primitiveLinkReady!==void 0)return;const m=z(),S=a.current;if(!m||!S||!L()){F({}),re(!0);return}re(!1);let A=!0;Ta(S.http.url,m).then(x=>{if(A){if(!x.loaded){F({}),re(!0);return}F(oa({callable:x.callable,draft:x.draft,inference:x.inference,training:x.training,slots:x.slots})),re(!0)}}),Be(()=>{A=!1})});const[ae,oe]=_(!1),[q,Q]=_(!1),[ye,Ne]=_(!1),[Ee,Ye]=_(!1),[nt,Re]=_([]),[Ce,_e]=_(!1),[We,se]=_(!1),[Se,Pe]=_(!1),[xe,ct]=_(!1),[dt,pt]=_(!1),V=()=>"sessionId"in e.item?e.item.sessionId:void 0,le=()=>e.page==="skills",ie=()=>pt(!0),Ae=async()=>{const m=V();if(!(!m||xe())){if(!a.current){Me();return}ct(!0);try{await Ea({sessionId:m,serverUrl:a.current.http.url,navigate:t,ensureSessions:A=>{r.project.loadSessions(A)}})==="missing"&&Me()}catch{Me()}finally{ct(!1)}}},Me=()=>{const m=V();s.show(()=>n(ts,{get title(){return e.item.title},sessionId:m,onClose:()=>s.close(),onRestore:m?S=>Ge(S):void 0}))},Ge=async m=>{const S=a.current;if(!S)throw new Error("恢复失败");const A=await Ai(S.http.url,m);s.close(),await Ea({sessionId:A.sessionId,serverUrl:S.http.url,navigate:t,ensureSessions:x=>{r.project.loadSessions(x)}})},Ve=j(()=>{Qs();const m=e.workspaceDirectory??c();return Qa({directory:m,ssh:l(),mcp:d.getQueryData(r.queryOptions.mcp(Za(m)).queryKey)})}),je=j(()=>Zs(l())),U=j(()=>{const m=Ve().env;if(m.kind!=="scnet")return m.kind==="ssh"?{kind:"ssh",targetName:m.targetName}:{kind:"local"}}),Le=j(()=>{const m=e.modelScopeDownloads,S=O();if(!(!m||!S))return Ys(m.records(),S,U())}),_t=j(()=>{const m=Le()?.environment;return m?m.kind==="ssh"?{kind:"ssh",targetName:m.targetName}:{kind:"local"}:U()}),it=j(()=>Le()?.status==="downloading"),Nt=j(()=>Le()?.downloaded_bytes??0),Ie=j(()=>it()&&Nt()<=0),Xe=j(()=>{const m=Le();if(m){if(m.progress_total_bytes&&m.progress_total_bytes>0)return{bytes:m.progress_total_bytes,estimated:!1};if(m.estimated_total_bytes&&m.estimated_total_bytes>0)return{bytes:m.estimated_total_bytes,estimated:!0}}}),Je=j(()=>{const m=Le(),S=Xe();if(S){const x=m?.downloaded_bytes??0;return x<=0||S.estimated&&x>=S.bytes?void 0:Math.min(100,Math.round(x/S.bytes*100))}const A=m?.current_file_total_bytes;if(A&&A>0){const x=m?.current_file_bytes??0;return Math.min(100,Math.round(x/A*100))}}),[Rt,Lt]=_(0);ge(()=>{if(!Ie()||Le()?.environment?.kind!=="ssh")return;const m=setInterval(()=>Lt(S=>S+1),1e3);Be(()=>clearInterval(m))});const ya=()=>{Rt();const m=Le()?.started_at;if(!m)return"正在等待远端环境完成下载…";const S=Math.max(0,Math.floor((Date.now()-m)/1e3)),A=String(Math.floor(S/60)).padStart(2,"0"),x=String(S%60).padStart(2,"0");return`正在等待远端环境完成下载(已用时 ${A}:${x})…`},wa=j(()=>{if(Ie())return Le()?.environment?.kind==="ssh"?ya():"正在准备...";const m=Le(),S=ia(m?.downloaded_bytes),A=Xe();if(A){const Fe=A.estimated?`约 ${ia(A.bytes)}(预估)`:ia(A.bytes),Te=Je();return Te!==void 0?`正在下载 · ${S} / ${Fe} (${Te}%)`:`正在下载 · ${S} / ${Fe}`}const x=m?.current_file,he=m?.current_file_total_bytes;if(x&&he&&he>0){const Fe=x.split("/").pop()??x,Te=ia(m?.current_file_bytes),st=ia(he);return`正在下载 · ${Fe} · ${Te} / ${st}`}return`已下载 · ${S}`}),$t=j(()=>{const m=O(),S=e.modelScopeDownloads;return!m||!S?[]:eo(S.records(),m,e.workspaceDirectory)}),Jt=j(()=>$t().some(m=>!m.partial)),$a=j(()=>Le()?.status==="partial"),Qt=j(()=>$t().length>0),Ca=()=>{const m=$t();return m.length>1?"删除已下载的数据集(可选择环境)":m[0]?.partial?"清理未完成的下载文件(下载已取消,磁盘上仍有残留)":"删除已下载的数据集"},Sa=()=>O()&&e.workspaceDirectory?`${e.workspaceDirectory}/${Po(O())}`:"",[rs,Gt]=_(),[ns,Bt]=_(),[ss,Zt]=_(!1),[os,Yt]=_(!1),[Ut,Wi]=_({kind:"local"}),[_a,Pa]=_(""),[ls,ea]=_(),Vi=m=>{const S=je().find(A=>A.name===m);return S?`${S.remotePath.replace(/\/+$/,"")}/modelscope/hub/datasets`:""},cs=m=>{if(Wi(m),ea(void 0),m.kind==="ssh"){Pa(Vi(m.targetName));return}Pa("")},Ki=j(()=>{const m=Ut();if(m.kind==="local")return{kind:"local"};if(m.kind!=="ssh")return;const S=je().find(x=>x.name===m.targetName),A=_a().trim();if(!(!S||!A))return{kind:"ssh",targetName:S.name,remotePath:A,ssh:S}}),Xi=j(()=>{const m=e.modelScopeDownloads,S=O();if(!m||!S)return;const A=Ut();if(A.kind==="scnet")return;const x=ri(A.kind==="ssh"?{kind:"ssh",targetName:A.targetName}:{kind:"local"},S);return m.records()[x]});ge(ht(()=>{if(!q())return;const m=O(),S=e.workspaceDirectory,A=a.current;if(!(!m||!S||!A))return{url:A.http.url,directory:S,datasetId:m}},m=>{if(!m){Gt(void 0),Yt(!1);return}let S=!1;Gt(void 0),Yt(!0),to(m.url,m.directory,m.datasetId).then(A=>{S||Gt(A)}).catch(()=>{S||Gt(void 0)}).finally(()=>{S||Yt(!1)}),Be(()=>{S=!0})})),ge(ht(()=>{if(!q())return;const m=e.workspaceDirectory,S=a.current;if(!m||!S)return;const A=Ut();if(A.kind==="scnet")return{url:S.http.url,directory:m,scnet:!0,diskUnavailable:!1,diskKey:"scnet"};if(A.kind==="ssh"){const x=_a().trim(),he=je().find(Fe=>Fe.name===A.targetName);return!he||!x?{url:S.http.url,directory:m,scnet:!1,diskUnavailable:!0,diskKey:`ssh-missing:${A.targetName}`}:{url:S.http.url,directory:m,scnet:!1,diskUnavailable:!1,diskKey:`ssh:${he.name}:${x}`,environment:{kind:"ssh",targetName:he.name,remotePath:x,ssh:he}}}return{url:S.http.url,directory:m,scnet:!1,diskUnavailable:!1,diskKey:`local:${m}`,environment:{kind:"local"}}},m=>{if(!m){Bt(void 0),Zt(!1);return}let S=!1;Bt(void 0),Zt(!m.scnet&&!m.diskUnavailable);const A=setTimeout(()=>{m.scnet||m.diskUnavailable||ao(m.url,m.directory,m.environment).then(x=>{S||Bt(x.availableBytes)}).catch(()=>{S||Bt(void 0)}).finally(()=>{S||Zt(!1)})},m.environment?.kind==="ssh"?400:0);Be(()=>{S=!0,clearTimeout(A)})}));const ds=()=>"href"in e.item&&e.item.action==="打开",us=m=>{m.preventDefault(),m.stopPropagation(),J(!0)},Wa=()=>e.page==="apps"&&e.item.action==="安装"&&"href"in e.item&&!!e.item.href,ms=m=>{m.preventDefault(),m.stopPropagation(),W()&&oe(!0)},Va=m=>{m?.preventDefault(),m?.stopPropagation(),pt(!1);const S=jc({id:e.item.id,title:e.item.title,copy:e.item.copy,layer:"layer"in e.item&&typeof e.item.layer=="string"?e.item.layer:void 0,tags:e.item.tags,provider:e.item.provider});g(S.prompt,{skill:S.skill})},hs=(m,S)=>{const A=W();if(!A)return;if(oe(!1),m==="scientific-research"){const st=hr(e.item.title);if(!st||!S)return;g($l(st,S));return}const x={modelId:A,developType:m,title:e.item.title,copy:e.item.copy},he=c(),Fe=Qa({directory:he,ssh:l(),mcp:d.getQueryData(r.queryOptions.mcp(Za(he)).queryKey)}),Te=rr(he,Fe.env);g(pn(x,Fe.env,{...Fe,...Te?{condaEnv:Te}:{}}),{template:hl(x)})},ps=m=>{if(m.preventDefault(),m.stopPropagation(),!Wa()||!("href"in e.item)||!e.item.href)return;const S={title:e.item.title,copy:e.item.copy,format:e.item.format,href:e.item.href},A=c(),x=Qa({directory:A,ssh:l(),mcp:d.getQueryData(r.queryOptions.mcp(Za(A)).queryKey)}),he=rr(A,x.env);g(Cn(S,x.env,{...x,...he?{condaEnv:he}:{}}),{template:zc(S)})},gs=m=>{if(m.preventDefault(),m.stopPropagation(),!tt()||!O()||it()||Se())return;const S=Ve().env;zt(()=>{Wi(S),Pa(S.kind==="ssh"?Vi(S.targetName):""),Gt(void 0),Bt(void 0),Zt(!0),Yt(!0),ea(void 0),Q(!0)})},fs=m=>{m.preventDefault(),m.stopPropagation(),!(!O()||!it())&&Ne(!0)},bs=m=>{m.preventDefault(),m.stopPropagation(),!(!O()||!Qt()||Se())&&(Re([]),Ye(!0))},vs=async()=>{const m=O();if(!m||Ce()||Se())return;const S=Ut();if(S.kind==="scnet"){Q(!1);const x={datasetId:m,title:e.item.title,targetDir:_a().trim()||void 0,serverName:S.serverName};g(gn(x,S),{template:pl(x)});return}if(!e.onDatasetDownloadStart)return;const A=Ki();if(!(S.kind==="ssh"&&!A)){_e(!0),ea(void 0);try{await e.onDatasetDownloadStart(m,A),Q(!1)}catch(x){ea(x instanceof Error&&x.message.trim()?x.message:"启动下载失败")}finally{_e(!1)}}},ys=async()=>{const m=O();if(!(!m||!e.onDatasetDownloadCancel||We())){se(!0);try{await e.onDatasetDownloadCancel(m,_t())}finally{se(!1),Ne(!1)}}},ws=async()=>{const m=O();if(!m||!e.onDatasetDownloadDelete||Se())return;const S=new Set(nt()),A=$t().filter(x=>S.has(x.key));if(A.length!==0){Pe(!0);try{for(const x of A)await e.onDatasetDownloadDelete(m,x.environment);Ye(!1)}finally{Pe(!1)}}},$s=()=>e.item.tags.filter(m=>!In.has(m)&&(!ds()||!Hh.has(m))).slice(0,4),Cs=(()=>{var m=Um(),S=m.firstChild,A=S.firstChild,x=A.nextSibling,he=x.firstChild,Fe=S.nextSibling,Te=Fe.firstChild,st=Te.firstChild,Pt=st.nextSibling,Ct=Te.nextSibling;return i(A,()=>e.item.title),i(he,()=>e.item.provider),i(x,n(y,{get when(){return ne(()=>!!e.item.size)()&&e.item.size!==e.item.provider},get children(){var ut=Rm();return i(ut,()=>e.item.size),ut}}),null),i(m,n(Na,{get copy(){return e.item.copy},plain:!0}),Fe),i(Pt,(()=>{var ut=ne(()=>"layer"in e.item&&typeof e.item.layer=="string");return()=>ut()&&e.item.layer||"技能"})()),i(Ct,n(y,{get when(){return ne(()=>!!N())()&&e.item.action==="开发"},get children(){var ut=Lm();return ut.$$click=Va,i(ut,()=>e.item.action),ut}}),null),i(Ct,n(y,{get when(){return!e.downloadOnly},get children(){return n(Hr,{get page(){return e.page},get item(){return e.item},get onChanged(){return e.onChanged},get onEdit(){return e.onEdit}})}}),null),m})(),Ss=[(()=>{var m=Bm(),S=m.firstChild,A=S.nextSibling;return i(S,n(y,{get when(){return h()},get fallback(){return e.item.title},children:x=>(()=>{var he=Wm();return i(he,()=>e.item.title),E(()=>R(he,"href",x())),he})()})),i(A,n(y,{get when(){return p()},get children(){var x=Gm();return i(x,()=>M().label),E(()=>R(x,"data-source",M().tone)),x}}),null),i(A,n(y,{get when(){return!e.downloadOnly},get children(){return n(Hr,{get page(){return e.page},get item(){return e.item},get onChanged(){return e.onChanged},get onEdit(){return e.onEdit}})}}),null),m})(),(()=>{var m=An();return i(m,n(ce,{get each(){return $s()},children:S=>(()=>{var A=xn();return i(A,S),A})()})),m})(),n(Na,{get copy(){return e.item.copy},get plain(){return le()}}),(()=>{var m=qm(),S=m.firstChild,A=S.firstChild,x=A.nextSibling,he=S.nextSibling,Fe=he.firstChild,Te=Fe.nextSibling;return i(x,()=>e.item.provider),i(Te,()=>e.item.size),i(m,n(y,{get when(){return ne(()=>"score"in e.item)()&&e.item.action!=="开发"},get children(){var st=Hm(),Pt=st.firstChild,Ct=Pt.nextSibling;return i(Ct,()=>e.item.score),st}}),null),m})(),n(y,{get when(){return!(e.page==="cases"&&V())},get children(){var m=jm(),S=m.firstChild;return i(S,n(y,{get when(){return C()},get children(){return n(ce,{get each(){return w()},children:A=>(()=>{var x=Er();return i(x,()=>A.label),E(()=>R(x,"href",A.href)),x})()})}}),null),i(S,n(y,{get when(){return ne(()=>!!(!e.downloadOnly&&N()))()&&e.item.action==="使用"},get children(){var A=ra();return A.$$click=us,i(A,()=>e.item.action),A}}),null),i(S,n(y,{get when(){return ne(()=>!e.downloadOnly)()&&f()},children:A=>(()=>{var x=Vm();return E(()=>R(x,"href",A())),x})()}),null),i(S,n(y,{get when(){return ne(()=>!!N())()&&e.item.action!=="使用"},get children(){return[n(y,{get when(){return ne(()=>!e.downloadOnly)()&&e.item.action==="开发"},get children(){var A=ra();return Oe(A,"click",e.page==="skills"?Va:ms,!0),i(A,()=>e.item.action),E(()=>A.disabled=e.page!=="skills"&&!W()),A}}),n(y,{get when(){return H()},get children(){return[n(y,{get when(){return it()},get fallback(){return(()=>{var A=ra();return A.$$click=gs,i(A,()=>Jt()?"更新":"下载"),E(x=>{var he=ze(),Fe=lt();return he!==x.e&&(A.disabled=x.e=he),Fe!==x.t&&R(A,"title",x.t=Fe),x},{e:void 0,t:void 0}),A})()},get children(){var A=zm(),x=A.firstChild,he=x.nextSibling,Fe=he.firstChild;return x.$$click=fs,i(x,wa),E(Te=>{var st=!!Ie(),Pt=!Ie()&&Nt()>0,Ct=Je()!==void 0,ut=Ie()||Je()===void 0?"true":void 0,aa=Je()??0,ka=Je()!==void 0?{width:`${Je()}%`}:void 0;return st!==Te.e&&he.classList.toggle("is-preparing",Te.e=st),Pt!==Te.t&&he.classList.toggle("is-active",Te.t=Pt),Ct!==Te.a&&he.classList.toggle("is-determinate",Te.a=Ct),ut!==Te.o&&R(he,"aria-busy",Te.o=ut),aa!==Te.i&&R(he,"aria-valuenow",Te.i=aa),Te.n=io(Fe,ka,Te.n),Te},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),A}}),n(y,{get when(){return ne(()=>!!Jt())()&&!it()},get children(){return n(Ze,{class:"os-button os-button-card os-card-action-link",get href(){const A=$t().flatMap(he=>he.paths??[]).filter(Boolean),x=new URLSearchParams({category:"onedata",onedata:"raw",register:"1"});return A[0]&&x.set("rawUri",A[0]),e.item.title&&x.set("rawTitle",e.item.title),`/workspace/capabilities?${x}`},title:"下载不会自动登记;请到原始数据确认接入",children:"去原始数据登记"})}})]}}),n(y,{get when(){return ne(()=>!e.downloadOnly&&e.item.action==="导入")()&&!H()},get children(){var A=ra();return i(A,()=>e.item.action),E(()=>A.disabled=G()),A}}),n(y,{get when(){return ne(()=>!e.downloadOnly)()&&Wa()},get children(){var A=ra();return A.$$click=ps,i(A,()=>e.item.action),A}}),n(y,{get when(){return ne(()=>!e.downloadOnly&&e.item.action!=="开发"&&e.item.action!=="下载"&&e.item.action!=="导入"&&e.item.action!=="打开"&&e.item.action!=="基于此开发")()&&!Wa()},get children(){return n(y,{get when(){return u()},get fallback(){return n(Ze,{href:"#",class:"os-button os-button-card",get children(){return e.item.action}})},children:A=>(()=>{var x=Er();return i(x,()=>e.item.action),E(()=>R(x,"href",A())),x})()})}})]}}),null),i(S,n(y,{get when(){return ne(()=>!!(!e.downloadOnly&&L()))()&&X()},get children(){return n(y,{get when(){return ne(()=>!!at())()?vt():void 0},get fallback(){return(()=>{var A=Km();return A.$$pointerdown=x=>{x.button!==0||qe()||(x.preventDefault(),x.stopPropagation(),queueMicrotask(I))},i(A,Ke),E(x=>{var he=qe(),Fe=Ue();return he!==x.e&&(A.disabled=x.e=he),Fe!==x.t&&R(A,"title",x.t=Fe),x},{e:void 0,t:void 0}),A})()},children:A=>(()=>{var x=Xm();return x.$$pointerdown=he=>{he.button===0&&(he.preventDefault(),he.stopPropagation(),t(Pi({id:A(),openDetail:!0,scope:Tt(e.item)?"mine":void 0})))},x})()})}}),null),i(S,n(y,{get when(){return ne(()=>!!(e.page==="datasets"&&O()))()&&(Qt()||Se())},get children(){var A=Ga();return A.$$click=bs,i(A,()=>Se()?"删除中...":"删除"),E(x=>{var he=`os-button os-button-card os-card-action-link os-card-delete-action${$a()?" os-button-delete-partial-dataset":" os-button-delete-dataset"}`,Fe=Se(),Te=Ca();return he!==x.e&&mt(A,x.e=he),Fe!==x.t&&(A.disabled=x.t=Fe),Te!==x.a&&R(A,"title",x.a=Te),x},{e:void 0,t:void 0,a:void 0}),A}}),null),m}})],Ka=()=>e.page==="cases"&&!!V(),ta=()=>Ka()||le(),Ji=()=>{if(Ka()){Ae();return}le()&&ie()};return[(()=>{var m=Jm();return Oe(m,"keydown",ta()?S=>{(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),Ji())}:void 0,!0),Oe(m,"click",ta()?Ji:void 0,!0),i(m,n(y,{get when(){return h()},children:S=>(()=>{var A=Qm();return E(x=>{var he=S(),Fe=`打开 ${e.item.title} 外部链接`;return he!==x.e&&R(A,"href",x.e=he),Fe!==x.t&&R(A,"aria-label",x.t=Fe),x},{e:void 0,t:void 0}),A})()}),null),i(m,()=>le()?Cs:Ss,null),E(S=>{var A=e.item.id,x=!!(T()&&!D()),he=!!ta(),Fe=!!e.highlighted,Te=!!le(),st=!!e.downloadOnly,Pt=M().tone,Ct=le()?pp(e.item):void 0,ut=T()?String(D()):void 0,aa=e.highlighted?"true":void 0,ka=ta()?"button":void 0,Qi=ta()?0:void 0,Zi=Ka()?`基于此开发 ${e.item.title}`:le()?`查看技能 ${e.item.title}`:void 0;return A!==S.e&&R(m,"id",S.e=A),x!==S.t&&m.classList.toggle("os-resource-card-unavailable",S.t=x),he!==S.a&&m.classList.toggle("os-resource-card-clickable",S.a=he),Fe!==S.o&&m.classList.toggle("os-resource-card-highlighted",S.o=Fe),Te!==S.i&&m.classList.toggle("os-skill-tile-card",S.i=Te),st!==S.n&&m.classList.toggle("os-onedata-dataset-card",S.n=st),Pt!==S.s&&R(m,"data-source",S.s=Pt),Ct!==S.h&&R(m,"data-layer",S.h=Ct),ut!==S.r&&R(m,"data-modelscope-available",S.r=ut),aa!==S.d&&R(m,"data-highlighted",S.d=aa),ka!==S.l&&R(m,"role",S.l=ka),Qi!==S.u&&R(m,"tabindex",S.u=Qi),Zi!==S.c&&R(m,"aria-label",S.c=Zi),S},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0}),m})(),n(Ua,{get item(){return e.item},get open(){return de()},onClose:()=>J(!1),onSubmit:m=>g(m)}),n(Al,{get open(){return ae()},get title(){return e.item.title},get scenarios(){return v()},onClose:()=>oe(!1),onConfirm:hs}),n(pd,{get item(){return ne(()=>!!le())()?{id:e.item.id,title:e.item.title,copy:e.item.copy,layer:"layer"in e.item&&typeof e.item.layer=="string"?e.item.layer:void 0,tags:e.item.tags,provider:e.item.provider}:void 0},get open(){return dt()},get serverUrl(){return a.current?.http.url},onClose:()=>pt(!1),onDevelop:()=>Va()}),n(y,{get when(){return ne(()=>!e.downloadOnly)()&&!e.onPublishPrimitive},get children(){return n(xi,{get resourceId(){return z()},get resourcePage(){return me()},get draftId(){return ue()},get initialPrimitiveType(){return te()},get sourceHint(){return be()},get serverUrl(){return a.current?.http.url??window.location.origin},get open(){return we()},onClose:()=>{Y(!1),$e("default"),Z(void 0),ee(void 0)},onSuccess:m=>{const S=z(),A=a.current;if((e.page==="models"||e.page==="datasets")&&S&&A)Ta(A.http.url,S).then(x=>{if(!x.loaded)return;const he=oa({callable:x.callable,draft:x.draft,inference:x.inference,training:x.training,slots:x.slots});e.primitiveLinkReady!==void 0?e.onPrimitiveLinkChange?.(S,he):(F(he),re(!0))});else{const x=ro(K(),m.id,ve());if(e.primitiveLinkReady!==void 0){const he=z();he&&e.onPrimitiveLinkChange?.(he,x)}else F(x),re(!0)}$e("default"),Z(void 0),ee(void 0),Y(!1),ji(t,m,a.current?.http.url)}})}}),n(ol,{get open(){return q()},get title(){return e.item.title},get datasetId(){return O()??""},get targetPath(){return Sa()},get diskLoading(){return ss()},get sizeLoading(){return os()},get availableBytes(){return ns()},get datasetBytes(){return rs()?.datasetBytes},get busy(){return Ce()},get actionLabel(){return Xi()?.status==="completed"?"更新":"下载"},get confirmDisabled(){return ne(()=>Ut().kind==="ssh")()&&!Ki()},get environment(){return Ut()},get environmentSelector(){return n(so,{directory:()=>e.workspaceDirectory??c(),value:Ut,onChange:cs,variant:"field",downloadedCopies:$t})},get remotePath(){return _a()},onRemotePathChange:m=>{Pa(m),ea(void 0)},get actualPaths(){const m=Xi();if(!(!m||m.status!=="completed"&&m.status!=="partial"))return no(m,e.workspaceDirectory).paths},get error(){return ls()},onClose:()=>{Q(!1),Gt(void 0),Bt(void 0),Zt(!1),Yt(!1)},onConfirm:()=>void vs()}),n(ll,{get open(){return ye()},get title(){return e.item.title},get datasetId(){return O()??""},get busy(){return We()},onClose:()=>Ne(!1),onConfirm:()=>void ys()}),n(cl,{get open(){return Ee()},get title(){return e.item.title},get datasetId(){return O()??""},get copies(){return $t()},get selectedKeys(){return nt()},onSelectedKeysChange:Re,get busy(){return Se()},onClose:()=>Ye(!1),onConfirm:()=>void ws()})]}function _p(e,t){if(!Bi(e))return;if(Ni(t))return t;const a=Ha(t).tone;return{id:t.id,page:e,title:t.title,copy:t.copy,domain:t.tags.find(r=>He[e].filters.some(s=>s===r))??He[e].filters.find(r=>r!=="全部")??"其它",tags:[...t.tags],provider:t.provider,size:t.size,format:t.format,href:"href"in t?t.href:void 0,source:a,metricLabel:t.metricLabel,action:t.action}}function Hr(e){const t=ot(),[a,r]=_(!1),[s,d]=_(!1),[l,c]=_(""),[g,v]=_(!1);let b;const u=()=>Bi(e.page),h=()=>Kh(e.item),f=()=>Vh(e.item);ge(()=>{if(!a())return;const N=L=>{const W=L.target;W instanceof Node&&(b?.contains(W)||r(!1))};document.addEventListener("mousedown",N),Be(()=>document.removeEventListener("mousedown",N))});const w=N=>{N.preventDefault(),N.stopPropagation(),r(L=>!L)},C=N=>{if(N.preventDefault(),N.stopPropagation(),!h())return;r(!1);const L=_p(e.page,e.item);L&&e.onEdit?.(L)},p=N=>{N.preventDefault(),N.stopPropagation(),f()&&(r(!1),d(!0))},M=async N=>{N.preventDefault();const L=t.current;if(!(!L||!Tt(e.item)||!f())){v(!0),c("");try{await es(L.http.url,e.item.page,e.item.id),d(!1),e.onChanged?.()}catch(W){c(W instanceof Error?W.message:"删除失败")}finally{v(!1)}}};return n(y,{get when(){return u()},get children(){var N=th(),L=N.firstChild;N.$$click=O=>O.stopPropagation();var W=b;return typeof W=="function"?pa(W,N):b=N,L.$$click=w,i(N,n(y,{get when(){return a()},get children(){var O=Ym(),H=O.firstChild;return H.$$click=C,i(O,n(y,{get when(){return f()},get children(){var D=Zm();return D.$$click=p,D}}),null),E(D=>{var T=!h(),G=h()?void 0:"登录后可修改";return T!==D.e&&(H.disabled=D.e=T),G!==D.t&&R(H,"title",D.t=G),D},{e:void 0,t:void 0}),O}}),null),i(N,n(y,{get when(){return ne(()=>!!s())()&&Tt(e.item)},get children(){return n(bt,{get children(){var O=eh(),H=O.firstChild,D=H.firstChild,T=D.firstChild,G=T.firstChild,z=G.nextSibling,P=T.nextSibling,F=D.nextSibling,B=F.nextSibling,re=B.firstChild,de=re.nextSibling;return H.$$click=J=>J.stopPropagation(),H.addEventListener("submit",M),i(z,()=>e.item.title),P.$$click=()=>d(!1),i(H,n(y,{get when(){return l()},children:J=>(()=>{var we=ba();return i(we,J),we})()}),B),re.$$click=()=>d(!1),i(de,()=>g()?"删除中...":"删除"),E(()=>de.disabled=g()),O}})}}),null),E(()=>R(L,"aria-label",`${e.item.title} 编辑菜单`)),N}})}function Pp(){return n(is,{})}const kp=[{title:"蛋白质结构预测训练",model:"AlphaFold-v3",status:"训练中",tone:"blue",progress:65,meta:"Epoch 130/200"},{title:"气象预测模型微调",model:"FourCastNet",status:"已完成",tone:"green",progress:100,meta:"验证集 MAE 0.082"},{title:"分子动力学势函数训练",model:"MACE",status:"等待中",tone:"slate",progress:0,meta:"等待 A100 队列"},{title:"CFD湍流模型训练",model:"MeshGraphNet",status:"失败",tone:"red",progress:38,meta:"数据校验失败"}];function Dp(){return(()=>{var e=ah(),t=e.firstChild,a=t.firstChild,r=a.firstChild,s=r.firstChild,d=t.nextSibling,l=d.firstChild,c=l.firstChild,g=c.nextSibling,v=l.nextSibling,b=v.firstChild,u=b.nextSibling,h=u.nextSibling,f=h.firstChild,w=f.nextSibling,C=w.nextSibling;return C.firstChild,i(r,n(Mt,{name:"tasks"}),s),i(g,n(ce,{each:kp,children:(p,M)=>(()=>{var N=ih(),L=N.firstChild,W=L.firstChild,O=W.nextSibling,H=L.nextSibling,D=H.nextSibling,T=D.firstChild,G=T.nextSibling,z=G.firstChild,P=D.nextSibling,F=P.firstChild;return i(W,()=>p.title),i(O,()=>p.status),i(H,()=>p.model),i(T,()=>p.meta),i(G,()=>p.progress,z),E(B=>{var re=M()===0,de=p.tone,J=`${p.progress}%`;return re!==B.e&&N.classList.toggle("is-active",B.e=re),de!==B.t&&R(O,"data-tone",B.t=de),J!==B.a&&xt(F,"width",B.a=J),B},{e:void 0,t:void 0,a:void 0}),N})()})),e})()}function Ap(){return(()=>{var e=rh(),t=e.firstChild,a=t.firstChild,r=a.firstChild,s=r.firstChild,d=a.nextSibling;return i(r,n(Mt,{name:"data-management"}),s),i(d,n(Ze,{get href(){return`${et("onedata")}&onedata=raw`},class:"os-button os-button-primary",children:"打开 OneData"})),e})()}function xp(){return n(Ot,{page:"datasets"})}function Mp(e){const t=Xt(),a=Ui(t),[r,s]=_(""),[d,l]=_(1);ge(()=>{e.filter,s(""),l(1)}),ge(()=>{r(),l(1)}),ge(()=>{t();const u=Oa(()=>{a.refresh()},300);Be(()=>da(u))});const c=j(()=>{const u=ha("datasets",e.filter,He.datasets.items);return Li("datasets",qa(r(),u))}),g=j(()=>ha("datasets",e.filter,He.datasets.items).length),v=j(()=>oo(c(),d(),lo));ge(()=>{const u=v().page;u!==d()&&l(u)});const b=()=>e.onRegisterOwnData?(()=>{var u=nh();return u.$$click=()=>e.onRegisterOwnData?.(),u})():null;return[(()=>{var u=sh(),h=u.firstChild,f=h.firstChild,w=f.nextSibling,C=h.nextSibling,p=C.firstChild;return w.$$input=M=>s(M.currentTarget.value),i(C,n(y,{get when(){return!!e.onRegisterOwnData},get children(){return b()}}),p),i(p,(()=>{var M=ne(()=>c().length===g());return()=>M()?`共 ${g()} 项`:`${c().length} / ${g()} 项`})()),E(()=>w.value=r()),u})(),n(y,{get when(){return c().length>0},get fallback(){return(()=>{var u=lh();return i(u,(()=>{var h=ne(()=>!!r().trim());return()=>h()?`没有匹配「${r().trim()}」的数据集,试试换个关键词。`:`当前「${e.domainLabel??e.filter}」领域暂无数据集卡片。`})()),u})()},get children(){return[(()=>{var u=oh();return i(u,n(ce,{get each(){return v().pageItems},children:h=>n(va,{page:"datasets",item:h,downloadOnly:!0,get workspaceDirectory(){return t()},modelScopeDownloads:a,get onDatasetDownloadStart(){return a.start},get onDatasetDownloadCancel(){return a.cancel},get onDatasetDownloadDelete(){return a.remove}})})),u})(),n(co,{get page(){return v().page},get totalPages(){return v().totalPages},get total(){return v().total},onPageChange:l})]}})]}function Ip(){return n(as,{})}function Fp(){return n(mp,{})}function Tp(){return n(Ep,{})}function ji(e,t,a){const r={...t,status:"callable",owner:t.owner??ft()?.account.id??"local",timeCreated:t.timeCreated??Date.now()};if(a){const s=ki(a)??[];Di(a,[r,...s.filter(d=>d.id!==t.id)])}e(Pi({id:r.id,scope:"mine"}),{replace:!0})}function Ep(){const e=["tab=catalog","tab=factory"],t=Kt(),a=wt(),r=j(()=>new URLSearchParams(t.search)),s=j(()=>r().get("highlight")??void 0),d=j(()=>{const b=r().get("scope");return b==="mine"||b==="recent"?b:"all"}),l=j(()=>r().get("openDetail")==="1"),c=j(()=>r().get("openUse")==="1"),g=j(()=>{const b=r().get("tab");return b==="factory"?b:"catalog"}),v=b=>{const u=new URLSearchParams(t.search);u.set("tab",b),a(`/primitives?${u}`)};return(()=>{var b=ch(),u=b.firstChild,h=u.firstChild,f=h.nextSibling,w=f.firstChild,C=w.nextSibling;return w.$$click=()=>v("catalog"),C.$$click=()=>v("factory"),i(u,n(y,{get when(){return g()==="catalog"},get children(){return n(Op,{get highlightId(){return s()},get initialScope(){return d()},get openDetail(){return l()},get openUse(){return c()}})}}),null),i(u,n(y,{get when(){return g()==="factory"},get children(){return n(Lp,{})}}),null),E(p=>{var M=e.join(","),N=g()==="catalog",L=g()==="factory";return M!==p.e&&R(f,"data-tabs",p.e=M),N!==p.t&&R(w,"data-active",p.t=N),L!==p.a&&R(C,"data-active",p.a=L),p},{e:void 0,t:void 0,a:void 0}),b})()}function Op(e={}){const a=ot(),r=Kt(),s=wt(),d=za(),[l,c]=_([]),[g,v]=_(!1),[b,u]=_(!1),[h,f]=_(""),[w,C]=_(e.initialScope??"all"),[p,M]=_(),[N,L]=_(),[W,O]=_(),[H,D]=_(),[T,G]=_(new Set),[z,P]=_(0),[F,B]=_(),[re,de]=_(!1),[J,we]=_(!1),[Y,ve]=_();let $e,ue,Z,te=0,ee;const K=async I=>{const ae=a.current;if(!ae||I!==te)return;let oe=0,q=[];for(;;){if(I!==te)return;const Q=await mn(ae.http.url,{limit:100,offset:oe,status:"callable"});if(Q.loaded!==!0||(q=oe===0?Q.items:[...q,...Q.items],typeof Q.nextOffset!="number"))break;oe=Q.nextOffset}I===te&&(Di(ae.http.url,q),c(q),v(q.length>0),u(!1))},X=async()=>{const I=a.current;if(!I){v(!1),c([]);return}const ae=++te;ee!==void 0&&(da(ee),ee=void 0);const oe=ki(I.http.url),q=e.highlightId;if(!!oe?.length&&(!q||oe.some(ye=>ye.id===q))){c(oe),v(!0),u(!1),ee=Oa(()=>{ee=void 0,K(ae)},500);return}oe?.length?(c(oe),v(!0)):(u(!0),c([]),v(!1)),await K(ae)};ge(()=>{const I=a.current;!a.ready()||!I||(X(),en(I.http.url).then(G))});const fe=()=>{L(void 0);const I=new URLSearchParams(r.search);I.get("openDetail")==="1"&&(I.delete("openDetail"),s(`/primitives?${I}`,{replace:!0}))},De=()=>{O(void 0);const I=new URLSearchParams(r.search);I.get("openUse")==="1"&&(I.delete("openUse"),s(`/primitives?${I}`,{replace:!0}))};Be(()=>{ee!==void 0&&da(ee),te+=1}),ge(()=>{const I=h().trim(),ae=a.current;if(!I||!ae){ve(void 0),we(!1);return}we(!0);const oe=window.setTimeout(()=>{tn(ae.http.url,{q:I,category:p(),limit:50}).then(q=>{ve(q.loaded?q.items:[]),we(!1)})},250);Be(()=>window.clearTimeout(oe))}),ge(ht(()=>e.initialScope,I=>{I&&(C(I),M(void 0))}));const qe=j(()=>`${w()}:${p()??""}:${h().trim().toLowerCase()}`),Ke=j(()=>{const I=l(),ae=h().trim();let oe;if(ae)if(J()||Y()===void 0)oe=[];else{const ye=Y(),Ne=(ye.length>0?ye:ni(I,{q:ae}).items).map(Ee=>uo(Ee,I));oe=si(Ne,w(),T(),ft()?.account.id)}else oe=si(I,w(),T(),ft()?.account.id);const q=e.highlightId;if(!q)return oe;const Q=I.find(ye=>ye.id===q);return!Q||oe.some(ye=>ye.id===q)||!ft()?.account.id&&!mo(Q)?oe:[Q,...oe]}),Ue=j(()=>ho(Ke())),tt=j(()=>po(w(),Ke(),Ue())),ze=j(()=>ni(Ke(),{category:p()}).items),lt=I=>{C(I),M(void 0);const ae=new URLSearchParams(r.search);ae.set("tab","catalog"),I==="all"?ae.delete("scope"):ae.set("scope",I),s(`/primitives?${ae}`,{replace:!0})},at=I=>{M(p()===I?void 0:I)};ge(()=>{tt()||p()&&M(void 0)}),ge(()=>{const I=p();I&&(Ue().some(ae=>ae.category===I)||M(void 0))});const vt=j(()=>ze().slice(0,z())),me=j(()=>z()<ze().length),be=()=>P(I=>Math.min(I+24,ze().length));return ge(ht(qe,()=>{P(Math.min(24,ze().length))})),ge(()=>{const I=ze().length;I!==0&&P(ae=>ae===0?Math.min(24,I):ae)}),ge(()=>{const I=F();if(!I)return;const ae=I.closest(".os-workspace-main"),oe=new IntersectionObserver(q=>{const Q=q.some(ye=>ye.isIntersecting);de(Q),Q&&be()},{root:ae,rootMargin:"640px 0px"});oe.observe(I),Be(()=>oe.disconnect())}),ge(()=>{const I=re(),ae=z(),oe=ze().length;if(!I||ae>=oe)return;let q=0;q=window.requestAnimationFrame(()=>{re()&&ae===z()&&oe===ze().length&&be()}),Be(()=>{q&&window.cancelAnimationFrame(q)})}),ge(ht(()=>e.highlightId,(I,ae)=>{$e=void 0,ue=void 0,Z=void 0,!(!I||ae===void 0)&&X()})),ge(()=>{const I=e.highlightId;if(!I||b()||!g()||$e===I)return;const ae=l().find(Re=>Re.id===I);if(!ae)return;const oe=e.initialScope??"all",q=w()!==oe,Q=!!h().trim(),ye=!!p(),Ne=Y()!==void 0;if(Q||ye||Ne||q){zt(()=>{Q&&f(""),ye&&M(void 0),Ne&&ve(void 0),q&&e.initialScope&&C(e.initialScope)});return}$e=I;const Ee=ze().findIndex(Re=>Re.id===I);if(Ee>=0&&(P(Re=>Math.max(Re,Ee+1)),D(I)),e.openDetail&&ue!==I&&(ue=I,L(ae)),e.openUse&&Z!==I&&ae.status==="callable"&&(Z=I,O(ae)),Ee<0)return;let Ye=0;Ye=window.requestAnimationFrame(()=>{document.getElementById(I)?.scrollIntoView({behavior:"smooth",block:"center"})});const nt=window.setTimeout(()=>D(void 0),2400);Be(()=>{Ye&&window.cancelAnimationFrame(Ye),window.clearTimeout(nt)})}),(()=>{var I=mh(),ae=I.firstChild,oe=ae.firstChild,q=oe.nextSibling,Q=ae.nextSibling,ye=Q.firstChild,Ne=ye.firstChild,Ee=Ne.nextSibling,Ye=ye.nextSibling,nt=Q.nextSibling,Re=nt.firstChild;return i(q,(()=>{var Ce=ne(()=>!!J());return()=>Ce()?"正在语义检索...":ne(()=>!!(h().trim()&&ze().length===0&&g()))()?"未找到匹配原语":ne(()=>!!g())()?`数据库 ${ze().length} 个原语`:b()?"正在加载原语...":"服务不可用,展示静态目录"})()),Ee.$$input=Ce=>f(Ce.currentTarget.value),Ye.$$click=()=>void X(),i(Ye,()=>b()?"刷新中...":"刷新列表"),i(Re,n(ce,{each:go,children:Ce=>(()=>{var _e=Ga();return _e.$$click=()=>lt(Ce.id),i(_e,()=>Ce.label),E(We=>{var se=w()===Ce.id,Se=Ce.hint;return se!==We.e&&R(_e,"data-active",We.e=se),Se!==We.t&&R(_e,"title",We.t=Se),We},{e:void 0,t:void 0}),_e})()})),i(nt,n(y,{get when(){return tt()},get children(){var Ce=dh();return i(Ce,n(ce,{get each(){return Ue()},children:_e=>(()=>{var We=hh();return We.$$click=()=>_e.category&&at(_e.category),i(We,()=>`${_e.shortLabel} (${_e.count})`),E(()=>R(We,"data-active",p()===_e.category)),We})()})),Ce}}),null),i(I,n(y,{get when(){return ne(()=>!!b())()&&l().length===0},get children(){return uh()}}),null),i(I,n(y,{get when(){return!b()||l().length>0},get children(){return n(y,{get when(){return ze().length>0},get fallback(){return(()=>{var Ce=Ii();return i(Ce,(()=>{var _e=ne(()=>!!J());return()=>_e()?"正在语义检索...":ne(()=>!!h().trim())()?"未找到匹配原语":ne(()=>w()==="mine")()?"暂无我创建的原语":w()==="recent"?"最近 7 天暂无新原语":"暂无可展示的原语"})()),Ce})()},get children(){var Ce=kn();return i(Ce,n(ce,{get each(){return vt()},children:_e=>n(Up,{item:_e,get highlighted(){return H()===_e.id},get deletable(){return ne(()=>!!g())()&&yi(_e)},onInspect:()=>L(_e),get onDelete(){return g()&&yi(_e)?async()=>{const We=a.current;We&&(await zi(We.http.url,_e.id),c(se=>se.filter(Se=>Se.id!==_e.id)),N()?.id===_e.id&&L(void 0))}:void 0}})})),Ce}})}}),null),i(I,n(y,{get when(){return ze().length>0},get children(){var Ce=Pn();return pa(B,Ce),i(Ce,n(y,{get when(){return me()},fallback:"已经到底啦",children:"继续加载中..."})),Ce}}),null),i(I,n(Gp,{get item(){return N()},onClose:fe}),null),i(I,n(y,{get when(){return W()},children:Ce=>n(Ua,{get item(){return Ce()},open:!0,onClose:De,onSubmit:_e=>{De(),d(_e)}})}),null),E(Ce=>{var _e=jr.search,We=b();return _e!==Ce.e&&R(Ee,"placeholder",Ce.e=_e),We!==Ce.t&&(Ye.disabled=Ce.t=We),Ce},{e:void 0,t:void 0}),E(()=>Ee.value=h()),I})()}function yi(e){if(e.owner==="system"||(e.owner==="platform"||e.owner==="local")&&e.id.startsWith("primitive-resource-")&&!e.id.startsWith("primitive-resource-custom-"))return!1;const t=Dt();return t?!!(e.owner===t||!e.owner||fo(e.id)||(e.owner==="platform"||e.owner==="local")&&e.id.startsWith("primitive-resource-custom-")):!1}function Np(e){return yi(e)}function Rp(e){if(e.owner==="system"||e.owner==="platform"||e.owner==="local"||!e.owner)return!0;const t=Dt();return!!(t&&e.owner===t)}function Lp(){const e=ot(),t=wt(),a=za(),[r,s]=_([]),[d,l]=_(!1),[c,g]=_("all"),[v,b]=_(),[u,h]=_(!1),[f,w]=_(""),[C,p]=_(),[M,N]=_(),L=[{id:"all",label:"全部"},{id:"draft",label:"草稿"},{id:"callable",label:"可调用"}],W=j(()=>{const F=new Map;for(const B of He.models.items)F.set(B.id,B.title);return F}),O=async()=>{const F=e.current;if(!F)return;const B=await un(F.http.url);l(B.loaded===!0),s(B.items.filter(re=>re.status==="draft"||re.status==="callable"))};ge(()=>{!e.ready()||!e.current||O()});const H=j(()=>r().filter(F=>Rp(F)&&tc(F,B=>W().get(B)))),D=j(()=>{const F=c();return F==="all"?H():H().filter(B=>B.status===F)}),T=F=>F==="all"?H().length:H().filter(B=>B.status===F).length,G=F=>{if(F.status==="callable"){p(F);return}const B=F.resources?.[0],re=F.sourceResourceIds?.[0]??B?.id,de=yn(F);N({resourceId:re,resourcePage:de,draftId:F.id,initialPrimitiveType:F.primitiveType,sourceHint:B?{title:B.title,copy:F.description,provider:"OneScience",tags:[],domain:F.domain,page:de}:{title:F.title,copy:F.description,provider:"OneScience",tags:[],domain:F.domain,page:de}})},z=async F=>{F.preventDefault();const B=v(),re=e.current;if(!(!B||!re||u())){h(!0),w("");try{await zi(re.http.url,B.id),s(de=>de.filter(J=>J.id!==B.id)),b(void 0)}catch(de){w(de instanceof Error?de.message:"删除失败")}finally{h(!1)}}},P=F=>{N(void 0),ji(t,F,e.current?.http.url)};return(()=>{var F=fh(),B=F.firstChild,re=B.firstChild,de=re.firstChild,J=de.nextSibling,we=B.nextSibling,Y=we.firstChild,ve=Y.nextSibling,$e=we.nextSibling;return i(J,()=>ac(c())),i(Y,n(ce,{each:L,children:ue=>(()=>{var Z=bh(),te=Z.firstChild;return Z.$$click=()=>g(ue.id),i(Z,()=>ue.label,te),i(Z,()=>T(ue.id),null),E(()=>R(Z,"data-active",c()===ue.id)),Z})()})),i(ve,n(Ze,{class:"os-button os-button-secondary",href:"/datasets",children:"数据集资源"}),null),i(ve,n(Ze,{class:"os-button os-button-secondary",href:"/models",children:"模型库资源"}),null),i(ve,n(Ze,{class:"os-button os-button-secondary",href:"/apps",children:"应用库资源"}),null),i(F,n(y,{get when(){return ne(()=>!d())()&&r().length===0},get children(){return ph()}}),$e),i(F,n(y,{get when(){return ne(()=>!!d())()&&D().length===0},get children(){return gh()}}),$e),i($e,n(ce,{get each(){return D()},children:ue=>(()=>{var Z=vh(),te=Z.firstChild,ee=te.firstChild,K=ee.nextSibling,X=te.nextSibling,fe=X.firstChild;fe.firstChild;var De=fe.nextSibling;De.firstChild;var qe=X.nextSibling,Ke=qe.firstChild;return Z.$$keydown=Ue=>{(Ue.key==="Enter"||Ue.key===" ")&&(Ue.preventDefault(),G(ue))},Z.$$click=()=>G(ue),i(ee,()=>ue.title),i(K,()=>On[ue.status]),i(Z,n(Na,{get copy(){return ue.description}}),X),i(fe,()=>ue.domain,null),i(De,()=>an[rn(ue)]??ue.primitiveType,null),i(Ke,n(y,{get when(){return ne(()=>!!d())()&&Np(ue)},get children(){var Ue=Mn();return Ue.$$click=tt=>{tt.stopPropagation(),w(""),b(ue)},E(()=>Ue.disabled=u()&&v()?.id===ue.id),Ue}})),Z})()})),i(F,n(y,{get when(){return v()},children:ue=>n(bt,{get children(){var Z=yh(),te=Z.firstChild,ee=te.firstChild,K=ee.firstChild,X=K.firstChild,fe=X.nextSibling,De=K.nextSibling,qe=ee.nextSibling,Ke=qe.nextSibling,Ue=Ke.firstChild,tt=Ue.nextSibling;return te.$$click=ze=>ze.stopPropagation(),te.addEventListener("submit",z),i(fe,()=>ue().title),De.$$click=()=>b(void 0),i(te,n(y,{get when(){return f()},children:ze=>(()=>{var lt=ba();return i(lt,ze),lt})()}),Ke),Ue.$$click=()=>b(void 0),i(tt,()=>u()?"删除中...":"删除"),E(()=>tt.disabled=u()),Z}})}),null),i(F,n(y,{get when(){return C()},children:ue=>n(Ua,{get item(){return ue()},open:!0,onClose:()=>p(void 0),onSubmit:Z=>{p(void 0),a(Z)}})}),null),i(F,n(xi,{get resourceId(){return M()?.resourceId},get resourcePage(){return M()?.resourcePage},get draftId(){return M()?.draftId},get initialPrimitiveType(){return M()?.initialPrimitiveType},get sourceHint(){return M()?.sourceHint},get serverUrl(){return e.current?.http.url??window.location.origin},get open(){return M()!==void 0},onClose:()=>N(void 0),onSuccess:ue=>P(ue)}),null),F})()}function Up(e){const t=za(),[a,r]=_(!1),[s,d]=_(!1),[l,c]=_(!1),[g,v]=_(""),b=async u=>{if(u.preventDefault(),!!e.onDelete){c(!0),v("");try{await e.onDelete(),d(!1)}catch(h){v(h instanceof Error?h.message:"删除失败")}finally{c(!1)}}};return[(()=>{var u=Ch(),h=u.firstChild,f=h.firstChild,w=f.nextSibling,C=h.nextSibling,p=C.nextSibling,M=p.firstChild;M.firstChild;var N=M.nextSibling;N.firstChild;var L=N.nextSibling;L.firstChild;var W=p.nextSibling,O=W.firstChild,H=O.firstChild;return i(f,()=>e.item.title),i(w,()=>On[e.item.status]??e.item.status),i(C,n(ce,{get each(){return qp(e.item).slice(0,4)},children:D=>(()=>{var T=xn();return i(T,D),T})()})),i(u,n(Na,{get copy(){return e.item.description}}),p),i(M,()=>e.item.domain,null),i(N,()=>an[rn(e.item)]??e.item.primitiveType,null),i(L,()=>e.item.slug??e.item.id,null),i(u,n(y,{get when(){return ne(()=>!!e.item.resources)()&&e.item.resources.length>0},get children(){var D=An();return i(D,n(ce,{get each(){return e.item.resources?.slice(0,3)??[]},children:T=>(()=>{var G=Sh();return G.firstChild,i(G,()=>T.title,null),G})()})),D}}),W),i(O,n(y,{get when(){return e.item.status==="callable"},get children(){var D=wh();return D.$$click=()=>r(!0),D}}),H),Oe(H,"click",e.onInspect,!0),i(O,n(y,{get when(){return ne(()=>!!e.deletable)()&&e.onDelete},get children(){var D=Mn();return D.$$click=()=>d(!0),D}}),null),i(u,n(y,{get when(){return s()},get children(){return n(bt,{get children(){var D=$h(),T=D.firstChild,G=T.firstChild,z=G.firstChild,P=z.firstChild,F=P.nextSibling,B=z.nextSibling,re=G.nextSibling,de=re.nextSibling,J=de.firstChild,we=J.nextSibling;return T.$$click=Y=>Y.stopPropagation(),T.addEventListener("submit",b),i(F,()=>e.item.title),B.$$click=()=>d(!1),i(T,n(y,{get when(){return g()},children:Y=>(()=>{var ve=ba();return i(ve,Y),ve})()}),de),J.$$click=()=>d(!1),i(we,()=>l()?"删除中...":"删除"),E(()=>we.disabled=l()),D}})}}),null),E(D=>{var T=e.item.id,G=!!e.highlighted,z=e.highlighted?"true":void 0,P=e.item.slug??e.item.id;return T!==D.e&&R(u,"id",D.e=T),G!==D.t&&u.classList.toggle("os-resource-card-highlighted",D.t=G),z!==D.a&&R(u,"data-highlighted",D.a=z),P!==D.o&&R(L,"title",D.o=P),D},{e:void 0,t:void 0,a:void 0,o:void 0}),u})(),n(Ua,{get item(){return e.item},get open(){return a()},onClose:()=>r(!1),onSubmit:u=>{r(!1),t(u)}})]}function Gp(e){return n(y,{get when(){return e.item},children:t=>n(bt,{get children(){var a=_h(),r=a.firstChild,s=r.firstChild,d=s.firstChild,l=d.firstChild,c=l.nextSibling,g=d.nextSibling,v=s.nextSibling,b=v.nextSibling;return Oe(a,"click",e.onClose,!0),r.$$click=u=>u.stopPropagation(),i(c,()=>t().title),Oe(g,"click",e.onClose,!0),i(r,n(Bp,{get item(){return t()}}),v),i(b,()=>JSON.stringify({contract:t().contractJson,adapter:t().adapterJson,validation:t().validationJson,resources:t().resources??[]},null,2)),a}})})}function Bp(e){const t=()=>Hp(e.item.contractJson);return n(y,{get when(){return t()},children:a=>(()=>{var r=Ph(),s=r.firstChild,d=s.nextSibling,l=d.nextSibling;return i(d,()=>a().purpose??"为智能体调用、代码实现和验证提供结构化约束。"),i(l,n(ce,{get each(){return a().usage??[]},children:c=>(()=>{var g=_n();return i(g,c),g})()})),i(r,n(ce,{get each(){return a().matchedAssets??[]},children:c=>(()=>{var g=Dh(),v=g.firstChild,b=v.firstChild,u=b.nextSibling,h=v.nextSibling;return i(u,()=>c.title??c.name??c.path),i(g,n(y,{get when(){return c.path},get children(){var f=kh();return i(f,()=>c.path),f}}),h),i(g,n(y,{get when(){return c.summary},get children(){var f=di();return i(f,()=>c.summary),f}}),h),i(h,n(ce,{get each(){return(c.sections??[]).slice(0,6)},children:f=>(()=>{var w=Ah(),C=w.firstChild,p=C.nextSibling;return i(C,()=>f.title),i(p,()=>f.content),w})()})),g})()}),null),r})()})}function Hp(e){const t=e?.agentContract;if(!(!t||typeof t!="object"))return t}function qp(e){return e.intentTags.filter(t=>!zp(t)&&!Hi.has(t))}function zp(e){return e.startsWith("category:")||e.startsWith("skill:")}function jp(){return n(Ot,{page:"research"})}function Wp(){return n(Ot,{page:"cases"})}function Vp(){return n(Ot,{page:"docs"})}function Kp(){return n(Ot,{page:"models"})}function as(){return n(Ot,{page:"apps"})}function is(){return n(Ot,{page:"frameworks"})}function Xp(){return n(Ot,{page:"operators"})}const Jp=[[{label:"首页",href:"/workspace",icon:"home"},{label:"科研开发",href:"/workspace",icon:"code"}],[{label:"OneSkills",href:"/skills",icon:"skills"},{label:"AI原语",href:"/primitives",icon:"primitives"}],[{label:"OneHub",icon:"apps",items:[{label:"模型库",href:"/models",icon:"model"},{label:"数据集",href:"/datasets",icon:"database"},{label:"应用库",href:"/apps",icon:"apps"}]}],[{label:"OneInfra",icon:"framework",items:[{label:"AI框架",href:"/frameworks",icon:"framework"},{label:"算子",href:"/operators",icon:"operator"}]}],[{label:"案例",href:"/cases",icon:"cases"},{label:"文档",href:"/docs",icon:"docs"}]],Qp=[[{label:"工作台",href:"/workspace",icon:"home"},{label:"科研开发",href:"/workspace",icon:"code"}],[{label:"OneHub",icon:"apps",items:[{label:"模型库",href:"/models",icon:"model"},{label:"数据集",href:"/datasets",icon:"database"},{label:"应用库",href:"/apps",icon:"apps"},{label:"OneSkills",href:"/skills",icon:"skills"},{label:"AI原语",href:"/primitives",icon:"primitives"},{label:"案例",href:"/cases",icon:"cases"},{label:"文档",href:"/docs",icon:"docs"}]}]];At(["click","keydown","input","pointerdown"]);const eg=Object.freeze(Object.defineProperty({__proto__:null,AppHubPage:Ip,AppsPage:as,CasesPage:Wp,DataManagementPage:Ap,DatasetsPage:xp,DocsPage:Vp,FrameworksPage:is,InfraPage:Pp,ModelsPage:Kp,OnedataDownloadCatalog:Mp,OperatorsPage:Xp,PrimitivesPage:Tp,ResearchPage:jp,SkillTaskProfileGrid:fp,SkillsPage:Fp,TasksPage:Dp,WorkspaceHomeHubSections:jn,WorkspaceHomePage:dp,WorkspaceShell:lp,appendUniqueResourceItems:bi,buildHomeAssetMetrics:Fi,buildMergedCatalogCounts:Fn,clampResourceFieldValue:Kn,countResourceItemsByDomain:sa,createAIPrimitive:No,datasetDocLinks:Ei,default:ap,deleteAIPrimitive:zi,deleteUploadedResource:es,fetchCallablePrimitiveTotal:on,fetchCatalogMetrics:sn,fetchResourceCustomCounts:oi,fetchUserUploadedResourceIds:en,filterAIPrimitiveItems:ni,filterPrimitivesByCatalogScope:si,filterResourceItems:ha,forkPresetCase:cr,formatResourceCatalogCount:Qh,formatResourceCatalogSummary:En,formatResourceCatalogTotal:Ti,getResourceSource:Ha,invalidateCatalogMetricsCache:Xr,invalidatePrimitiveCatalogCaches:Kr,invalidateResourceCustomCountsCache:Ba,isModelScopeResourceAvailable:Ri,itemMatchesResourceFilter:ma,listAIPrimitives:$p,listAIPrimitivesExperimental:mn,listAIPrimitivesFromDatabase:Jr,listAgentRegistryPrimitives:Cp,listCatalogSkills:Qr,listOneScienceSkills:Qn,listOneScienceTaskProfiles:vp,listUploadedResources:fi,loadAllAIPrimitives:un,lookupPrimitiveByResource:Ta,lookupPrimitivesByResources:cn,mergeResourceDomainCounts:Tn,mergeResourcePageItems:vi,modelLinks:Oi,oneskillsGithubRepo:Gh,parseResourceTags:Jn,primitiveCatalogHref:Pi,publishAIPrimitive:zr,readCallableCatalogCache:ki,readCatalogMetricsCache:nn,resetUploadedResourceCache:Zn,resolveCatalogEntry:Ro,resourceCatalogFilters:Ra,resourceFieldLengthError:Xn,resourceFieldLimits:ke,resourceFilterFromHash:mi,resourceHashFromFilter:Gn,resourceItemCatalogDomain:Bn,resourceListEmptyMessage:Hn,resourcePages:He,resourceProviderKindFromInitial:gi,resourceProviderLabel:Vn,resourceProviderOptions:ja,resourceUploadFieldHints:bp,resourceUploadProfile:Gi,restorePresetCase:cr,restoreSharedPresetCase:Ai,searchCatalogEntries:Lo,searchPrimitivesViaCatalog:tn,searchResourceItems:qa,skillCapabilityFamilies:Bh,skillSystemGroups:ca,sortResourceItemsByModelScopeAvailability:Li,updateAIPrimitive:Uo,updateUploadedResource:Yn,writeCallableCatalogCache:Di},Symbol.toStringTag,{value:"Module"}));export{Mp as O,pd as S,ml as m,eg as o,jc as s};
|